Învățați să faceți o barieră lină
Bună, uv. utilizatorii portalului! M-am hotărât să vă arăt cum să faceți aceste porți. Deși forumul și a avut +100500 lecții, dar totuși utilizatorii pun o astfel de întrebare. Deci, ceea ce este necesar pentru aceasta:- Cap cu creier.
- Mâinile.
La început, adăugăm modulul la toate variabilele globale:
nou
poarta. gateopen # 91; MAX_PLAYERS char # 93 ;;
Poarta variabilei va stoca obiectul în sine.
Variabila gateopen va fi utilizată pentru a evita inundarea cu o comandă.
Apoi, în publicul OnGameModeInit (), adăugați următoarele:
gate = CreateDynamicObject (coordonatele modelului porților închise (X.Y.Z), coordonatele de rotație);
exemplu:
968 - modelul barierului.
1544.684692, -1630.881592, 13.004568 - coordonatele porților închise (XYZ)
0.0000, 90.0000, 90.0000 - coordonatele rotației.
Apoi, alegem cum vrem să deschidem bariera? Comandă sau buton.
CMD. gateopen (param # 91; # 93;)
dacă (! IsPlayerConnected (playerid)) returnează adevărat;
dacă (gateopen
dacă {(IsPlayerInRangeOfPoint (jucătorul) raza coordonatelor locului (X.Y.Z), unde puteți deschide bariera)) returnați SendClientMessage (playerid - 1. "* Sunteți prea departe!");
gateopen
MoveDynamicObject (coordonatele poarta de deschidere xyz .0.12 coordonatele de rotație);
SetTimerEx ("@GateClose". 7000. false "D", Playerid);
retur 1;
>
SetTimerEx ("@_ GateClose", 7000. false, "d", playerid); - Timer cu timp, prin care bariera este închisă.
gateopen - Acest lucru nu este de a inunda echipa.
În public OnPlayerKeyStateChange (playerid, newkeys, old keys) lipiți:
dacă (chei noi / * cheie * /)
dacă (IsPlayerInRangeOfPoint (playerid, 15.0, 1544.684692.-1630.881592, 13.004568)))
dacă (gateopen
gateopen
MoveDynamicObject (coordonatele poarta deschise xyz .0.12 0.0000 0.0000 .90.0000);
SetTimerEx ("@GateClose". 7000. false "D", Playerid);
>
>
>
Și acum, la sfârșitul modului, adăugăm publicul cu închiderea porții.
@ _GateClose (playerid);
@ _GateClose (playerid)
gateopen
MoveDynamicObject (coordonatele poarta de închidere xyz, coordonatele de rotație 0.12);
retur 1;
>