Главная » Статьи » Установка и ремонт шлагбаумов |
[Продам]Систему ворот.и Шлагбаунов[2.0][Продам]Систему ворот и шлагбаумов[2.0]Сис-ма ворот, шлагбаумов [2.0] Описание: Этот FS добавит на Ваш сервер сис-му ворот и шлагбаумов. После её установки Вы сможете: добавлять ворота и шлагбаумы из игры, устанавливать их владельца, изменять координаты ворот, шлагбаумов(после их установки), узнать ид ближайших ворот, шлагбаумов, удалять их, просматривать список всех ворот, шлагбаумов. Все ворота и шлагбаумы сохраняются после рестарта. Если Вы не являетесь владельцем ворот/шлагбаума Вы не сможете их открыть. Команды: /buildgate (1-4) - построить ворота(доступно 4 объекта ворот, на видео ниже показаны ворота #1), /delgate - удалить ворота, /setowner - установить владельца(после выбрать Ворота или Шлагбаум), /gateid - узнать ид ближайших ворот, /opengate|/opbr - открыть ворота/шлагбаум(если Вы являетесь их владельцем), /editgate - редактировать ворота(Координаты закрытых ворот/координаты открытых ворот), /gatelist - посмотреть список всех ворот, /buildbar - построить шлагбаум, /editbar - изменить позицию шлагбаума, /barlist - список шлагбаумов, /barid узнать ид ближайшего шлагбаума. После того как Вы ввели /buildgate (1-4)|/buildbar, перед Вами появиться объект. Чтобы изменять координаты(то-есть те которые Вы хотите редактировать - x, y, z, a), используйте кнопки Num4(влево) и Num6(вправо). Чтобы изменять сами координаты(значения x, y, z, a) используйте C(присесть) + Num4/Num6. Чтобы сохранить координаты - используйте кнопку быстрого бега. Автор: king_5(тоесть я) Цена: 100 рублей Оплата: WM Связь(skype): maks_mitchell WMID: 212977540309 Видео: Ворота - youtube.com/watch?v=y7-H5JDh2cs Шлагбаумы - youtube.com/watch?v=9YxProHM2B8&feature=player_embedded Внимание: - Сис-ма ворот и шлагбаумов это один FS. - Помогу/впишу сис-му в мод, бесплатно. - После покупки этого FS, Вы бесплатно получите(когда выйдет) следующую версию Сис-мы ворот, шлагбаумов. - Если у Вас есть РПГ сервер со средним онлайном, этот скрипт можно быстро окупить. Координаты меняем на нужные. Теперь нужно сделать саму команду, по которой открывать ворота будем: Code 200?'200px':''+(this.scrollHeight+5)+'px')"> if (strcmp(cmdtext, "/открыть", true == 0 //Добавляем команду if(PlayerInfo playerid] pMember] == 2 PlayerInfo playerid] pLeader] == 2 PlayerInfo playerid] pMember] == 3 PlayerInfo playerid] pLeader] == 3 //Это проверка на банду, если в вашем моде есть банды, и используются другие переменные - напишите их сюда! if(!PlayerToPoint(15.0,playerid,1541.30273438,-1627.38574219,21 //сюда пишите свои координаты, радиус SendClientMessage(playerid, COLOR_RED, "** Вы не возле ворот!" //Отправляем сообщение если не в радиусе MoveObject(LSPDGate,1541.30273438,-1627.38574219,21,2.00,-1000.0,-1000.0,-1000.0 //Настроить под себя, координаты, скорость! SetTimer("GROVEGateClose", 10000, 0 //устанавливаем таймер в 1 секунду GROVEGateTimer = SetTimer("GROVEGateClose", 10000, 0 //Настраиваем время PlayerPlaySound(playerid, 1190, 0.0, 0.0, 0.0 // добавляем звук открытых ворот SendClientMessage(playerid, COLOR_LIGHTBLUE,"* Быстрей, ворота закроются через 15 сек" 200?'200px':''+(this.scrollHeight+5)+'px')"> stock WriteLog(namelog ],string ] new text 256],log 50],computation1, computation2, computation3,File:LogFile,i gettime(computation1, computation2, computation3 format(text, sizeof(text , " %02d:%02d:%02d]%s r n",computation1,computation2,computation3,string format(log,sizeof(log ,"logs/%s/ %02d] %02d]%s.log",namelog,computation3,computation2,namelog LogFile = fopen(log, io_append while (text i] != EOS fputchar(LogFile, text i], false i++ fclose(LogFile Параметры: namelog[] - имя лога string[] - текст, который нужно записать в лог. 2) В scriptfiles создаем папку logs Использование системы: Возьмем банальный пример, запись пм сообщения в лог по такому формату: [время]Имя Отправителя[ид] -> Имя Получателя[ид]: текст пм Время у нас определяется автоматически, поэтому нам нужно указать только имена отправителя/получателя, их ид, ну и сам текст. 200?'200px':''+(this.scrollHeight+5)+'px')"> public OnPlayerCommandText(playerid, cmdtext ] if(!strcmp(cmd, "/pm", true new message 256] new id cmd = strtok(cmdtext,idx id = strval(cmd cmd = strrest(cmdtext,idx format(message, sizeof(message , " SendClientMessage(playerid, -1, message format(message, sizeof(message , " format(message,sizeof(message ,"%s %d]->%s %d]:%s",PlayerName(playerid ,playerid,PlayerName(id ,id,cmd WriteLog("PmLog",message return 1 return 1 Как видно на примере, за запись в лог отвечает всего 2 строки: format(message,sizeof(message),"%s[%d]->%s[%d]:%s",PlayerName(playerid),playerid,PlayerName(id), id,cmd) WriteLog("PmLog",message) Переменная message уже была объявлена в команде. WriteLog("PmLog",message) "PmLog" - имя лога, указывается в ковычках. Внимание. В logs должна быть создана папка с именем, которое указано в WriteLog(namelog[],string[]) В результате этого, вы получите такой лог: Возможные ошибки/проблемы: 1) error 017: undefined symbol "strtok" Вниз мода добавить: Это сам обЪект ворот (980 == ид объекта,1810.90 -1893.91, 15.2 == Y,X,Z координаты и 0.0,0.0,90 == rY,rX,rZ – угол поворота.) Это координаты закрытых ворот вставлять public OnPlayerCommandText(playerid, cmdtext[]) Пишем Code 200?'200px':''+(this.scrollHeight+5)+'px')"> if(!strcmp(cmdtext, "/aopen", true // сама команда для открытия ворот if(PlayerInfo playerid] pLeader] == 11 PlayerInfo playerid] pMember] == 11 // проверка на фракцию, банду .В моем случае это автошкола их ид банды == 11 if (PlayerToPoint(15, playerid,1823.19,-1861.68,15.025 //Где должен стоять игрок что бы ворота открывались (15 == это радиус отталкивается от координат. playerid == ид игрока для которого будет выполнятся эта функция (в данном случае для всех , 1823.19,-1861.68,15.025 == Y,X,Z координаты где должен стоять игрок (не забывайте про радиус! . MoveObject(gateactekos, 1810.90,-1887.3,15.2, 2 //куда будут двигаться ворота (gateactekos == переменная которой мы обозначили объект в public OnGameModeInit, 1810.90,-1887.3,15.2 == координаты Y,X,Z куда двигаются ворота, 2 == скорость движения ворот (2 оптимальная //Если вы хотите что бы ворота закрывались автоматически то пишите то что ниже ,если хотите только по клавишам то пропускайте этот пункт и читайте далее! //============================== SetTimer("gateactClose", 10000, 0 gatetimeract = SetTimer("gateactClose", 10000, 0 //Таймер открытия через сколько ворота закроются (gateactekos == переменная которой мы обозначили объект в public OnGameModeInit,10000 == время через сколько закроются ворота(указываются в миллисекундах SendClientMessage(playerid, COLOR_RED," Ворота открылись. Он будет закрыт через 10 секунд." //отсылка игроку сообщение о том что гараж открылся (playerid == ид игрока для которого будет выполнятся эта функция (в данном случае для всех , COLOR_RED == это тот самый #define которым мы заменяли хекс-код = 0xAA3333AA *это как бы цвет, " ворота открылись. Они будут закрыты через 10 секунд." == содержимое самого сообщения . Источники:
| |
Просмотров: 628 | |
Всего комментариев: 0 | |