Szakmai fórum a gyalogot-scripting

Ismerje meg, hogyan lehet egy sima akadály

Szia, SW. a felhasználók a portál Úgy döntöttem, hogy mutassa meg, hogyan kell ezt csinálni simán akadályokat. Bár a fórum volt 100.500 órák, de mostanáig a felhasználók ilyen kérdést. Tehát mit kell tennie:






  1. Fej agy.
  2. Hands.

Top divat minden globális változó egészül ki:

új
kapun. gateopen # 91; MAX_PLAYERS char # 93 ;;

A változtatható kapu tárolja a tárgy maga.
Változó gateopen fogja használni, hogy elkerüljék az árvíz a csapat.

Továbbá az állami OnGameModeInit () adja hozzá a következő:

kapu = CreateDynamicObject (modell koordinátáit a zárt kapuk (X. Y. Z), a forgási koordinátákat.);

például:
968 - a modell akadályt.
1544.684692, -1630,881592, 13,004568 - koordinátáit a zárt kapuk (XYZ)
0.0000, 90,0000, 90,0000 - koordináta forgatást.

Következő vyberaem szeretnénk megnyitni a kaput? Parancs vagy gomb.







CMD. gateopen (playerid. params # 91; # 93;)
ha return true (IsPlayerConnected (playerid)!);
if (gateopen == 1) return true;
if (! .. IsPlayerInRangeOfPoint (playerid sugara a hely koordinátái (X. Y. Z), ahol meg tudja nyitni a kaput)) visszatér SendClientMessage (playerid - 1. "* Ön túl messze!".);
gateopen = 1;
MoveDynamicObject (kapu nyitott kapu koordináták XYZ koordináták forgási 0,12 ...);
SetTimerEx ( "@_GateClose" 7000. false "d" playerid ...);
vissza 1;
>

0,12 - ez az a sebesség (folyékonyan) az akadály.
SetTimerEx ( "@_ GateClose", 7000. hamis, "d", playerid); - időzítő idővel, ami után a kapu bezáródik.
gateopen - Ez biztosítja, hogy a csapat nem az árvíz.

A nyilvános OnPlayerKeyStateChange (playerid, newkeys, oldkeys) helyezze:

if (newkeys / * Kulcs * /)
ha (IsPlayerInRangeOfPoint (playerid 15,0 1544,684692 -... 1630,881592 13,004568).)
if (gateopen == 0)
gateopen = 1;
MoveDynamicObject (kapu nyitott kapu koordináták XYZ 0,12 0,0000 0,0000 90,0000 .....);
SetTimerEx ( "@_GateClose" 7000. false "d" playerid ...);
>
>
>

És így most a legvégén divat hozzá Nyilvános bezárja a kaput.

@ _GateClose (playerid);
@ _GateClose (playerid)
gateopen = 0;
MoveDynamicObject (. Kapu zárva koordinátáit XYZ koordinátáit a cél forgási 0,12 ..);
vissza 1;
>