Brave Souls

» WarCraft 3
Полностью открытая версия моего незавершённого проекта.Планировалось сделать ремейк стандартной карты "Охотники"...

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

WurstScript

» WarCraft 3
WurstScript - компилируемый в Jass язык программирования для создания карт Warcraft 3.

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

Ловим урон с Мемхаком

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

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

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))

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

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

» 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