#!/usr/local/bin/perl #_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/ # # The ENDLESS BATTLE sub system - by.Darselle # 合成システム # # EB-S内での使用および改造は自由。システム公開は改造版であっても # 著作者の許可を得てから。 # ただし、著作者が公開不能になった場合は著作者名公示の上で公開可。 # #_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/ #設定 $SCRIPTNM="gousei.cgi"; #ファイル名(パーミッション755) $FORMING="2"; #login=0、submit=1、cookie=2 $kane="10000"; #一回の合成にかかる費用 @gousei=("a!a!aa","a!b!c"); #単純に種類で合成(種類1!種類2!結果) @mazeyo=("d!e!f","h!g!o"); #系統で合成&世代が平均(系統1!系統2!結果) @kitaer=("a!c!e","e!n!t"); #系統で合成&世代が両方の和(系統1!系統2!結果) $MISS='25'; #消滅率% #設定終了 #_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/ require 'ebs_sub1.cgi' if !$MAIN_SCRIPT; &ERROR('直リンクは禁止です','入り口からのアクセスお願いします。') if $ENV{'HTTP_REFERER'}!~/^$THIS_DIR/ && $DIRECT_LINK; if($FORMING==2){ @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;} $FORM{'pname'}=$COOKIE{'pname'};$FORM{'pass'}=$COOKIE{'pass'}; } @copyr=('Darselle','http://csyuki.sakura.ne.jp/ebgide/'); $SUB='LOGINS' if !$SUB && !$FORMING; $SUB='MIX' if !$SUB && $FORMING; &$SUB; sub LOGINS{ &HEADER; print << " -----END-----"; <table width=100% height=100%><tr><td align=center> <table border=0 cellpadding=0 cellspacing=0 bgcolor="$TABLE_COLOR1" align=center style="border:1px outset #909090;font-size:16px;"> <form action=$SCRIPTNM method=POST><input type=hidden name="cmd" value="MIX"> <tr><td bgcolor="$TABLE_COLOR2" colspan=2> 武器合成所</td></tr> <tr><td align=center><b>ID</b></td> <td><input type=text name="pname" value="$FORM{'pname'}" style="height:21px;color:#ffffff;font-size:16px;background:#000000;border:1 inset #c0c0c0;"> <tr><td align=center><b>PASS</b></td> <td><input type=password name="pass" value="$FORM{'pass'}" style="height:21px;color:#ffffff;font-size:16px;background:#000000;border:1 inset #c0c0c0;"> <input type=submit value=Login $STYLE_B1> </td></tr></form></table> </td></tr></table> </body></html> -----END----- } sub MIX{ &LOCK;&DBM_CONVERT('P',"$FORM{pname}");&UNLOCK; &HEADER; require "./$LOG_FOLDER/$HASH_DATA"; 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]); @WN_sA=split(/\,/,$WEAPON_LIST{"$WN_A"}); @WN_sB=split(/\,/,$WEAPON_LIST{"$WN_B"}); @WN_sC=split(/\,/,$WEAPON_LIST{"$WN_C"}); $BUKI="<select size=1 name=\"buki2\" $STYLE_L>\n"; if($WN_B){$BUKI.="<option value=10>$WN_sB[0] \n";$a++;} if($WN_C){$BUKI.="<option value=11>$WN_sC[0] \n";$a++;} $BUKI .= "</select>"; $BUKI="なし" if !$a; &JScfm(checkIn,"合成します。失敗してもよろしいですか?"); print << " -----END-----"; <form action=$SCRIPTNM method=POST name=Ms target="Sub"> <input type=hidden name=cmd value=GOUSEI2> <input type=hidden name=pname value=$FORM{'pname'}> <input type=hidden name=pass value=$FORM{'pass'}> <div align=center><br> <table bgcolor="$TABLE_COLOR1" bordercolor="$TABLE_BORDER" border=3 cellspacing=0 style="font-size:10pt;"> <tr><td bgcolor="$TABLE_COLOR2"><b>合成</b></td></tr> <tr><td colspan=4><b>素材選択</b><br> <br><table><tr><td><font size=2>武器1</font></td><td>$WN_sA[0]<input type=hidden name="buki1" value="$WN_A" $STYLE_B1></td></tr> <tr><td><font size=2>武器2</font></td><td>$BUKI</td></tr></table><br> 合成資金;\$$kane<br> <br><div align=center> -----END----- print "<input type=submit name=\"Cmode\" value=\"合成\" $STYLE_B1 onClick='".(!$a?"alert (\"予\備がありません。\");return false'>":$PL_VALUES[8]<$kane?"alert (\"お金が足りません\");return false;'>":"return checkIn()'>")."</div>"; print "<font size=2>説明:<br>装備武器と持っている武器を組み合わせます。<br>素材の強さよりレベルが低い場合は出来ません。<br>正しい組み合わせだと必ず成功します。<br>しかし失敗すると…</font></td></tr></table></div></form>\n"; print "<BR><center>合成:CREATED BY <a href=\"$copyr[1]\" style=\"color:#a9a9a9\" target=\"_blank\">$copyr[0]</a></center>\n"; &FOOTER; } sub GOUSEI2{ &LOCK; &DBM_CONVERT('P',"$FORM{pname}"); &ERROR('あんた誰?') if !$PL_VALUES[3]; &UNLOCK; $_="$FORM{'Cmode'}"; local($WN_A,$WLV_A)=split(/!/,$PL_VALUES[9]); $BUKI=$FORM{'buki2'} eq 'B'?$PL_VALUES[10]:$PL_VALUES[11]; local($WN_B,$WLV_B)=split(/!/,$BUKI); $NAGASA=int((length($WN_A)+length($WN_B))/2); if($PL_VALUES[29]<$NAGASA*10){&ERROR('レベルが足りません。','武器を戻します。');} $NAME1=substr($WN_A,0,1);$NAME2=substr($WN_B,0,1); CUSTOM:{ /^合成$/ && do{ foreach(@gousei){ ($n1,$n2,$n3)=split(/!/,$_); if($WN_A eq $n1 && $WN_B eq $n2){$MIXED=$n3;} elsif($WN_A eq $n2 && $WN_B eq $n1){$MIXED=$n3;} } foreach(@kitaer){ ($m1,$m2,$m3)=split(/!/,$_); if($NAME1 eq $m1 && $NAME2 eq $m2){ $nagasa=length($WN_A)+length($WN_B); for($c=1;$c<=$nagasa;$c++){$MIXED.=$m3;} } elsif($NAME1 eq $m2 && $NAME2 eq $m1){ $nagasa=length($WN_A)+length($WN_B); for($c=1;$c<=$nagasa;$c++){$MIXED.=$m3;} } } foreach(@mazeyo){ ($k1,$k2,$k3)=split(/!/,$_); if($NAME1 eq $k1 && $NAME2 eq $k2){ for($c=1;$c<=$NAGASA;$c++){$MIXED.=$k3;} } elsif($NAME1 eq $k2 && $NAME2 eq $k1){ for($c=1;$c<=$NAGASA;$c++){$MIXED.=$k3;} } } &ERROR('失敗しそうになりました。') if !$MIXED && rand(100)>$MISS; $MIXED="a" if !$MIXED;$PL_VALUES[8]-=$kane;$PL_VALUES[9]=$MIXED; if($FORM{'buki2'} eq 'B'){$PL_VALUES[10]='';} else{$PL_VALUES[11]='';} last CUSTOM;}; } &ERROR('資金が足りません。') if $PL_VALUES[8]<0; &LOCK; dbmopen (%PL,"$DBM_P",0666);$PL{"$FORM{'pname'}"}="@PL_VALUES";dbmclose %PL; &UNLOCK; print << "-----BACK-----"; <html><head></head><body onload="gousei.submit()"> <form action=$MAIN_SCRIPT method=POST name=gousei target=Main style="visibility:hidden" onSubmit="parent.Sub.location.replace('$MAIN_SCRIPT?LOGO');"> <input type=hidden name=cmd value=MAIN_FRAME> <input type=hidden name=pname value="$FORM{'pname'}"> <input type=hidden name=pass value="$FORM{'pass'}"> 成功しました。 </form></body></html> -----BACK----- } 1;