Balkan SA:MP

PAWN skriptanje, gamemodovi, filterskripte, include fajlovi, mape, pluginovi => Razgovor u vezi PAWN - skriptanja => Temu započeo: fiu poslato Maj 11, 2020, 19:38:42 POSLE PODNE

Naslov: CMD org VEH
Poruka od: fiu poslato Maj 11, 2020, 19:38:42 POSLE PODNE
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):
Naslov: Odg: CMD org VEH
Poruka od: $kunky poslato Maj 11, 2020, 21:01:13 POSLE PODNE
Ne razumem te tacno sta hoceshttps://pastebin.com/TVBRjZkv
Naslov: Odg: CMD org VEH
Poruka od: fiu poslato Maj 11, 2020, 21:39:49 POSLE PODNE
[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
Naslov: Odg: CMD org VEH
Poruka od: 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 ?
Naslov: Odg: CMD org VEH
Poruka od: TheToretto poslato Maj 13, 2020, 19:39:15 POSLE PODNE
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 :)
Naslov: Odg: CMD org VEH
Poruka od: fiu poslato Maj 13, 2020, 20:41:01 POSLE PODNE
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
Naslov: Odg: CMD org VEH
Poruka od: fiu poslato Maj 16, 2020, 19:52:47 POSLE PODNE
bump niko li nezna
Naslov: Odg: CMD org VEH
Poruka od: 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
Naslov: Odg: CMD org VEH
Poruka od: fiu poslato Maj 16, 2020, 21:36:50 POSLE PODNE
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 ??
Naslov: Odg: CMD org VEH
Poruka od: MEDO poslato Maj 16, 2020, 22:49:36 POSLE PODNE
Č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]
Naslov: Odg: CMD org VEH
Poruka od: 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
Naslov: Odg: CMD org VEH
Poruka od: MEDO poslato Maj 17, 2020, 00:11:48 PRE PODNE
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
Naslov: Odg: CMD org VEH
Poruka od: Slade poslato Maj 18, 2020, 12:30:05 POSLE PODNE
Aj pošalji /createorgveh komandu
Naslov: Odg: CMD org VEH
Poruka od: fiu poslato Maj 18, 2020, 16:37:10 POSLE PODNE
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]
Naslov: Odg: CMD org VEH
Poruka od: Slade poslato Maj 18, 2020, 18:25:59 POSLE PODNE
NextOrgVehID isto
Naslov: Odg: CMD org VEH
Poruka od: fiu poslato Maj 18, 2020, 22:58:36 POSLE PODNE
Citat: Slade poslato Maj 18, 2020, 18:25:59 POSLE PODNE
NextOrgVehID isto
ne radi kako gde da dodam to ? mislim kako da uredim
Naslov: Odg: CMD org VEH
Poruka od: Slade poslato Maj 18, 2020, 23:18:27 POSLE PODNE
NextOrgVehID stock posalji
Naslov: Odg: CMD org VEH
Poruka od: fiu poslato Maj 18, 2020, 23:26:39 POSLE PODNE
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 ?
Naslov: Odg: CMD org VEH
Poruka od: Slade poslato Maj 18, 2020, 23:37:16 POSLE PODNE
[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.
Naslov: Odg: CMD org VEH
Poruka od: fiu poslato Maj 19, 2020, 00:24:14 PRE PODNE
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]
Naslov: Odg: CMD org VEH
Poruka od: Slade poslato Maj 19, 2020, 11:59:27 PRE PODNE
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]
Naslov: Odg: CMD org VEH
Poruka od: fiu poslato Maj 19, 2020, 16:44:28 POSLE PODNE
after long long time, hvala vam puno, lock sredeno <3
Naslov: Odg: CMD org VEH
Poruka od: Slade poslato Maj 19, 2020, 21:55:28 POSLE PODNE
nnc, lockaj temu