Ich habe eine Funktion gehookt um bestimmte Daten zu "Manipulieren" die Funktion wird bei jedem Monster Kill auf'm Server ausgeführt und sollte d.h schnell und sicher sein natürlich.
Habe einen Vector wo bestimmte Spieler drinnen sind und wo geprüft werden muss ob Sie drinnen sind und was der return Wert ist.
PHP Code:
int __declspec(naked) AsmHookAllotExpFunction()
{
CVIPSystem VIP;
check = true;
__asm
{
PUSHAD //Save Register
PUSHFD // Save FLAGS ?
mov Exp, eax
mov edx, [ebp - 2Ch] // PlayerPointer
mov PlayerPtr, edx
}
if (PlayerPtr)
{
if ((VIP.IsinVector(PlayerPtr) == 100) && (check == true) )
{
Exp = Exp * 1.10;
check = false;
}
if ((VIP.IsinVector(PlayerPtr) == 200) && (check == true) )
{
Exp = Exp * 1.20;
check = false;
}
oder würde z.b nen std::auto_ptr auch gut sein ?
Meine zweite Frage: Sind die if so gut gemacht ? habe extra den check drinne damit die vectoren nicht alle durchgelaufen werden müssen ?
oder sollte ich da auf etwas anderes setzen ?