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



Ajuda cmd - EXPEDITO_011 - 12/04/2023

Player não está sendo setado como motorista quando veiculo é criado.


Código:
CMD:cv(playerid, params[])
{
    if(pInfo[playerid][admin] <= 3) return 0;
    new idv, cor[2];
    if(sscanf(params, "dii", idv, cor[0], cor[1])) return SendClientMessage(playerid, -1, "[INFO] Uso correto do comando: (/cv) [ID CARRO] [COR 1] [COR 2]");
    new float:p[4];
    GetPlayerPos(playerid, p[0], p[1], p[2]);
    GetPlayerFacingAngle(playerid, p[3]);
    new jacv;
    jaCriouV[playerid] = 1;
    jacv = CreateVehicle(idv, p[0], p[1], p[2], p[3], cor[0], cor[1]);
    PutPlayerInVehicle(playerid, jacv, 0);
    idcarroCV[playerid] = jacv;
    SendClientMessage(playerid, -1, "[INFO] Carro criado com sucesso!");
    return 1;
}



RE: Ajuda cmd - White_Blue - 12/04/2023

Melhorei algumas coisas no seu comando. Tente agora(O erro no seu código é que a variável que cria o carro não era do tipo player).

Eu praticamente recriei seu código com várias melhorias(Recomendo trocar por esse código):
Código PHP:
new carid[MAX_PLAYERS] = -1;
new 
bool:crioucar[MAX_PLAYERS] = false// Essas duas variáveis devem ser globais.

CMD:cv(playerid, const params[]) {
      new 
Float:pos[3], Float:Anglecor[2], idinterior[MAX_PLAYERS], virtualworld[MAX_PLAYERS];
      if(
pAdmin <= 3) return 1;
      if(
sscanf(params"dD(-1)D(-1)"idcor[0], cor[1])) return SendClientMessage(playerid, -1"Use: /cv [id] [cor1] [cor2]");
      if(
id 400 || id 611) return SendClientMessage(playerid, -1"Veículo inexistente, tente ID's entre 400 e 611");
      if(
crioucar[playerid] != false) return SendClientMessage(playerid, -1"Saia deste veículo para criar outro.");
      
GetPlayerPos(playeridpos[0], pos[1], pos[2]);
      
GetPlayerFacingAngle(playeridAngle);
      
interior[playerid] = GetPlayerInterior(playerid);
      
virtualworld[playerid] = GetPlayerVirtualWorld(playerid);
      
carid[playerid] = AddStaticVehicleEx(idpos[0], pos[1], pos[2], Anglecor[0], cor[1], 30);
      
LinkVehicleToInterior(carid[playerid], interior[playerid]);
      
SetVehicleVirtualWorld(carid[playerid], virtualworld[playerid]);
      
SetVehicleNumberPlate(carid[playerid], "{FF0000}VIP Car");
      
PutPlayerInVehicle(playeridcarid[playerid], 0);
      
crioucar[playerid] = true;
      return 
1;
}

public 
OnPlayerStateChange(playeridnewstateoldstate) {
      if(
oldstate == PLAYER_STATE_DRIVER || newstate == PLAYER_STATE_ONFOOT && crioucar[playerid] == true) {
       
DestroyVehicle(carid[playerid]);
       
crioucar[playerid] = false;
      }
      return 
1;