enum pCars
{
Chaves[24],
}
new Veiculos[MAX_VEHICLES][pCars];
stock CriarVeiculo(idcar, Float:X, Float:Y, Float:Z, color1, color2)
{
if(!DOF2_FileExists(PastaCarros))
{
CreateVehicle...
format(Veiculos[idcar][Chaves], 24, "Ninguem"); // Bom, aн aqui seria -1, porque o resultado de cada chave
}
}
CMD:pegarchave(playerid)
{
new id;
if(sscanf(params, "d", id))
return SendErrorMessage(playerid, "Uso: /PegarChave [id do veiculo]");
format(Veiculos[id][Chaves], 24, ReturnName(playerid));
return 1;
}
CMD:motor(playerid)
{
if(!IsPlayerInAnyVehicle(playerid))
return SendErrorMessage(playerid, "Vocк nгo estб em um veнculo.");
new vehicleid = GetPlayerVehicleID(playerid);
if(!PossuiChaves(playerid, vehicleid))
{
SendErrorMessage(playerid, "Vocк nгo tem as chaves desse veнculo.");
return 1;
}
return 1;
}
stock PossuiChaves(playerid, carid)
{
if(!strcmp(Veiculos[carid][Chaves], ReturnName(playerid), true, 24)) return 1;
else return false;
}
stock ReturnName(playerid)
{
new zNome[24];
GetPlayerName(playerid, zNome, 24);
return zNome;
}
Eu queria saber se minha lуgica tб certa, e como colocar os ids dos veнculos nas chaves
|
Veiculos[id][Chaves]
format(Veiculos[idcar][Chaves], 24, "Ninguem"); // Bom, aн aqui seria -1, porque o resultado de cada chave
#define PastaCarros "Carros/Carros_%d"
enum pCars
{
veiculoid,
Modelo,
Chaves[24],
vPos[4],
vCor[2],
}new Veiculos[MAX_VEHICLES][pCars];
stock CreateVehicleEx(modelo, Float:X, Float:Y, Float:Z, Float:A, color1, color2)
{
new file[24];
for(new veiculo = 0; veiculo < MAX_VEHICLES; veiculo++){
format(file, sizeof(file), PastaCarros, veiculo);
if(!DOF2_FileExists(file))
{
Veiculos[veiculo][veiculoid] = CreateVehicle(modelo, X, Y, Z, A, color1, color2, -1, 0);
Veiculos[veiculo][vPos][0] = X, Veiculos[veiculo][vPos][1] = Y, Veiculos[veiculo][vPos][2] = Z, Veiculos[veiculo][vPos][3] = A, Veiculos[veiculo][vCor][0] = color1, Veiculos[veiculo][vCor][1] = color2;
format(Veiculos[veiculo][Chaves], 24, "Ninguem");
DOF2_SetString(file, "Chave_Dono", "Ninguem");
DOF2_SetFloat(file, "Pos_X", ...);
DOF2_SetFloat(file, "Pos_Y", ...);
DOF2_SetFloat(file, "Pos_Z", ...);
// resto da banco de dados do veiculo...
break; // para
}
}
return 1;
}
CMD:pegarchave(playerid)
{
new id;
if(sscanf(params, "d", id))
return SendErrorMessage(playerid, "Uso: /PegarChave [id do veiculo]");
new file[24];
format(file, sizeof(file), PastaCarros, idcar);
if(DOF2_FileExists(file)){
if(!strcmp(Veiculos[id][Chaves], "Ninguem", true)){
format(Veiculos[id][Chaves], 24, ReturnName(playerid));
DOF2_SetString(file, "Chave_Dono", ReturnName(playerid));
}
// tem dono
}
// nгo existe
return 1;
}
CMD:criarVeiculo(playerid)
{
new modelo, cor1, cor2, Float:x, Float:y, Float:z, Float:a;
if(sscanf(params, "ddd", modelo, cor1, cor2))
return SendErrorMessage(playerid, "Uso: /criarveiculo [modelo] [cor1] [cor2]");
GetPlayerPos(playerid, x, y, z);
GetPlayerFacingAngle(playerid, a);
CreateVehicleEx(modelo, x, y, z, a, color1, color2);
return 1;
}
CMD:motor(playerid)
{
if(!IsPlayerInAnyVehicle(playerid))
return SendErrorMessage(playerid, "Vocк nгo estб em um veнculo.");
new vehicleid = GetPlayerVehicleID(playerid);
if(!PossuiChaves(playerid, vehicleid))
{
SendErrorMessage(playerid, "Vocк nгo tem as chaves desse veнculo.");
return 1;
}
return 1;
}
stock PossuiChaves(playerid, carid)
{
if(!VehicleExists(carid)) return false;
if(!strcmp(Veiculos[carid][Chaves], ReturnName(playerid), true)) return true;
return false;
}
stock VehicleExists(carid){
new file[24];
format(file, sizeof(file), PastaCarros, carid);
if(DOF2_FileExists(file)) return true;
return false;
}
stock ReturnName(playerid)
{
new zNome[24];
GetPlayerName(playerid, zNome, 24);
return zNome;
}
PHP код:
'Veiculos[idcar][veiculoid]'. veiculoid й o id do carro no jogo. |