GreenZone


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

prethodna tema - sledeća tema

0 članova i 2 gostiju 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:
#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}
};

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


OnPlayerEnterDynamicArea

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"
}


OnPlayerLeaveDynamicArea
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"
}

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

OnPlayerKeyStateChange
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.
}



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