shape1
shape2
shape3
shape4
shape7
shape8

Создание автоматических ворот

Gurter

Освоившийся
Пользователь
25.08.2014
95
35
0
25
Для начала инклуд:
 

#include <a_samp>

Теперь нам нужен forward для таймера,положим его ниже инклуда а_самп:
 

forward GateCheck();

Теперь нам нужно создать,то что хранит обЪект,вставляем ниже:
 

new AutomaticGate;

Теперь вставляем в OnGameModeInit,или OnFilterScriptInit,в нашем случае,я делаю для мода,значит использую OnGameModeInit
public OnGameModeInit()
Теперь мы создадим таймер:
 

SetTimer("GateCheck", 500, true);

Вы можете менять 500 как вам угодно,но если больше поставите,то сервер может лагать.
Теперь создадим сам обЪект:
 

AutomaticGate = CreateObject(971, 2641.8201, 2810.6196, 36.3222, 0, 0, 0);

В общем должно выглядеть так:
 

public OnGameModeInit()
{
SetTimer("GateCheck", 500, true);
AutomaticGate = CreateObject(971, 2641.8201, 2810.6196, 36.3222, 0, 0, 0);
return 1;
}

Создадим функцию таймера:

public GateCheck()
Создадим луп для всех игроков:

for(new i=0; i<MAX_PLAYERS; i++)
Теперь сделаем проверку,что игроки присоединились на серв:

if(IsPlayerConnected(i))
Теперь проверка на то что игрок у ворот,используем функцию IsPlayerInRangeOfPoint :

if(IsPlayerInRangeOfPoint(i, 10.0, 2641.8201, 2810.6196, 36.3222))
Если игрок не у ворот,то мы должны рестартануть процесс

MoveObject(AutomaticGate, 2641.8201, 2810.6196, 36.3222, 5.0);
Должно выглядеть что-то типо того:

 

public CheckGate()
{
for(new i=0; i<MAX_PLAYERS; i++)
{
if(IsPlayerConnected(i))
{
if(IsPlayerInRangeOfPoint(i, 10.0, 2641.8201, 2810.6196, 36.3222))
{
MoveObject(AutomaticGate, 2641.8201, 2810.6196, 26.3222, 5.0);
}
else
{
MoveObject(AutomaticGate, 2641.8201, 2810.6196, 36.3222, 5.0);
}
}
}
}
 
Автор не я!

 
Последнее редактирование модератором:

RealMan

Новичок
Пользователь
31.08.2014
6
0
0
Спасибо создал на некоторых фраках)

 
A

Autor

Гость
Гость
Блин как всё сложно....

Ко всем new

Код:
new nazvanie;new proverka = 0;
В public OnGameModeInit()

Код:
nazvanie = CreateDynamicObject(968, 1874.255859,-2008.306518,32.231582, 0.500000,-91.299919,0.000000);
В public OnPlayerCommandText(playerid, cmdtext[])

Код:
if(strcmp(cmd, "/komanda", true) == 0)(    if(IsPlayerInRangeOfPoint(playerid, 30, 1867.9000,-2008.6000,32.2472))    {        if(Account[playerid][pMember] == 18 || Account[playerid][pLeader] == 18 || Account[playerid][pAdmin] >= 1)        {            if(!proverka)            {                MoveDynamicObject(nazvanie,1874.255859,-2008.306518,32.231582+0.004, 0.004,0.500000,-1.299919,0.000000);                proverka = 1;                PlayerPlaySound(playerid, 34601,0.0,0.0,0.0);                SCM(playerid,-1,"Не забудьте закрыть ворота!");            }            else            {                MoveDynamicObject(nazvanie,1874.255859,-2008.306518,32.231582-0.004, 0.004,0.500000,-91.299919,0.000000);                PlayerPlaySound(playerid, 34601,0.0,0.0,0.0);                SCM(playerid,-1,"Ворота закрыты!");                proverka = 0;            }        }    )    return 1;)
Получился оффтоп, название темы: Создание автоматических ворот. Ну ладно,просто добавить таймер. А вообще автоматические не для РП сервера.

 
Последнее редактирование: