Skill DarkSide decompiled from GS 1.01.06
ObjUseSkill.cpp
on CObjUseSkill::UseSkill add
Code:
case AT_SKILL_RAGEFIGHTER_DARKSIDE://1.01.06
{
this->SkillDarkSide( aIndex, aTargetIndex, lpMagic);
}
break;
stay in ObjUseSkill and add
Code:
//005B35D0 Ok
void CObjUseSkill::SkillDarkSide(int aIndex, int iTargetIndex, CMagicInf *lpMagic)
{
int iTargetCount; // [sp+1Ch] [bp-10h]@1
WORD wTargetList[5]; // [sp+20h] [bp-Ch]@3
iTargetCount = 0;
for ( int i = 0; i < 5; ++i )
{
wTargetList[i] = 10000;
}
if( gObj[aIndex].CloseCount >= 0 )
{
return;
}
if( !gObjUseSkill.SkillMonkDarkSideGetTargetIndex(aIndex, iTargetIndex, lpMagic, &wTargetList[0]) )
{
return;
}
PMSG_MONK_DARKSIDE_SEND pDarkSideTargetList;
memset(&pDarkSideTargetList, 0, sizeof(pDarkSideTargetList));
PHeadSetB((LPBYTE)&pDarkSideTargetList, 0x4B, sizeof(pDarkSideTargetList));
memcpy(pDarkSideTargetList.TargetIndex, wTargetList, sizeof(wTargetList));
pDarkSideTargetList.MagicNumber = LOWORD(lpMagic->m_Skill);
gObj[aIndex].m_btDarkSideTargetNum = 0;
for ( int j = 0; j < 5; ++j )
{
if ( wTargetList[j] != 10000 )
{
++gObj[aIndex].m_btDarkSideTargetNum;
gObjAddAttackProcMsgSendDelay(&gObj[aIndex], 61,aIndex,150 * iTargetCount++ + 150,lpMagic->m_Skill,wTargetList[j]);
}
}
memcpy(gObj[aIndex].m_wDarkSideTargetList, wTargetList, sizeof(wTargetList));
DataSend(aIndex, (LPBYTE)&pDarkSideTargetList, pDarkSideTargetList.h.size);
}
ObjUseSkill.h
Code:
void SkillDarkSide(int aIndex, int iTargetIndex, CMagicInf *lpMagic);
and MasterLevelSkillTreeSystem.cpp
Code:
case 559:
gObjUseSkill.SkillDarkSide( lpObj->m_Index, aTargetIndex, lpMagic);
break;
Works like original.