|
|
|
|
[НАРАБОТКА]Выбор героев
|
|
_Seferot_ | Дата: Воскресенье, 11 Января 2009, 20:13:57 | Сообщение # 1 |
3 уровень
Группа: Пользователи
Сообщений: 44
Награды: 0
Репутация: 5
Блокировки:
| Заметил что до сих пор среди новичков есть вопрос "Как сделать выбор героя, типа встал на нужный круг и он появился?" Решил немного облегчить эту задачу. Собственно наработка пригодится не только новичкам я думаю.. Основной её плюс - существенное сокращение триггеров. При настройке указываются только области, для каждого героя нужно 2 (или 3, это зависит от того что нужно) параметра. Всё, остальное система сделает сама т.е. создаст триггер для каждого из ваших героев. Для дополнения не рекомендуется лезть в код, для этого есть отдельный триггер. Думаю его найдут =) Т.е. в картах где сотня героев нужно создать 100 триггеров, что есть большой геморой. Наработка позволяет сократить всё это до 3 триггеров (это и есть вся система =) Наработка написана на скорую руку, так что у кого есть талант к тестированию, потестите плз =) О багах отпишитесь
Прикрепления:
sh.w3x
(20.7 Kb)
Сообщение отредактировал _Seferot_ - Воскресенье, 11 Января 2009, 20:14:14 |
|
|
|
BuHHu-nyX | Дата: Воскресенье, 11 Января 2009, 21:09:57 | Сообщение # 2 |
50 уровень Превед медвед
Группа: Ветераны
Сообщений: 1941
Награды: 2
Репутация: 437
Блокировки:
| Карту не смотрел, но насчет этого: Quote (_Seferot_) Т.е. в картах где сотня героев нужно создать 100 триггеров, что есть большой геморой. Не согласен, ибо можно создавать условия. Но триггер будет большеват.
|
|
|
|
MaSer | Дата: Воскресенье, 11 Января 2009, 21:14:56 | Сообщение # 3 |
Котобог
Группа: Стримеры
Сообщений: 3574
Награды: 13
Блокировки:
| пробежался глазами, массивы юнитов и областей глаза режут :\
|
|
|
|
_Seferot_ | Дата: Понедельник, 12 Января 2009, 18:51:27 | Сообщение # 4 |
3 уровень
Группа: Пользователи
Сообщений: 44
Награды: 0
Репутация: 5
Блокировки:
| MaSer, согласен. Но людей, не знающих джасс в код допускать нельзя. Можно было всё полностью на кеше сделать, то тогда заносить параметры было бы менее удобно. Добавлено (12-01-2009, 18:51) --------------------------------------------- тестеров нету? =\ Нашёл вапрос о респауне крипов. =) Написал небольшую системку, воскрешает крипов через определённое время в том месте, где они погибли. Не буду выкладывать всю карту, кода немного. В карте требуются 2 переменные: Code cache - Буфер игры (gamecache) RCS_default_time - Реальная (real) Это в коде карты: Code function GetObjectID takes handle h returns integer return h return 0 endfunction function CreateCache takes nothing returns gamecache call InitGameCacheBJ("WM_GameCache.w3v") call FlushGameCacheBJ(GetLastCreatedGameCacheBJ()) call InitGameCacheBJ("WM_GameCache.w3v") set udg_cache = GetLastCreatedGameCacheBJ() return udg_cache endfunction function cache takes nothing returns gamecache local gamecache gs if udg_cache == null then set gs = CreateCache() else set gs = udg_cache endif return gs endfunction function key takes nothing returns string return "WCMods_Key" endfunction function SetIntForObject takes handle h, integer r, string s returns nothing call StoreInteger(cache(), I2S(GetObjectID(h)), s + I2S(GetObjectID(h)), r) endfunction function GetIntForObject takes handle u, string s returns integer return GetStoredInteger(cache(), I2S(GetObjectID(u)), s + I2S(GetObjectID(u))) endfunction function SetRealForObject takes handle h, real r, string s returns nothing call StoreReal(cache(), I2S(GetObjectID(h)), s + I2S(GetObjectID(h)), r) endfunction function GetRealForObject takes handle u, string s returns real return GetStoredReal(cache(), I2S(GetObjectID(u)), s + I2S(GetObjectID(u))) endfunction function FlushKeyForObject takes handle h returns nothing call FlushStoredMission(cache(), I2S(GetObjectID(h))) endfunction Вот собстевнно код наработки (для неё нужно создать триггер с названием RCS, перевести его в JASS и весь код заменить на следующий): Code function ConditionAP takes nothing returns boolean return GetOwningPlayer(GetDyingUnit()) == Player(PLAYER_NEUTRAL_AGGRESSIVE) endfunction function RespawnCreep takes nothing returns nothing local timer t = GetExpiredTimer() local location cl = Location(GetRealForObject(t, "unit_pos_x"), GetRealForObject(t, "unit_pos_y")) local integer tu = GetIntForObject(t, "id_dying_unit") call CreateUnitAtLoc(Player(PLAYER_NEUTRAL_AGGRESSIVE), tu, cl, 200) call FlushKeyForObject(t) call DestroyTimer(t) call RemoveLocation(cl) set t = null set tu = 0 endfunction function RCSAction takes nothing returns nothing local real time = udg_RCS_default_time local timer t = CreateTimer() local integer dc = GetUnitTypeId(GetDyingUnit()) if GetUnitUserData(GetDyingUnit()) > 0 then set time = I2R(GetUnitUserData(GetDyingUnit())) endif call SetIntForObject(t, dc, "id_dying_unit") call SetRealForObject(t, GetLocationX(GetUnitLoc(GetDyingUnit())), "unit_pos_x") call SetRealForObject(t, GetLocationY(GetUnitLoc(GetDyingUnit())), "unit_pos_y") call TimerStart(t, time, false, function RespawnCreep) endfunction
//=========================================================================== function InitTrig_RCS takes nothing returns nothing set gg_trg_RCS = CreateTrigger() call TriggerRegisterAnyUnitEventBJ(gg_trg_RCS, EVENT_PLAYER_UNIT_DEATH) call TriggerAddAction(gg_trg_RCS, function RCSAction) call TriggerAddCondition(gg_trg_RCS, Condition(function ConditionAP)) endfunction З.Ы. Если для какого то юнита на карте требуется индивидуальное время респавна, которое будет отличаться от времени, занесённого в переменную RCS_default_time, нужно этому юниту в кастом валуе указать нужное время.
|
|
|
|
Арран | Дата: Понедельник, 12 Января 2009, 20:45:28 | Сообщение # 5 |
10 уровень
Группа: Ветераны
Сообщений: 2172
Награды: 1
Репутация: 312
Блокировки:
| Quote (_Seferot_) среди новичков в томто и дело, что среди новичков...думаешь новички разберутся в таких кодах?макимум что им надо-простые триггеры, и вообще, не думаю, что это так уж много сделать для каждого героя условие по сравнению со всем этим
|
|
|
|
_Seferot_ | Дата: Понедельник, 12 Января 2009, 23:05:39 | Сообщение # 6 |
3 уровень
Группа: Пользователи
Сообщений: 44
Награды: 0
Репутация: 5
Блокировки:
| Quote (Арран) в томто и дело, что среди новичков...думаешь новички разберутся в таких кодах?макимум что им надо-простые триггеры, и вообще, не думаю, что это так уж много сделать для каждого героя условие по сравнению со всем этим Почему то я думаю что ты написал это, не смотря собственно саму наработку) Там всё сделано именно для удобства новичков и там работать нужно именно с простыми триггерами как ты выразился. Так что прежде чем комментировать, хотя бы вдумайся в суть
|
|
|
|
Арран | Дата: Вторник, 13 Января 2009, 13:05:28 | Сообщение # 7 |
10 уровень
Группа: Ветераны
Сообщений: 2172
Награды: 1
Репутация: 312
Блокировки:
| _Seferot_, хех, как раз таки собственно просмотрел, не думаю, что там легко можно понять что именно в коде надо изменить чтобы выбрать область куда надо заходить или даже как менять какого получаешь героя
|
|
|
|
_Seferot_ | Дата: Вторник, 13 Января 2009, 15:25:25 | Сообщение # 8 |
3 уровень
Группа: Пользователи
Сообщений: 44
Награды: 0
Репутация: 5
Блокировки:
| Quote (Арран) _Seferot_, хех, как раз таки собственно просмотрел, не думаю, что там легко можно понять что именно в коде надо изменить чтобы выбрать область куда надо заходить или даже как менять какого получаешь героя жжёшь) У тебя глобальные методы я сматрю) А изучать надо было внимательней. То что ты сказал "непонятно" вносится всего лишь в глобальные переменные
|
|
|
|
BuHHu-nyX | Дата: Среда, 14 Января 2009, 19:25:54 | Сообщение # 9 |
50 уровень Превед медвед
Группа: Ветераны
Сообщений: 1941
Награды: 2
Репутация: 437
Блокировки:
| _Seferot_, я думаю, Ув. Арран имеет ввиду, что многие новички не имеют понятие о массивах и т.д.
|
|
|
|
_Seferot_ | Дата: Среда, 14 Января 2009, 19:52:59 | Сообщение # 10 |
3 уровень
Группа: Пользователи
Сообщений: 44
Награды: 0
Репутация: 5
Блокировки:
| BuHHu-nyX, мне так не кажется из-за фразы Quote (Арран) не думаю, что там легко можно понять что именно в коде надо изменить чтобы выбрать область куда надо заходить или даже как менять какого получаешь героя
|
|
|
|
Арран | Дата: Среда, 14 Января 2009, 20:39:13 | Сообщение # 11 |
10 уровень
Группа: Ветераны
Сообщений: 2172
Награды: 1
Репутация: 312
Блокировки:
| _Seferot_, я имел в виду все сразу.просто ведь я так понимаю мало вставить все эти триггеры в карту, а там у тебя, как сказал MaSer, хоть и он тут можно сказать больше всех в джаззе понимает, глаза режут коды эти все, а уж новичку сам подумай че думать?че с этим всем сделать?где чего надо переписать или чтото такое? Добавлено (14-01-2009, 20:39) --------------------------------------------- хотя вообщето спорить смысла нет, лучше уж у как раз новичков в этом спросить.
|
|
|
|
_Seferot_ | Дата: Среда, 14 Января 2009, 21:49:05 | Сообщение # 12 |
3 уровень
Группа: Пользователи
Сообщений: 44
Награды: 0
Репутация: 5
Блокировки:
| Quote (Арран) а там у тебя, как сказал MaSer, хоть и он тут можно сказать больше всех в джаззе понимает, глаза режут коды эти все Возможно я ошибаюсь, но MaSer всего навсего имелл ввиду что можно было обойтись без этих глобальных переменных))) Что собственно было бы правильней и от чего я отказался в пользу удобства новичков)) А чего ты так прицепился к коду я непайму? В код ни одним, ни двумя глазами заглядывать не надо, тогда и резать их тебе не будет. Если у тебя нет нормальной критики, то лучше держи её при себе. Совет на будущее)
|
|
|
|
Арран | Дата: Среда, 14 Января 2009, 22:02:15 | Сообщение # 13 |
10 уровень
Группа: Ветераны
Сообщений: 2172
Награды: 1
Репутация: 312
Блокировки:
| нормальная-не нормальная опять же ни тебе ни мне решать
|
|
|
|
MaSer | Дата: Среда, 14 Января 2009, 22:03:36 | Сообщение # 14 |
Котобог
Группа: Стримеры
Сообщений: 3574
Награды: 13
Блокировки:
| Quote (BuHHu-nyX) _Seferot_, я думаю, Ув. Арран имеет ввиду, что многие новички не имеют понятие о массивах и т.д. Это не новички, это идиоты :dunno:
|
|
|
|
_Seferot_ | Дата: Среда, 14 Января 2009, 22:34:12 | Сообщение # 15 |
3 уровень
Группа: Пользователи
Сообщений: 44
Награды: 0
Репутация: 5
Блокировки:
| Quote (Арран) нормальная-не нормальная опять же ни тебе ни мне решать Возможно, просто я вижу глупые посты (сорри, но на самом деле глупые, ибо просто неправильные), а ты при этом упорствуешь что они верные =)
|
|
|
|
Арран | Дата: Среда, 14 Января 2009, 22:48:52 | Сообщение # 16 |
10 уровень
Группа: Ветераны
Сообщений: 2172
Награды: 1
Репутация: 312
Блокировки:
| в любом случае ничего точно правильно оценить нельзя со стороны, ты ж я так понимаю просто эту систему свою отлично понимаешь, тебе кажется что там все просто и все такое...а я говорю от лица новичков или как сказал масер идиотов. Добавлено (14-01-2009, 22:48) --------------------------------------------- _Seferot_, ты кстате не с хгм случайно?
|
|
|
|
MaSer | Дата: Среда, 14 Января 2009, 22:50:59 | Сообщение # 17 |
Котобог
Группа: Стримеры
Сообщений: 3574
Награды: 13
Блокировки:
| Quote (Арран) а я говорю от лица новичков или как сказал масер идиотов. Идиот != новичок, вот только большинство новичков идиоты. Если ты говоришь от лица этой самой большей части новичков, то все весьма печально. Quote (Арран) в любом случае ничего точно правильно оценить нельзя со стороны, ты ж я так понимаю просто эту систему свою отлично понимаешь Она действительно не столь уже сложная. Необходимо знать основы программирования и английский язык, не более того.
|
|
|
|
Арран | Дата: Среда, 14 Января 2009, 23:16:41 | Сообщение # 18 |
10 уровень
Группа: Ветераны
Сообщений: 2172
Награды: 1
Репутация: 312
Блокировки:
| бесполезно вобщем с вами спорить...скоро до хгм так реально дойдем
|
|
|
|
_Seferot_ | Дата: Четверг, 15 Января 2009, 07:46:56 | Сообщение # 19 |
3 уровень
Группа: Пользователи
Сообщений: 44
Награды: 0
Репутация: 5
Блокировки:
| Quote (Арран) _Seferot_, ты кстате не с хгм случайно? И там тож был... тока давно.. Добавлено (15-01-2009, 07:46) ---------------------------------------------
Quote (Арран) ты ж я так понимаю просто эту систему свою отлично понимаешь, тебе кажется что там все просто и все такое...а я говорю от лица новичков или как сказал масер идиотов. Это как спорить со слепым о цвете неба)) Зачем тебе в код лезть, если все параметры задаются в переменных и всё это я показал в примерах. Тебе совершенно не нужно изменять чёто в коде.
|
|
|
|
Ramazan(off) | Дата: Суббота, 31 Января 2009, 22:29:56 | Сообщение # 20 |
11 уровень
Группа: Проверенные
Сообщений: 1670
Награды: 1
Репутация: 775
Блокировки:
| Посмотрим сейчас как можно 100 триггером на 3 заменить...
|
|
|
|
sergeevmore | Дата: Среда, 24 Июня 2009, 14:44:23 | Сообщение # 21 |
6 уровень
Группа: Заблокированные
Сообщений: 198
Награды: 0
Репутация: 21
Блокировки:
| сделайте плз наработку выбора героя там где входиш в зону юнит умирает и тебе даётся герой плз очень прошу сделатье эту наработку
<b>Alice</b>, из за тебя пропадает смысл в паролях, а так же постоянно будет требоваться пинать админа...(Enforcer)
|
|
|
|
PUVer | Дата: Четверг, 25 Июня 2009, 19:25:31 | Сообщение # 22 |
Сухопутные крысы!
Группа: Модераторы
Сообщений: 4462
Награды: 8
Репутация: 1845
Блокировки:
| Лучший способ выбора героя - через таверну(Сэкономит размер карты и парится с тригами особо не нужно).
|
|
|
|
Bob_Marley | Дата: Пятница, 26 Июня 2009, 23:11:52 | Сообщение # 23 |
3 уровень
Группа: Заблокированные
Сообщений: 64
Награды: 0
Репутация: -4
Блокировки:
| Quote (PUVer) Лучший способ выбора героя - через таверну(Сэкономит размер карты и парится с тригами особо не нужно). Полностью согласен. И описание по чел-ки дать можно, и пятую точку рвать не надо с триггерами. Быстро, удобно и мало места на карте занимает.
|
|
|
|
PUVer | Дата: Пятница, 26 Июня 2009, 23:30:30 | Сообщение # 24 |
Сухопутные крысы!
Группа: Модераторы
Сообщений: 4462
Награды: 8
Репутация: 1845
Блокировки:
| Я пробовал способ со светляками Полная лажа Добавлено (26-06-2009, 23:30) --------------------------------------------- Ничего полезного, ну если вы любите разглядывать модельки, то пожалуйста.
|
|
|
|
Uchiha_Sasuke12 | Дата: Суббота, 03 Апреля 2010, 02:42:42 | Сообщение # 25 |
2 уровень
Группа: Пользователи
Сообщений: 37
Награды: 0
Репутация: 0
Блокировки:
| это сделать смотет любой если у него тригеры русские
|
|
|
|
|
|
|
|
|
|
|