トップページ > 一定回数使用すると壊れる武器
一定回数使用すると壊れる武器
[概要]
武器に使用回数制限を付ける方法。
メリットとしては、常にプレイヤーにお金を消費させ続けることができるということ。
がんばって育てた武器が壊れちゃう、っていうのはどうかと思うので、武器のレベルやランク制度を廃止するなり、特定の武器だけに使用回数がつくなりと調整することが望ましい。あるいは使用回数を回復できるとか。
[注意]
$PL_VALUES[9]〜$PL_VALUES[11]を書き換えている箇所を全部修正しないと、使用回数が保存されないので注意。
デフォルトのEBSに関しては、武器購入、ランクアップ、戦闘の3箇所だけだと思うので、以下で修正したつもりですが……。
#####################ebs_sub3.cgi##########################################################
_hash.dataに
"yyyy"=>"壊れた武器,0,0,1,999,100,0,1",
という武器を作成する。
武器の使用回数がなくなった場合は、この武器に置き換わる。
#########################################################################################
#####################ebs_sub3.cgi##########################################################
49〜50行目(&STATUS)あたりの
local($WN_A,$WLV_A) = split(/!/,$PL_VALUES[9]); local($WN_B,$WLV_B) = split(/!/,$PL_VALUES[10]);
local($WN_C,$WLV_C) = split(/!/,$PL_VALUES[11]);
を
local($WN_A,$WLV_A,$WCNT_A) = split(/!/,$PL_VALUES[9]); local($WN_B,$WLV_B,$WCNT_B) = split(/!/,$PL_VALUES[10]);
local($WN_C,$WLV_C,$WCNT_C) = split(/!/,$PL_VALUES[11]);
に置き換える。
116〜120行目(&STATUS)あたりの
@WN_sA=split(/\,/,$WEAPON_LIST{"$WN_A"});print"<span style=\"$STYL1\"> <b>装備</b> </span><b>".$WN_sA[0]."</b> Lv.$WLV_A/exp.$WEP_A<br>";
@WN_sB=split(/\,/,$WEAPON_LIST{"$WN_B"});print' 予備 <b>'.$WN_sB[0].'</b>';
print " Lv.$WLV_B/exp.$WEP_B" if $WN_sB[0];print "<br>";
@WN_sC=split(/\,/,$WEAPON_LIST{"$WN_C"});print' 予備 <b>'.$WN_sC[0]."</b>";
print " Lv.$WLV_C/exp.$WEP_C" if $WN_sC[0];print "<br>";
を
@WN_sA=split(/\,/,$WEAPON_LIST{"$WN_A"});print"<span style=\"$STYL1\"> <b>装備</b> </span><b>".$WN_sA[0]."</b> Lv.$WLV_A/exp.$WEP_A($WCNT_A)<br>";
@WN_sB=split(/\,/,$WEAPON_LIST{"$WN_B"});print' 予備 <b>'.$WN_sB[0].'</b>';
print " Lv.$WLV_B/exp.$WEP_B($WCNT_B)" if $WN_sB[0];print "<br>";
@WN_sC=split(/\,/,$WEAPON_LIST{"$WN_C"});print' 予備 <b>'.$WN_sC[0]."</b>";
print " Lv.$WLV_C/exp.$WEP_C($WCNT_C)" if $WN_sC[0];print "<br>";
に置き換える。
ステータス画面で使用回数を表示するだけの修正。
ebs_sub3.cgiの293〜294行目(&CUSTOMIZE)あたりの
if (!$PL_VALUES[10]){$PL_VALUES[10]="$FORM{'buyw'}!0";}
elsif (!$PL_VALUES[11]){$PL_VALUES[11]="$FORM{'buyw'}!0";}
を
if (!$PL_VALUES[10]){$PL_VALUES[10]="$FORM{'buyw'}!0!100";}
elsif (!$PL_VALUES[11]){$PL_VALUES[11]="$FORM{'buyw'}!0!100";}
に置き換える。
武器購入時に使用回数の初期値を設定する処理。
この場合だと100回が使用回数の初期値となり、ここから1ずつ減っていく。
武器ごとに使用回数を変えたい場合は、_hash.dataで上限値を設定しておいて、ここでそれを読み込むといいかも。
ebs_sub3.cgiの285行目(&CUSTOMIZE)あたりの
if ($FORM{'wname'} =~ m/^$wk/){$PL_VALUES[9]="$FORM{'wname'}!0";}last CUSTOM;
を
if ($FORM{'wname'} =~ m/^$wk/){$PL_VALUES[9]="$FORM{'wname'}!0!100";}last CUSTOM;
に置き換える。ランクアップしたときは使用回数が全快する。
確か購入と戦闘以外で、$PL_VALUES[9]を書き換える箇所はココだけだったはずなので。
というか、やっぱり育成の要素がある武器と使用回数はあんまり相性よくないと思うよ。
#########################################################################################
#####################ebs_sub4.cgi##########################################################
ebs_sub4.cgiの219〜220行目(&BATTLE2)あたりの
local($PL_WN,$PL_WLV) = split(/!/,$PL_VALUES[9]);
local($VS_WN,$VS_WLV) = split(/!/,$VS_VALUES[9]);
を
local($PL_WN,$PL_WLV,$PL_WCNT) = split(/!/,$PL_VALUES[9]);
local($VS_WN,$VS_WLV,$VS_WCNT) = split(/!/,$VS_VALUES[9]);
に置き換える。
ebs_sub4.cgiの219〜220行目(&BATTLE2)あたりの
local($PL_WN,$PL_WLV) = split(/!/,$PL_VALUES[9]);
local($VS_WN,$VS_WLV) = split(/!/,$VS_VALUES[9]);
を
local($PL_WN,$PL_WLV,$PL_WCNT) = split(/!/,$PL_VALUES[9]);
local($VS_WN,$VS_WLV,$VS_WCNT) = split(/!/,$VS_VALUES[9]);
に置き換える。
286〜287行目(&BATTLE2)あたりの
$PL_VALUES[9]="$PL_WN!$PL_WLV";
$VS_VALUES[9]="$VS_WN!$VS_WLV";
を
$PL_WCNT--;
if($PL_WN ne 'yyyy' && $PL_WCNT <= 0){
print "<font color=#f7e957>$FORM{'pname'}の$Pl_W[0]は壊れてしまった……。</font><br>\n";
$PL_VALUES[9]="yyyy!$PL_WLV!0";
}else{
if($PL_WCNT < 0){$PL_WCNT = 0;}
$PL_VALUES[9]="$PL_WN!$PL_WLV!$PL_WCNT";
}
$VS_WCNT--;
if($VS_WN ne 'yyyy' && $VS_WCNT <= 0){
print "<font color=#f7e957>$FORM{'vsname'}の$Vs_W[0]は壊れてしまった……。</font><br>\n";
$VS_VALUES[9]="yyyy!$VS_WLV!0";
}else{
if($VS_WCNT < 0){$VS_WCNT = 0;}
$VS_VALUES[9]="$VS_WN!$VS_WLV!$VS_WCNT";
}
に置き換える。
武器の使用回数が減る処理と、0以下になってしまった場合、武器IDがyyyyの武器(壊れた武器)に置き換える処理。
EBSの仕様上$PL_VALUES[9]を空にしてしまうと問題がありそうなので、武器IDがyyyyの武器(壊れた武器)に変化させてしまう。
攻撃された側も壊れてしまうが、かなり微妙な機能なので、攻撃された側は壊れないようにするのもありかもしれない。
_hash.dataの武器IDをyyyy以外で作成した人は、当然、そのIDにあわせて修正して下さい。
#########################################################################################