発言者: moon
発言日: 2004 02/29 13:04
> substr($sts,0,4);のように、ステータスのみを指定するのは分かったのですが、やはり『アイテムの指定』と『どうやってそのステータスに代入すればよいのか』が全く分かりません。
> 乱文で分かりづらいかもしれませんが、よければ教えて下さい。
アイテムを特定する処理は、
&splititem('i');
foreach(@items){
($item, $sts, $price) = split(/△/, $_);
if(index($sts, 'Sw') != -1){ # 剣(Sw)の場合
# ここに特定アイテムの処理(*)
}
}
&joinitem('i');
で、$stsの構造は、
00000000XxYyZz
1桁から4桁:下取り価格
5桁から6桁:攻撃力値
7桁から8桁:防御力値
9桁目以降:アイテム属性
です。
ステータスに代入するのは(*)の部分で、
$pc = substr($sts, 0, 4); # 下取り価格の取得
$atk = substr($sts, 4, 2); # 攻撃力値の取得
$dfd = substr($sts, 6, 2); # 防御力値の取得
$other = substr($sts, 8); # アイテム属性の取得
# ここに$pc、$atk、$dfdの変更処理
if($pc < -999){$pc = -999;}elsif($pc > 9999){$pc = 9999;} # 値の制限
if($atk < -9){$atk = -9;}elsif($atk > 99){$atk = 99;} # 値の制限
if($dfd < -9){$dfd = -9;}elsif($dfd > 99){$dfd = 99;} # 値の制限
$sts = sprintf("%04d%02d%02d%s", $pc, $atk, $dfd, $other); # $stsの再構築
$_ = "$item△$sts"; # アイテムデータの反映
$_ .= "△$price" if($price > 0); # 価格の追加
とすれば良いと思います。
▼関連発言
│
└◆965:置換 [ミル] 02/29 05:33
└◆966:Re:置換 [ミル] 02/29 05:35
└◆967:Re[2]:置換 [moon] 02/29 13:04
└◆968:Re[3]:置換 [ミル] 02/29 21:56
└◆969:Re[4]:置換 [ミル] 02/29 22:07
└◆970:Re[5]:置換 [moon] 02/29 23:29
└◆971:Re[6]:置換 [ミル] 03/01 13:21
└◆972:Re[7]:置換 [ミル] 03/01 15:28
└◆973:Re[8]:置換 [ミル] 03/01 15:33
└◆974:Re[9]:置換 [moon] 03/01 19:14
└◆975:Re[10]:置換 [moon] 03/01 22:25
└◆976:Re[11]:置換 [ミル] 03/06 19:30
└◆977:Re[12]:置換 [ミル] 03/06 19:39
└◆978:Re[13]:置換 [moon] 03/06 20:26
└◆993:うおおう [ミル] 03/20 20:29<-last