[Мануал] Как сделать ворота по команде/для адм/для фракции
|
|
Дмитрий |
Дата: Понедельник, 06.08.2012, 16:53 | Сообщение # 1 | Сообщить о нерабочей теме
|
Регистрация: | 03.12.2011
|
Страна: | Российская Федерация |
Репутация: |
14
|
Сообщений: | 1421 |
Награды: |
4
+
|
Статус: |
|
| Здравствуйте сейчас я вам покажу как сделать ворота для (адм/фракции) по команде! И так начнем: Ко всем new добавляем:
если хотите несколько ворот добавить пишем
[2] это количество ворот которые вы хотите добавить Далее ко всем forward добавляем:
Далее ищем: public OnGameModeInit() и добавляем
Код vorot = CreateObject(id,X,Y,Z,0.000,0.000,0.000); // закрытых ворот
если хотите несколько ворот то пишем так:
Код vorot[0] = CreateObject(id,X,Y,Z,0.000,0.000,0.000); // закрытых ворот vorot[1] = CreateObject(id,X,Y,Z,0.000,0.000,0.000); // закрытых ворот
и тд. смотря сколько вы хотите добавить и указали в new vorot; Далее ищем: public OnPlayerCommandText(playerid, cmdtext[]) и добавляем
Код if(!strcmp(cmdtext, "/lsopen", true)) //тут место (/lsopen) команда для открытия ворот { if(PlayerInfo[playerid][pMember] == 1 || PlayerInfo[playerid][pLeader] == 1) // место 1 ставим id фракции которая будет открывать { MoveObject(vorot,x,y,z, 2.2); // тут координаты открытых ворот 2.2 это скорость открывание ворот SetTimer("Vorot", 7000, 0); // 7000 это время в секундах SendClientMessage(playerid, COLOR_LIGHTBLUE,"Ворота закроются через 7 секунд."); // это текст меняем на свое или оставляем } else { return SendClientMessage(playerid,COLOR_YELLOW," Вы не можете открыть эти ворота!"); // ну тут наверное все понятно } return 1; }
Если хотите несколько ворот как я говорил чуть выше то делаем так:
Код MoveObject(vorot,x,y,z, 2.2); // тут координаты открытых ворот 2.2 это скорость открывание ворот
меняем
Код MoveObject(vorot[0],x,y,z, 2.2);
если еще смотря сколько вы хотите добавить просто vorot[] место [] ставим нужную цыфру И теперь в конец мода ставим это:
Код public Vorot() { MoveObject(vorot, X,Y,Z ,2.2); //X,Y,Z координаты закрытых ворот, 2.2 скорость закрытия ворот return 1; }
Тут тоже самое смотря сколько хотите добавить
Код MoveObject(vorot[0], X,Y,Z ,2.2);
и тд.
Если вы хотите сделать ворота для админа, то после команды
Код if(!strcmp(cmdtext, "/lsopen", true)) //тут место (/lsopen) команда для открытия ворот {
добавляем это
Код if (PlayerInfo[playerid][pAdmin] >= 5)//pAdmin - открыть может админ, 5 это уровень админки
точнее это будем место
Код if(PlayerInfo[playerid][pMember] == 1 || PlayerInfo[playerid][pLeader] == 1)
И это будет примерно так:
Код if ((strcmp(cmd, "/admin", true)==0) || (strcmp(cmd, "/ad", true)==0)) // команда для открытия ворот { if(PlayerToPoint(15.0,playerid,x,y,z)) // 15.0 - расстояние у ворот где можно открыть { if (PlayerInfo[playerid][pAdmin] >= 5)//pAdmin - открыть может админ, 5 это уровень админки, ниже покажу как для домов и т д { MoveObject(vorot,x,y,z, 2.2); // это координаты движения ворот, 2.2 скорость движения SetTimer("Vorot", 7000, 0);// 7000 - время через которое закроются ворота SendClientMessage(playerid,0xFFFF00AA,"Ворота закроются через 7 секунд"); } else { return SendClientMessage(playerid,COLOR_YELLOW," Вы не можете открыть эти ворота!"); } return 1; } }
А все остальное тоже самое! Если хотите добавить 3D текст к вороте чтобы знали чьи ворота и команду для открытия, то делаем так Ищем public OnGameModeInit() и добавляем Код CreateDynamic3DTextLabel("{FF6600}[Ворота LSPD]\nДля открытия ворот введите\n{FFFFFF}(/lsopen)",0x15AAEAFF,x,y,z, 30.0);//место x,y,z ставим координаты закрытых ворот, а 30.0 можете даже не трогать
From Russia With Love!
|
|
|
|
|
Дмитрий |
Дата: Четверг, 25.10.2012, 17:54 | Сообщение # 3 | Сообщить о нерабочей теме
|
Регистрация: | 03.12.2011
|
Страна: | Российская Федерация |
Репутация: |
14
|
Сообщений: | 1421 |
Награды: |
4
+
|
Статус: |
|
| Quote (NewOnLy) Всем привет кто может мне помочь сделать ворота В чем именно помочь?
From Russia With Love!
|
|
|
|
|
Дмитрий |
Дата: Вторник, 25.06.2013, 17:14 | Сообщение # 5 | Сообщить о нерабочей теме
|
Регистрация: | 03.12.2011
|
Страна: | Российская Федерация |
Репутация: |
14
|
Сообщений: | 1421 |
Награды: |
4
+
|
Статус: |
|
| Цитата (Fallik) Помогите плиз, сделал как написано потом компилирую пишет вот это:
Проверьте правильность кода в вашем моде (все ли вы правильно написали). Код рабочий, я проверял месяца 3 назад.
From Russia With Love!
|
|
|
|
|
Дмитрий |
Дата: Среда, 26.06.2013, 16:29 | Сообщение # 7 | Сообщить о нерабочей теме
|
Регистрация: | 03.12.2011
|
Страна: | Российская Федерация |
Репутация: |
14
|
Сообщений: | 1421 |
Награды: |
4
+
|
Статус: |
|
| Fallik: замените: Код if(!strcmp(cmdtext, "/lsopen", true)) //тут место (/lsopen) команда для открытия ворот { if(PlayerInfo[playerid][pMember] == 1 || PlayerInfo[playerid][pLeader] == 1) // { MoveObject(vorot,x,y,z, 2.2); // тут координаты открытых ворот 2.2 это скорость открывание ворот SetTimer("Vorot", 7000, 0); // 7000 это время в секундах SendClientMessage(playerid, COLOR_LIGHTBLUE,"Ворота закроются через 7 секунд."); // это текст меняем на свое или оставляем } else { return SendClientMessage(playerid,COLOR_YELLOW," Вы не можете открыть эти ворота!"); // ну тут наверное все понятно } return 1; }
На: Код if(!strcmp(cmdtext, "/команда", true)) { if(PlayerInfo[playerid][pMember] == id фракции || PlayerInfo[playerid][pLeader] == id фракции) { MoveObject(vorot,x,y,z, 2.2); // тут координаты открытых ворот 2.2 это скорость открывание ворот SetTimer("Vorot", 17000, 0); // 17000 это время в секундах SendClientMessage(playerid, COLOR_LIGHTBLUE,"Ворота закроются через 17 секунд."); } else { return SendClientMessage(playerid,COLOR_YELLOW," Вы не можете открыть эти ворота!"); } return 1; }
и поставьте свои значения, должно получиться.
From Russia With Love!
|
|
|
|
Дмитрий |
Дата: Среда, 26.06.2013, 16:39 | Сообщение # 8 | Сообщить о нерабочей теме
|
Регистрация: | 03.12.2011
|
Страна: | Российская Федерация |
Репутация: |
14
|
Сообщений: | 1421 |
Награды: |
4
+
|
Статус: |
|
| Или вот так можете сделать(хотя это тоже самое): Код if(!strcmp(cmdtext, "/команда FBI", true)) { if(PlayerInfo[playerid][pMember] == id фракции FBI || PlayerInfo[playerid][pLeader] == id фракции FBI ) { MoveObject(vorot,x,y,z, 2.2); SetTimer("Vorot1", 5000, 0); SendClientMessage(playerid, COLOR_LIGHTBLUE,"Ворота закроются через 5 секунд."); } else { return SendClientMessage(playerid,COLOR_YELLOW," Вы не можете открыть эти ворота так как вы не в FBI!"); } return 1; } Код if(!strcmp(cmdtext, "/команда МЧС СФ", true)) { if(PlayerInfo[playerid][pMember] == id фракции МЧС СФ || PlayerInfo[playerid][pLeader] == id фракции МЧС СФ ) { MoveObject(vorot,x,y,z, 2.2); SetTimer("Vorot2", 5000, 0); SendClientMessage(playerid, COLOR_LIGHTBLUE,"Ворота закроются через 5 секунд."); } else { return SendClientMessage(playerid,COLOR_YELLOW," Вы не можете открыть эти ворота так как вы не в МЧС СФ!"); } return 1; }
From Russia With Love!
|
|
|
|
jec2001 |
Дата: Понедельник, 18.11.2013, 02:29 | Сообщение # 9 | Сообщить о нерабочей теме
|
Регистрация: | 18.11.2013
|
Страна: | Украина |
Репутация: |
0
|
Сообщений: | 9 |
Награды: |
0
+
|
Статус: |
|
| Вот у меня проблема ворота ид 975 координаты AddPlayerClass(141,320.9960,-1188.4014,76.3777,215.2720,0,0,0,0,0,0); // открытые ворота AddPlayerClass(141,313.6887,-1193.8636,76.3022,216.8386,0,0,0,0,0,0); // закрытые ворота Вот я взял x-320 y- -1188 z-76 открытые ворота x-313 y- -1193 z-76 закрытые ворота
Всё поставилось вот только ворота под углом стоят! Помоги
|
|
|
|
Дмитрий |
Дата: Понедельник, 18.11.2013, 15:20 | Сообщение # 10 | Сообщить о нерабочей теме
|
Регистрация: | 03.12.2011
|
Страна: | Российская Федерация |
Репутация: |
14
|
Сообщений: | 1421 |
Награды: |
4
+
|
Статус: |
|
| jec2001, у вас ошибка в координатах "320.9960,-1188.4014,76.3777,215.2720,0,0,0,0,0,0); и 313.6887,-1193.8636,76.3022,216.8386,0,0,0,0,0,0);". Измените координаты и у вас должно все получиться.
From Russia With Love!
|
|
|
|