Урок №15
Дата: 26.03.2010, Пятница, 20:36:06 | Сообщение # $NUMBER
Группа: Проверенные
Сообщений: 165
Доброе время суток, сейчас мы будем ставить ворота для RP серверов которые будут открываться по команде! Для начала сделаем в МТА мап эдиторе ворота, 1- в закрытом положении 2- в открытом положении Приступим: 1)Ищем строчки forward, и вставляем там: Code
forward CloseGateFBI(playerid);
2)Потом ищем строчки new, и вставляем там: 3)Ищем строчки CreateObject, вставляем там: Code
gateFBI = CreateObject(983, 2071.908867, -1913.065063, 13.3, 0.000000, 0.000000, 0.000000);//ворота FBI (координаты ворот в закрытом положении)
4)Ищем public OnPlayerCommandText(playerid, cmdtext[]) и вставляем туда: Code
if(!strcmp(cmdtext, "/gateopenfbi", true)) // открытие ворот FBI { if(PlayerInfo[playerid][pLeader] == 2 || PlayerInfo[playerid][pMember] == 2) { if (PlayerToPoint(30, playerid,2071.908867 , -1913.065063 , 13.3))//(2071.908867 , -1913.065063 , 13.3) меняем на координаты из CreateObject! { MoveObject (gateFBI, 2075.908867 , -1919.035063 , 13.3 , 0.59);//(2075.908867 , -1913.065063 , 13.3) меняем на координаты открытых ворот GetPlayerName(playerid, sendername, sizeof(sendername)); format(string, sizeof(string), "* %d берет пульт ДУ и открывает ворота.", PlayerInfo[playerid][pIDname]); PlayerPlaySound(playerid, 1153, 2075.908867 , -1913.065063 , 13.3);//(2075.908867 , -1913.065063 , 13.3) меняем на координаты открытых ворот SendClientMessage(playerid, COLOR_BLUE,"* Ворота FBI открыты и будут закрыты через 15 секунд!"); ProxDetector(4.0, playerid, string, COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE); } else { SendClientMessage(playerid, COLOR_GREY,"* Вы слишком далеко чтобы пользоваться д/у."); } } else return SendClientMessage(playerid, COLOR_GREY,"* У Вас нет дистанционного управления."); SetTimer("CloseGateFBI", 15000, 0); return 1; }
5)В саааааааааамый конец мода вставляем: Code
public CloseGateFBI(playerid) {//Функция автоматического закрытия ворот FBI MoveObject (gateFBI, 2071.908867 , -1913.065063 , 13.3 , 0.65);//(2071.908867 , -1913.065063 , 13.3)меняем на координаты из CreateObject! PlayerPlaySound(playerid, 1153, 2071.908867 , -1913.065063 , 13.3);//(2071.908867 , -1913.065063 , 13.3)меняем на координаты из CreateObject! return 1; }
Конец! Удачи! P.S. Не забудьте поменять координаты на свои!!!
Дата: 26.03.2010, Пятница, 22:47:13 | Сообщение # $NUMBER
Группа: Проверенные
Сообщений: 165
Дата: 27.03.2010, Суббота, 09:24:35 | Сообщение # $NUMBER
Группа: Пользователи
Сообщений: 6
_TOXA_ , +1 та тема на много лучше))))
Дата: 27.01.2011, Четверг, 19:22:52 | Сообщение # $NUMBER
Группа: Проверенные
Сообщений: 86
я сделал чтоб они открывались ну они отрились и не закрываются стоят на месте HeLp
Дата: 27.01.2011, Четверг, 19:50:22 | Сообщение # $NUMBER
Группа: Проверенные
Сообщений: 667
ukrains , Если делать по уроку то тогда всё хорошо открываеться.
Дата: 27.01.2011, Четверг, 21:14:15 | Сообщение # $NUMBER
Группа: Проверенные
Сообщений: 86
PlayerPlaySound(playerid, 1153, 2075.908867 , -1913.065063 , 13.3) ето вобше на звук
Дата: 27.01.2011, Четверг, 21:20:55 | Сообщение # $NUMBER
Группа: Проверенные
Сообщений: 667
ukrains , Это звук открывания ворот, что не устраивает?
Дата: 27.01.2011, Четверг, 21:33:12 | Сообщение # $NUMBER
Группа: Проверенные
Сообщений: 207
В самой команде слишком много лишнего Да и вообще чет слишком много лишнего. Можно сделать оптимальней.
Дата: 27.01.2011, Четверг, 21:54:11 | Сообщение # $NUMBER
Группа: Проверенные
Сообщений: 86
сделайте ктото плиз нормальной урок меня оно задолбало на закрыватся
Дата: 27.01.2011, Четверг, 22:41:17 | Сообщение # $NUMBER
Группа: Проверенные
Сообщений: 263
ukrains , координаты открытых ворот есть? дай сюда распишу что к чему.
if(!strcmp(cmdtext, "/gateopenfbi", true)) // открытие ворот FBI { if(PlayerInfo[playerid][pLeader] == 2 || PlayerInfo[playerid][pMember] == 2) { if (PlayerToPoint(30, playerid,2071.908867 , -1913.065063 , 13.3))//(2071.908867 , -1913.065063 , 13.3) меняем на координаты из CreateObject! { MoveObject (gateFBI, 2075.908867 , -1919.035063 , 13.3 , 0.59);//(2075.908867 , -1913.065063 , 13.3) меняем на координаты открытых ворот GetPlayerName(playerid, sendername, sizeof(sendername)); format(string, sizeof(string), "* %d берет пульт ДУ и открывает ворота.", PlayerInfo[playerid][pIDname]); PlayerPlaySound(playerid, 1153, 2075.908867 , -1913.065063 , 13.3);//(2075.908867 , -1913.065063 , 13.3) меняем на координаты открытых ворот SendClientMessage(playerid, COLOR_BLUE,"* Ворота FBI открыты и будут закрыты через 15 секунд!"); // зачем гадить код какашками? ProxDetector(4.0, playerid, string, COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE); // зачем гадить код какашками? } else { SendClientMessage(playerid, COLOR_GREY,"* Вы слишком далеко чтобы пользоваться д/у."); } } else return SendClientMessage(playerid, COLOR_GREY,"* У Вас нет дистанционного управления."); SetTimer("CloseGateFBI", 15000, 0); return 1; }
Дата: 27.01.2011, Четверг, 23:34:04 | Сообщение # $NUMBER
Группа: Проверенные
Сообщений: 86
1811.31274414,-1899.19323730,12.40613079 открытие 1811.41748047,-1890.76879883,12.41406250 закрытие
Дата: 28.01.2011, Пятница, 04:31:26 | Сообщение # $NUMBER
Группа: Проверенные
Сообщений: 414
Хуиз ху, че тут не понятного? МЛЯ куда нибудь на верх суй УКРАИНЕЦ КОМАНДУ САМ СОЗДАШЬ УГУ?
else if(PlayerToPoint(5, i,1102.6222,-1738.9237,13.5334)) { if(VorotaGateOpen == 1) { VorotaGateOpen = 1; MoveObject(VorotaGate,КООРДИНАТЫ);//ОТКРЫТЫЕ ВОРОТА МЛЯ VorotaGateTimer = SetTimer("VorotaGateClose",3000, 0);//ВОТ ОН МлЯ ТАЙМЕР ЧТО БЫ ТВОИ ВОРОТА ЗАКРЫЛИСЬ ,ПОНЯЛ? А ТО НОЕШЬ ЧТО ВОРОТА НЕ РОБЯТ } else { GameTextForPlayer(i, "CLOSED",5000, 1); } }
В ongamemodeinit:
Дата: 28.01.2011, Пятница, 08:04:27 | Сообщение # $NUMBER
Группа: Модераторы
Сообщений: 1045
Терпение не выдержало
Дата: 28.01.2011, Пятница, 14:09:59 | Сообщение # $NUMBER
Группа: Проверенные
Сообщений: 86
Valeron , нет команду не создам
Дата: 28.01.2011, Пятница, 14:43:37 | Сообщение # $NUMBER
Группа: Проверенные
Сообщений: 414
Quote (ukrains )
Valeron, нет команду не создам
На
if(!strcmp(cmdtext, "/симсимоткройся", true)) { if(PlayerToPoint(5,playerid,0,0,0)){ if(VorotaGateOpen == 1){ VorotaGateOpen = 1; MoveObject(VorotaGate,0,0,0); VorotaGateTimer = SetTimer("VorotaGateClose",3000, 0);}else{ GameTextForPlayer(playerid, "CLOSED",5000, 1);} return 1; } }
Или:
if(!strcmp(cmdtext, "/симсимоткройся", true)) { if(PlayerToPoint(2, playerid,0,0,0) && VorotaGateOpen == 1){ VorotaGateOpen = 1; MoveObject(VorotaGate,0,0,0); VorotaGateTimer = SetTimer("VorotaGateClose",3000, 0);}else{ GameTextForPlayer(playerid, "CLOSED",5000, 1); return 1; } }
:D