Искать только авторские Ресурсы в соавторстве с Skino

Изменить максимальные 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')…
Алгоритмы, Наработки и Способности
@Clamp: Singularity: Вы диву дадитесь, сколько Ваша реализация этого метода кушает. Полагаю, что Вами уже был написан и запущен бенчмарк для обсуждаемой системы? Мне действительно хотелось бы ознакомиться с кодом и результатами тестирования различных кейсов. Не знаю, провоцирует ли такое спамерское "добавление-удаление" способностей боевой единице утечки памяти, потому что исходный код Варкрафта, увы, это тайна за семью печатями. И да, и нет. Народные умельцы (и из нашего, и из зарубежных комьюнити) неоднократно дизассемблировали игру в поисках наиболее оптимальных решений при написании кода своих карт. К сожалению, все отечественные мастера уже давно отошли от дел, но Вы всегда можете поискать соответствующие треды в разделе Jass на форуме и ознакомиться со многими интересными фактами. За историческую справку спасибо. Так вышло, что в своё время этот баг я абсолютно случайно открыл самостоятельно :D Не считаю систему идеальной, но не вижу проблем, если кто-то её использует. 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…
Алгоритмы, Наработки и Способности
@MpW: GetLocalPlayer, спасибо. интересный материал. Если что пригодиться =)) quq_CCCP, да я помню скидывал мне. К сожалению, я пока не нашел применения ему. Взаимодействую со прямыми сторонами многоугольника. но думаю мб пригодиться алгоритм пересечения круга Скопировать в буферfunction Is2cc takes real r, real cx, real cy, real px1, real py1, real px2, real py2 returns boolean local real dx = 0.00 local real dy = 0.00 local real a = 0.00 local real b = 0.00 local real c = 0.00 set px1 = px1 - cx set py1 = py1 - cy set px2 = px2 - cx set py2 = py2 - cy set dx = px2 - px1 set dy = py2 - py1 set a = dx * dx + dy * dy set b = 2.00 * ( px1 * dx + py1 * dy ) set c = px1 * px1 + py1 * py1 - r * r if ( -b < 0.00 ) then return ( c < 0.00 ) elseif ( -b < ( 2.00 * a ) ) then return ( ( 4.0 * a * c - b * b ) < 0 ) endif return ( a + b + c < 0 ) endfunction ссылка ScorpioT1000, что то действительно не знал, что в дгуи все это есть. включая пересечение векторов. 15 3.4K
`
ОЖИДАНИЕ РЕКЛАМЫ...
Scroll Lock - быстрая модерация