OK論壇

 找回密碼
 註冊
查看: 3109|回復: 9

[分享] CHARMS

[複製鏈接]
  • TA的每日心情
    慵懶
    2013-7-11 12:09 AM
  • 簽到天數: 118 天

    連續簽到: 1 天

    [LV.6]常住居民II

    發表於 2011-8-28 15:28:30 | 顯示全部樓層 |閱讀模式
    mmo.h
    Find:
    1. enum item_types {
    2.         IT_HEALING = 0,                //IT_HEAL                = 0x00
    3.         IT_UNKNOWN, //1                //IT_SCHANGE                = 0x01
    4.         IT_USABLE,  //2                //IT_SPECIAL                = 0x02
    5.         IT_ETC,     //3                //IT_EVENT                = 0x03
    6.         IT_WEAPON,  //4                //IT_ARMOR                = 0x04
    7.         IT_ARMOR,   //5                //IT_WEAPON                = 0x05
    8.         IT_CARD,    //6                //IT_CARD                = 0x06
    9.         IT_PETEGG,  //7                //IT_QUEST                = 0x07
    10.         IT_PETARMOR,//8                //IT_BOW                = 0x08
    11.         IT_UNKNOWN2,//9                //IT_BOTHHAND                = 0x09
    12.         IT_AMMO,    //10        //IT_ARROW                = 0x0a
    13.         IT_DELAYCONSUME,//11        //IT_ARMORTM                = 0x0b
    14. +        IT_CHARM,//12                //IT_ARMORTB                = 0x0c
    15.                                 //IT_ARMORMB                = 0x0d
    16.                                 //IT_ARMORTMB                = 0x0e
    17.                                 //IT_GUN                = 0x0f
    18.                                 //IT_AMMO                = 0x10
    19.                                 //IT_THROWWEAPON        = 0x11
    20.         IT_CASH = 18,                //IT_CASH_POINT_ITEM        = 0x12
    21.                                 //IT_CANNONBALL                = 0x13
    22.         IT_MAX
    23. };
    複製代碼
    Clif.c
    Find:
    1. inline int itemtype(int type)
    2. {
    3. -        return ( type == IT_PETEGG ) ? IT_WEAPON : type;
    4. +        return ( type == IT_PETEGG ) ? IT_WEAPON : (type == IT_CHARM) ? IT_ETC : type;
    5. }
    複製代碼
    Itemdb.c
    Find:
    1. int itemdb_isstackable(int nameid)
    2. {
    3.   int type=itemdb_type(nameid);
    4.   switch(type) {
    5.           case IT_WEAPON:
    6.           case IT_ARMOR:
    7.           case IT_PETEGG:
    8.           case IT_PETARMOR:
    9. +          case IT_CHARM:
    10.                   return 0;
    11.           default:
    12.                   return 1;
    13.   }
    14. }
    複製代碼
    And
    1. int itemdb_isstackable2(struct item_data *data)
    2. {
    3.   nullpo_ret(data);
    4.   switch(data->type) {
    5.           case IT_WEAPON:
    6.           case IT_ARMOR:
    7.           case IT_PETEGG:
    8.           case IT_PETARMOR:
    9. +          case IT_CHARM:
    10.                   return 0;
    11.           default:
    12.                   return 1;
    13.   }
    14. }
    複製代碼
    And
    1. if( id->type < 0 || id->type == IT_UNKNOWN || id->type == IT_UNKNOWN2 || ( id->type > IT_DELAYCONSUME && id->type < IT_CASH ) || id->type >= IT_MAX )
    複製代碼
    替換成
    1. if( id->type < 0 || id->type == IT_UNKNOWN || id->type == IT_UNKNOWN2 || ( id->type > IT_CHARM && id->type < IT_CASH ) || id->type >= IT_MAX )
    複製代碼
    Pc.c
    Find:
    1. if(data->flag.autoequip) pc_equipitem(sd, i, data->equip);
    複製代碼
    下方add:
    1. if(sd->inventory_data[i]->type == IT_CHARM) status_calc_pc(sd,0);
    複製代碼
    Find:
    1. int pc_delitem(struct map_session_data *sd,int n,int amount,int type, short reason)
    2. {
    3. +        int IT_CHARMS;
    4.         nullpo_retr(1, sd);

    5.         if(sd->status.inventory[n].nameid==0 || amount <= 0 || sd->status.inventory[n].amount<amount || sd->inventory_data[n] == NULL)
    6.                 return 1;
    7. +        IT_CHARMS = sd->inventory_data[n]->type;
    8.         sd->status.inventory[n].amount -= amount;
    9.         sd->weight -= sd->inventory_data[n]->weight*amount ;
    10.         if(sd->status.inventory[n].amount<=0){
    11.                 if(sd->status.inventory[n].equip)
    12.                         pc_unequipitem(sd,n,3);
    13.                 memset(&sd->status.inventory[n],0,sizeof(sd->status.inventory[0]));
    14.                 sd->inventory_data[n] = NULL;
    15.         }
    16.         if(!(type&1))
    17.                 clif_delitem(sd,n,amount,reason);
    18.         if(!(type&2))
    19.                 clif_updatestatus(sd,SP_WEIGHT);
    20. +        if(IT_CHARMS == IT_CHARM) status_calc_pc(sd,0);
    21.         return 0;
    22. }
    複製代碼
    Status.c
    Find:
    1. // Parse equipment.
    2. +for( i = 0; i < MAX_INVENTORY ; i++ )
    3. +{
    4. +        if(sd->inventory_data[i] != NULL){
    5. +                if(sd->inventory_data[i]->type == IT_CHARM){
    6. +                        if( sd->inventory_data[i]->script ){
    7. +                                run_script(sd->inventory_data[i]->script,0,sd->bl.id,0);               
    8. +                        }
    9. +                        if( !calculating )
    10. +                        return 1;
    11. +                }
    12. +        }
    13. +}
    14.         
    複製代碼



    db:
    22000,Test,測試,12,4500,,100,,,,,,,,,,,,,{bonus bStr,11112;},{},{}
    回復

    使用道具 舉報

  • TA的每日心情
    慵懶
    2017-2-15 05:18 PM
  • 簽到天數: 476 天

    連續簽到: 1 天

    [LV.9]以壇為家II

    發表於 2011-8-28 15:33:18 | 顯示全部樓層
    狐狸啊  = =
    我有什么你就&#21457;什么- - 我的&#19996;西都&#35753;你&#21457;出&#26469;了 不活了 = =~`.
    回復 支持 反對

    使用道具 舉報

  • TA的每日心情
    慵懶
    2013-7-11 12:09 AM
  • 簽到天數: 118 天

    連續簽到: 1 天

    [LV.6]常住居民II

     樓主| 發表於 2011-8-28 15:35:06 | 顯示全部樓層
    回復 2# dreamunreal


       有人問我才會寫東西阿,不然平時混吃等死的:tk_09
    回復 支持 反對

    使用道具 舉報

  • TA的每日心情
    開心
    2019-8-18 04:57 PM
  • 簽到天數: 2148 天

    連續簽到: 1 天

    [LV.Master]伴壇終老

    發表於 2011-8-28 15:37:07 | 顯示全部樓層
    回復 3# Alopex


    :tk_42你去開發些新東西嘛
    回復 支持 反對

    使用道具 舉報

  • TA的每日心情
    慵懶
    2017-2-15 05:18 PM
  • 簽到天數: 476 天

    連續簽到: 1 天

    [LV.9]以壇為家II

    發表於 2011-8-28 15:40:39 | 顯示全部樓層
    回復  Alopex


    你去開發些新東西嘛
    goddameit 發表於 2011-8-28 15:37



       就是就是..比如把sea的那些&#20010;功能都&#20889;出&#26469;&#24320;源什么的最喜&#27426;了 ~~~.
    &#20026;啥要揪&#30528;我&#36825;&#20010;不放嘛>.<

    狐狸太坏了`.
    回復 支持 反對

    使用道具 舉報

  • TA的每日心情
    開心
    2012-10-20 12:31 AM
  • 簽到天數: 305 天

    連續簽到: 94 天

    [LV.8]以壇為家I

    發表於 2011-8-28 15:48:08 | 顯示全部樓層
    回復 5# dreamunreal


        是阿是阿  路點+:tk_03
    回復 支持 反對

    使用道具 舉報

  • TA的每日心情
    慵懶
    2017-2-15 05:18 PM
  • 簽到天數: 476 天

    連續簽到: 1 天

    [LV.9]以壇為家II

    發表於 2011-8-28 15:50:46 | 顯示全部樓層
    回復  dreamunreal


        是阿是阿  路點+
    rgrg1234 發表於 2011-8-28 15:48



       喏 你看 又提到&#36825;&#20010;了.路&#28857;+&#38453;&#33829;   我最近忙 在外面出差- - 少跟你交流了- -.
    那么多可&#24320;&#21457;的&#19996;西你怎么&#20250;&#38386;得慌呢 >.<

    &#36824;有就是sinya 一直想知道的 client.date  
    我一直想知道的挂店重&#36733;- - .
    你不&#20250;&#38386;得慌了... -_,-/輕吻
    回復 支持 反對

    使用道具 舉報

  • TA的每日心情
    無聊
    2011-10-21 01:48 PM
  • 簽到天數: 192 天

    連續簽到: 0 天

    [LV.7]常住居民III

    發表於 2011-8-28 16:04:53 | 顯示全部樓層
    這是身上物品裡面只要有這東西,他就會算入數值內對嘛?
    回復 支持 反對

    使用道具 舉報

  • TA的每日心情
    慵懶
    2013-7-11 12:09 AM
  • 簽到天數: 118 天

    連續簽到: 1 天

    [LV.6]常住居民II

     樓主| 發表於 2011-8-28 20:31:31 | 顯示全部樓層
    回復 8# fireboy0526


       身上有該物就可以執行該物的script
    回復 支持 反對

    使用道具 舉報

  • TA的每日心情
    無聊
    2011-10-21 01:48 PM
  • 簽到天數: 192 天

    連續簽到: 0 天

    [LV.7]常住居民III

    發表於 2011-8-28 22:31:19 | 顯示全部樓層
    回復  fireboy0526


       身上有該物就可以執行該物的script
    Alopex 發表於 2011-8-28 08:31 PM



    嗯嗯,那我沒有看錯。跟我的符文系統一樣。
    回復 支持 反對

    使用道具 舉報

    您需要登錄後才可以回帖 登錄 | 註冊

    本版積分規則

    Archiver|手機版|小黑屋|OK討論區

    GMT+8, 2024-5-7 12:38 AM , Processed in 0.063919 second(s), 19 queries , Gzip On.

    Powered by Discuz! X3.4

    Copyright © 2001-2020, Tencent Cloud.

    快速回復 返回頂部 返回列表