私設SoS2オーナー応援BBS

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

スレッド

└◇445:
Re:解呪について(;; [masaki] 03/22 13:41

 └◇446:Re[2]:解呪について(;; [moon] 03/22 16:36
  └◇448:Re[3]:解呪について(;; [masaki] 03/22 17:59
   └◇450:Re[4]:解呪について(;; [moon] 03/22 21:27
    └◇451:Re[5]:解呪について(;; [masaki] 03/22 22:43<-last


445● Re:解呪について(;;[ masaki ] 2003 03/22 13:41
> if ($psp=~ /Ki/) {
間違えましたすみません。
if ($Fm{'mode'} eq 'kaiyzu')です。
あと、
>if($sts =~ /No/ && $sts =~ /Q[swat]/){$sts =~ s/No//g;}
も、よくわからないのでかなり適当です。(jДj
スレッド一覧


446● Re[2]:解呪について(;;[ moon ] 2003 03/22 16:36
  if ($av ne 'dead') { return }
これは、「自分が死んでいなかったら何もしない」ということなので不要です。
代わりに、
  return if($bg eq '');
  my $num = -1;
  &splititem('i');
  foreach(0..$#items){
    ($item,$sts) = split(/△/,$items[$_]);
    if(index($sts,'No')>=0 && $sts=~/Q[swat]/){
      $num = $_;
      last;
    }
  }
  if($num<0){
    push(@msg,'あなたは呪われていません');
    return;
  }
のようにして呪われた品を装備中であるかを判断します。

  $mn -= $kaizyu; $pmn += $kaizyu; $php -= $def_hr;if($sts =~ /No/ && $sts =~ /Q[swat]/){$sts =~ s/No//g;}
  &add_record("[$id] $nmを$kl\Gで解呪しました");
を上記に関連して、
  $mn -= $kaizyu;
  $pmn += $kaizyu;
  $php -= $def_hr;
  $sts =~ s/No//g; # 上記で$stsは呪われたアイテムのステータスを指しているはずなので改めてsplitをしない
  $items[$num] = "$item△$sts";
  &joinitem('i');
  &add_record("[$id] $nmを${kaizyu}Gで解呪しました");
と変更します。

# 文法チェックなし & 未テスト
スレッド一覧


448● Re[3]:解呪について(;;[ masaki ] 2003 03/22 17:59
ありがとうございます!
でも、問題発生です(;;
moonさんに教えていただいた場所はちゃんと動いたのですが、ユーザーデータへの書きこみがされてないらしいです(^^;
sub fee_beforeの
print qq|アイテムの解呪料:HP $judg_hp 使用\n| if $sp =~ /Ki/;
    &input('text','kaizyu',"$kaizyu",' size=10',' G<br>') if $sp =~ /Ki/;
の部分が怪しいのですが(^^
自分でユーザーデータへ直接書きこめば出来るのですが(笑
スレッド一覧


450● Re[4]:解呪について(;;[ moon ] 2003 03/22 21:27
sub fee_beforeで$kaizyuの値を取得していますか?
解毒料とかと同じフラグ$feに記録している場合は、($cr,$rv,$kaizyu) = split(/△/,$fe);というように。

また、sub fee_afterで$fe = "$Fm{'cr'}△$Fm{'rv'}△$Fm{'kaizyu'}";としていますか?

以上2点を確認してみてください。
スレッド一覧


451● Re[5]:解呪について(;;[ masaki ] 2003 03/22 22:43
ありがとうございます!
やっとできました(^^;
いろいろ改造してあると、複雑で(ぉ
いつもこんな初歩的な質問に答えていただき、ありがとうございます!
スレッド一覧

CGIROOM