[分享]寵物能力爆增BUG解決法

BUG回報,BUG修改教學

版主: 涅魂, 簫哥

aaasss9555
 
文章: 172
註冊時間: 2009-07-30 9:15 pm

[分享]寵物能力爆增BUG解決法

文章aaasss9555 » 2009-12-31 9:25 pm

當寵物能力小於0時,會變成
WOG不管在哪個版本都有的大BUG,我用WOG4得程式作範例

開啟./class/wog_act_pet.php
在function pet_ac()裡面
新增修改紅色部分
代碼: 選擇全部
   function pet_ac($user_id)
   {
      global $DB_site,$_POST,$wog_arry,$lang;

       ----------省略----------

         if(rand(1,100) < $leave)
         {
            $DB_site->query("delete from wog_pet where pe_p_id=".$user_id." and pe_id=".$_POST["pay_id"]);
            showscript("parent.job_end(17)");
         }
*/
      }else
      {
         alertWindowMsg($lang['wog_act_pet_nopet']);
      }
      [color=red]$p=$DB_site->query_first("select pe_at,pe_mt,pe_def,pe_fi from wog_pet where pe_p_id=".$user_id." and pe_id=".$_POST["pay_id"]." ");[/color]
      $at="+0";$mt="+0";$def="+0";$fi="+0";$fu="+0";
      switch ($_POST["temp_id"])
      {
         case "1":
            $at="+3";$mt="-1";$def="-1";
            [color=red]$p[pe_at]=$p[pe_at]+3;$p[pe_mt]=$p[pe_mt]-1;$p[pe_def]=$p[pe_def]-1;[/color]
         break;
         case "2":
            $at="-1";$mt="+3";$fi="-1";
            [color=red]$p[pe_at]=$p[pe_at]-1;$p[pe_mt]=$p[pe_mt]+3;$p[pe_fi]=$p[pe_fi]-1;[/color]
         break;
         case "3":
            $at="-1";$mt="-1";$def="+3";
            [color=red]$p[pe_at]=$p[pe_at]-1;$p[pe_mt]=$p[pe_mt]-1;$p[pe_def]=$p[pe_def]+3;[/color]
         break;
         case "4":
            $fi="+2";$def="-2";
            [color=red]$p[pe_fi]=$p[pe_fi]+2;$p[pe_def]=$p[pe_def]-2;[/color]
         break;
      }
      $hu=rand(5,9);
      $he=rand(0,3);
      $p["pe_he"]=$p["pe_he"]-$he;
      if($p["pe_he"] < 0){$p["pe_he"]=0;}
      [color=red]if($p["pe_at"] < 0){$p["pe_at"]=0;}
      if($p["pe_mt"] < 0){$p["pe_mt"]=0;}
      if($p["pe_def"] < 0){$p["pe_def"]=0;}
      if($p["pe_fi"] < 0){$p["pe_fi"]=0;}[/color]
      $DB_site->query("update wog_pet set [color=red]pe_at=".$p["pe_at"].",pe_mt=".$p["pe_mt"].",pe_def=".$p["pe_def"].",pe_fi=".$p["pe_fi"]."[/color],pe_hu=pe_hu+".$hu.",pe_he=".$p["pe_he"].",pe_dateline=".time()." where pe_p_id=".$user_id." and pe_id=".$_POST["pay_id"]);
      if($p)
      {
         showscript("parent.pet_detail('$at','$mt','$def','+$hu','$fu','-$he','$fi')");
      }else
      {
         alertWindowMsg($lang['wog_act_pet_nopet']);
      }
      unset($p);
   }



書本的好壞不在於厚度而是內容;
人生的意義在於內涵而不是長短。

狂人kkill
 
文章: 28
註冊時間: 2009-12-25 2:06 am

文章狂人kkill » 2010-01-01 3:15 am

HI,之前这个宠物BUG都存在,不知ET大大为什么不在V4中修正.不过我一直用V3.应该跟V4都一样吧.解决方法其实就在练宠的时候加些判断就行了.比如说"at+3,mt-2,df-1",在之前先判断宠自身的数据执行这煅练后数据后的变化,比如df-1后,宠数据会小于0就判断df-0,防止溢出暴增.


没有不可能完成的事情,只有懒散不去完成事情的人!

aaasss9555
 
文章: 172
註冊時間: 2009-07-30 9:15 pm

文章aaasss9555 » 2010-01-01 11:40 am

根據之前ET大的說法,他測試時不會發生此問題
所以應該是PHP版本的問題


書本的好壞不在於厚度而是內容;
人生的意義在於內涵而不是長短。


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

文章ETERNAL » 2010-01-01 12:26 pm

跟MySQL版本有關


水色論壇 http://www.et99.net
簡恩峻分享

狂人kkill
 
文章: 28
註冊時間: 2009-12-25 2:06 am

文章狂人kkill » 2010-01-01 4:02 pm

既然PHP版本的不同会产生这BUG,那么有朋友发现了.就做下工夫,加几行代码,杜绝后患吧.


没有不可能完成的事情,只有懒散不去完成事情的人!

minglo
 
文章: 250
註冊時間: 2004-01-17 10:05 am
來自: hong kong

文章minglo » 2010-01-01 9:20 pm

這個是Mysql 5版的out of range問題,凡是0減1的時候就會出現,唯一的方法就是改檔案避免出現負數out of range問題


歡迎來到我的論壇:
論壇 :
http://www.kw86.com/upload/

WOG:
http://www.kw86.com/upload/wog/


回到 臭蟲BUG區

誰在線上

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

cron