PARTNERI:
-UPOZORENJE-

Samo registrovani članovi mogu da vide/koriste forum u celini.
Prijavite se ili registrujte nalog na Balkan SA-MP forumu.


Autor Tema: [Tutorial] Map Zones  (Pročitano 866 puta)

0 članova i 1 gost pregledaju ovu temu.

Van mreže Osamu Dazai

Map Zones
« poslato: Avgust 20, 2019, 15:51:51 posle podne »
- 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 :)
Pawno Code: [Izaberi]
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;
}
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 :')

Pawno Code: [Izaberi]
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.

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

Pawno Code: [Izaberi]
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);
}

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 Play
Obož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.
 
Korisnici koji su se zahvalili: M U M I X Z Λ

Na mreži //>> Vedran

Odg: Map Zones
« Odgovor #1 poslato: Avgust 20, 2019, 15:53:48 posle podne »
gj
 

Van mreže Osamu Dazai

Odg: Map Zones
« Odgovor #2 poslato: Avgust 20, 2019, 15:54:22 posle podne »
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 Play
Obož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.
 

Van mreže M U M I X Z Λ

  • Ne treba vjerovati ljudima s kojima smo se tek sprijateljili, a koji pokazuju da smo im draži od njihovih starih prijatelja – tako će se ponaÅ¡ati i s nama kada steknu nove prijatelje.
  • Godfather
  • *
  • Poruke: 10188
  • Broj zahvalnica: 904
Odg: Map Zones
« Odgovor #3 poslato: Avgust 20, 2019, 16:35:14 posle podne »
Vidjio sam ovo na burgeru, fino odrađeno, nema šta
 

Na mreži Fqris

Odg: Map Zones
« Odgovor #4 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)
TIIIIIRRRRRRUUUUUU RIIIIIIIIIIIIIIIII RUUUUUUUUUUUUU
 

Van mreže Osamu Dazai

Odg: Map Zones
« Odgovor #5 poslato: Avgust 20, 2019, 17:12:59 posle podne »
Vidjio sam ovo na burgeru, fino odrađeno, nema šta
Kristo idiot :P

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 Play
Obož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.
 

Van mreže imnaithan

Odg: Map Zones
« Odgovor #6 poslato: Avgust 21, 2019, 01:03:01 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



 

Van mreže Osamu Dazai

Odg: Map Zones
« Odgovor #7 poslato: Avgust 21, 2019, 01:05:46 pre podne »
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 Play
Obož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.