Simple Missile System

Система снарядов, в которую включены интересные возможности, отличающие её
от обычных систем.
Компонент
5 7K

Библиотека Color

Небольшая библиотека позволяющая без проблем разукрашивать в разные цвета текст, юнитов, ячейки мультибордов и тд...
Компонент
24 15.5K

Creep Respawn System (CRS)

Новая система респауна нейтральных крипов, просто копируем, и всё крипы респаунятся там где они изначально были...
Имеется GUI и vJass версия системы.
Тема для вопросов по системе
Компонент
18 12.5K

String Class - Работа со строками

Библиотека для удобной работы со строками.
Компонент
7 4.7K

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

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

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

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

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.8K

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

Вращение юнита в 3D.
A,B,C - углы на которые будет поворачиваться юнит в пространстве вокруг точки X1, Y1, Z1
""
void RotateUnit(unit u, float X1, float Y1, float Z1, float A, float B, float C){
float a1, b1, a2, b2, a3, b3, X2, Y2, Z2

X2 = GetUnitX(u)
Y2 = GetUnitY(u)
Z2 =…
Компонент
8 4.1K

Вращение юнита в 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.3K

Изменить максимальные 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.4K

Пересечение двух отрезков

Функия проверяет отрезки на пересечения, если они пересекаются, то функция возвращяет true и устанавливает в глобалке точку пересечения.
""
globals
real x
real y
endglobals
function linecrossline takes real x1, real y1, real x2, real y2, real x3, real y3, real x4, real y4 returns boolean
local…
Компонент
15 3.4K

Делим integer на три байта

Делим integer на три байта ! тоесть каждый от 0 до 255 с четвертым там могут быть проблемы со знаком, такчто пока лень проверять
cJass:
#define IntGetByte1(src) = (src / (256*256))
#define IntGetByte2(src) = (ModuloInteger(src, (256*256)) / 256)
#define IntGetByte3(src) = (ModuloInteger(src,256))
#define IntSetByte1(src,val) = { src = (ModuloInteger(src,(256*256)) + val*256*256 ) }
#define IntSetByte2(src,val) = { src = (ModuloInteger(src,256) + (src / (256*256))*256*256 + val*256) }
#define IntSetByte3(src,val) = { src = ((src / 256)*256 +val)}
позволяет хранить в 1 инте 3 коротких числа напр. цвет
P.S. спасибо Нетрату за это :) вобще тут не особо чего сложного на самом деле, но я забыл всю теорию)
Компонент
3 3K

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

Ловите, наверное самая быстрая функция по касту "тригерных" магий =)
(По скорости быстрее чем 20 обычных проверок GetSpellAbilityId()=='SPELL ID')
СабСтринг для того чтобы не "тригерные" магии не отлавливал (для нешаряших или недопонявщих.)
""
function SpellCast takes nothing returns boolean
local string…
Компонент
27 8.8K

Генератор случайных чисел без повторений

Инициализация:
Задать private constant integer RandMemMax на нужное количество запоминаемых чисел. Максимум: 8191
Использование:
Функция GetRandomIntMem принимает 2 integer: нижняя граница и верхняя граница, включительно. Возвращает случайный integer (между ними). Сгенерированные ранее числа…
Компонент
5 7.1K
Решил выложить, первая функция написана не мной, дальше мое авторство на эту же тему.
""
возвращает 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.6K

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

function DesyncPlayer takes integer id returns nothing
  if GetLocalPlayer()==Player(id) then
    call Location(0,0)
  endif
endfunction
Компонент
6 5.1K

Математические функции от 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.1K

HEX to DEC to ASCII (конвертация равкодов)

""
globals
integer array Pow16x
integer array Pow256x
string array CharMap16
string array CharMap256
integer array CharInx16
integer array CharInx256
endglobals
function S2Ix takes string s returns integer
return GetHandleId(s) changed, 20.03.2012
return…
Компонент
2 3.1K

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

Находит длину перпендикуляра от отрезка, заданного 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.1K

Определение высоты рельефа

Определяет высоту рельефа в заданных координатах точки. Полезно для реализации "правильного" движения снарядов.
""
library TerrainHeight
globals
private location loc = Location(0, 0)
endglobals
function GetTerrainZ takes real x, real y returns real
call MoveLocation(loc, x, y)
return…
Компонент
5 2.5K

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

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

local real Health_Current =…
Компонент
2K

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

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

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

При вызове пробует собрать из <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 =…
Компонент
3K

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

Заставляет юнита купить предмет из указанного магазина.
В случае успеха возвращает 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.8K

Набор функций для работы с 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)…
Компонент
893

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

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

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

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

PhysX

Наработка физики, преимущества которой скорость и функциональность, сочетающиеся с предельной простотой использования.
1.3 dev2

  • трамплин (баг - иногда объекты при встрече препятствия резко выстреливают вверх)
  • CrossStream: Производительность увеличена в 2-3 раза, теперь стабильно выдерживает до 400 активных объектов!
Скачать 1.3 dev2 (тестовая)
Компонент
41 20.9K

Area Select Sys 1.0

Эта система - подобие выбора зоны, как в Troll and Elves. Данная наработка позволяет выбрать зону или, как мы называем, область для совершения в ней какой-либо "операции". Она может понадобиться для карт жанра TAG.
Компонент
6 3.7K
Моя попытка сделать разрушаемые физические тела в Warcraft 3. Суть карты - всякими способами разрушить старый каменный мост (если его можно назвать мостом).
Для обсуждения могу сказать, что здесь используется почти максимум всей возможной оптимизации, и круче этого делать что-то в варкрафте практически невозможно. =)
Количество кубиков на весь мост - 40.
Компонент
73 35.3K
`
ОЖИДАНИЕ РЕКЛАМЫ...
Scroll Lock - быстрая модерация