[外掛](ALL)裝備特性化.改

版主: 涅魂, 簫哥


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

[外掛](ALL)裝備特性化.改

文章涅魂 » 2006-01-22 5:20 pm

代碼: 選擇全部
//=====================================================
// 外掛名稱:裝備特性化.改
// 作者: 涅魂
// 創作時間:2006.01.22
//=====================================================

今天突然靈機一動就寫出這篇了...|||

與先前的裝備特性化不同的地方如下列
1.改以資料庫來儲存特性化的資料,大大增加程式碼的可維護性

2.欄位以varchar儲存,使得特性化的彈性提升(可以使用*/或+-)

3.提供一個特別的欄位sk_plus,透過這個欄位可以實現回合變化的特性(尚未實驗過,若有BUG麻煩幫忙說一下^^||)


使用方式:
將欲加入特性的裝備的d_att欄位設為指定特性的sk_id即可

wog_skill內容設定方式 寫:假定要新增一筆id為5,名稱為"測試特性",效能為物理攻擊力加倍並加上每回合攻擊力增加1的暫時效果,則內容設定方式如下
sk_id = 5
sk_name = 測試特性
sk_at = *2
sk_plus = \$p[p_at]+=1;


開始安裝前請記得將舊版的裝備特性化移除,否則可能會出現錯誤!

##########開始安裝##########
※建立wog_skill資料表
請在您的資料庫中輸入下列語法 寫:CREATE TABLE `wog_skill` (
`sk_id` int(10) unsigned NOT NULL auto_increment,
`sk_name` varchar(10) NOT NULL default '',
`sk_at` varchar(10) NOT NULL default '',
`sk_mat` varchar(10) NOT NULL default '',
`sk_df` varchar(10) NOT NULL default '',
`sk_mdf` varchar(10) NOT NULL default '',
`sk_agl` varchar(10) NOT NULL default '',
`sk_m_at` varchar(10) NOT NULL default '',
`sk_m_mat` varchar(10) NOT NULL default '',
`sk_m_df` varchar(10) NOT NULL default '',
`sk_m_mdf` varchar(10) NOT NULL default '',
`sk_m_agl` varchar(10) NOT NULL default '',
`sk_hp` varchar(10) NOT NULL default '',
`sk_exp` varchar(10) NOT NULL default '0',
`sk_money` varchar(10) NOT NULL default '',
`sk_mlv` mediumint(6) unsigned NOT NULL default '0',
`sk_plus` text NOT NULL,
PRIMARY KEY (`sk_id`)
) TYPE=MyISAM AUTO_INCREMENT=0 ;


※建立位於wog_df中的d_att欄位

請在您的資料庫中輸入下列語法 寫:ALTER TABLE `wog_df` ADD `d_att` SMALLINT( 3 ) UNSIGNED DEFAULT '0' NOT NULL ;


※為防止取值時出現錯誤,請自行在wog_df中新增一筆d_id=0且d_att=0的資料

開啟檔案wog/wog_class.php 寫:Find
代碼: 選擇全部
function fight_count($user_id,$p,$m,$cp=0)


replace
代碼: 選擇全部
function fight_count($user_id,$p,$m,[color=red]$att="",$cp=0[/color])


In fight_count Function

Find
代碼: 選擇全部
//######### pact ##########(己方攻擊開始)


After add
代碼: 選擇全部
[color=red]            if(!empty($att["plus"]))
            {
               eval($att["plus"].";");
            }
            if(!empty($att["hp"]))
            {
               eval("\$p[p_hp]=$p[p_hp]$att[hp];");
            }[/color]


Find
代碼: 選擇全部
$money=round($money);


After add
代碼: 選擇全部
[color=red]               if(is_array($att))
               {
                  eval("\$exp=\$exp$att[exp];");
                  eval("\$money=\$money$att[money];");
               }[/color]

開啟檔案wog/class/wog_fight_select.php 寫:In fire Function
Find
代碼: 選擇全部
$pet=$DB_site->query_first($sql);


After add
代碼: 選擇全部
[color=red]            //D_ATT_START
            $att=array("at" => "","mat" => "","df" => "","mdf" => "","agl" => "","m_at" => "","m_mat" => "","m_df" => "","m_mdf" => "","m_agl" => "","sk_hp" => "","money" => "","exp" => "","plus" => "");
            $d=$DB_site->query_first("select a.d_att as a,b.d_att as body,c.d_att as head,d.d_att as hand,e.d_att as foot,f.d_att as item
            from wog_player g left join wog_df a on g.a_id=a.d_id
            left join wog_df b on g.d_body_id=b.d_id
            left join wog_df c on g.d_head_id=c.d_id
            left join wog_df d on g.d_hand_id=d.d_id
            left join wog_df e on g.d_foot_id=e.d_id
            left join wog_df f on g.d_item_id=f.d_id
            where g.p_id=".$user_id." ");
            for($at=0;$at<6;$at++)
            {
               if($d[$at]!=0)
               {
                  $get=$DB_site->query_first("SELECT sk_at,sk_mat,sk_df,sk_mdf,sk_agl,sk_m_at,sk_m_mat,sk_m_df,sk_m_mdf,sk_m_agl,sk_hp,sk_exp,sk_money,sk_plus FROM wog_skill WHERE sk_id=$d[$at]");
                  $att["at"]=(!empty($get["sk_at"]))?$get["sk_at"]:$att["at"];
                  $att["mat"]=(!empty($get["sk_mat"]))?$get["sk_mat"]:$att["mat"];
                  $att["df"]=(!empty($get["sk_df"]))?$get["sk_df"]:$att["df"];
                  $att["mdf"]=(!empty($get["sk_mdf"]))?$get["sk_mdf"]:$att["mdf"];
                  $att["agl"]=(!empty($get["sk_agl"]))?$get["sk_agl"]:$att["agl"];
                  $att["m_at"]=(!empty($get["sk_m_at"]))?$get["sk_m_at"]:$att["m_at"];
                  $att["m_mat"]=(!empty($get["sk_m_mat"]))?$get["sk_m_mat"]:$att["m_mat"];
                  $att["m_df"]=(!empty($get["sk_m_df"]))?$get["sk_m_df"]:$att["m_df"];
                  $att["m_mdf"]=(!empty($get["sk_m_mdf"]))?$get["sk_m_mdf"]:$att["m_mdf"];
                  $att["m_agl"]=(!empty($get["sk_m_agl"]))?$get["sk_m_agl"]:$att["m_agl"];
                  $att["hp"]=(!empty($get["sk_hp"]))?$get["sk_hp"]:$att["hp"];
                  $att["exp"]=(!empty($get["sk_exp"]))?$get["sk_exp"]:$att["exp"];
                  $att["money"]=(!empty($get["sk_money"]))?$get["sk_money"]:$att["money"];
                  $att["plus"]=(!empty($get["sk_plus"]))?$get["sk_plus"]:$att["plus"];
               }
            }
            eval("\$p[p_at]=\$p[p_at]".$att["at"].";");
            eval("\$p[p_mat]=\$p[p_mat]".$att["mat"].";");
            eval("\$p[p_df]=\$p[p_df]".$att["df"].";");
            eval("\$p[p_mdf]=\$p[p_mdf]".$att["mdf"].";");
            eval("\$p[p_agl]=\$p[p_agl]".$att["agl"].";");
            eval("\$m[m_at]=\$m[m_at]".$att["m_at"].";");
            eval("\$m[m_mat]=\$m[m_mat]".$att["m_mat"].";");
            eval("\$m[m_df]=\$m[m_df]".$att["m_df"].";");
            eval("\$m[m_mdf]=\$m[m_mdf]".$att["m_mdf"].";");
            eval("\$m[m_agl]=\$m[m_agl]".$att["m_agl"].";");
            if($p["p_at"]<=0){$p["p_at"]=1;}
            if($p["p_mat"]<=0){$p["p_mat"]=1;}
            if($p["p_df"]<=0){$p["p_df"]=1;}
            if($p["p_mdf"]<=0){$p["p_mdf"]=1;}
            if($p["p_agl"]<=0){$p["p_agl"]=1;}
            if($m["m_at"]<=0){$m["m_at"]=1;}
            if($m["m_mat"]<=0){$m["m_mat"]=1;}
            if($m["m_df"]<=0){$m["m_df"]=1;}
            if($m["m_mdf"]<=0){$m["m_mdf"]=1;}
            if($m["m_agl"]<=0){$m["m_agl"]=1;}
            //D_ATT END[/color]


Find
代碼: 選擇全部
$wogclass->fight_count($user_id,$p,$m);


replace
代碼: 選擇全部
$wogclass->fight_count($user_id,$p,$m[color=red],$att[/color]);


In fire_cp Function

Find
代碼: 選擇全部
$cp=$wogclass->fight_count($user_id,$p,$m,-$wog_arry["cp_mmoney"]);


replace
代碼: 選擇全部
$cp=$wogclass->fight_count($user_id,$p,$m,[color=red]"",-$wog_arry["cp_mmoney"][/color]);


完畢~有問題請提出。 :o


最後由 涅魂 於 2006-06-03 9:02 pm 編輯,總共編輯了 5 次。

¥飛天阿鳥¥
 
文章: 322
註冊時間: 2004-11-07 3:04 pm
來自: 水色的某一處     團體:變態團團員     團隊:烤鳥隊長

Re: [外掛](2.08)裝備特性化.改

文章¥飛天阿鳥¥ » 2006-01-22 8:14 pm

這篇外掛做的不錯唷 :D ~
~也期望您寫出更多更好的外掛讓WOG的功能更上一層樓^^ :lol:




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

文章涅魂 » 2006-01-22 8:30 pm

呵呵,謝謝您的誇獎 :)

其實原先是要弄個技能外掛的,但是這樣跟奧義幾乎差不了多少,於是就把他跟特性化合體了@@

所以新增的資料表上面還才留著當初規劃時的名稱... :roll:


圖檔

lts
 
文章: 126
註冊時間: 2005-04-23 9:51 am
來自: 緣份

文章lts » 2006-01-22 10:35 pm

怎刪除舊版....特性化..=V="

而...新版特性化後..可不可以設定在戰鬥時中顯示..特性化資料..
=V-先行答謝謝


http://lts.sytes.net

失敗的我..................


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

文章涅魂 » 2006-01-22 11:07 pm

1.對照先前安裝時的那篇文章依序改回來即可 :o

2.記得之前有人問過,我也有給修改的教學,可以用搜尋功能找看看。


圖檔


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

文章涅魂 » 2006-03-15 7:45 pm

修正BUG
修正裝備中若有一類為空時無法發揮特性化效果的BUG

開啟檔案wog/class/wog_fight_select.php

Find
代碼: 選擇全部
$d=$DB_site->query_first("select a.d_att as a,b.d_att as body,c.d_att as head,d.d_att as hand,e.d_att as foot,f.d_att as item from wog_df a,wog_df b,wog_df c,wog_df d,wog_df e,wog_df f,wog_df z,wog_player g where g.p_id=".$user_id." and a.d_id=g.a_id and b.d_id=g.d_body_id and c.d_id=g.d_head_id and d.d_id=g.d_hand_id and e.d_id=g.d_foot_id and f.d_id=g.d_item_id");


Replace
代碼: 選擇全部
$d=$DB_site->query_first("select a.d_att as a,b.d_att as body,c.d_att as head,d.d_att as hand,e.d_att as foot,f.d_att as item
            from wog_player g left join wog_df a on g.a_id=a.d_id
            left join wog_df b on g.d_body_id=b.d_id
            left join wog_df c on g.d_head_id=c.d_id
            left join wog_df d on g.d_hand_id=d.d_id
            left join wog_df e on g.d_foot_id=e.d_id
            left join wog_df f on g.d_item_id=f.d_id
            where g.p_id=".$user_id." ");

完畢。




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

文章涅魂 » 2007-04-04 9:39 pm

再次更新,不過內容有大幅度的更改,若安裝過舊版本請將舊版本移除後再安裝

這次是改用檔案的方式來儲存,效率與彈性皆較資料庫為高^^

開啟檔案wog/class/wog_fight_m.php 寫:In fight_count() Function

尋找
代碼: 選擇全部
global $DB_site,$_POST;

改成
代碼: 選擇全部
global $DB_site,$_POST[color=red],$wog_att[/color];

尋找
代碼: 選擇全部
if($p[p_hpmax]*$this->f_hp > $p[p_hp] && $p[d_item_id]>0 && $p[d_g_hp] > 0)

上方,加上
代碼: 選擇全部
$wog_att->practice_event($p,$m);

開啟檔案wog/class/wog_fight_select.php 寫:In fire() Function

尋找
代碼: 選擇全部
global $DB_site,$_POST,$wogclass,$wog_arry,$wog_event_class,$lang;

改成
代碼: 選擇全部
global $DB_site,$_POST,$wogclass[color=red],$wog_att[/color],$wog_arry,$wog_event_class,$lang;

尋找
代碼: 選擇全部
if($p[p_img_set]==1)

上方,加上
代碼: 選擇全部
               // Att Begin
               $att=$DB_site->query_first("select a.d_att as a,b.d_att as body,c.d_att as head,d.d_att as hand,e.d_att as foot,f.d_att as item
               from wog_player g left join wog_df a on g.a_id=a.d_id
               left join wog_df b on g.d_body_id=b.d_id
               left join wog_df c on g.d_head_id=c.d_id
               left join wog_df d on g.d_hand_id=d.d_id
               left join wog_df e on g.d_foot_id=e.d_id
               left join wog_df f on g.d_item_id=f.d_id
               where g.p_id=".$user_id." ");
               $wog_att->fight_att($att['a'],$p,$m);
               $wog_att->fight_att($att['body'],$p,$m);
               $wog_att->fight_att($att['head'],$p,$m);
               $wog_att->fight_att($att['hand'],$p,$m);
               $wog_att->fight_att($att['foot'],$p,$m);
               $wog_att->fight_att($att['item'],$p,$m);
               // Att end

開啟檔案wog/wog_fight.php 寫:尋找
代碼: 選擇全部
include("./class/wog_fight_select.php");

下方,加上
代碼: 選擇全部
      include_once('./class/wog_attribute.php');
      $wog_att = new wog_attribute;

建立檔案wog/class/wog_attribute.php 寫:
代碼: 選擇全部
<?
class wog_attribute{
   var $fight_event=array();   //回合事件
   var $event_num=0;
   function fight_att($att,&$p,&$m)
   {
      switch($att)
      {
         case 1:
         $p['p_at']+=20;
         break;
         case 2:
         $p['p_mat']+=20;
         break;
         case 3:
         $p['p_df']+=20;
         break;
         case 4:
         $p['p_mdf']+=20;
         break;
         case 5:
         $p['p_agl']+=20;
         break;
         case 6:
         $p['p_at']*=2;
         $p['p_mat']*=2;
         $p['p_df']=round($p['p_df'] / 2);
         $p['p_mdf']=round($p['p_mdf'] / 2);
         break;
         case 7:
         $p['p_df']=round($p['p_df']*1.5);
         $this->set_event('$p[\'p_at\']+=5;');
         break;
         default:
         return false;
         break;
      }
   }
   function set_event($event_str='')
   {
      if(empty($event_str))return false;
      $this->fight_event[]=$event_str;
      $this->event_num++;
   }
   function practice_event(&$p,&$m)
   {
      for($li=0;$li < $this->event_num;$li++)
      {
         eval($this->fight_event[$li]);
      }
   }
}
?>

完畢,有問題請指教^^


最後由 涅魂 於 2007-04-06 2:45 pm 編輯,總共編輯了 1 次。
圖檔

逍遙亂舞
 
文章: 65
註冊時間: 2006-06-28 2:30 pm
來自: 宇宙

文章逍遙亂舞 » 2007-04-05 2:46 pm

1.
開啟檔案wog/wog_fight.php 寫:尋找
代碼: 選擇全部
require_once("./class/wog_fight_m.php");
上方,加上
代碼: 選擇全部
            include_once('./class/wog_attribute.php');
            $wog_att = new wog_attribute;

請問是加在case 0 還case 1裡?因為兩個都含有
代碼: 選擇全部
require_once("./class/wog_fight_m.php");

2.我加入了一個新Case 是
代碼: 選擇全部
         case 8:
         $p['p_exp']*=10;
         break;
         default:
         return false;
         break;
效果是有的,可是不能顯示,獲得的經驗值那裡顯示的是沒有乘倍的經驗,請問該如何修改才能顯示?


正在慢慢的吸收PHP知識,如果發現有甚麼好的教學網站,請介紹給我,謝謝!


星戰風雲Online 已完成60%

簫哥
 
文章: 629
註冊時間: 2006-04-01 9:08 pm
來自: 戰略電玩
性別: 男生

文章簫哥 » 2007-04-05 5:50 pm

*= ←好像是運算分子有問題,先乘以還是等於?


NAS DS107e
簫哥電腦藝術工作室
wog4_ffa_x1(v4版本)
埋頭研發網頁角色扮演WebRPG,執行進度:版本更新。
ps.應允網友要求,v4版wog已經架設了= =!!

逍遙亂舞
 
文章: 65
註冊時間: 2006-06-28 2:30 pm
來自: 宇宙

文章逍遙亂舞 » 2007-04-06 9:13 am

簫哥 寫:*= ←好像是運算分子有問題,先乘以還是等於?

得出來的結果好像沒有錯誤喔...


正在慢慢的吸收PHP知識,如果發現有甚麼好的教學網站,請介紹給我,謝謝!


星戰風雲Online 已完成60%


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

文章涅魂 » 2007-04-06 2:51 pm

逍遙亂舞 寫:1.
開啟檔案wog/wog_fight.php 寫:尋找
代碼: 選擇全部
require_once("./class/wog_fight_m.php");
上方,加上
代碼: 選擇全部
            include_once('./class/wog_attribute.php');
            $wog_att = new wog_attribute;

請問是加在case 0 還case 1裡?因為兩個都含有
代碼: 選擇全部
require_once("./class/wog_fight_m.php");

2.我加入了一個新Case 是
代碼: 選擇全部
         case 8:
         $p['p_exp']*=10;
         break;
         default:
         return false;
         break;
效果是有的,可是不能顯示,獲得的經驗值那裡顯示的是沒有乘倍的經驗,請問該如何修改才能顯示?

第一個問題,考慮過後覺得舊的位置並不適當,所以我把它改制上面一點的位置,請參考一下上方修正後的修改方式吧 :wink:

而第二個問題,目前釋出的版本只有戰鬥前執行與回合執行的類型,戰鬥後執行的類型並未包含在裡面(晚一點會貼出來)

且您的寫法有錯誤,這個寫法會讓玩家的目前經驗值*10,而不是該回戰鬥的經驗值*10


圖檔


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

文章涅魂 » 2007-04-06 2:53 pm

簫哥 寫:*= ←好像是運算分子有問題,先乘以還是等於?

這是運算符的簡寫式,$s*=10 這個運算式等於 $s=$s*10 ,這個用法在c和Javascript中都能用^^


圖檔

逍遙亂舞
 
文章: 65
註冊時間: 2006-06-28 2:30 pm
來自: 宇宙

文章逍遙亂舞 » 2007-04-06 4:43 pm

涅魂 寫:
逍遙亂舞 寫:1.
開啟檔案wog/wog_fight.php 寫:尋找
代碼: 選擇全部
require_once("./class/wog_fight_m.php");
上方,加上
代碼: 選擇全部
            include_once('./class/wog_attribute.php');
            $wog_att = new wog_attribute;

請問是加在case 0 還case 1裡?因為兩個都含有
代碼: 選擇全部
require_once("./class/wog_fight_m.php");

2.我加入了一個新Case 是
代碼: 選擇全部
         case 8:
         $p['p_exp']*=10;
         break;
         default:
         return false;
         break;
效果是有的,可是不能顯示,獲得的經驗值那裡顯示的是沒有乘倍的經驗,請問該如何修改才能顯示?

第一個問題,考慮過後覺得舊的位置並不適當,所以我把它改制上面一點的位置,請參考一下上方修正後的修改方式吧 :wink:

而第二個問題,目前釋出的版本只有戰鬥前執行與回合執行的類型,戰鬥後執行的類型並未包含在裡面(晚一點會貼出來)

且您的寫法有錯誤,這個寫法會讓玩家的目前經驗值*10,而不是該回戰鬥的經驗值*10

哦!改的時候不太留意...沒注意到原來改得這麼錯..
可是,如果要把戰鬥的經驗值*10的話,我不會改...


正在慢慢的吸收PHP知識,如果發現有甚麼好的教學網站,請介紹給我,謝謝!


星戰風雲Online 已完成60%


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

文章涅魂 » 2007-04-07 9:02 pm

逍遙亂舞 寫:哦!改的時候不太留意...沒注意到原來改得這麼錯..
可是,如果要把戰鬥的經驗值*10的話,我不會改...

這就是我先前還沒弄好的部分啊,現在就分享出來囉 :lol:

※wog_attribute.php內容有做過大幅的更新,在此除了文字外同時放上壓縮檔以方便使用,若有不便請見諒

wog_attribute.php 寫:檔案名稱:wog_att.php
壓縮格式:zip,rar
壓縮大小:693Bytes,576Bytes
原本大小:1.8KB
檔案編碼:BIG5
下載:ZIP格式 RAR格式


※下方的內容除了wog_attribute.php的內容外其餘皆沿續上篇文章的內容
※下方的wog_attribute.php內建8和9的特性,分別為經驗值與金錢的設定,可當作使用時的參考
開啟檔案wog/class/wog_fight_select.php 寫:In fire() Function

尋找
代碼: 選擇全部
               // Att Begin
               ..........
               ..........
               ..........
               // Att end

改為
代碼: 選擇全部
               // Att Begin
               $att=$DB_site->query_first("select a.d_att as a,b.d_att as body,c.d_att as head,d.d_att as hand,e.d_att as foot,f.d_att as item
               from wog_player g left join wog_df a on g.a_id=a.d_id
               left join wog_df b on g.d_body_id=b.d_id
               left join wog_df c on g.d_head_id=c.d_id
               left join wog_df d on g.d_hand_id=d.d_id
               left join wog_df e on g.d_foot_id=e.d_id
               left join wog_df f on g.d_item_id=f.d_id
               where g.p_id=".$user_id." ");
[color=red]               $wog_att->set_att(array($att['a'],$att['body'],$att['head'],$att['hand'],$att['foot'],$att['item']));
               $wog_att->fight_att($p,$m);
               unset($att);[/color]
               // Att end

開啟檔案wog/class/wog_fight_m.php 寫:In win_check() Function

尋找
代碼: 選擇全部
global $DB_site,$_POST;

改為
代碼: 選擇全部
global $DB_site,$_POST[color=red],$wog_att[/color];

尋找
代碼: 選擇全部
$DB_site->query("update wog_ch_exp set ch_".$p[ch_id]."=ch_".$p[ch_id]."+1 where p_id=".$user_id." ");

上方,加上
代碼: 選擇全部
$wog_att->fight_end_att($p,$m,$exp,$money);

建立檔案wog/class/wog_attribute.php (有下載上方的壓縮檔則不必修改這個部分) 寫:
代碼: 選擇全部
<?
class wog_attribute{
   var $fight_event=array();
   var $att=array();
   var $event_num=0;
   function fight_att(&$p,&$m)
   {
      foreach($this->att as $key=>$value)
      {
         switch($this->att[$key])
         {
            case 1:
            $p['p_at']+=20;
            break;
            case 2:
            $p['p_mat']+=20;
            break;
            case 3:
            $p['p_df']+=20;
            break;
            case 4:
            $p['p_mdf']+=20;
            break;
            case 5:
            $p['p_agl']+=20;
            break;
            case 6:
            $p['p_at']*=2;
            $p['p_mat']*=2;
            $p['p_df']=round($p['p_df'] / 2);
            $p['p_mdf']=round($p['p_mdf'] / 2);
            break;
            case 7:
            $p['p_df']=round($p['p_df']*1.5);
            $this->set_event('$p[\'p_at\']+=5;');
            break;
            default:
            continue;
            break;
         }
      }
      $this->status_check($p,$m);
   }
   function fight_end_att(&$p,&$m,&$exp,&$money)
   {
      foreach($this->att as $key=>$value)
      {
         switch($this->att[$key])
         {
            case 8:
            $exp+=rand(901,1000);
            break;
            case 9:
            $money=round($money*1.1);
            break;
            default:
            continue;
            break;
         }
      }
      $this->status_check($p,$m);
   }
   function set_att($att=array())
   {
      if(!is_array($att))$att[0]=$att;
      $this->att=$att;
   }
   function set_event($event_str='')
   {
      if(empty($event_str))return false;
      $this->fight_event[]=$event_str;
      $this->event_num++;
   }
   function status_check(&$p,&$m)
   {
      if($p['p_at'] < 0)$p['p_at']=0;
      if($p['p_mat'] < 0)$p['p_mat']=0;
      if($p['p_df'] < 0)$p['p_df']=0;
      if($p['p_mdf'] < 0)$p['p_mdf']=0;
      if($p['p_agl'] < 0)$p['p_agl']=0;
      if($m['m_at'] < 0)$m['m_at']=0;
      if($m['m_mat'] < 0)$p['m_mat']=0;
      if($m['m_df'] < 0)$p['m_df']=0;
      if($m['m_mdf'] < 0)$p['m_mdf']=0;
      if($m['m_agl'] < 0)$p['m_agl']=0;
   }
   function practice_event(&$p,&$m)
   {
      for($li=0;$li < $this->event_num;$li++)
      {
         eval($this->fight_event[$li]);
      }
   }
}
?>

完畢,有問題歡迎指教 :wink:


最後由 涅魂 於 2007-04-08 4:53 pm 編輯,總共編輯了 1 次。

逍遙亂舞
 
文章: 65
註冊時間: 2006-06-28 2:30 pm
來自: 宇宙

文章逍遙亂舞 » 2007-04-08 3:58 pm

剛剛測試了,發現了一個問題...就是case 9不能用,原因是wog/class/wog_fight_m.php出錯
修正方法如下(適合已加上裝備特性化的玩家):
wog/class/wog_fight_m.php 寫:In win_check() Function
尋找
代碼: 選擇全部
$wog_att->fight_end_att($p,$m,$exp,$m);

把它改為
代碼: 選擇全部
$wog_att->fight_end_att($p,$m,$exp[color=red],$money[/color]);
完畢。


正在慢慢的吸收PHP知識,如果發現有甚麼好的教學網站,請介紹給我,謝謝!


星戰風雲Online 已完成60%

下一頁

回到 外掛區

誰在線上

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

cron