3

JASS: Курс молодого бойца

» WarCraft 3
Приветствую на страницах первой статьи статейного цикла, посвящённого JASS - языку программирования, специально разработанному для модификаций игр Blizzard Entertainment, но здесь речь пойдёт о JASS для WarCraft III: The Frozen Throne. Ваш текущий уровень владения этим языком не имеет значения - как новичку, так и побитому жизнью профессионалу всегда найдётся, чему научиться у других. Надеюсь, что этот материал пригодится и Вам, дорогой читатель.

Читать далее...
8

Система погодных эффектов и тумана

» WarCraft 3
Система пассивных погодных эффектов и система тумана с настраиваемыми параметрами, и несколькими полезными функциями.

Читать далее...
43

[Мемхак] Функции для способностей.

» WarCraft 3
Функции для мемхака, для работы со скилами.

Читать далее...
3

Dummy Sphere System

» WarCraft 3

Dummy Sphere System

Небольшая наработка, позволяющая максимально просто связывать юнита с дамми-сферами от JesusHipster, изменяя эффекты без создания лишних моделей
При помощи наработки также можно связывать юнита с любым даммиком.

Читать далее...
8

Чарж (Charge)

» WarCraft 3
/Дело было вечером, делать было нечего//
Описание: Юнит бежит определенное расстояние в указанном направлении, расталкивая всех наземных противников на своем пути. Учитываются клиффы и здания, от которых герой отталкивается.
Не действует на союзников. Ломает декорации, не может вылететь за границы карты.
Способность полностью MUI (может использоваться любым количеством игроков и юнитов).
Используемые глобальные переменные: 1 единственная глобалка для хэш-таблицы.

Читать далее...
15

Оптимизация

» WarCraft 3
Варик не любит когда всяких циклов много или они долго длятся, но без них никак, так как же быть? ExecuteFunc поможет?
19

Уровень баффа не считается

» WarCraft 3
Имеется такой фрагмент кода:
""
lvl = GetUnitAbilityLevel(target,'BHad');
if (lvl>0)

Читать далее...
15

Перестали работать все таймеры.

» WarCraft 3
Добрый день.
Я, к сожалению, не смог задать свой вопрос на форуме, поэтому задам тут.
Пишу карту в jass new gen pack. Вчера неожиданно в карте перестали работать абсолютно все таймеры. Таймеры локальные. Я даже понятия не имею от чего это может быть. Весь остальной код работает прекрасно.
15

Помощь по исправлению кода Jass

» WarCraft 3
Прошу прощения если написал не в тот раздел. Вопрос вот в чём, давненько создал карту... но никак не могу исправить вылеты. Т.е игра идёт нормально если играть скажем 2 на 2 или даже 3 на 3 но при игре 6 на 6 (с ботами) игра вроде не тормозит, но с примерно в 50% случаев заканчивается банальным вылетом без ошибок. Большая часть кода написана на jass (использую jngp). Я не силён в jass, поэтому может что-то не так в коде. Очень хотелось бы понять ошибку и исправить. Грешу на функцию (смысл её в том чтобы боты кастовали заклинания на ближайших вражеских героев в радиусе 1000 ед.) так как вылеты происходят во время боя между героями (как я замечал). Вот код функции которую использую с промежутком в 1 секунду.

Читать далее...
4

Игнорирование приказов юнитом.

» WarCraft 3
Добрый вечер!
Подскажите, как заставить юнита игнорировать все приказы игрока, которому он принадлежит, но в то же время не менять его владельца на нейтрально-пассивного?
Конкретно, в одном из заклинаний юнит должен приблизиться к цели со своей стандартной скоростью. Если юнит не игнорирует приказы, то его можно тут же перенаправить в другую сторону - и триггерная часть способности все равно исполняется. Если вызвать
call PauseUnitBJ( true, unit )
, то юнит не сможет передвигаться, и, хотя способность сработает корректно, визуально это выглядит плохо.

Почему-то вопрос закрыли, хотя ответ так и не был получен...
55

Угол поворота декорации.

» WarCraft 3
Добрый вечер!
Как узнать угол направления разрушаемого объекта?
Для боевой единицы есть специальная функция "Боевая единица - угол поворота". А как поступить с декорацией?
Допустим, ситуация. У меня есть декорация, после разрушения которой на ее месте создается другая декорация с похожей, но измененной моделью. Соответственно, нужно сделать так, чтобы направление созданной декорации совпадало с направлением уничтоженной декорации.
14

Как выбрать ближайшую декорацию.

» WarCraft 3
Доброго времени суток!
Полазив по различным сайтам нашел способ выбора ближайшего юнита к цели-инициатору - заносить в новую группу всех юнитов в нужном мне радиусе от инициатора и выбрать первого юнита из этой группы.
Возник вопрос - а как выбрать ближайшую разрушаемую декорацию к юниту? Например, приказать юниту двигаться к ближайшему разрушаемому объекту типа "бочонок"?
24

Новый Bloodrage из DotA

» WarCraft 3
Новый Bloodrage из DotA в том виде, в котором он реализован в DotA IceFrog'ом.

Читать далее...
5

Не могу создать мультибоард

» WarCraft 3
Уже очень давно не создавал бордов на ГУИ, а на JASS и вовсе не пробовал. Нужно каждому из 4 игроков создать свою таблицу.
int i = 0
    while (i<4)
    {
        MB[i] = new multiboard
        MultiboardSetColumnCount(MB[i],2)
        MultiboardSetRowCount(MB[i],7)
        MultiboardSetTitleText(MB[i],"hello")
        if (GetLocalPlayer() == Player(i) )
        {
            MultiboardDisplay(MB[i],true)
            MultiboardMinimize(MB[i],true)
        } else
        {
            MultiboardDisplay(MB[i],false)
        }
        ++i
    }
Где MB[] - массив бордов (глобалка).
Подправил код
2

Как пользоваться boolexpr

» WarCraft 3
И что это вообще такое?
11

Выполнение кода и обращение к данным

» WarCraft 3
Приветствую тебя, дорогой странник, сегодня я открою тебе занавес триггерных тайн, погружу тебя в глубины стека событий и пронесу до вершин лимита операций!
Так открой же глаза, оставь обыденную суету и встречай межсетевую вселенную!
Рукопись сия рассчитана как на юного странника, так и на видавшего виды путешественника.

Читать далее...
7

Присоединение числа к таймеру (Timer Exploit)

» WarCraft 3
Данные функции позволяют запускать таймер, присоединяя к нему число и брать это число в функции-обработчике.
Сразу скажу, что этому эксплоиту уже много-много лет, но я не заметил интенсивного его использования. Зачем тратить время, если есть данный хак ?

Читать далее...
12

SODS

» WarCraft 3
Система предназначенная для выведения получаемого урона в виде одного плавающего текста, который показывает суммарный урон на юнита. В зависимости от количества урона текст увеличивается.

Читать далее...
2

Генерируем функции инициализации

» Fly Data Processor
Небольшой пример шаблона, помогающего избежать прерывания потока из-за лимита операций при заполнении базы.

Читать далее...

Рецепты крафта в РО (в разработке)

» Fly Data Processor
Пример использования препроцессора для формирования списка рецептов на основе данных из РО.

Читать далее...
4

Расчет числа однотипных предметов в инвентаре

» WarCraft 3
Самая быстрая функция расчета числа однотипных предметов в шестислотном инвентаре.
работа через (GetItemTypeId(UnitItemInSlot(u, slot ))== typeId))

Читать далее...
2

Проверка координат в окружности

» WarCraft 3
Функции для проверки принадлежности координат к кругу.

function IsCoordsInCircle takes real x,real y,real rad,real cx,real cy returns boolean
   return (SquareRoot((cx-x)*(cy-y)) < rad)
endfunction
1

Вращение юнита в 3D

» WarCraft 3
Вращение юнита в 3D.
A,B,C - углы на которые будет поворачиваться юнит в пространстве вокруг точки X1, Y1, Z1
A, B, C, X1, Y1, Z1 - глобалки.

Читать далее...
13

Наверное самая быстрая функция по касту "тригерных" магий

» WarCraft 3
Ловите, наверное самая быстрая функция по касту "тригерных" магий =)
(По скорости быстрее чем 20 обычных проверок GetSpellAbilityId()=='SPELL ID')
СабСтринг для того чтобы не "тригерные" магии не отлавливал (для нешаряших или недопонявщих.)

Читать далее...
4

Базовые функции предметов и инвентаря

» WarCraft 3
Решил выложить, первая функция написана не мной, дальше мое авторство на эту же тему.
""

Читать далее...
7

Умышленная десинхронизация игрока

» WarCraft 3
function DesyncPlayer takes integer id returns nothing
  if GetLocalPlayer()==Player(id) then
    call Location(0,0)
  endif
endfunction
1

Принадлежность точки

» WarCraft 3
Функции принадлежности точки треугольнику и произвольному четырёхугольнику.

Читать далее...
1

Перпендикуляр от отрезка к точке

» WarCraft 3
Находит длину перпендикуляра от отрезка, заданного Xa, Ya, Xb, Yb к точке, заданной Xc, Yc. Полезно при реализации заклинаний типа "Огненная стена", во избежание последовательных пиков юнитов по прямой.
Автор - silumin
function Perpendicular takes real Xa,real Ya,real Xb,real Yb,real Xc,real Yc returns real
    return SquareRoot((Xa - Xc) * (Xa - Xc) + (Ya - Yc) * (Ya - Yc)) * Sin(Atan2(Yc-Ya,Xc-Xa) - Atan2(Yb-Ya,Xb-Xa))
endfunction