DracoL1ch #1 - 3 недели назад 3

» WarCraft 3 / Можно ли уничтожить hashtable?

255 хт максимум, если ты не можешь впихнуть в БЕЗЛИМИТЫЙ массив, коей хт и является, данные, это чисто твои головные проблемы с неспособностью придумать алгоритм. Ну используй 10 хт для разных данных по одному ключу юнита, ну 255 даже, дроби хендлы, да десятки вариаций, помимо очевидного "у автора проблемы"
DracoL1ch #2 - 3 недели назад 0

» WarCraft 3 / Эффект при перемещении перестает отображаться

pGetCastRangeHook+500 - просто адрес для хранения данных, можешь через malloc выделить 12 байт и использовать переменную
типа
set pGetCastRangeHook=malloc(12)
только +500 убери, чтобы просто +0 +4 +8 соответсвенно осталось
call WRMem(pGetCastRangeHook+0,x) == call WMem(pGetCastRangeHookm,mR2I(x))
DracoL1ch #3 - 3 недели назад 2

» WarCraft 3 / Эффект при перемещении перестает отображаться

function SetObjectPosition takes handle h, real x, real y, real z returns nothing
	//doesn't update cached (creation) position, so object get hidden when it's spawn XYZ are out of current camera's bounds
	//probably useful to move effect slightly but definitely shouldn't be used for big (200+) movements
	set LastConvertedHandle=ConvertHandle(h)
	if LastConvertedHandle!=0 then
		call CallThisCallWith4Args(GameDLL+0x4D3180,RMem(LastConvertedHandle+0x28),mR2I(x),mR2I(y),mR2I(z))
	endif
endfunction

function SetEffectPositionComplex takes effect fx, real x, real y, real z returns nothing
	//DOES update cached (creation) position, could be sync-sensible
	//widget-base offset different from UNIT: Effects into B0, unit into B8, idk about others
	local integer a
	set LastConvertedHandle=ConvertHandle(fx)
	if LastConvertedHandle!=0 then
		set a=LastConvertedHandle
		call WRMem(pGetCastRangeHook+500,x)
		call WRMem(pGetCastRangeHook+504,y)
		call WRMem(pGetCastRangeHook+508,z)
		set a=CallThisCallWith1Args(RMem(RMem(a)+0xB0),a)//B0 for effects, B8 for unit
		call CallThisCallWith2Args(GameDLL+0x4743C0,a,pGetCastRangeHook+500)
		call SetObjectPosition(fx,x,y,z)
	endif
endfunction
пробуй
DracoL1ch #4 - 4 недели назад (отредактировано ) 3

» WarCraft 3 / native и constant native

нет там никакого кэша, где ты видел функции, которые меняли бы адрес?
на стадии разработки заложили возможность констант, но позже поняли, что это бесполезно адаптировать под строгие требования жасс-машины. Поэтому синтаксис остался, а эффект нет.
DracoL1ch #5 - 4 недели назад (отредактировано ) 0

» WarCraft 3 / native и constant native

нет
constant в варкрафте ничего вообще не делает
DracoL1ch #6 - 4 недели назад 1

» WarCraft 3 / [lua] Pathable

ScopteRectuS:
Что лучше ( dx * dx ) или ( dx ^ 2 ) ?
примерно равны, слева два поиска переменных и операнд, справа одна переменная, константа и использование функции Pow
DracoL1ch #7 - 4 недели назад 0

» WarCraft 3 / native и constant native

ни в чем, сахар
DracoL1ch #8 - 4 недели назад (отредактировано ) 0

» WarCraft 3 / Крепление юнита к эффекту

циклон не юнита крепят, а модель юнита, это разные вещи
шипы, наверное, тоже
DracoL1ch #9 - 1 месяц назад (отредактировано ) 0

» WarCraft 3 / Memory Hack 2.0

где-то чтение не перевел, туда сейчас передается настоящий адрес, а его еще множат на 4
DracoL1ch #10 - 1 месяц назад 4

» WarCraft 3 / wc3 1.31 и lua

фильтры не текут
DracoL1ch #11 - 2 месяца назад (отредактировано ) 6

» WarCraft 3 / Syntax Errors Cannot convert returned value from integer to real

спойлер, у жаса нет деления на локальные и глобальные, это shadowing и запись в ту же область памяти (общую для всех переменных), это основа мемхака. Поэтому крайне не рекомендую иметь одинаковые имена на глобалках и локалках, не говорю уже о том, что их типы должны совпадать, иначе возможно всё, что угодно
DracoL1ch #12 - 2 месяца назад 0

» WarCraft 3 / Краш

хз что-то связанное с атакой вылетело, не было нужного класса на месте. но т.к. буквально немного выше проверяется наличие класса, то мб чей-то хук там был по течению. Короче, вроде не игры вина
DracoL1ch #13 - 2 месяца назад 0

» WarCraft 3 / Fatal Eror

вылет то ли в рендерере, то ли в системной функции. битая модель, наверное
DracoL1ch #14 - 2 месяца назад 1

» WarCraft 3 / Фильтры

конечно, можно. исходя уже из предположений.
например, тут
if GetUnitAbilityLevel(u, 'NSe1') > 0 {bi = 1}
if GetUnitAbilityLevel(u, 'NSe2') > 0 {bi = 2}
if GetUnitAbilityLevel(u, 'NSe3') > 0 {bi = 3}
во-первых, если они взаимоисключающие, то нужно единую ветку с if-else , а не 3 ифа
если даже нет, расположи их в порядке от максимальной вероястноти к минимальной. Если в игре пассивка набирает 3й уровень через 5 минут после начала, то и нет смысла начинать с первого и второго, т.к. в 95% случаев будет именно 3й уровень.
DracoL1ch #15 - 2 месяца назад 0

» WarCraft 3 / Фильтры

Будет, особенно через for group
DracoL1ch #16 - 2 месяца назад 0

» WarCraft 3 / Хеш-таблица и юнит

хендл юнита не хранит ничего, это просто номер, юнит исчез - данных нет
DracoL1ch #17 - 2 месяца назад 1

» WarCraft 3 / Передвижение юнитов через спел на Хеш-таблице

а в батлнете не полтора землекопа, понял принял
DracoL1ch #18 - 2 месяца назад (отредактировано ) 0

» WarCraft 3 / Передвижение юнитов через спел на Хеш-таблице

прежде чем кричать, куда переходить, спросите, где автор будет в карту свою играть. 90 к 1, что на гарене, где никогда не будет патча выше 1.26
DracoL1ch #19 - 2 месяца назад 0
DracoL1ch #20 - 2 месяца назад 1

» WarCraft 3 / можно ли отследить каст пламени феникса

ну так пусть источником будет даммик, а не сам юнит. любой урон от даммика >0 будет уроном от огня
DracoL1ch #21 - 2 месяца назад 2

» WarCraft 3 / можно ли отследить каст пламени феникса

а в чем проблема отследить 0 урона в 1.26 точно так же, как в 1.31? оО
DracoL1ch #22 - 2 месяца назад 2

» WarCraft 3 / кидаю винные пары 8 лвл противник умирает почему?

версия игры? имеет ли цель апгрейды на хп?
DracoL1ch #23 - 2 месяца назад 1
DracoL1ch #24 - 2 месяца назад (отредактировано ) 2
DracoL1ch #25 - 2 месяца назад (отредактировано ) 5

» WarCraft 3 / Юнит умирает при попытке использовать/подобрать предмет.

убирай у юнитов апгрейд на +хп или не давай им книжки. первое проще, выдать хп можно множеством способов, кроме ап грейда
DracoL1ch #26 - 2 месяца назад 6

» WarCraft 3 / Проблемы с системой скрытности.

точнее, суть варкрафта - без этих карт в игру бы играло не 3.5 человека, а 0.5
DracoL1ch #27 - 3 месяца назад 1

» WarCraft 3 / Как определить что рабочий с мешком золота?

мемхака на новых патчах нет, крутитесь тем, что дали
DracoL1ch #28 - 3 месяца назад 0

» WarCraft 3 / Официально стал доступен PTR 1.31

да ладно? хочешь сказать, они похерили совместимость?
DracoL1ch #29 - 3 месяца назад 0

» WarCraft 3 / Официально стал доступен PTR 1.31

у меня есть доступ ко всем флагам, но он вам и не нужен, там просто 0 урона. Что за логика? Всегда этот урон был и никуда не денется, потому что обратная совместимость
DracoL1ch #30 - 3 месяца назад 0

» WarCraft 3 / Официально стал доступен PTR 1.31

ну, и все эти 0-урона ивенты отсеиваются по необходимости. Даже без отсева никогда проблем не было, а у меня все инстансы вызывают тонну кода.
DracoL1ch #31 - 3 месяца назад 1

» WarCraft 3 / Официально стал доступен PTR 1.31

exAres:
DracoL1ch:
это не фигня, это полезная штука, она агрит юнитов
"Фигня" в плане того, что это запускает ивент получения урона(и да, я приблизительно понимаю логику этого костыля). А то, что такой ивент, не как урон, полезен и работает с разными механиками варкрафта - немного другой вопрос, вот только сейчас это классифицировать условиями без костылей не выйдет, вот и получается фигня.
у этого урона тип атаки =0 и тип урона =0, очень хорошо отсеивается при желании
DracoL1ch #32 - 3 месяца назад 5

» WarCraft 3 / Официально стал доступен PTR 1.31

это не фигня, это полезная штука, она агрит юнитов
DracoL1ch #33 - 3 месяца назад 0

» WarCraft 3 / Официально стал доступен PTR 1.31

негативные ауры наносят 0 урона при наложении, прицельные скилы наносят 0 урона, да дофига 0-урона событий в игре самой по себе
DracoL1ch #34 - 3 месяца назад 0

» WarCraft 3 / Самый производительный Bullet Hell

ты умрешь на группировках таким методом
DracoL1ch #35 - 3 месяца назад 1

» WarCraft 3 / Самый производительный Bullet Hell

ну да, это самая быстрая конструкция при входных условиях, что нам содержимое группы нигде не нужно, а все действия над ними нужно выполнить лишь 1 раз
DracoL1ch #36 - 3 месяца назад 4

» WarCraft 3 / Удаление 6 лет работы с сайта, авторское право.

нинтендо с тобой несогласны, GetLocalPlayer
европейцы прикрывают свою жопу и правы в этом, никогда не знаешь, что взбредет в голову умалишенным, у которых есть твои контакты
DracoL1ch #37 - 3 месяца назад 3

» WarCraft 3 / Самый производительный Bullet Hell

зачем ты пишешь e==null , если оно всегда будет нулл в итоге?
фильтр ни разу не быстрее и требует создание потока для каждого юнита, поэтому все китайцы и перешли на null - firstOfGroup, где это возможно
DracoL1ch #38 - 3 месяца назад 2

» WarCraft 3 / Самый производительный Bullet Hell

нет, для оптимизации групп нужно не использовать фильтр (ставить нулл), а перебирать её через loop-firstOfGroup
жар преисподней будет оптимальнее с той точки зрения, что он собирает группы по заданным критериям целей без подключения жасс-машины. Однако он же будет тратить время на создание, вручение, уборку бафа и анимаций урона, создание объектов нанесения урона, а также саму работу абилки на даммике. Короче, и так, и так тяжело будет.
а в игре разве не было баллист, которые стреляют по прямой и снаряд разрушается при соприкосновении с первой целью?
DracoL1ch #39 - 3 месяца назад 1

» WarCraft 3 / Самый производительный Bullet Hell

я давным-давно пытался скилл тинкера на гоблинов закодить, лагает жутко, на двух кастах юнит уже ходить не может - предел двигаемых юнитов за одного игрока. В новых патчах лимит подняли, там зависать не должно. А еще в новых можно на эффектах, но коллизии самостоятельно регистрировать нужно как-то. Очевидно, что узкое место будет именно это.
DracoL1ch #40 - 3 месяца назад 1

» WarCraft 3 / Баг при скрытии приказов 1.26

богопротивные 0,-11 нужно менять на православные buttonpos=-2147483648,-2147483648
DracoL1ch #41 - 3 месяца назад 2

» WarCraft 3 / Краш карты

Это новая версия варкрафта, тебе ничто и никак не поможет там
DracoL1ch #42 - 3 месяца назад (отредактировано ) 0

» WarCraft 3 / Вопрос по хэш-таблице.

если можешь чистить через FlushChildHeshtable , то чисти через неё, RemoveSaved* не уничтожает ветку хештаблицы, даже если это была единственная запись в неё
DracoL1ch #43 - 4 месяца назад 5

» WarCraft 3 / Официально стал доступен PTR 1.31

да пилите, шура, пилите. взлетите -и не вспомните о "всепропальщиках"
DracoL1ch #44 - 4 месяца назад 1

» WarCraft 3 / Официально стал доступен PTR 1.31

allstars нахер не нужно было вольвам, это просто карта так называлась, а игре DotA хорошее название, без лишних слов
это, тем не менее, не отменяет новых (?) условий редактора
DracoL1ch #45 - 4 месяца назад 0

» WarCraft 3 / Как сделать эффект от пассивки bloodseeker'a?

этот флаг лишь отображает модель, взаимодействовать с ней все равно нельзя, поэтому слегка бессмысленно
DracoL1ch #46 - 4 месяца назад 4

» WarCraft 3 / Как сделать 9 слотов в 1.31?

не фейк, но не работает как инвентарь полноценный, это лишь фреймы
DracoL1ch #47 - 4 месяца назад (отредактировано ) 0

» WarCraft 3 / Редактор W1.31 способность

затраты на ИНИЦИАЛИЗАЦИЮ локалки (байт-код это требует, но это проформа) - ничтожны, по любым меркам. А создание группы в цикле что в локалке, что в глобалке - это маразм
DracoL1ch #48 - 4 месяца назад 0

» WarCraft 3 / Редактор W1.31 способность

что я ваще такое прочитал? локалки и глобалки - ваще похер игре, это всё в одном котле компилится
DracoL1ch #49 - 4 месяца назад 0

» WarCraft 3 / Безумный режим?

Пффф, ну твой вариант с подкруткой, это же очевидно. Ведь время строительства никак не связано с хп здания! Ты нас совсем за лохов держишь чтоли?!
DracoL1ch #50 - 4 месяца назад 1

» WarCraft 3 / Безумный режим?

мало кто задумывается, как работают игры, поэтому легенды и живут
визуально при клике вызывается перерисовка и цифры регена ставятся актуальными, а иначе они обновляются че-то вроде каждые 0.1-0.2