Поиск по меткам: Jass
Функции для мемхака, для работы со скилами.
Алгоритмы, Наработки и Способности
42 15 079
Небольшая наработка, позволяющая максимально просто связывать юнита с дамми-сферами от JesusHipster, изменяя эффекты без создания лишних моделей
При помощи наработки также можно связывать юнита с любым даммиком.
Алгоритмы, Наработки и Способности
3 3 676
/Дело было вечером, делать было нечего//
Описание: Юнит бежит определенное расстояние в указанном направлении, расталкивая всех наземных противников на своем пути. Учитываются клиффы и здания, от которых герой отталкивается.
Не действует на союзников. Ломает декорации, не может вылететь за границы карты.
Способность полностью MUI (может использоваться любым количеством игроков и юнитов).
Используемые глобальные переменные: 1 единственная глобалка для хэш-таблицы.
Алгоритмы, Наработки и Способности
8 5 635
Новый Bloodrage из DotA в том виде, в котором он реализован в DotA IceFrog'ом.
Алгоритмы, Наработки и Способности
21 8 968
этот способ используется во всех системах движения но я не нашёл на xgm не 1 статьи где он описывается.
Статья
3 6 215

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

Приветствую тебя, дорогой странник, сегодня я открою тебе занавес триггерных тайн, погружу тебя в глубины стека событий и пронесу до вершин лимита операций!
Так открой же глаза, оставь обыденную суету и встречай межсетевую вселенную!
Рукопись сия рассчитана как на юного странника, так и на видавшего виды путешественника.
Статья
12 7 671
Данные функции позволяют запускать таймер, присоединяя к нему число и брать это число в функции-обработчике.
Сразу скажу, что этому эксплоиту уже много-много лет, но я не заметил интенсивного его использования. Зачем тратить время, если есть данный хак ?
Алгоритмы, Наработки и Способности
7 8 483

SODS

Система предназначенная для выведения получаемого урона в виде одного плавающего текста, который показывает суммарный урон на юнита. В зависимости от количества урона текст увеличивается.
Алгоритмы, Наработки и Способности
9 6 257

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

Небольшой пример шаблона, помогающего избежать прерывания потока из-за лимита операций при заполнении базы.
Статья
2 2 308
Пример использования препроцессора для формирования списка рецептов на основе данных из РО.
Статья
1 474

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

Самая быстрая функция расчета числа однотипных предметов в шестислотном инвентаре.
работа через (GetItemTypeId(UnitItemInSlot(u, slot ))== typeId))
Ошибок нет, написано под перенасыщением мозга кровью для толстых алгоритмов дабы снизить затраты ресурсов машины.
Слабым не изучать
Возможен всплеск…
Алгоритмы, Наработки и Способности
4 3 434

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

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

function IsCoordsInCircle takes real x,real y,real rad,real cx,real cy returns boolean
   return (SquareRoot((cx-x)*(cy-y)) < rad)
endfunction
Алгоритмы, Наработки и Способности
4 2 830

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

Вращение юнита в 3D.
A,B,C - углы на которые будет поворачиваться юнит в пространстве вокруг точки X1, Y1, Z1
A, B, C, X1, Y1, Z1 - глобалки.
""
function Actions2 takes nothing returns nothing
local unit u=GetEnumUnit()
local real a1
local real b1
local real a2
local real b2
local real a3
local real b3…
Алгоритмы, Наработки и Способности
1 2 278

Изменить максимальные HP юниту

""
function SetUnitMaxLife takes unit u, real life returns nothing
local real r = life - GetUnitState(u, UNIT_STATE_MAX_LIFE)
if r > 0. then
if r > 1000. then
loop
call UnitAddAbility(u, 'A005')
call SetUnitAbilityLevel(u, 'A005', 0x05)
call UnitRemoveAbility(u, 'A005')…
Алгоритмы, Наработки и Способности
11 8 335

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

Ловите, наверное самая быстрая функция по касту "тригерных" магий =)
(По скорости быстрее чем 20 обычных проверок GetSpellAbilityId()=='SPELL ID')
СабСтринг для того чтобы не "тригерные" магии не отлавливал (для нешаряших или недопонявщих.)
""
function SpellCast takes nothing returns boolean
local string…
Алгоритмы, Наработки и Способности
27 8 780
Решил выложить, первая функция написана не мной, дальше мое авторство на эту же тему.
""
возвращает true если итем it есть у юнита u
function IsItemInInventory takes unit u, integer it returns boolean
local integer i = 0
loop
exitwhen i > 5 or GetItemTypeId(UnitItemInSlot(u, i)) == it
set i = i…
Алгоритмы, Наработки и Способности
3 3 540

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

function DesyncPlayer takes integer id returns nothing
  if GetLocalPlayer()==Player(id) then
    call Location(0,0)
  endif
endfunction
Алгоритмы, Наработки и Способности
6 5 060

Математические функции от Warden

""
Полярное смещение
function PolarOffset takes location loc, real dist, real angle returns location
local real x = GetLocationX(loc) + dist * Cos(angle * bj_DEGTORAD)
local real y = GetLocationY(loc) + dist * Sin(angle * bj_DEGTORAD)
call MoveLocation(loc, x, y)
return loc
endfunction…
Алгоритмы, Наработки и Способности
4 4 060

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

Функции принадлежности точки треугольнику и произвольному четырёхугольнику.
""
Площадь треугольника по координатам
function TriS takes real x1, real y1, real x2, real y2, real x3, real y3 returns real
return RAbsBJ(x1*(y2-y3)+x2*(y3-y1)+x3*(y1-y2))/2
endfunction
Принадлежность точки (x;y)…
1 357

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

Находит длину перпендикуляра от отрезка, заданного Xa, Ya, Xb, Yb к точке, заданной Xc, Yc. Полезно при реализации заклинаний типа "Огненная стена", во избежание последовательных пиков юнитов по прямой.
Автор - silumin
""
function Perpendicular takes real Xa,real Ya,real Xb,real Yb,real Xc,real Yc returns real…
Алгоритмы, Наработки и Способности
4 2 129

Определение неуязвимости юнита

Расширенная функция определения, уязвим ли юнит или нет. Позволяет определять специфические неуязвимости (например, неуязвимость феникса при морфе и неуязвимость мастера клинка при создании иллюзий).
""
function IsUnitInvulnerable takes unit Unit returns boolean

local real Health_Current =…
Алгоритмы, Наработки и Способности
1 963

Формула параболы

Вычисляет значение, обычно применяемое для задания высоты снаряда, который летит по параболической траектории.
function ParabolaZ takes real h, real d, real x returns real
  return (4 * h / d) * (d - x) * (x / d)
endfunction
Формула параболы (учитывающая начальную и конечную высоту)
Автор оригинала - …
Алгоритмы, Наработки и Способности
6 5 479

Скрещивание однотипных предметов

При вызове пробует собрать из <count> предметов типа <oldItemType> новый предмет типа <newItemType>
В случае успеха возвращает true.
Автор - Shadow Daemon
""
function UnitUpgradeItem takes unit u, integer oldItemType, integer count, integer newItemType returns boolean
local integer i = 0
local integer j =…
Алгоритмы, Наработки и Способности
2 945

Покупка предмета юнита

Заставляет юнита купить предмет из указанного магазина.
В случае успеха возвращает true.
Автор - Warden
""
function BuyItem takes unit FromShop,integer ItemID,unit ToUnit returns boolean
if IssueNeutralTargetOrder(GetOwningPlayer(ToUnit), FromShop, "smart", ToUnit) or IssueTargetOrder(FromShop, "smart",…
Алгоритмы, Наработки и Способности
2 1 829

Набор функций для работы с Hex-записями

Преобразует строку с Hex числом (допустимые значения "00" до "ff") в десятичное целое число:
""
function H2D takes string hex returns integer
local string abc = "0123456789abcdef"
local integer i = 0
local integer dec
loop
set i = i + 1
exitwhen( SubString(abc, (i-1), i)==SubString(hex, 0, 1)…
Алгоритмы, Наработки и Способности
884

Вычисление опыта за убийство юнита

Вычисляет приблизительное значение опыта за убийство указанного юнита. Применение - триггерный подсчет/добавление экспы с применением всякого рода скиллов/эффектов модификаторов.
Автор - NETRAT
""
function aow_GetApxExpBounty takes unit u returns real
return SquareRoot((GetUnitState(u, UNIT_STATE_MAX_LIFE) +…
Алгоритмы, Наработки и Способности
1 367

Эмуляция ошибки в Warcraft

Sim Error из Caster System, позволяет вам сэмитировать ошибку наподобие той, что выводиться движком вара. Незаменима при создании каких-либо довесков к интерфейсу пользователя.
Автор - Vexorian
Требует глобальную переменную типа звук (udg_SimError). Не создаёт утечек.
""
function SimError takes player ForPlayer,…
Алгоритмы, Наработки и Способности
3 3 006
Спелл Тоадкопа, который занял первое место на конкурсе Spell Making Session в 2006 году.
Скачать
Алгоритмы, Наработки и Способности
48 15 767

Базы данных

По скольку в коде карты нельзя получить доступ к полям объекта, таких как защита юнита, класификация предмета, стоимость предметов и т.д., что создает некоторые не удобства, а иногда рушаться гениальные идеи. Один из самых простых способ добраться к нужной нам информации, это создание базы данных.
В этой статье я рассмотрю несколько примеров баз данных. Раскрою пожалуй важные аспекты и проблемы с которыми можно столкнуться.
Статья
21 14 769
Руководство, посвященное использованию утилиты Fly data processor, начиная с установки и заканчивая написанием шаблона для генерации простейшей базы данных.
Статья
5 3 820
`
ОЖИДАНИЕ РЕКЛАМЫ...