発言者: moon
発言日: 2006 11/21 20:47
> if($a2 eq 'Rp' || $a2 eq 'Yr' || $a2 eq 'Sa' || $a2
略...
> に変更したのですが、これでも兜(Hr)を装備すると賢さ$eitに格納されるべく数値が攻撃力のほうに加算されてしまいます。
> 2箇所変更したのですが・・
2つ目も比較するのは$a1です。
> elsif ($sp =~ /Ws/ && $sp =~ /Sc/) { $trnd = (0,3)[int(rand(2))] }のrandの2が武器の0と盾の1を得ようとしているということは
> elsif ($sp =~ /As/) { $trnd = int(rand(2)) + 1 }の+1は何を表しているのでしょうか?
int(rand(2))では0か1が得られます。それに1を加えると1か2が得られます。
つまり、ここでは盾か鎧の値を得るために+1しているということになります。
> すみません;正直ですが全くこの辺りのスクリプトをどう改造すればいいのかわかりません;
この形式で書いていくと種類を多くした時に組み合わせが多くなり大変です。
種類の追加を簡単にするためには以下のような形式で作成する種類を得るようにすれば良いです。(以下の概念はあくまで一例です。)
my @skills = ('Ws', 'As', 'As', 'Sc', 〜追加分〜); # 0:武器、1:盾、2:鎧、3:銀細工、4以降:追加分
my $max = scalar(@skills); # @skillsの要素数
my @types = ();
for(my $i = 0; $i < $max; $i++){
push(@types, $i) if(index($sp, $skills[$i]) != -1); # 作成スキルを習得している場合はインデックスをリストに追加
}
if(!@types){
# 作成スキルがない場合
push(@msg, '作成スキルを習得していません。');
return;
}
my $trnd = $types[int(rand(@types))]; # リストから1つ選択
▼関連発言
│
└◆1360:下の続きです [cosmos] 11/20 23:23
└◆1361:Re:下の続きです [moon] 11/21 00:15
└◆1362:Re[2]:下の続きです [cosmos] 11/21 15:12
└◆1364:Re[3]:下の続きです [moon] 11/21 20:47
└◆1365:Re[4]:下の続きです [cosmos] 11/21 21:43
└◆1366:Re[5]:下の続きです [cosmos] 11/21 21:45
└◆1367:Re[6]:下の続きです [moon] 11/21 23:20
└◆1368:Re[7]:下の続きです [cosmos] 11/21 23:38
└◆1369:Re[8]:下の続きです [moon] 11/22 00:10
├◆1370:Re[9]:下の続きです [cosmos] 11/22 00:26
└◆1371:Re[9]:下の続きです [cosmos] 11/22 14:05
└◆1372:Re[10]:下の続きです [moon] 11/22 23:23
└◆1373:Re[11]:下の続きです [cosmos] 11/23 00:12
└◆1374:Re[12]:下の続きです [moon] 11/23 01:12
└◆1375:Re[13]:下の続きです [cosmos] 11/23 08:23<-last