[分享](ALL)裝備特性化

版主: 涅魂, 簫哥


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

[分享](ALL)裝備特性化

文章涅魂 » 2005-03-06 5:40 pm

運用這個技巧可以讓物品具有特性!
程式碼中預設的d_att所對應的特性如下
d_att=1 金錢2倍
d_att=2 經驗值1.5倍
d_att=3 戰鬥中自己全能力增為1.2倍
d_att=4 戰鬥中自己全能力減為0.8倍
d_att=5 戰鬥中魔物全能力增為1.2倍
d_att=6 戰鬥中魔物全能力減為0.8倍

其他的可以自行增設^^
新版由此連去
----在您的資料庫中輸入下列語法----
代碼: 選擇全部
ALTER TABLE `wog_df` ADD `d_att` SMALLINT( 3 ) UNSIGNED DEFAULT '0' NOT NULL ;

##----開啟檔案 wog/wog_class.php----
----尋找----
代碼: 選擇全部
$money=$this->get_money($m[m_hpmax],$m[m_at],$m[m_mat],$m[m_lv])*$me_skill["s_money"];

----後面,加上----
代碼: 選擇全部
//D_ATT_START
      $d=$DB_site->query_first("select a_id,d_body_id,d_head_id,d_hand_id,d_foot_id,d_item_id from wog_player where p_id=".$user_id."");
      $d_a=$DB_site->query_first("select d_att from wog_df where d_id=".$d[a_id]."");
      $d_body=$DB_site->query_first("select d_att from wog_df where d_id=".$d[d_body_id]."");
      $d_head=$DB_site->query_first("select d_att from wog_df where d_id=".$d[d_head_id]."");
      $d_hand=$DB_site->query_first("select d_att from wog_df where d_id=".$d[d_hand_id]."");
      $d_foot=$DB_site->query_first("select d_att from wog_df where d_id=".$d[d_foot_id]."");
      $d_item=$DB_site->query_first("select d_att from wog_df where d_id=".$d[d_item_id]."");
      if($d_a[d_att]!=0)
      {
         switch($d_a[d_att])
         {
            case "1":
               $money*=2;
            break;
            case "2":
               $exp*=1.5;
            break;
         }
      }
      if($d_body[d_att]!=0)
      {
         switch($d_body[d_att])
         {
            case "1":
               $money*=2;
            break;
            case "2":
               $exp*=1.5;
            break;
         }
      }
      if($d_head[d_att]!=0)
      {
         switch($d_head[d_att])
         {
            case "1":
               $money*=2;
            break;
            case "2":
               $exp*=1.5;
            break;
         }
      }
      if($d_hand[d_att]!=0)
      {
         switch($d_hand[d_att])
         {
            case "1":
               $money*=2;
            break;
            case "2":
               $exp*=1.5;
            break;
         }
      }
      if($d_foot[d_att]!=0)
      {
         switch($d_foot[d_att])
         {
            case "1":
               $money*=2;
            break;
            case "2":
               $exp*=1.5;
            break;
         }
      }
      if($d_item[d_att]!=0)
      {
         switch($d_item[d_att])
         {
            case "1":
               $money*=2;
            break;
            case "2":
               $exp*=1.5;
            break;
         }
      }
//D_ATT END


##----開啟檔案 wog/class/wog_fight_select.php----
----尋找----
代碼: 選擇全部
if($m[m_at] > 3500 || $m[m_mat] > 3500)


----前面,加上----
代碼: 選擇全部
//D_ATT_START
      $d=$DB_site->query_first("select a_id,d_body_id,d_head_id,d_hand_id,d_foot_id,d_item_id from wog_player where p_id=".$user_id."");
      $d_a=$DB_site->query_first("select d_att from wog_df where d_id=".$d[a_id]."");
      $d_body=$DB_site->query_first("select d_att from wog_df where d_id=".$d[d_body_id]."");
      $d_head=$DB_site->query_first("select d_att from wog_df where d_id=".$d[d_head_id]."");
      $d_hand=$DB_site->query_first("select d_att from wog_df where d_id=".$d[d_hand_id]."");
      $d_foot=$DB_site->query_first("select d_att from wog_df where d_id=".$d[d_foot_id]."");
      $d_item=$DB_site->query_first("select d_att from wog_df where d_id=".$d[d_item_id]."");
      if($d_a[d_att]!=0)
      {
         switch($d_a[d_att])
         {
            case "3":
               $p[p_at]*=1.2;
               $p[p_df]*=1.2;
               $p[p_mat]*=1.2;
               $p[p_mdf]*=1.2;
            break;
            case "4":
               $p[p_at]*=0.8;
               $p[p_df]*=0.8;
               $p[p_mat]*=0.8;
               $p[p_mdf]*=0.8;
            break;
            case "5":
               $m[m_at]*=1.2;
               $m[m_df]*=1.2;
               $m[m_mat]*=1.2;
               $m[m_mdf]*=1.2;
            break;
            case "6":
               $m[m_at]*=0.8;
               $m[m_df]*=0.8;
               $m[m_mat]*=0.8;
               $m[m_mdf]*=0.8;
            break;
         }
      }
      if($d_body[d_att]!=0)
      {
         switch($d_body[d_att])
         {
            case "3":
               $p[p_at]*=1.2;
               $p[p_df]*=1.2;
               $p[p_mat]*=1.2;
               $p[p_mdf]*=1.2;
            break;
            case "4":
               $p[p_at]*=0.8;
               $p[p_df]*=0.8;
               $p[p_mat]*=0.8;
               $p[p_mdf]*=0.8;
            break;
            case "5":
               $m[m_at]*=1.2;
               $m[m_df]*=1.2;
               $m[m_mat]*=1.2;
               $m[m_mdf]*=1.2;
            break;
            case "6":
               $m[m_at]*=0.8;
               $m[m_df]*=0.8;
               $m[m_mat]*=0.8;
               $m[m_mdf]*=0.8;
            break;
         }
      }
      if($d_head[d_att]!=0)
      {
         switch($d_head[d_att])
         {
            case "3":
               $p[p_at]*=1.2;
               $p[p_df]*=1.2;
               $p[p_mat]*=1.2;
               $p[p_mdf]*=1.2;
            break;
            case "4":
               $p[p_at]*=0.8;
               $p[p_df]*=0.8;
               $p[p_mat]*=0.8;
               $p[p_mdf]*=0.8;
            break;
            case "5":
               $m[m_at]*=1.2;
               $m[m_df]*=1.2;
               $m[m_mat]*=1.2;
               $m[m_mdf]*=1.2;
            break;
            case "6":
               $m[m_at]*=0.8;
               $m[m_df]*=0.8;
               $m[m_mat]*=0.8;
               $m[m_mdf]*=0.8;
            break;
         }
      }
      if($d_hand[d_att]!=0)
      {
         switch($d_hand[d_att])
         {
            case "3":
               $p[p_at]*=1.2;
               $p[p_df]*=1.2;
               $p[p_mat]*=1.2;
               $p[p_mdf]*=1.2;
            break;
            case "4":
               $p[p_at]*=0.8;
               $p[p_df]*=0.8;
               $p[p_mat]*=0.8;
               $p[p_mdf]*=0.8;
            break;
            case "5":
               $m[m_at]*=1.2;
               $m[m_df]*=1.2;
               $m[m_mat]*=1.2;
               $m[m_mdf]*=1.2;
            break;
            case "6":
               $m[m_at]*=0.8;
               $m[m_df]*=0.8;
               $m[m_mat]*=0.8;
               $m[m_mdf]*=0.8;
            break;
         }
      }
      if($d_foot[d_att]!=0)
      {
         switch($d_foot[d_att])
         {
            case "3":
               $p[p_at]*=1.2;
               $p[p_df]*=1.2;
               $p[p_mat]*=1.2;
               $p[p_mdf]*=1.2;
            break;
            case "4":
               $p[p_at]*=0.8;
               $p[p_df]*=0.8;
               $p[p_mat]*=0.8;
               $p[p_mdf]*=0.8;
            break;
            case "5":
               $m[m_at]*=1.2;
               $m[m_df]*=1.2;
               $m[m_mat]*=1.2;
               $m[m_mdf]*=1.2;
            break;
            case "6":
               $m[m_at]*=0.8;
               $m[m_df]*=0.8;
               $m[m_mat]*=0.8;
               $m[m_mdf]*=0.8;
            break;
         }
      }
      if($d_item[d_att]!=0)
      {
         switch($d_item[d_att])
         {
            case "3":
               $p[p_at]*=1.2;
               $p[p_df]*=1.2;
               $p[p_mat]*=1.2;
               $p[p_mdf]*=1.2;
            break;
            case "4":
               $p[p_at]*=0.8;
               $p[p_df]*=0.8;
               $p[p_mat]*=0.8;
               $p[p_mdf]*=0.8;
            break;
            case "5":
               $m[m_at]*=1.2;
               $m[m_df]*=1.2;
               $m[m_mat]*=1.2;
               $m[m_mdf]*=1.2;
            break;
            case "6":
               $m[m_at]*=0.8;
               $m[m_df]*=0.8;
               $m[m_mat]*=0.8;
               $m[m_mdf]*=0.8;
            break;
         }
      }
//[color=#0000ff]2005/04/06加入[/color][color=#ff0000]
      $p[p_at]=round($p[p_at]);
      $p[p_df]=round($p[p_df]);
      $p[p_mat]=round($p[p_mat]);
      $p[p_mdf]=round($p[p_mdf]);
      $m[m_at]=round($m[m_at]);
      $m[m_df]=round($m[m_df]);
      $m[m_mat]=round($m[m_mat]);
      $m[m_mdf]=round($m[m_mdf]);[/color]
//D_ATT END


##----儲存/關閉所有檔案----
弄了整個下午頭有點昏昏的.... :roll:
有問題請提出來謝謝 :)

--------------------------------------------------
另外,這個技巧其實還可以再擴充,例如說把變更的能力細分,或是增加迴避率、命中率、必殺技發動率、連擊次數,每回合能力增加或補血,職業限制等等....就看大家要如何使用囉 :wink:


最後由 涅魂 於 2006-06-04 9:56 am 編輯,總共編輯了 7 次。

zindar
 
文章: 10
註冊時間: 2004-07-03 11:28 pm

文章zindar » 2005-03-06 6:17 pm

謝謝分享




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

文章涅魂 » 2005-03-07 9:28 pm

zindar 寫:謝謝分享

有您的支持是激發創作者靈感的原動力!
另外,若是有任何意見的話也歡迎發表,若是想要自己新增裝備的特性卻不知該如何下手的話也歡迎發問 :)


圖檔

武內樹
 
文章: 5
註冊時間: 2005-02-25 8:28 pm

文章武內樹 » 2005-03-08 5:27 pm

謝謝分享唷^^




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

[分享]new 裝備特性化

文章涅魂 » 2005-05-31 7:51 pm

推出新版的理由與EXP&HP條棒的理由一樣,都是因為程式碼太長才會想盡辦法來使程式碼間單化..
如今總算想出來啦~~~ :D

以下是新版的安裝方式

在您資料庫中輸入下列語法(已安裝過舊版的請跳過此步驟)
代碼: 選擇全部
ALTER TABLE `wog_df` ADD `d_att` SMALLINT( 3 ) UNSIGNED DEFAULT '0' NOT NULL ;


開啟檔案wog/wog_class.php
尋找
代碼: 選擇全部
$money=$this->get_money($m[m_hpmax],$m[m_at],$m[m_mat],$m[m_lv])*$me_skill["s_money"];

後面,加上
代碼: 選擇全部
//D_ATT_START
      $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_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");
      for($at=0;$at<6;$at++)
      {
         if($d[$at]!=0)
         {
            switch($d[$at])
            {
            case "1":
            $money*=2;
            break;
            case "2":
            $exp*=1.5;
            break;
            }
         }
      }
//D_ATT_END


開啟檔案wog/class/wog_fight_select.php
尋找
代碼: 選擇全部
if($m[m_at] > 3500 || $m[m_mat] > 3500)

前面,加上
代碼: 選擇全部
//D_ATT_START
   $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_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");
   for($at=0;$at<6;$at++)
   {
      if($d[$at]!=0)
      {
         switch($d[$at])
         {
         case "3":
         $p[p_at]*=1.2;$p[p_df]*=1.2;$p[p_mat]*=1.2;$p[p_mdf]*=1.2;
         break;
         case "4":
         $p[p_at]*=0.8;$p[p_df]*=0.8;$p[p_mat]*=0.8;$p[p_mdf]*=0.8;
         break;
         case "5":
         $m[m_at]*=1.2;$m[m_df]*=1.2;$m[m_mat]*=1.2;$m[m_mdf]*=1.2;
         break;
         case "6":
         $m[m_at]*=0.8;$m[m_df]*=0.8;$m[m_mat]*=0.8;$m[m_mdf]*=0.8;
         break;
         }
      }
   }
   $p[p_at]=round($p[p_at]);
   $p[p_df]=round($p[p_df]);
   $p[p_mat]=round($p[p_mat]);
   $p[p_mdf]=round($p[p_mdf]);
   $m[m_at]=round($m[m_at]);
   $m[m_df]=round($m[m_df]);
   $m[m_mat]=round($m[m_mat]);
   $m[m_mdf]=round($m[m_mdf]);
//D_ATT END

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


圖檔


回到 外掛區

誰在線上

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