потому что, грубо говоря, когда компилятор видит
set u=someUnit
он этому someUnit ставит счетчик +1, а юниту из u - счетчик -1
я так на мх попался, когда юнита вписывал из нативного кода игры, а удалял из переменной через set u=null
в итоге счетчик референсов падал до отрицательных значений и юнит из игры стирался
а в аргументах такой механики нет
пойду гляну, делает ли он -- счетчику, если нуллить аргумент
интересные глаголы
с уровня асемблера такой ивент создать нереально, для этого нужны знания С+ и подключаемая либа, и будет счастье
и всё равно это еще реальнее, чем переносить некую карту на другой юи ради такой мелочи
Зачем использовать бгмерзский таймер, если ты хочешь детектить смерть юнита? Если его реснут за период таймера, то счётчик останется.
Если юнит сменит форму во время стана, визуалка отвалится, поэтому её крепят к абилке - баффу.
Обычный стан болт будет быстрее на дистанции за счёт того, что не требует таймера 0.1 и выполнения кода после броска. Для коротких станов скорость не имеет значения
Ну и если использовать триггерный стан на кастера в момент каста, то кд не начнётся, в отличие от н классического болта.
Во тебе пространство для улучшений)
мизерное мизерному рознь. вот, например, добавил опцию для отключения обновления таблицы. игроку она не нужна, а у меня реплей на 50 минут мотается теперь 6 минут вместо семи. А в абсолютном значении всего 6% ускорения за счет лишнего if .
Оптимизация вредна лишь тогда, когда она преждевременна.
Всякий раз когда говорят слово быстрее, я хочу знать на сколько, если на такая функция быстрее даже на 0.1 на 10 тысячах вызовов это не быстрее, и грош ему цена, можно просто назвать другой способ, и все претензий нет, тогда все классно
так нужно сперва иметь что-то для подсчета времени, а этого у простых крестьян нет ни в каком виде)
G:\Games\warcraft 3 (new)\Warcraft 3 Frozen Throne\Textures.mix
любые миксы могут как угодно повляить, я же не вижу, что они делают с игрой
здесь вылет, возможно, при касте пива пандарена
кто-то вмешался в код и испортил его, в моём варкрафте этого вылета быть не может
он не кэширован, вообще ни одна функция jass в игре не кэширует инфу и каждый раз производит все необходимые рассчеты с нуля. Поэтому выгоднее иметь массив Players[0..MaxPlayers] вместо вызова Player(0..maxPlayer) , LocalPlayer в main вместо GetLocalPlayer() , и т.д. Переменные быстрее, чем вызов функции.
function GetNthUnitFromGroup takes group g, integer n returns unit//n [1....x]
local integer a
set LastConvertedHandle=ConvertHandle(g)
if LastConvertedHandle>0 then
set a=CallThisCallWith2Args(GameDLL+0x421A20,LastConvertedHandle+0x24,n-1)
if a>0 then
return I2Unit(a)
endif
endif
return null
endfunction
function CountUnitsInGroupNative takes group g returns integer
set LastConvertedHandle=ConvertHandle(g)
if LastConvertedHandle>0 then
return RMem(LastConvertedHandle+0x34)
endif
return 0
endfunction
по поводу кручения у меня такое есть, наверное ты вместо неё косинусы и считаешь
function CalculateObjectOrientationRules takes handle h, real yaw, real pitch, real roll, real facing, integer flag returns nothing
call WRMem(DataArray3Address+800,yaw)
call WRMem(DataArray3Address+804,pitch)
call WRMem(DataArray3Address+808,roll)
//Convert Object YawPitchRoll Into Matrix
call CallFastCallWith4Args(GameDLL+0x4B2C50,DataArray3Address+700,DataArray3Address+800,mR2I(facing),flag)
//update object's data
call CallThisCallWith10Args(GameDLL+0x4D3170,RMem(ConvertHandle(h)+0x28),RMem(DataArray3Address+700),RMem(DataArray3Address+704),RMem(DataArray3Address+708),RMem(DataArray3Address+712),RMem(DataArray3Address+716),RMem(DataArray3Address+720),RMem(DataArray3Address+724),RMem(DataArray3Address+728),RMem(DataArray3Address+732))
endfunction
где DataArray3Address - просто массив для хранения данных "подряд"
» WarCraft 3 / Обнуление переменных, которые принимает функция?
» WarCraft 3 / Обнуление переменных, которые принимает функция?
set u=someUnit
он этому someUnit ставит счетчик +1, а юниту из u - счетчик -1
я так на мх попался, когда юнита вписывал из нативного кода игры, а удалял из переменной через set u=null
в итоге счетчик референсов падал до отрицательных значений и юнит из игры стирался
а в аргументах такой механики нет
пойду гляну, делает ли он -- счетчику, если нуллить аргумент
» WarCraft 3 / Событие до проверки КД способности
» WarCraft 3 / Событие до проверки КД способности
с уровня асемблера такой ивент создать нереально, для этого нужны знания С+ и подключаемая либа, и будет счастье
и всё равно это еще реальнее, чем переносить некую карту на другой юи ради такой мелочи
» WarCraft 3 / Событие до проверки КД способности
» WarCraft 3 / Событие до проверки КД способности
» WarCraft 3 / Событие до проверки КД способности
» WarCraft 3 / Событие до проверки КД способности
с ним - сложно
» WarCraft 3 / Что не так с Defend'oм?
отражается только piercing атаки
» WarCraft 3 / [Lua] Оглушение без дамми и РО
Если юнит сменит форму во время стана, визуалка отвалится, поэтому её крепят к абилке - баффу.
Обычный стан болт будет быстрее на дистанции за счёт того, что не требует таймера 0.1 и выполнения кода после броска. Для коротких станов скорость не имеет значения
Ну и если использовать триггерный стан на кастера в момент каста, то кд не начнётся, в отличие от н классического болта.
Во тебе пространство для улучшений)
» WarCraft 3 / за что отвечают данные настройки в константах?
» WarCraft 3 / Наверное самая быстрая функция по касту "тригерных" магий
Оптимизация вредна лишь тогда, когда она преждевременна.
» WarCraft 3 / Наверное самая быстрая функция по касту "тригерных" магий
» WarCraft 3 / Ошибка краша игры.
» WarCraft 3 / Ошибка краша игры.
любые миксы могут как угодно повляить, я же не вижу, что они делают с игрой
здесь вылет, возможно, при касте пива пандарена
кто-то вмешался в код и испортил его, в моём варкрафте этого вылета быть не может
Ред. DracoL1ch
» WarCraft 3 / Молнии на любых эффектах
» WarCraft 3 / Постоянно вылетает карта
ну там неинтересно, говорит, что память закончилась, значит либо тонна утечек, либо тонна юнитов с заданиями
» WarCraft 3 / Постоянно вылетает карта
» WarCraft 3 / Постоянно вылетает карта
» WarCraft 3 / Постоянно вылетает карта
» WarCraft 3 / LocalPlayer в переменной
» WarCraft 3 / сломанный приказ "blizzard" 852089
Ред. DracoL1ch
» WarCraft 3 / MemoryHackAPI
» WarCraft 3 / Ошибка при начале игры
экстрасенсы умерли уже от старости