04.06.2014, 01:03
you have to know just a tad of assembly, if you don't already... how I got those bytes is I copied your addresses and went to them in ollydbg.
the first few asm instructions here are:

on the left side of these opcodes are the hexadecimal value for the asm instruction, which in this case is:
53 56 57 8b 7c 24 18 85 FF
you just need to make sure you copy enough bytes so that it's unique enough that it won't find the same pattern twice in the SA-MP server.
and \x is used for a hex number output in a string
the 2nd parameter in FindPattern, all the x's. you need to put an x or a ? for each byte. a ? is used if that asm instruction is likely to change in the future: e.g: memory addresses. it ignores that byte when searching then.
so the final code for FUNC_CConsole_AddStringVariable is:
Код:
FUNC_CConsole_AddStringVariable = 0x486FE0;
Код:
PUSH EBX PUSH ESI PUSH EDI MOV EDI,DWORD PTR SS:[ESP+18]

on the left side of these opcodes are the hexadecimal value for the asm instruction, which in this case is:
53 56 57 8b 7c 24 18 85 FF
you just need to make sure you copy enough bytes so that it's unique enough that it won't find the same pattern twice in the SA-MP server.
and \x is used for a hex number output in a string
the 2nd parameter in FindPattern, all the x's. you need to put an x or a ? for each byte. a ? is used if that asm instruction is likely to change in the future: e.g: memory addresses. it ignores that byte when searching then.
so the final code for FUNC_CConsole_AddStringVariable is:
Код:
FindPattern("\x53\x56\x57\x8B\x7C\x24\x18\x85\xFF", "xxxxxxxxx");

