Map Zones

Započeo Osamu Dazai, Avgust 20, 2019, 15:51:51 POSLE PODNE

prethodna tema - sledeća tema

0 članova i 1 gost pregledaju ovu temu.

- Map Zones -


Å ta je Map Zones library?
Ovaj library ne donosi niÅ¡ta Å¡to već nije viÄ'eno, razlog kreiranja ovog include-a je da se zavrÅ¡i era loÅ¡ih navika vezana za map zones.
Array od ~350 zona koji je verovatno manualno konvertovan iz igre je tu već duže vreme, ali do sada nije viÄ'en ni jedan način koji ispunjava uslove savremenog PAWN skriptanja.


Zašto Map Zones library?

  • Brže.
  • Sigurnije.
  • Bez bagova.


Kako se Map Zones koristi?
Naravno, idemo kroz primere :)
[pawn]CMD:gdesenalazim(playerid) //Credits: Kristo
{
    new MapZone:zone = GetPlayerMapZone(playerid); // Uzima zonu u kojoj se igrač nalazi

    if (zone == INVALID_MAP_ZONE_ID)
        return SendClientMessage(playerid, 0xFFFFFFFF, "Verovatno u okeanu :D");

    new name[MAX_MAP_ZONE_NAME], soundid;
    GetMapZoneName(zone, name); // Uzima ime zone, zone id smo dobili u prvoj funkciji gore
    GetMapZoneSoundID(zone, soundid); // Fun Fact: Ne znam da li ste zvali ali svaka zona u GTA:SA ima svoj zvuk :D

    new string[24 + MAX_MAP_ZONE_NAME]; // MAX_MAP_ZONE_NAME je 27
    format(string, sizeof(string), "Vi ste u \"%s\"", name); //Vi ste u "Bayside Tunnel" (primer)

    SendClientMessage(playerid, 0xFFFFFFFF, string);
    PlayerPlaySound(playerid, soundid, 0.0, 0.0, 0.0);
    return 1;
}[/pawn]
Naravno, ovo nije sve...


Da li je moguće uzeti zonu koordinata 2D/3D?
Naravno da jeste, da nije - ovo sada ne bi ste čitali :')

[pawn]
new MapZone:zone = GetMapZoneAtPoint(Float:x, Float:y, Float:z);
// Uzima koordinate x,y,z pozicije, zone varijablu posle koristite kao
// u primeru iznad ovog (za igraca).

new MapZone:zone = GetVehicleMapZone(vehicleid);
// Uzima zonu u kojoj se vozilo nalazi.

new MapZone:zone = GetMapZoneAtPoint2D(Float:x, Float:y);
// Uzima zonu za 2D koordinate (ne uzima u obzir visinu koordinata).

new MapZone:zone = GetVehicleMapZone2D(vehicleid);
// Uzima 2D koordinate vozila i njegovu zonu.

GetMapZoneName(MapZone:id, name[], size = sizeof(name));
// Uzima ime od zone ciji ste ID prethodno pronašli pomoću nekih funkcija od gore.

GetMapZoneSoundID(MapZone:id, &soundid);
// Uzima zvuk koji je u GTA podešen za ID zone koju ste prethodno pronašli ^.

GetMapZoneAreaCount(MapZone:id, &count);
// Uzima broj svih Area koje su vezane za tu zonu.

GetMapZoneAreaPos(MapZone:id, &Float:minX = 0.0, &Float:minY = 0.0, &Float:minZ = 0.0, &Float:maxX = 0.0, &Float:maxY = 0.0, &Float:maxZ = 0.0, start = 0);
// Vraca koordinate od aree koja je vezana za zonu (MapZone:id).

GetMapZoneCount();
// Vraca koliko zona postoji u array-u, može se koristiti za iteratore.[/pawn]


To je to?
Da, to bi bilo  to, ali naravno i Vi možete dodati svoje funkcije i proÅ¡iriti ovaj include, primer:

[pawn]stock MapZone:GetPlayerOutsideMapZone(playerid) // Credits: Kristo
{
   new House:houseid = GetPlayerHouseID(playerid), Float:x, Float:y, Float:z;

   if (houseid != INVALID_HOUSE_ID) // ako je igrac unutar kuce, uzmi koordinate exteriora te kuce
   {
      GetHouseExteriorPos(houseid, x, y, z);
   }
   else if (!GetPlayerPos(playerid, x, y, z)) // Igrač nije konektovan, funkcija vraća INVALID_MAP_ZONE_ID
   {
      return INVALID_MAP_ZONE_ID;
   }

   return GetMapZoneAtPoint(x, y, z);
}[/pawn]


My tutorials: y_inline & y_dialog, Ternary Operator, y_flooding, y_bit, samp-logger, Pawn Plus I Deo ( Dynamic Strings ), Map Zones, TextDraw Buttons, y_iterate, easyDialog, samp-plugin-timerfix
My includes: TextDraw Buttons


Respect: Bunta, Vedran, Ivan Bagarić, Itz.Yansi, Rade Ćurić (ni ja ne verujem)
Biggest respect goes to: ADRFranklin


Citat: Vodka PlayObožavam te "skriptere" koji probleme rešavaju tako što menjaju mod svaka 2 dana, tako će sigurno naučiti.
Neko im nacrta u temi Å¡ta treba uraditi, al' ne vredi nisu svi za skriptanje.


My tutorials: y_inline & y_dialog, Ternary Operator, y_flooding, y_bit, samp-logger, Pawn Plus I Deo ( Dynamic Strings ), Map Zones, TextDraw Buttons, y_iterate, easyDialog, samp-plugin-timerfix
My includes: TextDraw Buttons


Respect: Bunta, Vedran, Ivan Bagarić, Itz.Yansi, Rade Ćurić (ni ja ne verujem)
Biggest respect goes to: ADRFranklin


Citat: Vodka PlayObožavam te "skriptere" koji probleme rešavaju tako što menjaju mod svaka 2 dana, tako će sigurno naučiti.
Neko im nacrta u temi Å¡ta treba uraditi, al' ne vredi nisu svi za skriptanje.

Vidjio sam ovo na burgeru, fino odraÄ'eno, nema Å¡ta

konacno neko nesto korisno objavljuje a da je pocetnik na forumu.. (nije bas al mozete se rec)

TIIIIIRRRRRRUUUUUU RIIIIIIIIIIIIIIIII RUUUUUUUUUUUUU

Citat: mumitza. poslato Avgust 20, 2019, 16:35:14 POSLE PODNE
Vidjio sam ovo na burgeru, fino odraÄ'eno, nema Å¡ta
Kristo idiot :P

Citat: Fqris poslato Avgust 20, 2019, 16:51:45 POSLE PODNE
konacno neko nesto korisno objavljuje a da je pocetnik na forumu.. (nije bas al mozete se rec)
haha Hvala :D
My tutorials: y_inline & y_dialog, Ternary Operator, y_flooding, y_bit, samp-logger, Pawn Plus I Deo ( Dynamic Strings ), Map Zones, TextDraw Buttons, y_iterate, easyDialog, samp-plugin-timerfix
My includes: TextDraw Buttons


Respect: Bunta, Vedran, Ivan Bagarić, Itz.Yansi, Rade Ćurić (ni ja ne verujem)
Biggest respect goes to: ADRFranklin


Citat: Vodka PlayObožavam te "skriptere" koji probleme rešavaju tako što menjaju mod svaka 2 dana, tako će sigurno naučiti.
Neko im nacrta u temi Å¡ta treba uraditi, al' ne vredi nisu svi za skriptanje.

Citat: imnaithan poslato Avgust 21, 2019, 00:58:52 PRE PODNE
Gledam ovo i isto se osecam kao neko ko bi uzeo da radi muziku bez ikakvog znanja... Valjda zato nisam skripter niti se bavim time , ako kazu svi da je dobro , slazem se i ja  8)




Give Honor To The One Who Deserve It





My tutorials: y_inline & y_dialog, Ternary Operator, y_flooding, y_bit, samp-logger, Pawn Plus I Deo ( Dynamic Strings ), Map Zones, TextDraw Buttons, y_iterate, easyDialog, samp-plugin-timerfix
My includes: TextDraw Buttons


Respect: Bunta, Vedran, Ivan Bagarić, Itz.Yansi, Rade Ćurić (ni ja ne verujem)
Biggest respect goes to: ADRFranklin


Citat: Vodka PlayObožavam te "skriptere" koji probleme rešavaju tako što menjaju mod svaka 2 dana, tako će sigurno naučiti.
Neko im nacrta u temi Å¡ta treba uraditi, al' ne vredi nisu svi za skriptanje.