Nisam siguran da sam dobro razumeo, daj cuvanje vozila, ucitavanje, kako kreiras vozila.. Ne znamo odakle poceti xD
Citat: V01D poslato Mart 07, 2020, 21:04:19 POSLE PODNE
Nisam siguran da sam dobro razumeo, daj cuvanje vozila, ucitavanje, kako kreiras vozila.. Ne znamo odakle poceti xD
Kreiranje vozila:
[pawn]YCMD:napravivozilo(playerid, params[], help)
{
#pragma unused help
if(UlogovanIgrac[playerid] == 0 || PI[playerid][pReg] == 0) return Error(playerid, "Nisi ulogovan/a ili nisi registrovan/a!");
if(PI[playerid][pAdmin] < 1 && gettime() < ACCmd[playerid]) return Error(playerid, "{FF584C}[ANTI SPAM]Sacekajte malo pre nego sto ponovo napisete poruku/komandu");
ACCmd[playerid] = gettime()+2;
if(!strcmp(GetNameEx(playerid), Owner_1, true) || !strcmp(GetNameEx(playerid), Owner_2, true) || !strcmp(GetNameEx(playerid), Owner_3, true) || !strcmp(GetNameEx(playerid), CoOwner_2, true))
{
if(UlogovanIgrac[playerid] == 0) return Error(playerid, "Nisi ulogovan!");
if(PI[playerid][pAdmin] < 6) return Error(playerid, "Nisi vlasnik.");
if(UlogovanIgrac[playerid] == 0) return Error(playerid, "Nisi ulogovan!");
if(stvoreni > 0) return Error(playerid, "Moguce da ima stvorenih vozila, stoga ne mozes koristiti ovu komandu! (/destroyallvehs)");
new veh, vcena, vboja1, vboja2;
if(sscanf(params, "iiii", veh, vcena, vboja1, vboja2)) return Cmd(playerid, "/napravivozilo (id vozila) (cena) (boja 1) (boja 2)");
if(vboja1 < 0 || vboja1 > 255) return Error(playerid, "Ne moze boja iznad 255 ni ispod 0!");
if(vboja2 < 0 || vboja2 > 255) return Error(playerid, "Ne moze boja iznad 255 ni ispod 0!");
if(veh < 400 || veh > 611) return Error(playerid, "Ne moze ispod 400 ili iznad 611!");
new idica;
new Float:ang;
GetPlayerFacingAngle(playerid, ang);
GetPlayerPos(playerid, X, Y, Z);
idica = AddStaticVehicleEx(veh, X, Y+2, Z, ang, vboja1, vboja2, 60000); //DodajVozilo ako ne radi kez da ga putuje u vozilo!!!
brojvozila++;
new model[24];
GetVehicleName(brojvozila,model,sizeof(model));
vehhealth[brojvozila] = 998.2545;
lz_SetVehicleHealth(brojvozila, 998.2545);
CI[brojvozila][cModel] = veh;
CI[brojvozila][cPosX] = X;
CI[brojvozila][cPosY] = Y+2;
CI[brojvozila][cPosZ] = Z;
CI[brojvozila][cAngle] = ang;
CI[brojvozila][cZaplenjen] = 0;
CI[brojvozila][cOtpad] = 0;
CI[brojvozila][cNeakt] = 0;
CI[brojvozila][cBoja1] = vboja1;
CI[brojvozila][cBoja2] = vboja2;
CI[brojvozila][cVW] = 0;
CI[brojvozila][cParking] = 0;
CI[brojvozila][cObrisan] = 0;
CI[brojvozila][cPlin] = 0;
CI[brojvozila][cPaintJob] = 3;
strmid(CI[brojvozila][cIme], model, 0, strlen(model), 255);
strmid(CI[brojvozila][cVlasnik], "Niko", 0, strlen("Niko"), 255);
CI[brojvozila][cCena] = vcena;
new kur[32];
format(kur,32,"BG-%d",brojvozila);
strmid(CI[brojvozila][cTablice], kur, 0, strlen(kur), 255);
SetVehicleNumberPlate(brojvozila,CI[brojvozila][cTablice]);
CI[brojvozila][cRegistrovan] = 0;
CI[brojvozila][cRegVreme] = 0;
CI[brojvozila][cKupljen] = 0;
CI[brojvozila][cZakljucan] = 0;
CI[brojvozila][cPostavljen] = 1;
CI[brojvozila][cDroga] = 0;
CI[brojvozila][cGun1] = 0;
CI[brojvozila][cAmmo1] = 0;
CI[brojvozila][cGun2] = 0;
CI[brojvozila][cAmmo2] = 0;
CI[brojvozila][cGun3] = 0;
CI[brojvozila][cAmmo3] = 0;
CI[brojvozila][cNovac] = 0;
CI[brojvozila][cMats] = 0;
SetVehicleVirtualWorld(brojvozila, CI[brojvozila][cVW]);
SCMF(playerid, -1, "{007FFF}BP:RP » {FFFFFF}Napravili ste vozilo id: %d, cena: $%d, boja 1: %d, boja 2: %d. || Redni broj vozila: %d!", veh, vcena, vboja1, vboja2, brojvozila);
new krek[300];
format(krek,300,"[ADMIN] %s je napravio vozilo id: %d, cena: $%d, boja 1: %d, boja 2: %d. || Redni broj vozila: %d!", GetName(playerid), veh, vcena, vboja1, vboja2, brojvozila);
PAdm(ZUTA, krek, 1);
GetVehicleParamsEx(GetPlayerVehicleID(playerid),engine,lights,alarm,doors,bonnet,boot,objective);
SetVehicleParamsEx(GetPlayerVehicleID(playerid),1,lights,alarm,doors,bonnet,boot,objective);
if(VoziloJeMotor(idica))
{
GorivoP[idica] = 40;
}
else if(VoziloJeAvion(idica) || VoziloJeBrod(idica) || VoziloJeKamion(idica))
{
GorivoP[idica] = 100;
}
else if(VoziloJeBicikla(idica) || GetVehicleModel(idica) == 538)
{
GorivoP[idica] = 1000000;
}
else
{
GorivoP[idica] = 60;
}
CI[brojvozila][cGorivo] = GorivoP[idica];
SacuvajVozilo(brojvozila);
ModVehicle(brojvozila);
}
return true;
}[/pawn]
Stvaranje vozila prilikom starta:
[pawn] for(new b = OWNABLE; b < sizeof(CI); b++)
{
new gFile[60];
format(gFile, sizeof(gFile), "sc_Base/vozila/Vozilo_%d.ini", b);
if(fexist(gFile))
{
INI_ParseFile(gFile, "UcitajVozila", .bExtra = true, .extra = b);
if(CI
[cPostavljen] == 1)
{
DodajVozilo(CI[cModel],CI[cPosX],CI[cPosY],CI[cPosZ]+1.0,CI[cAngle],CI[cBoja1],CI[cBoja2],60000);
SetVehicleVirtualWorld(b, CI[cVW]);
SetVehicleNumberPlate(b,CI[cTablice]);
GorivoP = CI[cGorivo];
GetVehicleParamsEx(b, engine, lights, alarm, doors, bonnet, boot, objective);
SetVehicleParamsEx(b, 0, lights, alarm, CI[cZakljucan], bonnet, boot, objective);
}
}
}[/pawn]
[pawn]FUNCTION: UcitajVozila(idvozila, name[], value[])
{
INI_Int("cModel",CI[idvozila][cModel]);
INI_Float("cPosX",CI[idvozila][cPosX]);
INI_Float("cPosY",CI[idvozila][cPosY]);
INI_Float("cPosZ",CI[idvozila][cPosZ]);
INI_Float("cAngle",CI[idvozila][cAngle]);
INI_Int("cBoja1",CI[idvozila][cBoja1]);
INI_Int("cBoja2",CI[idvozila][cBoja2]);
INI_String("cVlasnik",CI[idvozila][cVlasnik],32);
INI_String("cIme",CI[idvozila][cIme],64);
INI_Int("cCena",CI[idvozila][cCena]);
INI_String("cTablice",CI[idvozila][cTablice],32);
INI_Int("cRegistrovan",CI[idvozila][cRegistrovan]);
INI_Int("cRegVreme",CI[idvozila][cRegVreme]);
INI_Int("cKupljen",CI[idvozila][cKupljen]);
INI_Int("cZakljucan",CI[idvozila][cZakljucan]);
INI_Int("cPostavljen",CI[idvozila][cPostavljen]);
INI_Int("cDroga",CI[idvozila][cDroga]);
INI_Int("cGun1",CI[idvozila][cGun1]);
INI_Int("cAmmo1",CI[idvozila][cAmmo1]);
INI_Int("cGun2",CI[idvozila][cGun2]);
INI_Int("cAmmo2",CI[idvozila][cAmmo2]);
INI_Int("cGun3",CI[idvozila][cGun3]);
INI_Int("cAmmo3",CI[idvozila][cAmmo3]);
INI_Int("cNovac",CI[idvozila][cNovac]);
INI_Int("cMats",CI[idvozila][cMats]);
INI_Int("cVW",CI[idvozila][cVW]);
INI_Int("cZaplenjen",CI[idvozila][cZaplenjen]);
INI_Int("cOtpad",CI[idvozila][cOtpad]);
INI_Int("cNeakt",CI[idvozila][cNeakt]);
INI_Int("cmod1",CI[idvozila][cmod1]);
INI_Int("cmod2",CI[idvozila][cmod2]);
INI_Int("cmod3",CI[idvozila][cmod3]);
INI_Int("cmod4",CI[idvozila][cmod4]);
INI_Int("cmod5",CI[idvozila][cmod5]);
INI_Int("cmod6",CI[idvozila][cmod6]);
INI_Int("cmod7",CI[idvozila][cmod7]);
INI_Int("cmod8",CI[idvozila][cmod8]);
INI_Int("cmod9",CI[idvozila][cmod9]);
INI_Int("cmod10",CI[idvozila][cmod10]);
INI_Int("cmod11",CI[idvozila][cmod11]);
INI_Int("cmod12",CI[idvozila][cmod12]);
INI_Int("cmod13",CI[idvozila][cmod13]);
INI_Int("cmod14",CI[idvozila][cmod14]);
INI_Int("cmod15",CI[idvozila][cmod15]);
INI_Int("cmod16",CI[idvozila][cmod16]);
INI_Int("cmod17",CI[idvozila][cmod17]);
INI_Int("cParking",CI[idvozila][cParking]);
INI_Int("cObrisan",CI[idvozila][cObrisan]);
INI_Int("cPlin",CI[idvozila][cPlin]);
INI_Int("cXMR",CI[idvozila][cXMR]);
INI_Float("cPosX1",CI[idvozila][cPosX1]);
INI_Float("cPosY1",CI[idvozila][cPosY1]);
INI_Float("cPosZ1",CI[idvozila][cPosZ1]);
INI_Int("cVW1",CI[idvozila][cVW1]);
INI_Int("cTDevice",CI[idvozila][cTDevice]);
INI_Int("cGorivo",CI[idvozila][cGorivo]);
INI_Int("cPaintJob",CI[idvozila][cPaintJob]);
INI_Int("Usage",CI[idvozila][cUsage]);
INI_Int("ID",CI[idvozila][cID]);
return true;
}[/pawn]
[pawn]FUNCTION: SacuvajVikendicu(idvik)
{
new dFile[128];
format(dFile, sizeof(dFile),"sc_Base/vikendice/Vikendica_%d.ini",idvik);
new INI:File = INI_Open(dFile);
INI_WriteInt(File,"vImaVlasnika",VI[idvik][vImaVlasnika]);
INI_WriteString(File,"vVlasnik",VI[idvik][vVlasnik]);
INI_WriteFloat(File,"vUlazX",VI[idvik][vUlazX]);
INI_WriteFloat(File,"vUlazY",VI[idvik][vUlazY]);
INI_WriteFloat(File,"vUlazZ",VI[idvik][vUlazZ]);
INI_WriteFloat(File,"vIzlazX",VI[idvik][vIzlazX]);
INI_WriteFloat(File,"vIzlazY",VI[idvik][vIzlazY]);
INI_WriteFloat(File,"vIzlazZ",VI[idvik][vIzlazZ]);
INI_WriteInt(File,"vLevel",VI[idvik][vLevel]);
INI_WriteInt(File,"vCena",VI[idvik][vCena]);
INI_WriteInt(File,"vKasa",VI[idvik][vKasa]);
INI_WriteInt(File,"vGun",VI[idvik][vGun]);
INI_WriteInt(File,"vAmmo",VI[idvik][vAmmo]);
INI_WriteInt(File,"vInt",VI[idvik][vInt]);
INI_WriteInt(File,"vZatvoreno",VI[idvik][vZatvoreno]);
INI_WriteInt(File,"vVW",VI[idvik][vVW]);
INI_WriteInt(File,"vNeakt",VI[idvik][vNeakt]);
INI_WriteInt(File,"vPostavljena",VI[idvik][vPostavljena]);
INI_WriteInt(File,"vRent",VI[idvik][vRent]);
INI_WriteInt(File,"vRentCena",VI[idvik][vRentCena]);
INI_WriteInt(File,"vEat",VI[idvik][vEat]);
INI_WriteInt(File,"vHealth",VI[idvik][vHealth]);
INI_WriteInt(File,"vArmour",VI[idvik][vArmour]);
INI_Close(File);
return true;
}[/pawn]
Kupovina vozila kada tek udje u vozilo (preko dijaloga uradjena)
[pawn]
//////KADA UDJE U VOZILO DA MU IZBACI DIJALOG ZA KUPOVINU///////
if(newstate == PL_ST_DRIVER)
{
for(new i = 0; i < sizeof(CI); i++)
{
if(CI[cID] == voziloid)
{
if(CI[cKupljen] == 0)
{
if(PI[playerid][pLevel] < 3) { Error(playerid, "Samo level 3+!"); lz_RemovePlayerFromVehicle(playerid); return true; }
if((PI[playerid][pVozilo1] != 9999 && PI[playerid][pVozilo2] != 9999 && PI[playerid][pVozilo3] != 9999) && PI[playerid][pSlot4] == 0) { Error(playerid, "Vec imas 3 vozila."); lz_RemovePlayerFromVehicle(playerid); return true; }
if((PI[playerid][pVozilo1] != 9999 && PI[playerid][pVozilo2] != 9999 && PI[playerid][pVozilo3] != 9999 && PI[playerid][pVozilo4] != 9999) && PI[playerid][pSlot4] == 1) { Error(playerid, "Vec imas 4 vozila."); lz_RemovePlayerFromVehicle(playerid); return true; }
new moda[64];
GetVehicleName(i,moda,sizeof(moda));
new srki[128];
format(srki, 128, "{FFFFFF}Da li zelite da kupite vozilo\nmarke %s, po ceni od $%d?", moda, CI[cCena]);
SPD(playerid, D_KUPOVINAVOZILA, DSM, "{1A94E6}Kupovina vozila", srki, "Kupi", "Izadji");
UsaoAutoProdaja[playerid] = i;
return true;
}
}
}
}[/pawn]
Prihvatanje dijaloga za kupovinu i setanje vozila:
[pawn] if(dialogid == D_KUPOVINAVOZILA)
{
if(!response)
{
lz_RemovePlayerFromVehicle(playerid);
UsaoAutoProdaja[playerid] = -1;
SCM(playerid, -1, "{007FFF}BP:RP » {FFFFFF}Odustali ste od kupovine vozila.");
}
if(response)
{
new autoid = ScriptIDVozila[ GetPlayerVehicleID( playerid ) ];
if(CI[autoid][cKupljen] == 0)
if(CI[autoid][cCena] > lz_GetPlayerMoney(playerid)) { new colisa[128]; format(colisa, 128, "Nemas dovoljno novca - $%d!", CI[autoid][cCena]); Error(playerid, colisa); lz_RemovePlayerFromVehicle(playerid); return true; }
if(PI[playerid][pLevel] < 3) { Error(playerid, "Samo level 3+!"); lz_RemovePlayerFromVehicle(playerid); return true; }
if((PI[playerid][pVozilo1] != 9999 && PI[playerid][pVozilo2] != 9999 && PI[playerid][pVozilo3] != 9999) && PI[playerid][pSlot4] == 0) { Error(playerid, "Vec imas 3 vozila."); lz_RemovePlayerFromVehicle(playerid); return true; }
if((PI[playerid][pVozilo1] != 9999 && PI[playerid][pVozilo2] != 9999 && PI[playerid][pVozilo3] != 9999 && PI[playerid][pVozilo4] != 9999) && PI[playerid][pSlot4] == 1) { Error(playerid, "Vec imas 4 vozila."); lz_RemovePlayerFromVehicle(playerid); return true; }
new send[64];
GetPlayerName(playerid, send, sizeof(send));
strmid(CI[autoid][cVlasnik], send, 0, strlen(send), 255);
CI[autoid][cRegistrovan] = 0;
CI[autoid][cRegVreme] = 0;
CI[autoid][cKupljen] = 1;
CI[autoid][cZakljucan] = 1;
lz_GivePlayerMoney(playerid, -CI[autoid][cCena]);
SCMF(playerid, -1, "{007FFF}BP:RP » {FFFFFF}Kupili ste vozilo za $%d.",CI[autoid][cCena]);
SCM(playerid, -1, "Za vise informacija - /v.");
//VehLabelUpdate(veh);
SacuvajVozilo(autoid);
GetVehicleParamsEx(autoid, engine, lights, alarm, doors, bonnet, boot, objective);
SetVehicleParamsEx(autoid, 0, lights, alarm, CI[brojvozila][cZakljucan], bonnet, boot, objective);
if(PI[playerid][pVozilo1] == 9999)
{
PI[playerid][pVozilo1] = autoid;
return true;
}
if(PI[playerid][pVozilo2] == 9999)
{
PI[playerid][pVozilo2] = autoid;
return true;
}
if(PI[playerid][pVozilo3] == 9999)
{
PI[playerid][pVozilo3] = autoid;
return true;
}
if(PI[playerid][pVozilo4] == 9999)
{
PI[playerid][pVozilo4] = autoid;
return true;
}
}
}[/pawn]
TJ kako da napravim da se igracu seta novi ID vozila koji se predhodno promeni jer sam ja u medjuvremenu dodao jos po koje vozilo za posao ili org ?
Da nisi mozda presao ovo pa ti se zato mesaju idevi? [pawn]#define OWNABLE 1232[/pawn]
Takodje moze da bude i do broja vozila za tu vrstu kreiranja 'DodajVozilo'. Na primer stavljeno ti je [pawn]for(new b = 302; b < 310; b++) a ti obrisao to i nije uradjeno da se krece od toga ostala vozila da bi podesio sve pod redosled samih vozila.[/pawn]
BExtazy mod CoS problem, preporucio bi ti kreni novi mod da radis, ili uradi novi cos sistem da ti sve bude dinamicno poslovi/org/privatna vozila i eto ne mesanja ;D
Pa najbolje je da sva vozila čuvaš u jednoj strukturi kao u Athlone (samo nemoj copy paste system jer je katastrofa haha)
ne slusaj ovog makenzija, ja sam ga pobedio u script battle-u javi se meni da ti ja dam pravi sistem
Na kraju krajeva precicu na neki novi mod. Posto je ovaj problem sa vozilima kolko sam uspeo da svatim kroz vas, skoro pa ne resiv :D