21

» WarCraft 3 / Как сделать 3-ой, 4-ой (n-ой) удар?

Ну мемхак даёт возможность сбрасывать перезарядку атаки, по идее плясать от этого
21

» WarCraft 3 / Иконки на заказ

FrigatPlay, платно? Ты видел, сколько этот заказчик мурыжит доработками? Даже за значимые деньги стоит подумать )
21

» WarCraft 3 / Процент повышения брони

8gabriel8, ты просто импортни систему (там надо код ее наверх перетащить в custom code и все, ща уже не помню, то ли одна абилка просто должна остаться неизменной, то ли еще какую-то/какие-то надо скопипастить, в общем, система точно та, а дальше инфу ищи и разбирайся сам, мне уже влом, но я помню, что все было несложно).
И все, дальше сможешь пользоваться функцией GetUnitArmor(твой юнит), которая сможет возвращать число брони. На гуи, ятп, через кастом скрипт должна сработать, там же кастом скрипты и есть по сути зачатки джасса (без которых хоть более-менее норм код не написать).
/////////
А по джассу и гуи - джасс позволяет выполнять задачи намного эффективнее. Но он НАМНОГО сложнее для понимания. Гуи поймёт и ребёнок и, честно говоря, создание карт на гуи довольно сложно назвать работой. А вот на джассе уже довольно сложно НЕ назвать.
Чтобы что-то изменить, и стараюсь собственный джасс или что это там получается делать максимально самодокументируемым и лёгким для восприятия.
21

» WarCraft 3 / Процент повышения брони

И снова напомню, что броня считается и без мемхака (импортировать сможет и новичок, багов практически нет)
21

» WarCraft 3 / Почему в этом коде даммик не кидает сетку

Ige, так вот эта функция раньше и использовалась. В этом всё и дело. Вообще и в мыслях не было, что "последний созданный юнит может не быть последним созданным".
Всё понятно.
21

» WarCraft 3 / Почему в этом коде даммик не кидает сетку

Понятно, то есть созданного через CreateUnit функция GetLastCreatedUnit() не видит
и т. е. это вообще там баг, ласткриэйтед может быть другой совсем не даммик даже и получить таймер
ну ладно, ща просто этот блок кода с сеткой потру, т. к. см. выше - сетка не оч нужна, на будущее спс, тут будет образец
насчет вижна и прочего проблем не должно быть, даммик-то от того же игрока и это вообще весь блок кода скопирован из другого своего же места, только заменен равкод дамми-сетки (но он правильный, проверялось) и вместо создания юнита в точке первый раз попробовались координаты
21

» WarCraft 3 / Почему в этом коде даммик не кидает сетку

Извиняюсь, почему-то не могу загнать код под кат, если не трудно, отфиксите.
21

» WarCraft 3 / Разные id приказа, но один хоткей

^ То есть одна какая-то способность в приоритете. Ятп, та, у которой нужно выбрать объект или точку. Ну что ж, разумно.
21

» WarCraft 3 / Способности и алгоритмы на заказ

Нужно дописать способность. Я потом самостоятельно дооформлю и доформатирую. СРОЧНО! 19го числа или отменяется.
Суть такая.
Эта функция реагирует на событие триггера "отдача приказа на действие в точку", если расстояние между этой точкой и точкой героя-обладателя способности меньше или равно 200 + 100 * A29V уровень способности героя и у него нет его особого спеллбука с вороном.
Тогда на героя должна быть накинута 2 секундная дамми-сетка, ему должен даться его особый спеллбук с вороном и спрятаться, он должен получить приказ держать позицию и в течение 2 секунд по координатам переместиться из своей точки в точку отданного приказа, первую секунду подпрыгивая вверх, вторую "опадая" вниз.
Как я себе это представляю - вместо простого движения герой будет прыгать и при этом сохранять возможность атаковать и действовать.
МНЕ СДАВАТЬ КОДОМ, пожалуйста!!! НЕ надо тест-карты никакой, она бесполезна.
Равкод основной способности указан выше. Даммика для кидания сетки - 'n021'. Всех других способностей - пишите что хотите, главное, разное, я поставлю потом, что надо.
Вторую функцию, в которой герой, очевидно, и будет двигаться, назвать RoboJump2, поставить над первой.
function RoboJump takes nothing returns nothing
local timer t = CreateTimer()
local unit u5 = GetTriggerUnit()

set u5 = null
set t = null
endfunction
//////////
Ладно, завтра будет трещать своя голова =/
21

» WarCraft 3 / существует ли функция получения строки-пути пиктограммы юнита?

nvc123, ну чем геморнее любого другого поля?
У меня вот, например, есть под это бд, но если можно будет просто снимать с юнита иконку - вообще збс, одна баба с возу - кобыле легче.
Другое дело, что это действительно даже в мемхаке задача далеко не первой важности. Но если вдруг будет определитель - очень хорошо.
21

» WarCraft 3 / Способности и алгоритмы на заказ

ledoed, большое спасибо, ты тот, кто мне нужен, вот самостоятельно раскурить было бы куда тяжелее, а по беглой проверке вижу, что все нормально, буду сюда с подобными заданиями обращаться
PS "доделывать" никто ниче не собирается, суммарно-то проект около 8 лет делался и спокойно еще столько же может, просто вопрос в подходе, вот говорили-говорили, что в варе нихрена никогда не будет обсчета-изменения кулдаунов, атаки итэдэ, ан вот же, мемхак, крч, будут вкладываться хотения, задания, собственные усилия в желаемом соотношении, там видно будет
/////
PPS - там себе заметочка - после импорта проверить в рус. соответствие всех равкодов (этот блок из английского опенсорса был вынут, просто потому, что английский открывается гораздо быстрее, а смотреть код через MPQ менее удобно)
//
PPPS - мне так-то в идеале вообще не хотелось бы код писать, даже в своей самодокументируемой системе это очень тяжело
лучше бы с этим помощников, опять же в идеале оплачиваемых, ну крч тяжко с этим, ну ладно, все, уже оффтоп
////
PPPPS - ятп, у Фрога код еще хуже был. И? =))))))) Ладно, все, цели у меня и у него разные
21

» WarCraft 3 / Способности и алгоритмы на заказ

  • игра делается для личного удовлетворения
  • игра всегда видится самой лучшей
  • как раз времени выделяется ровно столько, сколько надо, чтобы игра удовлетворяла и оставалось время на что-то более важное
  • кикстартер не катит, т. к. тут персонажи из других игр и не только, а владельцев этих игр и не только сделать своими рабами, увы, достаточно сложно
  • не надо разводить полемику, если никто не хочет переписать код, если бы писали и переписывали код вместо меня, никаких кикстартеров было бы не нужно для скорости
21

» WarCraft 3 / Способности и алгоритмы на заказ

FrigatPlay, реализовать там 212 героев, и XXX предметов, и XXXX шапок, и 2 играбельные карты, и, и, и... а в будущем еще куча нововведений и игровых параметров, да и этого мало, потому что идей всегда в 100500 раз больше, чем сил для их реализации... А без денег помощь всегда идет вяло или накладывает обязательства, и мне ни то, ни другое не нравится... Уже много раз говорилось, что это НЕВОЗМОЖНО. Не хватит ни времени, ни энергии. Вот выделить бы миллионы на это, чтобы исполнять исключительно роль координатора и раздавать задания и собирать их, тогда да.
quq_CCCP, зачем весь? Весь не нужен. Нужно только эту функцию переписать, только она двигает. Или в функции что-то не понятно?
21

» WarCraft 3 / Способности и алгоритмы на заказ

Срочно! Разбираться самостоятельно нет ни сил, ни времени, устаю.
Прошу убрать из этого кода для оптимизации точку, заменив на координаты. Т. е. чтобы действовал так же, но без точки. НАЗВАНИЯ ПР. ПЕРЕМЕННЫХ И ФУНКЦИЙ ПРОШУ СОХРАНИТЬ, обнуление точки везде и ее задание, естественно, убрать, другие переменные назвать для координат можно x2, y2 и т. п. Спасибо!
function AuroraMovement takes nothing returns nothing
local timer t = GetExpiredTimer()
local unit u5 = LoadUnitHandle(udg_Hash,GetHandleId(t),2)
local location p = GetUnitLoc(u5)
local real facing = (GetUnitAbilityLevelSwapped('A22Z',u5))
local real distance = (1 + (GetUnitAbilityLevelSwapped('A22S',u5) * 0.05)) * 0.01 * 400
local real x
local real y
//Если героя нет, то разрушить таймер, чтобы не крутился и не жрал ресурсы.
if (u5 == null) then
call PauseTimer(t)
call DestroyTimer(t)
call FlushChildHashtable(udg_Hash,GetHandleId(t))
else

if (UnitHasBuffBJ(u5,'B0G8') == false) then
call CreateNUnitsAtLoc( 1, 'n021', GetOwningPlayer(u5), p, bj_UNIT_FACING )
call UnitApplyTimedLifeBJ( 1.50, 'BTLF', GetLastCreatedUnit() )
call UnitAddAbilityBJ('A230',GetLastCreatedUnit())
call IssueTargetOrder(GetLastCreatedUnit(),"ensnare",u5)
endif

call MoveLocation(p, GetLocationX(p) + distance * CosBJ(facing), GetLocationY(p) +  distance * SinBJ(facing))
set x = GetLocationX (p)
set y = GetLocationY (p)
//Задание координат с проверкой на края карты.
if RectContainsCoords(bj_mapInitialPlayableArea,x,y) then
call SetUnitX (u5,x)
call SetUnitY (u5,y)
endif
endif
call RemoveLocation(p)

set t = null
set u5 = null
set p = null
endfunction
21

» WarCraft 3 / Unit атакует?

16GB, так и делается (для всего нового точно, если там осталась часть старого, она постепенно переписывается в общую систему).
У меня вообще мысль давать всем, у кого могут быть нестанд. действия при атаке, абилу-пустышку-маркер "особая атака", единственным ифзенэлсом в основном триггере проверять ее наличие, а уж если она есть, плясать дальше, тогда основной ифзенэлс будет всего один и нагрузка, соответственно, малая
Diaboliko, при уроне от даммиков свои замороки: у меня еще достаточно дефолтных спеллов + всякие возвратки тогда надо правильно прописывать, чтобы они урон НЕ даммикам возвращали
Ну ладно, всем спасибо, из выложенного и предложенного буду раскуривать, как и всегда
21

» WarCraft 3 / Unit атакует?

nvc123, хорошо, просвети тогда и кинь ссылки, как работает система событий.
В моем понимании так - событие unit атакован при каждом атакованном юните будет проверять его на соответствие триггерным условиям, что создает нагрузку, т. к. оно будет проверяться при каждой атаке кого бы то ни было кем бы то ни было, а если таких триггеров много (пассивок, что-то делающих при атаке), результат очевиден.
В чем ошибка в этих рассуждениях? Которые проверены и на практике - сокращение подобных событий существенно повысило производительность, если это не списывать на глюки восприятия.
quq_CCCP~~, спасибо, приму к сведению... буду ждать или мб даже пытаться че-то копать лично...
Diaboliko, не вижу тут такого события, github.com/DracoL1ch/WC3Memory/blob/master/war3map.j , код бы, но в любом случае лучше напрямую отлавливать именно завершение атаки, а не урон
21

» WarCraft 3 / Авто-каст

dovaceen, ну, например, взять автокаст статуи на хп, сделать геройским, настроить все поля в РО, как нужно (без хила, область 1, только на себя эффект), сделать его автовключаемым при изучении (тоже в триггерах можно), а триггерно при касте, если трупов рядом нет - делать отмену каста и simerror (тут поиск в помощь), если есть - создавать даммика, давать ему гальванизацию, кастить им гальванизацию, ремувить даммика.
Единственное - автокаст статуи на хп действует как автокаст, только если у тебя не полные хп, но в бою тебя хоть кто-то обычно хоть чуть да поцарапает, так что это в 99% случаев не проблема. А просто кастится он вроде и с полными хп.
У меня куча спеллов с нецелевым автокастом в Battle for Souls на основе автокаста статуи на хп и все замечательно и удобно. Можно еще через автокаст берсерка кабана или как он там у кабана называется, но там бафф еще 0.01 сек не забыть проставить время и другой кабаний берсерк тогда абила будет перебивать...
PS Если нужно, чтобы спелл на основе автокаста статуи автокастился и с полными хп, то можно сделать небольшой извращенный костыль - ежесекундно списывать с себя ничтожную дозу хп, если они полные. Это практически ничего не изменит, так как у героя 5-10 хп, как правило, восстанавливаются за 1-4 секунды и ничего не решают, но автокаст будет успевать прокнуть.
21

» WarCraft 3 / Авто-каст

dovaceen, убирать.
Или можешь тогда на основе другого автокаста, например, любого от статуи нежити, правда, тогда оно будет каститься и без ближайших трупов, если триггерную отмену не поставишь.
Крч, брать автокаст и причесывать его триггерно под то, что надо.
21

» Dota 2 / Результаты конкурса героев Dota 2

Nosferoh, а мазать надо. Хотя по основной цели сплеш вроде мажет исправно (или хз, могу ошибаться)
21

» Dota 2 / Результаты конкурса героев Dota 2

Nosferoh, с 11-24 на видео герой Toadcop'а или мне не понятен вопрос, на ютубе и здесь видео показывается одно и то же
Кстати, по истории его абилы - знает Toadcop или нет, мне это все равно, но изначально нечто похожее (во всяком случае, мне о более ранних вариациях не известно) появилось в SMotA, где персонаж при активации давал себе следующее: бафф на скорость атаки (бешеный) в обмен на % шанс промахнуться. В итоге выходило профитно. Тем более если имелся аналог линки, то он блокал себе этот шанс промаха, превращая абилку в тупо мощный бафф скорости атаки.
Мальца другое, да, но всё-таки сходство есть.
Способность была благополучно скопирована в Battle for Souls.
Теперь новый вариант тут и, ятп (по видео не понимаю/не помню) это нечто такое: дается себе шанс промаха, но каждый промах временно ускоряет героя.
А - sic! - идеальный вариант такой абилки, вне зависимо от всего написанного выше, мной на данный момент видится следующим: при активации дает себе шанс на промах И КАЖДЫЙ ПРОМАХ НА ЧУТЬ-ЧУТЬ, НО НАВСЕГДА УВЕЛИЧИВАЕТ ТЕБЕ АТТАК СПИД.
Тогда против той же морты - ну напромазываешь ты по ней, ну даже порвет она тебя раз, но ты будешь все быстрее и быстрее молотить и это тебе пойдет на пользу рано или поздно на бешеную; перманентный бонус к аттакспиду не пропьешь!
Бтв, не помню, "отключается" ли в доте мкб или нет, но при появлении такой абилы стоит сделать его отключаемым, чтобы надрочить себе стаки абилы, а потом купить тот же мкб и надавать по шеям той же морте с надроченным на ней же аттакспидом!
Ну а как еще абилу подрочить - мкб и обратно отключать можно...