トップページ > 道具システム
道具システム
[概要]
戦闘で勝利するとたまに道具を拾うことができ、道具を所持した状態だと戦闘中に特殊効果を得られるようになる。
あくまで作り方の参考なので、戦闘バランスなどは一切考慮していない。
道具を保存する変数として、$PC_VALUES[41]を利用している。
###################_item.data############################################################
logフォルダに_item.dataというファイルを作成し、
%ITEM_LIST=(
"a"=>"ATが上がる道具(仮名),2500,65,2,40,5000,4,1,3",
"b"=>"GUが上がる道具(仮名),2500,65,2,40,5000,4,2,3",
"c"=>"HIT力が上がる道具(仮名),2500,65,2,40,5000,4,3",
"d"=>"SP力が上がる道具(仮名),2500,65,2,40,5000,4,4,3",
);
と記述する。
今回の改造で実際に使ってるのは、IDと名前と最後の二つの数字(特殊能力と取得確率)のみ。
########################################################################################
###################ebs_sub1.cgi#########################################################
8行目に
$ITEM_DATA = '_item.data';
を追加する。
########################################################################################
###################ebs_sub3.cgi#########################################################
121行目に
require "./$LOG_FOLDER/$ITEM_DATA";
local($IT_A,$ITL_A) = split(/!/,$PL_VALUES[41]);
@IT_sA=split(/\,/,$ITEM_LIST{"$IT_A"});print"<span style=\"$STYL1\"> <b>道具</b> </span><b>".$IT_sA[0]."</b><br>";
を追加する。
メイン画面上フレームの装備の下に現在所持している道具を表示する。
########################################################################################
###################ebs_sub4.cgi#########################################################
239行目に
local($PL_IT,$PL_ILV) = split(/!/,$PL_VALUES[41]);
local($VS_IT,$VS_ILV) = split(/!/,$VS_VALUES[41]);
require "./$LOG_FOLDER/$ITEM_DATA";
@Pl_I=split(/\,/,$ITEM_LIST{"$PL_IT"});
@Vs_I=split(/\,/,$ITEM_LIST{"$VS_IT"});
if ($Pl_I[7] == 1){
$Pl_AttPoint = int($Pl_AttPoint * 1.5);
}elsif($Pl_I[7] == 2){
$Pl_DefPoint = int($Pl_DefPoint * 1.5);
}elsif($Pl_I[7] == 3){
$Pl_SpPoint = int($Pl_SpPoint * 1.5);
}elsif($Pl_I[7] == 4){
$Pl_MisPoint = int($Pl_MisPoint * 1.5);
}
if ($Vs_I[7] == 1){
$Vs_AttPoint = int($Vs_AttPoint * 1.5);
}elsif($Vs_I[7] == 2){
$Vs_DefPoint = int($Vs_DefPoint * 1.5);
}elsif($Vs_I[7] == 3){
$Vs_SpPoint = int($Vs_SpPoint * 1.5);
}elsif($Vs_I[7] == 4){
$Vs_MisPoint = int($Vs_MisPoint * 1.5);
}
を追加する。
ここで実際に特殊能力の処理をしている。
他に欲しい能力があれば、自分で考えて適切な位置に記述する。
461行目に
if (!$ResultBattle && !$PL_VALUES[41]){
my@al=keys %ITEM_LIST;$alw=@al;
$alw=int rand($alw);$gw=@al[$alw];$gw='a' if !$gw;
@q=split(/\,/,$ITEM_LIST{"$gw"});
if ($q[8] >= rand(100)){
$PL_VALUES[41]=$gw;
print "<font color=\"#f7e957\">道具を獲得。</font><br>\n";
}
}
を追加する。
道具を拾う処理。
複数の道具を所持できるようにするには、すぐ上にある武器の取得の処理を参考にする。
########################################################################################
[機能追加の参考に]
ebs_sub3.cgiの&CUSTOMIZE()をいじれば、使ったときに効果のある道具なども作れるはず。
/^道具使用$/ && do{
require "./$LOG_FOLDER/$ITEM_DATA";
local($IT_A,$ITL_A) = split(/!/,$PL_VALUES[41]);
@IT_sA=split(/\,/,$ITEM_LIST{"$IT_A"});
if($IT_sA[7] == "8"){
$PL_VALUES[19]++;#特殊効果8の道具を使うとATが+1される
}
$PL_VALUES[41] = "";#使用するとなくなる
last CUSTOM;};
ボタン類はebs_sub5.cgiの&EQUIP()でも参考にすれば問題ないかと。
装備同様に売買する方法も同じような感じにすればできる。