cookbook|||2001/12/05/Wed|||15:30:14|||aaxe7KMZ2nxaA|||その他|||B助|||||||||http://cwaweb.bai.ne.jp/~eichi/|||10|||金銭の受け渡し|||●Step 1【ebs.cgi】 WAIRO関数の登録
>sub MAKE_T   {require 'ebs_sub5.cgi';&MAKE_T2;}

の下に

>sub WAIRO   {require 'ebs_sub5.cgi';&WAIRO;}

を追加する。


●Step 2【ebs_sub3.cgi】 賄賂(WAIRO)ボタンの追加
><td><input type=submit name="custom" value="特殊" $STYLE_B1 onClick="document.FM.cmd.value='SPC';MOVE();"></td>

のある当たりに

><td><input type=submit name="custom" value="賄賂" $STYLE_B1 onClick="document.FM.cmd.value='WAIRO';MOVE();"></td>

を追加する。
value="●●"は勝手に変更してもOK(文字化けに注意)


●Step 3【ebs_sub5.cgi】 WAIRO関数の実体を追加
一番下の行に「1;」とあるので、その上に以下のソースを追加する。

>sub WAIRO{
>  &LOCK;&DBM_CONVERT('P',"$FORM{pname}");&UNLOCK;
>  @pair = split(/\;/, $ENV{'HTTP_COOKIE'});
>  foreach (@pair) {my($key, $value) = split(/=/, $_);$DUMMY{$key} = $value;}
>  @pairs = split(/\,/, $DUMMY{'EB'});
>  foreach (@pairs) {my($key, $value) = split(/\:/, $_);$COOKIE{"$key"} = $value;}
>  &ERROR('COOKIEが無効になっています。') if !$COOKIE{'pname'};
>  &DBM_INPORT(P);
>  @PL_VALUES = split(/\s/,$P{"$COOKIE{'pname'}"});
>
>  &CUSTOM_HEADER('Main');
>  &JScfm(checkInteam,"賄賂を渡します。よろしいですか?");
>
>  print "<tr><td $BgColor>指定した相手に自分の持ち金を渡す<br><br><B>ユニット</B><BR>\n";
>  print "<select name=w_unit $STYLE_L>\n";
>  foreach $Key (sort (keys %P)){
>    @VALUES = split(/\s/,$P{$Key});
>    print "<option value=\"$Key\">$Key\n" if ($FORM{'pname'} ne $Key) ;
>  }
>  print "</select>\n<br><B>贈呈額</B><BR>";
>
>  print "<select name=w_gaku $STYLE_L>\n";
>#「print "<option value=\"******\">******\n";」の******に好きな数値を入れる事で贈呈額を追加可能
>  print "<option value=\"10000\">10000\n";
>  print "<option value=\"50000\">50000\n";
>  print "<option value=\"100000\">100000\n";
>  print "<option value=\"500000\">500000\n";
>  print "<option value=\"1000000\">1000000\n";
>  print "<option value=\"5000000\">5000000\n";
>  print "</select>\n";
>  print "<input name=\"Cmode\" type=submit value=\"贈呈\"";
>  print " $STYLE_B1 onClick=\"return checkInteam()\">\n";
>  print "</td></tr>\n</form></table>\n";
>  &FOOTER;
>}


●Step 4【ebs_sub3.cgi】 WAIRO関数で表示した「贈呈」ボタンを押下された時の処理を追加
>  /^総帥就任$/ && $PL_VALUES[5] && $PL_VALUES[6] == 0 && do{&DBM_INPORT(P);
>    while (my($key,$value) = each %P){my@VS_VALUE = split(/\s/,$value);
>      if($PL_VALUES[5] eq "$VS_VALUE[5]" && $VS_VALUE[6] == 1){&ERROR('別の人物が既に就任しています。');}
>    }
>    $PL_VALUES[6]='1';$PL_VALUES[0]='200';
>    $HISTORY="$FORM{'pname'} の総帥就任を $PL_VALUES[5]議会が承認。$FORM{'pname'}に全指揮権委任。";
>  last CUSTOM;};

の下に以下のソースを追加する。


>  /^贈呈$/ && do{&DBM_INPORT(P);
>    while (my($key,$value) = each %P){ my@VS_VALUES = split(/\s/,$value);
>      if ($FORM{'w_unit'} eq $key) {
>        if ($FORM{'w_gaku'} <= $PL_VALUES[8]) {
>          $VS_VALUES[8]+=$FORM{'w_gaku'};
>          $PL_VALUES[8]-=$FORM{'w_gaku'};
>        } else {
>          $VS_VALUES[8]+=$PL_VALUES[8];
>          $PL_VALUES[8]=0;
>        }
>        dbmopen (%PL,"$DBM_P",0666);$PL{"$FORM{'w_unit'}"}="@VS_VALUES";dbmclose %PL;
>      }
>    }
>  last CUSTOM;};


●オマケ【Step4のソースを改造】 贈呈した事と金額を戦闘履歴に表示させる。
悪魔で「オマケ」という事で。
以下のソースは、前にこの場を借りて説明した『戦闘履歴n件表示』で過去3件まで表示に改造してある事が前提条件です。
『戦闘履歴n件表示』については検索で参照願います。

>  /^贈呈$/ && do{&DBM_INPORT(P);
>    while (my($key,$value) = each %P){ my@VS_VALUES = split(/\s/,$value);
>      if ($FORM{'w_unit'} eq $key) {
>>        local($VS_RETI1,$VS_RE1,$VS_RETI2,$VS_RE2,$VS_RETI3,$VS_RE3) = split(/!/,$VS_VALUES[1]);
>        if ($FORM{'w_gaku'} <= $PL_VALUES[8]) {
>          $VS_VALUES[8]+=$FORM{'w_gaku'};
>          $PL_VALUES[8]-=$FORM{'w_gaku'};
>>          $VS_VALUES[1]="$DATE!$FORM{'pname'}から$FORM{'w_gaku'}を頂きました。";
>        } else {
>          $VS_VALUES[8]+=$PL_VALUES[8];
>>          $VS_VALUES[1]="$DATE!$FORM{'pname'}から$PL_VALUES[8]を頂きました。";
>          $PL_VALUES[8]=0;
>        }
>>        $VS_VALUES[1].="!".$VS_RETI1."!".$VS_RE1."!".$VS_RETI2."!".$VS_RE2;
>        dbmopen (%PL,"$DBM_P",0666);$PL{"$FORM{'w_unit'}"}="@VS_VALUES";dbmclose %PL;
>      }
>    }
>  last CUSTOM;};


以上 01/12/05 B助||||||個人での金銭受け渡しを行う。
ちろっと掲示板の方に問い合わせがあったようなので。
ちなみに家では賄賂という名称で使用していますので、その辺は個人で変えてちょ。

尚、贈呈額に自分の所持金以上の値が選択された場合は有り金全部を贈呈するようになってます。

※本来Tabを入れている場所を全角スペース*2に置き換えています。
そのまま本文をコピーされる場合はお手数ですが修正願います。
全角スペースをそのままにしているとインターナルサーバーエラーの原因になります。|||end||| cookbook|||2001/12/16/Sun|||13:20:50|||aaQSqAReePlq6|||戦闘|||まっくす|||tama@fine.ocn.ne.jp|||MAX ROOM|||http://maxroom.cool.ne.jp/cgi-bin/ebs/ebs.cgi|||10|||改造たくさん!参加者募集!!|||たくさんの改造を施しています。
参加者は、120人を超えていて、まだあいています。
最高人数180人なのでお早めに。
くじ引き大会などでオリジナル武器をゲットできたりします。

強豪・盛り上げてくれる人、大募集です!!
||||||〜改造〜
移動システム・防具システム・クリティカル・雇う
〜オススメ〜
武器レベル最大・・・1000(バランスは取っています)
ステータス最大・・・100
HP回復・・・70
EN回復・・・7|||end||| cookbook|||2001/12/20/Thu|||10:00:28|||aaPhBJ2iSIVBs|||戦闘|||TAKA|||taka@tokyo666.com|||EB-S [666]|||http://tokyo666.com/ebs|||10|||パラメータ表記から機体強化|||ebs_sub3.cgi
パラメータ表記がある
> print "</td></tr><tr><td align=center>$STATUS_NAME[3]<br>".&STATUS_CONVERT("$PL_VALUES[22]",'s')."</td></tr></table>";
print "</td><td>   </td>";
print "<td bgcolor=\"$BG_STATUS\" style=\"font-size:17px;\" valign=top nowrap>";
print "<table bgcolor=\"$TABLE_COLOR1\" style=\"font-size:15px;\">";
↑の下から

> print "<b id=j_en>$PL_VALUES[17]</b><b>/ $PL_VALUES[18]</b></td></tr>";
までの文(数行)を


print "<tr><td style=\"$STYL1\" align=center>";

sub CUSTOMING9 {
&LOCK;&DBM_CONVERT('P',"$FORM{pname}");&UNLOCK;
&CUSTOM_HEADER('Main');
&JScfm(checkHp,"$STATUS_NAME[4]アップの$CUSTOM_NAMEをします。よろしいですか?");
&JScfm(checkEn,"$STATUS_NAME[5]アップの$CUSTOM_NAMEをします。よろしいですか?");
}
$HM=$PL_VALUES[16]*2-3000;$EM=$PL_VALUES[18]*7*7;

print << "-----END-----";
<form action=$MAIN_SCRIPT method=POST name=Ms target="Main" onSubmit='window.location.replace("./$MAIN_SCRIPT?LOGO");'>
<input type=hidden name=cmd value=CUSTOM>
<input type=hidden name=CustomCheck value=$Date>
<input type=hidden name=pname value=$FORM{'pname'}>
<input type=hidden name=pass value=$FORM{'pass'}>
<script language="JavaScript">
<!--
function checkHp (){
if (confirm('体力アップの訓練をします。よろしいですか?(\$$HM)') == true){return true;}else{return false}
}
//-->
</script>
<script language="JavaScript">
<!--
function checkEn (){
if (confirm('気力アップの訓練をします。よろしいですか?(\$$EM)') == true){return true;}else{return false}
}
//-->
</script>
-----END-----
print "\n\n<input title=\"(\$$HM /+400)\" type=submit name=\"Cmode\" value=\"$STATUS_NAME[4]\" $STYLE_B2 onClick='";
print "return checkHp()'>" if $PL_VALUES[8] >= $HM && $PL_VALUES[16] < $MAX_HP;
print "alert (\"お金が足りません\");return false;'>" if $PL_VALUES[8] < $HM;
print "alert (\"これ以上強化できません\");return false;'>" if $PL_VALUES[8] >= $HM && $PL_VALUES[16] >= $MAX_HP;

print "</span></td><td align=right nowrap $STYL2>";
print "<b id=j_hp>$PL_VALUES[15]";

print "</b><b>/ $PL_VALUES[16]</b></td></tr>";
print "<tr><td style=\"$STYL1\" align=center>";

print "<input title=\"(\$$EM / +40)\" type=submit name=\"Cmode\" value=\"$STATUS_NAME[5]\" $STYLE_B2 onClick='";
print "return checkEn()'>" if $PL_VALUES[8] >= $EM && $PL_VALUES[18] < $MAX_EN;
print "alert (\"お金が足りません\");return false;'>" if $PL_VALUES[8] < $EM;
print "alert (\"これ以上改造できません\");return false;'>" if $PL_VALUES[8] >= $EM && $PL_VALUES[18] >= $MAX_EN;



print "</span></td></form><td align=right nowrap $STYL2>";
print "<b id=j_en>$PL_VALUES[17]</b><b>/ $PL_VALUES[18]</b></td></tr>";

まで置き換え。



下記にある
>/^$STATUS_NAME[4]アップ$/ && do{$PL・・・
>/^$STATUS_NAME[5]アップ$/ && do{$PL・・・
のしたあたりに
/^$STATUS_NAME[4]$/ && do{$PL・・・(ここは↑のと同じ)
/^$STATUS_NAME[5]$/ && do{$PL・・・
を追加

ついでにconfig.cgiでフレームサイズも約5程度増やした方がいいですw||||||まったくたいしたもんじゃないですが、便利なので書いときます。
HP・ENの所を改造のHP/ENボタンにするものです。
いちいち改造ボタンを押す必要がなくなります。

HP=体力/+400・EN=気力/+40
となっているところはうちの仕様です。書き換えてね。|||end||| cookbook|||2001/12/22/Sat|||20:53:58|||aadgDsiFr0Nps|||戦闘|||マル|||||||||http://|||10|||国情報スクリプト|||いくつかのバグフィックス版です。
http://got.cool.ne.jp/eb/sclipt/kunijyouhou.txt

少しずつバージョンアップさせます。改造ネタあればヨロシクおねがいします。||||||国情報スクリプトと名づけました。
役に立つかどうか分かりませんけど、
よろしくお願いします。|||end||| cookbook|||2002/01/03/Thu|||21:54:25|||aaQSqAReePlq6|||武器|||メルチャ♪||||||44NET FACTORY|||http://melcha.zone.ne.jp/ebs/dl/|||10|||スクリプト配布について|||作ったばかりなので、デバッグもまだ完璧じゃないですが、
一応配布してます。

○ オークション
○ 福引

上記2点です。。

「俺がデバッグしてやるぜ!」
と言うような方、是非DLして、ご意見などを頂けると嬉しいです。
よろしくお願いいたしますm(_ _)m||||||テスト的に配布してます。|||end|||