▼スレッド
│
└◇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
> if ($psp=~ /Ki/) {スレッド一覧
間違えましたすみません。
if ($Fm{'mode'} eq 'kaiyzu')です。
あと、
>if($sts =~ /No/ && $sts =~ /Q[swat]/){$sts =~ s/No//g;}
も、よくわからないのでかなり適当です。(jДj
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で解呪しました");
と変更します。
# 文法チェックなし & 未テスト
ありがとうございます!スレッド一覧
でも、問題発生です(;;
moonさんに教えていただいた場所はちゃんと動いたのですが、ユーザーデータへの書きこみがされてないらしいです(^^;
sub fee_beforeの
print qq|アイテムの解呪料:HP $judg_hp 使用\n| if $sp =~ /Ki/;
&input('text','kaizyu',"$kaizyu",' size=10',' G<br>') if $sp =~ /Ki/;
の部分が怪しいのですが(^^
自分でユーザーデータへ直接書きこめば出来るのですが(笑
sub fee_beforeで$kaizyuの値を取得していますか?スレッド一覧
解毒料とかと同じフラグ$feに記録している場合は、($cr,$rv,$kaizyu) = split(/△/,$fe);というように。
また、sub fee_afterで$fe = "$Fm{'cr'}△$Fm{'rv'}△$Fm{'kaizyu'}";としていますか?
以上2点を確認してみてください。
ありがとうございます!スレッド一覧
やっとできました(^^;
いろいろ改造してあると、複雑で(ぉ
いつもこんな初歩的な質問に答えていただき、ありがとうございます!