Scripta: Moja od nule
Problem: Kada udjem u svoja kola, i kucam /prodajvozilo izbaci mi da nisam u svojim kolima
Deo scripte:
YCMD:prodajvozilo(playerid, params[], help)
{
#pragma unused help
new slot, vID;
vID = GetPlayerVehicleID(playerid);
if(sscanf(params, "i", slot)) return SCM(playerid, -1, ""CRVENA"KORISCENJE"BELA": /prodajvozilo [zlot]");
switch(slot)
{
case 1:
{
if(PlayerInfo[playerid][pVehicle1] == 999) return SCM(playerid, -1, ""CRVENA"GRESKA"BELA": Nemate vozilo na prvom slotu.");
if(!IsPlayerInAnyVehicle(playerid)) return SCM(playerid, -1, ""CRVENA"GRESKA"BELA": Niste u vozilu.");
if(vID != PlayerInfo[playerid][pVehicle1]) return SCM(playerid, -1, ""CRVENA"GRESKA"BELA": Niste u vasem vozilu.");
PlayerInfo[playerid][pVehicle1] = 999;
VehicleInfo[vID][vOwned] = 0;
VehicleInfo[vID][vOwner] = 0;
VehicleInfo[vID][vParkX] = 1590.3740;
VehicleInfo[vID][vParkY] = -1026.0565;
VehicleInfo[vID][vParkZ] = 23.9063;
VehicleInfo[vID][vParkA] = 317.1649;
VehicleInfo[vID][vLocked] = 0;
RemovePlayerFromVehicle(playerid);
DestroyVehicle(vID);
TogglePlayerControllable(playerid, 1);
}
case 2:
{
if(PlayerInfo[playerid][pVehicle2] == 999) return SCM(playerid, -1, ""CRVENA"GRESKA"BELA": Nemate vozilo na prvom slotu.");
if(!IsPlayerInAnyVehicle(playerid)) return SCM(playerid, -1, ""CRVENA"GRESKA"BELA": Niste u vozilu.");
if(vID != PlayerInfo[playerid][pVehicle2]) return SCM(playerid, -1, ""CRVENA"GRESKA"BELA": Niste u vasem vozilu.");
PlayerInfo[playerid][pVehicle2] = 999;
VehicleInfo[vID][vOwned] = 0;
VehicleInfo[vID][vOwner] = 0;
VehicleInfo[vID][vParkX] = 1590.3740;
VehicleInfo[vID][vParkY] = -1026.0565;
VehicleInfo[vID][vParkZ] = 23.9063;
VehicleInfo[vID][vParkA] = 317.1649;
VehicleInfo[vID][vLocked] = 0;
RemovePlayerFromVehicle(playerid);
DestroyVehicle(vID);
TogglePlayerControllable(playerid, 1);
}
case 3:
{
if(PlayerInfo[playerid][pVehicle3] == 999) return SCM(playerid, -1, ""CRVENA"GRESKA"BELA": Nemate vozilo na prvom slotu.");
if(!IsPlayerInAnyVehicle(playerid)) return SCM(playerid, -1, ""CRVENA"GRESKA"BELA": Niste u vozilu.");
if(vID != PlayerInfo[playerid][pVehicle3]) return SCM(playerid, -1, ""CRVENA"GRESKA"BELA": Niste u vasem vozilu.");
PlayerInfo[playerid][pVehicle3] = 999;
VehicleInfo[vID][vOwned] = 0;
VehicleInfo[vID][vOwner] = 0;
VehicleInfo[vID][vParkX] = 1590.3740;
VehicleInfo[vID][vParkY] = -1026.0565;
VehicleInfo[vID][vParkZ] = 23.9063;
VehicleInfo[vID][vParkA] = 317.1649;
VehicleInfo[vID][vLocked] = 0;
RemovePlayerFromVehicle(playerid);
DestroyVehicle(vID);
TogglePlayerControllable(playerid, 1);
}
}
return 1;
}
Cmd kad kupujes auto ?
EDIT ali mozta ti se mjesaju i idive vozila
YCMD:kupivozilo(playerid, params[], help)
{
#pragma unused help
new vID = GetPlayerVehicleID(playerid);
new vMDL = GetVehicleModel(vID);
if(!IsASalesVehicle(vID)) return SCM(playerid, -1, ""CRVENA"GoMilano"BELA": Ovo vozilo nije na prodaju.");
if(PlayerInfo[playerid][pVehicle1] != 999 && PlayerInfo[playerid][pVehicle2] != 999 && PlayerInfo[playerid][pVehicle3] != 999) return SCM(playerid, -1, ""CRVENA"GoMilano"BELA": Ne mozete kupiti vise vozila.");
if(GetPlayerMoney(playerid) < GetVehiclePrice(vID)) return SCM(playerid, -1, ""CRVENA"GoMilano"BELA": Nemate dovoljno novca da bi kupili ovo vozilo.");
if(PlayerInfo[playerid][pVehicle1] == 999) { PlayerInfo[playerid][pVehicle1] = vMDL; }
else if(PlayerInfo[playerid][pVehicle2] == 999) { PlayerInfo[playerid][pVehicle2] = vMDL; }
else if(PlayerInfo[playerid][pVehicle3] == 999) { PlayerInfo[playerid][pVehicle3] = vMDL; }
else { return 1;}
new vehicle;
for(new i = 0 ; i < sizeof(VehicleInfo); i++)
{
if(!fexist(CarPath(i)))
vehicle = i;
break;
}
VehicleInfo[vehicle][vOwned] = 1;
VehicleInfo[vehicle][vOwner] = RemoveUnderScore(playerid);
VehicleInfo[vehicle][vModel] = vMDL;
VehicleInfo[vehicle][vParkX] = 1590.3740;
VehicleInfo[vehicle][vParkY] = -1026.0565;
VehicleInfo[vehicle][vParkZ] = 30.9063;
VehicleInfo[vehicle][vParkA] = 317.1649;
VehicleInfo[vehicle][vColor1] = 1;
VehicleInfo[vehicle][vColor2] = 1;
VehicleInfo[vehicle][vLocked] = 0;
CreateVehicle(vMDL, VehicleInfo[vehicle][vParkX], VehicleInfo[vehicle][vParkY], VehicleInfo[vehicle][vParkZ], VehicleInfo[vehicle][vParkA], VehicleInfo[vehicle][vColor1], VehicleInfo[vehicle][vColor2], -1);
SetVehicleParamsForPlayer(vehicle, playerid, 0, 0);
GivePlayerMoney(playerid, -GetVehiclePrice(vID));
SaveVehicle(vehicle);
return 1;
}
Zamjeni tvoi cmd sa ovim i probaj ponovo kupiti auto i prodati ga
YCMD:kupivozilo(playerid, params[], help)
{
#pragma unused help
new vID = GetPlayerVehicleID(playerid);
new vMDL = GetVehicleModel(vID);
if(!IsASalesVehicle(vID)) return SCM(playerid, -1, ""CRVENA"GoMilano"BELA": Ovo vozilo nije na prodaju.");
if(PlayerInfo[playerid][pVehicle1] != 999 && PlayerInfo[playerid][pVehicle2] != 999 && PlayerInfo[playerid][pVehicle3] != 999) return SCM(playerid, -1, ""CRVENA"GoMilano"BELA": Ne mozete kupiti vise vozila.");
if(GetPlayerMoney(playerid) < GetVehiclePrice(vID)) return SCM(playerid, -1, ""CRVENA"GoMilano"BELA": Nemate dovoljno novca da bi kupili ovo vozilo.");
if(PlayerInfo[playerid][pVehicle1] == 999) { PlayerInfo[playerid][pVehicle1] = vID; }
else if(PlayerInfo[playerid][pVehicle2] == 999) { PlayerInfo[playerid][pVehicle2] = vID; }
else if(PlayerInfo[playerid][pVehicle3] == 999) { PlayerInfo[playerid][pVehicle3] = vID; }
else { return 1;}
new vehicle;
for(new i = 0 ; i < sizeof(VehicleInfo); i++)
{
if(!fexist(CarPath(i)))
vehicle = i;
break;
}
VehicleInfo[vehicle][vOwned] = 1;
VehicleInfo[vehicle][vOwner] = RemoveUnderScore(playerid);
VehicleInfo[vehicle][vModel] = vMDL;
VehicleInfo[vehicle][vParkX] = 1590.3740;
VehicleInfo[vehicle][vParkY] = -1026.0565;
VehicleInfo[vehicle][vParkZ] = 30.9063;
VehicleInfo[vehicle][vParkA] = 317.1649;
VehicleInfo[vehicle][vColor1] = 1;
VehicleInfo[vehicle][vColor2] = 1;
VehicleInfo[vehicle][vLocked] = 0;
CreateVehicle(vMDL, VehicleInfo[vehicle][vParkX], VehicleInfo[vehicle][vParkY], VehicleInfo[vehicle][vParkZ], VehicleInfo[vehicle][vParkA], VehicleInfo[vehicle][vColor1], VehicleInfo[vehicle][vColor2], -1);
SetVehicleParamsForPlayer(vehicle, playerid, 0, 0);
GivePlayerMoney(playerid, -GetVehiclePrice(vID));
SaveVehicle(vehicle);
return 1;
}
Nece, joj pomagajte da resim i ovaj COS pa da krenem dalje.
za pocetak jedno pitanje, da li ti uopsteno lepo ucitavas varijablu vozila
//----------Vehicle----------
forward LoadVehicle_data(vehicleid, name[], value[]);
public LoadVehicle_data(vehicleid, name[], value[])
{
INI_Int("Owned", VehicleInfo[vehicleid][vOwned]);
INI_String("Owner", VehicleInfo[vehicleid][vOwner], MAX_PLAYER_NAME);
INI_Int("Model", VehicleInfo[vehicleid][vModel]);
INI_String("Name", VehicleInfo[vehicleid][vModelName], 64);
INI_Float("ParkX", VehicleInfo[vehicleid][vParkX]);
INI_Float("ParkY", VehicleInfo[vehicleid][vParkY]);
INI_Float("ParkZ", VehicleInfo[vehicleid][vParkZ]);
INI_Float("ParkA", VehicleInfo[vehicleid][vParkA]);
INI_Int("Color1", VehicleInfo[vehicleid][vColor1]);
INI_Int("Color2", VehicleInfo[vehicleid][vColor2]);
INI_Int("Locked", VehicleInfo[vehicleid][vLocked]);
return 1;
}
forward SaveVehicle(vehicleid);
public SaveVehicle(vehicleid)
{
new str[16];
format(str, 16, VPATH, vehicleid);
new INI:File = INI_Open(str);
INI_WriteInt(File, "Owned", VehicleInfo[vehicleid][vOwned]);
INI_WriteString(File, "Owner", VehicleInfo[vehicleid][vOwner]);
INI_WriteInt(File, "Model", VehicleInfo[vehicleid][vModel]);
INI_WriteString(File, "Name", VehicleInfo[vehicleid][vModelName]);
INI_WriteFloat(File, "ParkX", VehicleInfo[vehicleid][vParkX]);
INI_WriteFloat(File, "ParkY", VehicleInfo[vehicleid][vParkY]);
INI_WriteFloat(File, "ParkZ", VehicleInfo[vehicleid][vParkZ]);
INI_WriteFloat(File, "ParkA", VehicleInfo[vehicleid][vParkA]);
INI_WriteInt(File, "Color1", VehicleInfo[vehicleid][vColor1]);
INI_WriteInt(File, "Color2", VehicleInfo[vehicleid][vColor2]);
INI_WriteInt(File, "Locked", VehicleInfo[vehicleid][vLocked]);
INI_Close(File);
return 1;
}
A ovo je kad se server pokrene
for(new idx = 0; idx<sizeof(VehicleInfo); idx++)
{
format(str, sizeof(str), VPATH, idx);
INI_ParseFile(str, "LoadVehicle_%s", .bExtra = true, .extra = idx);
CreateVehicle(VehicleInfo[idx][vModel], VehicleInfo[idx][vParkX], VehicleInfo[idx][vParkY], VehicleInfo[idx][vParkZ], VehicleInfo[idx][vParkA], VehicleInfo[idx][vColor1], VehicleInfo[idx][vColor2], -1);
}
Bump!