Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include a_samp
- #define LIMIT_GATE 20
- new
- Float: CLOSE [LIMIT_GATE] [3],
- Float: OPEN [LIMIT_GATE] [3],
- NAME_ENTER [LIMIT_GATE] [24],
- D_POINT [LIMIT_GATE],
- ID_GATE [LIMIT_GATE],
- bool: CREATED_GATE [LIMIT_GATE],
- AUTO_CLOSE [LIMIT_GATE],
- TIME_GATE [LIMIT_GATE];
- stock GetLastIDGate ()
- {
- for (new i; i != LIMIT_GATE; ++ i)
- if (!CREATED_GATE [i]) return i;
- return LIMIT_GATE;
- }
- stock AddAutoGate(modelid,Float:cX,Float:cY,Float:cZ,Float:rX,Float:rY,Float:rZ,Float:oX,Float:oY,Float:oZ,namecanenter[24],open_distance, close_time = 5)
- {
- new
- i = GetLastIDGate ();
- if (i == LIMIT_GATE) return 0; //превышен лимит
- CLOSE [i] [0] = cX, CLOSE [i] [1] = cY, CLOSE [i] [2] = cZ;
- OPEN [i] [0] = oX, OPEN [i] [1] = oY, OPEN [i] [2] = oZ;
- format (NAME_ENTER [i], 24, "%s", namecanenter);
- D_POINT [i] = open_distance;
- ID_GATE [i] = CreateObject (modelid, cX, cY, cZ, rX, rY, rZ);
- CREATED_GATE [i] = true, TIME_GATE [i] = close_time;
- if (!i) SetTimer ("CheckGates", 1000, false);
- return 1;
- }
- forward CheckGates();
- public CheckGates()
- {
- for (new gate, PLAYER_NAME [MAX_PLAYER_NAME]; gate != LIMIT_GATE; ++ gate)
- {
- if (!CREATED_GATE [gate]) continue;
- for (new i = GetMaxPlayers(); i != -1; --i)
- {
- if(!IsPlayerConnected(i)) continue;
- GetPlayerName (i, PLAYER_NAME, MAX_PLAYER_NAME);
- if (IsPlayerInRangeOfPoint (i, D_POINT [gate], CLOSE [gate] [0], CLOSE [gate] [1], CLOSE [gate] [2]) &&
- !strfind (PLAYER_NAME, NAME_ENTER [gate], true))
- MoveObject (ID_GATE [gate], OPEN [gate] [0], OPEN [gate] [1], OPEN [gate] [2], 1),
- AUTO_CLOSE [gate] = TIME_GATE [gate];
- if (-- AUTO_CLOSE [gate] < 0) MoveObject (ID_GATE [gate], CLOSE [gate] [0], CLOSE [gate] [1], CLOSE [gate] [2], 1);
- }
- }
- SetTimer ("CheckGates", 1000, false);
- return 1;
- }
- //используй так же как и старый инклуд,
- //но я добавил новый параметр close_time = 5
- //это время в сек через которое закроются ворота(по умолчанию 5сек)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement