Создание открывающихся ворот и дверей на кнопку

Description: Уроки по скриптингу
Moderator: SJplayer

LILU M
Topic author, Подполковник
Подполковник
Avatar
LILU M
Topic author, Подполковник
Подполковник
Reputation: 16
Posts: 462
Joined: 5 Apr 2013
With us: 6 years 2 months

#1by LILU » 11 Mar 2016, 23:40

Итак сперва нужно создать сами ворота (в Map constructor объект 19870).

Image

и берем координаты в "Show code".

Code: Select all

CreateObject(198701587.68164, -1637.9108914.28296,   0.000000.000000.00000); 


Где:
19870 - ID объекта.
1587.68164, -1637.91089, 14.28296 - координаты x, y, z. (открытых ворот)
0.00000, 0.00000, 0.00000 - поворот x, y, z.

Теперь делаем координаты закрытых ворот:

Image

Code: Select all

CreateObject(198701592.30505, -1638.1251214.28296,   0.000000.000000.00000); 


Далее переходим в pawno.

Создаём переменную куда мы сохраним 'номер' объекта.

Code: Select all

new number


Создаём forward

Code: Select all

forward numberclose(); 


Для public

Code: Select all

public numberclose() 


в котором мы закроем ворота.

Теперь ищем public OnGameModeInit и добавляем туда:

Code: Select all

number CreateObject(198701587.68164, -1637.9108914.28296,   0.000000.000000.00000);   


Далее создадим команду для открытия ворот. В public OnPlayerCommandText:

Code: Select all

    else if(strcmp(cmdtext"/numberopen"true) == 0// команда
    
{
        if(
PlayerInfo[playerid][pMember] != 1) return SendClientMessage(playerid, -1"Вы не сотрудник LSPD!"); // проверка на то состоит игрок ли в фракции номер 1( в половине модом это ЛСПД
        
MoveObject(gate,1592.30505, -1638.1251214.282962.2); // gate - переменная | 1592.30505, -1638.12512, 14.28296 - коорды закрытых ворот | 2.2 - скорость открытия ворот
        
SendClientMessage(playerid, -1"Ворота закроются через 10 секунд!"); // сообщение игроку
        
SetTimer("numberclose"100000); // "numberclose" - наш forward в "" | 10000 - 10 секунд(время через которое запустим паблик с закрытием ворот) | 0 - будет и таймер повторятся(1 - да но не советую)
        
return 1;
    }   


В конец мода добавим паблик 'numberclose':

Code: Select all

public gateclose()
{
MoveObject(gate1587.68164, -1637.9108914.282962.2); // gate - переменная | 1587.68164, -1637.91089, 14.28296 - коорды открытых ворот | 2.2 - скорость.
return 1;


А теперь мы сделаем данную команду на кнопку. В public OnPlayerKeyStateChange:

Code: Select all

if(newkey == KEY_CROUCHOnPlayerCommandText(playerid"/numberopen"); // newkey == KEY_CROUCH  -  если кнопка *сесть* (в машине - сигнал). | OnPlayerCommandText(..) - вызов команды от имени игрока  

! ! !


  • Similar Topics
    Replies
    Views
    Last post

Return to “Уроки”