• Unfortunately, we have experienced significant hard drive damage that requires urgent maintenance and rebuilding. The forum will be a state of read only until we install our new drives and rebuild all the configurations needed. Please follow our Facebook pagefor updates, or we will be back up shortly! (The forum could go offline at any given time due to the nature of the failed drives whilst awaiting the upgrades.)

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
245
Reaction score
36
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