[其它]WOG4精鍊BUG
發表於 : 2010-02-17 2:30 am
1.修正沒有檢查裝備的精鍊上限
2.修正精鍊失敗後,沒有扣掉精鍊石
打開 wog_act_plus.php
把
function plus_make_arm的內容替換成下面代碼
2.修正精鍊失敗後,沒有扣掉精鍊石
打開 wog_act_plus.php
把
function plus_make_arm的內容替換成下面代碼
- 代碼: 選擇全部
function plus_make_arm($user_id)
{
global $DB_site,$_POST,$lang,$wog_item_tool,$wog_arry,$a_id;
//物品字串格式{x1:x2&x3} x1物品id,x2鑲嵌id,x3精練id
if(empty($_POST["temp1"]) || empty($_POST["temp2"]))
{
alertWindowMsg($lang['wog_act_plus_er1']);
}
$d_id1=$_POST["temp1"];
$d_id2=$_POST["temp2"];
$bag_item_id=$d_id2;
$len=strlen($d_id2);
$len2=strcspn($d_id2,":");
$len3=strcspn($d_id2,"&");
switch(true)
{
case $len==$len2 && $len==$len3: //無鑲嵌,無精練
$item_id=$d_id2;
$ps_id=0;
break;
case $len!=$len2 && $len==$len3: //有鑲嵌,無精練
$adds=split(":",$d_id2);
$item_id=$adds[0];
$ps_id=0;
break;
case $len==$len2 && $len!=$len3: //無鑲嵌,有精練
$adds=split("&",$d_id2);
$item_id=$adds[0];
$ps_id=$adds[1];
break;
case $len!=$len2 && $len!=$len3: //有鑲嵌,有精練
$adds=split(":",$d_id2);
$item_id=$adds[0];
$adds=split("&",$d_id2);
$ps_id=$adds[1];
break;
}
$sql="select b.d_lv,b.d_at,b.d_mat,b.d_df,b.d_mdf,b.d_str,b.d_agi,b.d_smart,b.d_life,b.d_vit,b.d_au,b.d_be from wog_plus_list b where b.d_id =$d_id1";
$plus=$DB_site->query_first($sql);
if(!empty($ps_id))
{
$sql="select b.plus_num,b.d_at,b.d_mat,b.d_df,b.d_mdf,b.d_str,b.d_agi,b.d_smart,b.d_life,b.d_vit,b.d_au,b.d_be from wog_plus_setup b where b.ps_id =$ps_id";
$plus_setup=$DB_site->query_first($sql);
}
else
{
$plus_setup[plus_num]=0;
$plus_setup[d_at]=0;
$plus_setup[d_mat]=0;
$plus_setup[d_df]=0;
$plus_setup[d_mdf]=0;
$plus_setup[d_str]=0;
$plus_setup[d_agi]=0;
$plus_setup[d_smart]=0;
$plus_setup[d_life]=0;
$plus_setup[d_vit]=0;
$plus_setup[d_au]=0;
$plus_setup[d_be]=0;
}
$plus_setup[plus_num]++;
if($plus_setup[plus_num]!=$plus[d_lv])
{
alertWindowMsg(sprintf($lang['wog_act_plus_er4'],$plus_setup[plus_num]));
}
$sql="select d_fie,d_plus from wog_df where d_id=$item_id";
$item=$DB_site->query_first($sql);
$a_id2=type_name($item[d_fie]);
if($item[d_plus] < $plus_setup[plus_num])
{
alertWindowMsg($lang['wog_act_plus_er7']);
}
$r=rand(1,100);
if(10*$plus_setup[plus_num] > $r)
{
$DB_site->query_first("set autocommit=0");
$DB_site->query_first("BEGIN");
$sql="select d_plus_id from wog_item where p_id=".$user_id." for update";
$item=$DB_site->query_first($sql);
$a_id="d_plus_id";
$items=array();
if(!empty($item[$a_id]))
{
$items=split(",",$item[$a_id]);
}
$items=$wog_item_tool->item_out($user_id,$d_id1,1,$items);
$DB_site->query("update wog_item set d_plus_id='".implode(',',$items)."' where p_id=".$user_id);
$DB_site->query_first("COMMIT");
$this->plus_arm_view($user_id,$lang['wog_act_plus_msg1']);
}
if(!empty($plus[d_at]))
{
$m=split(",",$plus[d_at]);
$plus_setup[d_at]+=rand($m[0],$m[1]);
}
if(!empty($plus[d_mat]))
{
$m=split(",",$plus[d_mat]);
$plus_setup[d_mat]+=rand($m[0],$m[1]);
}
if(!empty($plus[d_df]))
{
$m=split(",",$plus[d_df]);
$plus_setup[d_df]+=rand($m[0],$m[1]);
}
if(!empty($plus[d_mdf]))
{
$m=split(",",$plus[d_mdf]);
$plus_setup[d_mdf]+=rand($m[0],$m[1]);
}
if(!empty($plus[d_str]))
{
$m=split(",",$plus[d_str]);
$plus_setup[d_str]+=rand($m[0],$m[1]);
}
if(!empty($plus[d_agi]))
{
$m=split(",",$plus[d_agi]);
$plus_setup[d_agi]+=rand($m[0],$m[1]);
}
if(!empty($plus[d_smart]))
{
$m=split(",",$plus[d_smart]);
$plus_setup[d_smart]+=rand($m[0],$m[1]);
}
if(!empty($plus[d_life]))
{
$m=split(",",$plus[d_life]);
$plus_setup[d_life]+=rand($m[0],$m[1]);
}
if(!empty($plus[d_vit]))
{
$m=split(",",$plus[d_vit]);
$plus_setup[d_vit]+=rand($m[0],$m[1]);
}
if(!empty($plus[d_au]))
{
$m=split(",",$plus[d_au]);
$plus_setup[d_au]+=rand($m[0],$m[1]);
}
if(!empty($plus[d_be]))
{
$m=split(",",$plus[d_be]);
$plus_setup[d_be]+=rand($m[0],$m[1]);
}
$DB_site->query_first("set autocommit=0");
$DB_site->query_first("BEGIN");
$sql="select d_plus_id,$a_id2 from wog_item where p_id=".$user_id." for update";
$item=$DB_site->query_first($sql);
$a_id="d_plus_id";
$items=array();
if(!empty($item[$a_id]))
{
$items=split(",",$item[$a_id]);
}
$items=$wog_item_tool->item_out($user_id,$d_id1,1,$items);
$a_id=$a_id2;
$items2=array();
if(!empty($item[$a_id]))
{
$items2=split(",",$item[$a_id]);
}
$items2=$wog_item_tool->item_out($user_id,$bag_item_id,1,$items2);
if(!empty($ps_id))
{
$sql="update wog_plus_setup set plus_num=".$plus_setup[plus_num].
",d_at=".$plus_setup[d_at].
",d_mat=".$plus_setup[d_mat].
",d_df=".$plus_setup[d_df].
",d_mdf=".$plus_setup[d_mdf].
",d_str=".$plus_setup[d_str].
",d_agi=".$plus_setup[d_agi].
",d_smart=".$plus_setup[d_smart].
",d_life=".$plus_setup[d_life].
",d_vit=".$plus_setup[d_vit].
",d_au=".$plus_setup[d_au].
",d_be=".$plus_setup[d_be]." where ps_id=".$ps_id;
$DB_site->query($sql);
}else
{
$sql="insert wog_plus_setup(p_id,d_id,plus_num,d_at,d_mat,d_df,d_mdf,d_str,d_agi,d_smart,d_life,d_vit,d_au,d_be)values(
$user_id,
$item_id,
$plus_setup[plus_num],
$plus_setup[d_at],
$plus_setup[d_mat],
$plus_setup[d_df],
$plus_setup[d_mdf],
$plus_setup[d_str],
$plus_setup[d_agi],
$plus_setup[d_smart],
$plus_setup[d_life],
$plus_setup[d_vit],
$plus_setup[d_au],
$plus_setup[d_be]
)";
$DB_site->query($sql);
$ps_id=$DB_site->insert_id();
$bag_item_id.="&".$ps_id;
}
$items2=$wog_item_tool->item_in($items2,$bag_item_id,1);
$DB_site->query("update wog_item set d_plus_id='".implode(',',$items)."',$a_id2='".implode(',',$items2)."' where p_id=".$user_id);
$DB_site->query_first("COMMIT");
$sql="select d_name from wog_df where d_id=".$item_id;
$get_name=$DB_site->query_first($sql);
$this->plus_arm_view($user_id,$get_name[d_name]."+".$plus_setup[plus_num]);
}