Ancient, и ты мне написал что я не понимаю про поточность в варике....причем тут локалки вычищать и хендлы...вообще разные понятия. чувак. не позорился бы. хендл - это целое число в хэш таблице варика(ид объекта) а переменная хендла не может иметь потомучто это просто ссылка на объект, локальная она или нет. и да, я локалки обнулять никогда не забываю.
куда уж мне до тебя...ты хоть одну мапу сделал от начала до конца со сложными алгоритмами? я принял участие не в одном проекте как автор скриптов и помог профиксить многим их мапы а ты только херню пишешь. ты ответь на вопрос автора по существу лучше, чем комментить даже сам не зная что и о чем. отмороженая жаюа не одного гера украла у меня с хайва в свою вонючую доту. а ты покажи свои работы, я могу выложить свои и посмотрим кто разбирается а кто нет. и кто как что реализовывает, а то херню писать то все могут, а на деле 0
1 пункт от Uber: 1.1 (ненормативная лексика) Завуалированный мат
alexprey, смотря как глобалка реализована...например если ты запустишь 2 периодических триггера одновременно с одинаковым интервалом и там будут в гуи для каждого числа А делать то то и тото, то те глобалки которые для цикла используются bj_loopindexA и т.д. не будут иметь разные значения одновременно, и бага не будет. ну короче я надеюсь ты понял о чем я, а если ты используешь глобалку для спелла или еще чегото, которая будет для разных игроков одна, то баги будут, но баги будут изза неправильной реализации только того кто пишет а не изза того что триггер выполняется одновременно с другим как вы утверждаете тут)) хотя это не так всетаки. я это тестил и не говорю на пустом месте. если нужен прув всетаки. я могу скинуть мапу с этим тестом и сам убедишься)
alexprey, причем тут что когда обрабатывается? я вообще про другое. я про то что варик не обрабатывает одновременно все триггеры, а делает это последовательно. потомучто если бы он обрабатывал все триггеры одновременно, то в одно и тоже время например глобалка могла бы иметь не одно значение, а значит были бы баги. и я про то что пока варик не выполнит функцию, он не перескакивает к другой
ну в jpng который без сджаза есть разница, может тот что отсюда скачаный и нет разницы и он все хавает, но там код компилируется так что если ты будешь писать в томже духе, то действий с юнитом вообще не будет. проверено)
варик пока не закончит один триггер не приступает к другому
да?
блин оказывается куча систем основанных на параллельном выполнении триггерров не работает на самом деле
похоже 80% наработок кажутся рабочими лишь потому что я под лсд
пойду повешусь
pusha1999, если пишите чтото то просьба сначала убедитесь в том что ваше утверждение верно
каких систем? вы чо несете? еслибы варик был мультипоточный то например если сделать 10 триггеров с периодическим событием в 0.02 секунды и в каждом треггере менять цвет юнита на неповторяющийся, то цвет юнита был бы один и не менялся никогда. если пишете мне подобный коммент, просьба убедиться в своей адекватности и в своих знаниях...
скорее всего ты при инициализации проверяешь статус слота игрока, а этого делать нини ))) ибо это частенько может приводить к десинку, вот эти игроки и получают его благополучно во время инициализации)))
максимальное количество триггерно созданного текста вроде как одновременно созданно 99. это максимальный хэндл для текста, если их больше то там либо текст не создастся либо если ты не используешь локалки то не удалится. потомучто getlastfloatingtext это глобалка без массива. ну дальше я думаю понял причину )))
а ману дал юниту?))) локалки сначала объявляй а потом уж можешь пояснять что каждая означает, а не так
local unit u
set u == GetTriggerUnit()
local real x == GetUnitX(u)
это не грамотно и вообще кашу может создать в коде потом.
локалки должны объявляться в начале кода а не в середине или в конце, иначе может вообще каша возникнуть. не юзай EVENT_WIDGET_DEATH
если тебе нужно юнита отловить. если итем или еще что, то да, норм, но если юнита, то юзай для юнита именно событие, оно быстрее соображает.
call UnitApplyTimedLife(d, 'BTLF', 2.50) не удаляет юнита из игры. эта функция вообще не удаляет юнита и он остается висеть гдето в памяти.
вообще с динамическими триггерами будь осторожнее, если ими не управлять должным образом то проблемы возникнуть могут.
НИКОГДА НЕ ЮЗАЙ TriggerSleepAction,ждать условия и PolledWait в циклах!!!! да и вообще никогда их не юзай в картах для мультиплеера темболее. далее у тебя триггер утечный.
при >2 cек периода лагает заметно слабее, чем при 0.3 => это вообще жесть, так как ты юзаешь вейты с задержкой большей чем периодичность триггера...отсюда и вообще черт знает что может вылезти, даже фатал иногда.
"Impertus, оба, используй таймеры. Конфликт с каким то другим триггером. Попробуй заменить bj_forLoopAIndex на локалки.
IssuePointOrderLocBJ
Тут вообще утечка
DistanceBetweenPoints
на этой строчке целых 2"
это вообще не виляет в данном случае, варик пока не закончит один триггер не приступает к другому. так что глобалки или локалки в данном случае не важно.
function CreateDummy takes player id, integer unitid, real x, real y, real face, real time returns unit
set bj_LastCreatedUnit = CreateUnit(id,unitid,x,y,face)
call UnitApplyTimedLife(e,'BTLF',time)
return bj_LastCreatedUnit
endfunction
если уж на то пошло =) хотя реально никому это не надо
SiT3D, так я же указал на что обратить внимание)) можешь просто переделать чтобы все кнопки были на белом фоне а текст тоже был на белом фоне? так будет читабельней ведь. как в винде например или на обычных нормальных сайтах как этот где все читабельное
нуб это ты, там джаза 1%, остальное в гуи сделать легко. ты просто конвертировал к текст свои тригеры)) там даже udg_ приставка осталась и 3 локалки которые можно написать в кастом скрипте...
» WarCraft 3 / Я только начинаю изучать jass, не вызовет ли утечки этот триггер? Нет ли ошибок?
Ред. Uber
» WarCraft 3 / Конфликт кода
» WarCraft 3 / Конфликт кода
» WarCraft 3 / Конфликт кода
» WarCraft 3 / Багается код
» WarCraft 3 / Задержка в циклах
» WarCraft 3 / Конфликт кода
» WarCraft 3 / Я только начинаю изучать jass, не вызовет ли утечки этот триггер? Нет ли ошибок?
» WarCraft 3 / Игроков выкидывает во время загрузки карты
» WarCraft 3 / Плавающий текст
» WarCraft 3 / Багается код
E = FirstOfGroup(G)
GroupRemoveUnit(G, E)
exitwhen E == null
loop
E = FirstOfGroup(G)
exitwhen E == null
какойто код...
GroupRemoveUnit(G, E)
endloop
» WarCraft 3 / не работает call IssueTargetOrder(d, "thunderbolt, u)?
local unit u
set u == GetTriggerUnit()
local real x == GetUnitX(u)
это не грамотно и вообще кашу может создать в коде потом.
» WarCraft 3 / Я только начинаю изучать jass, не вызовет ли утечки этот триггер? Нет ли ошибок?
если тебе нужно юнита отловить. если итем или еще что, то да, норм, но если юнита, то юзай для юнита именно событие, оно быстрее соображает.
call UnitApplyTimedLife(d, 'BTLF', 2.50) не удаляет юнита из игры. эта функция вообще не удаляет юнита и он остается висеть гдето в памяти.
вообще с динамическими триггерами будь осторожнее, если ими не управлять должным образом то проблемы возникнуть могут.
» WarCraft 3 / Задержка в циклах
» WarCraft 3 / Конфликт кода
при >2 cек периода лагает заметно слабее, чем при 0.3 => это вообще жесть, так как ты юзаешь вейты с задержкой большей чем периодичность триггера...отсюда и вообще черт знает что может вылезти, даже фатал иногда.
"Impertus, оба, используй таймеры. Конфликт с каким то другим триггером. Попробуй заменить bj_forLoopAIndex на локалки.
IssuePointOrderLocBJ
Тут вообще утечка
DistanceBetweenPoints
на этой строчке целых 2"
» WarCraft 3 / Создание Дамми юнита или временного юнита
set bj_LastCreatedUnit = CreateUnit(id,unitid,x,y,face)
call UnitApplyTimedLife(e,'BTLF',time)
return bj_LastCreatedUnit
endfunction
» WarCraft 3 / RMPQEx 1.0
» Эволюция видов / Вакансии
Ред. pusha1999
» WarCraft 3 / w3cTextEditor 3.2
» WarCraft 3 / Мультибордные танчики v0.6
» WarCraft 3 / Система Плавающего Текста