私設SoS2オーナー応援BBS

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

スレッド

└◇436:
Re[3]:装備をはずす [moon] 03/16 18:32

 └◇437:Re[4]:装備をはずす [masaki] 03/16 19:47
  └◇438:Re[5]:装備をはずす [moon] 03/16 20:52
   └◇439:Re[6]:装備をはずす [masaki] 03/17 13:36
    └◇441:Re[7]:装備をはずす [masaki] 03/17 21:51
     └◇442:Re[8]:装備をはずす [moon] 03/17 22:24
      └◇443:Re[9]:装備をはずす [masaki] 03/18 17:49<-last


436● Re[3]:装備をはずす[ moon ] 2003 03/16 18:32
返事が遅くて申し訳ないです。(新しいPCを買ってきたのでその設定作業に悪戦苦闘しているので(笑))

> アイテム欄に使用を組み込む改造をしていたせいですね。。

これは完全に自分の勘違いでしたのでその改造をしていたせいではないです。

> 一日になんども質問すみません。
> 今、アイテムに呪いスキルNoがついていたら、装備をはずせない。
> という改造をしているのですが、
> if($sts !~ /No/){$ab = $db = 0; $sp =~ s/Qb//g; $sp =~ s/Qk//g; $sp =~ s/Qx//g; $sp =~ s/Qm//g;}
> if($sts !~ /No/){$sts =~ s/Q[swat]//g;}
> 上のように変えて装備をはずそうとすると、装備はされているのですが装備による+1や+2が消えてしまいます。
> 他の動作をすれば、+1や+2が表示されるのですが、消えたまま保存すると、装備していない状態と同じになってしまいます。
> (装備状態の太字にはなります)
> なぜでしょうか?(^^;

$ab = 0などの行はアイテムを使用するしないに関わらず実行される場所なのでそこで$stsを参照しても空です。
そういうことで、if($sts !~ /No/){$ab = $db = 0;〜}は中身が必ず実行されているということです。

考え方を変えて、呪われていると「はずれなくなる」のではなく「装備中の場合は使用するしないに関わらず再び装備される」というようにしたほうがわかりやすいと思います。

まだ設定がほとんど完了していないので省略して書きましたがとりあえずこんな感じでやってみれば良いと思います。
スレッド一覧


437● Re[4]:装備をはずす[ masaki ] 2003 03/16 19:47
> 考え方を変えて、呪われていると「はずれなくなる」のではなく「装備中の場合は使用するしないに関わらず再び装備される」というようにしたほうがわかりやすいと思います。
もしNoが含まれていたら、装備状態にする。ということですか?
$sts =~ s/Q[swat]//g;
のあとに
if ($sts =~ /No/) {$sts =~ /Q[swat]/;}
を追加したのですが、出来ませんでした。。
頭の中が混乱してきました(滝汗
>返事が遅くて申し訳ないです。(新しいPCを買ってきたのでその設定作業に悪戦苦闘しているので(笑))
新しいパソコンですか!
おめでとうございます!!
moonさんのパソコンて、ものすごい量のデータがあったり・・・w
前のパソコンのデータを移したり、設定したり大変そうですね(^^;
頑張ってください!!
スレッド一覧


438● Re[5]:装備をはずす[ moon ] 2003 03/16 20:52
> > 考え方を変えて、呪われていると「はずれなくなる」のではなく「装備中の場合は使用するしないに関わらず再び装備される」というようにしたほうがわかりやすいと思います。
> もしNoが含まれていたら、装備状態にする。ということですか?

そういうことです。
まだまだ終わりそうにないどころか無事に終わるのかが疑問な状態なので以下適当なことを書きます。

  if ($sts =~ /Q[swat]/) { $nomsg = 1 } else { $nomsg = 0 }
を、
  if ($sts =~ /Q[swat]/) { $nomsg = 1; $Fm{$_} = 'on' if(index($sts,'No')>=0); } else { $nomsg = 0 }
とする。
スレッド一覧


439● Re[6]:装備をはずす[ masaki ] 2003 03/17 13:36
できました〜!!
何度も質問してすみませんでした(;;
本当にありがとうございました!
スレッド一覧


441● Re[7]:装備をはずす[ masaki ] 2003 03/17 21:51
バグ発生です(;;
所持アイテムが
・ブレスレット
・イヤリング
で、イヤリングが呪われていてブレスレットが呪われていない場合、イヤリングを装備して、↓
「ブレスレットにチェックして、イヤリングのチェックをはずし決定」すると、
『ブレスレットを装備しました
イヤリングを装備するには別のアイテムを外す必要があります』
となり、装備が入れ替わってしまいます。
(その瞬間は装備されていないことになるのかな?)
moonさんの都合のいいときでいいので、考えて下さると助かります。。
よろしくお願いします。
スレッド一覧


442● Re[8]:装備をはずす[ moon ] 2003 03/17 22:24
> バグ発生です(;;
> 所持アイテムが
> ・ブレスレット
> ・イヤリング
> で、イヤリングが呪われていてブレスレットが呪われていない場合、イヤリングを装備して、↓
> 「ブレスレットにチェックして、イヤリングのチェックをはずし決定」すると、
> 『ブレスレットを装備しました
> イヤリングを装備するには別のアイテムを外す必要があります』
> となり、装備が入れ替わってしまいます。
> (その瞬間は装備されていないことになるのかな?)
> moonさんの都合のいいときでいいので、考えて下さると助かります。。
> よろしくお願いします。

バグというか当然の結果です。
自分が参加している某SoS2でもそういう仕様となっています。(そこでしかプレイしていなかったりしますが(笑))

これはアイテムを先読みするか、それが装備失敗したときにその障害となった装備アイテムの装備をはずすようにしなければいけません。
この2つの処理はどちらも面倒なので、装備失敗になったら全てのアイテム処理をキャンセルするようにすれば"根本的な解決にはなりませんが"一応は呪いの装備品がはずれるのは防げると思います。

アイテム処理をキャンセルする場合の変更点は、sub armの最後に、
  $use_cancel = 1 if($nomsg && index($sts,'No')>=0 && $sts!~/Q[swat]/);
を追加しsub use_afterを以下のように変更する。
  if ($Fm{$_}) {
    〜〜〜
  }
を、
  if ($Fm{$_}) {
    〜〜〜
    if($use_cancel){
      push(@msg,"呪われた品「$item」をはずそうとしたことにより、呪いが発動し時間が巻き戻されました");
      return;
    }
  }

もちろんNo.438の変更をした上での話です。(やっていないとsub armが実行されないので・・・)
スレッド一覧


443● Re[9]:装備をはずす[ masaki ] 2003 03/18 17:49
お忙しい中、いろいろな質問に答えていただきありがとうございました(^^
本当にありがとうございました
スレッド一覧

CGIROOM