Portal SAMP
[Ajuda] Como identificar motor ligado - Versão de Impressão

+- Portal SAMP (https://portalsamp.com)
+-- Fórum: SA-MP (https://portalsamp.com/forumdisplay.php?fid=5)
+--- Fórum: Área de suporte (https://portalsamp.com/forumdisplay.php?fid=6)
+--- Tópico: [Ajuda] Como identificar motor ligado (/showthread.php?tid=945)

Páginas: 1 2


RE: Como identificar motor ligado - k2bi_YT - 21/03/2021

Entendi nesse caso, como a textdraw vai ser usada em diferentes objetos/veiculos/players, deve se criar com 2 array

Exemplo:
Código PHP:
new Text:BarraMotor[MAX_VEHICLES][1]; 

Então você pode fazer um loop para criar a textdraw para cada veiculo.

Exemplo:
Código PHP:
for(new veh 0veh MAX_VEHICLES; ++veh)
{
    
BarraMotor[veh][0] = TextDrawCreate(Float:xFloat:ytext[]) //Os parametros da textdraw


Então quando o player for entrar/sair de algum veiculo deve ficar assim:
Código PHP:
public OnPlayerStateChange(playeridnewstateoldstate)
{
    if(
IsPlayerInAnyVehicle(playerid)){TextDrawShowForPlayer(playeridBarraMotor[GetPlayerVehicleID(playerid)][0]);}
    else {
TextDrawHideForPlayer(playeridBarraMotor[GetPlayerVehicleID(playerid)][0]);}
    return 
1;


E assim vale com os code acima, basta você adicionar +1 parametro na textdraw, para definir o estado de cada veiculo (cada veiculo terá seu textdraw)


RE: Como identificar motor ligado - LeleziiN - 22/03/2021

(21/03/2021 20:24)k2bi_YT Escreveu: Entendi nesse caso, como a textdraw vai ser usada em diferentes objetos/veiculos/players, deve se criar com 2 array

Exemplo:
Código PHP:
new Text:BarraMotor[MAX_VEHICLES][1]; 

Então você pode fazer um loop para criar a textdraw para cada veiculo.

Exemplo:
Código PHP:
for(new veh 0veh MAX_VEHICLES; ++veh)
{
    
BarraMotor[veh][0] = TextDrawCreate(Float:xFloat:ytext[]) //Os parametros da textdraw


Então quando o player for entrar/sair de algum veiculo deve ficar assim:
Código PHP:
public OnPlayerStateChange(playeridnewstateoldstate)
{
    if(
IsPlayerInAnyVehicle(playerid)){TextDrawShowForPlayer(playeridBarraMotor[GetPlayerVehicleID(playerid)][0]);}
    else {
TextDrawHideForPlayer(playeridBarraMotor[GetPlayerVehicleID(playerid)][0]);}
    return 
1;


E assim vale com os code acima, basta você adicionar +1 parametro na textdraw, para definir o estado de cada veiculo (cada veiculo terá seu textdraw)

Funcionou mano, mais como faço pra quando eu sair do carro a textdraw sumir e só aparecer de volta quando eu entra no veículo de novo(se o veículo estiver ligado) ??


RE: Como identificar motor ligado - k2bi_YT - 22/03/2021

Utilize essa função: public OnPlayerStateChange(playerid, newstate, oldstate)

https://open.mp/docs/scripting/callbacks/OnPlayerStateChange


RE: Como identificar motor ligado - xbruno1000x - 22/03/2021

(22/03/2021 08:47)LeleziiN Escreveu:
(21/03/2021 20:24)k2bi_YT Escreveu: Entendi nesse caso, como a textdraw vai ser usada em diferentes objetos/veiculos/players, deve se criar com 2 array

Exemplo:
Código PHP:
new Text:BarraMotor[MAX_VEHICLES][1]; 

Então você pode fazer um loop para criar a textdraw para cada veiculo.

Exemplo:
Código PHP:
for(new veh 0veh MAX_VEHICLES; ++veh)
{
    
BarraMotor[veh][0] = TextDrawCreate(Float:xFloat:ytext[]) //Os parametros da textdraw


Então quando o player for entrar/sair de algum veiculo deve ficar assim:
Código PHP:
public OnPlayerStateChange(playeridnewstateoldstate)
{
    if(
IsPlayerInAnyVehicle(playerid)){TextDrawShowForPlayer(playeridBarraMotor[GetPlayerVehicleID(playerid)][0]);}
    else {
TextDrawHideForPlayer(playeridBarraMotor[GetPlayerVehicleID(playerid)][0]);}
    return 
1;


E assim vale com os code acima, basta você adicionar +1 parametro na textdraw, para definir o estado de cada veiculo (cada veiculo terá seu textdraw)

Funcionou mano, mais como faço pra quando eu sair do carro a textdraw sumir e só aparecer de volta quando eu entra no veículo de novo(se o veículo estiver ligado) ??

Utilize a public OnPlayerExitVehicle
https://open.mp/pt/docs/scripting/callbacks/OnPlayerExitVehicle