GreenZone

Započeo TarikBrt, April 14, 2020, 01:51:24 PRE PODNE

prethodna tema - sledeća tema

0 članova i 1 gost pregledaju ovu temu.

Pozdrav svima, kao sto vidite po naslavu u ovom tutorijalu cu vam pokazati kako da napravite GreenZone za vas server.
Sistem nece biti dinamican ali u principu sve sto treba uradit je spremit ovo u bazu/fajl i ucitat pri pokretanju GM i eto dinamican je hehe.

Potrebno: STREAMER


Na vrhu skripte:
[pawn]

#define MAX_GZ (3)

new arGZ[MAX_GZ]; //kreiramo array za dinamicne area-e
new inGZ[MAX_PLAYERS char]; //kreiramo varijablu za provjeru da li je igrac u GZ

static const Float:greenzones[3][4] =
{
   {1422.2109, -1584.8275, 1568.6517, -1879.5209}, // ja sam koristio sve iste koordinate samo zbog tutoriala
   {1422.2109, -1584.8275, 1568.6517, -1879.5209}, // koordinate unosite u formatu minx, miny, maxx, maxy
   {1422.2109, -1584.8275, 1568.6517, -1879.5209}
};
[/pawn]

OnGameModeInit:
[pawn]
for(new i = 0; i < MAX_GZ; i++)
{
     arGZ = CreateDynamicRectangle(greenzones
  • , greenzones[1], greenzones[2], greenzones[3]); //kreiramo dinamicne area-a ( pravougaonike u formatu minx, miny, maxx, maxy )
    }
    [/pawn]
OnPlayerEnterDynamicArea

[pawn]
if(arGZ[0] <= areaid <= arGZ[MAX_GZ-1]) //provjera da li je igrac usao u nasu greenzonu
{
   inGZ{playerid} = 1; //ukoliko je usao postavljamo vrijednost varijable na "1"
}
[/pawn]

OnPlayerLeaveDynamicArea
[pawn]
if(arGZ[0] <= areaid <= arGZ[MAX_GZ-1])//provjera da li je igrac izasao iz GreenZone
{
   inGZ{playerid} = 0;//ukoliko je izasao postavljamo vrijednost varijable na "0"
}
[/pawn]

OnPlayerDisconnect
[pawn]
   inGZ{playerid} = 0; //resetovanje varijable na 0 kada se igrac diskonektuje
[/pawn]

OnPlayerKeyStateChange
[pawn]
if((newkeys & KEY_FIRE) || ((newkeys & 128) && (oldkeys & 128) && (newkeys & KEY_SECONDARY_ATTACK))) //provjera da li je igrac pritisnuo lijevi klik ili desni klik + f
{
     if(inGZ{playerid} && GetPlayerState(playerid) == PLAYER_STATE_ONFOOT) return SCM(playerid, -1, !"INFO: Nasilje je zabrenjeno u GreenZonama."); //ukoliko je igrac pritisnuo lijevi klik ili desni klik + f i ukoliko mu je varijabla inGZ na "1" znaci da je u greenzoni u tom slucaju saljemo mu obavijest, vi mozete da mu oduzmete oruzije ili nesto slicno.
}
[/pawn]



To bi bilo to, nista posebno, a veoma efikasno i potrebno svakom serveru. Pogotovo na lokacijama poslova, opstina, spawna itd...

Lep tutorijal, ali izgleda da ovde sta god objavio korisno svi ce gledati nesto starije tamo i nekorisno..

Citat: Emmett poslato April 14, 2020, 05:00:47 PRE PODNE
Lep tutorijal, ali izgleda da ovde sta god objavio korisno svi ce gledati nesto starije tamo i nekorisno..
Bitni su dobri TD-ovi ;D


Super tutorial, lepo objasnjeno

Lijepo, korisatan tutorijal :D