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

版主: 涅魂, 簫哥


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

文章涅魂 » 2007-04-19 7:12 pm

呀成 寫:如果要加強自身的攻防
可不可以用1個0攻的道具(p_at*2,是全攻*2)
不知你們知不知到我會說什麼-_-|||

我想您所指的應該是基礎能力全為0的物品,而特性化設定則是p_at*2且p_mat*2吧?

這樣的話當然也行得通囉,只要設定正確即可,像這樣
代碼: 選擇全部
            case 100:
            $p['p_at']*=2;
            $p['p_mat']*=2;
            break;





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

文章涅魂 » 2007-04-19 7:30 pm

逍遙亂舞 寫:那好吧,我唯有等星期六的來臨

考慮之後決定不使用前面所提到的temp的用法,而改為修改wog原始內容以方便程式的撰寫^^"

請參照下列的修改,修改之後原先的寫法應該就不會有問題了

開啟檔案wog/class/wog_fight_m.php

In lv_hp() Function

尋找
代碼: 選擇全部
$p_vit=0;

下方,加上
代碼: 選擇全部
$p_hp=0;

尋找
代碼: 選擇全部
$p[p_hpmax]=$p[p_hpmax]+(($p[p_life]+$p_life)*0.4);

改成
代碼: 選擇全部
$p_hp+=($p[p_life]+$p_life)*0.4;

尋找
代碼: 選擇全部
p_hpmax=".$p[p_hpmax]."

改成
代碼: 選擇全部
p_hpmax=p_hpmax+".$p_hp."

以上,有任何問題歡迎指教^^



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

文章逍遙亂舞 » 2007-04-19 8:03 pm

那麼裝備要怎樣設定才能使用此特性?這樣改的話好像不能像普通的特性一樣修改...


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


星戰風雲Online 已完成60%

想不通
 
文章: 185
註冊時間: 2005-11-06 2:37 pm

文章想不通 » 2007-04-21 8:47 am

在裝備的欄位加上適當的[數字] 該數是特技的id


我的wog有空就玩玩吧


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

文章涅魂 » 2007-04-21 10:08 am

測試後發現使用我上面貼的對lv_up()的修改會產生些小問題

所以最後還是用temp來解決問題…

若有修改上面的lv_up()部分的話麻煩請改回來,若有不便請見諒 :oops:

修改完之後請再修改下列程式碼

開啟檔案wog/class/wog_gight_m.php

In fight_count() Function

尋找
代碼: 選擇全部
$this->cp_m_hp=$m[m_hp];//冠軍的hp,若在冠軍挑戰模式下,冠軍hp將會被寫入db

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


開啟檔案wog/class/wog_fight_select.php

In fire() Function

尋找
代碼: 選擇全部
$wog_att->fight_att($p,$m);

上方,加上 ※下列程式碼若放在上述程式碼之後會產生嚴重錯誤(玩家HPMAX增加),修改時請注意
代碼: 選擇全部
$wog_att->set_const($p['p_hpmax']);


開啟檔案wog/class/wog_attribute.php
尋找
代碼: 選擇全部
var $att=array();

下方,加上
代碼: 選擇全部
var $p_hpmax=0;

尋找
代碼: 選擇全部
   function set_att($att=array())
   {
      if(!is_array($att))$att[0]=$att;
      $this->att=$att;
   }

下方,加上
代碼: 選擇全部
   function set_const($p_hpmax)
   {
      $this->p_hpmax=$p_hpmax;
   }
   function fix_const(&$p)
   {
      $p['p_hpmax']=$this->p_hpmax;
      if($p['p_hp'] > $p['p_hpmax'])$p['p_hp']=$p['p_hpmax'];
   }


而特性化的設定則使用就有的寫法即可,不必因為這個修改而有所改變

不過對hp作特性化修改時有個小地方要注意,對p_hpmax增減之後,要記得同樣對p_hp做相對應的修改,不然會造成玩家的p_hpmax增加但p_hp卻維持相同水準

以上,有問題歡迎指教^^



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

文章逍遙亂舞 » 2007-04-21 5:45 pm

這個是我增加HP特性的語法
代碼: 選擇全部
            case 11:
            $p['p_hpmax']*=2;
            $p['p_hp']=$p['p_hpmax'];
            break;

把裝備的特性設為這個特性後,若戰勝後的hp大於hpmax,戰鬥情況將不會顯示,但若戰敗,戰鬥情況則會顯示出來,請問該如何修改,才能使戰勝後的hp大於hpmax仍能顯示戰鬥情況?


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


星戰風雲Online 已完成60%


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

文章涅魂 » 2007-04-21 6:35 pm

測試時沒有碰上這個問題,請檢查看看您的程式有沒有修改正確吧^^"

另外,對hp修改其實有很大的問題

因為您所期望的功能跟特性化的設法是完全不同的

您期望的是裝備裝上去之後hp即增加,類似永久的效果,等到裝備脫下後再復原

但特性化卻只有在戰鬥中才會產生效果

這即產生了一個問題:戰鬥中將HPMAX復原後HP是否要執行相同的步驟?

這有兩大問題
1.假設玩家HPMAX=500,戰鬥中HPMAX變成1000,而HP也變為1000,等到戰鬥後HPMAX復原成500時若HP大於500則減500(HPMAX增加的值)

2.同上情況,但戰鬥結束後HPMAX復原成500時若HP小於500則變為1

這兩個問題同時存在後即產生了恐怖的無敵BUG

在情況1時還沒問題,但到了情況2時卻會出現不合理的處理

若玩家HP小於HPMAX增加的值則設為1,這即變成了只要HP不被削減至0的話角色就不會死亡

若設為0則這功能就如同虛設,因為效力等同於只能在HP大於500時才有功用,小於500時雖然p_lost不會增加但玩家的hp會設為0

所以說,我十分不建議用這個功能,因為對HPMAX修改與特性化的本質互相衝突… :?



上一頁

回到 外掛區

誰在線上

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

cron