Welcome!

Join our community of MMO enthusiasts and game developers! By registering, you'll gain access to discussions on the latest developments in MMO server files and collaborate with like-minded individuals. Join us today and unlock the potential of MMO server development!

Join Today!

INVISIBLE FIX ASSASIN - EP9 SOURCE of BUBU

Junior Spellweaver
Joined
Feb 28, 2014
Messages
117
Reaction score
11

Attachments

You must be registered for see attachments list
Last edited:
Upvote 0
Master Summoner
Joined
Feb 6, 2019
Messages
575
Reaction score
159
GLChar.cpp
C++:
BOOL GLChar::RECEIVE_SKILLFACT ( const SNATIVEID skill_id, const WORD wlevel, DWORD &dwSELECT, WORD _wCasterCrow, DWORD _dwCasterID )

    for( int nSpec=0; nSpec<SKILL::MAX_SPEC; ++nSpec )
    {
        switch ( pSkill->m_sAPPLY.sSpecs[nSpec].emSPEC )
        {
        case EMSPECA_REFDAMAGE:
        case EMSPECA_NONBLOW:
        case EMSPECA_PIERCE:
        case EMSPECA_INVISIBLE: //add this
        case EMSPECA_RECVISIBLE:: //add this
        case EMSPECA_TARRANGE:
        case EMSPECA_MOVEVELO:
        case EMSPECA_ATTACKVELO:
        case EMSPECA_SKILLDELAY:
        case EMSPECA_PSY_DAMAGE_REDUCE:
        case EMSPECA_MAGIC_DAMAGE_REDUCE:
        case EMSPECA_PSY_DAMAGE_REFLECTION:
        case EMSPECA_MAGIC_DAMAGE_REFLECTION:
        case EMSPECA_DEFENSE_SKILL_ACTIVE:
        case EMSPECA_PROHIBIT_POTION:        /*prohibit potion skill logic, Juver, 2017/06/06 */
        case EMSPECA_PROHIBIT_SKILL:        /*prohibit skill logic, Juver, 2017/06/06 */
        case EMSPECA_CHANGE_ATTACK_RANGE:    /*skill range spec logic, Juver, 2017/06/06 */
        case EMSPECA_CHANGE_APPLY_RANGE:    /*skill range spec logic, Juver, 2017/06/06 */
        case EMSPECA_STUN:                    /*skill stun logic, Juver, 2017/06/06 */
        case EMSPECA_CONTINUOUS_DAMAGE:        /*continuous damage skill logic, Juver, 2017/06/10 */
        case EMSPECA_CURSE:                    /*curse skill logic, Juver, 2017/06/10 */
        case EMSPECA_TALK_TO_NPC:            /*npc talk buff, Juver, 2017/10/03 */
        case EMSPECA_IGNORE_DAMAGE:            /*ignore damage, Juver, 2017/12/12 */
        case EMSPECA_SPECIAL_ITEM_DROP:
        case EMSPECA_ITEMDROP_RATE:
        case EMSPECA_MONEYDROP_RATE:
        case EMSPECA_GETEXP_RATE:
            bHOLD = TRUE;
            sSKILLEF.sSpecs[nSpec].emSPEC = pSkill->m_sAPPLY.sSpecs[nSpec].emSPEC;
            sSKILLEF.sSpecs[nSpec].fSPECVAR1 = pSkill->m_sAPPLY.sSpecs[nSpec].sSPEC[wlevel].fVAR1;
            sSKILLEF.sSpecs[nSpec].fSPECVAR2 = pSkill->m_sAPPLY.sSpecs[nSpec].sSPEC[wlevel].fVAR2;
            sSKILLEF.sSpecs[nSpec].dwSPECFLAG = pSkill->m_sAPPLY.sSpecs[nSpec].sSPEC[wlevel].dwFLAG;
            sSKILLEF.sSpecs[nSpec].dwNativeID = pSkill->m_sAPPLY.sSpecs[nSpec].sSPEC[wlevel].dwNativeID;
            break;
        };
    }
GLCharacterSkill.cpp
C++:
BOOL GLCharacter::RECEIVE_SKILLFACT ( const SNATIVEID skill_id, const WORD wlevel, const DWORD dwSELECT, WORD _wCasterCrow, DWORD _dwCasterID )
{
    for( int nSpec=0; nSpec<SKILL::MAX_SPEC; ++nSpec )
    {
        switch ( pSkill->m_sAPPLY.sSpecs[nSpec].emSPEC )
        {
        case EMSPECA_REFDAMAGE:
        case EMSPECA_NONBLOW:
        case EMSPECA_PIERCE:
        case EMSPECA_INVISIBLE: //add this
        case EMSPECA_RECVISIBLE: //add this
        case EMSPECA_TARRANGE:
        case EMSPECA_MOVEVELO:
        case EMSPECA_ATTACKVELO:
        case EMSPECA_SKILLDELAY:
        case EMSPECA_PSY_DAMAGE_REDUCE:
        case EMSPECA_MAGIC_DAMAGE_REDUCE:
        case EMSPECA_PSY_DAMAGE_REFLECTION:
        case EMSPECA_MAGIC_DAMAGE_REFLECTION:
        case EMSPECA_DEFENSE_SKILL_ACTIVE:
        case EMSPECA_PROHIBIT_POTION:        /*prohibit potion skill logic, Juver, 2017/06/06 */
        case EMSPECA_PROHIBIT_SKILL:        /*prohibit skill logic, Juver, 2017/06/06 */
        case EMSPECA_CHANGE_ATTACK_RANGE:    /*skill range spec logic, Juver, 2017/06/06 */
        case EMSPECA_CHANGE_APPLY_RANGE:    /*skill range spec logic, Juver, 2017/06/06 */
        case EMSPECA_STUN:                    /*skill stun logic, Juver, 2017/06/06 */
        case EMSPECA_CONTINUOUS_DAMAGE:        /*continuous damage skill logic, Juver, 2017/06/10 */
        case EMSPECA_CURSE:                    /*curse skill logic, Juver, 2017/06/10 */
        case EMSPECA_TALK_TO_NPC:            /*npc talk buff, Juver, 2017/10/03 */
        case EMSPECA_IGNORE_DAMAGE:            /*ignore damage, Juver, 2017/12/12 */
        case EMSPECA_SPECIAL_ITEM_DROP:
        case EMSPECA_ITEMDROP_RATE:
        case EMSPECA_MONEYDROP_RATE:
        case EMSPECA_GETEXP_RATE:
            bHOLD = TRUE;
            sSKILLEF.sSpecs[nSpec].emSPEC = pSkill->m_sAPPLY.sSpecs[nSpec].emSPEC;
            sSKILLEF.sSpecs[nSpec].fSPECVAR1 = pSkill->m_sAPPLY.sSpecs[nSpec].sSPEC[wlevel].fVAR1;
            sSKILLEF.sSpecs[nSpec].fSPECVAR2 = pSkill->m_sAPPLY.sSpecs[nSpec].sSPEC[wlevel].fVAR2;
            sSKILLEF.sSpecs[nSpec].dwSPECFLAG = pSkill->m_sAPPLY.sSpecs[nSpec].sSPEC[wlevel].dwFLAG;
            sSKILLEF.sSpecs[nSpec].dwNativeID = pSkill->m_sAPPLY.sSpecs[nSpec].sSPEC[wlevel].dwNativeID;
            break;
        };
    }
}
GLCharClient.cpp
C++:
BOOL GLCharClient::RECEIVE_SKILLFACT ( const SNATIVEID skill_id, const WORD wlevel, const DWORD dwSELECT, WORD _wCasterCrow, DWORD _dwCasterID, float fAge )
 
        for( int nSpec=0; nSpec<SKILL::MAX_SPEC; ++nSpec )
    {
        switch ( pSkill->m_sAPPLY.sSpecs[nSpec].emSPEC )
        {
        case EMSPECA_REFDAMAGE:
        case EMSPECA_NONBLOW:
        case EMSPECA_PIERCE:
        case EMSPECA_INVISIBLE: //add this
        case EMSPECA_RECVISIBLE: //add this
        case EMSPECA_TARRANGE:
        case EMSPECA_MOVEVELO:
        case EMSPECA_ATTACKVELO:
        case EMSPECA_SKILLDELAY:
        case EMSPECA_PSY_DAMAGE_REDUCE:
        case EMSPECA_MAGIC_DAMAGE_REDUCE:
        case EMSPECA_PSY_DAMAGE_REFLECTION:
        case EMSPECA_MAGIC_DAMAGE_REFLECTION:
        case EMSPECA_DEFENSE_SKILL_ACTIVE:
        case EMSPECA_PROHIBIT_POTION:        /*prohibit potion skill logic, Juver, 2017/06/06 */
        case EMSPECA_PROHIBIT_SKILL:        /*prohibit skill logic, Juver, 2017/06/06 */
        case EMSPECA_CHANGE_ATTACK_RANGE:    /*skill range spec logic, Juver, 2017/06/06 */
        case EMSPECA_CHANGE_APPLY_RANGE:    /*skill range spec logic, Juver, 2017/06/06 */
        case EMSPECA_STUN:                    /*skill stun logic, Juver, 2017/06/06 */
        case EMSPECA_CONTINUOUS_DAMAGE:        /*continuous damage skill logic, Juver, 2017/06/10 */
        case EMSPECA_CURSE:                    /*curse skill logic, Juver, 2017/06/10 */
        case EMSPECA_TALK_TO_NPC:            /*npc talk buff, Juver, 2017/10/03 */
        case EMSPECA_IGNORE_DAMAGE:            /*ignore damage, Juver, 2017/12/12 */
        case EMSPECA_SPECIAL_ITEM_DROP:
        case EMSPECA_ITEMDROP_RATE:
        case EMSPECA_MONEYDROP_RATE:
        case EMSPECA_GETEXP_RATE:
            bHOLD = TRUE;
            sSKILLEF.sSpecs[nSpec].emSPEC = pSkill->m_sAPPLY.sSpecs[nSpec].emSPEC;
            sSKILLEF.sSpecs[nSpec].fSPECVAR1 = pSkill->m_sAPPLY.sSpecs[nSpec].sSPEC[wlevel].fVAR1;
            sSKILLEF.sSpecs[nSpec].fSPECVAR2 = pSkill->m_sAPPLY.sSpecs[nSpec].sSPEC[wlevel].fVAR2;
            sSKILLEF.sSpecs[nSpec].dwSPECFLAG = pSkill->m_sAPPLY.sSpecs[nSpec].sSPEC[wlevel].dwFLAG;
            sSKILLEF.sSpecs[nSpec].dwNativeID = pSkill->m_sAPPLY.sSpecs[nSpec].sSPEC[wlevel].dwNativeID;
            break;
        };
    }
GLCrowClient.cpp
C++:
BOOL GLCrowClient::RECEIVE_SKILLFACT ( const SNATIVEID skill_id, const WORD wlevel, const DWORD dwSELECT, WORD _wCasterCrow, DWORD _dwCasterID, float fAge )
 
        for( int nSpec=0; nSpec<SKILL::MAX_SPEC; ++nSpec )
    {
        switch ( pSkill->m_sAPPLY.sSpecs[nSpec].emSPEC )
        {
        case EMSPECA_REFDAMAGE:
        case EMSPECA_NONBLOW:
        case EMSPECA_PIERCE:
        case EMSPECA_INVISIBLE: //add this
        case EMSPECA_RECVISIBLE: //add this
        case EMSPECA_TARRANGE:
        case EMSPECA_MOVEVELO:
        case EMSPECA_CRUSHING_BLOW:
        case EMSPECA_PSY_DAMAGE_REDUCE:
        case EMSPECA_MAGIC_DAMAGE_REDUCE:
        case EMSPECA_PSY_DAMAGE_REFLECTION:
        case EMSPECA_MAGIC_DAMAGE_REFLECTION:
        case EMSPECA_DEFENSE_SKILL_ACTIVE:
        case EMSPECA_PROHIBIT_POTION:        /*prohibit potion skill logic, Juver, 2017/06/06 */
        case EMSPECA_PROHIBIT_SKILL:        /*prohibit skill logic, Juver, 2017/06/06 */
        case EMSPECA_CHANGE_ATTACK_RANGE:    /*skill range spec logic, Juver, 2017/06/06 */
        case EMSPECA_CHANGE_APPLY_RANGE:    /*skill range spec logic, Juver, 2017/06/06 */
        case EMSPECA_STUN:                    /*skill stun logic, Juver, 2017/06/06 */
        case EMSPECA_CONTINUOUS_DAMAGE:        /*continuous damage skill logic, Juver, 2017/06/10 */
        case EMSPECA_CURSE:                    /*curse skill logic, Juver, 2017/06/10 */
        case EMSPECA_IGNORE_DAMAGE:            /*ignore damage, Juver, 2017/12/12 */
            bHOLD = TRUE;
            sSKILLEF.sSpecs[nSpec].emSPEC = pSkill->m_sAPPLY.sSpecs[nSpec].emSPEC;
            sSKILLEF.sSpecs[nSpec].fSPECVAR1 = pSkill->m_sAPPLY.sSpecs[nSpec].sSPEC[wlevel].fVAR1;
            sSKILLEF.sSpecs[nSpec].fSPECVAR2 = pSkill->m_sAPPLY.sSpecs[nSpec].sSPEC[wlevel].fVAR2;
            sSKILLEF.sSpecs[nSpec].dwSPECFLAG = pSkill->m_sAPPLY.sSpecs[nSpec].sSPEC[wlevel].dwFLAG;
            sSKILLEF.sSpecs[nSpec].dwNativeID = pSkill->m_sAPPLY.sSpecs[nSpec].sSPEC[wlevel].dwNativeID;
            break;
        };
    }

GLCrowSkill.cpp
C++:
BOOL GLCrow::RECEIVE_SKILLFACT ( const SNATIVEID skill_id, const WORD wlevel, DWORD &dwSELECT, WORD _wCasterCrow, DWORD _dwCasterID )
 
        for( int nSpec=0; nSpec<SKILL::MAX_SPEC; ++nSpec )
    {
        switch ( pSkill->m_sAPPLY.sSpecs[nSpec].emSPEC )
        {
        case EMSPECA_REFDAMAGE:
        case EMSPECA_NONBLOW:
        case EMSPECA_PIERCE:
        case EMSPECA_INVISIBLE: //add this
        case EMSPECA_RECVISIBLE://add this
        case EMSPECA_TARRANGE:
        case EMSPECA_MOVEVELO:
        case EMSPECA_CRUSHING_BLOW:
        case EMSPECA_PSY_DAMAGE_REDUCE:
        case EMSPECA_MAGIC_DAMAGE_REDUCE:
        case EMSPECA_PSY_DAMAGE_REFLECTION:
        case EMSPECA_MAGIC_DAMAGE_REFLECTION:
        case EMSPECA_DEFENSE_SKILL_ACTIVE:
        case EMSPECA_PROHIBIT_POTION:        /*prohibit potion skill logic, Juver, 2017/06/06 */
        case EMSPECA_PROHIBIT_SKILL:        /*prohibit skill logic, Juver, 2017/06/06 */
        case EMSPECA_CHANGE_ATTACK_RANGE:    /*skill range spec logic, Juver, 2017/06/06 */
        case EMSPECA_CHANGE_APPLY_RANGE:    /*skill range spec logic, Juver, 2017/06/06 */
        case EMSPECA_STUN:                    /*skill stun logic, Juver, 2017/06/06 */
        case EMSPECA_CONTINUOUS_DAMAGE:        /*continuous damage skill logic, Juver, 2017/06/10 */
        case EMSPECA_CURSE:                    /*curse skill logic, Juver, 2017/06/10 */
        case EMSPECA_IGNORE_DAMAGE:            /*ignore damage, Juver, 2017/12/12 */
            bHOLD = TRUE;
            sSKILLEF.sSpecs[nSpec].emSPEC = pSkill->m_sAPPLY.sSpecs[nSpec].emSPEC;
            sSKILLEF.sSpecs[nSpec].fSPECVAR1 = pSkill->m_sAPPLY.sSpecs[nSpec].sSPEC[wlevel].fVAR1;
            sSKILLEF.sSpecs[nSpec].fSPECVAR2 = pSkill->m_sAPPLY.sSpecs[nSpec].sSPEC[wlevel].fVAR2;
            sSKILLEF.sSpecs[nSpec].dwSPECFLAG = pSkill->m_sAPPLY.sSpecs[nSpec].sSPEC[wlevel].dwFLAG;
            sSKILLEF.sSpecs[nSpec].dwNativeID = pSkill->m_sAPPLY.sSpecs[nSpec].sSPEC[wlevel].dwNativeID;
            break;
        };
    }
 
Upvote 0
Experienced Elementalist
Joined
Nov 8, 2023
Messages
246
Reaction score
37
C++:
BOOL GLChar::RECEIVE_SKILLFACT ( const SNATIVEID skill_id, const WORD wlevel, DWORD &dwSELECT, WORD _wCasterCrow, DWORD _dwCasterID )

    for( int nSpec=0; nSpec<SKILL::MAX_SPEC; ++nSpec )
    {
        switch ( pSkill->m_sAPPLY.sSpecs[nSpec].emSPEC )
        {
        case EMSPECA_REFDAMAGE:
        case EMSPECA_NONBLOW:
        case EMSPECA_PIERCE:
        case EMSPECA_INVISIBLE: //add this
        case EMSPECA_RECVISIBLE:: //add this
        case EMSPECA_TARRANGE:
        case EMSPECA_MOVEVELO:
        case EMSPECA_ATTACKVELO:
        case EMSPECA_SKILLDELAY:
        case EMSPECA_PSY_DAMAGE_REDUCE:
        case EMSPECA_MAGIC_DAMAGE_REDUCE:
        case EMSPECA_PSY_DAMAGE_REFLECTION:
        case EMSPECA_MAGIC_DAMAGE_REFLECTION:
        case EMSPECA_DEFENSE_SKILL_ACTIVE:
        case EMSPECA_PROHIBIT_POTION:        /*prohibit potion skill logic, Juver, 2017/06/06 */
        case EMSPECA_PROHIBIT_SKILL:        /*prohibit skill logic, Juver, 2017/06/06 */
        case EMSPECA_CHANGE_ATTACK_RANGE:    /*skill range spec logic, Juver, 2017/06/06 */
        case EMSPECA_CHANGE_APPLY_RANGE:    /*skill range spec logic, Juver, 2017/06/06 */
        case EMSPECA_STUN:                    /*skill stun logic, Juver, 2017/06/06 */
        case EMSPECA_CONTINUOUS_DAMAGE:        /*continuous damage skill logic, Juver, 2017/06/10 */
        case EMSPECA_CURSE:                    /*curse skill logic, Juver, 2017/06/10 */
        case EMSPECA_TALK_TO_NPC:            /*npc talk buff, Juver, 2017/10/03 */
        case EMSPECA_IGNORE_DAMAGE:            /*ignore damage, Juver, 2017/12/12 */
        case EMSPECA_SPECIAL_ITEM_DROP:
        case EMSPECA_ITEMDROP_RATE:
        case EMSPECA_MONEYDROP_RATE:
        case EMSPECA_GETEXP_RATE:
            bHOLD = TRUE;
            sSKILLEF.sSpecs[nSpec].emSPEC = pSkill->m_sAPPLY.sSpecs[nSpec].emSPEC;
            sSKILLEF.sSpecs[nSpec].fSPECVAR1 = pSkill->m_sAPPLY.sSpecs[nSpec].sSPEC[wlevel].fVAR1;
            sSKILLEF.sSpecs[nSpec].fSPECVAR2 = pSkill->m_sAPPLY.sSpecs[nSpec].sSPEC[wlevel].fVAR2;
            sSKILLEF.sSpecs[nSpec].dwSPECFLAG = pSkill->m_sAPPLY.sSpecs[nSpec].sSPEC[wlevel].dwFLAG;
            sSKILLEF.sSpecs[nSpec].dwNativeID = pSkill->m_sAPPLY.sSpecs[nSpec].sSPEC[wlevel].dwNativeID;
            break;
        };
    }

C++:
BOOL GLCharacter::RECEIVE_SKILLFACT ( const SNATIVEID skill_id, const WORD wlevel, const DWORD dwSELECT, WORD _wCasterCrow, DWORD _dwCasterID )
{
    for( int nSpec=0; nSpec<SKILL::MAX_SPEC; ++nSpec )
    {
        switch ( pSkill->m_sAPPLY.sSpecs[nSpec].emSPEC )
        {
        case EMSPECA_REFDAMAGE:
        case EMSPECA_NONBLOW:
        case EMSPECA_PIERCE:
        case EMSPECA_INVISIBLE: //add this
        case EMSPECA_RECVISIBLE: //add this
        case EMSPECA_TARRANGE:
        case EMSPECA_MOVEVELO:
        case EMSPECA_ATTACKVELO:
        case EMSPECA_SKILLDELAY:
        case EMSPECA_PSY_DAMAGE_REDUCE:
        case EMSPECA_MAGIC_DAMAGE_REDUCE:
        case EMSPECA_PSY_DAMAGE_REFLECTION:
        case EMSPECA_MAGIC_DAMAGE_REFLECTION:
        case EMSPECA_DEFENSE_SKILL_ACTIVE:
        case EMSPECA_PROHIBIT_POTION:        /*prohibit potion skill logic, Juver, 2017/06/06 */
        case EMSPECA_PROHIBIT_SKILL:        /*prohibit skill logic, Juver, 2017/06/06 */
        case EMSPECA_CHANGE_ATTACK_RANGE:    /*skill range spec logic, Juver, 2017/06/06 */
        case EMSPECA_CHANGE_APPLY_RANGE:    /*skill range spec logic, Juver, 2017/06/06 */
        case EMSPECA_STUN:                    /*skill stun logic, Juver, 2017/06/06 */
        case EMSPECA_CONTINUOUS_DAMAGE:        /*continuous damage skill logic, Juver, 2017/06/10 */
        case EMSPECA_CURSE:                    /*curse skill logic, Juver, 2017/06/10 */
        case EMSPECA_TALK_TO_NPC:            /*npc talk buff, Juver, 2017/10/03 */
        case EMSPECA_IGNORE_DAMAGE:            /*ignore damage, Juver, 2017/12/12 */
        case EMSPECA_SPECIAL_ITEM_DROP:
        case EMSPECA_ITEMDROP_RATE:
        case EMSPECA_MONEYDROP_RATE:
        case EMSPECA_GETEXP_RATE:
            bHOLD = TRUE;
            sSKILLEF.sSpecs[nSpec].emSPEC = pSkill->m_sAPPLY.sSpecs[nSpec].emSPEC;
            sSKILLEF.sSpecs[nSpec].fSPECVAR1 = pSkill->m_sAPPLY.sSpecs[nSpec].sSPEC[wlevel].fVAR1;
            sSKILLEF.sSpecs[nSpec].fSPECVAR2 = pSkill->m_sAPPLY.sSpecs[nSpec].sSPEC[wlevel].fVAR2;
            sSKILLEF.sSpecs[nSpec].dwSPECFLAG = pSkill->m_sAPPLY.sSpecs[nSpec].sSPEC[wlevel].dwFLAG;
            sSKILLEF.sSpecs[nSpec].dwNativeID = pSkill->m_sAPPLY.sSpecs[nSpec].sSPEC[wlevel].dwNativeID;
            break;
        };
    }
}

C++:
BOOL GLCharClient::RECEIVE_SKILLFACT ( const SNATIVEID skill_id, const WORD wlevel, const DWORD dwSELECT, WORD _wCasterCrow, DWORD _dwCasterID, float fAge )
 
        for( int nSpec=0; nSpec<SKILL::MAX_SPEC; ++nSpec )
    {
        switch ( pSkill->m_sAPPLY.sSpecs[nSpec].emSPEC )
        {
        case EMSPECA_REFDAMAGE:
        case EMSPECA_NONBLOW:
        case EMSPECA_PIERCE:
        case EMSPECA_INVISIBLE: //add this
        case EMSPECA_RECVISIBLE: //add this
        case EMSPECA_TARRANGE:
        case EMSPECA_MOVEVELO:
        case EMSPECA_ATTACKVELO:
        case EMSPECA_SKILLDELAY:
        case EMSPECA_PSY_DAMAGE_REDUCE:
        case EMSPECA_MAGIC_DAMAGE_REDUCE:
        case EMSPECA_PSY_DAMAGE_REFLECTION:
        case EMSPECA_MAGIC_DAMAGE_REFLECTION:
        case EMSPECA_DEFENSE_SKILL_ACTIVE:
        case EMSPECA_PROHIBIT_POTION:        /*prohibit potion skill logic, Juver, 2017/06/06 */
        case EMSPECA_PROHIBIT_SKILL:        /*prohibit skill logic, Juver, 2017/06/06 */
        case EMSPECA_CHANGE_ATTACK_RANGE:    /*skill range spec logic, Juver, 2017/06/06 */
        case EMSPECA_CHANGE_APPLY_RANGE:    /*skill range spec logic, Juver, 2017/06/06 */
        case EMSPECA_STUN:                    /*skill stun logic, Juver, 2017/06/06 */
        case EMSPECA_CONTINUOUS_DAMAGE:        /*continuous damage skill logic, Juver, 2017/06/10 */
        case EMSPECA_CURSE:                    /*curse skill logic, Juver, 2017/06/10 */
        case EMSPECA_TALK_TO_NPC:            /*npc talk buff, Juver, 2017/10/03 */
        case EMSPECA_IGNORE_DAMAGE:            /*ignore damage, Juver, 2017/12/12 */
        case EMSPECA_SPECIAL_ITEM_DROP:
        case EMSPECA_ITEMDROP_RATE:
        case EMSPECA_MONEYDROP_RATE:
        case EMSPECA_GETEXP_RATE:
            bHOLD = TRUE;
            sSKILLEF.sSpecs[nSpec].emSPEC = pSkill->m_sAPPLY.sSpecs[nSpec].emSPEC;
            sSKILLEF.sSpecs[nSpec].fSPECVAR1 = pSkill->m_sAPPLY.sSpecs[nSpec].sSPEC[wlevel].fVAR1;
            sSKILLEF.sSpecs[nSpec].fSPECVAR2 = pSkill->m_sAPPLY.sSpecs[nSpec].sSPEC[wlevel].fVAR2;
            sSKILLEF.sSpecs[nSpec].dwSPECFLAG = pSkill->m_sAPPLY.sSpecs[nSpec].sSPEC[wlevel].dwFLAG;
            sSKILLEF.sSpecs[nSpec].dwNativeID = pSkill->m_sAPPLY.sSpecs[nSpec].sSPEC[wlevel].dwNativeID;
            break;
        };
    }

C++:
BOOL GLCrowClient::RECEIVE_SKILLFACT ( const SNATIVEID skill_id, const WORD wlevel, const DWORD dwSELECT, WORD _wCasterCrow, DWORD _dwCasterID, float fAge )
 
        for( int nSpec=0; nSpec<SKILL::MAX_SPEC; ++nSpec )
    {
        switch ( pSkill->m_sAPPLY.sSpecs[nSpec].emSPEC )
        {
        case EMSPECA_REFDAMAGE:
        case EMSPECA_NONBLOW:
        case EMSPECA_PIERCE:
        case EMSPECA_INVISIBLE: //add this
        case EMSPECA_RECVISIBLE: //add this
        case EMSPECA_TARRANGE:
        case EMSPECA_MOVEVELO:
        case EMSPECA_CRUSHING_BLOW:
        case EMSPECA_PSY_DAMAGE_REDUCE:
        case EMSPECA_MAGIC_DAMAGE_REDUCE:
        case EMSPECA_PSY_DAMAGE_REFLECTION:
        case EMSPECA_MAGIC_DAMAGE_REFLECTION:
        case EMSPECA_DEFENSE_SKILL_ACTIVE:
        case EMSPECA_PROHIBIT_POTION:        /*prohibit potion skill logic, Juver, 2017/06/06 */
        case EMSPECA_PROHIBIT_SKILL:        /*prohibit skill logic, Juver, 2017/06/06 */
        case EMSPECA_CHANGE_ATTACK_RANGE:    /*skill range spec logic, Juver, 2017/06/06 */
        case EMSPECA_CHANGE_APPLY_RANGE:    /*skill range spec logic, Juver, 2017/06/06 */
        case EMSPECA_STUN:                    /*skill stun logic, Juver, 2017/06/06 */
        case EMSPECA_CONTINUOUS_DAMAGE:        /*continuous damage skill logic, Juver, 2017/06/10 */
        case EMSPECA_CURSE:                    /*curse skill logic, Juver, 2017/06/10 */
        case EMSPECA_IGNORE_DAMAGE:            /*ignore damage, Juver, 2017/12/12 */
            bHOLD = TRUE;
            sSKILLEF.sSpecs[nSpec].emSPEC = pSkill->m_sAPPLY.sSpecs[nSpec].emSPEC;
            sSKILLEF.sSpecs[nSpec].fSPECVAR1 = pSkill->m_sAPPLY.sSpecs[nSpec].sSPEC[wlevel].fVAR1;
            sSKILLEF.sSpecs[nSpec].fSPECVAR2 = pSkill->m_sAPPLY.sSpecs[nSpec].sSPEC[wlevel].fVAR2;
            sSKILLEF.sSpecs[nSpec].dwSPECFLAG = pSkill->m_sAPPLY.sSpecs[nSpec].sSPEC[wlevel].dwFLAG;
            sSKILLEF.sSpecs[nSpec].dwNativeID = pSkill->m_sAPPLY.sSpecs[nSpec].sSPEC[wlevel].dwNativeID;
            break;
        };
    }


C++:
BOOL GLCrow::RECEIVE_SKILLFACT ( const SNATIVEID skill_id, const WORD wlevel, DWORD &dwSELECT, WORD _wCasterCrow, DWORD _dwCasterID )
 
        for( int nSpec=0; nSpec<SKILL::MAX_SPEC; ++nSpec )
    {
        switch ( pSkill->m_sAPPLY.sSpecs[nSpec].emSPEC )
        {
        case EMSPECA_REFDAMAGE:
        case EMSPECA_NONBLOW:
        case EMSPECA_PIERCE:
        case EMSPECA_INVISIBLE: //add this
        case EMSPECA_RECVISIBLE://add this
        case EMSPECA_TARRANGE:
        case EMSPECA_MOVEVELO:
        case EMSPECA_CRUSHING_BLOW:
        case EMSPECA_PSY_DAMAGE_REDUCE:
        case EMSPECA_MAGIC_DAMAGE_REDUCE:
        case EMSPECA_PSY_DAMAGE_REFLECTION:
        case EMSPECA_MAGIC_DAMAGE_REFLECTION:
        case EMSPECA_DEFENSE_SKILL_ACTIVE:
        case EMSPECA_PROHIBIT_POTION:        /*prohibit potion skill logic, Juver, 2017/06/06 */
        case EMSPECA_PROHIBIT_SKILL:        /*prohibit skill logic, Juver, 2017/06/06 */
        case EMSPECA_CHANGE_ATTACK_RANGE:    /*skill range spec logic, Juver, 2017/06/06 */
        case EMSPECA_CHANGE_APPLY_RANGE:    /*skill range spec logic, Juver, 2017/06/06 */
        case EMSPECA_STUN:                    /*skill stun logic, Juver, 2017/06/06 */
        case EMSPECA_CONTINUOUS_DAMAGE:        /*continuous damage skill logic, Juver, 2017/06/10 */
        case EMSPECA_CURSE:                    /*curse skill logic, Juver, 2017/06/10 */
        case EMSPECA_IGNORE_DAMAGE:            /*ignore damage, Juver, 2017/12/12 */
            bHOLD = TRUE;
            sSKILLEF.sSpecs[nSpec].emSPEC = pSkill->m_sAPPLY.sSpecs[nSpec].emSPEC;
            sSKILLEF.sSpecs[nSpec].fSPECVAR1 = pSkill->m_sAPPLY.sSpecs[nSpec].sSPEC[wlevel].fVAR1;
            sSKILLEF.sSpecs[nSpec].fSPECVAR2 = pSkill->m_sAPPLY.sSpecs[nSpec].sSPEC[wlevel].fVAR2;
            sSKILLEF.sSpecs[nSpec].dwSPECFLAG = pSkill->m_sAPPLY.sSpecs[nSpec].sSPEC[wlevel].dwFLAG;
            sSKILLEF.sSpecs[nSpec].dwNativeID = pSkill->m_sAPPLY.sSpecs[nSpec].sSPEC[wlevel].dwNativeID;
            break;
        };
    }
Imma try it later , you're a hero sir !

C++:
BOOL GLChar::RECEIVE_SKILLFACT ( const SNATIVEID skill_id, const WORD wlevel, DWORD &dwSELECT, WORD _wCasterCrow, DWORD _dwCasterID )

    for( int nSpec=0; nSpec<SKILL::MAX_SPEC; ++nSpec )
    {
        switch ( pSkill->m_sAPPLY.sSpecs[nSpec].emSPEC )
        {
        case EMSPECA_REFDAMAGE:
        case EMSPECA_NONBLOW:
        case EMSPECA_PIERCE:
        case EMSPECA_INVISIBLE: //add this
        case EMSPECA_RECVISIBLE:: //add this
        case EMSPECA_TARRANGE:
        case EMSPECA_MOVEVELO:
        case EMSPECA_ATTACKVELO:
        case EMSPECA_SKILLDELAY:
        case EMSPECA_PSY_DAMAGE_REDUCE:
        case EMSPECA_MAGIC_DAMAGE_REDUCE:
        case EMSPECA_PSY_DAMAGE_REFLECTION:
        case EMSPECA_MAGIC_DAMAGE_REFLECTION:
        case EMSPECA_DEFENSE_SKILL_ACTIVE:
        case EMSPECA_PROHIBIT_POTION:        /*prohibit potion skill logic, Juver, 2017/06/06 */
        case EMSPECA_PROHIBIT_SKILL:        /*prohibit skill logic, Juver, 2017/06/06 */
        case EMSPECA_CHANGE_ATTACK_RANGE:    /*skill range spec logic, Juver, 2017/06/06 */
        case EMSPECA_CHANGE_APPLY_RANGE:    /*skill range spec logic, Juver, 2017/06/06 */
        case EMSPECA_STUN:                    /*skill stun logic, Juver, 2017/06/06 */
        case EMSPECA_CONTINUOUS_DAMAGE:        /*continuous damage skill logic, Juver, 2017/06/10 */
        case EMSPECA_CURSE:                    /*curse skill logic, Juver, 2017/06/10 */
        case EMSPECA_TALK_TO_NPC:            /*npc talk buff, Juver, 2017/10/03 */
        case EMSPECA_IGNORE_DAMAGE:            /*ignore damage, Juver, 2017/12/12 */
        case EMSPECA_SPECIAL_ITEM_DROP:
        case EMSPECA_ITEMDROP_RATE:
        case EMSPECA_MONEYDROP_RATE:
        case EMSPECA_GETEXP_RATE:
            bHOLD = TRUE;
            sSKILLEF.sSpecs[nSpec].emSPEC = pSkill->m_sAPPLY.sSpecs[nSpec].emSPEC;
            sSKILLEF.sSpecs[nSpec].fSPECVAR1 = pSkill->m_sAPPLY.sSpecs[nSpec].sSPEC[wlevel].fVAR1;
            sSKILLEF.sSpecs[nSpec].fSPECVAR2 = pSkill->m_sAPPLY.sSpecs[nSpec].sSPEC[wlevel].fVAR2;
            sSKILLEF.sSpecs[nSpec].dwSPECFLAG = pSkill->m_sAPPLY.sSpecs[nSpec].sSPEC[wlevel].dwFLAG;
            sSKILLEF.sSpecs[nSpec].dwNativeID = pSkill->m_sAPPLY.sSpecs[nSpec].sSPEC[wlevel].dwNativeID;
            break;
        };
    }

C++:
BOOL GLCharacter::RECEIVE_SKILLFACT ( const SNATIVEID skill_id, const WORD wlevel, const DWORD dwSELECT, WORD _wCasterCrow, DWORD _dwCasterID )
{
    for( int nSpec=0; nSpec<SKILL::MAX_SPEC; ++nSpec )
    {
        switch ( pSkill->m_sAPPLY.sSpecs[nSpec].emSPEC )
        {
        case EMSPECA_REFDAMAGE:
        case EMSPECA_NONBLOW:
        case EMSPECA_PIERCE:
        case EMSPECA_INVISIBLE: //add this
        case EMSPECA_RECVISIBLE: //add this
        case EMSPECA_TARRANGE:
        case EMSPECA_MOVEVELO:
        case EMSPECA_ATTACKVELO:
        case EMSPECA_SKILLDELAY:
        case EMSPECA_PSY_DAMAGE_REDUCE:
        case EMSPECA_MAGIC_DAMAGE_REDUCE:
        case EMSPECA_PSY_DAMAGE_REFLECTION:
        case EMSPECA_MAGIC_DAMAGE_REFLECTION:
        case EMSPECA_DEFENSE_SKILL_ACTIVE:
        case EMSPECA_PROHIBIT_POTION:        /*prohibit potion skill logic, Juver, 2017/06/06 */
        case EMSPECA_PROHIBIT_SKILL:        /*prohibit skill logic, Juver, 2017/06/06 */
        case EMSPECA_CHANGE_ATTACK_RANGE:    /*skill range spec logic, Juver, 2017/06/06 */
        case EMSPECA_CHANGE_APPLY_RANGE:    /*skill range spec logic, Juver, 2017/06/06 */
        case EMSPECA_STUN:                    /*skill stun logic, Juver, 2017/06/06 */
        case EMSPECA_CONTINUOUS_DAMAGE:        /*continuous damage skill logic, Juver, 2017/06/10 */
        case EMSPECA_CURSE:                    /*curse skill logic, Juver, 2017/06/10 */
        case EMSPECA_TALK_TO_NPC:            /*npc talk buff, Juver, 2017/10/03 */
        case EMSPECA_IGNORE_DAMAGE:            /*ignore damage, Juver, 2017/12/12 */
        case EMSPECA_SPECIAL_ITEM_DROP:
        case EMSPECA_ITEMDROP_RATE:
        case EMSPECA_MONEYDROP_RATE:
        case EMSPECA_GETEXP_RATE:
            bHOLD = TRUE;
            sSKILLEF.sSpecs[nSpec].emSPEC = pSkill->m_sAPPLY.sSpecs[nSpec].emSPEC;
            sSKILLEF.sSpecs[nSpec].fSPECVAR1 = pSkill->m_sAPPLY.sSpecs[nSpec].sSPEC[wlevel].fVAR1;
            sSKILLEF.sSpecs[nSpec].fSPECVAR2 = pSkill->m_sAPPLY.sSpecs[nSpec].sSPEC[wlevel].fVAR2;
            sSKILLEF.sSpecs[nSpec].dwSPECFLAG = pSkill->m_sAPPLY.sSpecs[nSpec].sSPEC[wlevel].dwFLAG;
            sSKILLEF.sSpecs[nSpec].dwNativeID = pSkill->m_sAPPLY.sSpecs[nSpec].sSPEC[wlevel].dwNativeID;
            break;
        };
    }
}

C++:
BOOL GLCharClient::RECEIVE_SKILLFACT ( const SNATIVEID skill_id, const WORD wlevel, const DWORD dwSELECT, WORD _wCasterCrow, DWORD _dwCasterID, float fAge )
 
        for( int nSpec=0; nSpec<SKILL::MAX_SPEC; ++nSpec )
    {
        switch ( pSkill->m_sAPPLY.sSpecs[nSpec].emSPEC )
        {
        case EMSPECA_REFDAMAGE:
        case EMSPECA_NONBLOW:
        case EMSPECA_PIERCE:
        case EMSPECA_INVISIBLE: //add this
        case EMSPECA_RECVISIBLE: //add this
        case EMSPECA_TARRANGE:
        case EMSPECA_MOVEVELO:
        case EMSPECA_ATTACKVELO:
        case EMSPECA_SKILLDELAY:
        case EMSPECA_PSY_DAMAGE_REDUCE:
        case EMSPECA_MAGIC_DAMAGE_REDUCE:
        case EMSPECA_PSY_DAMAGE_REFLECTION:
        case EMSPECA_MAGIC_DAMAGE_REFLECTION:
        case EMSPECA_DEFENSE_SKILL_ACTIVE:
        case EMSPECA_PROHIBIT_POTION:        /*prohibit potion skill logic, Juver, 2017/06/06 */
        case EMSPECA_PROHIBIT_SKILL:        /*prohibit skill logic, Juver, 2017/06/06 */
        case EMSPECA_CHANGE_ATTACK_RANGE:    /*skill range spec logic, Juver, 2017/06/06 */
        case EMSPECA_CHANGE_APPLY_RANGE:    /*skill range spec logic, Juver, 2017/06/06 */
        case EMSPECA_STUN:                    /*skill stun logic, Juver, 2017/06/06 */
        case EMSPECA_CONTINUOUS_DAMAGE:        /*continuous damage skill logic, Juver, 2017/06/10 */
        case EMSPECA_CURSE:                    /*curse skill logic, Juver, 2017/06/10 */
        case EMSPECA_TALK_TO_NPC:            /*npc talk buff, Juver, 2017/10/03 */
        case EMSPECA_IGNORE_DAMAGE:            /*ignore damage, Juver, 2017/12/12 */
        case EMSPECA_SPECIAL_ITEM_DROP:
        case EMSPECA_ITEMDROP_RATE:
        case EMSPECA_MONEYDROP_RATE:
        case EMSPECA_GETEXP_RATE:
            bHOLD = TRUE;
            sSKILLEF.sSpecs[nSpec].emSPEC = pSkill->m_sAPPLY.sSpecs[nSpec].emSPEC;
            sSKILLEF.sSpecs[nSpec].fSPECVAR1 = pSkill->m_sAPPLY.sSpecs[nSpec].sSPEC[wlevel].fVAR1;
            sSKILLEF.sSpecs[nSpec].fSPECVAR2 = pSkill->m_sAPPLY.sSpecs[nSpec].sSPEC[wlevel].fVAR2;
            sSKILLEF.sSpecs[nSpec].dwSPECFLAG = pSkill->m_sAPPLY.sSpecs[nSpec].sSPEC[wlevel].dwFLAG;
            sSKILLEF.sSpecs[nSpec].dwNativeID = pSkill->m_sAPPLY.sSpecs[nSpec].sSPEC[wlevel].dwNativeID;
            break;
        };
    }

C++:
BOOL GLCrowClient::RECEIVE_SKILLFACT ( const SNATIVEID skill_id, const WORD wlevel, const DWORD dwSELECT, WORD _wCasterCrow, DWORD _dwCasterID, float fAge )
 
        for( int nSpec=0; nSpec<SKILL::MAX_SPEC; ++nSpec )
    {
        switch ( pSkill->m_sAPPLY.sSpecs[nSpec].emSPEC )
        {
        case EMSPECA_REFDAMAGE:
        case EMSPECA_NONBLOW:
        case EMSPECA_PIERCE:
        case EMSPECA_INVISIBLE: //add this
        case EMSPECA_RECVISIBLE: //add this
        case EMSPECA_TARRANGE:
        case EMSPECA_MOVEVELO:
        case EMSPECA_CRUSHING_BLOW:
        case EMSPECA_PSY_DAMAGE_REDUCE:
        case EMSPECA_MAGIC_DAMAGE_REDUCE:
        case EMSPECA_PSY_DAMAGE_REFLECTION:
        case EMSPECA_MAGIC_DAMAGE_REFLECTION:
        case EMSPECA_DEFENSE_SKILL_ACTIVE:
        case EMSPECA_PROHIBIT_POTION:        /*prohibit potion skill logic, Juver, 2017/06/06 */
        case EMSPECA_PROHIBIT_SKILL:        /*prohibit skill logic, Juver, 2017/06/06 */
        case EMSPECA_CHANGE_ATTACK_RANGE:    /*skill range spec logic, Juver, 2017/06/06 */
        case EMSPECA_CHANGE_APPLY_RANGE:    /*skill range spec logic, Juver, 2017/06/06 */
        case EMSPECA_STUN:                    /*skill stun logic, Juver, 2017/06/06 */
        case EMSPECA_CONTINUOUS_DAMAGE:        /*continuous damage skill logic, Juver, 2017/06/10 */
        case EMSPECA_CURSE:                    /*curse skill logic, Juver, 2017/06/10 */
        case EMSPECA_IGNORE_DAMAGE:            /*ignore damage, Juver, 2017/12/12 */
            bHOLD = TRUE;
            sSKILLEF.sSpecs[nSpec].emSPEC = pSkill->m_sAPPLY.sSpecs[nSpec].emSPEC;
            sSKILLEF.sSpecs[nSpec].fSPECVAR1 = pSkill->m_sAPPLY.sSpecs[nSpec].sSPEC[wlevel].fVAR1;
            sSKILLEF.sSpecs[nSpec].fSPECVAR2 = pSkill->m_sAPPLY.sSpecs[nSpec].sSPEC[wlevel].fVAR2;
            sSKILLEF.sSpecs[nSpec].dwSPECFLAG = pSkill->m_sAPPLY.sSpecs[nSpec].sSPEC[wlevel].dwFLAG;
            sSKILLEF.sSpecs[nSpec].dwNativeID = pSkill->m_sAPPLY.sSpecs[nSpec].sSPEC[wlevel].dwNativeID;
            break;
        };
    }


C++:
BOOL GLCrow::RECEIVE_SKILLFACT ( const SNATIVEID skill_id, const WORD wlevel, DWORD &dwSELECT, WORD _wCasterCrow, DWORD _dwCasterID )
 
        for( int nSpec=0; nSpec<SKILL::MAX_SPEC; ++nSpec )
    {
        switch ( pSkill->m_sAPPLY.sSpecs[nSpec].emSPEC )
        {
        case EMSPECA_REFDAMAGE:
        case EMSPECA_NONBLOW:
        case EMSPECA_PIERCE:
        case EMSPECA_INVISIBLE: //add this
        case EMSPECA_RECVISIBLE://add this
        case EMSPECA_TARRANGE:
        case EMSPECA_MOVEVELO:
        case EMSPECA_CRUSHING_BLOW:
        case EMSPECA_PSY_DAMAGE_REDUCE:
        case EMSPECA_MAGIC_DAMAGE_REDUCE:
        case EMSPECA_PSY_DAMAGE_REFLECTION:
        case EMSPECA_MAGIC_DAMAGE_REFLECTION:
        case EMSPECA_DEFENSE_SKILL_ACTIVE:
        case EMSPECA_PROHIBIT_POTION:        /*prohibit potion skill logic, Juver, 2017/06/06 */
        case EMSPECA_PROHIBIT_SKILL:        /*prohibit skill logic, Juver, 2017/06/06 */
        case EMSPECA_CHANGE_ATTACK_RANGE:    /*skill range spec logic, Juver, 2017/06/06 */
        case EMSPECA_CHANGE_APPLY_RANGE:    /*skill range spec logic, Juver, 2017/06/06 */
        case EMSPECA_STUN:                    /*skill stun logic, Juver, 2017/06/06 */
        case EMSPECA_CONTINUOUS_DAMAGE:        /*continuous damage skill logic, Juver, 2017/06/10 */
        case EMSPECA_CURSE:                    /*curse skill logic, Juver, 2017/06/10 */
        case EMSPECA_IGNORE_DAMAGE:            /*ignore damage, Juver, 2017/12/12 */
            bHOLD = TRUE;
            sSKILLEF.sSpecs[nSpec].emSPEC = pSkill->m_sAPPLY.sSpecs[nSpec].emSPEC;
            sSKILLEF.sSpecs[nSpec].fSPECVAR1 = pSkill->m_sAPPLY.sSpecs[nSpec].sSPEC[wlevel].fVAR1;
            sSKILLEF.sSpecs[nSpec].fSPECVAR2 = pSkill->m_sAPPLY.sSpecs[nSpec].sSPEC[wlevel].fVAR2;
            sSKILLEF.sSpecs[nSpec].dwSPECFLAG = pSkill->m_sAPPLY.sSpecs[nSpec].sSPEC[wlevel].dwFLAG;
            sSKILLEF.sSpecs[nSpec].dwNativeID = pSkill->m_sAPPLY.sSpecs[nSpec].sSPEC[wlevel].dwNativeID;
            break;
        };
    }
It works sir ! Thankyou verymuch , btw you got the blinks or dash ? hhhhhhh
 
Last edited:
Upvote 0
Back
Top