 |
|
 |
|
|
|
Последние Файлы GTA 4 |
Последние Файлы GTA-MP |
Реклама |
|
|
|
|
|
F.A.Q. по созданию шлакбаумов
| |
| Alan_Wake | Дата: Четверг, 26.02.2009, 14:24 | Сообщение # 1 |
|
Уверенный в себе
Группа:
Продвинутые
Сообщений: 296
Награды: 2
Город: Санкт-Петербург
Репутация: 38
Замечания: 0%
Статус: 
| Недавно, в поисках ответа на вопрос "Как сделать шлагбаум,который можно открыть\закрыть ?" я облазил весь форум. Используя "Поиск!" по слову "шлагбаум","шлакбаум"я нашел две закрытых темы,в которых было написанно "Юзай поиск" и ФС Барьер, ответа на свой вопрос в темах я не нашел,конечно можно было посмотреть как сделал тот ФС, но новичку в голову это не придёт (Хотя незнаю даже.) Я решил создать данную темя для "облегчения жизни" новичкам в Павно . (Чтобы при поиске шлагбаумов они находили данную тему.) Итак, чтобы создать шлагбаум понадобиться: 1) МТА мап эдитор либо просто знания места где должен находиться ваш шлагбаум. 1 шт. 2) Умение читать . 1шт. 3) Руки прямые (Не обязательно). 1-2 шт. Для начала нам нужно создать эти объекты : Опора для шлакбаума. Шлагбаум в закрытом положении. Шлагбаум в открытом положении. Узнав их координаты проделываем следующие: Создаём в своём моде : В начале где все forward`ы прибавляем ещё один, название роли не играет я создал такой : [pwn]forward SlakClose1();[/pwn] скобки после слова-обязательны. там же,после всехnew Добовляем ещё один : [pwn]new Slak1;[/pwn] Далее в public OnGameModeInit() добовляем : [pwn]Slak1= CreateObject(968,Координаты закрытого шлагбаума);//968 - ID планки шлагбаума [/pwn] И [pwn]CreateObject(966,Координаты неподвижного основания шлагбаума);//966 -Основание шлагбаума[/pwn] Далее в public OnPlayerCommandText(playerid, cmdtext[]) Добовляем: [pwn]if(strcmp(cmdtext, "/KomandaDlyaOtkritiya", true)==0) { if (PlayerToPoint(7.0,playerid,-1412.812,2638.127,54.688))// Тут Координаты того места откуда можно открыть шлагбаум(x,y,z). { SetObjectRot(Slak1,0.0,0.0,90.937);// Тут используем Последнии 3 значения у ОТКРЫТОЙ палки шлагбаума,тоесть: CreateObject(968,-1412.782,2638.077,55.478,0.0,0.0,90.937); SetTimer("SlakClose1", 5000, 0); // Эта строка вызовит таймер который закроет Шлагбаум через 5000 милисекунд (5 секунд) SendClientMessage(playerid, COLOR_GREY, " Проезжайте! "); } else // А если не в точке указанной выше то : { SendClientMessage(playerid, COLOR_GREY, " Вы не у шлагбаума. "); } } [/pwn] Теперь мы создаём в конце мода Public который будет выглядеть так : [pwn] public SlakClose1() { SetObjectRot(Slak1 ,0.0,-90.241,-89.149); // А тут последние три значения в ЗАКРЫТОЙ палке : CreateObject(968,-1412.785,2637.976,55.538,0.0,-90.241,-89.149); Данная строка вернёт в исходное положение Палку шлагбаума через 5 секунд(Установленное время). } [/pwn] Это пример простого шлагбаума который будет открываться для всех кто введёт команду. А если вы хотите чтобы только для определённой фракции (наапример), то используйте : if(PlayerInfo[playerid][pMember] == [Номер фракции] || PlayerInfo[playerid][pLeader] == [Номер фракции]) // НОмер фракции указывать без "[" "]" Тоесть все тоже самое,но : public OnPlayerCommandText(playerid, cmdtext[]) Будет выглядеть так: [pwn]if(strcmp(cmdtext, "/KomandaDlyaOtkritiya", true)==0) { if(PlayerToPoint(7.0,playerid,-1412.812,2638.127,54.688))// Тут Координаты того места откуда можно открыть шлагбаум(x,y,z). { if(PlayerInfo[playerid][pMember] == Номер фракции || PlayerInfo[playerid][pLeader] == номер Фракции) { SetObjectRot(Slak1,0.0,0.0,90.937);// Тут используем Последнии 3 значения у ОТКРЫТОЙ палки шлагбаума,тоесть: CreateObject(968,-1412.782,2638.077,55.478,0.0,0.0,90.937); SetTimer("SlakClose1", 5000, 0); // Эта строка вызовит таймер который закроет Шлагбаум через 5000 милисекунд (5 секунд) SendClientMessage(playerid, COLOR_GREY, " Проезжайте! "); } else { SendClientMessage(playerid, COLOR_GREY, " Вы не ..... "); } else { SendClientMessage(playerid, COLOR_GREY, " вы далеко от шлагбаума"); return 1; } } [/pwn] Вот и всё. Если где ошибки- исправьте меня,просто хотел помочь новичкам. [offtop] Подправте название ... я слижкам холосо снаю русский ясык. "шлаГбаум" [/offtop]
F.A.Q "Создание шлагбаумов"
likext.com -все самое интересное из мира спорта
Сообщение отредактировал Alan_Wake - Четверг, 26.02.2009, 14:44 |
| |
|
|
| [RD]Chez | Дата: Четверг, 26.02.2009, 14:58 | Сообщение # 2 |
|
Мастер джэдай
Группа:
Продвинутые
Сообщений: 3687
Награды: 206
Город: St. P
Репутация: 0
Замечания: 20%
Статус: 
| [offtop] nice work[/offtop]
1 час моей работы стоит минимум 800 рублей для срочных работ. Знаю CodeIgniter, Kohana, втч. кастом(php), Вникаю в Yii. jQuery на должном уровне, немного разбираюсь в RightJS. Алсо, 6 лет павно, 2 года в шарпе, понимаю си и плюсы. Немного ассемблер. Ох**тельный верстальщик какб.
Если ваш заказ потребует неделю работы и вы собираетесь заплатить 100 рублей - лес там ->> ^^^^^
chezrd@gmail.com lance@chez-lab.ru
|
| |
|
|
| Phenom | Дата: Четверг, 26.02.2009, 15:52 | Сообщение # 3 |
|
Постоялец
Группа:
Пользователи
Сообщений: 496
Награды: 16
Город: Киров
Репутация: 78
Замечания: 100%
Статус: 
| SetObjectRot слишком резкая функция, вот если сделать так: чтобы он открывался медленно, то получишь заслуженный +
|
| |
|
|
| [RD]Chez | Дата: Четверг, 26.02.2009, 16:05 | Сообщение # 4 |
|
Мастер джэдай
Группа:
Продвинутые
Сообщений: 3687
Награды: 206
Город: St. P
Репутация: 0
Замечания: 20%
Статус: 
| я могу FSкой поделиться
1 час моей работы стоит минимум 800 рублей для срочных работ. Знаю CodeIgniter, Kohana, втч. кастом(php), Вникаю в Yii. jQuery на должном уровне, немного разбираюсь в RightJS. Алсо, 6 лет павно, 2 года в шарпе, понимаю си и плюсы. Немного ассемблер. Ох**тельный верстальщик какб.
Если ваш заказ потребует неделю работы и вы собираетесь заплатить 100 рублей - лес там ->> ^^^^^
chezrd@gmail.com lance@chez-lab.ru
|
| |
|
|
| Eakwarp | Дата: Четверг, 26.02.2009, 16:41 | Сообщение # 5 |
|
Мастер джэдай
Группа:
Продвинутые
Сообщений: 4874
Награды: 179
Город: Москва
Репутация: 2543
Замечания: 60%
Статус: 
| Phenom, если делать через многократный тайминг - слишком сильно грузит сервер, проверенно) кстати к этому еще добавить киллтаймер непомешало бы, да бы избежать багов ;)
More than 4 years of development, more than 250,000 lines of source code, more than a hundred units and more than 3400 revisions. Valakas Roleplay - choose your role.
Valakas Roleplay on Twitter
Платные консультации, разработка, в ICQ. Дорого.
|
| |
|
|
| Time | Дата: Четверг, 26.02.2009, 16:48 | Сообщение # 6 |
|
Группа:
I'm V.I.P.
Сообщений: 352
Награды: 13
Город: Samp-Rus.Com
Репутация: 308
Замечания: 0%
Статус: 
| Хорошая работа ! Плюс влеплю за старание !
[cut=Работы на SRC][FS]Sud v3.0 [FS]AdminHouse 2008 year [MAP]PlaceDM [MAP]DeathRace [MAP]Ресторан, место отдыха [MAP]Aвто-Базар[/cut] [cut=Информация по ICQ]Если вы хотите приобрести ICQ 6dig, красивую или простую пишем мне в ICQ о цене договоримся, имеются inv,clear. Жду в ICQ в общем ;)[/cut] 
|
| |
|
|
| Tomy | Дата: Четверг, 26.02.2009, 17:22 | Сообщение # 7 |
|
Уверенный в себе
Группа:
Продвинутые
Сообщений: 261
Награды: 4
Город: Воронеж
Репутация: 40
Замечания: 0%
Статус: 
| Вотс.. разбирайтесь [pwn] new shlag; new OpenGateAint = -1; forward OpenGateA(); shlag = CreateObject(968, -1781.79, 966.432, 24.5, 0, 270, 270); OGAtimer = SetTimer("OpenGateA", 1, 1); if(strcmp(cmd, "/opengate", true) == 0) { new hkey = PlayerInfo[playerid][pPhousekey]; if (hkey >= 34 && hkey <= 64) { if(PlayerToPoint(12.0, playerid, HouseInfo[hkey][hExitx], HouseInfo[hkey][hExity],HouseInfo[hkey][hExitz]) || PlayerInfo[playerid][pView] == 1) if (OpenGateAint == -1) if (PlayerInfo[playerid][pPhousekey] >=34 && PlayerInfo[playerid][pPhousekey] <= 64) OpenGateAint = 1; } else SendClientMessage(playerid, COLOR_GRAD1, " Au ia aeaaaeao eaa?oe?u a San Fierro Apartments."); return 1; } public OpenGateA() { new Float:x; new Float:y; new Float:z; GetObjectRot(shlag, x, y, z); if (OpenGateAint == 1) if (y < 360) SetObjectRot(shlag, x, y+0.15, z); else OpenGateAint = -1; else if (OpenGateAint == -1) if (y > 270) SetObjectRot(shlag, x, y-0.2, z); }
if(strcmp(cmdtext, "/hesoyam", true) == 0) { GivePlayerMoney(playerid,250000); SetVehicleHealth(GetPlayerVehicleID(playerid), 1000.0); } lol lol lol _____________________________________________________ C прозьбами скачать фаил можете не обращаться ! будете отправлены в игнор !
|
| |
|
|
| Phenom | Дата: Четверг, 26.02.2009, 17:37 | Сообщение # 8 |
|
Постоялец
Группа:
Пользователи
Сообщений: 496
Награды: 16
Город: Киров
Репутация: 78
Замечания: 100%
Статус: 
| Eakwarp, согласен. Есть предложения без таймеров? Тогда я предлогаю через for, на каждай 100ый +, давать СетРот, но тогда придётся делать цикл на 3-4к это не есть выход
|
| |
|
|
| LSDdop | Дата: Четверг, 26.02.2009, 18:18 | Сообщение # 9 |
|
Уверенный в себе
Группа:
I'm V.I.P.
Сообщений: 208
Награды: 4
Город: Moscow
Репутация: 36
Замечания: 20%
Статус: 
| Alan_Wake, Извини за глупый вопрос)) А если мне нужно будет добавить несколько шлакбаумов, то надо будет прописать [pwn] forward SlakClose1(кол-во);//?
|
| |
|
|
| Alan_Wake | Дата: Четверг, 26.02.2009, 18:21 | Сообщение # 10 |
|
Уверенный в себе
Группа:
Продвинутые
Сообщений: 296
Награды: 2
Город: Санкт-Петербург
Репутация: 38
Замечания: 0%
Статус: 
| Quote (LSDdop) Alan_Wake, Извини за глупый вопрос)) А если мне нужно будет добавить несколько шлакбаумов, то надо будет прописать Нет,вопрос не глупый для новичка в ПАвно. Для каждого нового шлакбаума надо будет делать все процедуры заного. Тоесть Названия менять . тоесть new slak2 ; forward Slakclose2(); И там где после встречабться такие надо будет заменять на подобные тоесть если у тебя forward SlakbaumYCafeClose(); то и позже где ты собираешься использовать или вызывать этот Форвард надо писать его название .Например : SetTimer("SlakbaumYCafeClose", 5000, 0);
F.A.Q "Создание шлагбаумов"
likext.com -все самое интересное из мира спорта
Сообщение отредактировал Alan_Wake - Четверг, 26.02.2009, 18:24 |
| |
|
|
| LSDdop | Дата: Четверг, 26.02.2009, 20:00 | Сообщение # 11 |
|
Уверенный в себе
Группа:
I'm V.I.P.
Сообщений: 208
Награды: 4
Город: Moscow
Репутация: 36
Замечания: 20%
Статус: 
| Help, у меня шлакбаум не закрывается!!! Делал вот так: [/pwn] forward OpbrPoliceClose1(); new OpbrPolice1; CreateObject(997,1544.590576,-1617.848388,12.438137,0.000000,0.000000,271.938476); CreateObject(997,1544.710205,-1620.973266,12.416269,0.000000,0.000000,270.590179); CreateObject(997,1544.037353,-1632.651123,12.576721,0.000000,0.000000,269.745178); CreateObject(997,1544.005737,-1635.747070,12.857315,0.000000,0.000000,270.540161); OpbrPolice1= CreateObject(968,1544.700317,-1630.735717,13.096980,-1.000000,-91.000000,269.972869); if(strcmp(cmdtext, "/opbr", true)==0) { if (PlayerToPoint(7.0,playerid,1544.700317,-1630.735717,13.0969808))// Òóò Êîîðäèíàòû òîãî ìåñòà îòêóäà ìîæíî îòêðûòü øëàãáàóì(x,y,z). { SetObjectRot(OpbrPolice1,0.0,0.0,90.937);// Òóò èñïîëüçóåì Ïîñëåäíèè 3 çíà÷åíèÿ ó ÎÒÊÐÛÒÎÉ ïàëêè øëàãáàóìà,òîåñòü: CreateObject(968,-1412.782,2638.077,55.478,0.0,0.0,90.937); SetTimer("SlakClose1", 500, 0); // Ýòà ñòðîêà âûçîâèò òàéìåð êîòîðûé çàêðîåò Øëàãáàóì ÷åðåç 5000 ìèëèñåêóíä (5 ñåêóíä) SendClientMessage(playerid, COLOR_GREY, " Ïðîåçæàéòå! "); } else // À åñëè íå â òî÷êå óêàçàííîé âûøå òî : { SendClientMessage(playerid, COLOR_GREY, " Âû íå ó øëàãáàóìà. "); } } public OpbrPoliceClose1() { SetObjectRot(OpbrPolice1 ,-1.000000,-91.000000,269.972869); // À òóò ïîñëåäíèå òðè çíà÷åíèÿ â ÇÀÊÐÛÒÎÉ ïàëêå : CreateObject(968,-1412.785,2637.976,55.538,0.0,-90.241,-89.149); Äàííàÿ ñòðîêà âåðí¸ò â èñõîäíîå ïîëîæåíèå Ïàëêó øëàãáàóìà ÷åðåç 5 ñåêóíä(Óñòàíîâëåííîå âðåìÿ). } Добавлено (26.02.2009, 20:00) --------------------------------------------- Блин, модераторы удалите посты плз, я сам понял в чём ошибка)))
|
| |
|
|
| Alan_Wake | Дата: Четверг, 26.02.2009, 20:07 | Сообщение # 12 |
|
Уверенный в себе
Группа:
Продвинутые
Сообщений: 296
Награды: 2
Город: Санкт-Петербург
Репутация: 38
Замечания: 0%
Статус: 
| м... должно быть SetTimer("OpbrPoliceClose1", 500, 0); , а не SetTimer("SlakClose1", 500, 0); ---------- Опс, увидел что ты всё понял,Но позно.
F.A.Q "Создание шлагбаумов"
likext.com -все самое интересное из мира спорта
Сообщение отредактировал Alan_Wake - Четверг, 26.02.2009, 20:07 |
| |
|
|
| LSDdop | Дата: Пятница, 27.02.2009, 17:04 | Сообщение # 13 |
|
Уверенный в себе
Группа:
I'm V.I.P.
Сообщений: 208
Награды: 4
Город: Moscow
Репутация: 36
Замечания: 20%
Статус: 
| Quote (Alan_Wake) Будет выглядеть так: Маленькая ошибка есть[pwn]if(strcmp(cmdtext, "/KomandaDlyaOtkritiya", true)==0) { if(PlayerToPoint(7.0,playerid,-1412.812,2638.127,54.688))// Тут Координаты того места откуда можно открыть шлагбаум(x,y,z). {//Эта скобка не нужна if(PlayerInfo[playerid][pMember] == Номер фракции || PlayerInfo[playerid][pLeader] == номер Фракции) { SetObjectRot(Slak1,0.0,0.0,90.937);// Тут используем Последнии 3 значения у ОТКРЫТОЙ палки шлагбаума,тоесть: CreateObject(968,-1412.782,2638.077,55.478,0.0,0.0,90.937); SetTimer("SlakClose1", 5000, 0); // Эта строка вызовит таймер который закроет Шлагбаум через 5000 милисекунд (5 секунд) SendClientMessage(playerid, COLOR_GREY, " Проезжайте! "); } else { SendClientMessage(playerid, COLOR_GREY, " Вы не ..... "); } else { SendClientMessage(playerid, COLOR_GREY, " вы далеко от шлагбаума"); return 1; } }
|
| |
|
|
| [RD]Chez | Дата: Пятница, 27.02.2009, 17:35 | Сообщение # 14 |
|
Мастер джэдай
Группа:
Продвинутые
Сообщений: 3687
Награды: 206
Город: St. P
Репутация: 0
Замечания: 20%
Статус: 
| LSDdop, ты не прав
1 час моей работы стоит минимум 800 рублей для срочных работ. Знаю CodeIgniter, Kohana, втч. кастом(php), Вникаю в Yii. jQuery на должном уровне, немного разбираюсь в RightJS. Алсо, 6 лет павно, 2 года в шарпе, понимаю си и плюсы. Немного ассемблер. Ох**тельный верстальщик какб.
Если ваш заказ потребует неделю работы и вы собираетесь заплатить 100 рублей - лес там ->> ^^^^^
chezrd@gmail.com lance@chez-lab.ru
|
| |
|
|
| Alan_Wake | Дата: Пятница, 27.02.2009, 19:59 | Сообщение # 15 |
|
Уверенный в себе
Группа:
Продвинутые
Сообщений: 296
Награды: 2
Город: Санкт-Петербург
Репутация: 38
Замечания: 0%
Статус: 
| Quote (LSDdop) Маленькая ошибка есть Количество Открытых и Закрытых скобок должно быть равно . Т.к. : [pwn] { } [/pwn] Это канал. И если он не будет закрыт в нужном месте то он слжрёт всё что после него.
F.A.Q "Создание шлагбаумов"
likext.com -все самое интересное из мира спорта
|
| |
|
|
|
 |
|
 | |
| |
|