▼スレッド
│
└◇248:どうしてもわからない・・・。 [ナム〜ン] 01/09 16:49
└◇249:Re:どうしてもわからない・・・。 [moon] 01/09 19:18
└◇252:できました〜☆ [ナム〜ン] 01/10 09:17<-last
今、ある行動をするとスキルを覚えるというのをスレッド一覧
作っているのですがどうしてもできないとこがあります。
@Kajb = ('鍛冶屋','名匠'); # 鍛冶技を覚える職業
foreach (@Kajb) { if ($jb eq $_) { $Kajbcheck = 1; last} }
if (!$Fhdice) {
foreach $fhose (@fhoselines) {
($wnm,$wkz,$wlv,$wsk,$wwe,$wjb,$wrd) = split(/<>/,$fhose);
if ($Kajbcheck) {
if (!$wjb) { next }
if ($wjb !~ /kafs/) { next }
if ($kalv < $wlv) { next }
}
if ($rnd <= $wrd) {
push(@foundfhoses,$fhose);
$count++; if($count eq "$learn"){last}
}
}
これはその一部分なのですが
if ($wjb !~ /kafs/) { next }
これを
if ($wjb !~ /kafs/ || $jb !~ /$wjb/) { next }
というふうに例えば$wjbに名匠といれておけば
名匠しかスキルを覚えないというのを作りたいのです。
が、自分の職業($jb)を呼び出してくれません。
どうしたらいいのでしょうか?
ちなみに本体の# Sub Blacksmith #の中に
require '○○○.pl'; &○○○;
として呼び込むようになっています。
どうかご教授の方よろしくお願いします。
> if ($wjb !~ /kafs/) { next }スレッド一覧
> これを
> if ($wjb !~ /kafs/ || $jb !~ /$wjb/) { next }
> というふうに例えば$wjbに名匠といれておけば
> 名匠しかスキルを覚えないというのを作りたいのです。
> が、自分の職業($jb)を呼び出してくれません。
> どうしたらいいのでしょうか?
if ($wjb !~ /kafs/ || $jb !~ /$wjb/) { next }の意味は、「$wjbに'kafs'が含まれていないか、$jbに$wjbが含まれていない場合はnextを実行。(||の前が条件に一致した場合は後の部分は判定されない)」ということは分かりますよね?
よって、$wjbが'名匠'となっていても$jbは判定されずにnextが実行されます。
'kafs'が何を示しているかによりやっている内容の捉え方が変わってくるので、そのあたりの情報が欲しいところです。
あまりにも混乱してて文法の意味を取り間違えていました・・・。スレッド一覧
(||の前が条件に一致した場合は後の部分は判定されない)を
すっかり忘れて・・・。
どうもお世話になりました。またいろいろと聞きにくると思いますので
その時はまたよろしくお願いします。