You are not logged in.
Тут кто-то знает? Но не пишет?
Указатель актера - что это? Указатель на СPed?
есть scmHook с исходниками. где его скачать?
Указатель на актера, на объект(класса) или как?
Мне надо через плагин функцию вызвать.
Не жели не кто не знает?
А как достичь высокой посещаемости на форуме?
Ну создал тему через день только может кто ответит.
Отлично! Молоток!
так держать.
Вот есть функция:
load_txd_fronten1 proc near ; CODE XREF: sub_458EC0+58Dp .text:00580CF0 ; sub_4A3A34+B0p ... .text:00580CF0 .text:00580CF0 arg_0 = dword ptr 4 .text:00580CF0 arg_4 = dword ptr 8 .text:00580CF0 .text:00580CF0 push ebx .text:00580CF1 push esi .text:00580CF2 push edi .text:00580CF3 push ebp .text:00580CF4 push 1 .text:00580CF6 xor bl, bl .text:00580CF8 mov ebp, [esp+14h+arg_0] .text:00580CFC mov edi, [esp+14h+arg_4] .text:00580D00 call sub_63F020 .text:00580D05 pop ecx .text:00580D06 .text:00580D06 loc_580D06: ; CODE XREF: load_txd_fronten1+27j .text:00580D06 push edi .text:00580D07 push 1 .text:00580D09 push 2 .text:00580D0B call sub_645A10 .text:00580D10 mov esi, eax .text:00580D12 add esp, 0Ch .text:00580D15 test esi, esi .text:00580D17 jz short loc_580D06 .text:00580D19 test esi, esi .text:00580D1B jz short loc_580D7E .text:00580D1D mov eax, ds:dword_9B6A54 .text:00580D22 mov ecx, eax .text:00580D24 mov ebx, [ecx+4] .text:00580D27 movzx edx, byte ptr [ebx+ebp] .text:00580D2B and edx, 80h .text:00580D31 jz short loc_580D37 .text:00580D33 xor edi, edi .text:00580D35 jmp short loc_580D43 .text:00580D37 ; --------------------------------------------------------------------------- .text:00580D37 .text:00580D37 loc_580D37: ; CODE XREF: load_txd_fronten1+41j .text:00580D37 mov ecx, ebp .text:00580D39 lea edi, [ecx+ecx*8] .text:00580D3C lea edi, [edi+edi*2] .text:00580D3F add edi, ecx .text:00580D41 add edi, [eax] .text:00580D43 .text:00580D43 loc_580D43: ; CODE XREF: load_txd_fronten1+45j .text:00580D43 push 0 .text:00580D45 push 0 .text:00580D47 push 16h .text:00580D49 push esi .text:00580D4A call sub_64FB10 .text:00580D4F add esp, 10h .text:00580D52 test eax, eax .text:00580D54 jz short loc_580D67 .text:00580D56 push esi .text:00580D57 call sub_61E6F0 .text:00580D5C mov [edi], eax .text:00580D5E cmp dword ptr [edi], 0 .text:00580D61 setnz bl .text:00580D64 pop ecx .text:00580D65 jmp short loc_580D74 .text:00580D67 ; --------------------------------------------------------------------------- .text:00580D67 .text:00580D67 loc_580D67: ; CODE XREF: load_txd_fronten1+64j .text:00580D67 push offset aFailedToLoadTx ; "Failed to load TXD\n" .text:00580D6C call nullsub_1 .text:00580D71 xor bl, bl .text:00580D73 pop ecx .text:00580D74 .text:00580D74 loc_580D74: ; CODE XREF: load_txd_fronten1+75j .text:00580D74 push 0 .text:00580D76 push esi .text:00580D77 call sub_645940 .text:00580D7C pop ecx .text:00580D7D pop ecx .text:00580D7E .text:00580D7E loc_580D7E: ; CODE XREF: load_txd_fronten1+2Bj .text:00580D7E mov al, bl .text:00580D80 pop ebp .text:00580D81 pop edi .text:00580D82 pop esi .text:00580D83 pop ebx .text:00580D84 retn .text:00580D84 load_txd_fronten1 endp .text:00580D84
В псевдо коде:
char __cdecl load_txd_fronten1(int a1, int a2)
{
char v2; // bl@1
int v3; // eax@2
int v4; // esi@2
int v5; // edi@5
v2 = 0;
sub_63F020(1);
do
{
v3 = sub_645A10(2, 1, a2);
v4 = v3;
}
while ( !v3 );
if ( v3 )
{
if ( *(_BYTE *)(*(_DWORD *)(dword_9B6A54 + 4) + a1) & 0x80 )
v5 = 0;
else
v5 = *(_DWORD *)dword_9B6A54 + 28 * a1;
if ( sub_64FB10(v3, 22, 0, 0) )
{
*(_DWORD *)v5 = sub_61E6F0(v4);
v2 = *(_DWORD *)v5 != 0;
}
else
{
nullsub_1();
v2 = 0;
}
sub_645940(v4, 0);
}
return v2;
}Сделал так:
Load_backrounf : procedure(FileName : pchar; i : integer); cdecl;
@Load_backrounf := PCardinal($00580CF0);
Load_backrounf('MODELS\my_fronten1.TXD',1);
Не хочит загружать? В чем тут проблема, помогите пожалуйста.
void _wstrcpy (WORD * pDst, WORD * pSrc) {
while (*pSrc)
*pDst++ = *pSrc++;
*pDst = 0;
}А для Delphi это как выглядить будет???
А для VC?
listener
А как ты параметры правильные узнал?
А вот еще как определить парамметры данной процедуры для дельфи?
Если это под псевдокодом выглядиь вот так:
int __cdecl sub_5857E0(int a1, int a2)
{
int result; // eax@1
int i; // ecx@1
__int16 v4; // dx@3
result = a2;
for ( i = a1; ; i += 2 )
{
v4 = *(_WORD *)result;
if ( !*(_WORD *)result )
break;
result += 2;
*(_WORD *)i = v4;
}
*(_WORD *)i = 0;
return result;
}Помогите пожалуйста.
Set_health_value_color : procedure(a, r, g, b : byte) cdecl;
Set_health_value_color proc near ; CODE XREF: sub_429FE0+12Dp .text:00541590 ; sub_429FE0+1E7p ... .text:00541590 .text:00541590 arg_0 = byte ptr 4 .text:00541590 arg_4 = byte ptr 8 .text:00541590 arg_8 = byte ptr 0Ch .text:00541590 arg_C = byte ptr 10h .text:00541590 .text:00541590 mov eax, ecx .text:00541592 mov cl, [esp+arg_0] .text:00541596 mov [eax], cl .text:00541598 mov dl, [esp+arg_4] .text:0054159C mov [eax+1], dl .text:0054159F mov cl, [esp+arg_8] .text:005415A3 mov [eax+2], cl .text:005415A6 mov dl, [esp+arg_C] .text:005415AA mov [eax+3], dl .text:005415AD retn 10h .text:005415AD Set_health_value_color endp
@Set_health_value_color := Ptr($00541590);
Set_health_value_color(Random(254),Random(254),Random(254),Random(254));Не хочит менять цвета почему???
Кто знает адрес функции которая добавляет определенное оружие играку, и сколько там параметров?
Большое тебе спасибо!!! +10 тебе!!! 
Пацаны, вот еще проблемка, через арт манию цвет меняется в памяти $00558BBF, а через плагин нет PByte($00558BBF)^ := 55;
Почему?
Все пацаны!!! я разабрался, спасибо всем за подержку!!!
Что значит статика/нестатика?
Но статика когда ты патчиш, статический exe, а Динамически(Не статика) когда патчиш память.
В статику вместо фиксированного значения цвета можно подставить свой адрес памяти, в котором в любой момент времени можно переписать значение.
Den_spb
А можно по подробний, как это делается.
Так мне нужно в памяти. А это статика.
Вот написал учебник: http://programmersup.3dn.ru/load/skacha … _po_gta/10
Правдо не до конца.
Ребята подскажите где находится в памяти значение цвета хелсов, я пробывал исать не смог найти, в статике нашол вот они:
Цвет Health Value
-----------------------------------------------------
001587BA - (255)
001587BF - R (225)
001587C4 - G (150)
001587C9 - B (255)
А в памяти не могу найти, очень надо, заранее спасибо. Только для gta-vc.exe 1.1
Ребята спасибо вам большое!!!
Только как будет это выглядить для DELPHI, Как это в дельфи определить.
Ну что добавили?