[外掛](ALL)掉寶選用Treasure Class System

版主: 涅魂, 簫哥

頭像
New-TypeChobits
 
文章: 176
註冊時間: 2003-12-12 9:44 am
來自: HONG KONG
性別: 男生

[外掛](ALL)掉寶選用Treasure Class System

文章New-TypeChobits » 2004-04-05 10:48 pm

對PHP及MySQL不熟悉的玩家... 勿試...
在wog_player 加入欄位"p_magicfind",在wog_monster加入欄位"t_class",在wog_df加入欄位"t_class"及"t_getr".
欄位功用:
p_magicfind(玩家的打寶率)
t_class (物品的寶物等級)
t_getr (物品的最得機率)
優點:TC越高的怪可以掉所有在它TC以下的Item.例如: ItemA 的TC是3, 而怪物的TC是10.. 那就有機會掉... 如Item的TC是10.. 怪物的TC只有3.. 那就永不會掉了...
缺點:如果player的MF很高.. 那就會檢到一大堆垃圾.. -.-"

Get_Item的Funtion作以下修改:
代碼: 選擇全部
get_item($user_id,$m[t_class],$p[p_magicfind]);

function get_item($user_id,$t_class,$magic_find)
{
 
   
        global $DB_site,$a_id;
   $sql="select d_id,d_name,d_type,t_class,t_getr from wog_df where t_class<=".$t_class." ORDER BY RAND() LIMIT 1";
   $item=$DB_site->query_first($sql);
        if((rand(1,$item[t_getr])/$magic_find)<=1)
        {
   check_type($item[d_type],1);
   $sql="select ".$a_id." from wog_item where p_id=".$user_id."";
   $pack=$DB_site->query_first($sql);
   $pack[0]=trim($pack[0]);
   $temp_pack=split(",",$pack[0]);
   if((count($temp_pack)+1) <= 10)
   {
      if($pack[0]=="N/A" || empty($pack[0]))
      {
         $pack[0]=$item[d_id];
      }else
      {
         if(substr($pack[0],strlen($pack[0])-1,strlen($pack[0]))==",")
         {
            $pack[0].="".$item[d_id];
         }else
         {
            $pack[0].=",".$item[d_id];
         }
      }
      $DB_site->query("update wog_item set ".$a_id."='".$pack[0]."' where p_id=".$user_id."");
      echo "parent.get_item('$item[d_name]',1)\n";
   }else
   {
      echo "parent.get_item('$item[d_name]',0)\n";
   }
       
        }
   unset($item);
   unset($temp_pack);
   unset($pack);
   unset($a_id);
}


這只是參考的code.. 看不懂的... 別問我這有什么功用.. -.-"




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

文章ETERNAL » 2004-04-05 11:01 pm

這樣的掉寶方式很有意思..
改成這樣,任何怪就有可能掉任何東西
蠻特別的


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


涅魂
 
文章: 4463
註冊時間: 2004-01-04 11:17 am
來自: Taiwan
性別: 男生

文章涅魂 » 2006-05-06 10:19 am

補上2.08版本的安裝方式(轉自精華區)

這個外掛開發的時候是因應2.05版而設計的,而目前新版的2.08版的程式結構與以前的截然不同,因此有部分需要調整(其實也沒多少....),以下列出2.08版的完整安裝方法 :wink:

在您的資料庫輸入下列語法
代碼: 選擇全部
ALTER TABLE `wog_player` ADD `p_magicfind` SMALLINT( 5 ) UNSIGNED DEFAULT '1' NOT NULL ;
ALTER TABLE `wog_df` ADD `t_class` SMALLINT( 5 ) UNSIGNED DEFAULT '1' NOT NULL ,
ADD `t_getr` SMALLINT( 5 ) UNSIGNED DEFAULT '1' NOT NULL ;
ALTER TABLE `wog_monster` ADD `t_class` SMALLINT( 5 ) UNSIGNED DEFAULT '1' NOT NULL ;


開啟檔案wog/class/wog_fight_event.php

尋找
代碼: 選擇全部
function get_item($user_id,$m_d_id)
{
..........
..........
..........
}


覆蓋為
代碼: 選擇全部
function get_item($user_id,$t_class,$magic_find)
{
 
   
        global $DB_site,$a_id;
   $sql="select d_id,d_name,d_type,t_class,t_getr from wog_df where t_class<=".$t_class." ORDER BY RAND() LIMIT 1";
   $item=$DB_site->query_first($sql);
        if((rand(1,$item[t_getr])/$magic_find)<=1)
        {
   check_type($item[d_type],1);
   $sql="select ".$a_id." from wog_item where p_id=".$user_id."";
   $pack=$DB_site->query_first($sql);
   $pack[0]=trim($pack[0]);
   $temp_pack=split(",",$pack[0]);
   if((count($temp_pack)+1) <= 10)
   {
      if($pack[0]=="N/A" || empty($pack[0]))
      {
         $pack[0]=$item[d_id];
      }else
      {
         if(substr($pack[0],strlen($pack[0])-1,strlen($pack[0]))==",")
         {
            $pack[0].="".$item[d_id];
         }else
         {
            $pack[0].=",".$item[d_id];
         }
      }
      $DB_site->query("update wog_item set ".$a_id."='".$pack[0]."' where p_id=".$user_id."");
      echo "parent.get_item('$item[d_name]',1)\n";
   }else
   {
      echo "parent.get_item('$item[d_name]',0)\n";
   }
       
        }
   unset($item);
   unset($temp_pack);
   unset($pack);
   unset($a_id);
}


開啟檔案wog/class/wog_fight_select.php

尋找
代碼: 選擇全部
      $sql="select a.p_name,a.p_at,a.p_df,a.p_mat,a.p_mdf,a.p_s,a.p_agl,a.p_hp,a.p_hpmax,a.p_luck
      ,a.p_sat_name,a.p_lv,a.p_exp,a.p_nextexp,a.p_life,a.ch_id,a.a_id,a.p_ch_s_id,a.p_key,a.p_st
      ,f.d_g_hp,f.d_name,a.d_item_id ,a.i_img
      from wog_player a left join wog_df f on a.d_item_id=f.d_id 
      where a.p_id=".$user_id." and a.p_act_time < $datecut and p_lock=0
      ";


覆蓋為
代碼: 選擇全部
      $sql="select a.p_name,a.p_at,a.p_df,a.p_mat,a.p_mdf,a.p_s,a.p_agl,a.p_hp,a.p_hpmax,a.p_luck
      ,a.p_sat_name,a.p_lv,a.p_exp,a.p_nextexp,a.p_life,a.ch_id,a.a_id,a.p_ch_s_id,a.p_key,a.p_st,a.p_magicfind
      ,f.d_g_hp,f.d_name,a.d_item_id ,a.i_img
      from wog_player a left join wog_df f on a.d_item_id=f.d_id 
      where a.p_id=".$user_id." and a.p_act_time < $datecut and p_lock=0
      ";


尋找
代碼: 選擇全部
$wog_event_class->get_item($user_id,$m[d_id]);


覆蓋為
代碼: 選擇全部
$wog_event_class->get_item($user_id,$m[t_class],$p[p_magicfind]);


儲存,關閉所有檔案
完畢。 :wink:


圖檔


回到 外掛區

誰在線上

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