cookbook|||2001/10/17/Wed|||23:04:55|||aaqPiZY5xR5l.|||バランス|||ポロポロ|||iet_hot@hotmail.com||||||http://|||10|||国の人数制限|||
config.cgiに下記を追加(最終行の「1;」より上)
# 国の最大国民数
$C_MAX_MEMBER=10;
ebs_sub3.cgiの302行目を下記に変更
/^亡命$/ && do{
if($FORM{'boumeiC'} ne ''){
my$c_cnt = 0;&DBM_INPORT(P);
while(my($key,$value) = each %P){
my@MEMBER_VALUE = split(/\s/,$value);
if($FORM{'boumeiC'} eq "$MEMBER_VALUE[5]" && ++$c_cnt >= $C_MAX_MEMBER){
&ERROR("$FORM{'boumeiC'}の人数が最大数に達しているため、亡命できません。");
}
}
}
$PL_VALUES[5]="$FORM{'boumeiC'}";$PL_VALUES[28]='';$PL_VALUES[0]=$PL_VALUES[6]=0;
last CUSTOM;};
ebs_sub4.cgiの55行目を下記に変更
my $c_cnt = 0;
while(my($key,$value) = each %P){
my@MEMBER_VALUE = split(/\s/,$value);
if($C_Name eq "$MEMBER_VALUE[5]" && ++$c_cnt >= $C_MAX_MEMBER){
last;
}
}
if ($PL_VALUES[5] ne "$C_Name" && $c_cnt < $C_MAX_MEMBER){$boumeiTag.="<option value=\"$C_Name\">$C_Name\n";$bf=1;}
ebs_sub4.cgiの57行目を下記に変更
if($PL_VALUES[5]){$boumeiTag.="<option value=\"\">$NONE_NATIONALITY\n";$bf=1;}
ebs_sub6.cgiの80行目を下記に変更
&DBM_INPORT(P);
while (($key,$value) =each %C) {
my $c_cnt = 0;
while(my($m_key,$m_value) = each %P){
my@MEMBER_VALUE = split(/\s/,$m_value);
if($key eq "$MEMBER_VALUE[5]" && ++$c_cnt >= $C_MAX_MEMBER){
last;
}
}%P=%P;
if($c_cnt < $C_MAX_MEMBER){print "<option value=$key>$key\n";}
}
ebs_sub6.cgiの152行目の下に下記を追加
if($FORM{'kuni'} ne ''){
my$c_cnt = 0;&DBM_INPORT(P);
while(my($key,$value) = each %P){
my@MEMBER_VALUE = split(/\s/,$value);
if($FORM{'kuni'} eq "$MEMBER_VALUE[5]" && ++$c_cnt >= $C_MAX_MEMBER){
$FORM{'kuni'}='';
last;
}
}
}
以上で改造完了です。
config.cgiに追加した$C_MAX_MEMBERに1つの国に入れる最大人数を指定してください。
||||||1つの国に入れる人数の上限を指定できるようにしました。
|||end|||
cookbook|||2001/10/20/Sat|||04:21:45|||aaLElMaIG.c5o|||機能|||kazu777|||kazu777@hestia.dricas.com|||あそびばっか!|||http://www12.big.or.jp/~kazu777|||10|||データ復元機能付き^^|||http://www12.big.or.jp/~kazu777/master.txt
↑
さっき250人まとめてデータ吹っ飛んで
あわてて作ったので変なとこもありますが
ちゃんと動くと思います^^;;
改良していただけたら幸いです。||||||パラメーター調整スクリプトで行えるバックアップを
復元するには手打ちで行っていましたが
簡単に出来るように改造してみました^^
これでデータ飛びも安心?!(笑)
で、改造箇所が多いのと説明がへたっぴなんで
スクリプトまるごとのせておきます(汗)
txtにして・・
|||end|||
cookbook|||2001/10/28/Sun|||16:38:56|||aaLElMaIG.c5o|||機能|||kazu777|||kazu777@hestia.dricas.com|||あそびばっか!|||http://www12.big.or.jp/~kazu777|||10|||国削除を出来るようにする。|||ebs.cgiにこの2行追加です。
sub CO_DEL {require 'ebs_sub7.cgi';&CO_DEL2;}
sub CO_DEL2 {require 'ebs_sub7.cgi';&CO_DEL3;&MAINTENANCE2;}
んで、ebs_sub7.cgiの
<tr><td bgcolor=#404040 align=center>PLデータ削除</td>
<td style="border:1px solid #404040;font-size:12px;color:#000000;">プレイヤーデータを削除します。<br>不正や荒らし対策時にのみ使用してください。</td>
<td style="border:1px solid #404040;"><input type=submit value="GO" $STYLE_B2 onClick="mainte.cmd.value='PL_DEL';"></td>
</tr>
#### ここから
<tr><td bgcolor=#404040 align=center>国データ削除</td>
<td style="border:1px solid #404040;font-size:12px;color:#000000;">国を削除します。<br>不正や荒らし対策時にのみ使用してください。</td>
<td style="border:1px solid #404040;"><input type=submit value="GO" $STYLE_B2 onClick="mainte.cmd.value='CO_DEL';"></td>
</tr>
#### ここまで
<tr><td valign=top colspan=3 style="line-height:0px;"> </td></tr>
<tr><td bgcolor=#404040 align=center>歴史編纂</td>
<td style="border:1px solid #404040;font-size:12px;color:#000000;">歴史データを書き換えます。</td>
<td style="border:1px solid #404040;"><input type=submit value="GO" $STYLE_B2 onClick="mainte.cmd.value='HISTORY_EDIT';"></td>
</tr>
記述部分を追加し、ebs_sub7.cgiの最後の方にでもこのサブルーチンいれてください。
sub CO_DEL2{
&HEADER;
print << " -----END-----";
<script language="JavaScript">
function checkRiyouc (){
if (document.del.cname.value == '') {window.alert("IDが未入力です。");return false
}else if(document.del.pass.value == '') {window.alert("PASSが未入力です。");return false
}else {if (confirm('登録を抹消します。\\n復元できませんがよろしいですか?') == true){return true;}else{return false} }
}
</script>
<table width=100% height=100%><tr><td align=center>
<table bgcolor="#909090" border=0 style="font-size:12px;">
<tr><td colspan=2 bgcolor=#646464 align=center><img src=\"$IMG_FOLDER1/w.gif\"></td></tr>
<tr><td colspan=2 style="color:#000000;">国登録データを個別削除します。<br>
削除したデータは復元する事が出来ません。<br><br></td></tr>
<tr><td align=right style="height:21px; color:#ffffff; font-size:16px;">削除対象国名<br>
管理用パスワード</td>
<td style="height:21px; color:#ffffff; font-size:16px;">
<form action=$MAIN_SCRIPT method=POST target=_top name=del onSubmit="return checkRiyouc()">
<input type=hidden name=cmd value=CO_DEL2>
<input type=text size=20 name=cname $STYLE_L><br>
<input type=password size=15 name=pass $STYLE_L>
</td></tr>
<tr><td colspan=3 align=center>
<input type=submit value=\"削除\" $STYLE_B2></div></form>
<form action=$MAIN_SCRIPT method=POST>
<input type=hidden name=\"cmd\" value=\"MAINTE2\">
<input type=hidden name=\"pass\" value=\"$FORM{'pass'}\"><tr><td colspan=3>
<input type=submit value=戻る $STYLE_B2>
</td></tr>
</table>
-----END-----
&FOOTER;
print "</td></tr></table></form></body>";
}
sub CO_DEL3{
&ERROR('パスワードエラー!!') if $MASTER_PWD ne "$FORM{'pass'}";
dbmopen (%C,"$DBM_C",0666);
delete $C{"$FORM{'cname'}"};
dbmclose %H;
}
で、できあがり。
一回しか動作確認してませんので、報告いただけたら幸いです^^
(なかなか何度も試せないので・・国は・・w)||||||建国逃げした国などを管理画面で削除します。
|||end|||
cookbook|||2001/10/28/Sun|||16:52:07|||aaLElMaIG.c5o|||武器|||kazu777|||kazu777@hestia.dricas.com|||あそびばっか!|||http://www12.big.or.jp/~kazu777|||10|||武器を改造出来るようにする(激ムズ)|||なが〜〜い改造なのでtxtアップしときます(笑)
http://www12.big.or.jp/~kazu777/kaizou.txt
||||||え〜・・本家サイトにある「武器の改造」を出来るようにしました。
改造はちょっと難しいですけど載せておきます。
ちょっと変えると武器にアクセサリーを埋め込む。。みたいな感じでも使えると思います。
|||end|||
cookbook|||2001/10/31/Wed|||19:46:27|||aaxe7KMZ2nxaA|||レイアウト|||B助|||||||||http://cwaweb.bai.ne.jp/~eichi/|||10|||戦闘履歴n件表示|||【ebs4.cgiの改造箇所】
>$PL_VALUES[1]="$DATE!$Pl_vs$FORM{'vsname'}と交戦。";$PL_VALUES[26]=time;
>$VS_VALUES[1]="$DATE!$Vs_vs$FORM{'pname'}と交戦。";
>($ResultTag.="$VS_VALUES[3]大破。<br>",$PL_VALUES[1].="$VS_VALUES[3]大破。",$VS_VALUES[1].="$VS_VALUES[3]大破。")
>if $ResultBattle==0;
>($ResultTag.="$PL_VALUES[3]大破。<br>",$PL_VALUES[1].="$PL_VALUES[3]大破。",$VS_VALUES[1].="$PL_VALUES[3]大破。")
>if $ResultBattle==1;
を以下のように修正
# 履歴表示3段階対応その1 始端
local($PL_RETI1,$PL_RE1,$PL_RETI2,$PL_RE2,$PL_RETI3,$PL_RE3) = split(/!/,$PL_VALUES[1]);
local($VS_RETI1,$VS_RE1,$VS_RETI2,$VS_RE2,$VS_RETI3,$VS_RE3) = split(/!/,$VS_VALUES[1]);
$PL_VALUES[1]="$DATE!$Pl_vs$FORM{'vsname'}と交戦。";$PL_VALUES[26]=time;
$VS_VALUES[1]="$DATE!$Vs_vs$FORM{'pname'}と交戦。";
$ResultTag.= $Tokusyu;
($ResultTag.="$VS_VALUES[3]大破。<br>",$PL_VALUES[1].="$VS_VALUES[3]大破。",$VS_VALUES[1].="$VS_VALUES[3]大破。")
if $ResultBattle==0;
($ResultTag.="$PL_VALUES[3]大破。<br>",$PL_VALUES[1].="$PL_VALUES[3]大破。",$VS_VALUES[1].="$PL_VALUES[3]大破。")
if $ResultBattle==1;
$PL_VALUES[1].="!".$PL_RETI1."!".$PL_RE1."!".$PL_RETI2."!".$PL_RE2;
$VS_VALUES[1].="!".$VS_RETI1."!".$VS_RE1."!".$VS_RETI2."!".$VS_RE2;
# 履歴表示3段階対応その1 終端
【ebs3.cgiの改造箇所】
>print "<span style=\"$STYL1\"> <b>LASTBATTLE</b> </span> ";
>($DatHp,$Result) = split(/!/,$PL_VALUES[1]);
>print &DATE_DECORD("$DatHp")." <br> $Result";
を以下のように修正
# 履歴表示3段階対応その2 始端
print "<span style=\"$STYL1\"> <b>戦闘履歴</b> </span> <br>";
($DatHp,$Result,$DatHp2,$Result2,$DatHp3,$Result3) = split(/!/,$PL_VALUES[1]);
print &DATE_DECORD("$DatHp")." $Result<br>";
print &DATE_DECORD("$DatHp2")." $Result2<br>";
print &DATE_DECORD("$DatHp3")." $Result3<br>";
# 履歴表示3段階対応その2 終端
【ebs5.cgiの改造箇所】
148行目>print "<input name=\"Cmode\" type=submit value=\"Custom\" $STYLE_B1 onClick=\"return checkCustom()\">\n";
を以下のように修正
# カスタム時、MSネーム無しと半角記号の使用を不可にする 始端
print "<input name=\"Cmode\" type=submit value=\"Custom\" $STYLE_B1 onClick=\"if (document.Ms.MsName.value!=''){if (document.Ms.MsName.value.match('[&! =.,<>]') != null){alert('半角記号が使用されています。');return false;}else{return checkCustom()}}else{alert('MSが記入されていません');return false;}\">\n";
# カスタム時、MSネーム無しと半角記号の使用を不可にする 終端
301行目>print "<input name=\"Cmode\" type=submit value=建国 $STYLE_B1 onClick=\"if (document.Ms.cname.value!=''){return checkCountry()}else{alert('国名が記入されていません。');return false;}\">\n";
を以下のように修正
# 建国時、国名への半角記号の使用を不可にする 始端
print "<input name=\"Cmode\" type=submit value=建国 $STYLE_B1 onClick=\"if (document.Ms.cname.value!=''){if (document.Ms.cname.value.match('[&! =.,<>]') != null){alert('半角記号が使用されています。');return false;}else{return checkCountry()}}else{alert('国名が記入されていません。');return false;}\">\n";
# 建国時、国名への半角記号の使用を不可にする 終端||||||戦闘履歴を過去n件まで表示する。
本文は過去3件表示のコードです。
splitで「!」を使用するので国名とカスタム時のMS名にて半角記号を使用できないようにする必要があります。
ボタン等を追加している場合、作戦発動時に作戦がボタンで隠れてしまう事があるので注意。|||end|||