|
Научите скриптить!
|
|
| vaiz | Дата: Вторник, 01.04.2008, 15:56 | Сообщение # 61 |
|
Новенький
Группа:
Продвинутые
Сообщений: 49
Награды: 1
Город: Fryazino
Репутация: 6
Замечания: 0%
Статус: 
| дай пример плиз поставлю +)
|
| |
|
|
| MINIMAN | Дата: Вторник, 01.04.2008, 19:26 | Сообщение # 62 |
|
Новенький
Группа:
Продвинутые
Сообщений: 25
Награды: 1
Город: Хабаровск
Репутация: 1
Замечания: 0%
Статус: 
| короче это будет примерно так создаем для зоны 2 константы #define chx 2096.1047 #define chy 1286.2859 Эта точка расположена в lAS VENTURAS возле казино со сфинксам есть коллона и в ней арка используем глобальные переменные для снятия позиции игрока new float:s_x,s_z; new float:s_y; процедура таймера public OneSecTimer() { GetPlayerPos(0,s_x,s_y,s_z); считываем координаты позиции игрока и проверяем их в квадрате координаты чекпоинта на радиусе 20. if ((s_x < chx+20)&&( s_x > chx-20) && (s_y < chy+20) && (s_y > chy-20)){ SetPlayerCheckpoint(0,2096.1047,1286.2859,10.3746,3); // создаем чекпоинт return 1; } а если мы не в квадрате чекпоинт убераем else{ DisablePlayerCheckpoint(0);} return 1; } по примеру создаем еше чекпоинты и проверяем их в одном таймере. приятной иргы. PS все действия таймера для игрока с 0 id не забуть поменять на playerid
начинаюший Программист Кончаный Ублюдок =) В ICQ ПО СКРИПТАМ НЕ СТУЧАТЬСЯ
Сообщение отредактировал MINIMAN - Вторник, 01.04.2008, 19:29 |
| |
|
|
| vaiz | Дата: Вторник, 01.04.2008, 19:37 | Сообщение # 63 |
|
Новенький
Группа:
Продвинутые
Сообщений: 49
Награды: 1
Город: Fryazino
Репутация: 6
Замечания: 0%
Статус: 
| ВО спасибо большое + тебе!
|
| |
|
|
| MINIMAN | Дата: Среда, 02.04.2008, 10:22 | Сообщение # 64 |
|
Новенький
Группа:
Продвинутые
Сообщений: 25
Награды: 1
Город: Хабаровск
Репутация: 1
Замечания: 0%
Статус: 
| если будут проблемки обрашайся )) Добавлено (02.04.2008, 07:48) --------------------------------------------- Кстати если ты будеш находиться в чекпоинте -события связанные с чекпоинтом будут повторяться из за таймера. Добавлено (02.04.2008, 10:22) --------------------------------------------- товариши для решения этой маленькой проблемки я создал еще 2 дополнительных переменных теперь кусок моего творения будет выглядеть так: new int: EnterChek=1; new int: OpenChek=0; переменные должны быть глобальными, можно ислользовать буливы переменные //процедура таймера public OneSecTimer() { if ((s_x < chx1+20)&&( s_x > chx1-20) && (s_y < chy1+20) && (s_y > chy1-20)){ SetPlayerCheckpoint(0,chx1,chy1,10.3746,3); if (OpenChek==0) { EnterChek=0; OpenChek=1;} return 1; } // пишем убирание чекпоинта без else и 1 раз в конце публикации т.к. если использовать //боьше одного чекпоинта то все кроме первого повторяються в таймере DisablePlayerCheckpoint(0); EnterChek=0; OpenChek=0; return 1; } // процедура входа в чекпоинт public OnPlayerEnterCheckpoint(playerid) { if ((EnterChek==0)&&(OpenChek=1)) { OpenChek=1; EnterChek=1; ****и в этом усовии добовляем все что хотим от чекпоинта**** } return 1; } все что выделено жирный это дополнения для прекрастной работы чекпоинтов. =)
начинаюший Программист Кончаный Ублюдок =) В ICQ ПО СКРИПТАМ НЕ СТУЧАТЬСЯ
Сообщение отредактировал MINIMAN - Среда, 02.04.2008, 14:38 |
| |
|
|
| CoOLD | Дата: Среда, 02.04.2008, 15:04 | Сообщение # 65 |
|
Новенький
Группа:
Продвинутые
Сообщений: 12
Награды: 1
Город: Петропавлск-Камчатский
Репутация: -2
Замечания: 0%
Статус: 
| Еп такие мудренные команды пишите) я тож сервак недавно завел вот осваиваюсь...мда скрипты-это целая наука
|
| |
|
|
| MINIMAN | Дата: Среда, 02.04.2008, 16:00 | Сообщение # 66 |
|
Новенький
Группа:
Продвинутые
Сообщений: 25
Награды: 1
Город: Хабаровск
Репутация: 1
Замечания: 0%
Статус: 
| вот и я думаю что последних 3 месаца прошли не на смарку. народ учите С++ или горите в аду
начинаюший Программист Кончаный Ублюдок =) В ICQ ПО СКРИПТАМ НЕ СТУЧАТЬСЯ
|
| |
|
|
| [DK]Dodge | Дата: Среда, 02.04.2008, 16:29 | Сообщение # 67 |
|
Новенький
Группа:
Продвинутые
Сообщений: 17
Награды: 1
Город: Уфа
Репутация: 0
Замечания: 0%
Статус: 
| Да как же всетаки тяжело это все понять
2bit.no-ip.org:7777 - GTO Ufa
|
| |
|
|
| MINIMAN | Дата: Среда, 02.04.2008, 19:01 | Сообщение # 68 |
|
Новенький
Группа:
Продвинутые
Сообщений: 25
Награды: 1
Город: Хабаровск
Репутация: 1
Замечания: 0%
Статус: 
| блин Товариши тестил свой скрипт ^ и поня что я забыл вам оду веш написать перед публикацией public OneSecTimer() нада вставить строчку forward OneSecTimer() а чтоб можно было использовать переменную playerid пишем так forward OneSecTimer(playerid) public OneSecTimer(playerid) { return 1; }
начинаюший Программист Кончаный Ублюдок =) В ICQ ПО СКРИПТАМ НЕ СТУЧАТЬСЯ
|
| |
|
|
| Force | Дата: Четверг, 03.04.2008, 22:06 | Сообщение # 69 |
|
Уверенный в себе
Группа:
Продвинутые
Сообщений: 209
Награды: 2
Город: Санкт-Петербург
Репутация: 24
Замечания: 0%
Статус: 
| Quote (MINIMAN) помойму на карте чекроинт может быть только один да, один, но ты можешь поставить стример, чтобы чекпойнты появлялись\пропадали в зависимости от расположения к ним игрока. Хотя теоретически ты можешь поставить хоть 100 чекпоинтов, но они будут выполнять одну и ту же функцию. Хотя ты можешь сделать проверку на координаты (IsPlayerInSphere)
|
| |
|
|
| Relax | Дата: Четверг, 03.04.2008, 22:32 | Сообщение # 70 |
|
Местный
Группа:
I'm V.I.P.
Сообщений: 686
Награды: 5
Город: Los Angeles
Репутация: 56
Замечания: 0%
Статус: 
| Quote (Force) Хотя ты можешь сделать проверку на координаты (IsPlayerInSphere) Зачем? ) Можно юзать функцию из пена PlayerToPoint
Public Enemy: LS-SF-LV Developer && Public Enemy TDM Team Leader #TDM-Community
|
| |
|
|
| MINIMAN | Дата: Четверг, 10.04.2008, 19:04 | Сообщение # 71 |
|
Новенький
Группа:
Продвинутые
Сообщений: 25
Награды: 1
Город: Хабаровск
Репутация: 1
Замечания: 0%
Статус: 
| ребятки что написано сверху у меня, работает и очень хорошо. я же не говорю что сушествует 1 решения- просто пример с таймером. И даже будет лучше если не будет работы с таймером. тем болие я не знаю все функции... =)Добавлено (10.04.2008, 19:04) --------------------------------------------- если в вас что то неработает то надо сделать так public OnGameModeInit() { // Set timer of 1 second. SetTimer("OneSecTimer", 1000, 1); return 1; }
начинаюший Программист Кончаный Ублюдок =) В ICQ ПО СКРИПТАМ НЕ СТУЧАТЬСЯ
|
| |
|
|
| Orange | Дата: Четверг, 10.04.2008, 19:27 | Сообщение # 72 |
|
Уважаемый человек
Группа:
Продвинутые
Сообщений: 945
Награды: 6
Город: San Fierro
Репутация: 101
Замечания: 0%
Статус: 
| у меня еще вопрос, что такое #pragma и зачем она используется и для чего, и пример с ней плиz а и где есть нормальный учебник С++ ?
|
| |
|
|
| pyfyc | Дата: Пятница, 11.04.2008, 14:40 | Сообщение # 73 |
|
Освоившийся
Группа:
Продвинутые
Сообщений: 118
Награды: 2
Город: Нижний Новгород
Репутация: 27
Замечания: 0%
Статус: 
| да я тоже хочу узнать зачем #pragma
Pen1: Evolution - Complete. Pen1: Reloaded v1.7 - Complete. 8 missions include. My server => 217.76.183.76:7777. Pen1: Reloaded v1.7 Ingame nick: [NY]Xumap6
|
| |
|
|
| LuxurY | Дата: Суббота, 12.04.2008, 18:15 | Сообщение # 74 |
|
Уверенный в себе
Группа:
Продвинутые
Сообщений: 281
Награды: 1
Город: OZ
Репутация: 45
Замечания: 0%
Статус: 
| #pragma используется для установки определенных настроек компилятора. объектов для настройки я насчитал 13. часто используемые: unused, tabsize, library, dynamic. подробнее читайте в документации к компилятору
www.gtascript.ru admin www.gtascript.ru - профессиональный скриптинг SA-MP, MTA
|
| |
|
|
| Orange | Дата: Суббота, 12.04.2008, 20:57 | Сообщение # 75 |
|
Уважаемый человек
Группа:
Продвинутые
Сообщений: 945
Награды: 6
Город: San Fierro
Репутация: 101
Замечания: 0%
Статус: 
| э... а где же эту заветную документацию к компилчтору мона скачать? у мя нет йеё
|
| |
|
|