Funções do veículo ZCMD - Alfarr Heimrik - 15/06/2024
Olá pessoal, estou passando aqui rapidamente para pedir ajuda com certo comando em ZCMD.
Código PHP: CMD:vei(playerid, params[]) { new String[128], Motor, Farol, Alarme, Travas, Capo, PMalas, Travas, Objetivo; new Veiculo = GetPlayerVehicleID(playerid); GetVehicleParamsEx(Veiculo, Motor, Farol, Alarme, Travas, Capo, PMalas, Objetivo); if(IsPlayerInAnyVehicle(playerid)) { if(GetPlayerState(playerid) == PLAYER_STATE_DRIVER) { if(sscanf(params, "s[128]d", String)) { SendClientMessage(playerid, -1, "|______________________________________________________|"); SendClientMessage(playerid, -1, "{CFCFCF}||{FF0000}ERRO{CFCFCF}|| Uso correto: /Vei [Opcao]"); SendClientMessage(playerid, -1, "{CFCFCF}||{FF0000}ERRO{CFCFCF}|| Opcoes disponiveis: Motor, Farol, Capo, PMalas, "); SendClientMessage(playerid, -1, "|______________________________________________________|"); return 1; } if(strcmp(String, "motor", true) == 0) { SetVehicleParamsEx(Veiculo, VEHICLE_PARAMS_ON, Farol, Alarme, Travas, Capo, PMalas, Objetivo); } else if(strcmp(String, "farol", true) == 0) { } else if(strcmp(String, "capo", true) == 0) { } else if(strcmp(String, "pmalas", true) == 0) { } else { SendClientMessage(playerid, -1, "{CFCFCF}||{FF0000}ERRO{CFCFCF}|| Opcao inexistente"); return 1; } } else { SendClientMessage(playerid, -1, "{CFCFCF}||{FF0000}ERRO{CFCFCF}|| Voce nao e o motorista"); } } else { SendClientMessage(playerid, -1, "{CFCFCF}||{FF0000}ERRO{CFCFCF}|| Voce nao esta em um veiculo"); } return 1; }
meu objetivo é simplesmente criar um comando para utilizar as funções do veículo, mas eu não entendo nem 20%, por isso gostaria de saber se o codigo que criei está correto? Obrigado.
outra coisa, se estiver tuido ok, como faz pra desligar o veiculo?
RE: Funções do veículo ZCMD - BitSain - 15/06/2024
Sim, está parcialmente correto!
Mas ainda falta completar "as outras opções".
Você pode se basear no código do motor que eu completei pra você.
Uma correção foi no sscanf, você está acessando 2 tipos, string e int "s[128]d", em vez de apenas "s[128]".
Movi também a criação das variáveis para o local onde elas são usadas realmente.
Código PHP: CMD:vei(playerid, params[]){ if(IsPlayerInAnyVehicle(playerid)) { if(GetPlayerState(playerid) == PLAYER_STATE_DRIVER) { new String[128]; if(sscanf(params, "s[128]", String)) { SendClientMessage(playerid, -1, "|______________________________________________________|"); SendClientMessage(playerid, -1, "{CFCFCF}||{FF0000}ERRO{CFCFCF}|| Uso correto: /Vei [Opcao]"); SendClientMessage(playerid, -1, "{CFCFCF}||{FF0000}ERRO{CFCFCF}|| Opcoes disponiveis: Motor, Farol, Capo, PMalas, "); SendClientMessage(playerid, -1, "|______________________________________________________|"); return false; } new Motor, Farol, Alarme, Travas, Capo, PMalas, Travas, Objetivo; new Veiculo = GetPlayerVehicleID(playerid); GetVehicleParamsEx(Veiculo, Motor, Farol, Alarme, Travas, Capo, PMalas, Objetivo); if(!strcmp(String, "motor", true)) { Motor = (Motor == VEHICLE_PARAMS_ON ? (VEHICLE_PARAMS_OFF) : (VEHICLE_PARAMS_ON)); SetVehicleParamsEx(Veiculo, Motor, Farol, Alarme, Travas, Capo, PMalas, Objetivo); SendClientMessage(playerid, -1, Motor == VEHICLE_PARAMS_ON ? ("Motor Ligado") : ("Motor Desligado")); return true; } else if(!strcmp(String, "farol", true)) { return true; } else if(!strcmp(String, "capo", true)) { return true; } else if(!strcmp(String, "pmalas", true)) { return true; } else return SendClientMessage(playerid, -1, "{CFCFCF}||{FF0000}ERRO{CFCFCF}|| Opcao inexistente"); } else return SendClientMessage(playerid, -1, "{CFCFCF}||{FF0000}ERRO{CFCFCF}|| Voce nao e o motorista"); } else return SendClientMessage(playerid, -1, "{CFCFCF}||{FF0000}ERRO{CFCFCF}|| Voce nao esta em um veiculo"); }
Para desligar o veículo você basta estar a variável do motor para 0, pode ser representando também por "VEHICLE_PARAMS_OFF"
|