Utilizarea zonelor dinamice (streamer) - elementele de bază

Î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

Utilizarea zonelor dinamice (streamer) - elementele de bază