Lecție privind crearea de zone de bandă!

Bună tuturor, vă voi învăța să faceți zona de bandă cu captura
Și așa vom începe:
Pentru a începe, trebuie să faceți o comandă sau să spuneți TIM.
La început, scriem:

gTeam nou [MAX_PLAYERS]; // Aceasta este pentru diferența dintre un tim sau o bandă.






#defineți TEAM_BALLA_COLOR 0x80008096 // culoarea pentru echipa sau grupul dvs.
#define TEAM_GROVE 1 // numele echipei sau grupului! trebuie să specificați atunci când creați o nouă bandă numărul său, dacă doriți să creați o altă bandă, să zicem că balizele scriu astfel
#define TEAM_BALLA 2 // renumerotați întotdeauna

Acum, pentru grupul sau echipa ta, trebuie să faci piei (la care piei aparține care bandă)
În fotografiile publice.

public OnPlayerRequestClass (jucător, clasă)
<
dacă (classid == 5) // 5 este numărul de piele! Dar este necesar să numărăm de la zero
<
gTeam [playerid] = TEAM_GROVE; // Aici specificăm tipul de piele
GameTextForPlayer (playerid, "GROVE", 1000, 3); // Ei bine și texdrav pentru diferență
>
retirn 1;
>

De asemenea, repetăm ​​cu alte momente sau bande, așa cum este convenabil pentru dvs.

Acum continuați să faceți zona bandei!
Să facem o zonă pentru Groove Street.

Încă de la început le-am împins:

un nou cont de sumă [MAX_PLAYERS];
nou număr de angajați [MAX_PLAYERS];
#define REOWN_TURF 4
#define GANGAREA_WARNINGS 2
#define GANGAREA_TAKE 4
noul deal; // numele zonei sau teritoriului de capturat.

Acum introduceți următoarele.

publice OnGameModeInit ()
<
grove = GangZoneCreate (2197.193, -1887.144,2630.716, -1381.833); // grove - acesta este numele zonei dvs. la început, i-am indicat numele.
Parantezele indică (2197.193, -1887.144.2630.716, -1381.833)

2197.193 - minim pe X
-1887.144 - minimul de V
2630.716 - maxim X
-1381.833 - maximul Y

Pentru asta folosesc programul convenabil Xtreme Vehicle Plotter. Voi arăta mai târziu.
Pentru a vedea zonele de pe hartă în următorul tabel publicat mai jos: GangZoneShowForPlayer (playerid, grove, 0x24FF0AB9);

public OnPlayerConnect (playerid)
<
GangZoneShowForPlayer (playerid, grove, COLOR_GREEN); // astfel încât zonele să fie vizibile pe hartă. Grove - numele zonei în momentul în care facem canelura. și, prin urmare, culoarea acesteia. Este de dorit să indicați culoarea bandei dvs. pentru care faceți în mod curent groove.
retur 1;
>

Pentru ca atunci când alți jucători captează zona "zona de captură" care intermitentă, procedați în felul următor.

public OnPlayerDeath (playerid, killerid, motiv)
<
dacă (gTeam [killerid] == TEAM_GROVE) taketurfbackcount [killerid] ++;






dacă (taketurfbackcount [killerid] == REOWN_TURF) <
GangZoneStopFlashForAll (grove); // indicăm în paranteze numele zonei care va clipi în momentul în care este grove
GangZoneHideForAll (grove); // Introduceți numele zonei în paranteze în momentul de groove grove grove
GangZoneShowForAll (grove, GetPlayerColor (killerid)); // Acesta este momentul în care jucătorul a capturat zona! va fi reprodusă în culoarea sa, punem în paranteze numele zonei în momentul de grove.
taketurfbackcount [killerid] = 0;
>
>

// Acum să facem să scrie că zona este capturată sau capturată!
Pentru aceasta scriem în același registru public.

nou str [256];
dacă (gTeam [killerid] == TEAM_GROVE) taketurfbackcount [killerid] ++;
dacă (taketurfbackcount [killerid] == REOWN_TURF) <
GangZoneStopFlashForAll (grove); // numele zonei care va fi capturată în momentul în care grove
GangZoneHideForAll (grove); // numele zonei care va fi confiscată în momentul în care grove
GangZoneShowForAll (grove, GetPlayerColor (killerid)); // numele zonei care va fi capturată în momentul în care grove
taketurfbackcount [killerid] = 0;
>
>
dacă (IsPlayerInArea (playerid, 2383.532, -1748.974, 2543.251, -1618.698)) // Coordonatele zonei la momentul dat al zonei grove
<
dacă ((gTeam [playerid] == TEAM_GROVE) (gTeam [killerid]! = TEAM_GROVE) (killerid! = INVALID_PLAYER_ID)) // Specificați numele etichetei de timp sau bandei în acest moment TEAM_GROVE
<
gangkillcount [playerid] ++;
dacă (gangkillcount [playerid] == GANGAREA_WARNINGS)
<
SendClientMessageToAll (COLOR_RED, "Bandit: Teritoriul gangului Grove este atacat!"); // Mesaj în obshch. discutați că baza este atacată
GangZoneFlashForAll (grove, GetPlayerColor (killerid)); // Precizați numele zonei în momentul de grove
>
dacă (gangkillcount [playerid] == GANGAREA_TAKE)
<
KillerName nou [30];
GetPlayerName (killerid, KillerName, 30);
format (str, 256, "Bandit:% s Grab Grove!", KillerName); / / Este scris jucătorilor că jucătorul specificat a capturat zona
TrimiteClientMessageToAll (GetPlayerColor (killerid), str);
GangZoneStopFlashForAll (grove); // Specificați zona de zonă blocată în prezent
GangZoneHideForAll (grove); / Specificați zona de zonă blocată în prezent
GangZoneShowForAll (grove, GetPlayerColor (killerid)); // Specificați grovele de zonă capturate în prezent
gangkillcount [playerid] = 0;
>
>
>
retur 1;
>

bine, într-un loc liber pe care îl împingem

stoc IsPlayerInArea (jucator, Float: min_x, Float: min_y, Float: max_x, Float: max_y)
<
nou Float: X, Float: Y, Float: Z;
GetPlayerPos (playerid, X, Y, Z);
dacă (X <= max_x && X>= min_x Y <= max_y && Y>= min_y) retur 1;
retur 0;
>

Cred că bandiții tăi sunt gata cu zonele lor de bandă.

În plus:
Dacă doriți ca banda dvs. să aibă un chat privat doar pentru ea, atunci faceți următoarele.

public OnPlayerText (playerid, text [])
<
dacă (text [0] == '!')
<
nume nou [24], șir [256];
GetPlayerName (numele jucătorului, numele, 24);
strdel (text, 0,1);
format (șir, dimensiune (șir), "* banda de chat% s:% s", nume, text);
printf ("% s", șir);
pentru (nou i = 0; i <
dacă (IsPlayerConnected (i))
<
dacă (gTeam [i] == gTeam [playerid])
SendClientMessage (i, GetPlayerColor (playerid), șir);
>
>
retur 0;
>
retur 1;
>

Acum aveți o cameră de chat pentru fiecare echipă, astfel încât să puteți scrie toate lucrurile suplimentare la începutul textului "!" semn de exclamare, și chiar scrie ceea ce vrei.

Dacă doriți ca jucătorii unei singure bande pentru uciderea banditului lor prietenos, respectiv, să fie pedepsiți.

Încă de la început, ne-am împins

#define COLOR_RED 0xAA3333AA // RED
#define COLOR_GREEN 0x33AA33FF // GREEN
tk nou [MAX_PLAYERS];

Totul este un sistem anti-cimbru!
A ajutat să pui +







Articole similare

Trimiteți-le prietenilor: