tock SalvarVeiculos()
{
new Contador[50];
for(new i = 0; i < MAX_VEICULOS; i++)
{
format(Contador, sizeof(Contador), PASTA_VEICULOS, i);
if(DOF2_FileExists(Contador))
{
DOF2_SetString(Contador, "Dono", VeiculoDados[i][Dono]);
DOF2_SetInt(Contador, "Modelo", VeiculoDados[i][Modelo]);
DOF2_SetFloat(Contador, "VeiculoX", VeiculoDados[i][VeiculoX]);
DOF2_SetFloat(Contador, "VeiculoY", VeiculoDados[i][VeiculoY]);
DOF2_SetFloat(Contador, "VeiculoZ", VeiculoDados[i][VeiculoZ]);
DOF2_SetFloat(Contador, "VeiculoA", VeiculoDados[i][VeiculoA]);
DOF2_SetInt(Contador, "Cor1", VeiculoDados[i][Cor1]);
DOF2_SetInt(Contador, "Cor2", VeiculoDados[i][Cor2]);
DOF2_SetInt(Contador, "Trancado", VeiculoDados[i][Trancado]);
DOF2_SetString(Contador, "Placa", VeiculoDados[i][Placa]);
DOF2_SaveFile();
}
}
return 1;
}
stock CarregarVeiculos()
{
new Contador[50];
for(new i = 0; i < MAX_VEICULOS; i++)
{
format(Contador, sizeof(Contador), PASTA_VEICULOS, i);
if(DOF2_FileExists(Contador))
{
strmid(VeiculoDados[i][Dono], DOF2_GetString(Contador, "Dono"), 0, strlen(DOF2_GetString(Contador, "Dono")), MAX_PLAYER_NAME);
VeiculoDados[i][Modelo] = DOF2_GetInt(Contador, "Modelo");
VeiculoDados[i][VeiculoX] = DOF2_GetFloat(Contador, "VeiculoX");
VeiculoDados[i][VeiculoY] = DOF2_GetFloat(Contador, "VeiculoY");
VeiculoDados[i][VeiculoZ] = DOF2_GetFloat(Contador, "VeiculoZ");
VeiculoDados[i][VeiculoA] = DOF2_GetFloat(Contador, "VeiculoA");
VeiculoDados[i][Cor1] = DOF2_GetInt(Contador, "Cor1");
VeiculoDados[i][Cor2] = DOF2_GetInt(Contador, "Cor2");
VeiculoDados[i][Trancado] = DOF2_GetInt(Contador, "Trancado");
strmid(VeiculoDados[i][Placa], DOF2_GetString(Contador, "Placa"), 0, strlen(DOF2_GetString(Contador, "Placa")), 10);
}
}
return 1;
}
CMD:meuveiculo(playerid, params[])
{
#pragma unused params
new NomeV[60], Tranca[20], str[500], VeiculoEDele;
if(Player[playerid][Logado] != 1) return SendClientMessage(playerid, -1, "[BCR] |Erro| Vocк precisa estar logado para usar um comando.");
if(!IsPlayerInAnyVehicle(playerid)) return SendClientMessage(playerid, -1, "[BCR] |Erro| Vocк precisar estar em um veнculo para usar esse comando.");
for(new i = 0; i < MAX_VEICULOS; i++)
{
if(VeiculoDados[i][TempID] == GetPlayerVehicleID(playerid) && strcmp(VeiculoDados[i][Dono], PlayerName(playerid), false) == 0)
{
VeiculoEDele = 1;
if(VeiculoDados[i][Trancado] == 1)
{
format(Tranca, sizeof(Tranca), "Destrancar");
}
else
{
format(Tranca, sizeof(Tranca), "Trancar");
}
format(str, sizeof(str), "%s\nSalvar aqui\nAlterar pintura\nAbrir capф\nAbrir porta-malas", Tranca);
format(NomeV, sizeof(NomeV), "Meu {01A011}%s", NomeVeiculo[VeiculoDados[i][Modelo]-400][0]);
ShowPlayerDialog(playerid, DIALOG_MEUVEICULO, DIALOG_STYLE_LIST, NomeV, str, "Selecionar", "Cancelar");
}
}
if(VeiculoEDele == 0) return SendClientMessage(playerid, -1, "[BCR] |Erro| Este veнculo nгo pertence a vocк.");
return 1;
}
hook OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
{
if(dialogid == DIALOG_MEUVEICULO)
{
if(response)
{
new mot, lu, alar, por, cap, porma, ob;
if(listitem == 0)
{
for(new z; z < MAX_VEICULOS; z++)
{
if(GetPlayerVehicleID(playerid) == VeiculoDados[z][TempID])
{
if(VeiculoDados[z][Trancado] == 1)
{
VeiculoDados[z][Trancado] = 0;
}
else
{
VeiculoDados[z][Trancado] = 1;
}
}
}
}
else if(listitem == 1)
{
new Float:X, Float:Y, Float:Z, Float:A;
for(new z1; z1 < MAX_VEICULOS; z1++)
{
if(GetPlayerVehicleID(playerid) == VeiculoDados[z1][TempID])
{
GetVehiclePos(GetPlayerVehicleID(playerid), X, Y, Z);
GetVehicleZAngle(GetPlayerVehicleID(playerid), A);
VeiculoDados[z1][VeiculoX] = X;
VeiculoDados[z1][VeiculoY] = Y;
VeiculoDados[z1][VeiculoZ] = Z;
VeiculoDados[z1][VeiculoA] = A;
SendClientMessage(playerid, -1, "[BCR] |Meu veнculo| Vocк salvou o seu veнculo nesse local.");
}
}
}
else if(listitem == 2)
{
ShowPlayerDialog(playerid, DIALOG_COR1, DIALOG_STYLE_INPUT, "Alterar pintura", "Digite o ID da cor 1:", "Confirmar", "Cancelar");
}
else if(listitem == 3)
{
for(new z3; z3 < MAX_VEICULOS; z3++)
{
if(GetPlayerVehicleID(playerid) == VeiculoDados[z3][TempID])
{
if(VeiculoDados[z3][Capo] == 0)
{
VeiculoDados[z3][Capo] = 1;
GetVehicleParamsEx(GetPlayerVehicleID(playerid), mot, lu, alar, por, cap, porma, ob);
SetVehicleParamsEx(GetPlayerVehicleID(playerid), mot, lu, alar, por, VEHICLE_PARAMS_ON, porma, ob);
}
else
{
VeiculoDados[z3][Capo] = 0;
GetVehicleParamsEx(GetPlayerVehicleID(playerid), mot, lu, alar, por, cap, porma, ob);
SetVehicleParamsEx(GetPlayerVehicleID(playerid), mot, lu, alar, por, VEHICLE_PARAMS_OFF, porma, ob);
}
}
}
}
else if(listitem == 4)
{
for(new z4; z4 < MAX_VEICULOS; z4++)
{
if(GetPlayerVehicleID(playerid) == VeiculoDados[z4][TempID])
{
if(VeiculoDados[z4][PortaMalas] == 0)
{
VeiculoDados[z4][PortaMalas] = 1;
GetVehicleParamsEx(GetPlayerVehicleID(playerid), mot, lu, alar, por, cap, porma, ob);
SetVehicleParamsEx(GetPlayerVehicleID(playerid), mot, lu, alar, por, cap, VEHICLE_PARAMS_ON, ob);
}
else
{
VeiculoDados[z4][PortaMalas] = 0;
GetVehicleParamsEx(GetPlayerVehicleID(playerid), mot, lu, alar, por, cap, porma, ob);
SetVehicleParamsEx(GetPlayerVehicleID(playerid), mot, lu, alar, por, cap, VEHICLE_PARAMS_OFF, ob);
}
}
}
}
}
}
if(dialogid == DIALOG_COR1)
{
if(response)
{
if(strlen(inputtext) < 1)
{
SendClientMessage(playerid, -1, "[BCR] |Erro| Digite um ID de 1 a 255.");
ShowPlayerDialog(playerid, DIALOG_COR1, DIALOG_STYLE_INPUT, "Alterar pintura", "Digite o ID da cor 1:", "Confirmar", "Cancelar");
}
if(strval(inputtext) < 0 || strval(inputtext) > 255)
{
SendClientMessage(playerid, -1, "[BCR] |Erro| Digite um ID de 1 a 255.");
}
else
{
SetPVarInt(playerid, "TempCor1Pvar", strval(inputtext));
ShowPlayerDialog(playerid, DIALOG_COR2, DIALOG_STYLE_INPUT, "Alterar pintura", "Digite o ID da cor 2:", "Confirmar", "Cancelar");
}
}
}
if(dialogid == DIALOG_COR2)
{
if(response)
{
if(strlen(inputtext) < 1)
{
SendClientMessage(playerid, -1, "[BCR] |Erro| Digite um ID de 1 a 255.");
ShowPlayerDialog(playerid, DIALOG_COR2, DIALOG_STYLE_INPUT, "Alterar pintura", "Digite o ID da cor 2:", "Confirmar", "Cancelar");
}
if(strval(inputtext) < 0 || strval(inputtext) > 255)
{
SendClientMessage(playerid, -1, "[BCR] |Erro| Digite um ID de 1 a 255.");
}
else
{
for(new z5; z5 < MAX_VEICULOS; z5++)
{
if(GetPlayerVehicleID(playerid) == VeiculoDados[z5][TempID])
{
VeiculoDados[z5][Cor1] = GetPVarInt(playerid, "TempCor1Pvar");
VeiculoDados[z5][Cor2] = strval(inputtext);
}
}
ChangeVehicleColor(GetPlayerVehicleID(playerid), GetPVarInt(playerid, "TempCor1Pvar"), strval(inputtext));
SendClientMessage(playerid, -1, "[BCR] |Meu veнculo| Vocк alterou a pintura do seu veнculo.");
DeletePVar(playerid, "TempCor1Pvar");
}
}
}
return 1;
}
hook OnGameModeInit()
{
CarregarVeiculos();
return 1;
}
hook OnGameModeExit()
{
SalvarVeiculos();
return 1;
}
new IDVehiclePlayer[MAX_PLAYERS];
CMD:meuveiculo(playerid) {
new NomeV[60], str[500], Count;
if(Player[playerid][Logado] != 1) return SendClientMessage(playerid, -1, "[BCR] |Erro| Vocк precisa estar logado para usar um comando.");
if(!IsPlayerInAnyVehicle(playerid)) return SendClientMessage(playerid, -1, "[BCR] |Erro| Vocк precisar estar em um veнculo para usar esse comando.");
for(new i = 0; i < MAX_VEICULOS; i++) {
if(VeiculoDados[i][TempID] == GetPlayerVehicleID(playerid) && strcmp(VeiculoDados[i][Dono], PlayerName(playerid), false) == 0) {
Count++;
IDVehiclePlayer[playerid] = i;
format(str, sizeof(str), "%s\nSalvar aqui\nAlterar pintura\nAbrir capф\nAbrir porta-malas", VeiculoDados[i][Trancado] == 1 ? ("Destrancar") : ("Trancar"));
format(NomeV, sizeof(NomeV), "Meu {01A011}%s", NomeVeiculo[VeiculoDados[i][Modelo]-400][0]);
ShowPlayerDialog(playerid, DIALOG_MEUVEICULO, DIALOG_STYLE_LIST, NomeV, str, "Selecionar", "Cancelar");
break;
}
}
if(Count == 0) return SendClientMessage(playerid, -1, "[BCR] |Erro| Este veнculo nгo pertence a vocк.");
return 1;
}
hook OnDialogResponse(playerid, dialogid, response, listitem, inputtext[]) {
if(dialogid == DIALOG_MEUVEICULO) {
if(response) {
new mot, lu, alar, por, cap, porma, ob;
switch(listitem) {
case 0: {
VeiculoDados[IDVehiclePlayer[playerid]][Trancado] != VeiculoDados[IDVehiclePlayer[playerid]][Trancado];
}
case 1: {
new Float:X, Float:Y, Float:Z, Float:A;{
GetVehiclePos(GetPlayerVehicleID(playerid), X, Y, Z);
GetVehicleZAngle(GetPlayerVehicleID(playerid), A);
VeiculoDados[IDVehiclePlayer[playerid]][VeiculoX] = X;
VeiculoDados[IDVehiclePlayer[playerid]][VeiculoY] = Y;
VeiculoDados[IDVehiclePlayer[playerid]][VeiculoZ] = Z;
VeiculoDados[IDVehiclePlayer[playerid]][VeiculoA] = A;
SendClientMessage(playerid, -1, "[BCR] |Meu veнculo| Vocк salvou o seu veнculo nesse local.");
}
case 2: {
ShowPlayerDialog(playerid, DIALOG_COR1, DIALOG_STYLE_INPUT, "Alterar pintura", "Digite o ID da cor 1:", "Confirmar", "Cancelar");
}
case 3: {
GetVehicleParamsEx(GetPlayerVehicleID(playerid), mot, lu, alar, por, cap, porma, ob);
SetVehicleParamsEx(GetPlayerVehicleID(playerid), mot, lu, alar, por, VeiculoDados[IDVehiclePlayer[playerid]][Capo] == 0 ? (VEHICLE_PARAMS_ON) : (VEHICLE_PARAMS_OFF), porma, ob);
VeiculoDados[IDVehiclePlayer[playerid]][Capo] != VeiculoDados[IDVehiclePlayer[playerid]][Capo];
}
case 4: {
GetVehicleParamsEx(GetPlayerVehicleID(playerid), mot, lu, alar, por, cap, porma, ob);
SetVehicleParamsEx(GetPlayerVehicleID(playerid), mot, lu, alar, por, cap, VeiculoDados[IDVehiclePlayer[playerid]][PortaMalas] == 0 ? (VEHICLE_PARAMS_ON) : (VEHICLE_PARAMS_OFF), ob);
VeiculoDados[IDVehiclePlayer[playerid]][PortaMalas] != VeiculoDados[IDVehiclePlayer[playerid]][PortaMalas];
}
}
}
}
if(dialogid == DIALOG_COR1) {
if(response) {
if(strlen(inputtext) < 1) {
SendClientMessage(playerid, -1, "[BCR] |Erro| Digite um ID de 1 a 255.");
ShowPlayerDialog(playerid, DIALOG_COR1, DIALOG_STYLE_INPUT, "Alterar pintura", "Digite o ID da cor 1:", "Confirmar", "Cancelar");
}
if(strval(inputtext) < 0 || strval(inputtext) > 255) {
SendClientMessage(playerid, -1, "[BCR] |Erro| Digite um ID de 1 a 255.");
} else {
SetPVarInt(playerid, "TempCor1Pvar", strval(inputtext));
ShowPlayerDialog(playerid, DIALOG_COR2, DIALOG_STYLE_INPUT, "Alterar pintura", "Digite o ID da cor 2:", "Confirmar", "Cancelar");
}
}
}
if(dialogid == DIALOG_COR2) {
if(response) {
if(strlen(inputtext) < 1) {
SendClientMessage(playerid, -1, "[BCR] |Erro| Digite um ID de 1 a 255.");
ShowPlayerDialog(playerid, DIALOG_COR2, DIALOG_STYLE_INPUT, "Alterar pintura", "Digite o ID da cor 2:", "Confirmar", "Cancelar");
}
if(strval(inputtext) < 0 || strval(inputtext) > 255) {
SendClientMessage(playerid, -1, "[BCR] |Erro| Digite um ID de 1 a 255.");
} else {
VeiculoDados[IDVehiclePlayer[playerid]][Cor1] = GetPVarInt(playerid, "TempCor1Pvar");
VeiculoDados[IDVehiclePlayer[playerid]][Cor2] = strval(inputtext);
ChangeVehicleColor(GetPlayerVehicleID(playerid), GetPVarInt(playerid, "TempCor1Pvar"), strval(inputtext));
SendClientMessage(playerid, -1, "[BCR] |Meu veнculo| Vocк alterou a pintura do seu veнculo.");
DeletePVar(playerid, "TempCor1Pvar");
}
}
}
return 1;
}
Sу eliminei esse monte de loop desnecessбrio.
PHP Code:
|
CMD:meuveiculo(playerid) {
new NomeV[60], str[500], Count;
if(Player[playerid][Logado] != 1) return SendClientMessage(playerid, -1, "[BCR] |Erro| Vocк precisa estar logado para usar um comando.");
if(!IsPlayerInAnyVehicle(playerid)) return SendClientMessage(playerid, -1, "[BCR] |Erro| Vocк precisar estar em um veнculo para usar esse comando.");
for(new i = 0; i < MAX_VEICULOS; i++) {
if(VeiculoDados[i][TempID] == GetPlayerVehicleID(playerid) && strcmp(VeiculoDados[i][Dono], PlayerName(playerid), false) == 0) {
Count++;
IDVehiclePlayer[playerid] = i;
format(str, sizeof(str), "%s\nSalvar aqui\nAlterar pintura\nAbrir capф\nAbrir porta-malas", VeiculoDados[i][Trancado] == 1 ? ("Destrancar") : ("Trancar"));
format(NomeV, sizeof(NomeV), "Meu {01A011}%s", NomeVeiculo[VeiculoDados[i][Modelo]-400][0]);
ShowPlayerDialog(playerid, DIALOG_MEUVEICULO, DIALOG_STYLE_LIST, NomeV, str, "Selecionar", "Cancelar");
break;
}
}
if(Count == 0) return SendClientMessage(playerid, -1, "[BCR] |Erro| Este veнculo nгo pertence a vocк.");
return 1;
}
CMD:meuveiculo(playerid) {
new NomeV[60], str[500];
if(Player[playerid][Logado] != 1) return SendClientMessage(playerid, -1, "[BCR] |Erro| Vocк precisa estar logado para usar um comando.");
if(!IsPlayerInAnyVehicle(playerid)) return SendClientMessage(playerid, -1, "[BCR] |Erro| Vocк precisar estar em um veнculo para usar esse comando.");
for(new i = 0; i < MAX_VEICULOS; i++) {
if(VeiculoDados[i][TempID] == GetPlayerVehicleID(playerid) && strcmp(VeiculoDados[i][Dono], PlayerName(playerid), false) == 0) {
IDVehiclePlayer[playerid] = i;
format(str, sizeof(str), "%s\nSalvar aqui\nAlterar pintura\nAbrir capф\nAbrir porta-malas", VeiculoDados[i][Trancado] == 1 ? ("Destrancar") : ("Trancar"));
format(NomeV, sizeof(NomeV), "Meu {01A011}%s", NomeVeiculo[VeiculoDados[i][Modelo]-400][0]);
ShowPlayerDialog(playerid, DIALOG_MEUVEICULO, DIALOG_STYLE_LIST, NomeV, str, "Selecionar", "Cancelar");
return 1; //ELE DAR BREAK NO LOOP E RETORNA
}
}
return SendClientMessage(playerid, -1, "[BCR] |Erro| Este veнculo nгo pertence a vocк.");
//Se nгo retornar acima, retornarб essa mensagem.
}