Offset:

#define GCMagicAttackNumberSend ((void(*)(OBJECTSTRUCT* lpObj,BYTE MagicNumber, int usernumber, unsigned char skillsuccess)) 0x00402036) // Offset 96.40 ok
Archivo.cpp

//================================================== =========================================
//-- Npc Elf Builder ok
//================================================== =========================================
void ElfBuilder(OBJECTSTRUCT* lpObj, OBJECTSTRUCT * lpNpc)
{
/* CONFIGURACION .INI */
int BuffReqReset= GetPrivateProfileIntA("NPC Buff", "BuffReset",1, CFG_NPC);
int BuffReqLevel= GetPrivateProfileIntA("NPC Buff", "BuffLevel",350, CFG_NPC);

int BuffAttackRate= GetPrivateProfileIntA("NPC Buff", "BuffRate",200, CFG_NPC);
int BuffAttackTime= GetPrivateProfileIntA("NPC Buff", "BuffTime",60, CFG_NPC);

/* COMIENZO DEL NPC BUFF */
char NPCBuilder[100];
int skillSuccess = true;
/*VERIFICACION DE LEVEL Y RESET */
if(lpObj->Level > BuffReqLevel)
{
sprintf_s(NPCBuilder,"Tu Nivel es demasiado alto!");
ServerMsgSend(NPCBuilder,lpObj->aIndex,1);
return;
}
if(lpObj->Resets > BuffReqReset)
{
sprintf_s(NPCBuilder,"Tu Reset es demasiado alto!");
ServerMsgSend(NPCBuilder,lpObj->aIndex,1);
return;
}
/* FUNCION DEL NPC BUFF */
lpObj->m_SkillAttack = BuffAttackRate;
lpObj->m_SkillAttackTime = BuffAttackTime;
lpObj->m_ViewSkillState |= 8 ;
sprintf_s(NPCBuilder,"Ahora tienes Buff de Ataque!!!");
ServerMsgSend(NPCBuilder,lpObj->aIndex,0);
GCMagicAttackNumberSend(lpNpc,28,lpObj->aIndex,skillSuccess);
return;
/* FIN DEL NPC */
}


Credits
Offset: Randy
Funciones: Caron22