Portal SAMP
[Ajuda] Painel Veiculo - 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] Painel Veiculo (/showthread.php?tid=1586)



Painel Veiculo - guigowbr - 01/09/2021

Bom dia pessoal, tudo bem?

Estou criando um painel para meu servidor.

Eu pensei em colocar uma settimer para chamar uma public na Onplayerconnect.

Essa Public vai ter a criação do Textdrawn da gasolina (por enquanto). 

Será que essa é a melhor forma de fazer?

Já que não existe uma public do player entrar no veiculo.


RE: Painel Veiculo - nilat - 01/09/2021

Tem Sim.

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


RE: Painel Veiculo - guigowbr - 01/09/2021

O código então vai ser basicamente nessa callback?

Shooww!!


RE: Painel Veiculo - xbruno1000x - 01/09/2021

A criação da textdraw deve ser na OnPlayerConnect e deve ser uma playertextdraw. Na OnPlayerEnterVehicle você utilizará o playertextdrawshow pra mostra-la.


RE: Painel Veiculo - guigowbr - 01/09/2021

Código:
forward ProcessGasolina(playerid, vehicleid);
public ProcessGasolina(playerid, vehicleid)
{
    //new vehicleid = GetPlayerVehicleID(playerid);
    if(!IsPlayerInVehicle(playerid, vehicleid))
    {
        PlayerTextDrawHide(playerid, viewgasolina[playerid]);
return 1;
}
new string[20];
format(string, sizeof(string), "Gasolina: %03d", VehicleData[vehicleid][vFuel]);
TextDrawSetString(viewgasolina[playerid], string);     // ********** WARNIGNG AQUI ********
PlayerTextDrawShow(playerid, viewgasolina[playerid]);
return 1;
}


Sabe me dizer pq o Warning?

TextDrawSetString(viewgasolina[playerid], string);


RE: Painel Veiculo - xbruno1000x - 01/09/2021

(01/09/2021 18:48)guigowbr Escreveu:
Código:
forward ProcessGasolina(playerid, vehicleid);
public ProcessGasolina(playerid, vehicleid)
{
    //new vehicleid = GetPlayerVehicleID(playerid);
    if(!IsPlayerInVehicle(playerid, vehicleid))
    {
        PlayerTextDrawHide(playerid, viewgasolina[playerid]);
return 1;
}
new string[20];
format(string, sizeof(string), "Gasolina: %03d", VehicleData[vehicleid][vFuel]);
TextDrawSetString(viewgasolina[playerid], string);     // ********** WARNIGNG AQUI ********
PlayerTextDrawShow(playerid, viewgasolina[playerid]);
return 1;
}


Sabe me dizer pq o Warning?

TextDrawSetString(viewgasolina[playerid], string);

Não se usa TextDrawSetString em PlayerTextDraw.

Use PlayerTextDrawSetString:
https://open.mp/pt/docs/scripting/functions/PlayerTextDrawSetString


RE: Painel Veiculo - ProKillerPa - 03/09/2021

[ Já que não existe uma public do player entrar no veiculo. ]

Existe sim, a OnPlayerEnterVehicle, e além disso, ( o que eu uso ) é a OnPlayerStateChange com newstate == PLAYER_STATE_DRIVER.

Respondendo sua pergunta, voce pode usar um timerEx, ou um timer global.
Dependendo do servidor que estou programando, eu uso até mesmo um Timer Global para a gasolina, usando um loop com max players e verificando se existe player no veiculo ou até mesmo se o veiculo está com engine > 0, porém não vem ao caso. Voce pode usar ambos, o mais comum é um TimerEx no jogador.
Em relação a textdraw, voce cria ela na onplayerconnect e mostra ela em uma das 2 que citei acima.

Abraços