28

» WarCraft 3 / Как настроить такой триггер?

Так проверь просто юнитов в радиусе срабатывания мины, мертвых и живых. Если их нет, значит тревога ложная
28

» WarCraft 3 / Переменный юнит и предмет выпадающий с него

только позицию юнита желательно запеременить и обнулить, чтобы утечек не было
28

» WarCraft 3 / Как создать способность

quq_CCCP, разве юнитов в паузе можно продамажить и вообще как-либо с ними взаимодействовать? + вроде таймеры баффов/дебаффов тоже паузятся вместе с юнитом. Если пауза на это не влияет, то зачем я морфил юнитов, станил их, отбирал абилку атаки ._.
28

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

Извиняюсь за некромантию, но мне сказали тут построить зиккурат
Смотрю никто так и не ответил на вопрос, хотя решение вроде бы простое
Вариантов много, но я решил через хэш-таблицу и сохранением предметов в юнита
код
define{void = nothing; int = integer; bool = boolean}
library mylib initializer init{
    private hashtable H = InitHashtable()
    
    private void act(){
        unit u = GetSellingUnit()
        int i = GetHandleId(u), c = 0, c1, c2 = 0
        
        if !HaveSavedInteger(H,i,c){
            BJDebugMsg("закончились итемы")
        }else{
            while HaveSavedInteger(H,i,c){c++; BJDebugMsg(I2S(c))}
            c--; c1 = c; c = GetRandomInt(0,c)
            AddItemToStock(u,LoadInteger(H,i,c),1,1)
            RemoveSavedInteger(H,i,c)
            if c != c1{
                SaveInteger(H,i,c,LoadInteger(H,i,c1))
                RemoveSavedInteger(H,i,c1)
            }
        }
        
        u = null
    }
    
    private void save(){
        int i = GetHandleId(GetEnumUnit())
        SaveInteger(H,i,0,'spsh')
        SaveInteger(H,i,1,'pmna')
        SaveInteger(H,i,2,'penr')
        SaveInteger(H,i,3,'ward')
        SaveInteger(H,i,4,'ratc')
    }
    private bool cond(){return GetItemTypeId(GetSoldItem()) == 'I000'}
    private bool cond1(){return !IsUnitType(GetFilterUnit(),UNIT_TYPE_DEAD) && GetUnitTypeId(GetFilterUnit()) == 'ngme'}
    private void init(){
        trigger t = CreateTrigger(); int i = 0; group g = CreateGroup()
        
        while i < 16{
            TriggerRegisterPlayerUnitEvent(t,Player(i++),EVENT_PLAYER_UNIT_SELL_ITEM,null)
        }
        TriggerAddCondition(t,Condition(function cond))
        TriggerAddAction(t,function act)
        t = null
        
        GroupEnumUnitsInRect(g,bj_mapInitialPlayableArea,Condition(function cond1))
        ForGroup(g,function save)
        GroupClear(g); DestroyGroup(g); g = null
        
        SetPlayerState(Player(0),PLAYER_STATE_RESOURCE_GOLD,99999)
        
    }
}
В чём суть: если у юнита нет сохраннёного айди итема в первой ячейке, значит все рандомные предметы уже выпали, выскакивает надпись, что они закончились
иначе - идёт подсчёт кол-ва оставшихся предметов, среди них выбирается рандомный, он добавляется в магазин и удаляется из хэша юнита, последний из списка предмет переносится на место удалённого, последнее место так же удаляется

это можно на гуи сделать, но я никогда не юзал там хэш-таблицу, так что сорян))
Загруженные файлы
28

» WarCraft 3 / Не отображаются модели

easypeasy, я понимаю, нет, это не у всех так)
Наверное варик просто прикалывается
28

» WarCraft 3 / Не отображаются модели

Ты ж кодер вроде (?), сохранять по любому нужно
Можно попробовать переимпортировать все модели заново

Хотя ладно, не вариант, насколько я помню у тебя там миллион импорта
28

» WarCraft 3 / Автокаст прожимных навыков

Я пробовал уже сделать автокаст для канала, но вышло очень мягко говоря хреново. Надо выбирать юнитов, которые могут кастануть абилку, а потом надо сделать проверку на наличие рядом вражеских живых юнитов, а потом нужно самого раненного/ближнего юнита выбрать, и потом уже кастануть на него абилку
28

» WarCraft 3 / Извинити последний раз

Fly123, он и не закрыл большинство предыдущих на которые был дан ответ)

Бтв, случайно нашел откуда он карту скачал)

ах, да, раз уж ты начинающий, то попробуй хотя бы пару гайдов на Ютубе по редактору посмотреть, сам начинал с этого. А когда насмотришься, можешь почитать статьи на хгм
28

» WarCraft 3 / Ресурсы карт

Дмитрий Ларионов, а я и не отвечал на саму проблему)
я лишь предложил упрощение жизни
Сижу в редакторе рефоржа, поэтому всё на англ - а это всё сильно усложняет
28

» WarCraft 3 / Извинити последний раз

Принятый ответ
На какую карту? Ты одну скинул


Надеюсь это видео поможет тебе с импортом чего-либо
Загруженные файлы
28

» WarCraft 3 / Проблема с озвучкой

Anariys3333, я не проверял, но возможно через прописывание пути к стандартному звуку тоже можно его заменить
28

» WarCraft 3 / Проблема с озвучкой

А менял как? Через обычную замену в редакторе звука такого быть не должно
28

» WarCraft 3 / Проблема с озвучкой персонажа

Anariys3333, эм.. раскрой кат в моём вопросе, там настройки, которые я применял для звука
28

» WarCraft 3 / Ресурсы карт

Принятый ответ
Я так понимаю это по поводу того же вопроса?
Совсем недавно появился русификатор для рефа, у меня рефа, конечно же, нет, но тебе, вероятно, поможет)
28

» WarCraft 3 / Как сделать всплывающий урон от такой способности?

FriendlyGuest, потерянное здоровье криво будет выводиться, потому что для этого нужен таймер, а за его время может подключиться ещё какой-нибудь источник урона помимо молота, + хил
Можно было бы проверять дамажущего юнита, у которого молот бурь, но там тоже фигня произойдёт, поэтому лучше сделать снаряд через даммика, и если даммик продамажил, то выводить текст

Урон наноситса корректно
если у тебя там анимация с движением снаряда, то оно не может корректно нанестись)
урон от твоего триггера раньше нанесётся, чем ударит молот бурь

upd если там конечно не овер 9999 скорости снаряда, что глазом не заметишь)
28

» WarCraft 3 / Как сделать книгу профессий?

Замена фигня, морф через руну юзай, ибо замену можно будет абузить, например, кинули какой-нибудь бафф/дебафф на юнита - он пропадёт
Да и если у тебя будут триггеры, регистрирующие вход юнита на карту - они повторно сработают
upd и во всех действующих триггерах, где нужен был старый юнит, произойдёт сбой