Naslov problema*: Imam problem sa dialogom za kupovinu vozila i ako odustane neće da ga izbaci iz tog izložbenog vozila
Opis problema*: Napravio sam car ownership sistem tako da kad netko uđe u izložbeno vozilo da kupi takav model vozila da mu se stvori to vozilo negdje na mapi i kad kliknem dugme Izadji ako ne želim kupiti taj model tj vozilo nešto neće da ga izbaci iz vozila
Pokušaj rešavanja*: Probavao sam sa tajmerom, i probao sam sa test komandom /izbaci i sa komandom radi, a u dialogu neće i sa tajmerom isto neće
Deo programskog koda*: https://pastebin.com/cPXicBjS
Debug informacije: //
Fotografija problema u igri: Nemam šta slikat, opisao sam problem detaljno
Korišćene biblioteke (includes): //
Dodatne informacije: //
Problem sa dialogom
Ja sam Ivo Dev, bager koji razgrće sve oko skripti – poznat i kao Zbager
asterix__ wrote on February 25, 2026, 3:19 pm:
if (!response) return 1; probaj ovo izbrisat jer mozda blokira "izadji" dugme , nadam se da cu pomoci
Hvala puno, to je bio problem
Ja sam Ivo Dev, bager koji razgrće sve oko skripti – poznat i kao Zbager
Ovako, sad imam novi problem, a to je da mi se vozila spawnaju na cestu, a postavio sam pozicije da se spawnaju u auto salonu
Evo kod i za to
//ongamemodeinit
for(new i = 0; i < sizeof(SalonVozila); i++) {
IzlozbenoVoziloID[i] = CreateVehicle(SalonVozila[i][sModel], SalonVozila[i][sPos][0], SalonVozila[i][sPos][1], SalonVozila[i][sPos][2], SalonVozila[i][sPos][3], 1, 1, -1);
// Isključujemo motor i zaključavamo ih da ih niko ne ukrade iz salona
new engine, lights, alarm, doors, bonnet, boot, objective;
GetVehicleParamsEx(IzlozbenoVoziloID[i], engine, lights, alarm, doors, bonnet, boot, objective);
SetVehicleParamsEx(IzlozbenoVoziloID[i], 0, 0, 0, 0, 0, 0, 0);
}
Ja sam Ivo Dev, bager koji razgrće sve oko skripti – poznat i kao Zbager
printf("(debug) X:%f Y:%f Z:%f A:%f", SalonVozila[i][sPos][0], SalonVozila[i][sPos][1], SalonVozila[i][sPos][2], SalonVozila[i][sPos][3])Dodaj iznad ovog createvehicle, takodje pokazi dio gdje cuvas SalonVozila[][sPos]
cozmic wrote on February 25, 2026, 6:34 pm:
printf("(debug) X:%f Y:%f Z:%f A:%f", SalonVozila[i][sPos][0], SalonVozila[i][sPos][1], SalonVozila[i][sPos][2], SalonVozila[i][sPos][3])Dodaj iznad ovog createvehicle, takodje pokazi dio gdje cuvas SalonVozila[][sPos]
Evo kako ih čuvam
new const SalonVozila[][E_SALON_DATA] = {
// model vozila, kordinate
{411, 80000, {549.3542, -1300.8442, 17.2441, 50.0000}}, // Infernus
{451, 100000, {556.1297, -1300.7637, 17.2441, 50.0000}}, // Turismo
{506, 150000, {563.7747, -1300.7983, 17.2441, 50.0000}}, // SuperGT
{559, 200000, {527.9250, -1300.9512, 17.2441, -50.0000}}, // Jester
{560, 250000, {520.5528, -1300.7878, 17.2441, -50.0000}}, // Sultan
{562, 300000, {535.0543, -1300.9180, 17.2441, -50.0000}} // Elegy
};
Ja sam Ivo Dev, bager koji razgrće sve oko skripti – poznat i kao Zbager
cozmic wrote on February 25, 2026, 6:34 pm:
printf("(debug) X:%f Y:%f Z:%f A:%f", SalonVozila[i][sPos][0], SalonVozila[i][sPos][1], SalonVozila[i][sPos][2], SalonVozila[i][sPos][3])Dodaj iznad ovog createvehicle, takodje pokazi dio gdje cuvas SalonVozila[][sPos]
Stvar je u tome što se nekad dobro spawnaju, a nekad kao da ih ludilo uhvati
Ja sam Ivo Dev, bager koji razgrće sve oko skripti – poznat i kao Zbager
cozmic wrote on February 25, 2026, 7:16 pm:
Pošalji e_salon_data a i dodaj to i pošalji output
enum E_SALON_DATA {
sModel,
sCijena,
Float:sPos[4] // X, Y, Z, Angle
}[19:57:04] (debug) X:549.354187 Y:-1300.844238 Z:17.244100 A:50.000000
[19:57:04] (debug) X:556.129699 Y:-1300.763671 Z:17.244100 A:50.000000
[19:57:04] (debug) X:563.774719 Y:-1300.798339 Z:17.244100 A:50.000000
[19:57:04] (debug) X:527.924987 Y:-1300.951171 Z:17.244100 A:-50.000000
[19:57:04] (debug) X:520.552795 Y:-1300.787841 Z:17.244100 A:-50.000000
[19:57:04] (debug) X:535.054321 Y:-1300.917968 Z:17.244100 A:-50.000000
Sada je okej, al kasnije kad odem /q i kada ponovno uđem na server nekada se pojebe s oproštenjem na izrazu
Ja sam Ivo Dev, bager koji razgrće sve oko skripti – poznat i kao Zbager
Vjerovatno ti je uzrok redoslijed vozila se kreiraju PRIJE nego što su SalonVozila[i][sPos] uopće učitani.
Prvo ucitaj/init SalonVozila
LoadSalonVozila(); // ili kako god Onda kreiraj vozila
for (new i = 0; i < sizeof(SalonVozila); i++) {
IzlozbenoVoziloID[i] = CreateVehicle(
SalonVozila[i][sModel],
SalonVozila[i][sPos][0],
SalonVozila[i][sPos][1],
SalonVozila[i][sPos][2],
SalonVozila[i][sPos][3],
1, 1, -1
);
new engine, lights, alarm, doors, bonnet, boot, objective;
GetVehicleParamsEx(IzlozbenoVoziloID[i], engine, lights, alarm, doors, bonnet, boot, objective);
SetVehicleParamsEx(IzlozbenoVoziloID[i], 0, 0, 0, 0, 0, 0, 0);
}
Ako i dalje bude problem, probaj kreirati vozila s malom odgodom (svijet se potpuno učita):
U OnGameModeInit, umjesto direktno for petlje:
SetTimer("CreateSalonVehicles", 1500, false);Nova funkcija negdje u kodu dodaj
forward CreateSalonVehicles();
public CreateSalonVehicles() {
for (new i = 0; i < sizeof(SalonVozila); i++) {
IzlozbenoVoziloID[i] = CreateVehicle(SalonVozila[i][sModel], SalonVozila[i][sPos][0], SalonVozila[i][sPos][1], SalonVozila[i][sPos][2], SalonVozila[i][sPos][3], 1, 1, -1);
new engine, lights, alarm, doors, bonnet, boot, objective;
GetVehicleParamsEx(IzlozbenoVoziloID[i], engine, lights, alarm, doors, bonnet, boot, objective);
SetVehicleParamsEx(IzlozbenoVoziloID[i], 0, 0, 0, 0, 0, 0, 0);
}
}
Ako se i dalje nešto pobrka provjeri da u OnPlayerConnect / OnPlayerDisconnect NE unistavas i NE ponovo ne kreiraš izložbena vozila (IzlozbenoVoziloID) jer ta vozila kreiraš samo jednom u OnGameModeInit.
sparrowww.aMx wrote on February 25, 2026, 8:26 pm:
Vjerovatno ti je uzrok redoslijed vozila se kreiraju PRIJE nego što su SalonVozila[i][sPos] uopće učitani.
Prvo ucitaj/init SalonVozila
LoadSalonVozila(); // ili kako god Onda kreiraj vozila
for (new i = 0; i < sizeof(SalonVozila); i++) {
IzlozbenoVoziloID[i] = CreateVehicle(
SalonVozila[i][sModel],
SalonVozila[i][sPos][0],
SalonVozila[i][sPos][1],
SalonVozila[i][sPos][2],
SalonVozila[i][sPos][3],
1, 1, -1
);
new engine, lights, alarm, doors, bonnet, boot, objective;
GetVehicleParamsEx(IzlozbenoVoziloID[i], engine, lights, alarm, doors, bonnet, boot, objective);
SetVehicleParamsEx(IzlozbenoVoziloID[i], 0, 0, 0, 0, 0, 0, 0);
}
Ako i dalje bude problem, probaj kreirati vozila s malom odgodom (svijet se potpuno učita):
U OnGameModeInit, umjesto direktno for petlje:
SetTimer("CreateSalonVehicles", 1500, false);Nova funkcija negdje u kodu dodaj
forward CreateSalonVehicles();
public CreateSalonVehicles() {
for (new i = 0; i < sizeof(SalonVozila); i++) {
IzlozbenoVoziloID[i] = CreateVehicle(SalonVozila[i][sModel], SalonVozila[i][sPos][0], SalonVozila[i][sPos][1], SalonVozila[i][sPos][2], SalonVozila[i][sPos][3], 1, 1, -1);
new engine, lights, alarm, doors, bonnet, boot, objective;
GetVehicleParamsEx(IzlozbenoVoziloID[i], engine, lights, alarm, doors, bonnet, boot, objective);
SetVehicleParamsEx(IzlozbenoVoziloID[i], 0, 0, 0, 0, 0, 0, 0);
}
}Ali vidio si da ja učitavam vozila preko new zato sam u for petlju stavio SalonVozila
Ja sam Ivo Dev, bager koji razgrće sve oko skripti – poznat i kao Zbager
Dobro da ali problem moze biti da u OnGameModeInit CreateVehicle zovne dok svijet jos nije skroz ucitan pa ti je rjesenje da izlozbena vozila kreiraj iz timera nakon par sec
pa onda umjesto umjesto for petlje stavi samo SetTimer("CreateSalonVehicles", 1500, false);
OnGameModeInit se ne izvodi ponovo kad se igrac vrati izlozbena vozila ostaju.
Ali provjeri da u OnPlayerConnect i OnPlayerDisconnect NIGDJE ne unistavas i ne kreiraš iznova IzlozbenoVoziloID,ta vozila samo u Init (ili u tom timeru) jednom. Ako negdje imas DestroyVehicle(IzlozbenoVoziloID[i]) ili opet CreateVehicle za salon kad se netko spoji/odspoji, to moze napraviti haos.
Takoder kad ucitavas igracu njegova kupljena vozila (pri loginu), CreateVehicle za njih mora koristiti VehicleData[id][vPos] ucitane iz savea, ne fiksne brojeve inace ce mu se auti spawnati na krivom mjestu kad se vrati.
sparrowww.aMx wrote on February 25, 2026, 9:00 pm:
Dobro da ali problem moze biti da u OnGameModeInit CreateVehicle zovne dok svijet jos nije skroz ucitan pa ti je rjesenje da izlozbena vozila kreiraj iz timera nakon par sec
pa onda umjesto umjesto for petlje stavi samo SetTimer("CreateSalonVehicles", 1500, false);
OnGameModeInit se ne izvodi ponovo kad se igrac vrati izlozbena vozila ostaju.
Ali provjeri da u OnPlayerConnect i OnPlayerDisconnect NIGDJE ne unistavas i ne kreiraš iznova IzlozbenoVoziloID,ta vozila samo u Init (ili u tom timeru) jednom. Ako negdje imas DestroyVehicle(IzlozbenoVoziloID[i]) ili opet CreateVehicle za salon kad se netko spoji/odspoji, to moze napraviti haos.
Takoder kad ucitavas igracu njegova kupljena vozila (pri loginu), CreateVehicle za njih mora koristiti VehicleData[id][vPos] ucitane iz savea, ne fiksne brojeve inace ce mu se auti spawnati na krivom mjestu kad se vrati.
Napravio sam kroz tajmer kako si mi rekao i za sada nema problema, ako bude javit ću ti se
Ja sam Ivo Dev, bager koji razgrće sve oko skripti – poznat i kao Zbager
iv0dev wrote on February 25, 2026, 9:20 pm:
sparrowww.aMx wrote on February 25, 2026, 9:00 pm:
Dobro da ali problem moze biti da u OnGameModeInit CreateVehicle zovne dok svijet jos nije skroz ucitan pa ti je rjesenje da izlozbena vozila kreiraj iz timera nakon par sec
pa onda umjesto umjesto for petlje stavi samo SetTimer("CreateSalonVehicles", 1500, false);
OnGameModeInit se ne izvodi ponovo kad se igrac vrati izlozbena vozila ostaju.
Ali provjeri da u OnPlayerConnect i OnPlayerDisconnect NIGDJE ne unistavas i ne kreiraš iznova IzlozbenoVoziloID,ta vozila samo u Init (ili u tom timeru) jednom. Ako negdje imas DestroyVehicle(IzlozbenoVoziloID[i]) ili opet CreateVehicle za salon kad se netko spoji/odspoji, to moze napraviti haos.
Takoder kad ucitavas igracu njegova kupljena vozila (pri loginu), CreateVehicle za njih mora koristiti VehicleData[id][vPos] ucitane iz savea, ne fiksne brojeve inace ce mu se auti spawnati na krivom mjestu kad se vrati.
Napravio sam kroz tajmer kako si mi rekao i za sada nema problema, ako bude javit ću ti se
Nadamo se da ih neće biti 🙂
Morate biti prijavljeni da biste odgovorili na ovu temu.
Prijava