#!/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>
	&nbsp;武器合成所</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;