 |
|
 |
|
|
|
Последние Файлы GTA 4 |
Последние Файлы GTA-MP |
Реклама |
|
|
|
|
|
О чекпоинтах
| |
| bleyz | Дата: Понедельник, 17.03.2008, 17:39 | Сообщение # 31 |
|
Постоялец
Группа:
Продвинутые
Сообщений: 479
Награды: 3
Город: Мехико
Репутация: 44
Замечания: 20%
Статус: 
| Torres, new z1 = GangZoneCreate(2452.7759,-1711.3976, 2441.0083,-1683.9060,182.9858, 2506.1646,-1693.7399,1.2427, 2529.0569,-1700.6390,13.4989); тоеть так дольнжно быть примерно так?
[GM] League Script [GM] Drift-Mod Свалка - дом Блейза [oS]_[HIT]©
|
| |
|
|
| Shadow_TDH | Дата: Понедельник, 17.03.2008, 17:57 | Сообщение # 32 |
|
Новенький
Группа:
Продвинутые
Сообщений: 48
Награды: 1
Город: Уфа
Репутация: 4
Замечания: 0%
Статус: 
| bleyz: Code new z1 = GangZoneCreate(2448.3066, -1727.9564, 2539.9016, -1629.5887); GangZoneShowForAll(z1, 0x00FF00AA); Пихай в OnGameModeInit. Грув станет зеленым.
|
| |
|
|
| bleyz | Дата: Понедельник, 17.03.2008, 18:49 | Сообщение # 33 |
|
Постоялец
Группа:
Продвинутые
Сообщений: 479
Награды: 3
Город: Мехико
Репутация: 44
Замечания: 20%
Статус: 
| пля я так и не понял как определять територии зоны...
[GM] League Script [GM] Drift-Mod Свалка - дом Блейза [oS]_[HIT]©
|
| |
|
|
| OKStyle™ | Дата: Понедельник, 17.03.2008, 20:23 | Сообщение # 34 |
|
Мастер джэдай
Группа:
I'm V.I.P.
Сообщений: 2444
Награды: 16
Город: Оренбург
Репутация: 1174
Замечания: 40%
Статус: 
| Спс Шапов, а вот ещё хотел... У меня в чекпоинте должна работать команда. Команда в паблике команд, а проверка зоны чекпоинта в паблике чекпоинта... как их совместить? Будет что-то типа: Code public OnPlayerCommandText(playerid, cmdtext[]) { if(strcmp(cmdtext, "/m4", true) == 0 && IsPlayerInCheckpoint(playerid) && IsPlayerInArea(playerid, ...)) { GivePlayerWeapon(playerid, 31, 500); // При заходе на чекпойнт в определенной зоне игроку выдается М4 с 500 патронами } return 0; } return 1; } Или как? 
Да потому что когда человек делает на заказ он не старается. © kRiSyo Кланяимся нофаму королю анимаций =))))))) © Manusya В MTA - для вас все багоюзеры. Не юзают там +с только EFO и ACF. © SeWeR
Сообщение отредактировал okstyle - Вторник, 18.03.2008, 05:39 |
| |
|
|
| Shadow_TDH | Дата: Понедельник, 17.03.2008, 20:47 | Сообщение # 35 |
|
Новенький
Группа:
Продвинутые
Сообщений: 48
Награды: 1
Город: Уфа
Репутация: 4
Замечания: 0%
Статус: 
| Я так понял тебе нужна проверка игрока в чекпойнте при вводе команды. Ну тут два варианта, либо ставь условие находится ли игрок в зоне с чекпойнтом, либо находится ли он в зоне самого чекпойнта.
|
| |
|
|
| OKStyle™ | Дата: Вторник, 18.03.2008, 05:30 | Сообщение # 36 |
|
Мастер джэдай
Группа:
I'm V.I.P.
Сообщений: 2444
Награды: 16
Город: Оренбург
Репутация: 1174
Замечания: 40%
Статус: 
| Shadow_TDH, просто если поставить проверку нахождения в чекпоинте, то команда будет работать во ВСЕХ чекпоинтах, поставленных на карту (ну кроме гоночных). А мне надо, чтобы только в 1. И ещё: в каком инклюде функция IsPlayerInArea? Её даже в правом столбике в pawno нет... Или я плохо искал... Короче пишет, что неизвестная команда...
Да потому что когда человек делает на заказ он не старается. © kRiSyo Кланяимся нофаму королю анимаций =))))))) © Manusya В MTA - для вас все багоюзеры. Не юзают там +с только EFO и ACF. © SeWeR
Сообщение отредактировал okstyle - Вторник, 18.03.2008, 05:39 |
| |
|
|
| Shadow_TDH | Дата: Вторник, 18.03.2008, 08:41 | Сообщение # 37 |
|
Новенький
Группа:
Продвинутые
Сообщений: 48
Награды: 1
Город: Уфа
Репутация: 4
Замечания: 0%
Статус: 
| Ни в каком, её надо самому вставить в код Code public IsPlayerInArea(playerid, Float:minx, Float:maxx, Float:miny, Float:maxy) { new Float:x, Float:y, Float:z; GetPlayerPos(playerid, x, y, z); if (x > minx && x < maxx && y > miny && y < maxy) return 1; return 0; } Если ты при помощи IsPlayerInArea будешь проверять, находится ли игрок в зоне чекпойнта, то команда будет работать только на одном.
|
| |
|
|
| OKStyle™ | Дата: Вторник, 18.03.2008, 08:50 | Сообщение # 38 |
|
Мастер джэдай
Группа:
I'm V.I.P.
Сообщений: 2444
Награды: 16
Город: Оренбург
Репутация: 1174
Замечания: 40%
Статус: 
| я написал так: Code #define MAX_POINTS 1 (кол-во координат зон, у меня пока 1) forward isPlayerInArea(playerid, Float:data[4]); new Float:checkCoords[MAX_POINTS][4] = { {200.6060,218.6642,-112.0051,-95.1402} // вот она 1 зона }; public isPlayerInArea(playerid, Float:data[4]) { new Float:X, Float:Y, Float:Z; GetPlayerPos(playerid, X, Y, Z); if(X >= data[0] && X <= data[2] && Y >= data[1] && Y <= data[3]) { SetPlayerCheckpoint(playerid, 180.9803,-91.7398,1002.0234, 2.0); } return DisablePlayerCheckpoint(playerid); } Но не работает... Это чтобы чекпоинт появлялся только при нахождении игрока в зоне.
Да потому что когда человек делает на заказ он не старается. © kRiSyo Кланяимся нофаму королю анимаций =))))))) © Manusya В MTA - для вас все багоюзеры. Не юзают там +с только EFO и ACF. © SeWeR
Сообщение отредактировал okstyle - Вторник, 18.03.2008, 08:52 |
| |
|
|
| Shadow_TDH | Дата: Вторник, 18.03.2008, 09:08 | Сообщение # 39 |
|
Новенький
Группа:
Продвинутые
Сообщений: 48
Награды: 1
Город: Уфа
Репутация: 4
Замечания: 0%
Статус: 
| Я немного не понял, зачем ты саму функцию-то изменил? Она у тебя щас будет возвращать только отключение чекпойнта. А эти координаты вообще зачем, если ты их не проверяешь даже? Code new Float:checkCoords[MAX_POINTS][4] = { {200.6060,218.6642,-112.0051,-95.1402} // вот она 1 зона }; Вообщем делай так. Заменяй на ту isPlayerInArea что у тебя в скрипте: Code public IsPlayerInArea(playerid, Float:minx, Float:maxx, Float:miny, Float:maxy) { new Float:x, Float:y, Float:z; GetPlayerPos(playerid, x, y, z); if (x > minx && x < maxx && y > miny && y < maxy) return 1; return 0; } Потом при вводе определенной команды делай проверку Code if(IsPlayerInArea(playerid, 200.6060,218.6642,-112.0051,-95.1402) ) { // Здесь что-то происходит }
|
| |
|
|
| OKStyle™ | Дата: Вторник, 18.03.2008, 09:11 | Сообщение # 40 |
|
Мастер джэдай
Группа:
I'm V.I.P.
Сообщений: 2444
Награды: 16
Город: Оренбург
Репутация: 1174
Замечания: 40%
Статус: 
| Shadow_TDH, угу, допёр уже... Забыл про двойное условие... Спасибо. Только вот тут: Code if (x > minx && x < maxx && y > miny && y < maxy) return 1; не надо ставить числа? И ещё: для создание чекпоинтов в здании, нужно интерьер задавать? А то ставлю координаты, а чекпоинт совершенно в другом месте на улице ставится. И последний: Code if(IsPlayerInArea(playerid, 200.6060,218.6642,-112.5288,-95.1402)) {SetPlayerCheckpoint(playerid, 217.7404,-98.4613,1005.2578, 2.0);} я вставил в OnPlayerSpawn. Ничего не происходит... Чекпоинт не появляется при заходе в зону.
Да потому что когда человек делает на заказ он не старается. © kRiSyo Кланяимся нофаму королю анимаций =))))))) © Manusya В MTA - для вас все багоюзеры. Не юзают там +с только EFO и ACF. © SeWeR
Сообщение отредактировал okstyle - Вторник, 18.03.2008, 09:47 |
| |
|
|
| Shadow_TDH | Дата: Вторник, 18.03.2008, 11:21 | Сообщение # 41 |
|
Новенький
Группа:
Продвинутые
Сообщений: 48
Награды: 1
Город: Уфа
Репутация: 4
Замечания: 0%
Статус: 
| Попробуй замени на Code if(IsPlayerInArea(playerid, 200.6060,218.6642,-112.5288,-95.1402)) {SetPlayerCheckpoint(playerid, 217.7404,-98.4613,1005.2578, 2.0); print("You've entered the zone."} Если в консоли при заходе в зону выведется сообщение "You've entered the zone", значит дело в чекпойнте. Если нет - проблема в зоне. Хотя по координатам все нормально выглядит. Quote (okstyle) Shadow_TDH, угу, допёр уже... Забыл про двойное условие... Спасибо.Только вот тут:Code if (x > minx && x < maxx && y > miny && y < maxy) return 1; не надо ставить числа? Нет, не надо. Здесь происходит сравнение текущей позиции игрока с позициями, заданными в зоне. Т.е. например если x больше минимального значения x (в даном случае это 200.6060), меньше максимального, а y больше мин и меньше макс то функция возвратит значение 1 (игрок находится в зоне). Quote (okstyle) И ещё: для создание чекпоинтов в здании, нужно интерьер задавать? А то ставлю координаты, а чекпоинт совершенно в другом месте на улице ставится. Ну я не знаю можно ли вообще чекпойнты в интерьерах создавать.. Но интерьер задать можно только игроку, а не чекпойнту..
|
| |
|
|
| LuxurY | Дата: Среда, 19.03.2008, 12:21 | Сообщение # 42 |
|
Уверенный в себе
Группа:
Продвинутые
Сообщений: 281
Награды: 1
Город: OZ
Репутация: 45
Замечания: 0%
Статус: 
| епт) а не проще скачать вот эту штуку? http://forum.sa-mp.com/index.php?topic=40383.0
www.gtascript.ru admin www.gtascript.ru - профессиональный скриптинг SA-MP, MTA
|
| |
|
|
| WintMax | Дата: Среда, 19.03.2008, 13:43 | Сообщение # 43 |
|
Местный
Группа:
Продвинутые
Сообщений: 562
Награды: 2
Город: Ростов-на-Дону
Репутация: 67
Замечания: 0%
Статус: 
| Это я так понимаю, инкуилды?))
|
| |
|
|
| OKStyle™ | Дата: Среда, 19.03.2008, 16:13 | Сообщение # 44 |
|
Мастер джэдай
Группа:
I'm V.I.P.
Сообщений: 2444
Награды: 16
Город: Оренбург
Репутация: 1174
Замечания: 40%
Статус: 
| LuxurY, смысл твоего инклюда? Все чекпоинты одновременно появляются на карте и обозначаются красным квадратом? Shadow_TDH, а где вставить код создания чекпоинта при нахождении в зоне? в какой паблик? Попробовал Spawn, Connect и несколько других.. Никаких изменений. Я поставил так (в OnPlayerSpawn): Code if(IsPlayerInArea(playerid, 200.6060,218.6642,-112.5288,-95.1402)) { SetPlayerCheckpoint(playerid, 217.7404,-98.4613,1005.2578, 2.0); SendClientMessage(playerid,COLOR_LIGHTBLUE," Ты в зоне чекпоинта"); } Ничего не написал (цвет я в define закидывал, так что всё ок)
Да потому что когда человек делает на заказ он не старается. © kRiSyo Кланяимся нофаму королю анимаций =))))))) © Manusya В MTA - для вас все багоюзеры. Не юзают там +с только EFO и ACF. © SeWeR
Сообщение отредактировал okstyle - Среда, 19.03.2008, 16:16 |
| |
|
|
| Shadow_TDH | Дата: Среда, 19.03.2008, 17:33 | Сообщение # 45 |
|
Новенький
Группа:
Продвинутые
Сообщений: 48
Награды: 1
Город: Уфа
Репутация: 4
Замечания: 0%
Статус: 
| Надо таймер ставить.
|
| |
|
|
|
 |
|
 | |
| |
|