XGM Forum
Сайт - Статьи - Проекты - Ресурсы - Блоги

Форуме в режиме ТОЛЬКО ЧТЕНИЕ. Вы можете задать вопросы в Q/A на сайте, либо создать свой проект или ресурс.
Вернуться   XGM Forum > Warcraft> Академия: форум для вопросов
Ник
Пароль
Войти через VK в один клик
Сайт использует только имя.

Закрытая тема
 
quq_CCCP
Я белый и пушистый!
offline
Опыт: 93,595
Активность:
Проблемы с модификаторами видимости
По каким причинам могут не работать модификаторы видимости?
» код функции
((код 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
Msey
????
offline
Опыт: 67,346
Активность:
Посмотри, как это сделано у Артте в системе "реалистичного обзора".
  • ты видел хоть одного нормального кодера дающего названия переменным, так же, как у тебя?
  • это единственный триг в карте?
Старый 20.12.2012, 13:57
quq_CCCP
Я белый и пушистый!
offline
Опыт: 93,595
Активность:
Msey, да да, этот триг для использования на пару раз, локейшен чтобы не плодить аргументы у функции, эта функция вызывается крайне редко, так что тут про производительность прошу не постить.
Больше функций с модификаторами видимости в карте нету, только эта.
прошу решение а не разговоры о коде и прочей чепухе, это к делу не относится
quq_CCCP добавил:
Систему не глядел, да и как то реалистичный обзор мне не к чему...
Старый 20.12.2012, 14:02
DioD

offline
Опыт: 45,134
Активность:
а у меня аналогичные функции прекрасно работают, только я не использую хрень с таймерами и прочую чепуху, если все модификаторы живут одно и тоже время это делается через стек и карусель БЕЗ хеш таблиц ретурн бага и прочей фигни.
Старый 20.12.2012, 14:09
quq_CCCP
Я белый и пушистый!
offline
Опыт: 93,595
Активность:
DioD, разное время, и заранее неизвестно кол-во модификаторов, вызывается редко, так что чёта там делать быстрее нету смысла...
А из за чего такое может быть?
Старый 20.12.2012, 14:11
Msey
????
offline
Опыт: 67,346
Активность:
не разговоры о коде
для начала сделай инициализацию через
((код jass
callback onInit(){
здесь создаешь классы с твоими модификаторами видимости, а потом делаешь подобный вызов через другую функцию
}
))
Старый 20.12.2012, 14:12
quq_CCCP
Я белый и пушистый!
offline
Опыт: 93,595
Активность:
Msey, вызывать то через другие функции я пробовал, про каллбек не думаю что поможет,
модификатор то создаётся и интересно что если в параметрах карты поставить что рельеф скрыт, то его будет показывать но туман как был так и остался, то есть рельеф виден через чёрную маску, ну как через чулок, а не виден полностью как я хочу...
Старый 20.12.2012, 14:22
Msey
????
offline
Опыт: 67,346
Активность:
quq_CCCP, ты пробовал вызывать эту функцию без предварительного сохранения модификатора в хеш? (напрямую включать/выключать модификатор?)
Старый 20.12.2012, 14:36
quq_CCCP
Я белый и пушистый!
offline
Опыт: 93,595
Активность:
Msey, да, даже с вейтом пробовал, создаётся долбоный модификатор но как был туман войны под которым только затемненый ланд видно без юнитов, так и остался, даже не знаю с чего это?
Мб попробовать другой тип модификатора?
quq_CCCP добавил:
Причём гуишный вариант работает...
чёто не то...
quq_CCCP добавил:
Вот я дурак, его еще и запустить нужно функцией FogModifierStart( whichFogModifier ) и тогда заработает, вот кто бы помнил, тему можно закрыть.
Спасибо всем кто мне напомнил эту мелочь.
Большое спасибо за калбеки, стеки и карусели, спасибки ребята, я вам лайки поставлю...

Отредактировано quq_CCCP, 20.12.2012 в 15:16.
Старый 20.12.2012, 15:09
Закрытая тема

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы можете скачивать файлы

BB-коды Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход



Часовой пояс GMT +3, время: 19:17.