27

» WarCraft 3 / Воскрешение всех героев

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

» WarCraft 3 / Воскрешение всех героев

недавно делал воскрешение, и не мог воскресить героя. Система просто не хотела работать. думал дело в
-Герой - Instantly revive (Triggering unit) at (Position of (Triggering unit), показать revival graphics
а как оказалось, пищи не хватало, и юнит не воскрешался. у меня много футманов наплодилось, которые жрали еду.
27

» WarCraft 3 / Способности, не прерывающие текущий приказ

Принятый ответ
ссылка
не прерывается приказ почти у любой абилы без цели. В большинстве случаев, останавливаются, чтоб заюзать скилл. А потом продолжают делать те действия, которые оборвал. Типа Рев. Есть длительные касты, например: заговор неуязвимости, он остановится, попрыгает (channeling-анимация), и потом дальше будет идти. Или заклинание крови дракончика.
А вот тех, из-за чего еще и не останавливается на ходу, совсем мало
То есть если я поставлю в очередь приказы постройки, а в середине использую эти способности, то очередь прервётся?
можно проверить
27

» WarCraft 3 / Отлов строящего юнита

DarkLigthing, ну это не совсем верно. Юнит вряд ли по прямой линий двигаться будет. Мб будет обегать вокруг ёлок и гор. Да, движение равномерное, но не прямолинейное. Хотя в TD-шках у строителей почти не бывает преград - делаем летающим, и все.
27

» WarCraft 3 / Отлов строящего юнита

xgm.guru/p/100/195412?postid=359072#comment1 кто-то задавал такие вопросы. Сейчас в патче 1.26 нельзя определить строителя (только через костыли, и то это работать будет норм?!), но обещали завести в следующих патчах. Не знаю, есть ли там. В одном видосе рассказывали
можешь отслеживать:
  1. выдача приказа - Id-приказ - это rawcode. Так узнаем какое здание строится, и кто его строит, и где ее строит. Проверяем, чтоб приказ не изменился.
  2. проверяем через событие "юнит начинает строительство" - проверяем какой тип здания строится, и где строится.
А вот между этими двумя надо как-то связать
27

» WarCraft 3 / Равкод 'A00\'

PT153, я не использовал vJass, короче jasshelper. можно вместо символа записать цифрами.
27

» WarCraft 3 / Равкод 'A00\'

DracoL1ch, если я хочу '\' мне надо '\\'? Короче дебагом проверять надо.
инфа полезна, тоже как-то делал такую ошибку
'\\' = 92
'\' - вылетает в меню
'[' = 91
'\\' = 92
']' = 93
27

» WarCraft 3 / Продажа юнита

можно использовать в вашей карте в качестве базы данных какие-то неиспользуемые поля (например уровень юнита GetUnitLevel, опыт за убийство GetUnitPointValue/GetUnitPointValueByType). Используем канал. При продаже можешь проверять уровень, и давать точно такое же значение.

Еще есть Custom Value of Unit (GetUnitUserData) - но это значение нам не поможет, дело в том, что когда юнит создается в игре, у него это значение изначально равно 0. Вы не узнаете сколько. Ибо в ро кажется нельзя задать, только триггерах можно менять

Придется использовать бд - на каждый тип юнита забиваете значение.
На хэш-таблице легко делается, ибо достается по ключам.
Ключ = это целое число. Тип юнита = rawcode = целое число.
parentKey - родительский ключ
childKey - младший ключ
Действие - Сохранить в Хэше по старшему ключу (parentKey=тип юнита) по младшему ключу (childKey=0) целое число (указываем золото)
Действие - Сохранить в Хэше по старшему ключу (parentKey=тип юнита) по младшему ключу (childKey=1) целое число (указываем дерево)

Достаем точно также:
Загрузить из Хэша целое по старшему ключу (parentKey=тип юнита) по младшему ключу (childKey=0)
можно также
<переменная> = Загрузить из Хэша целое число по старшему ключу (parentKey=тип юнита) по младшему ключу (childKey=0)
можно проделать так с каждым типом юнита, при инициализации все это подсохраняется в хэш.

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

попробовать нейтральным игроком купить этого юнита. И проверять разницу.

рассеять здание 'Auns' - это типа продать здание. При рассеиваний наносится урон зданию (ловится дебагом это в качестве урона от лица кастера). Урон относится к типу атаки "Заклинание", не понижается защитой. Поле "шаг накопления" - здесь указывают урон. В поле "коэффициент стоимости спасения" - указывают процент от стоимости здания (дерево и золото, указанных в ро здания), типа возвращает какой-то процент затраченных ресурсов на создание здания. Время действия заклинания не указано, это значит, оно действует до сих пор, пока здание не уничтожится. Урон наносится каждую секунду.
Формула вычисления прибавленного ресурса за 1 секунду: Ресурс=Cost/(hp/damage)*p

использовать трансмутацию. За уничтожение юнита дает деньги за стоимость. Правда, целевая. но.. не точное. можно на сайте поискать про трансмутацию.
PT153,
Действие - Add Integer(0.70 x (Real(Point Value of Casting Unit))) to (Owner of Casting Unit) Current Gold
Добавить игроку к текущему значению золото
27

» WarCraft 3 / Где находится способность "Постройки" зданий?

Принятый ответ
ссылка смотри раздел "строительство"
иконку нужно менять у способности "строительство", у каждой расы оно разное. У них отсутствует описание, но его можно поменять в
Описание кнопок и горячие клавиши (hot keys) находятся в Units/CommandStrings.txt
Изменить также можно в "дополнительно"->"игровой интерфейс"
чтобы было 2 меню. нужно делать 2 разных юнитов = морф.
пробовал делать через спелбук с кучу игрушечных здании, но так не получится
27

» WarCraft 3 / Система формаций как в Warcraft 3 ROC

Принятый ответ
Во-первых, у юнитов должны быть редакторе указаны построения (характеристики - построение: 0 - воины на передовой, 2 - воины позади, насчет других не знаю, но посмотри у стандартных что означают другие цифры). Во-вторых, все созданных нужно добавлять в группу, и потом отдавай приказ группе
вот
Загруженные файлы
27

» WarCraft 3 / Хак на память Warcraft3

Кстати, у меня из-за обновления виндовс 10, теперь не всегда охотно работает JNGP (хотя добавил в исключения). Даже некоторые купленные игры не работают. такие уж придурки маркрософт.
Приходится заранее выключать антивирус виндовса, чтоб включить.
а в программе Word теперь не могу читать в спец-режиме. нафига 5000 офис покупал
27

» WarCraft 3 / Как проверить остались ли юниты в области?

eriel222:
Можете скрином или т.п. показать? не могу понять, как вы предлагаете это сделать
  1. Ну, объявляете локалку и создаете группу или используете глобалку (тогда ничего не надо пересоздавать, просто очищаете группу)
  2. выбираете всех юнитов, находящих в области, в группу, с подходящим условием f1
call GroupEnumUnitsInRect(g,bj_mapInitialPlayableArea ,f1)
  1. проверяете кол-во юнитов в группе
  2. если глобалка очищаем группу, если локалка - обнуляем ее
Есть другой вариант - счетчик. Проверяете всех, кто вошел (прибавляете). И всех, кто вышел (убавляете). Можно проверять на смерть
27

» WarCraft 3 / Как пользоваться нативкой UnitHasBuffsEx?

Принятый ответ
UrsaBoss, разные типы, при чем они могут взаимодействовать (например положительный магический бафф)
native UnitHasBuffsEx takes unit whichUnit, boolean removePositive, boolean removeNegative, boolean magic, boolean physical, boolean timedLife, boolean aura, boolean autoDispel returns boolean
native UnitRemoveBuffsEx takes unit whichUnit, boolean removePositive, boolean removeNegative, boolean magic, boolean physical, boolean timedLife, boolean aura, boolean autoDispel returns nothing
removePositive - позитивный / removeNegative - негативный
magic - магический / physical - физический
timedLife - время жизни (у призываемых существ)
aura - ауры
autoDispel - ??? (скорее всего есть какие-то скилы с баффами отключающие)
Для конкретной проверки есть Unit Has Specific Buff
можно проверять самому. берешь создаешь тестовую карту, создаешь двух юнитов, создаешь триггер с периодической проверкой дебагом и проверяешь у одного из них есть ли бафф. И в игре проверяешь
27

» WarCraft 3 / Хак на память Warcraft3

лучше бы обновлялись данные версиями мем хака
quq_CCCP, а где вы публикуете? пробовал найти свежую версию, так час искал. Пока в теме не нашел (как потом оказалась, что свежее есть еще в вашей системе урона).
27

» WarCraft 3 / Как создать сплеш способность и правильно её настроить?

Принятый ответ
ну так на основную цель этот урон не распределяется. Распределение урона в % идет от атаки героя основной цели. Распределительный урон наносится окружающим вражеским юнитам.
вот атака 140, а остальным врагам (35% от атаки - это 140*0.35=49 урона)
тут распределение идет от величины атаки, а не от урона (не путать)
вот
вот
27

» WarCraft 3 / Воскрешение Героя

делал воскрешение, и не мог сделать нормально. А как оказалось, пищи не хватало (у меня наспавнилось много войск), и поэтому не воскресал герой. я то думал, дело в триггере.
27

» WarCraft 3 / Knockback

Msey, пробовал его код вставить, у него это влево все время ехать юнит будет (либо код не правильный либо не все показал). =(
nvc123, в вашем коде float distance можно убрать, ничего не делает =(
Загруженные файлы
27

» WarCraft 3 / Knockback

вот переделанная мной карта по быстрому (но надо еще проверки делать, чтобы не заехал за карту или в кустах не застрял, и проверять может лить ходить вот ссылка раздел 3. пункт 3.). только не знаю это то, что тебе нужно было ли.
Загруженные файлы
27

» WarCraft 3 / Knockback

попробуй наработки под себя подмять вот
еще вот
смотрю на код, и не понимаю. Нужно чтобы он вперед толкал (просто данных мало, берет координаты одного и того же юнита)? тогда зачем нужно было высчитывать угол между двумя точками, брал бы угол взгляда юнита, и крутил вперед. еще проверку надо делать, чтоб за границу карты не вылетел юнит и может ли там двигаться
тут должна быть относительность чего-то либо. Либо от угла взгляда кастера или от угла взгляда цели, или угла между точками. А так он едет влево или вправо, или еще куда.
27

» WarCraft 3 / Выявление утечек в коде имитации крипов в МОБА (как в Доте)

nvc123, а мне кажется группа влияет на то как они ходят. не зря же порядок ходьбы выстраивается. а так бы ходили бы линейкой

хотя проблем групп что они весь путь вряд ли будут ходить отрядами. Например, при перенаправлении там юнита посылают дальше, а не отряд. Событие "юнит входит в регион" ловит юнита. Тогда надо как-то переделывать, что ли отряды запоминать.

кстати можно потом области добавлять в один большой регион. А событие накидывать на регион. Как кто-то вступит в одну из области, то можно проверить условием, что за область (условие юнит находится в области как-то так называется). потом перенаправлять на следующую. не нужно плодить кучу триггеров и кучу регионов
Загруженные файлы