Problem(error/warning): ovako uradio sam admin da kreira vozilo za org, primer /createorgveh id org, id vozila e sad to kreira u posebnu papku organizacijskivozila kako da uradim da moze lider da koristi /orgveh komandu ? da identifikuje id vozila i koji org id je ta vozila zato sto u papku su 1 2 3 4 5 ..... vozila ids, jel moze neko da mi posalje komanda kako bi izgledala ?
Dio skripte:
Debug iz server_log(ukoliko je u pitanju crashanje servera - crashdetect log):
Slika/video ingame problema(obavezno ako je ingame problem):
Ne razumem te tacno sta hoceshttps://pastebin.com/TVBRjZkv
[pawn] INI_WriteInt(File, "Organizacija_ID", OrgVehInfo[ id ][ ovOrgID ]);[/pawn]
eto to je kod mene organizacija_ID sad hocu da udje u vozilo i koristi komandu /orgvehicle da identifikuje ID vozila koji vozi i ciji je ORG sopstvenik, ukoliko nije clan te org da nemoze da upravljuje sa to vozilo, to nisam mogo da resim da identifikuje organizacija_id i plider pclan ko moze da vozi org vozilo i primer ta komanda da nemoze da koristi u drugo vozilo osvin u osobno org vozilo gde je invite
zar niko nezna da mi kaze kako da uradim OrgVozilo/id.txt da pronadje kad ide /orgveh cije org vozilo je i dali je taj igrac u ta org da koristi ta komanda na to vozilo ?
Citat: fiu poslato Maj 13, 2020, 15:45:13 POSLE PODNE
zar niko nezna da mi kaze kako da uradim OrgVozilo/id.txt da pronadje kad ide /orgveh cije org vozilo je i dali je taj igrac u ta org da koristi ta komanda na to vozilo ?
Ne znas pitanje postaviti, kreni ispocetka :)
Citat: TheToretto poslato Maj 13, 2020, 19:39:15 POSLE PODNE
Ne znas pitanje postaviti, kreni ispocetka :)
org vozila kreira admin - id vozila / id org
kreira se vozilo napravi file id.txt u vozilaorg papku
hocu da lider clan primer grove banda da moze /voziloorg da moze otkluci/zakluci vozilo ali problem je u tome sto neznam kako da uradim da moze samo na vozilo sta je od grove da uradi to a ne na ostalih, zato sto vozila nisu u pawno addveh nego u papku :D jel me sad razumes
bump niko li nezna
Pa lijepo staviš neki indetifikator te organizacije unutar vozilo fajla.
Npr unutar Vozilo_1.ini imas nesto tipa orgID = 10 i kad igrac pokusa da koristi komandu /orglock provjeriš da li se orgID tog vozila poklapa sa orgIDom tog korisnika.
Vrlo jednostavno za napraviti
Citat: MEDO poslato Maj 16, 2020, 20:57:21 POSLE PODNE
Pa lijepo staviš neki indetifikator te organizacije unutar vozilo fajla.
Npr unutar Vozilo_1.ini imas nesto tipa orgID = 10 i kad igrac pokusa da koristi komandu /orglock provjeriš da li se orgID tog vozila poklapa sa orgIDom tog korisnika.
Vrlo jednostavno za napraviti
ako mozes da mi posaljes samo kod kako bi izgledalo to od pocetka do kraja nemora sve samo to ??
Čuj to od početka do kraja, ali ne mora sve. :D :D
Nešto ovako
https://wiki.sa-mp.com/wiki/GetPlayerVehicleID
https://wiki.sa-mp.com/wiki/GetPlayerPos
[pawn]
CMD:orgpark(playerid, params[])
{
new vehicle, Float:cord[4];
vehicle = GetPlayerVehicleID(playerid); // Dobijes ID vozila u kojem se igrac nalazi
if(voziloInfo[vehicle][orgId] != PlayerInfo[playerid][orgId]) return SendClientMessage(playerid, 0xffffff, "Vozilo pripada drugoj orgi"); // Provjerava da li je orgId od tog vozila i igracev orgid isti, ako nije izbaci mu poruku.
GetPlayerPos(playerid, x, y, z);
//Ovdje cuvas vozilo sa novim koordinatama, nesto ovog tipa, nakon toga unistis vozilo, kreiras na novim koordinatama i to ti je sva politika
voziloInfo[vehicle]
- = cord[0];
}
[/pawn]
Samo moras da prilagodis sebi to gore, varijable, kreiranje vozila, dobijanje ID i tih stvari jer sve ovisi od skripte do skripte
[pawn]
CMD:orgvehcmd(playerid, params[])
{
new vehicle;
vehicle = GetPlayerVehicleID(playerid);
if(LoginCheck[playerid] == 0) return GRESKA(playerid, "Moras se ulogovati da bi koristio ovu komandu.");
if(!IsPlayerInAnyVehicle(playerid)) return GRESKA(playerid, "Niste u ni jedno vozilo.");
if(OrgVehInfo[vehicle][ovOrgID] != PLAYER_ENUM[playerid][pClan]) return GRESKA(playerid, "Ovo vozilo nije na vasu fakciju.");
if(!MafijaClan(playerid))
{
GRESKA(playerid, "Niste clan na ni jednu mafiju.");
}
else
{
g_SPD(playerid, DIALOG_ORGVOZILO, DIALOG_STYLE_LIST, "Org Vehicle", "Otkljuci vozilo/Zakljuci vozilo", "Izaberi", "Izlaz");
}
return 1;
}
[/pawn]
u cemu je problem ne izbacuje nisto, kaze da nisi u vozila i sad udjem u to vozilo, kad udjem nista ne izbacuje ni dijalog ni nista
Citat: fiu poslato Maj 16, 2020, 23:11:31 POSLE PODNE
[pawn]
CMD:orgvehcmd(playerid, params[])
{
new vehicle;
vehicle = GetPlayerVehicleID(playerid);
if(LoginCheck[playerid] == 0) return GRESKA(playerid, "Moras se ulogovati da bi koristio ovu komandu.");
if(!IsPlayerInAnyVehicle(playerid)) return GRESKA(playerid, "Niste u ni jedno vozilo.");
if(OrgVehInfo[vehicle][ovOrgID] != PLAYER_ENUM[playerid][pClan]) return GRESKA(playerid, "Ovo vozilo nije na vasu fakciju.");
if(!MafijaClan(playerid))
{
GRESKA(playerid, "Niste clan na ni jednu mafiju.");
}
else
{
g_SPD(playerid, DIALOG_ORGVOZILO, DIALOG_STYLE_LIST, "Org Vehicle", "Otkljuci vozilo/Zakljuci vozilo", "Izaberi", "Izlaz");
}
return 1;
}
[/pawn]
u cemu je problem ne izbacuje nisto, kaze da nisi u vozila i sad udjem u to vozilo, kad udjem nista ne izbacuje ni dijalog ni nista
pa testiraj brate moj, izbaci neke stvari, izbaci sve osim toga dijalog pa ubacuj lagano stvari jednu po drugu i vidi gdje je problem.
iskreno, nemoj se naljutit, ali ne znam šta tražiš od programiranja, nece ti se sve samo uraditi i prikazati magično, moraš sjesi pa nekad provesti 10 sati na jednom problemu to tako ide,
ja sam ti iznad ostavio neki prosti primjer na koji bi nacin to islo, odradi nesto bez ikakvih provjera pa polako ubacuj stvari to tako funkcioniše
Aj pošalji /createorgveh komandu
Citat: Slade poslato Maj 18, 2020, 12:30:05 POSLE PODNE
Aj pošalji /createorgveh komandu
[pawn]
case DIALOG_ORGVEHC:
{
if(!response) return 1;
new oid, vehid, b1, b2, i = NextOrgVehID(MAX_ORGVEHS), Float:X, Float:Y, Float:Z, Float:A, ovFile[ 60 ];
if(sscanf(inputtext, "dddd", oid, vehid, b1, b2)) return ShowPlayerDialog(playerid, DIALOG_ORGVEHC, DIALOG_STYLE_INPUT, "ORG vozilo", "Unesite ID Organizacije, ID Vozila, Boju 1 i Boju 2.\nPrimer: 1 411 1 1","U redu","Izlaz");
format(ovFile, sizeof(ovFile), ORG_FILE, oid);
if(!fexist(ovFile)) return SCM(playerid, -1, "ID te organizacije ne postoji.");
if(vehid < 400 || vehid > 611) return SCM(playerid, -1, "ID Vozila : 400 - 611");
GetPlayerPos(playerid, X,Y,Z); GetPlayerFacingAngle(playerid, A);
OrgVehInfo[ i ][ ovID ] = CreateVehicle(vehid, X, Y, Z, A, b1, b2, -1);
OrgVehInfo[ i ][ ovModel ] = vehid;
OrgVehInfo[ i ][ ovBoja1 ] = b1;
OrgVehInfo[ i ][ ovBoja2 ] = b2;
OrgVehInfo[ i ][ ovOrgID ] = oid;
OrgVehInfo[ i ][ ovPosX ] = X;
OrgVehInfo[ i ][ ovPosY ] = Y;
OrgVehInfo[ i ][ ovPosZ ] = Z;
OrgVehInfo[ i ][ ovRotA ] = A;
TipVozila[ OrgVehInfo[ i ][ ovID ] ] = 1;
SaveOrgVeh(i);
PutPlayerInVehicle(playerid, OrgVehInfo[ i ][ ovID ], 0);
}
[/pawn]
NextOrgVehID isto
Citat: Slade poslato Maj 18, 2020, 18:25:59 POSLE PODNE
NextOrgVehID isto
ne radi kako gde da dodam to ? mislim kako da uredim
NextOrgVehID stock posalji
Citat: Slade poslato Maj 18, 2020, 23:18:27 POSLE PODNE
NextOrgVehID stock posalji
[pawn]
stock NextOrggVehID()
{
new id = -1;
for(new loop = (0), provjera = (-1), Data_[64] = "\0"; loop != MAX_ORGVEHS; ++ loop)
{
provjera = (loop + 1);
format(Data_, (sizeof Data_), ORGVEH_FILE, provjera);
if(!fexist(Data_))
{
id = (provjera);
break;
}
}
return id;
}[/pawn]
jel ovako ?
[pawn]GetOrgVehicleID(playerid) {
new vehicleid = GetPlayerVehicleID(playerid), id = -1;
if(!IsPlayerInAnyVehicle(playerid)) return id;
for(new i = 0; i < sizeof(OrgVehInfo); i++)
{
if(vehicleid == OrgVehInfo[ i ][ ovID ]) {
id = i;
break;
}
}
return id;
}
CMD:orgvlock(playerid, params[])
{
if(PLAYER_ENUM[playerid][pLider] == 0) return SendClientMessage(playerid, 0xF81414FF, "Nisi lider organizacije.");
new id = GetOrgVehicleID(playerid);
if(id == -1) return SendClientMessage(playerid, 0xF81414FF, "Niste u vozilu svoje organizacije.");
if(OrgVehInfo[id][ovOrgID] != PLAYER_ENUM[playerid][pLider]) return SendClientMessage(playerid, 0xF81414FF, "Niste u vozilu svoje organizacije.");
OrgVehInfo[id][ovLock] = (OrgVehInfo[id][ovLock] > 0) ? 0 : 1;
new string[50];
format(string, sizeof(string), "Vozilo %s.", (OrgVehInfo[id][ovLock] == 1) ? ("zakljucano") : ("otkljucano"));
SendClientMessage(playerid, -1, string);
return 1;
}[/pawn]
Eto, s tim da ne znam kako ti se u enumu vodi Lock vozila, ja sam stavio ovLock, prilagodi.
hvala sredio sam to al sad iskocio drugi problem, uradio sam park vozila i kad parkiram vozila daje ga tamo gde je kupljeno a ovo ne unistava vec stvori novo, o cemu je problem
[pawn] case DIALOG_ORGVOZILO:
{
if(!IsPlayerInAnyVehicle(playerid)) return GRESKA(playerid, "Niste u vozilo !!");
new id = GetOrgVehicleID(playerid);
if(id == -1) return GRESKA(playerid, "Niste u vozilo vase org.");
if(OrgVehInfo[id][ovOrgID] != PLAYER_ENUM[playerid][pLider]) return GRESKA(playerid, "Niste u vozilo vase org.");
new Float:vehPoz[4], Float:HP, engine, lights, alarm, doors, bonnet, boot, objective; GetVehicleHealth(GetPlayerVehicleID(playerid), HP);
if(HP < 400.0) return GRESKA(playerid, "Nemozes ga parkirati previse je osteceno.");
GetVehiclePos(OrgVehInfo[id][ovOrgID], vehPoz[0], vehPoz[1], vehPoz[2]);
GetVehicleZAngle(OrgVehInfo[id][ovOrgID], vehPoz[3]);
OrgVehInfo[id][ovPosX] = vehPoz[0];
OrgVehInfo[id][ovPosY] = vehPoz[1];
OrgVehInfo[id][ovPosZ] = vehPoz[2];
OrgVehInfo[id][ovRotA] = vehPoz[3];
DestroyVehicle(OrgVehInfo[id][ovOrgID]);
OrgVehInfo[id][ovOrgID] = CreateVehicle(OrgVehInfo[id][ovModel], OrgVehInfo[id][ovPosX], OrgVehInfo[id][ovPosY], OrgVehInfo[id][ovPosZ], OrgVehInfo[id][ovRotA], OrgVehInfo[id][ovBoja1], OrgVehInfo[id][ovBoja2], -1);
SetVehicleParamsEx(OrgVehInfo[id][ovOrgID], engine, lights, alarm, doors, bonnet, boot, objective);
TipVozila[OrgVehInfo[id][ovID]] = 1;
SaveOrgVeh(id);
PutPlayerInVehicle(playerid, OrgVehInfo[id][ovID], 0);
INFO2(playerid, "Parkirali ste organizacisko vozilo.");
}[/pawn]
VehPoz ti nije potreban, mozes direktno iz GetVehiclePos i Rotacije spremiti u vrijednost varijable.
Briše auto, ali neispravan ID, briše ti auto pod vrijednosti ovOrgID tog vozila, dakle ako vozilo pripada organizaciji id 3, brisat će ti auto id 3, nisi stavio ispravnu varijablu.
[pawn]case DIALOG_ORGVOZILO:
{
if(!IsPlayerInAnyVehicle(playerid)) return GRESKA(playerid, "Niste u vozilo !!");
new id = GetOrgVehicleID(playerid);
if(id == -1) return GRESKA(playerid, "Niste u vozilo vase org.");
if(OrgVehInfo[id][ovOrgID] != PLAYER_ENUM[playerid][pLider]) return GRESKA(playerid, "Niste u vozilo vase org.");
new Float:HP, engine, lights, alarm, doors, bonnet, boot, objective; GetVehicleHealth(GetPlayerVehicleID(playerid), HP);
if(HP < 400.0) return GRESKA(playerid, "Nemozes ga parkirati previse je osteceno.");
GetVehiclePos(OrgVehInfo[id][ovID], OrgVehInfo[id][ovPosX], OrgVehInfo[id][ovPosY], OrgVehInfo[id][ovPosZ]);
GetVehicleZAngle(OrgVehInfo[id][ovID], OrgVehInfo[id][ovRotA]);
DestroyVehicle(OrgVehInfo[id][ovID]);
OrgVehInfo[id][ovID] = CreateVehicle(OrgVehInfo[id][ovModel], OrgVehInfo[id][ovPosX], OrgVehInfo[id][ovPosY], OrgVehInfo[id][ovPosZ], OrgVehInfo[id][ovRotA], OrgVehInfo[id][ovBoja1], OrgVehInfo[id][ovBoja2], -1);
SetVehicleParamsEx(OrgVehInfo[id][ovID], engine, lights, alarm, doors, bonnet, boot, objective);
TipVozila[OrgVehInfo[id][ovID]] = 1;
SaveOrgVeh(id);
PutPlayerInVehicle(playerid, OrgVehInfo[id][ovID], 0);
INFO2(playerid, "Parkirali ste organizacisko vozilo.");
}[/pawn]
after long long time, hvala vam puno, lock sredeno <3
nnc, lockaj temu