32

» WarCraft 3 / Краш игры во время загрузки

Diaboliko:
А во, нашёл - атвор нафига пихать юнитов за границу обзора? От того и вылетает, убери всех юнитов с краёв карты, ваще чтобы даже близко не было. Так же увеличь границы карты, чтобы всё влезло.
По-моему дело в юнитах красного игрока. Удалив этот отряд орков с огром все ок работает. Перемещение не помогает.
Дык они сидят за границей карты, ау...
32

» WarCraft 3 / Краш игры во время загрузки

Странно, зависает при создании декора\юнитов и вылетает. Но тут не классический FattalError а просто виндовс ищет способ устранения ошибки.
Мб багнутый импорт? Но ничего особенного не увидел, вроде нету краш моделек.
А во, нашёл - атвор нафига пихать юнитов за границу обзора? От того и вылетает, убери всех юнитов с краёв карты, ваще чтобы даже близко не было. Так же увеличь границы карты, чтобы всё влезло.
32

» WarCraft 3 / Как сделать юнита невыделяемым,но уязвимым

С новым ретурн багом можно отдельно ставить флаги москитов, к примеру имун к труесайту.
32

» WarCraft 3 / Как сделать, чтобы здание не было видно в тумане войны?

Принятый ответ
Установить локально для нужного игрока альтернативную иконку (прозрачную), а так же самое здание или сделать его невидимым.
32

» WarCraft 3 / способность night hunter + способность без иконки

Принятый ответ
Аура выносливости, меняем её на пустую (у найтсталкера 5 уровней у пассивки, днем всегда 5 уровень и нулевой бонус, а по ночам реальный уровень)
Либо берешь за основу способности без иконки, либо засовываешь её в спеллбук и запрещяешь его для игрока, либо хак на память (лежит в барахолке) и прятать абилку.
32

» WarCraft 3 / Хак на память Warcraft3

Кстати может быть проблема с тулами векса, чтобы все работало исправно добавьте в списко "Не переименовывать" имя "stand".
32

» WarCraft 3 / Хак на память Warcraft3

16GB, Как они выпилят если они о нем не знают, а когда узнают то уже начнется трешь и угар, там не до варкравта будет. Прикинь тебе вирус зашифровал все данные на диски и выдал сообщение о том что ты вшивый читер, прощайся со своими данными?
32

» WarCraft 3 / Хак на память Warcraft3

Надеюсь щяс не проснутся юнные вирусописатели? Какой нить обновлённый OneHalf поймать играя в вар будет не лучшей перспективой, хотя с другой стороны авторам всяких гоблинов должно быть радостно, появилась возможность наказывать читеров очень жеско, так что больше читерить не захочется (да и вовсе не до варкравта будет).
32

» WarCraft 3 / Хак на память Warcraft3

Кет:
quq_CCCP, дык вроде как написали, что можно ретурнбагом юзеру вредить, так они и зашевелились по поводу фикса.
Вредить можно и сейчас, путей там много, от скачать ехе файлик в папку автозагрузки до создания ддлки средствами вара, тока нужно знать о дырках в винде побольше, иначе эти доморощенные вирусы обречены на провал с нынешним развитием софта.
32

» WarCraft 3 / Хак на память Warcraft3

Кет:
quq_CCCP, хм, значит близзы должны скоро всё это зарубить -_- Интересно, дадут ли что взамен, как с предыдущим ретурнбагом?
Думаю они не знают об этом, вирусописателей то поубавилось как и юзеров которым это интересно, открыть страничку в браузере вроде у нас на XGM выкладывали на ретурн баге еще во времена патча 1.21...
Они кое как сделали 27 патч и все, пропали... видимо до вк 4.
32

» WarCraft 3 / Хак на память Warcraft3

alexprey:
чет полная жесть уже начинает с этой штуковиной :(
страшно становится после этого запускать. А то еще вирусняки начнет качать. Интересно было бы почитать как эта штука работает
в гите и на хайве не удалось увидеть
Кстати там есть функции создания файла на машине юзера и открывания ссылки в браузере, а так же сколачивание с указанного сайта указанного файла на пк юзера (юзается для обновление версии карты у лича)
Очень даже можно загнать читерам, ломающим карты вирус позлее вроде Neshta чтобы потом мучились.
32

» WarCraft 3 / Хак на память Warcraft3

darkowlom:
quq_CCCP, хеш таблицы сами по себе медленнее хромого коня, или они все таки перегоняют эту функцию в скорости?
Ну вот как раз хештаблицы то не медленные, а быстрее чем каждый раз искать, да и это грубый пример оптимизации, как будто вы забыли про системы хранения данных на массивах?
32

» WarCraft 3 / Хак на память Warcraft3

BaHeK:
У меня 1.27 если что.
У меня 1.26, но не вижу переключателя на другие патчи у тебя в функции.
32

» WarCraft 3 / Хак на память Warcraft3

Думаю все в курсе что GetUnitAbilityForAddresss довольно медленная функция ( по тестам лича в 15 раз медленее чем GetUnitAbilityLevel )
По этому стоит проверять наличие аблики у цели по GetUnitAbilityLevel а так же заносить результаты в хештаблицу или массив для более быстрой работы.
Поэтому вот 1 из вариантов оптимизации:
код
function GetUnitAbilityForAddresss takes integer pConvertedHandle, integer abilid returns integer
        local integer pAddr1 = pConvertedHandle + 476
        local integer pAddr2 = pConvertedHandle + 480
        local integer pOff1 = LoadInteger( gg_htb_HashData, abilid, pConvertedHandle )
        
        if pOff1 > 1 then
            call BJDebugMsg("Значение уже записано!")
            return pOff1
        endif
        

        set pAddr1 = Memory[pAddr1 / 4]
        set pAddr2 = Memory[pAddr2 / 4]
        
        if pAddr1 == 0 or pAddr2 == 0 or BitwiseAnd( pAddr1, pAddr2 ) == -1 then
            return 0
        endif
        
        set pOff1 = GetSomeAddressForAbility( pAddr1, pAddr2 )
        if pOff1 == 0 then
            return 0
        endif
        
        loop
            exitwhen pOff1 == 0
            if Memory[pOff1 / 4 + 52 / 4] == abilid then
                call SaveInteger( gg_htb_HashData, abilid, pConvertedHandle, pOff1 )
                return pOff1
            endif
            
            set pOff1 = GetSomeAddressForAbility( Memory[pOff1 / 4 + 36 / 4], Memory[pOff1 / 4 + 40 / 4] )
        endloop
        
        return pOff1
    endfunction
BaHeK, Щяс проверил твою функцию, фатал...
32

» WarCraft 3 / Аналог способности канал

Ии небудет никогда юзать негативные заклинание ( по его мнению) в союзников, а в противников не может из за установленных целей в настройках способности. Цепь молний с отрец уроном будет лечить здоровье, самый простой вариант без кода.
Канал кстати какой ему ид приказа не укажи Ии тоже не юзает.
32

» WarCraft 3 / Хак на память Warcraft3

16GB, не проверял но лучше синкать строки ибо может быть десинх если ты будешь брать инфу у абилок.
В теории локальное изменение строк прокатит, ибо это все лишь ссылка на разное содержимое.
Нужно будет протестить.
32

» WarCraft 3 / Хак на память Warcraft3

Кет:
Сделай N одинаковых предметов с разными описаниями и меняй их этой функцией.
С таким же успехом это можно сделать и без мемхака =(
Ну да, просто с этой функцией проще и удобнее, не вызывается никаких событий, не сбивается кулдаун на иконке и так далее.
32

» WarCraft 3 / Хак на память Warcraft3

Кет:
quq_CCCP, дык я имел в виду динамическое описание у предметов, а не блокировку.
А он не блокиурет а меняет один предмет другим, правда перетаскивая способности от другого. Сделай N одинаковых предметов с разными описаниями и меняй их этой функцией.
Я проверял на талисмане жизни и предмету с активкой добавляющим броню, в результате описание и иконка сменились а нажимать низя, бонус хп остялся и добавилась защита.
32

» WarCraft 3 / Хак на память Warcraft3

Кастом стун увы кривой, нужно переписывать функцию.
Нужно обязательно следить за смертью юнита, даже если у него есть крест перерождения - стоит затунить мертвого и на него не будет действовать ни 1 стун.
Кет:
Она уже есть!
Для предметов вроде нет. Эх =(
Зато есть:
function ChangeItemId takes item it, integer targetID returns nothing
	local integer cid=ConvertHandle(it)/4
	local integer curID
	if cid == 0 then
		return
	endif
	set curID=Memory[cid+0x30/4]
	set Memory[cid+0x30/4]=targetID
endfunction
Назначает одному предмету описание и иконку другого, кликабельность и все бонусы нет, просто добавляет в бонусы первого бонусы от второго, если они влезут (4 способности лимит так и остался), тоже неплохо для реализации блокировки предметов.
32

» WarCraft 3 / Хак на память Warcraft3

l_Avenger_l, копировать - это сам хак и пару функций для теста, остальные копируем с гитхаба и вносим в свою карту, функций очень много я не вносил их все + дебаги лича, копируй самостоятельно или пиши функции сам лич уже выложил гайд про устройство структуры юнитов.
32

» WarCraft 3 / Хак на память Warcraft3

В условие триггера пихаешь, она пишет в GJ_LastDmg , GJ_LastAttackType тип атаки и урона а потом уже их и смотришь.
32

» WarCraft 3 / Хак на память Warcraft3

l_Avenger_l:
А как выяснить тип нанесенного урона(с руки или спелл)?
Нужно триггер на событие получения урона и смотреть тип атаки и урона, и гадать.
вот код
// WARNING!! IT CAN BE USED ONLY IN FIRST CONDITION AT FIRST POSITION
function GJ_GetRealDmg126a takes nothing returns real
	return cleanReal(indexToReal(ReadEBP_offset(0x380)))
endfunction

// WARNING!! IT CAN BE USED ONLY IN FIRST CONDITION AT FIRST POSITION
function GJ_GetRealDmg127a takes nothing returns real
	return cleanReal(indexToReal(ReadEBP_offset(0x400)))
endfunction

function GJ_SaveLastDmg126a takes nothing returns boolean
	if GetTriggerEventId()!=EVENT_UNIT_DAMAGED then
		return true
	endif
	
	set GJ_LastDmg = GJ_GetRealDmg126a( )
	
	set GJ_LastAttackType=ReadEBP_offset(0x37C)
	if ReadEBP_offset(0x368)!=0 or ReadEBP_offset(0x378)==0x3F800000 then
		set GJ_LastDamageType=0
	else
		set GJ_LastDamageType=ReadEBP_offset(0x378)
	endif
//	call BJDebugMsg("rewrote with "+R2S(GJ_LastDmg))
	return true
endfunction

function GJ_SaveLastDmg127a takes nothing returns boolean
	if GetTriggerEventId()!=EVENT_UNIT_DAMAGED then
		return true
	endif
	set GJ_LastDmg = GJ_GetRealDmg127a( )
	set GJ_LastAttackType=ReadEBP_offset(0x3B0)
	if ReadEBP_offset(0x3CC)!=0 then
		set GJ_LastDamageType=0
	else
		set GJ_LastDamageType=ReadEBP_offset(0x3F0)
	endif
	return true
endfunction
нужно еще 3 глобалки, эту функцию в условие триггера и все.
Далее смотрим на тип урона.