În această lecție, vom vorbi despre utilizarea zonelor dinamice utilizând plug-in-ul Streamer.
Care sunt avantajele? Și că este mult mai convenabil să folosiți zone dinamice decât să creați un cronometru și să verificați fiecare jucător pentru o anumită poziție. Și minusuri. Se pare că nu este.
În Streamer există mai multe tipuri de zone dinamice: un cerc. dreptunghi. sferă și cub. Un cerc și un dreptunghi sunt create numai în două axe: x și y. În consecință, zona dinamică a acestor tipuri este un stâlp invizibil uriaș, urcând în sus. Într-un cuvânt, nu există înălțimi în astfel de zone. Dar sfera și cubul au o înălțime, care este mult mai convenabilă.
Să analizăm funcțiile pentru a le crea.
CreațiDynamicCircle (Float: x, Float: y, Float: dimensiune, lume, interiorid, playerid); - Crearea unei zone sub forma unui cerc. Va fi nevoie doar de coordonatele x și y, precum și de raza zonei respective.
CreațiDynamicRectangle (Float: minx, Float: miny, Float: maxx, Float: maxy, worldid, interiorid, playerid); - Creați o zonă sub formă de dreptunghi. Pentru această zonă, trebuie să cunoașteți coordonatele colțurilor opuse.
CreațiDynamicSphere (Float: x, Float: y, Float: z, Float: dimensiune, lume, interiorid, playerid); - Crearea unei zone sub forma unei sfere. Această zonă necesită o înălțime a axei Z și raza sferei pe care doriți să o creați.
CreateDynamicCube (float: minx, float: miny, float: minz, float: maxx, float: Maxy, float: maxz, worldid, interiorid, playerid); - crearea unei zone a unui cub (paralelipiped). Pentru a face acest lucru, trebuie să aibă o înălțime minimă și maximă pe axa Z.
Fiecare dintre aceste funcții returnează ID-ul zonei dinamice, prin urmare, ele pot fi atașate la variabile.
publice OnGameModeInit ()
zona51 = CreateDynamicCube (-13.0555, 1702.1824, 15.0, 405.9110, 2071.6646, 850.0, 0. 0. -1); // lumea virtuală - 0, interior - 0, pentru toți jucătorii
retur 1;
Pentru zonele dinamice, există două callback'a: OnPlayerEnterDynamicArea (playerid, areaid) și OnPlayerLeaveDynamicArea (playerid, areaid) - intrarea și ieșirea din DSA. Areaid este ID-ul zonei dinamice. Cum se determină, este scris mai sus.
Exemple de utilizare simplă:
publice OnGameModeInit ()
zona51 = CreateDynamicCube (-13.0555, 1702.1824, 15.0, 405.9110, 2071.6646, 850.0, 0. 0. -1); // lumea virtuală - 0, interior - 0, pentru toți jucătorii
retur 1;
>
public OnPlayerEnterDynamicArea (playerid areaid)
dacă (areaid == zone51) SendClientMessage (playerid, - 1. "Lăsați zona protejată, altfel focul va fi deschis");
retur 1;
>
public OnPlayerLeaveDynamicArea (domeniu de activitate jucator)
dacă (areaid == zone51) SendClientMessage (playerid, - 1. "Vă mulțumim pentru înțelegere.");
retur 1;
>
- DestroyDynamicArea (areaid); - distrugerea zonei dinamice.
- IsValidDynamicArea (areaid); - verificați existența unei zone dinamice cu acest ID.
- TogglePlayerDynamicArea (playerid, areaid, comutare); - ascunderea zonei dinamice a playerului.
- TogglePlayerAllDynamicAreas (playerid, comutare); - ascunderea tuturor zonelor dinamice ale playerului.
- IsPlayerInDynamicArea (playerid, areaid); - verificarea jucătorului din zona dinamică cu un ID specific.
- AttachDynamicAreaToPlayer (areaid, playerid); - Atașați o zonă dinamică cu un ID specific jucătorului.
- AttachDynamicAreaToVehicle (areaid, vehicleid); - Atașați o zonă dinamică cu un identificator specific la aparat.
- DestroyAllDynamicAreas (); - distrugerea tuturor zonelor dinamice.
- CountDynamicAreas (); - numărarea numărului de zone dinamice.
Atenție vă rog! Pentru jucători și mașini, puteți atașa numai zone cu tipul de cerc și sferă.
Te iubesc mxIni Mysql