Compartilhe
avatar
Scripter CLEO - Avançado
Scripter CLEO - Avançado
Título : Censurando since 2011
Mensagens : 22701
Reputação : 727
Desde : 03/05/2012
Idade : 23
Localização : Ibitinga - SP
Link : www.MixMods.com.br
Ver perfil do usuáriohttp://MixMods.com.br
em Ter 06 Fev 2018, 23:17
GTA3script
Função:
Código:
{
    LVAR_INT char // in
    LVAR_INT char_model // in
    LVAR_INT cped cpedsound

    ChangeCharModel:
    GET_PED_POINTER char cped
    CALL_METHOD 0x5E4880 cped 1 0 (char_model) // CPed::setModelIndex
    cpedsound = cped + 0x294
    CALL_METHOD 0x4E68D0 cpedsound 1 0 (cped) // CPedSound::setPedSound
    CLEO_RETURN 0
}

Chamada:
Código:
CLEO_CALL ChangeCharModel 0 (char, char_model)()

Bugs:
Se o char está dentro de um carro, ele vai perder a animação.
Se este é seu caso, arrume um jeito de resolver isso, por exemplo usando WARP_CHAR_FROM_CAR_TO_COORD e em seguida WARP_CHAR_INTO_CAR.
Outro modo (melhor?) é fazer a mesma coisa da solução abaixo (preguiça de ir atrás do endereços, enfim):




ASI (plugin-sdk)
Código:
Código:
driver->SetModelIndex(driverModel);
CCarEnterExit::SetPedInCarDirect(driver, vehicle, 0, true);
Não precisa de função também para mudar o som da voz? SetModelIndex já muda? Não lembro.

Bugs:
Caso estiver numa bicicleta, ele vai começar a correr... ?? Provavelmente acontece a mesma coisa no caso do GTA3script.




Lua
Ali embaixo


Última edição por Junior_Djjr em Sab 10 Mar 2018, 18:01, editado 2 vez(es)

______________________________
BMS agora em nova plataforma:
Forum.MixMods.com.br
avatar
Scripter CLEO - Intermediário
Scripter CLEO - Intermediário
Mensagens : 1239
Reputação : 99
Desde : 04/03/2013
Idade : 18
Ver perfil do usuário
em Ter 06 Mar 2018, 12:44
Acho que só WARP_CHAR_INTO_CAR sem WARP_CHAR_FROM_CAR_TO_COORD antes deve funcionar as well
avatar
Scripter CLEO - Avançado
Scripter CLEO - Avançado
Título : Censurando since 2011
Mensagens : 22701
Reputação : 727
Desde : 03/05/2012
Idade : 23
Localização : Ibitinga - SP
Link : www.MixMods.com.br
Ver perfil do usuáriohttp://MixMods.com.br
em Ter 06 Mar 2018, 12:57
@Nex escreveu:Acho que só WARP_CHAR_INTO_CAR sem WARP_CHAR_FROM_CAR_TO_COORD antes deve funcionar as well
Nope

______________________________
BMS agora em nova plataforma:
Forum.MixMods.com.br
avatar
Mensagens Nível 1
Mensagens Nível 1
Mensagens : 14
Reputação : 10
Desde : 14/08/2017
Ver perfil do usuário
em Sab 10 Mar 2018, 17:13
So, nobody likes lua here? LOL

Código:
function changeCharModel(char, charModel)
 local cped = getCharPointer(char)
 callMethod(0x5E4880, cped, 1, 0, charModel)  -- CPed::setModelIndex
 local cpedsound = cped + 0x294
 callMethod(0x4E68D0, cpedsound, 1, 0, cped) -- CPed::setPedSound
end

Or if you plan to 'spam' this function,it's better to use FFI.

Código:
local ffi = require 'ffi'
local CPed = {
 setModelIndex = ffi.cast("int (__thiscall*)(void*, int)", 0x5E4880),
 setPedSound = ffi.cast("int (__thiscall*)(void*, void*)", 0x4E68D0)
}

function main() ... end

function changeCharModel(char, charModel)
 local pPed = ffi.cast("void*",getCharPointer(char))
 local pPedSound = ffi.cast("void*",getCharPointer(char) + 0x294)
 CPed.setModelIndex(pPed, charModel)
 CPed.setPedSound(pPedSound, pPed)
end

Also,where did get those addresses? I couldn't find them on the SDK. philosoraptor


Última edição por Don_Guru em Sab 10 Mar 2018, 21:01, editado 1 vez(es)
avatar
Scripter CLEO - Avançado
Scripter CLEO - Avançado
Título : Censurando since 2011
Mensagens : 22701
Reputação : 727
Desde : 03/05/2012
Idade : 23
Localização : Ibitinga - SP
Link : www.MixMods.com.br
Ver perfil do usuáriohttp://MixMods.com.br
em Sab 10 Mar 2018, 17:59
@Don_Guru escreveu:So, nobody likes lua here? LOL
http://brmodstudio.forumeiros.com/t7128-lua-scripts-moonloader-duvidas :v:

@Don_Guru escreveu:Also,where did get those addresses? I couldn't find them on the SDK. philosoraptor
I don't remember but 0x4E68D0 (CPedSound::setPedSound) is in my .idb (but with other name: CAEPedSpeechAudioEntity::Initialise(CPedSound *this, CPed *ped) )
I think I simply found it in 0x005DDB70 with some old .idb and I invented a name, idk...

cpedsound = cped + 0x294 is also on my .idb / IDA.txt.
Código:
00000000 CPed            struc ; (sizeof=0x79C)
00000000 __parent        dd 78 dup(?)            ; offset
00000138 field_138       db 348 dup(?)           ; object_86C2A8
00000294 sound           CPedSound ?             ; object_85F310 (CPedSound?)
(........)

______________________________
BMS agora em nova plataforma:
Forum.MixMods.com.br
Conteúdo patrocinado
Permissão deste fórum:
Você não pode responder aos tópicos neste fórum