-
BloodCastle - Crash
Gostaria de pedir ajuda a quem já teve o mesmo problema
ou sabe como resolver pois já tentei de tudo pensei que era
o drop do blood e rescrevi a função mais não resolveu continua
com mesmo problema também rescrevi a tnotice mais deu em
nada alguém poderia me ajudar versão 99.60t :(
Custom.cpp
Código:
#include "StdAfx.h"
BLOOD eBlood;
void BloodConfigs()
{
eBlood.Type = GetPrivateProfileIntA("BloodCastle","DropType" ,6 ,CFG_GAMESERVER);
eBlood.Index = GetPrivateProfileIntA("BloodCastle","DropIndex" ,13 ,CFG_GAMESERVER);
eBlood.Level = GetPrivateProfileIntA("BloodCastle","DropLevel" ,11 ,CFG_GAMESERVER);
eBlood.Skill = GetPrivateProfileIntA("BloodCastle","DropSkill" ,1 ,CFG_GAMESERVER);
eBlood.Dur = GetPrivateProfileIntA("BloodCastle","DropDur" ,255 ,CFG_GAMESERVER);
eBlood.Luck = GetPrivateProfileIntA("BloodCastle","DropLuck" ,1 ,CFG_GAMESERVER);
eBlood.Opt = GetPrivateProfileIntA("BloodCastle","DropOpt" ,7 ,CFG_GAMESERVER);
eBlood.Exc = GetPrivateProfileIntA("BloodCastle","DropExc" ,63 ,CFG_GAMESERVER);
}
void BC(int aIndex)
{
OBJECTSTRUCT * lpObj = (OBJECTSTRUCT*)OBJECT_POINTER(aIndex);
int Item = ItemGetNumberMake(eBlood.Type, eBlood.Index);
ItemSerialCreateSend(aIndex, lpObj->MapNumber, lpObj->X, lpObj->Y, Item, eBlood.Level,eBlood.Dur, eBlood.Skill, eBlood.Luck, eBlood.Opt, aIndex, eBlood.Exc,0);
}
Custom.h
Código:
#ifndef CUSTOMS_H
#define CUSTOMS_H
void BloodConfigs();
void BC(int aIndex);
struct BLOOD
{
int Type;
int Index;
int Level;
int Dur;
int Skill;
int Luck;
int Opt;
int Exc;
};
extern BLOOD eBlood;
#endif
Hook
Código:
gs_func.HookThis((DWORD)&BC,0x00403481);
ScreenShot
[Only registered and activated users can see links. Click Here To Register...]
[Only registered and activated users can see links. Click Here To Register...]
-
hooka na call ao invés de hooka no JMP.
-
Valeu maninho vou tentar :D
-
existe uma coisa que chama debugger e outra que chama call stack. utilize-os.
:facepalm:
-
Além do que o Wolf já disse acima, só posso te dizer:
Pagando bem, estamos ai ;)
[]'s
-
Offset do debug
Código:
004BC20C |. 83BC08 E8CA410>|CMP DWORD PTR DS:[EAX+ECX+2742>],0
Função que está crashando :(
Código:
void __cdecl gObjMsgProc(OBJECTSTRUCT *lpObj)
{
signed int n; // [sp+4Ch] [bp-8h]@1
int aIndex; // [sp+50h] [bp-4h]@1
aIndex = lpObj->m_Index;
for ( n = 0; n < 10; ++n )
{
if ( (signed int)*(&(&gSMMsg)[aIndex] + 4 n) >= 0 && GetTickCount() > (&dword_641CAF0[40 aIndex] + 4 n) )
{
if ( lpObj->Type != 2 && lpObj->Type != 3 )
gObjStateProc(
lpObj,
(int)*(&(&gSMMsg)[aIndex] + 4 * n),
(&dword_641CAEC[40 aIndex] + 4 * n),
(&dword_641CAF4[40 aIndex] + 4 * n));
else
gObjMonsterStateProc(lpObj, (int)*(&(&gSMMsg)[aIndex] + 4 n), (&dword_641CAEC[40 aIndex] + 4 n));
(&(&gSMMsg)[aIndex] + 4 n) = (struct MessageStateMachine (*)[10])-1;
}
}
}
// 641CAE8: using guessed type struct MessageStateMachine (*gSMMsg)[10];
// 641CAEC: using guessed type int dword_641CAEC[];
// 641CAF0: using guessed type int dword_641CAF0[];
// 641CAF4: using guessed type int dword_641CAF4[];
agora tenho que descobrir onde está o erro alguém ajuda ?