32

» WarCraft 3 / Не работает триггер

Во первых куча утечек, во вторых нормальный фильтр сделай и проверку что юнит то есть, в третих а даммик то видит цель? Может кинуть спелл?
32

» WarCraft 3 / Формула получения exp

Ну вот примерная функция:
function aow_GetApxExpBounty takes unit u returns real
return SquareRoot((GetUnitState(u, UNIT_STATE_MAX_LIFE) + GetUnitState(u, UNIT_STATE_MAX_MANA)) * GetUnitLevel(u)) * 2
endfunction
Ну в целом там куда более сложный код, там идет разделение по расстоянию и прочее.
32

» WarCraft 3 / Как сделать выбор героев через таверну как в доте

Ну а чем плох выбор героя в тавернах? Ну и почему именно фреймы? Вот хз, если честно, да раньше было нельзя так сделать а щяс можно - но зачем? Выбор героев только как не делали, двойным кликов - Конфетные войны 2004, трекабли + кинематик (гранпри азерота), таверны, светлячки, ой а вспоминаю древние карты года 2006 по вахе, там трекабли были и лок камеры. Ну там всякие настройки делали как в Pimp My Peon дамми гером, или рабочим. И как то особо это не считалось, до доты даже не дошло, хотя техническая возможность была еще тогда.
32

» WarCraft 3 / Включить ИИ для игрока-человека

Принятый ответ
Никак не включить, это взаимоисключающие параметры - живой игрок и ИИ.
Для помощи, пишем свои скрипты.

Микро контроль стандартных ИИ зашит в Game.dll и ваще никак с уровня ИИ скрипта для сражений не управляется, все эти подшаги и атака огненной стрелой жрицы луны, хил паладина в юнита на 10 хп, или выбор позиции для здания - ни управляется никак, оно тупо есть, как и все шаблоны кастов для нейтралов. Так что пишите своё собственное.
32

» WarCraft 3 / Движущийся закопавшийся и нырнувший

Разумеется, потому что модель надо другую делать, у тебя одна и та же модель, в которой нет анимации плаванья \ ползанья под землей.

Нужно делать кастом модель с анимацией, и полупрозрачным силуеэтом (лужей) чтобы при детекте было понятно кто там и что там.
32

» WarCraft 3 / Запрет выбора юнита

RvunOchka, а что тут непонятно, вручаешь юнитам невидимость, и настраиваешь аспект союза с общим обзором, и юнит становится не видимым для союзника.
32

» WarCraft 3 / Запрет выбора юнита

Инвизы, просто настраиваем аспекты союзов, юниты невидимые и всё.
32

» WarCraft 3 / Как использовать тип ability? Jass. MemoryHack.

Принятый ответ
LastUchiha, да, GetUnitAbility для получения адреса pAbil, и всё. Адресс всю игру у одного юнита будет один и тот же, поэтому адресс абилки можно сохранять в хештаблицу к примеру.
32

» WarCraft 3 / Как использовать тип ability? Jass. MemoryHack.

LastUchiha, есть, не так выглядят, там есть для абилки и для адреса, тебе нужны для адреса.
32

» WarCraft 3 / Как использовать тип ability? Jass. MemoryHack.

Снова схватил что попало не глядя, тебе нужен указатель на абилку - это integer, в мемхаке есть функция GetUnitAbility( unit, integer id) returns integer
Обязательно проверять на наличиее абилки и чему равен указатель, если он меньше 1 то абилки у юнита нету.

function ShowAbilityById_Main takes integer ConvertedHandle, integer d returns nothing
	if ConvertedHandle>0 and RMem(ConvertedHandle)>0 then
		call WMem(ConvertedHandle + 0x40,RMem(ConvertedHandle + 0x40)+d)
	endif
endfunction

function HideAbilityButton takes unit u, integer id, boolean hide returns nothing
	local integer offset
	if u!=null and id!=0 then
		set offset=GetUnitAbility(u,id)
		if offset!=0 then
			if hide then
				call ShowAbilityById_Main(offset,1)
			else
				call ShowAbilityById_Main(offset,-1)
			endif
		endif
	endif
endfunction
Все просто, находишь у юнита указатель на абилку, если он не равен нулю, то записываешь в адрес абилки +0x40 значение, любое выше 0 это абилка скрыта, это счетчик.
Внимательно смотри на список функций, там наделаны на все случаи жизни, выбирай не первую попавшуюся.
32

» WarCraft 3 / нужен эффект ауры аганима для карты iccup dota

Ну нужен так пусть делают разработчики айкап доты, они же там вроде как работаю не за спасибо (но это неточно).
Потом в какую из их доток, у них их 2.

Ах да, и какую такую ауру, у аганима же ауры нету? Не?
32

» WarCraft 3 / Повелитель Могил

У него анимации закопки, выкопки и атаки из под земли сделаны для ролика в кампании нежити. Там Анубарак всегда из подземли вылазит.
32

» WarCraft 3 / Фаталит функция из мемхака. Jass

LastUchiha, я бы взял мемхак 1.6 к примеру и перенес, хз правда для чего именно он вам нужен. но откуда код функции выше?
Во первых нет определения версии игры, во вторых проверки входных аргументов, в теме с мемхаком обсуждалось раз 10.
Не все выложенные функции - рабочие, многие демонстрационные и не годятся для игровых карт из за изьянов.
32

» WarCraft 3 / Фаталит функция из мемхака. Jass

LastUchiha, это не проблема а чепуха какая то, все одно и то же, просто думаем головой.
32

» WarCraft 3 / Фаталит функция из мемхака. Jass

Принятый ответ
Как насчет юзать её нормальную версию из новых сборок мемхака?

function StartAbilityCooldown takes unit whichUnit, integer abilityId, real cd returns boolean
    local integer pAbility = 0
    local integer offset1
    local integer offset2
    local boolean bRes = false
    if GetUnitAbilityLevel( whichUnit, abilityId ) == 0 or cd == 0.00 then
        return bRes
    endif
    set pAbility = GetUnitAbility( whichUnit, abilityId )
    if pAbility < 1 then
        return bRes
    else
        set offset1 = RMem( pAbility + 0x134 )
        set offset2 = RMem( pAbility + 0x138 )
        if offset1 > 0 or offset1 < 0 or offset2 > 0 or offset2 < 0 then
            call WMem( pAbility + 0x134, mR2I( cd ) )
            call WMem( pAbility + 0x138, mR2I( 10.00 ) )
        endif
        set Memory[pReserverdIntArg1 / 4] = mR2I( cd )
        call CallThisCallWith2Args( pStartAbilityCD, pAbility, pReserverdIntArg1 )
        set bRes = IsAbilityOnCooldown( pAbility )
        call WMem( pAbility + 0x134, offset1 )
        call WMem( pAbility + 0x138, offset2 )
    endif
    return bRes
endfunction

Либо
function StartAbilityCooldown takes unit whichUnit, integer abilityId, real cd returns boolean
local integer pAbility = 0
local boolean bRes = false
if GetUnitAbilityLevel( whichUnit, abilityId ) == 0 or cd == 0.00 then
    return bRes
endif

set pAbility = GetUnitAbility( whichUnit, abilityId )
if pAbility < 1 then
    return bRes
else
    call WMem(pReservedIntArg1 , SetRealIntoMemory(cd))
    call this_call_2(pStartAbilityCD , pAbility , pReservedIntArg1)
    set bRes = IsAbilityOnCooldown(pAbility)
endif
return bRes
32

» WarCraft 3 / Наложение спецэффектов от юнита к юниту

Принятый ответ
Можно, рисовать молнию, есть куча функций для работы с молниями, создание, движение, изменение цвета и прозрачности. Не хватает только GetUnitImpactZ
Но это поправимо базой данных или Мемхаком.
32

» WarCraft 3 / SimulateAttackInstance работает?

Принятый ответ
Работает, код нужно поправить. В цель летит тычка, как от атаки, но событие атаки не срабатывает. Криты пашут как и орбы.

Так же можно CastAbilityTarget кидать огненные или ядовитые стрелы, эффект почти тот же, но уже с атакой.

function SimulateAttackInstance takes unit u, unit target returns nothing
	local integer a=GetUnitAbility(u,'Aatk')
	local integer b
	if a>0 then
		set b=ConvertHandle(target)
		//call BJDebugMsg("attack starting")
		call CallThisCallWith7Args(pSimulateAttackInstance,a,b,0,0,1,1,1)
		//attack ability
		//target
		//unknown, must be zero in order to attack to happen
		//1 if should use orb-modifier (any)
		//unused
		//unknown
		//unknown
		//0 1 0 0 0 - autocast hotkey OR searing arrow passive cast (orb of slow, geminate attack)
		//0 0 1 1 1 - default attack
		//0 0 1 0 0 - attack with orb-effect (2nd index?)
		
	endif
endfunction
pSimulateAttackInstance - это указатель на функцию в Game.Dll
На 1.26а он вот такой - set pSimulateAttackInstance = GameDLL + 0xCF660
на другие патчи, никто не искал.
У того кто атакует должна быть Aatk - способность атаковать, целью является виджет, которая должна быть не null, виджетом, который уязвим.
В целом функция демонстрационная, не развивалась и в конечные сборки мемхаков не попала.
32

» WarCraft 3 / Способность Celestial Hammer из Доты 2

Extremator, что в плане алгоритма что в плане кода, рекс 2 таймера, 2 даммика, которые летят по эллипсу, для каждого свой... Ну и в целом алгоритм убог, примеры были на сайте из того же пудж варс с более продвинутой математикой.
32

» WarCraft 3 / Способность Celestial Hammer из Доты 2

SсRealm, код топоров рексара в доте фрога убог, сложен для понимания еще и утечки плодит, никогда не приводите в примерах пуджа, тини, бриста, рексара - максимально ущербно сделаны.
32

» WarCraft 3 / Способность Celestial Hammer из Доты 2

Ну а в чем проблема, обычный кастомный скилл, герой учит 1 способность на основе канала, при касте её запрещают и вручают способность без указания цели. Молот - даммик, ну и триггерное движение, в целом не особо сложная способность. Да в доте там сложнее из за всяких тонкостей механики и взаимодействий с другими способностями из доты.
Огонь - тупо спецэффекты в координатах, отдельным триггером собираем в группу всех вокруг координат огня и группируем под условие (в доте это враг, живой, не маркер (курьер, катапульты, варды и тому подобное), не здание, не екшент но медведь силлабира.) и если такие цели найдены наносим им урон и замедление применяем даммиком к примеру.
32

» WarCraft 3 / Помогите, пожалуйста, с оптимизацией карты

Боюсь придется весь код с нуля писать, попутно думая о том что пишешь, то какие то бесполезные действия 100500 утечек.
32

» WarCraft 3 / Проблема с тригерром предмета

А стандартная аура регена фонтана не канает? Цели установить на только сам воин?