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

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

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 829

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

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

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

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

Функия проверяет отрезки на пересечения, если они пересекаются, то функция возвращяет 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 364

Делим 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 2 980

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

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

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

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

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

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

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

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 078

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

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

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

Определяет высоту рельефа в заданных координатах точки. Полезно для реализации "правильного" движения снарядов.
""
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 475

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

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

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

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

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

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

При вызове пробует собрать из <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 944

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

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

Набор функций для работы с 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)…
Алгоритмы, Наработки и Способности
882

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

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

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

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

PhysX

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

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

Area Select Sys 1.0

Эта система - подобие выбора зоны, как в Troll and Elves. Данная наработка позволяет выбрать зону или, как мы называем, область для совершения в ней какой-либо "операции". Она может понадобиться для карт жанра TAG.
Алгоритмы, Наработки и Способности
6 3 641
Моя попытка сделать разрушаемые физические тела в Warcraft 3. Суть карты - всякими способами разрушить старый каменный мост (если его можно назвать мостом).
Для обсуждения могу сказать, что здесь используется почти максимум всей возможной оптимизации, и круче этого делать что-то в варкрафте практически невозможно. =)
Количество кубиков на весь мост - 40.
Алгоритмы, Наработки и Способности
73 35 176

Движение камеры мышкой v.1.03

В данной наработке реализуется движение камеры мышкой без посторонних программ. Просчитывается в зависимости от положения курсора относительно центра экрана.
Алгоритмы, Наработки и Способности
23 17 007
Чат тоадкопа, переделанный под версию 1.24. Чат-box находится в мультиборде.
обсуждаем здесь
Алгоритмы, Наработки и Способности
8 7 877
Демонстрация TRS II очень мощного менеджера предметов.
Версия 1.5b MultiPlayer compatible.
Особые возможности манипуляцией вещей во время игры и многое другое !
+ TRS II FSI ! т.е. полноэкранный инвентарь. Что-то наподобие FSI DimonT'a
+ TRS II Merchant т.е. полноэкранный торговец что даёт большие возможностей
фикс тупости автора =) короче стек активных игроков теперь работает нормально
Алгоритмы, Наработки и Способности
22 19 468
Данная система показывает удивительные возможности на движке Warcraft III
Она включает в себя движение объектов с взаимодействием с окружающей средой, тем самым, не влияя на производительность вашего ПК.
Тема для обсуждений здесь.
Алгоритмы, Наработки и Способности
27 15 327

Mount system 1.1

Система, которая позволяет юнитам садиться на других юнитов, имитируя езду верхом.
Алгоритмы, Наработки и Способности
11 8 886
`
ОЖИДАНИЕ РЕКЛАМЫ...