[其它]WOG4精鍊BUG

BUG回報,BUG修改教學

版主: 涅魂, 簫哥


ETERNAL
 
文章: 2937
註冊時間: 2003-12-03 11:08 pm
性別: 男生

[其它]WOG4精鍊BUG

文章ETERNAL » 2010-02-17 2:30 am

1.修正沒有檢查裝備的精鍊上限
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]);
   }





回到 臭蟲BUG區

誰在線上

正在瀏覽這個版面的使用者:沒有註冊會員 和 1 位訪客

cron