▼スレッド
│
└◇1311:アイテムがなくならなくするには・・・ [Re] 08/26 18:37
└◇1312:Re:アイテムがなくならなくするには・・・ [moon] 08/26 20:46
├◇1313:できました!+生き返らない・・・ [Re] 08/26 21:31
│└◇1314:Re:できました!+生き返らない・・・ [moon] 08/26 22:20
│ ├◇1315:Re[2]:できました!+生き返らない・・・ [moon] 08/26 22:25
│ ├◇1316:Re[2]:できました!+生き返らない・・・ [Re] 08/27 13:03
│ └◇1317:Re[2]:できました!+生き返らない・・・ [Re] 08/27 14:01
│ └◇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
はじめまして!Reです。スレッド一覧
えっと、質問なのですが、
sos2で、CPUのお店を作ろうと思うのですが、
CPUのお店では、買ってもCPUのアイテムはなくならない。
(買った人には手に入る)
というものを作りたいのですが、どうすればよいのでしょうか?
(又、CPUのモンスターから、アイテムを奪っても、CPUからアイテムがなくならないようにするにはどうすればよいのでしょうか?)
まずはNPCにNPCを表すスキルを追加します。(慣例的には'Ng'とするようです。)スレッド一覧
> sos2で、CPUのお店を作ろうと思うのですが、
> CPUのお店では、買ってもCPUのアイテムはなくならない。
> (買った人には手に入る)
> というものを作りたいのですが、どうすればよいのでしょうか?
sub buy_afterで、相手にNPCスキルがある場合は「$returnbag = 0;」が実行されないようにすれば良いです。
> (又、CPUのモンスターから、アイテムを奪っても、CPUからアイテムがなくならないようにするにはどうすればよいのでしょうか?)
sub fightで、相手にNPCスキルがある場合は「splice(@pitems,$Sidice,1);」が実行されないようにすれば良いです。
> まずはNPCにNPCを表すスキルを追加します。(慣例的には'Ng'とするようです。)スレッド一覧
>
> > sos2で、CPUのお店を作ろうと思うのですが、
> > CPUのお店では、買ってもCPUのアイテムはなくならない。
> > (買った人には手に入る)
> > というものを作りたいのですが、どうすればよいのでしょうか?
> sub buy_afterで、相手にNPCスキルがある場合は「$returnbag = 0;」が実行されないようにすれば良いです。
>
> > (又、CPUのモンスターから、アイテムを奪っても、CPUからアイテムがなくならないようにするにはどうすればよいのでしょうか?)
> sub fightで、相手にNPCスキルがある場合は「splice(@pitems,$Sidice,1);」が実行されないようにすれば良いです。
できました!
ありがとうございます!
えっと、話が変わるのですが、まとめて質問しちゃいます(ナヌ
今、ぼくのsos2では、1時間で生き返る設定になっています。
しかし、なぜか1時間たっても生き返らないのです。
いろいろやってみると、1時間たってから、ログインしないと生き返らないようなんですが、
ログインしなくても、自動で生き返るようにするにはどうすればいいですか?
> えっと、話が変わるのですが、まとめて質問しちゃいます(ナヌスレッド一覧
> 今、ぼくの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に対して上記と似たようなことを行えば良いです。
> 以上は自分が行動していない時の自動蘇生ですが、そうではなくて「自分の行動中に時間がきたら蘇生する」というのであれば、最終プレイ時間を保存しておくためのパラメータを用意してsub get_userに対して上記と似たようなことを行えば良いです。スレッド一覧
上記は「最終プレイ時間」ではなく「死亡時間」でした。
もちろん、この場合は死亡時に死亡時間を更新する処理も必要になります。
返信ありがとうございます。スレッド一覧
表示上は生きている方の設定でやってみます!
(簡単そうだし(コラ))
本当にありがとうございました!!
> > えっと、話が変わるのですが、まとめて質問しちゃいます(ナヌスレッド一覧
> > 今、ぼくの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だけ回復しているという状況のようです。
どうすれば直るのでしょうか・・・?
お願いします
> > > えっと、話が変わるのですが、まとめて質問しちゃいます(ナヌスレッド一覧
> > > 今、ぼくの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
これで解決しました!本当にありがとうございました!
またまたすみませんorzスレッド一覧
えっと、このシステム(自動で生き返る方)を付けて、様子を見ていると、なぜか、『時々しか回復しない』という人が現れましたorz
どこを直せばよいのでしょうか?
さらに、HPが1以上なのに死んでいたりしますorzスレッド一覧
なにか、原因になりそうなことはありますか?
> えっと、このシステム(自動で生き返る方)を付けて、様子を見ていると、なぜか、『時々しか回復しない』という人が現れました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;」を追加します。
----
動作確認をしているわけではないので、どのような処理をやろうとしているのかを確認しながら変更してください。
書き忘れましたが、情報として変更点(削除したもの、貼り付けたもの、変更したもの、など)を書き込んでいただけると何かわかるかもしれません。スレッド一覧
ここまで詳しい説明をしてくださって、本当にありがとうございます!!スレッド一覧
>コピーした後の$av = 'alive';が$pavに置換されていないのではないでしょうか?
そういえばそこまで直してなかったような気がしますorz
今度こそ、全てちゃんと変換して、このまま少し様子をみてみます!
本当にありがとうございました!!