30

» WarCraft 3 / как сделать 3 разных действия с одной периодичностью по таймеру?

из них у 1го игрока идёт общий подсчёт действий, у остальных без подсчёта
Держи. Каждому игроку по таймеру с подсчётом.
Хэштаблица хранит по хэндлу, так что можешь свою HandleHT переиспользовать.
//! zinc
library MyTimerLib {
    string msg = "-run";
    integer i, action[];
    timer ticker[];
    boolean running[];
    hashtable ht = InitHashtable();

    function onInit() {
        trigger t = CreateTrigger();

        for (0 <= i < bj_MAX_PLAYER_SLOTS) {
            if ( GetPlayerController(Player(i)) == MAP_CONTROL_USER && GetPlayerSlotState(Player(i)) == PLAYER_SLOT_STATE_PLAYING) {
                TriggerRegisterPlayerChatEvent(t, Player(i), msg, false);
                action[i] = - 1;
                running[i] = false;
                ticker[i] = CreateTimer();
                SaveInteger(ht, GetHandleId(ticker[i]), 0, i);
            }
        }

        TriggerAddAction(t, function() {
            i = GetPlayerId(GetTriggerPlayer());

            if (running[i]) {
                PauseTimer(ticker[i]);
                action[i] = - 1;
                running[i] = false;
                BJDebugMsg("Player: " + I2S(i) + ", stop");
                return;
            }
            running[i] = true;

            TimerStart(ticker[i], .3, true, function() {
                i = LoadInteger(ht, GetHandleId(GetExpiredTimer()), 0);

                action[i] += 1;

                BJDebugMsg("Player: " + I2S(i) + ", action: "  + I2S(action[i]));

                if (action[i] == 2) action[i] = - 1;
            });
        });

        t = null;
    }
}
//! endzinc
30

» WarCraft 3 / как сделать 3 разных действия с одной периодичностью по таймеру?

как передать GetPlayerId(GetTriggerPlayer()) в таймерную функцию MyTimerLib___anon__0 ?
Через глобалку или через ХТ. Вот пример через глобалку сделал.
//! zinc
library MyTimerLib {
    integer n = - 1;
    timer ticker = CreateTimer();
    string msg = "-run";
    boolean running = false;
    player p;
    
    function onInit() {
        trigger t = CreateTrigger();

        for (0 <= i < bj_MAX_PLAYER_SLOTS){
            if ( GetPlayerController(Player(i)) == MAP_CONTROL_USER && GetPlayerSlotState(Player(i)) == PLAYER_SLOT_STATE_PLAYING)
                TriggerRegisterPlayerChatEvent(t, Player(i), msg, false);
        }

        TriggerAddAction(t, function(){
            p = GetTriggerPlayer();
            if (running) {
                PauseTimer(ticker);
                n = -1;
                running = false;
                BJDebugMsg("stop");
                return;
            }
            running = true;

            TimerStart(ticker, .3, true, function() {
                n += 1;

                if (n == 0) {
                    BJDebugMsg("action 1: " + I2S(i));
                }

                if (n == 1) {
                    BJDebugMsg("action 2: " + I2S(i));
                }

                if (n == 2) {
                    BJDebugMsg("action 3: " + I2S(i));
                    n = - 1;
                }
            });
        });

        t = null;
    }
}
//! endzinc
30

» WarCraft 3 / как сделать 3 разных действия с одной периодичностью по таймеру?

как сделать 3 разных действия с одной периодичностью по таймеру?
//! zinc
    library MyTimerLib {
        integer n = - 1;
        timer ticker = CreateTimer();

        function onInit() {
            TimerStart(ticker, .3, true, function() {
                n += 1;

                if (n == 0) {
                    BJDebugMsg("111 " + I2S(i));
                }

                if (n == 1) {
                    BJDebugMsg("222 " + I2S(i));
                }

                if (n == 2) {
                    BJDebugMsg("333 " + I2S(i));
                    n = - 1;
                }
            });
        }
    }
//! endzinc
30

» WarCraft 3 / как присвоить локальные значения игрока в глобальные переменные?

host_pi, создать параллельные массивы точек и синхронизировать по индексу игрока религия запрещает?
30

» WarCraft 3 / как присвоить локальные значения игрока в глобальные переменные?

что под этим понятием имеется ввиду?
Подрузамевается синхронизация значений между игроками.
какие несколько методов имеются ввиду?
Какая версия игры имеется ввиду?
30

» WarCraft 3 / Спавн врага на определенном радиусе через триггеры

Хорошо, а как?
  • Спавнишь юнита
  • Находишь расстояние до игрока
  • Отодвигаешь от игрока на 100 единиц
30

» WarCraft 3 / как присвоить локальные значения игрока в глобальные переменные?

если одна глобальная переменная у разных игроков имеет разное значение - это десинх или нет?
До того момента пока эта переменная не будет использоваться где-то в синх данных, то норм.
30

» WarCraft 3 / Равкоды

Вышла новая версия! Прокрутить к ресурсу
Добавилась база из .slk, позволяющая узнать, использует ли игра равкод.
Загруженные файлы
30

» WarCraft 3 / Равкоды

clojurmagictime, я б с удовольствием посмотрел, но на MacOS не запускается. Да и 0x нотации нет.
Загруженные файлы
30

» WarCraft 3 / Депротект (знаю заеженная тема)

Господи, в чем проблема использовать w3x2lni?)
Наверно в том, что она может превратить карту в тыкву.
30

» WarCraft 3 / Депротект (знаю заеженная тема)

всем, кто задаёт подобные вопросы я бы предложил прикладывать к своим постам скриншоты о прохождении проверки лицушности винды
У меня всё лицушное кроме 1.26 которую нельзя приобрести легальным способом. Что дальше?
30

» WarCraft 3 / Уменьшение урона юнита при атаке

проще начать разбираться в Jass, чем пытаться найти что-то похожее на GUI.
Этот код хоть криво, но должен работать. Если даммик вообще не кастует, значит проблемы с настройкой даммика/заклинания.
Можешь попробовать взять даммика отсюда.
30

» WarCraft 3 / Как написать код на Jass

столько ответов и ни одного с кодом
Потому что хэндлы нужно считать через WFE.
30

» Warcraft III - Lua / Warcraft III - Lua

kg_toly, Здесь я настройку под Ujapi описывал. За исключением новых нативок в принципе будет то же самое.
30

» Блог им. TerrorGold / Ограничения и сила мага

Если Геральд успокаивал коня Аксием в восьмой книге
Он это ещё и в первых книгах делал, когда просто по лесу ехал и не знал о Нивеллене.
то почему он в первые секунды боя не убил сотни крестьян?
Потому что на фоне разыгравшегося гуманизма решил не кастрюлить крестьян оптом.
Так же, если он может использовать знаки без зелий, почему заранее перед боем не окружил себя квентом
Как показывает игра, Квен плохо работает против спама атаками.
30

» Блог им. TerrorGold / Ограничения и сила мага

Любой опытный человек, тот же рыцарь, легко вооружённых людей в числе семь человек сумеет убить с лёгкостью.
Эммм, это были не рандомные семь крокодилов, а обученная и сплочённая банда наёмных убивец. Того же рыцаря они бы свалили с лошади багром и натюкали бы по шлему.
Геральд по книгам не мог пользоваться знаками без зелий
Ога, видимо он постоянно пил зелья, что Плотву Аксием успокаивать.
так же в книгах он не красивый, худой и не носит броду
В книгах нормального описания внешности ведьмака нетути. Единственно, что из-за своей мутантности с телосложением у него полный порядок. Так что Жебровски прекрасно подходит на роль Герванта из Рыбии.
так же Геральд не носит тяжёлых доспехов по сравнению с той же второй и третьей частями.
В третьей части никто не мешал носить Кота и быть тру каноничным возьмаком.
Геральда убил обычный чувак вилами которого он пощадил
В отличие от ситкомов, все внезапно смертны.
30

» Блог им. TerrorGold / Ограничения и сила мага

Я беру не игрового ведьмака а книжного, которого может вилами заколоть мать его крестьянин.
Я тебе тайну открою, это один и тот же ведьмак. Его не просто так Мясником из Блавикена прозвали. Ну а про затыкивание вилами это больше к всяким CRPG, где ловлевельный персонаж никогда не затыкает хайлевела, если тот даже просто будет спать.
Магов из ведьмака я вообще не беру.
Если не брать магов из Ведьмака, то получится, что возьмаки как мыши, рождаются из гнилого сена.
И сделать её предметом легенд, сказаний и жизни за стеной?
А можно сделать умнее. Как не помню у кого читал. Мир это всего лишь сон всемогущего бога, который спит. И на вдохе магия уходит из мира, а при выдохе она возвращается в мир. Нечто подобное Мартын реализовал со своими драконами, когда все маги были по сути фокусниками, а потом ВНЕЗАПНО магия заработала.

например по кол-во раз использования или времени прокаста заклинания
Помню читал книгу про похождения Рейстлина Маджере, которая начиналась как тупо описание катки. Ух, какие потом автор сальтухи делал, чтоб логически обосновать идиотские ограничения движка DnD с запоминанием заклинаний.