cookbook|||2001/11/12/Mon|||23:39:10|||aaLElMaIG.c5o|||武器|||kazu777|||kazu777@hestia.dricas.com|||あそびばっか!|||http://www12.big.or.jp/~kazu777|||10|||レベルによって買える武器が違うようにする|||ebs_sub2.cgiのsub WEAPON_LIST部分。
foreach my $W_key (sort keys %WEAPON_LIST){
@W=split(/\,/,$WEAPON_LIST{"$W_key"});
$opt.= "<option value=\"$W_key\">$W[0]\n"if $W[6]>=4 && $W_key ne $FORM{'wname'};
#### ここから
$opt.= "<option value=\"$W_key\">$W[0]\n"if $W[6] eq "a" && $W_key ne $FORM{'wname'};
$opt.= "<option value=\"$W_key\">$W[0]\n"if $W[6] eq "b" && $W_key ne $FORM{'wname'};
#### ここまでと・・・
$opt.= "<option value=\"$W_key\" selected>$W[0]\n"if $W[6]>=4 && $W_key eq $FORM{'wname'};
#### ここから
$opt.= "<option value=\"$W_key\" selected>$W[0]\n"if $W[6] eq "a" && $W_key eq $FORM{'wname'};
$opt.= "<option value=\"$W_key\" selected>$W[0]\n"if $W[6] eq "b" && $W_key eq $FORM{'wname'};
#### ここまでです
$check=substr($W_key,0,length($FORM{'wname'}));
if ($W_key =~ /^$FORM{'wname'}/ && length($FORM{'wname'})+1 == length($W_key)){$nexKey=$W_key;
@nex = split(/\,/,$WEAPON_LIST{"$W_key"});if ($nex[6] <= 3){$nex[0]='?????????'}$nextgen.="$nex[0]<br>";}
説明部分を足してください。次はebs_sub5.cgiで
print "<tr><td $BgColor><b>武器購入</b><table style=\"font-size:9pt;\">\n";
&JScfm(checkBuy,"武器を購入します。よろしいですか?");
local($Flag=0);
$buy="<select name=buyw $STYLE_L>";
while (my($key,$value) = each %WEAPON_LIST){
if (length($key) == 1){
my @ByW = split(/\,/,$value);
if (!$PL_VALUES[5]){$ByW[5]=int ($ByW[5]*0.8);}
#### ここから
if($ByW[5] <= $PL_VALUES[8] && $ByW[6] != 1 && $ByW[6] != 4 && $ByW[6] != 5){
if($ByW[6] == 2 or $ByW[6] == 3 or $ByW[6] == 6 or $ByW[6] == 7){
print "<tr><td> $ByW[0]</td><td>\$$ByW[5]</td></tr>";
$buy.="<option value=$key>$ByW[0]\n";$Flag++;}
}
if($ByW[5] <= $PL_VALUES[8] && $ByW[6] eq "a" && $PL_VALUES[29] >= 100){
print "<tr><td> $ByW[0]</td><td>\$$ByW[5]</td></tr>";
$buy.="<option value=$key>$ByW[0]\n";$Flag++;}
if($ByW[5] <= $PL_VALUES[8] && $ByW[6] eq "b" && $PL_VALUES[29] >= 200){
print "<tr><td> $ByW[0]</td><td>\$$ByW[5]</td></tr>";
$buy.="<option value=$key>$ByW[0]\n";$Flag++;}
#### ここまで
}
}
この部分をそっくり入れ替えてください。見比べつつ(笑)←いつも適当でみなさんすいません。
$PL_VALUES[29] >= 100ってなっている物はレベル100以上で買えるようになるという事です。その辺は自分で調整してくださいね^^
あとebs_sub6.cgiの
<tr><td class=td1>武器</td><td><select name=w $STYLE_L>
-----END-----
while (my($wkey,$wvalue) =each %WEAPON_LIST) {
#### ここから
if (length($wkey) == 1){my@w=split(/,/,$wvalue);print "<option value=$wkey>$w[0]\n" if $w[6] !=2 && $w[6] !=6 && $w[6] !=4 && $w[6] ne "a" && $w[6] ne "b";}
#### ここまで
}
print "</select></tr><tr><td class=td1>色</td>";
指定部分をこう変えてください。これでスタート時にもてなくなります。
最後に_hash.dataで
"a"=>"ビームナギナタ,2500,65,2,40,5000,7←ここ,0",
"aa"=>"メガビームナギナタ,3000,65,2,50,10000,7,0",
"aaa"=>"大型ビームナギナタ,5000,65,2,100,20000,7,0",
「ここ」の部分を「a」にするとレベル100以上で買えるようになり
「b」にするとレベル200以上で買えるようになります。
・・・そしていつものごとく動作報告&フォローできる方・・すいませんが・・(汗)(笑)||||||レベルが上がるにつれて購入できる武器の種類が増えます。
|||end|||
cookbook|||2001/11/13/Tue|||00:21:18|||aaQSqAReePlq6|||バランス|||コナミレディ|||||||||http://|||10|||こんなのどうよ?|||HPが1以上〜1万未満がNT
HPが1万以上〜2万未満がNT1
HPが2万以上〜3万未満がNT2
ってな感じでHPが上がるごとにステータスの
上限が上がるってのはどうよ?
HP低い方が有利ってのが根強いからさ。||||||HPごとに強くなる|||end|||
cookbook|||2001/11/14/Wed|||20:30:45|||aaAf4cf4JT03s|||戦闘|||きゅきゅ|||cucu@ge-sen.com|||うさ団の小屋|||http://penet-japan.com/usa/|||10|||自国・情報で大破中のキャラに×マークを表示|||自国表示
ebs_sub2.cgiのMY_LIST2内
sub TR {
#ここから
($DatHp,$Result) = split(/!/,$VALUES[1]);
if(($VALUES[15] + int(($DATE-$DatHp)*$HP_REPAIR)) >= $VALUES[16]){
$VALUES[15]=$VALUES[16];$VALUES[25]=0 if $VALUES[25] == 1;
}
if ($VALUES[25] && !$VALUES[15]){$hoga="<font color = red><b>×</b></font>";}else{$hoga="";}
#ここまで追加
#$Keyの前に$hoga追加
$VALUES[7]='No-Comment'if !$VALUES[7];"<tr><td nowrap style=\"color:$VALUES[13];\">$hoga$Key</td><td>".&RANK($VALUES[0],$VALUES[5],$VALUES[6])."</td><td><img src=$IMG_FOLDER2/$VALUES[27].gif width=32 height=32></td><td style=\"color:$VALUES[13];\">$VALUES[7]</td></tr>"
}
情報表示
ebs_sub3.cgi内のCNTRY_LIST内sub TR部分を上記と同じように変更する。||||||うまく動かなかったり見当違いな事をやっているかもしれません。その際はどうかご容赦を・・・。|||end|||
cookbook|||2001/11/16/Fri|||12:30:41|||aauRQxEFIki9k|||武器|||piper||||||The Pit of GHB別館|||http://isweb38.infoseek.co.jp/play/arclich/|||10|||特殊効果二つ|||ドレイン
ebs_sub4.cgiの468行目付近
if ($Pl_W[7] =~ m/1/){
if (rand(255) > 240){print "<font color=#8000ff>敵攻撃力にダメージ</font><br>\n";$VS_VALUES[19]--;}
if (rand(255) > 240){print "<font color=#8000ff>敵防御力にダメージ</font><br>\n";$VS_VALUES[20]--;}
if (rand(255) > 240){print "<font color=#8000ff>敵回避力にダメージ</font><br>\n";$VS_VALUES[21]--;}
if (rand(255) > 240){print "<font color=#8000ff>敵命中力にダメージ</font><br>\n";$VS_VALUES[22]--;}
}
の前あたりに、以下を追加。ただし、●は特殊効果の番号。
$Pl_Drain = 0;$Vs_Drain = 0;
if ($Pl_W[7] =~ m/●/ && rand(100) > 80){
print "<font color=#80ff00>黒き刃が$VS_VALUES[3]の生命力を吸い取った。</font><br>\n";
if($PL_VALUES[16] > $VS_VALUES[15]){
$Pl_Drain = int(rand($VS_VALUES[15]*0.3));
}else{
$Pl_Drain = int(rand($PS_VALUES[16]*0.3));
}
$VS_VALUES[15]-=$Pl_Drain;
$PL_VALUES[15]+=$Pl_Drain;
}
if ($Vs_W[7] =~ m/●/ && rand(100) > 80){
print "<font color=#80ff00>黒き刃が$PL_VALUES[3]の生命力を吸い取った。</font><br>\n";
if($VS_VALUES[16] > $PL_VALUES[15]){
$Vs_Drain = int(rand($PL_VALUES[15]*0.3));
}else{
$Vs_Drain = int(rand($VS_VALUES[16]*0.3));
}
$PL_VALUES[15]-=$Vs_Drain;
$VS_VALUES[15]+=$Vs_Drain;
}
リフレクト改
ebs_sub4.cgiの245行目付近
$VsMsnNo=int(rand(8)+1);
&SYUSEI('m',"$VsMsnNo",'Vs');
&SYUSEI('s',"$PL_VALUES[12]",'Pl');
&SYUSEI('s',"$VS_VALUES[12]",'Vs');
の前あたりに、以下を追加。
$Pl_AttPoint = int ($Pl_AttPoint + $Vs_AttPoint*0.5) if $Pl_W[7] =~ m/9/;
$Vs_AttPoint = int ($Vs_AttPoint + $Pl_AttPoint*0.5) if $Vs_W[7] =~ m/9/;
$Vs_AttPoint= int ($Vs_AttPoint*0.5) if $Pl_W[7] =~ m/●/;
$Pl_AttPoint = int ($Pl_AttPoint*0.5) if $Vs_W[7] =~ m/●/;
$plbs=int ($PL_VALUES[20]+5) if ($Pl_W[7] =~ m/●/);
$vsbs=int ($VS_VALUES[20]+5) if ($Vs_W[7] =~ m/●/);
$Pl_SpPoint=int ($Vs_SpPoint*0.9) if $Pl_W[7] =~ m/●/;
$Vs_SpPoint=int ($Pl_SpPoint*0.9) if $Vs_W[7] =~ m/●/;
||||||ドレイン:相手のHP吸収。吸収量の最大値は相手のHPの3割と自分の最大HPの3割を比べて小さいほうをとります。
リフレクト改:相手の攻撃のダメージを半減し、その分を相手に撃ち返します。ただし、基本的に相手より先には攻撃できません。|||end|||
cookbook|||2001/11/22/Thu|||20:56:59|||aanHBaQ0dLDAU|||その他|||クレアたん||||||Tactics Ogre de Endless Battle|||http://ogre.s1.xrea.com/|||10|||簡易 IP、HOST制限機能 荒らし対策その2|||注、この改造は IPアドレスや HOST名に関する基本的な知識を持っている人を対象にしています。
まず、config.cgiの85行目付近に
↓↓↓↓ここから↓↓↓↓
##ブラックリスト
$BLACKCHECK='1'; #機能を使う? 1=使う/0=使わん
# ブラックリスト、IPアドレスでの指定可。(追加すれば無限)
$DENYHOST[0] = '212.123.45.';
$DENYHOST[1] = '.so-net.ne.jp';
↑↑↑↑ここまで↑↑↑↑
を追加します。
次に、ebs.cgiの16行目付近の
&ERROR('直リンクは禁止です','入り口からのアクセスお願いします。') if $ENV{'HTTP_REFERER'} !~ m/^$THIS_DIR/ && $DIRECT_LINK && $SUB ne 'MY_LIST' && $SUB ne 'C_LIST';
の下に
↓↓↓↓ここから↓↓↓↓
if ($BLACKCHECK && $SUB ne 'MY_LIST' && $SUB ne 'C_LIST') {
$addr = $ENV{'REMOTE_ADDR'};
$host = $ENV{'REMOTE_HOST'};
if (($host eq $addr) || ($host eq '')) {$host = gethostbyaddr(pack('C4',split(/\./,$addr)),2) || $addr;}
foreach (@DENYHOST) {
$_ =~ s#\~#.*#g;
if ($host =~ m#$_#i || $addr =~ m#$_#i) {$BLACKFLAG=1;}
}
if ($BLACKFLAG) {&ERROR('出入り禁止です','あなたは公序良俗に反する行動を取った為、管理人からアクセス拒否されています。');}
}
↑↑↑↑ここまで↑↑↑↑
を挿入します。これで終わりです。
以下は補足説明・・・
アクセス制限はIPアドレス、HOST名のどちらでも指定可能です。
制限をかけたいIPアドレス、又はHOST名を
$DENYHOST[0] = '212.123.45.67';
のように記述してください。
複数制限する場合は
$DENYHOST[0] = '212.123.45.67';
の$DENYHOST[0]←この数字を増やしながら複数設定してください。
$DENYHOST[0] = '212.123.45.67';
$DENYHOST[1] = '.so-net.ne.jp';
$DENYHOST[2] = '64.98.76.';
・・・こんな感じ。
ヒント。制限をかけたい人が・・・
ダイアルアップ接続をしているのなら、
IPアドレスの123.45.67.89の123.45.67.の部分を設定すると良いです。
CATV接続だった場合、
この制限機能を使うと、そのCATV接続を利用しているすべての人が制限される可能性があります。
この制限機能を使わない場合は$BLACKCHECKを0に設定すればOKです。
もちろん、使う場合は1に設定。。。
IPアドレスや HOST名についての質問は受け付けません。分からなければ自分で勉強してください(^^;
||||||IPアドレスや HOST名に制限をかける事ができます。
(何度注意しても、聞いてくれない場合などに使ってください。
安易に制限をかけると、トラブルの元になります。)|||end|||