私設SoS2オーナー応援BBS

新規発言一覧最新記事過去一覧検索ダウンロードページHOME

スレッド

└◇1318:
Re[3]:できました!+生き返らない・・・ [Re] 08/27 14:47

 └◇1322:回復しない・・・ [Re] 08/28 11:01
  └◇1323:さらに・・・ [Re] 08/28 23:07
   └◇1324:Re:さらに・・・ [moon] 08/28 23:59
    ├◇1326:Re[2]:さらに・・・ [moon] 08/29 00:16
    └◇1327:Re[2]:さらに・・・ [Re] 08/29 09:32


1318● Re[3]:できました!+生き返らない・・・[ Re ] 2006 08/27 14:47
> > > えっと、話が変わるのですが、まとめて質問しちゃいます(ナヌ
> > > 今、ぼくのsos2では、1時間で生き返る設定になっています。
> > > しかし、なぜか1時間たっても生き返らないのです。
> > > いろいろやってみると、1時間たってから、ログインしないと生き返らないようなんですが、
> > > ログインしなくても、自動で生き返るようにするにはどうすればいいですか?
> >
> > sub make_conの538行目から547行目(「$now = int((time - $tm) / 3600);」から「else { ($hp) = &hprecover($hp,$xp,$sp,$av,$tm,$fg) }」)をsub get_partnerの「shift(@_);」の上に追加します。
> > 追加した部分のパラメータ用変数は自分のパラメータを表しているので、これらを相手のパラメータ変数に置換します。(例えば、$hp→$php)
> > これで、接触された時などには表示上だけは生きている(*)ことになり、また、買い物をされた時などの保存が行われる時は実際に蘇生されると思います。
> >
> > (*)接触画面の表示上だけなので、リストでは死亡したままとなります。
> >
> > sub make_conからコピーした処理をsub list_orderにも追加すればリスト上でも表示上だけは生きていることにできますが、ループ中の処理なのであまりお勧めしません。
> >
> > 以上は自分が行動していない時の自動蘇生ですが、そうではなくて「自分の行動中に時間がきたら蘇生する」というのであれば、最終プレイ時間を保存しておくためのパラメータを用意してsub get_userに対して上記と似たようなことを行えば良いです。
> すみません、不都合が発生しましたorz
> 戦闘を仕掛けられて殺されたのですが、
> ログインしてみると、死んでいるのに体力が2とかいう事態にorz
> たぶん、まだ1時間たっていないから、生き返ってはいないのに、
> HPだけ回復しているという状況のようです。
> どうすれば直るのでしょうか・・・?
> お願いします
すみません、1つだけ、『p』付けてないだけでしたorz
これで解決しました!本当にありがとうございました!
スレッド一覧


1322● 回復しない・・・[ Re ] 2006 08/28 11:01
またまたすみませんorz
えっと、このシステム(自動で生き返る方)を付けて、様子を見ていると、なぜか、『時々しか回復しない』という人が現れましたorz
どこを直せばよいのでしょうか?
スレッド一覧


1323● さらに・・・[ Re ] 2006 08/28 23:07
さらに、HPが1以上なのに死んでいたりしますorz
なにか、原因になりそうなことはありますか?
スレッド一覧


1324● Re:さらに・・・[ moon ] 2006 08/28 23:59
> えっと、このシステム(自動で生き返る方)を付けて、様子を見ていると、なぜか、『時々しか回復しない』という人が現れましたorz
情報が少なすぎます。
「回復しない」にしても「何が」「どのような時に」そのようになるのかがわかりませんし。

> さらに、HPが1以上なのに死んでいたりしますorz
> なにか、原因になりそうなことはありますか?
コピーした後の$av = 'alive';が$pavに置換されていないのではないでしょうか?


----
不具合とは関係無いと思われる部分ですが、動作として修正したほうが良いところがありましたので訂正します。

無駄な処理が含まれていたので、
> sub make_conの538行目から547行目(「$now = int((time - $tm) / 3600);」から「else { ($hp) = &hprecover($hp,$xp,$sp,$av,$tm,$fg) }」)をsub get_partnerの「shift(@_);」の上に追加します。
これを以下に訂正します。
  sub make_conの538行目から546行目(「$now = int((time - $tm) / 3600);」から「}」)をsub get_partnerの「shift(@_);」の上に追加します。

あと、余分な回復が行われていたのでコピーした部分の「$hp = &hpcheck($hp,$xp,$bp - $def_ha);」の下に「$ptm = time;」を追加します。
----

動作確認をしているわけではないので、どのような処理をやろうとしているのかを確認しながら変更してください。
スレッド一覧


1326● Re[2]:さらに・・・[ moon ] 2006 08/29 00:16
書き忘れましたが、情報として変更点(削除したもの、貼り付けたもの、変更したもの、など)を書き込んでいただけると何かわかるかもしれません。
スレッド一覧


1327● Re[2]:さらに・・・[ Re ] 2006 08/29 09:32
ここまで詳しい説明をしてくださって、本当にありがとうございます!!
>コピーした後の$av = 'alive';が$pavに置換されていないのではないでしょうか?
そういえばそこまで直してなかったような気がしますorz
今度こそ、全てちゃんと変換して、このまま少し様子をみてみます!
本当にありがとうございました!!
スレッド一覧

CGIROOM