Skripta koju koristim:0
Detaljan opis problema:Znaci kada igrac kupi auto pozove se funkcija e sad napravio sam da ona stvara auto na nekom mestu.Ali sad kako da uradim da taj auto spremim i da samo igrac koji ga je kupi moze voziti?
Dio skripte:[pawn] new carid = 579;
AddStaticVehicleEx(carid, RandomCarSpawn[Random][0], RandomCarSpawn[Random][1], RandomCarSpawn[Random][2], RandomCarSpawn[Random][3], colora, colorb, false);
SetPlayerCheckpoint(playerid, RandomCarSpawn[Random][0], RandomCarSpawn[Random][1], RandomCarSpawn[Random][2], 3.0);
KatalogOtvoren = 0;
UKatalogu[playerid] = 0;
GledaAuto[playerid] = 0;
SakrikatalogTextDraw(playerid);
SpawnPlayer(playerid);
SetPlayerPos(playerid, 504.9186,-1302.8190,17.3125);
SCM(playerid, Zelena, "Kupio si vozilo marke: {FFFFFF}Huntley");
AC_BS_GivePlayerMoney(playerid, -300000);[/pawn]
Neke slike/video za lakse dobivanje pomoci(neobavezno):
Napravis proveru da ti uzima poslednji ID auta ne serveru, dodas da je on vlasnik i to je to.
Moze lock hvala na ni na cemu ...
Imam problem.Nece da mi ucita Vozila.Nece da se spawnaju na srw.
Evo funkcije:
[pawn]forward LoadCars(carid, name[], value[]);
public LoadCars(carid, name[], value[])
{
INI_Int("ID", CarVehInfo[carid][carID]);
INI_Int("Model", CarVehInfo[carid][carModel]);
INI_Float("PosX", CarVehInfo[carid][carPosX]);
INI_Float("PosY", CarVehInfo[carid][carPosY]);
INI_Float("PosZ", CarVehInfo[carid][carPosZ]);
INI_Float("ZAngle", CarVehInfo[carid][carZAngle]);
INI_Int("ColorA", CarVehInfo[carid][carColorA]);
INI_Int("ColorB", CarVehInfo[carid][carColorB]);
INI_String("Owner", CarVehInfo[carid][carOwner], MAX_PLAYER_NAME);
INI_Int("Locked", CarVehInfo[carid][carLocked]);
UcitajPodesavanjaAuta();
return 1;
}[/pawn]
Evo pokretanja:
[pawn] for(new i = 0; i < sizeof(CarVehInfo); i++)
{
new gFile[35];
format(gFile, 50, "Auta/Auto_%d.ini" ,i);
if(fexist(gFile))
{
INI_ParseFile(gFile, "LoadCars", .bExtra = true, .extra = i);
if(CarVehInfo[carPosX] != 0)
{
printf("System Privatnih Auta | Auto ID %d je uspesno ucitan !", i);
}
}
}[/pawn]
Evo ucitavanja i spawnanja vozila:
[pawn]stock UcitajPodesavanjaAuta()
{
print("Ucitavanje Kupljenih vozila");
for(new i = 0; i < sizeof(CarVehInfo); i++)
{
AddStaticVehicleEx(CarVehInfo[carModel], CarVehInfo[carPosX], CarVehInfo[carPosY], CarVehInfo[carPosZ], CarVehInfo[carZAngle], CarVehInfo[carColorA], CarVehInfo[carColorB], false);
}
print("Sva kupljena vozila uspesno ucitana");
}[/pawn]
Ova funkcija se uopste ne pokrece.
Ordaio sam Debug evo rezultata:
[pawn] print("TEST1");
INI_Int("ID", CarVehInfo[carid][carID]);
print("TEST2");
INI_Int("Model", CarVehInfo[carid][carModel]);
INI_Float("PosX", CarVehInfo[carid][carPosX]);
INI_Float("PosY", CarVehInfo[carid][carPosY]);
INI_Float("PosZ", CarVehInfo[carid][carPosZ]);
print("TEST3");
INI_Float("ZAngle", CarVehInfo[carid][carZAngle]);
INI_Int("ColorA", CarVehInfo[carid][carColorA]);
INI_Int("ColorB", CarVehInfo[carid][carColorB]);
print("TEST4");
INI_String("Owner", CarVehInfo[carid][carOwner], MAX_PLAYER_NAME);
print("TEST5");
INI_Int("Locked", CarVehInfo[carid][carLocked]);
print("TEST6");
UcitajPodesavanjaAuta();
print("TEST GOTOV");[/pawn]
[16:41:53] TEST1
[16:41:53] TEST1
[16:41:53] TEST2
[16:41:53] TEST1
[16:41:53] TEST2
[16:41:53] TEST1
[16:41:53] TEST2
[16:41:53] TEST1
[16:41:53] TEST2
[16:41:53] TEST1
[16:41:53] TEST2
[16:41:53] TEST3
[16:41:53] TEST1
[16:41:53] TEST2
[16:41:53] TEST3
[16:41:53] TEST1
[16:41:53] TEST2
[16:41:53] TEST3
[16:41:53] TEST1
[16:41:53] TEST2
[16:41:53] TEST3
[16:41:53] TEST4
[16:41:53] TEST1
[16:41:53] TEST2
[16:41:53] TEST3
[16:41:53] TEST4
[16:41:53] TEST5
[16:41:53] System Privatnih Auta | Auto ID 0 je uspesno ucitan !
public LoadCars(carid, name[], value[])
{
new string[150];
format(string, sizeof(string), "Auta/Auto_%d.ini", i);
new File: file = fopen(string, io_read);
if (file)
{
INI_Int("ID", CarVehInfo[carid][carID]);
INI_Int("Model", CarVehInfo[carid][carModel]);
INI_Float("PosX", CarVehInfo[carid][carPosX]);
INI_Float("PosY", CarVehInfo[carid][carPosY]);
INI_Float("PosZ", CarVehInfo[carid][carPosZ]);
INI_Float("ZAngle", CarVehInfo[carid][carZAngle]);
INI_Int("ColorA", CarVehInfo[carid][carColorA]);
INI_Int("ColorB", CarVehInfo[carid][carColorB]);
INI_String("Owner", CarVehInfo[carid][carOwner], MAX_PLAYER_NAME);
INI_Int("Locked", CarVehInfo[carid][carLocked]);
UcitajPodesavanjaAuta();
}
return 1;
}
fali ti for petlja jer je unfinded simbol i al nmvz jer ni ovo neradi.
Zna li neko sta moze biti?
Bump
Pokušavao da zamijeniš stock sa public?
Opet isto...Zna li neko?
probaj INI_IntSet
Kakav set potrebno mi je da procita podatke ne da ih zapise...
Zna li iko?
Primijetio sam da ti nije oÄitalo ni Test6, Å¡to je na liniji za uÄitavanje da li je vozilo zakljuÄano ili ne. Provjeri da li u scriptfiles, u ini fajlu za jedno auto imaÅ¡ tu variablu. Isto tako provjeri gdje se ona postavlja, pa ćemo odatle dalje.
Ta varijabla se sacuvava i postoji u fajlu od vozila.
Evo gde se koristi mada nzm kakve veze i-ma sa ucitravanjem.
[pawn] if(newstate == PLAYER_STATE_DRIVER)
{
if(GetPlayerVehicleID(playerid) == PlayerInfo[playerid][pAutoID])
{
SCM(playerid, -1, "Usli ste u svoje vozilo");
}
else
{
new veh = GetPlayerVehicleID(playerid);
if(CarVehInfo[veh][carLocked] == 0)
{
SCM(playerid, -1, "Privatno vozilo");
}
else if(CarVehInfo[veh][carLocked] == 1)
{
RemovePlayerFromVehicle(playerid);
SCM(playerid, Error, "Vozilo zakljucano");
}
}
}[/pawn]
[pawn] new veh = GetPlayerVehicleID(playerid);
if(listitem == 0)
{
if(CarVehInfo[veh][carLocked] == 0)
{
CarVehInfo[veh][carLocked] = 1;
GameTextForPlayer(playerid,"~w~Auto ~r~zakljucan",2000,3);
}
else if(CarVehInfo[veh][carLocked] == 1)
{
CarVehInfo[veh][carLocked] = 0;
GameTextForPlayer(playerid,"~w~Auto ~g~otkljucan",2000,3);
}
}[/pawn]
bump
Dobro ti je rekao, obrati pažnju, ne vidi se nigdje TEST6, tj poslije uÄitavanja da li je zakljuÄano ili ne.
Postavi kodove da vidimo kako spremaš tu variablu, da li kao integer ili drugo.
Ako malo bolje pogledas videces da sam te kodove vec postavio...
Al evo opet:
[pawn]enum carInfo
{
carID,
carModel,
Float:carPosX,
Float:carPosY,
Float:carPosZ,
Float:carZAngle,
carColorA,
carColorB,
carOwner[MAX_PLAYER_NAME],
carLocked
}
new CarVehInfo[MAX_AUTA][carInfo];
stock SaveCars(carid)
{
new dFile[128];
format(dFile, sizeof(dFile),"Auta/Auto_%d.ini",carid);
new
INI:File = INI_Open(dFile);
INI_WriteInt(File, "ID", CarVehInfo[carid][carID]);
INI_WriteInt(File, "Model", CarVehInfo[carid][carModel]);
INI_WriteFloat(File, "PosX", CarVehInfo[carid][carPosX]);
INI_WriteFloat(File, "PosY", CarVehInfo[carid][carPosY]);
INI_WriteFloat(File, "PosZ", CarVehInfo[carid][carPosZ]);
INI_WriteFloat(File, "ZAngle", CarVehInfo[carid][carZAngle]);
INI_WriteInt(File, "ColorA", CarVehInfo[carid][carColorA]);
INI_WriteInt(File, "ColorB", CarVehInfo[carid][carColorB]);
INI_WriteString(File, "Owner", CarVehInfo[carid][carOwner]);
INI_WriteInt(File, "Locked", CarVehInfo[carid][carLocked]);
INI_Close(File);
}
forward LoadCars(carid, name[], value[]);
public LoadCars(carid, name[], value[])
{
print("TEST1");
INI_Int("ID", CarVehInfo[carid][carID]);
print("TEST2");
INI_Int("Model", CarVehInfo[carid][carModel]);
INI_Float("PosX", CarVehInfo[carid][carPosX]);
INI_Float("PosY", CarVehInfo[carid][carPosY]);
INI_Float("PosZ", CarVehInfo[carid][carPosZ]);
print("TEST3");
INI_Float("ZAngle", CarVehInfo[carid][carZAngle]);
INI_Int("ColorA", CarVehInfo[carid][carColorA]);
INI_Int("ColorB", CarVehInfo[carid][carColorB]);
print("TEST4");
INI_String("Owner", CarVehInfo[carid][carOwner], MAX_PLAYER_NAME);
print("TEST5");
INI_Int("Locked", CarVehInfo[carid][carLocked]);
print("TEST6");
SetTimer("UcitajPodesavanjaAuta", Sec(1), false);
print("TEST GOTOV");
return 1;
}[/pawn]
bump
Pomoc?
Definisi timer na vrhu skripte kao new nesto[MAX_PLAYERS];
Onda stavi dole nesto[playerid] = SetTimer..
Gdje killas timer upisi KillTimer(nesto[playerid]...
Ne razumem zasto mi govoris i pokazujes tajmere??
Ali ako si mislio da preko tajmera ucitavam [pawn]LoadCars [/pawn]onda bolje nemoj lupetati...
Sve jedno probao sam i sa tajmerima al to nevalja... :'(
Zna li neko?
//
Prvo odakle ti pravo da me vredjas!
Drugo to sam jos pre probao i isto bude...
Zna li iko?
Reseno ;D. Uradio sam novi system ucitavanja ...
lock onda..