32

» WarCraft 3 / Ломается система сейвов

MKDimon, как хочешь, хоть патчи архивы игры для хранения сейвов, это уже твое дело.
32

» WarCraft 3 / Ломается система сейвов

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

» WarCraft 3 / Ломается система сейвов

У меня эта система сейвов даже не открывается, какое то кастом гуи?
Если это генератор сейв кодов, то уже баян, т.к ты взялся за мемхак, мб на нем и будешь сохранять данные.
32

» WarCraft 3 / Морф

Принятый ответ
Razor_dex, приводит способность в дейстиве, проверяешь кто приминавший по type-id.
32

» WarCraft 3 / Мемхак, сломался старт перезарядки способности (StartAbilityCD)

Принятый ответ
Мб переписать нужный тебе функционал под мх второй версии?
Я перенес минимум функций, т.к их вопервых овер дохрена, вовторых переносил самые популярные и простые, надо дллок тогда было.
32

» WarCraft 3 / Войти в игровую область 2 раз

Разумеется нет, Юнит где был там и остался, у разложившихся вовсе координаты в нуля, т.е центр карты, поэтому игровой рект они немогут покинуть при смерти.
32

» WarCraft 3 / Мемхак, сломался старт перезарядки способности (StartAbilityCD)

Ну перепиши функцию старта абилки, 0х126990 Адресс функции restore mana are, от абилки восстановление маны, оно требует структуру и кол-во маны, поэтому стоят проверки на оферты 0х134 и 0х138, другой оффсет не требует ничего, и ненужны в теории эти проверки.
32

» WarCraft 3 / 2 в 1 как сохранить игру через тригер? и как скрыть курсор?

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

» WarCraft 3 / Мемхак, сломался старт перезарядки способности (StartAbilityCD)

оффсет на функцию запуска кд верный?
set pStartAbilityCD = (GameDLL + 0x050B70) GameDLL + 0x126990
Вот тут две версии, первая от IceFog вторая от DracoL1ch, обе работают, 1.26а
То в старой версии часть абилок баговали...
32

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

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

» WarCraft 3 / Syntax Error, unexpected: "(" ? - Ошибка в Jass.

Mate, очевидно что прежде чем триггеру добавить действие, его нужно сначала написать, у этой функции, назовем её TriggerAction не должно быть аргументов,
function TriggerActions takes nothing returns nothing
Функцию эту нужно обьвить выше того места где ты собрался добавлять триггеру действие.
А уже в самой функции ты будешь удалять юнитов, ссылаясь на GetTriggerUnit() - это тот на кого сработало событие триггера, разумеется это работает на те события, которые напрямую связанны с юнитом.
32

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

MKDimon, код в студию, вы уже задолбали ей богу, как мы будем гадать что вы сделали?
32

» WarCraft 3 / Syntax Error, unexpected: "(" ? - Ошибка в Jass.

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

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

Блин я в этом рус гуи нихрена понять немогу, спелл примитив, если как в доте без изисков и по простому - опен дота, там он есть на ретурнбаге (изи меняется на хт).
32

» WarCraft 3 / ZinC: Похищение жизни

А че эффект молнии идет откуда то из жопы? Неужели бд нельзя было с высотой сделать?
32

» WarCraft 3 / Передача локальной переменной

Frzctions, ну ты не представляешь синтаксис jaas'a? Или что тебе непонятно, функция может принимать аргументы или возвращать, но возвращает всегда лишь 1 аргумент.
32

» WarCraft 3 / Передача локальной переменной

Frzctions, вот примерно так можно сделать, но для этого нужно включать думалку.
код jass
globals
    group TempGroup = CreateGroup()
    unit bj_lastFilterUnit = null
endglobals

function Trig_Dark_Explosion_Copy_Conditions takes nothing returns boolean
    return ( GetSpellAbilityId() == 'A005' )
endfunction

function Ally_Filter takes nothing returns boolean
    set bj_lastFilterUnit = GetFilterUnit()
    return GetWidgetLife(bj_lastFilterUnit) > 0.405 and IsUnitAlly( bj_lastFilterUnit, bj_groupEnumOwningPlayer) and GetUnitState( bj_lastFilterUnit, UNIT_STATE_LIFE ) < GetUnitState( bj_lastFilterUnit, UNIT_STATE_MAX_LIFE ) and not IsUnitType( bj_lastFilterUnit, UNIT_TYPE_STRUCTURE ) // через and можно дополнить критерии отбора союзников
endfunction

function Enemy_Filter takes nothing returns boolean
    set bj_lastFilterUnit = GetFilterUnit()
    return GetWidgetLife(bj_lastFilterUnit) > 0.405 and IsUnitEnemy(bj_lastFilterUnit, bj_groupEnumOwningPlayer) and not IsUnitType( bj_lastFilterUnit, UNIT_TYPE_STRUCTURE ) // через and можно дополнить критерии отбора противников
endfunction

function Trig_Dark_Explosion_Copy_Actions takes nothing returns nothing
    local unit caster = GetSpellAbilityUnit()
    local real cx = GetUnitX(caster)
    local real cy = GetUnitY(caster)
    local real heal = RMaxBJ( 25.00, GetHeroStr( caster, true ) * 3.00 )
    local real damage =  RMaxBJ( 25.00, GetHeroStr( caster, true) * 25.00 )
    local unit enumunit = null
    
    set bj_groupEnumOwningPlayer = GetOwningPlayer( caster )
    // союзники
    call GroupClear(TempGroup)
    call GroupEnumUnitsInRange( TempGroup, cx, cy, 650.00, Condition( function Ally_Filter) )
    
    loop 
        set enumunit = FirstOfGroup( TempGroup )
        exitwhen enumunit == null
        call GroupRemoveUnit( TempGroup, enumunit )
        call SetUnitState( enumunit, UNIT_STATE_LIFE, GetUnitState( enumunit, UNIT_STATE_LIFE ) + heal )
        call DestroyEffect(AddSpecialEffectTarget( "Abilities\\Spells\\Undead\\VampiricAura\\VampiricAuraTarget.mdl", enumunit, "chest" ))
    endloop
    // враги
    call GroupClear(TempGroup)
    call GroupEnumUnitsInRange( TempGroup, cx, cy, 650.00, Condition( function Enemy_Filter) )

      loop 
        set enumunit = FirstOfGroup( TempGroup )
        exitwhen enumunit == null
        call GroupRemoveUnit( TempGroup, enumunit )
        call UnitDamageTarget( caster, enumunit, damage, false, false, ATTACK_TYPE_NORMAL, DAMAGE_TYPE_FIRE, WEAPON_TYPE_WHOKNOWS )
        call DestroyEffect(AddSpecialEffectTarget( "Abilities\\Spells\\Undead\\VampiricAura\\VampiricAuraTarget.mdl", enumunit, "chest" ))
    endloop
    
    set enumunit = null
    set caster  = null
endfunction

//===========================================================================
function InitTrig_Dark_Explosion_Copy takes nothing returns nothing
    set gg_trg_Dark_Explosion_Copy = CreateTrigger(  )
    call TriggerRegisterAnyUnitEventBJ( gg_trg_Dark_Explosion_Copy, EVENT_PLAYER_UNIT_SPELL_CAST )
    call TriggerAddCondition( gg_trg_Dark_Explosion_Copy, Condition( function Trig_Dark_Explosion_Copy_Conditions ) )
    call TriggerAddAction( gg_trg_Dark_Explosion_Copy, function Trig_Dark_Explosion_Copy_Actions )
endfunction
Frzctions, еще раз, для переноса неких данных из одной функции в другую, которая не вызывается напрямую через call юзают либо хештаблицы, либо глобальные переменные, они если что для этого и созданы, ну либо строят код так чтобы переносить ничего не потребовалось...