Página 1 de 1

[SA-Ajuda] Jogo Crasha Ao Usar a Função CBulletTraces::AddTrace em um Script Cleo

Enviado: 21 Jul 2025, 18:04
por Gui7814
Olá, Eu Estou Tentando Criar um Script Em Que Ao Apertar um Botão Sai um Tiro de um Veículo, Usando a Função CBulletTraces::AddTrace Ao Invés do Opcode "06BC: create_M4_shoot_from" Por Que no Opcode Não Tem Como Colocar Quem é o Responsável Pelo Tiro, Já a Função CBulletTraces::AddTrace Dá Essa Possibilidade, Eu Queria Por O CJ Como Responsável Pelo Tiro, Já Que Assim o CJ Ganha Niveis de Procurado e Chama a Atenção de Gangues Inimigas Que Ao Ouvirem o Tiro Eles Começam a Atirar No CJ, Já Com o Opcode Não Dá Pra Fazer Isso, Mas O Problema é Que Quando Tento Usar Essa Função no Script Cleo o Jogo Crasha e Eu Não Sei O Por Que, Aqui Está o Script:

Código: Selecionar tudo

{$CLEO .cs}
{$USE CLEO+}
{$USE NewOpcodes}

0000:

:FIRE_1
wait 0
if
player.Defined($PLAYER_CHAR)
jf @FIRE_1
if and
Actor.Driving($PLAYER_ACTOR)
09E7:   player $PLAYER_CHAR not_frozen
jf @FIRE_1
0@ = actor.CurrentCar($PLAYER_ACTOR)
if
0E45: frame_mod 7
then
if
0E8D: is_any_fire_button_pressed 0
jf @FIRE_1
0@ = actor.CurrentCar($PLAYER_ACTOR)
car.StorePos(0@, 1@, 2@, 3@)
0407: store_coords_to 8@ 9@ 10@ from_car 0@ with_offset 0.0 200.0 2.5
0A96: 18@ = ped $PLAYER_ACTOR struct
0AA5: call 0x726AF0 num_params 8 pop 8 18@ 31 10@ 9@ 8@ 3@ 2@ 1@ // CBulletTraces::AddTrace(CVector * start,CVector * end,int weaponType,CEntity * entity)
end
jump @FIRE_1
log do Crashinfo:

Código: Selecionar tudo

GTA SA 1.0.0.0 US
Unhandled exception at 0x00726BF4 in gta_sa.exe (+0x326bf4): 0xC0000005: Access violation reading location 0xC49DCC42.
    Register dump:
        EAX: 0xC49DCC42  EBX: 0x65402520  ECX: 0x097FE618  EDX: 0x80002100  
        EDI: 0x65402520  ESI: 0x450C9232  EBP: 0x0177F600  EIP: 0x00726BF4  
        ESP: 0x0177F58C  EFL: 0x00210287  CS: 0x00000023   SS: 0x0000002B   
        GS: 0x0000002B   FS: 0x00000053   ES: 0x0000002B   DS: 0x0000002B   
        
    Stack dump:
        0x0177F58C:  01B35CE0 14661ED6 0000000B 01A64778 14661ED6 6540251C
        0x0177F5A4:  01B35CE0 00000000 00A43C7C 64E02DF7 64E1DD43 00000001
        0x0177F5BC:  01B35CE0 6540251C 65394A4A 450C9232 C49DCC42 41BBC0E4
        0x0177F5D4:  45189E02 C4975804 4119A72A 0000001F 097FE618 01B35590
        0x0177F5EC:  01B35CE0 00000001 00000020 00726AF0 65402520 0177F654
        0x0177F604:  00469FF7 65403360 01B35CE0 00000000 6539EF63 01B35CE0
        0x0177F61C:  0046A220 651E21CC 03D60894 0177F654 03D60894 00000021
        0x0177F634:  00001F6B 006819EE 0000076B 651CB2AF 00000000 00000000
        0x0177F64C:  FFFFFFFF 0177F6C4 0177F688 0053BFCC 01A4C918 0177F708
        0x0177F664:  FFFFFFFF C3D94E43 0177F688 6539E446 0053E986 64EAF75A
        base: 0x01580000   top: 0x0177F58C   bottom: 0x01780000
        
    Backtrace (may be wrong):
        =>0x00726BF4 _ZN13CBulletTraces8AddTraceEP7CVectorS1_iP7CEntity+0x104 in gta_sa.exe (+0x326bf4) (0x0177F600) 
          0x00469FF7 _ZN14CRunningScript7ProcessEv+0xf7 in gta_sa.exe (+0x69ff7) (0x0177F654) 
          0x0053BFCC _ZN5CGame7ProcessEv+0xec in gta_sa.exe (+0x13bfcc) (0x0177F688) 
          0x64EAB8E9 in modloader.asi (+0x1b8e9) (0x0177F6D0) 
          0x64EAFC02 in modloader.asi (+0x1fc02) (0x0177F6E4) 
          0x64EAE267 in modloader.asi (+0x1e267) (0x0177F700) 
          0x64EB0246 in modloader.asi (+0x20246) (0x0177F874) 
          0x64EB013C in modloader.asi (+0x2013c) (0x0177F880) 
          0x0053ECC2 AppEventHandler+0xb2 in gta_sa.exe (+0x13ecc2) (0x0177F888) 
          0x00619B71 _RsEventHandler+0x11 in gta_sa.exe (+0x219b71) (0x0177F89C) 
          0x00748DA0 _WinMain+0x690 in gta_sa.exe (+0x348da0) (0x0177F93C) 
          0x64EAFB94 in modloader.asi (+0x1fb94) (0x0177F95C) 
          0x64EADE46 in modloader.asi (+0x1de46) (0x0177F98C) 
          0x64EAB83B in modloader.asi (+0x1b83b) (0x0177F9E0) 
          0x64EAFBBB in modloader.asi (+0x1fbbb) (0x0177FA00) 
          0x64EAE202 in modloader.asi (+0x1e202) (0x0177FA30) 
          0x64EB07BB in modloader.asi (+0x207bb) (0x0177FBBC) 
          0x64EB0188 in modloader.asi (+0x20188) (0x0177FBD4) 
          0x64EADF18 in modloader.asi (+0x1df18) (0x0177FC04)

Re: [SA-Ajuda] Jogo Crasha Ao Usar a Função CBulletTraces::AddTrace em um Script Cleo

Enviado: 21 Jul 2025, 18:43
por Gui7814
agora consegui fazer o jogo não crashar, mas mesmo chamando a função não está aparecendo nenhum tiro:

Código: Selecionar tudo

{$CLEO .cs}
{$USE CLEO+}
{$USE NewOpcodes}

0000:

:FIRE_1
wait 0
if
player.Defined($PLAYER_CHAR)
jf @FIRE_1
if and
Actor.Driving($PLAYER_ACTOR)
09E7:   player $PLAYER_CHAR not_frozen
jf @FIRE_1
0@ = actor.CurrentCar($PLAYER_ACTOR)
if
0E45: frame_mod 7
then
if
0E8D: is_any_fire_button_pressed 0
jf @FIRE_1
0@ = actor.CurrentCar($PLAYER_ACTOR)
car.StorePos(0@, 3@, 2@, 1@)
0AC6: 28@ = label @VECTOR pointer
0D26: set_vector 28@ elements 1@ 2@ 3@
0407: store_coords_to 8@ 9@ 10@ from_car 0@ with_offset 0.0 200.0 2.5
0AC6: 29@ = label @VECTOR pointer
0D26: set_vector 28@ elements 8@ 9@ 10@
0A96: 18@ = ped $PLAYER_ACTOR struct
0AA5: call 0x726AF0 num_params 4 pop 4 18@ 31 29@ 28@ // CBulletTraces::AddTrace(CVector * start,CVector * end,int weaponType,CEntity * entity)
end
jump @FIRE_1

:VECTOR
hex
    00 00 00 00 00 00
end