Jump to content

Deliris

Developer
  • Posts

    162
  • Joined

  • Last visited

  • Days Won

    5
  • Feedback

    0%

Posts posted by Deliris

  1. 1 hour ago, terrorr said:

    This one bro :

    chrmgr.RegisterEffect(chrmgr.EFFECT_AFFECT+38, "Bip01", "d:\locale\ro\effect\vip.mse")

    Have to be like that:

    chrmgr.RegisterEffect(chrmgr.EFFECT_AFFECT+38, "Bip01", "locale/en/effect/vip.mse")

     

    Regards.

    Ohh, my bad, my client is crypted so.. i`m using with d:\

    ThX fot feedback :3

    -EDIT- - Skype

  2. 8 hours ago, ShadowsPR0 said:

    Im implementing it now will come back with Edit ^_^

     

    My DB doesnt compile X_X can this work without modifying DB ?

    Yes you can, but without a new GM level, you can use GOD authority..

    Send me a pm with error and i will try to fix it.

  3. 1 minute ago, VegaS said:

     

    
    if (GetGMLevel() == GM_VIP)
    	    {
    	        m_afAffectFlag.Set(AFF_VIP);
    	    }
    
    
     
    
    else if (GetGMLevel() == GM_VIP)
    	        {
    	            m_afAffectFlag.Set(AFF_VIP);
    	        }
    
    
     

    For remove  PK_PROTECTED .

    I edited the post already..

    Is ok anyway..

  4. M2 Download Center

    This is the hidden content, please
    ( Internal )

    Hello everyone, today I`m going to show to how to make a VIP system from SRC.

     

    You need Launcher SRC, Server SRC.

    So, let`s begin.

     

    Spoiler

    191414kTKlbja.jpg.ef0c831bbbb908d35e8a67

     

    1.Launcher:

    Go to UserInterface/InstanceBase.h and search 

    Spoiler

    AFFECT_CHINA_FIREWORK,            // 38

    After that add:

    Spoiler

    AFFECT_VIP = 39,

    Search

    Spoiler

    BOOL                    IsGameMaster();

    After that add: 

    Spoiler

    BOOL                    IsVIP();

    1.2 Go to InstanceBase.cpp and search

    Spoiler

    BOOL CInstanceBase::IsGameMaster()
    {
        if (m_kAffectFlagContainer.IsSet(AFFECT_YMIR))
            return true;
        return false;
    }

    After that add: 

    Spoiler

    BOOL CInstanceBase::IsVIP()
    {
        if (m_kAffectFlagContainer.IsSet(AFFECT_VIP))
            return true;
        return false;
    }

    In same file search:

    Spoiler

    if (IsGameMaster())
            return TRUE;

    And after that add: 

    Spoiler

    if (IsVIP())
            return TRUE;

    //if you got bugs don`t add this line.

    Search: 

    Spoiler

    if (rkInstDst.IsGameMaster())
            return TRUE;

    After that add:

    Spoiler

    if (rkInstDst.IsVIP())
            return TRUE;

    1.3: In file InstanceBaseEffect.cpp search

    Spoiler

    if (pkInstMain->IsGameMaster())
        {
        }

    After that add:

    Spoiler

    else if (pkInstMain->IsVIP())
        {
        }

    Search: 

    Spoiler

    if (IsGameMaster())
            return;

    After that add:

    Spoiler

    if (IsVIP())
            return;

    Search:

    Spoiler

    case AFFECT_YMIR:
                if (IsAffect(AFFECT_INVISIBILITY))
                    return;
                break;

    After that add:

    Spoiler

    case AFFECT_VIP:
                if (IsAffect(AFFECT_INVISIBILITY))
                    return;
                break;
    /*

    1.4 In fine PythonCharacterModule.cpp search:

    Spoiler

    PyObject * chrIsGameMaster(PyObject* poSelf, PyObject* poArgs)
    {
        int iVirtualID;
        if (!PyTuple_GetInteger(poArgs, 0, &iVirtualID))
            return Py_BuildException();

        CInstanceBase * pInstance = CPythonCharacterManager::Instance().GetInstancePtr(iVirtualID);
        if (!pInstance)
            return Py_BuildValue("i", 0);

        return Py_BuildValue("i", pInstance->IsGameMaster());
    }

    And after that add: 

    Spoiler

    PyObject * chrIsVIP(PyObject* poSelf, PyObject* poArgs)
    {
        int iVirtualID;
        if (!PyTuple_GetInteger(poArgs, 0, &iVirtualID))
            return Py_BuildException();

        CInstanceBase * pInstance = CPythonCharacterManager::Instance().GetInstancePtr(iVirtualID);
        if (!pInstance)
            return Py_BuildValue("i", 0);

        return Py_BuildValue("i", pInstance->IsVIP());
    }

    Search: 

    Spoiler

    { "IsGameMaster",                chrIsGameMaster,                    METH_VARARGS },

    And after that add:

    Spoiler

    { "IsVIP",                        chrIsVIP,                            METH_VARARGS },

    Launcher part done.

    2.SERVER

    2.1 In file common/length.h search:

    Spoiler

    GM_PLAYER,

    And after that add: 

    Spoiler

    GM_VIP,

    2.2 In file game/src/affect.h search:

    Spoiler

    AFF_CHINA_FIREWORK,

    And after add: 

    Spoiler

    AFF_VIP = 39,

    2.3 In file game/src/char.cpp search: 

    Spoiler

    if (GetGMLevel() > GM_LOW_WIZARD)
            {
                m_afAffectFlag.Set(AFF_YMIR);
                m_bPKMode = PK_MODE_PROTECT;
            }

    And after add: 

    Spoiler

    else if (GetGMLevel() == GM_VIP)
            {
                m_afAffectFlag.Set(AFF_VIP);
                //m_bPKMode = PK_MODE_PROTECT; //delete '//' if you want GM protection for VIP.
            

    }

    Search 

    Spoiler

    if (GetLevel() < PK_PROTECT_LEVEL)
            m_bPKMode = PK_MODE_PROTECT;

    And after that add: 

    Spoiler

    else if (GetGMLevel() == GM_VIP)
        {
            m_afAffectFlag.Set(AFF_VIP);
            //m_bPKMode = PK_MODE_PROTECT; //delete '//' if you want GM protection for VIP.
        }

    2.4 In file game/src/config.cpp search

    Spoiler

    if (!strcasecmp(levelname, "LOW_WIZARD"))
                    level = GM_LOW_WIZARD;

    And mofify like that:

    Spoiler

    if (!strcasecmp(levelname, "VIP"))
                    level = GM_VIP;
                
                else if (!strcasecmp(levelname, "LOW_WIZARD"))
                    level = GM_LOW_WIZARD;

    2.5 In file db/src/ClientManager.cpp search:

    Spoiler

    else if (!stAuth.compare("WIZARD"))
                Info.m_Authority = GM_WIZARD;

    And after that add:

    Spoiler

    else if (!stAuth.compare("VIP"))
                Info.m_Authority = GM_VIP;

    3.MYSQL

    3.1 Go to your database->COMMON->RIGHT CLICK ON gmlist->DESIGN TABLE->SELECT mAuthority from Fields TAB->VALUES->ADD VIP AFTER PLAYER.

    4.CLIENT

    4.1. In file ROOT/PlayerSettingModule.py search 

    Spoiler

    chrmgr.RegisterEffect(chrmgr.EFFECT_AFFECT+37, "", "d:/ymir work/effect/etc/guild_war_flag/flag_yellow.mse")

    And after that add:

    Spoiler

    chrmgr.RegisterEffect(chrmgr.EFFECT_AFFECT+38, "Bip01", "locale/en/effect/vip.mse")

    Edit locale/en with your locale : ex locale/ro || locale/de

    4.2 In locale go to effect folder(WHERE YOU HAVE GM.MSE) and add THIS FILES:

     

    This is the hidden content, please

     


    Post any problems/bugs and we will solve them tohether ;)

    Sorry for my bad english..:(

    • Metin2 Dev 83
    • Eyes 2
    • Dislove 2
    • Not Good 1
    • Sad 2
    • Cry 1
    • Smile Tear 3
    • Think 3
    • Scream 1
    • Lmao 3
    • Good 46
    • Love 7
    • Love 84
  5. Hello everyone, does someone to fix this error ?
     

    Spoiler

    SYSERR: May 22 07:52:08.839127 :: Analyze: login phase does not handle this packet! header 80
    SYSERR: May 22 07:55:10.959146 :: Process: SEQUENCE 49e22180 mismatch 0xaf != 0x64 header 254
    SYSERR: May 22 07:55:10.959182 :: Process: SEQUENCE_LOG [UNKNOWN]-------------
        [254 : 0xaf]

    SYSERR: May 22 08:12:03.682722 :: Analyze: login phase does not handle this packet! header 80
    SYSERR: May 22 08:15:57.44391 :: Analyze: login phase does not handle this packet! header 80
    SYSERR: May 22 08:24:00.602606 :: Analyze: login phase does not handle this packet! header 80
    SYSERR: May 22 08:27:18.563042 :: Analyze: login phase does not handle this packet! header 80
    SYSERR: May 22 08:32:27.580291 :: Analyze: login phase does not handle this packet! header 80
    SYSERR: May 22 08:35:30.73780 :: Process: SEQUENCE 49e22180 mismatch 0xaf != 0x64 header 254
    SYSERR: May 22 08:35:30.73835 :: Process: SEQUENCE_LOG [UNKNOWN]-------------
        [254 : 0xaf]

    SYSERR: May 22 08:43:13.521679 :: Analyze: login phase does not handle this packet! header 80
    SYSERR: May 22 08:46:18.161522 :: Process: SEQUENCE 49e22180 mismatch 0xaf != 0x64 header 254
    SYSERR: May 22 08:46:18.161574 :: Process: SEQUENCE_LOG [UNKNOWN]-------------
        [254 : 0xaf]

    SYSERR: May 22 08:55:58.473530 :: Analyze: login phase does not handle this packet! header 80
    SYSERR: May 22 09:03:20.113789 :: Analyze: login phase does not handle this packet! header 80
    SYSERR: May 22 09:10:36.710685 :: Analyze: login phase does not handle this packet! header 80
    SYSERR: May 22 09:11:15.352537 :: Process: SEQUENCE 49e22180 mismatch 0xaf != 0x64 header 254
    SYSERR: May 22 09:11:15.352603 :: Process: SEQUENCE_LOG [UNKNOWN]-------------
        [254 : 0xaf]

    SYSERR: May 22 09:13:40.986564 :: Process: SEQUENCE 49e22880 mismatch 0xaf != 0x64 header 254
    SYSERR: May 22 09:13:40.986602 :: Process: SEQUENCE_LOG [UNKNOWN]-------------
        [254 : 0xaf]

    SYSERR: May 22 09:19:51.92955 :: Analyze: login phase does not handle this packet! header 80
    SYSERR: May 22 09:33:45.124107 :: Analyze: login phase does not handle this packet! header 80
    SYSERR: May 22 09:36:50.244657 :: Process: SEQUENCE 49e22500 mismatch 0xaf != 0x64 header 254
    SYSERR: May 22 09:36:50.244787 :: Process: SEQUENCE_LOG [UNKNOWN]-------------
        [254 : 0xaf]

    SYSERR: May 22 09:38:59.604579 :: Analyze: login phase does not handle this packet! header 80
    SYSERR: May 22 09:41:49.280298 :: Analyze: login phase does not handle this packet! header 80
    SYSERR: May 22 09:42:01.800175 :: Process: SEQUENCE 49e21e00 mismatch 0xaf != 0x64 header 254
    SYSERR: May 22 09:42:01.800228 :: Process: SEQUENCE_LOG [UNKNOWN]-------------
        [254 : 0xaf]

    SYSERR: May 22 09:42:28.311693 :: Analyze: login phase does not handle this packet! header 80
    SYSERR: May 22 09:45:30.190458 :: Process: SEQUENCE 49e22c00 mismatch 0xaf != 0x64 header 254
    SYSERR: May 22 09:45:30.190509 :: Process: SEQUENCE_LOG [UNKNOWN]-------------
        [254 : 0xaf]

    Server crash..

    Sorry for my bad english...:3

    EDIT: Fixed, for fix send me a message.

  6. import ui
    import player
    import mouseModule
    import net
    import app
    import chat
    import snd
    import item
    import player
    import chat
    import grp
    import uiScriptLocale
    import uiRefine
    import uiAttachMetin
    import uiCommon
    import locale
    import constInfo
    import ime
    import grpText
    import uiToolTip
    Low = "low-work/system/"
        
    class Switcher(ui.ScriptWindow):
        POSITIVE_COLOR = grp.GenerateColor(0.5411, 0.7254, 0.5568, 1.0)
        NEGATIVE_COLOR = grp.GenerateColor(0.9, 0.4745, 0.4627, 1.0)
        def __init__(self):
            import exception
            ui.ScriptWindow.__init__(self)
        def __del__(self):
            ui.ScriptWindow.__del__(self)
        def Show(self):
            constInfo.SWITCH_BONUS = 1
            self.__LoadWindow()
            ui.ScriptWindow.Show(self)
        def Close(self):
            constInfo.SWITCH_BONUS = 0
            self.Hide()
            
        def OnPressEscapeKey(self):
            self.Close()
            return TRUE
        def __LoadWindow(self):
            try:            
                pyScrLoader = ui.PythonScriptLoader()
                pyScrLoader.LoadScriptFile(self, Low + "binari2.py")
            except:
                import exception
                exception.Abort("CostumeWindow.LoadWindow.LoadObject")
            self.TitleBar = self.GetChild("TitleBar")
            self.switchslot = self.GetChild("switchslot")        
            self.bonusslot = [self.GetChild2("bonus1"), self.GetChild2("bonus2"), self.GetChild2("bonus3"), self.GetChild2("bonus4"), self.GetChild2("bonus5"), ]
            self.buttongira = self.GetChild("gira_bonus")
            self.buttongira.SetEvent(ui.__mem_func__(self.__gira_bonus))
            self.TitleBar.SetCloseEvent(ui.__mem_func__(self.Close))
            self.switchslot.SetSelectEmptySlotEvent(ui.__mem_func__(self.__OnSelectEmptySlot))
            self.switchslot.SetSelectItemSlotEvent(ui.__mem_func__(self.__OnSelectItemSlot))
            self.toolTipCostume = uiToolTip.ToolTip(190)
            self.toolTipCostume.SetTitle(item.GetItemName())
            
            self.slotitem = None
            self.slotgira = None
            
        def __OnSelectItemSlot(self, selectedSlotPos):
            isAttached = mouseModule.mouseController.isAttached()
            if isAttached:
                attachedSlotType = mouseModule.mouseController.GetAttachedType()
                attachedSlotPos = mouseModule.mouseController.GetAttachedSlotNumber()
                mouseModule.mouseController.DeattachObject()
                itemIndex = player.GetItemIndex(attachedSlotPos)
                itemCount = player.GetItemCount(attachedSlotPos)
                item.SelectItem(itemIndex)
                itemType = item.GetItemType()
                if selectedSlotPos == 0:
                    self.slotitem = attachedSlotPos
                    if item.ITEM_TYPE_WEAPON == itemType or item.ITEM_TYPE_ARMOR == itemType:
                        self.switchslot.SetItemSlot(selectedSlotPos, itemIndex, 0)                        
                        attrSlot = [player.GetItemAttribute(attachedSlotPos, i) for i in xrange(player.ATTRIBUTE_SLOT_MAX_NUM)]    
                        for i in xrange(player.ATTRIBUTE_SLOT_MAX_NUM-2):
                            type = attrSlot[i][0]
                            value = attrSlot[i][1]
                            affectString = self.__GetAffectString(type, value)
                            self.bonusslot[i].SetText(affectString)
            else:            
                if selectedSlotPos == 0:
                    self.switchslot.SetItemSlot(0, 0, 0)
                    self.slotitem = None
                
        def __OnSelectEmptySlot(self, selectedSlotPos):
            isAttached = mouseModule.mouseController.isAttached()
            if isAttached:
                attachedSlotType = mouseModule.mouseController.GetAttachedType()
                attachedSlotPos = mouseModule.mouseController.GetAttachedSlotNumber()
                mouseModule.mouseController.DeattachObject()
                itemIndex = player.GetItemIndex(attachedSlotPos)
                itemCount = player.GetItemCount(attachedSlotPos)
                item.SelectItem(itemIndex)
                itemType = item.GetItemType()
                if selectedSlotPos == 0:
                    self.slotitem = attachedSlotPos
                    if item.ITEM_TYPE_WEAPON == itemType or item.ITEM_TYPE_ARMOR == itemType:
                        self.switchslot.SetItemSlot(selectedSlotPos, itemIndex, 0)                        
                        attrSlot = [player.GetItemAttribute(attachedSlotPos, i) for i in xrange(player.ATTRIBUTE_SLOT_MAX_NUM)]    
                        for i in xrange(player.ATTRIBUTE_SLOT_MAX_NUM-2):
                            type = attrSlot[i][0]
                            value = attrSlot[i][1]
                            affectString = self.__GetAffectString(type, value)
                            self.bonusslot[i].SetText(affectString)
                if selectedSlotPos == 1 and itemIndex== 71084:
                        self.slotgira = attachedSlotPos
                        self.switchslot.SetItemSlot(selectedSlotPos, itemIndex, itemCount)
                
        def __GetAffectString(self, affectType, affectValue):
            if 0 == affectType:
                return None
            if 0 == affectValue:
                return None
                
            try:
                return self.AFFECT_DICT[affectType](affectValue)
            except TypeError:
                return "UNKNOWN_VALUE[%s] %s" % (affectType, affectValue)
            except KeyError:
                return "UNKNOWN_TYPE[%s] %s" % (affectType, affectValue)
                
        def __gira_bonus(self):
            self.__Switch(self.slotitem,self.slotgira)
            
        def __Switch(self,dstSlotPos,srcSlotPos):
            net.SendItemUseToItemPacket(srcSlotPos,dstSlotPos)
            #self.refresh(dstSlotPos,srcSlotPos)
            
        def refresh(self,dstSlotPos,srcSlotPos):
            attrSlot = player.GetItemAttribute(dstSlotPos, i) for i in xrange(player.ATTRIBUTE_SLOT_MAX_NUM)    
            for i in xrange(5):        
                self.bonusslot[i].SetText("")
                
            for i in xrange(player.ATTRIBUTE_SLOT_MAX_NUM-2):
                type = attrSlot[i][0]
                value = attrSlot[i][1]
                affectString = self.__GetAffectString(type, value)
                if int(value) < 0:                
                    self.bonusslot[i].SetPackedFontColor(self.NEGATIVE_COLOR)
                else:
                    self.bonusslot[i].SetPackedFontColor(self.POSITIVE_COLOR)
                self.bonusslot[i].SetText(affectString)
            
            itemIndex = player.GetItemIndex(srcSlotPos)
            itemCount = player.GetItemCount(srcSlotPos)
            self.switchslot.ClearSlot(1)
            self.switchslot.SetItemSlot(1, itemIndex, itemCount)
                
        def OnUpdate(self):
            self.refresh(self.slotitem,self.slotgira)
        AFFECT_DICT = {
            item.APPLY_MAX_HP : locale.TOOLTIP_MAX_HP,
            item.APPLY_MAX_SP : locale.TOOLTIP_MAX_SP,
            item.APPLY_CON : locale.TOOLTIP_CON,
            item.APPLY_INT : locale.TOOLTIP_INT,
            item.APPLY_STR : locale.TOOLTIP_STR,
            item.APPLY_DEX : locale.TOOLTIP_DEX,
            item.APPLY_ATT_SPEED : locale.TOOLTIP_ATT_SPEED,
            item.APPLY_MOV_SPEED : locale.TOOLTIP_MOV_SPEED,
            item.APPLY_CAST_SPEED : locale.TOOLTIP_CAST_SPEED,
            item.APPLY_HP_REGEN : locale.TOOLTIP_HP_REGEN,
            item.APPLY_SP_REGEN : locale.TOOLTIP_SP_REGEN,
            item.APPLY_POISON_PCT : locale.TOOLTIP_APPLY_POISON_PCT,
            item.APPLY_STUN_PCT : locale.TOOLTIP_APPLY_STUN_PCT,
            item.APPLY_SLOW_PCT : locale.TOOLTIP_APPLY_SLOW_PCT,
            item.APPLY_CRITICAL_PCT : locale.TOOLTIP_APPLY_CRITICAL_PCT,
            item.APPLY_PENETRATE_PCT : locale.TOOLTIP_APPLY_PENETRATE_PCT,
            item.APPLY_ATTBONUS_WARRIOR : locale.TOOLTIP_APPLY_ATTBONUS_WARRIOR,
            item.APPLY_ATTBONUS_ASSASSIN : locale.TOOLTIP_APPLY_ATTBONUS_ASSASSIN,
            item.APPLY_ATTBONUS_SURA : locale.TOOLTIP_APPLY_ATTBONUS_SURA,
            item.APPLY_ATTBONUS_SHAMAN : locale.TOOLTIP_APPLY_ATTBONUS_SHAMAN,
            item.APPLY_ATTBONUS_MONSTER : locale.TOOLTIP_APPLY_ATTBONUS_MONSTER,
            item.APPLY_ATTBONUS_HUMAN : locale.TOOLTIP_APPLY_ATTBONUS_HUMAN,
            item.APPLY_ATTBONUS_ANIMAL : locale.TOOLTIP_APPLY_ATTBONUS_ANIMAL,
            item.APPLY_ATTBONUS_ORC : locale.TOOLTIP_APPLY_ATTBONUS_ORC,
            item.APPLY_ATTBONUS_MILGYO : locale.TOOLTIP_APPLY_ATTBONUS_MILGYO,
            item.APPLY_ATTBONUS_UNDEAD : locale.TOOLTIP_APPLY_ATTBONUS_UNDEAD,
            item.APPLY_ATTBONUS_DEVIL : locale.TOOLTIP_APPLY_ATTBONUS_DEVIL,
            item.APPLY_STEAL_HP : locale.TOOLTIP_APPLY_STEAL_HP,
            item.APPLY_STEAL_SP : locale.TOOLTIP_APPLY_STEAL_SP,
            item.APPLY_MANA_BURN_PCT : locale.TOOLTIP_APPLY_MANA_BURN_PCT,
            item.APPLY_DAMAGE_SP_RECOVER : locale.TOOLTIP_APPLY_DAMAGE_SP_RECOVER,
            item.APPLY_BLOCK : locale.TOOLTIP_APPLY_BLOCK,
            item.APPLY_DODGE : locale.TOOLTIP_APPLY_DODGE,
            item.APPLY_RESIST_SWORD : locale.TOOLTIP_APPLY_RESIST_SWORD,
            item.APPLY_RESIST_TWOHAND : locale.TOOLTIP_APPLY_RESIST_TWOHAND,
            item.APPLY_RESIST_DAGGER : locale.TOOLTIP_APPLY_RESIST_DAGGER,
            item.APPLY_RESIST_BELL : locale.TOOLTIP_APPLY_RESIST_BELL,
            item.APPLY_RESIST_FAN : locale.TOOLTIP_APPLY_RESIST_FAN,
            item.APPLY_RESIST_BOW : locale.TOOLTIP_RESIST_BOW,
            item.APPLY_RESIST_FIRE : locale.TOOLTIP_RESIST_FIRE,
            item.APPLY_RESIST_ELEC : locale.TOOLTIP_RESIST_ELEC,
            item.APPLY_RESIST_MAGIC : locale.TOOLTIP_RESIST_MAGIC,
            item.APPLY_RESIST_WIND : locale.TOOLTIP_APPLY_RESIST_WIND,
            item.APPLY_REFLECT_MELEE : locale.TOOLTIP_APPLY_REFLECT_MELEE,
            item.APPLY_REFLECT_CURSE : locale.TOOLTIP_APPLY_REFLECT_CURSE,
            item.APPLY_POISON_REDUCE : locale.TOOLTIP_APPLY_POISON_REDUCE,
            item.APPLY_KILL_SP_RECOVER : locale.TOOLTIP_APPLY_KILL_SP_RECOVER,
            item.APPLY_EXP_DOUBLE_BONUS : locale.TOOLTIP_APPLY_EXP_DOUBLE_BONUS,
            item.APPLY_GOLD_DOUBLE_BONUS : locale.TOOLTIP_APPLY_GOLD_DOUBLE_BONUS,
            item.APPLY_ITEM_DROP_BONUS : locale.TOOLTIP_APPLY_ITEM_DROP_BONUS,
            item.APPLY_POTION_BONUS : locale.TOOLTIP_APPLY_POTION_BONUS,
            item.APPLY_KILL_HP_RECOVER : locale.TOOLTIP_APPLY_KILL_HP_RECOVER,
            item.APPLY_IMMUNE_STUN : locale.TOOLTIP_APPLY_IMMUNE_STUN,
            item.APPLY_IMMUNE_SLOW : locale.TOOLTIP_APPLY_IMMUNE_SLOW,
            item.APPLY_IMMUNE_FALL : locale.TOOLTIP_APPLY_IMMUNE_FALL,
            item.APPLY_BOW_DISTANCE : locale.TOOLTIP_BOW_DISTANCE,
            item.APPLY_DEF_GRADE_BONUS : locale.TOOLTIP_DEF_GRADE,
            item.APPLY_ATT_GRADE_BONUS : locale.TOOLTIP_ATT_GRADE,
            item.APPLY_MAGIC_ATT_GRADE : locale.TOOLTIP_MAGIC_ATT_GRADE,
            item.APPLY_MAGIC_DEF_GRADE : locale.TOOLTIP_MAGIC_DEF_GRADE,
            item.APPLY_MAX_STAMINA : locale.TOOLTIP_MAX_STAMINA,
            item.APPLY_MALL_ATTBONUS : locale.TOOLTIP_MALL_ATTBONUS,
            item.APPLY_MALL_DEFBONUS : locale.TOOLTIP_MALL_DEFBONUS,
            item.APPLY_MALL_EXPBONUS : locale.TOOLTIP_MALL_EXPBONUS,
            item.APPLY_MALL_ITEMBONUS : locale.TOOLTIP_MALL_ITEMBONUS,
            item.APPLY_MALL_GOLDBONUS : locale.TOOLTIP_MALL_GOLDBONUS,
            item.APPLY_SKILL_DAMAGE_BONUS : locale.TOOLTIP_SKILL_DAMAGE_BONUS,
            item.APPLY_NORMAL_HIT_DAMAGE_BONUS : locale.TOOLTIP_NORMAL_HIT_DAMAGE_BONUS,
            item.APPLY_SKILL_DEFEND_BONUS : locale.TOOLTIP_SKILL_DEFEND_BONUS,
            item.APPLY_NORMAL_HIT_DEFEND_BONUS : locale.TOOLTIP_NORMAL_HIT_DEFEND_BONUS,
            item.APPLY_PC_BANG_EXP_BONUS : locale.TOOLTIP_MALL_EXPBONUS_P_STATIC,
            item.APPLY_PC_BANG_DROP_BONUS : locale.TOOLTIP_MALL_ITEMBONUS_P_STATIC,
            item.APPLY_RESIST_WARRIOR : locale.TOOLTIP_APPLY_RESIST_WARRIOR,
            item.APPLY_RESIST_ASSASSIN : locale.TOOLTIP_APPLY_RESIST_ASSASSIN,
            item.APPLY_RESIST_SURA : locale.TOOLTIP_APPLY_RESIST_SURA,
            item.APPLY_RESIST_SHAMAN : locale.TOOLTIP_APPLY_RESIST_SHAMAN,
            item.APPLY_MAX_HP_PCT : locale.TOOLTIP_APPLY_MAX_HP_PCT,
            item.APPLY_MAX_SP_PCT : locale.TOOLTIP_APPLY_MAX_SP_PCT,
            item.APPLY_ENERGY : locale.TOOLTIP_ENERGY,
            item.APPLY_COSTUME_ATTR_BONUS : locale.TOOLTIP_COSTUME_ATTR_BONUS,    
        }
    

    TRY NOW..

×
×
  • Create New...

Important Information

Terms of Use / Privacy Policy / Guidelines / We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.