quq_CCCP
Я белый и пушистый!
offline
Опыт:
94,338Активность: |
Проблемы с модификаторами видимости
По каким причинам могут не работать модификаторы видимости?
» код функции
((код jass
function DestroyTimedVision takes nothing returns nothing
local timer t = GetExpiredTimer( ) local integer id = GetHandleId( t ) call DestroyTimer( t ) call DestroyFogModifier( LoadFogModifierHandle( gg_htb_GameData, id, 0 ) ) call FlushChildHashtable( gg_htb_GameData, id ) set t = null endfunction function TimedVision takes player fp_pl, location fp_locCenter, real fp_rRadius, real fp_rLast, boolean fp_bFlag returns nothing local fogmodifier fm = CreateFogModifierRadiusLoc(fp_pl, FOG_OF_WAR_VISIBLE, fp_locCenter, fp_rRadius, true, false ) local timer t = CreateTimer( ) call SaveFogModifierHandle( gg_htb_GameData, GetHandleId( t ), 0, fm ) call TimerStart( t, fp_rLast, false, function DestroyTimedVision ) if udg_ItsForDebug then call BJDebugMsg( "Модификатор - "+I2S( GetHandleId( fm ) )+" создан." ) endif if fp_bFlag then call RemoveLocation( fp_locCenter ) endif set t = null set fm = null endfunction )) P.S я конечно могу создавать даммиков и давать им абилки на увеличение обзора но как то с модификаторами проще |
20.12.2012, 13:44 | #1
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
Msey
????
offline
Опыт:
67,346Активность: |
Посмотри, как это сделано у Артте в системе "реалистичного обзора".
|
20.12.2012, 13:57 | #2
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
quq_CCCP
Я белый и пушистый!
offline
Опыт:
94,338Активность: |
Msey, да да, этот триг для использования на пару раз, локейшен чтобы не плодить аргументы у функции, эта функция вызывается крайне редко, так что тут про производительность прошу не постить.
Больше функций с модификаторами видимости в карте нету, только эта. прошу решение а не разговоры о коде и прочей чепухе, это к делу не относится quq_CCCP добавил: Систему не глядел, да и как то реалистичный обзор мне не к чему... |
20.12.2012, 14:02 | #3
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
DioD
offline
Опыт:
45,134Активность: |
а у меня аналогичные функции прекрасно работают, только я не использую хрень с таймерами и прочую чепуху, если все модификаторы живут одно и тоже время это делается через стек и карусель БЕЗ хеш таблиц ретурн бага и прочей фигни.
|
20.12.2012, 14:09 | #4
+1/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
quq_CCCP
Я белый и пушистый!
offline
Опыт:
94,338Активность: |
DioD, разное время, и заранее неизвестно кол-во модификаторов, вызывается редко, так что чёта там делать быстрее нету смысла... А из за чего такое может быть? |
20.12.2012, 14:11 | #5
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
Msey
????
offline
Опыт:
67,346Активность: |
для начала сделай инициализацию через ((код jass
callback onInit(){ здесь создаешь классы с твоими модификаторами видимости, а потом делаешь подобный вызов через другую функцию } )) |
20.12.2012, 14:12 | #6
+1/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
quq_CCCP
Я белый и пушистый!
offline
Опыт:
94,338Активность: |
Msey, вызывать то через другие функции я пробовал, про каллбек не думаю что поможет, модификатор то создаётся и интересно что если в параметрах карты поставить что рельеф скрыт, то его будет показывать но туман как был так и остался, то есть рельеф виден через чёрную маску, ну как через чулок, а не виден полностью как я хочу... |
20.12.2012, 14:22 | #7
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
Msey
????
offline
Опыт:
67,346Активность: |
quq_CCCP, ты пробовал вызывать эту функцию без предварительного сохранения модификатора в хеш? (напрямую включать/выключать модификатор?) |
20.12.2012, 14:36 | #8
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
quq_CCCP
Я белый и пушистый!
offline
Опыт:
94,338Активность: |
Msey, да, даже с вейтом пробовал, создаётся долбоный модификатор но как был туман войны под которым только затемненый ланд видно без юнитов, так и остался, даже не знаю с чего это?
Мб попробовать другой тип модификатора? quq_CCCP добавил:
Причём гуишный вариант работает... чёто не то... quq_CCCP добавил: Вот я дурак, его еще и запустить нужно функцией FogModifierStart( whichFogModifier ) и тогда заработает, вот кто бы помнил, тему можно закрыть. Спасибо всем кто мне напомнил эту мелочь. Большое спасибо за калбеки, стеки и карусели, спасибки ребята, я вам лайки поставлю... Отредактировано quq_CCCP, 20.12.2012 в 15:16. |
20.12.2012, 15:09 | #9
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|