Продолжение кампании Warcraft 2: Tides of Darkness - новый проект от Fablus в Warcraft 3: The Frozen Throne Погрузись в мир Военного Ремесла как никогда прежде!
Risk карта для Warcraft 3 на пиратскую тематику! Абордаж, Нестандартная Система Кораблей, Пиратские Клады, Крафт, 7 рас и 6 больших островов, Множество Юнитов и Способностей — всё это ждёт вас в Fantasy Pirates!
The Scouring - это RTS про людей и орков. Используйте магию, стреляйте из пушек и побеждайте в динамичных сражениях. Редактор мира, кастомные скрипты, Интеграция со Steam Workshop, Мультиплеер, все на месте.
Пора набивать сумки картами, здесь есть чем поживиться!
Делаешь игру? Заходи на склад 3D ассетов!
» WarCraft 3 / как присвоить локальные значения игрока в глобальные переменные?
это всё конечно хорошо, вот бы еще пример кода увидеть
» WarCraft 3 / как сделать 3 разных действия с одной периодичностью по таймеру?
есть ссылки на статьи? пошёл погуглить
» WarCraft 3 / Депротект (знаю заеженная тема)
а вот и не поверю
имелись ввиду глобалки простые типа integer и string
trigger t = CreateTrigger();
в общем хештейбл я так понял это как словарь
ht[0][1] = somevalue;
данном случае тянется номер игрока по привязанному к нему id таймера. классное решение
т.е. на глобалках и таймерах подобный код не сделать с отдельным таймером для каждого плеера?
или ты думаешь движок сайта xgm тоже с нуля писан и не задействует никаких сторонних библиотек?
из них у 1го игрока идёт общий подсчёт действий, у остальных без подсчёта
//! 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
как передать 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
как сделать 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
что под этим понятием имеется ввиду?
какие несколько методов имеются ввиду?
» WarCraft 3 / Спавн врага на определенном радиусе через триггеры
Хорошо, а как?
если одна глобальная переменная у разных игроков имеет разное значение - это десинх или нет?
» WarCraft 3 / Равкоды
» Администрация XGM / Курсив захватывает ссылки
» WarCraft 3 / Уменьшение урона юнита при атаке
Господи, в чем проблема использовать w3x2lni?)
всем, кто задаёт подобные вопросы я бы предложил прикладывать к своим постам скриншоты о прохождении проверки лицушности винды
хотя скорее ни на что не влияет
При снятии с публикации можно указать причину в комментарий к ресурсу.
» WarCraft 3 / как присвоить локальные значения игрока в глобальные переменные?
» WarCraft 3 / как сделать 3 разных действия с одной периодичностью по таймеру?
» WarCraft 3 / как сделать 3 разных действия с одной периодичностью по таймеру?
» WarCraft 3 / Депротект (знаю заеженная тема)
» WarCraft 3 / как сделать 3 разных действия с одной периодичностью по таймеру?
Ред. nazarpunk
» WarCraft 3 / как сделать 3 разных действия с одной периодичностью по таймеру?
» WarCraft 3 / Депротект (знаю заеженная тема)
» WarCraft 3 / как сделать 3 разных действия с одной периодичностью по таймеру?
Ред. nazarpunk
» WarCraft 3 / как сделать 3 разных действия с одной периодичностью по таймеру?
Ред. nazarpunk
» WarCraft 3 / как сделать 3 разных действия с одной периодичностью по таймеру?
» WarCraft 3 / как присвоить локальные значения игрока в глобальные переменные?
» WarCraft 3 / как присвоить локальные значения игрока в глобальные переменные?
» WarCraft 3 / как присвоить локальные значения игрока в глобальные переменные?
» WarCraft 3 / как присвоить локальные значения игрока в глобальные переменные?
» WarCraft 3 / Спавн врага на определенном радиусе через триггеры
» WarCraft 3 / Спавн врага на определенном радиусе через триггеры
» WarCraft 3 / как присвоить локальные значения игрока в глобальные переменные?
Ред. nazarpunk
» WarCraft 3 / Равкоды
Прокрутить к ресурсу
» Администрация XGM / Курсив захватывает ссылки
» WarCraft 3 / Равкоды
» WarCraft 3 / Равкоды
» WarCraft 3 / Уменьшение урона юнита при атаке
» WarCraft 3 / Депротект (знаю заеженная тема)
» WarCraft 3 / Депротект (знаю заеженная тема)
» WarCraft 3 / Уменьшение урона юнита при атаке