11

» Warcraft III - Lua / Warcraft III - Lua

Unryze, отличная идея у тебя на реализацию))
А что если как-нибудь отмечать нативки, которых нет в рефордже? (Другой цвет или префикс добавлять, который можно включать/отключать в настройках редактора?)
11

» Warcraft III - Lua / Warcraft III - Lua

Портируется ли на рефордж или же придется переделывать код?
Если речь о нативках, они будут реализованы как "врапперы" и скорее всего пойдут в Blizzard.j, но работать будут так же, ибо я не горю желанием обзывать функции Blz, но их поддержку можно сделать банальным вызовом соответствующей нативки. Просто немного бы подробнее бы расписал, что именно нужно "портировать".
Согласен, непонятно выразился.
Если допустим я сейчас буду в 1.26 писать на Lua, захочу вот перенести карту в рефордж, смогу ли я уже её редактировать в рефордже с новыми функциями рефорджа(ведь были добавлены новые функции), откроется ли она у меня, а то я так полагаю тут и мемхак частично задействован в этой сборке исходя из видео, а в рефордже его убрали насколь знаю
11

» Warcraft III - Lua / Warcraft III - Lua

Портируется ли на рефордж или же придется переделывать код?
11

» WarCraft 3 / Что предпочтительней и почему Lua или Jass?

Unryze, ну это ты жёстко по фактам решил пройтись, респект за разбор, как раз повод дополнить свою статейку :D
11

» WarCraft 3 / Карта вылетает когда тестирую её в jnpg

Какая ошибка вылетает в этот момент? Больше бы конкретики ...😜
просто вылетает она и всё
Карту в студию
11

» WarCraft 3 / Совмещение TextTag и GetlocalPlayer. Десинхронизация.

"Взять союзников игрока" вызывает десинк.
Стоит юзать что-то вроде call SetTextTagVisibility(ttag, GetLocalPlayer() == GetTriggerPlayer())
без внешних условий
Спасибо, действительно работает и про группу спасибо, упустил этот момент.
Нельзя для локального игрока создавать обьекты, типа Create Text Tag или Create Force и прочие handle обьекты, правда, на гуи это будет тяжело отслеживать, потому что придется проверять гуишные функции на предмет создания обьектов.
Чекай, как пруф, что работает и кстати если заметил Гуи у меня по минимуму, все почти custom script
Загруженные файлы
11

» WarCraft 3 / Как обратиться к перменным объекта или получить код пиктограммы?

ScorpioT1000, гениальная идея, спасибо)
Прописывать в свойсте объекта параметры, к которым потом сможем обращаться, респект!!!
11

» WarCraft 3 / "Перемещение юнита при определённым % здоровья

rsfghd, Я с тобой согласен:)
Если честно я не смог это реализовать на гуи изначально, так как забыл про существование действия: добавить событие в уже существующий триггер.
Ты бы так сделал?
Загруженные файлы
11

» IrInA Host Bot / IrInA Host Bot

Не понял я, как мне одновременно создать игру на ирине через конектор и на Айсикапе, подскажите пожалуйста
11

» WarCraft 3 / "Перемещение юнита при определённым % здоровья

Привет, скрин+карта, может быть сразу и поймешь :)
Или конвертированый триггер в jass и немного сократить код, возможно так будет понятнее
globals
    unit array HERO
endglobals
function Trig_BD_Func008002 takes nothing returns boolean
    return ( GetUnitStateSwap(UNIT_STATE_LIFE,(HERO[GetPlayerId(GetOwningPlayer(GetBuyingUnit()))])) <= ((GetUnitState(HERO[GetPlayerId(GetOwningPlayer(GetBuyingUnit()))],UNIT_STATE_MAX_LIFE)) * 0.10 ) )
endfunction

function Trig_BD_Func010002 takes nothing returns nothing
    call DisplayTextToForce( GetPlayersAll(), "У героя меньше 10% хп, отправляем его на базу" )
    call IssuePointOrderLoc(HERO[GetPlayerId(GetOwningPlayer(GetBuyingUnit()))], "move", GetRectCenter(gg_rct_Base))
endfunction


function Trig_BD_Actions takes nothing returns nothing
    local unit u=GetSoldUnit() // Запоминаем купленного Героя
    local integer id=GetPlayerId(GetOwningPlayer(GetBuyingUnit())) //Запоминаем номер игрока купившего Героя
    local trigger t=CreateTrigger()
    set HERO[id]=u
    call DisplayTextToForce( GetPlayersAll(), ( "HERO" + GetUnitName(HERO[0]) ) )
    call TriggerRegisterUnitEvent( t, HERO[id], EVENT_UNIT_DAMAGED )  //Создаем Триггер с событием которое будет срабатывать, как наш герой получит урон
    // Создаем условие которое будет проверять на количество ХП у героя
    call TriggerAddCondition(t, Condition(function Trig_BD_Func008002) )
    // А здесь будут все наши действия
    call TriggerAddAction(t, function Trig_BD_Func010002 )
    set u=null
    set t=null
endfunction

//===========================================================================
function InitTrig_BD takes nothing returns nothing
    set gg_trg_BD = CreateTrigger(  )
    call TriggerRegisterAnyUnitEventBJ( gg_trg_BD, EVENT_PLAYER_UNIT_SELL )
    call TriggerAddAction( gg_trg_BD, function Trig_BD_Actions )
endfunction
Загруженные файлы
11

» WarCraft 3 / Как сделать размер ландшафта больше лимита

Сценарий-Размер карты
Галочку на изменить границы карты и расширяем до 480 (Если я правильно понял, что ты хочешь)
Загруженные файлы
11

» WarCraft 3 / Как использовать предметы типа "Усиливающий" если отрицат. мана?

Реализуй через продажу юнита вместо покупки предмета
Вроде как работает, через отслеживание Героя, который покупает предмет.
Есть ли разница в таком случае использовать при покупке Юнита или Предмет?
function SpellInc takes integer Spell returns nothing
local unit Hero=GetBuyingUnit()
local player NumberPlayer=GetOwningPlayer(Hero)
local integer PlayerId=GetPlayerId(NumberPlayer)
if GetUnitAbilityLevel(Hero, Spell) > 0 then
    if GetUnitAbilityLevel(Hero, Spell) < udg_aLvlskill then
                call IncUnitAbilityLevel(Hero,Spell)
            else
                call SetPlayerStateBJ(NumberPlayer, PLAYER_STATE_RESOURCE_LUMBER, ( GetPlayerState(NumberPlayer, PLAYER_STATE_RESOURCE_LUMBER) + 1 ) )
            endif
        else
            if udg_count_spells[PlayerId] > 0 then
                set udg_count_spells[PlayerId] = udg_count_spells[PlayerId] - 1
                call UnitAddAbility( Hero, Spell)
                if udg_NumberSpell[PlayerId] <= 7 then
                    set udg_NumberSpell[PlayerId] = ( udg_NumberSpell[PlayerId] + 1 )
                    set udg_SpellDel[PlayerId * 7 + udg_NumberSpell[PlayerId]] = Spell
                    call BJDebugMsg ( GetPlayerName(NumberPlayer) + ( "|c0086AD00" + ( ( "выучил способность" + GetAbilityName(Spell) ) + "|r" ) ) )
                else
                    set udg_SpellDel[udg_NumberSpellDelete[1]] = Spell
                    call BJDebugMsg ( GetPlayerName(NumberPlayer) + ( "|c0086AD00" + ( ( "выучил способность" + GetAbilityName(Spell) ) + "|r" ) ) )
                endif
            else
                call SetPlayerStateBJ(NumberPlayer, PLAYER_STATE_RESOURCE_LUMBER, ( GetPlayerState(NumberPlayer, PLAYER_STATE_RESOURCE_LUMBER) + 1 ) )
                call BJDebugMsg("Вы приобрели Максимум способностей")
            endif
        endif
set Hero=null
set NumberPlayer=null
endfunction

function SpellUpgrade takes nothing returns nothing
local item Predmet=GetSoldItem()
local integer SoldItem=GetItemTypeId(Predmet)
local integer Spell
    if SoldItem == 'I002' then
        set Spell = 'AOcr'
        call SpellInc(Spell)
		call RemoveItem(Predmet)
    endif
set Predmet = null
endfunction

//===========================================================================
function InitTrig_Test takes nothing returns nothing
    set gg_trg_Test = CreateTrigger(  )
    call TriggerRegisterAnyUnitEventBJ( gg_trg_Test, EVENT_PLAYER_UNIT_SELL_ITEM )
    call TriggerAddAction( gg_trg_Test, function SpellUpgrade )
endfunction
11

» WarCraft 3 / Релиз Warcraft 3: Reforged

Хах, в инсте под официальным постом российской аудитории шквал негатива по поводу озвучки, багов и фризов. Ай да Боби Котик экономист... Озвучка Артеса и Илидана антитела)
Ждём фиксов и обновленного WE, продукт и вправду сильно отличается от заявленного на близкое и посмотрим, как близы будут набирать обороты в направлении СНГ

bOrissko:
NazarPunk
В мультиплеере?
Проверить с кем то нет возможности, но это в не компании.
В гуи добавили больше контроля над входящим уроном. Редактирование полей работает. Подсветка иконок, как теперь в прологе за орду. А перемещение регионов было ?
Очень интересно, если это сработает в мультиплеере, неужели будет великолепная синхронизация?)
11

» WarCraft 3 / Ничего не понимаю, почему вопрос закрыт, продолжение

Актуально, как пример или нет?
function Trig_DMG_Actions takes nothing returns nothing
local integer id2 = GetPlayerId(GetOwningPlayer(GetTriggerUnit()))
local integer id  = GetHandleId(GetOwningPlayer(GetTriggerUnit()))
local integer i = GetHandleId(GetOwningPlayer(GetEventDamageSource()))
local integer id3 = GetPlayerId(GetOwningPlayer(GetEventDamageSource()))
    call SaveReal(udg_h,id,3,GetEventDamage()+LoadReal(udg_h,id,3))
    call MultiboardSetItemValue(MultiboardGetItem(udg_MB_STAT,id2+1,3),I2S(R2I(LoadReal(udg_h,id,3)))) 
    call SaveReal(udg_h,i,2,GetEventDamage()+LoadReal(udg_h,i,2))
    call MultiboardSetItemValue(MultiboardGetItem(udg_MB_STAT,id3+1,4),I2S(R2I(LoadReal(udg_h,i,2))))
endfunction
11

» WarCraft 3 / Warcraft

Держи, никаких патчей качать не надо.
Загруженные файлы
11

» WarCraft 3 / Кастом гуи и прочие говно функци UMSWE

Можешь по пробовать сам вставить эту функцию, ссылка с требуемой функцией и без иероглифов закодированных в Jass craft github.com/actboy168/jass_for_everedit/blob/master/ui/triggerstr...
Вот ссылка на добавление в редактор своих функции
quq_CCCP, вот еще прикрепил 2 файла разкодированных.
war3map.j(2) отлично переводится гуглом.
Загруженные файлы
11

» WarCraft 3 / Убийство юнита после спавна.

Создай у себя триггер с именем KillSpawnUnit, вставь этот код :
function Killunit takes nothing returns nothing
    local unit u=bj_lastCreatedUnit
    if GetOwningPlayer(GetEnteringUnit()) == Player(11) then //11-коричневый игрок
        call TriggerSleepAction(10.00)
        call KillUnit(u)
    endif
    set u=null
endfunction

//===========================================================================
function InitTrig_KillSpawnUnit takes nothing returns nothing
    local trigger Trigger
    local region  Region = CreateRegion()
    call RegionAddRect(Region, bj_mapInitialPlayableArea)
    set Trigger = CreateTrigger()
    call TriggerRegisterEnterRegion(Trigger, Region, null)
    call TriggerAddAction( Trigger, function Killunit )
    set Trigger=null
    set Region=null
endfunction
В данном случае любые созданные юниты 12 игрока будут умирать через 10 секунд.