Dinamikus zónák (streamer) használata - az alapok

Ebben a leckében beszélünk dinamikus zónákról a Streamer plug-in használatával.
Melyek az előnyei? És abban, hogy sokkal kényelmesebb a dinamikus zónák használata, mint egy időzítő létrehozása, és minden játékosnak egy adott pozícióra való ellenőrzése. És mínuszok. Úgy tűnik, nem.

A Streamerben többféle dinamikus zóna létezik: egy kör. téglalap. gömb és kocka. Kör és téglalap csak két tengelyen hozható létre: x és y. Következésképpen ezeknek a típusoknak a dinamikus zónája egy hatalmas láthatatlan oszlop, amely felfelé rohan. Egy szóval az ilyen zónákban nincs magasság. De a gömb és a kocka magassága van, ami sokkal kényelmesebb.

Elemezzük a létrehozandó függvényeket.

CreateDynamicCircle (Float: x, Float: y, Float: méret, worldid, internalid, playerid); - Zóna létrehozása kör alakjában. Csak az x és y koordinátákra van szüksége, valamint az adott zóna sugara.
CreateDynamicRectangle (Float: Minx, Float: miny, Float: Maxx, Float: Maxy, worldid, interiorid, playerid); - Zóna létrehozása téglalap formájában. Ehhez a zónához ismernie kell az ellentétes sarkok koordinátáit.
CreateDynamicSphere (Float: x, Float: y, Float: z, Float: méret, worldid, interiorid, playerid); - Egy gömb alakú zóna létrehozása. Ez a zóna megköveteli a Z tengely magasságát és a létrehozni kívánt gömb sugarait.
CreateDynamicCube (Float: Minx, Float: miny, Float: Minz, Float: Maxx, Float: Maxy, Float: maxz, worldid, interiorid, playerid); - Egy kocka alakú zóna létrehozása (parallelepiped). Ehhez a Z-tengely mentén a legkisebb és legnagyobb magasságra van szükség.

Mindegyik funkció visszaadja a dinamikus zóna azonosítóját, ezért változókhoz csatolható.

nyilvános OnGameModeInit ()
zone51 = CreateDynamicCube (-13.0555, 1702.1824, 15.0, 405.9110, 2071.6646, 850.0, 0. 0-1); // virtuális világ - 0, belső - 0, minden játékos számára
visszatérés 1;

Dinamikus területek, két callback'a: OnPlayerEnterDynamicArea (playerid, areaid) és OnPlayerLeaveDynamicArea (playerid, areaid) - belépő és kilépő DSA. A Areaid a dinamikus zóna azonosítója. Hogyan határozható meg?

Példák egyszerű használatra:

nyilvános OnGameModeInit ()
zone51 = CreateDynamicCube (- 13,0555 1702,1824 15,0 405,9110 2071,6646 850,0 0. 0. - 1 ......); // virtuális világ - 0, belső - 0, minden játékos számára
visszatérés 1;
>

nyilvános OnPlayerEnterDynamicArea (playerid. areaid)
ha (areaid == zone51) SendClientMessage (playerid, - 1. "Hagyja el a védett zónát, különben a tűz kinyílik");
visszatérés 1;
>

nyilvános OnPlayerLeaveDynamicArea (playerid. areaid)
ha (areaid == zone51) SendClientMessage (playerid, - 1. "Köszönjük a megértést");
visszatérés 1;
>

  • DestroyDynamicArea (areaid); - a dinamikus zóna megsemmisítése.
  • IsValidDynamicArea (areaid); - ellenőrizze, hogy van-e dinamikus zóna ilyen azonosítóval.
  • TogglePlayerDynamicArea (playerid, areaid, váltás); - a lejátszó dinamikus zónájának elrejtése.
  • TogglePlayerAllDynamicAreas (playerid, váltás); - a lejátszó összes dinamikus zónájának elrejtése.
  • IsPlayerInDynamicArea (playerid, areaid); - a dinamikus zónában lévő játékos ellenőrzése meghatározott azonosítóval.
  • AttachDynamicAreaToPlayer (areaid, playerid); - Dinamikus zóna csatolása egy speciális azonosítóval a lejátszóhoz.
  • AttachDynamicAreaToVehicle (areaid, vehicleid); - Dinamikus zóna csatolása egy adott azonosítóval a géphez.
  • DestroyAllDynamicAreas (); - Minden dinamikus zóna megsemmisítése.
  • CountDynamicAreas (); - a dinamikus zónák számának megszámlálása.

Figyelem! A játékosoknak és a gépeknek csak zónákat lehet csatolni a kör és a gömb típusával.

Szeretlek mxIni Mysql

Dinamikus zónák (streamer) használata - az alapok