18

» WarCraft 3 / Как отлавливается событие использования "огненных стрел"?

ssbbssc, у героя может быть выучена способность, благодаря которой после применения заклинания есть вероятность восстановить затраченную ману на заклинание. Хотелось бы, чтобы это распространялось и на стрелы.
DracoL1ch, ок, можешь описать алгоритм работы? Надо прикрепить к текущему спелу баф, или взять за основую другой спел? Что делать когда я получу спел с бафом - как его отлавливать надо?
18

» WarCraft 3 / Встреченные баги в 1.29

Doc, скажи, в Warcraft скрипт отрабатывается на сервере, или на всех клиентах?
18

» WarCraft 3 / Встреченные баги в 1.29

Doc, подумай сам - если юнит создаётся - об этом должен узнать каждый клиент, в том числе узнать все параметры созданного юнита. Тоже самое когда юнит удаляется.
И тут всё зависит от того, как часто эта функция вызывается - если на этапе инициализации, чтобы узнать и сохранить параметр - то ок, а если в событии малой переодичности - то дорого выходит
18

» WarCraft 3 / Встреченные баги в 1.29

Clamp, тебе в каждой карте нужно узнавать классификацию типа объекта? У меня проблема другого рода - при игре по сети очень сильные задержки при общении клиентов. Поэтому я стараюсь как можно меньше давать нагрузки на сеть (а значит - на создание данных, которые должны синхронизироваться между клиентами). Создавать юнита, чтобы узнать свойство его типа - непозволительная роскошь, я лучше для такой узкой задачи не поленюсь, и вложу свойства в флаги имени
18

» WarCraft 3 / Встреченные баги в 1.29

Clamp, чем твоё решение системнее? ТЕм что создаёт юнита и кучу информации, связанную с этим?
18

» WarCraft 3 / Встреченные баги в 1.29

Clamp, я в таких случаях кодирую нужную информацию в имя юнита, например "|c00000001|rФерма" и "|c00000002|rПехотинец", при проверке я извлекаю sub string от 3 до 10 и перевожу в число, с данным числом и работаю. В твоём случае ты бы мог считав значение "1" - понять что это здание
18

» WarCraft 3 / Встреченные баги в 1.29

Doc, да, с абилками та же хрень. Но есть два основания полагать, что это баг: на юнитах система с уникальными именами работает, и как сказал 16GB, если было бы задумано менять строку у всех предметов - то нет смысла в аргументах запрашивать предмето, вместо типа предмета.
Скорее всего ошибка заключается в том, что все предметы одного экземпляра ссылаются на одну и ту же строку локализации, и вместо того, чтобы менять ссылку на строку - меняется сама строка.
18

» WarCraft 3 / Встреченные баги в 1.29

pro100master, если задача стоит установить абсолютный запас здоровья, а не её прибавку - то придётся отслеживать все активные воздействия. Задача не стоит в том, чтобы добавить воину n HP, задача стоит в том, чтобы воину установпить n HP, а в данный момент это можно делать только наладив отслеживание бафов на макс hp
18

» WarCraft 3 / Встреченные баги в 1.29

DracoL1ch, если ты герою установишь максимальный HP как 700 единиц, и при этом у героя заюзана абилка Аватар - то после завершения абилки "аватар" здоровье юнита уменьшится до 200 единиц.
18

» WarCraft 3 / Встреченные баги в 1.29

pro100master, ну-ка расскажи как надо
Нет возможности устанавливать здоровье вне учёта временных прибавок к здоровью от активных заклинаний.
Например, лог действий:
юнит воспльзовался способностью "аватар", который прибавляет ему 500 ед. здоровья
пока эффект аватара не закончился ему через скрипт установили SetMaxUnitHP = 700
по истечению использования способности "аватар" здоровье юнита уменьшается на 500 ед. и принимает значение в 200 единиц.
Разумеется, можно изощряться и налаживать системы отлова активных способностей и прочих эффектов, дающих временные бонусы к здоровью - затем при установке здоровья к желаемому значению прибавлять полученное значение бонуса здоровья - но это всё костыли. Хотелось бы иметь возможность задавать здоровье юнита без учёта от активных эффектов (возможно - в качестве дополнительной функции, не изменяя механику старой функции)
18

» WarCraft 3 / Встреченные баги в 1.29

При создании мультибордов - они отображаются не в правом кглу широкоформатного режима. Выходит, что в широкоформате они отображаются почти по центру
18

» WarCraft 3 / SetItemName - баг?

DemonoiD, так нулевой пост начался с того, что багует. Изменение имени одного экземпляра предмета приводит к изменению имени всех экземпляров данного типа
18

» WarCraft 3 / SetItemName - баг?

DemonoiD, это не ответ на мой вопрос, у меня многопользовательская игра, и мне нельзя привязываться к юниту или игроку, мне нужно сделать привязку к предмету, который может лежать на земле, быть в рюкзаке и т. д.
я где-то читал, что, вроде handle можно преобразовать в число
но не знаю как
18

» WarCraft 3 / SetItemName - баг?

Да. У тебя же есть итемлвл. Либо БД. Если имя предмета такое, то индекс = 1.
не совсем то, что мне нужно. Я создал в игре 20 одинаковых кинжалов, но я их делаю разными (разные кинжалы для разных квестигверов). Когда игрок получает предмет - мне нужно понять какой именно предмет он получил, делать это перебором по массиву - очень дорого.
Исправят или нет, вопрос не к комьюнити, а к разработчикам.
насколько я знаю - разработчики ввели новые функции по запросу компьюнити. Если реализация отличается от запроса - то это бага
18

» WarCraft 3 / Работа с w3o

BaHeK, как ты string list будешь хранить в string, или как ты будешь хранить heroAbilityList в каком-то простом типе данных? Отвечайте пожалуйста по существу, у кого-нибудь есть информация о способе чтения этих данных из w3o?
*Modification structure:
char[4] modification ID code (get the IDs from "Units\UnitMetaData.slk" of war3.mpq)
int: variable type* t (0=int, 1=real, 2=unreal, 3=String,...)
t type: value (length depends on the type t specified before)
int: end of unit definition (usually 0)
Вот тут говорится, что размер значения зависит от типа, и приведён список из 21 типов, но не указано сколько весит каждый тип и как его читать
18

» WarCraft 3 / Работа с w3o

BaHeK, жто не полный перечень, в редакторе юнитов встречаются следующие типы:
*Variable types:
0=int
1=real
2=unreal
3=string
4=bool
5=char
6=unitList
7=itemList
8=regenType
9=attackType
10=weaponType
11=targetType
12=moveType
13=defenseType
14=pathingTexture
15=upgradeList
16=stringList
17=abilityList
18=heroAbilityList
19=missileArt
20=attributeType
21=attackBits
18

» WarCraft 3 / Работа с w3o

BaHeK, где? world-editor-tutorials.thehelper.net/cat_usersubmit.php?view=427...
в процессе игры я могу поверить что всё по 4 байта (если это ссылки на объекты), но в файле сохранения это не прокатит, там ссылаться не на что, кроме самого себя
18

» WarCraft 3 / Работа с w3o

VBA - для взаимодействия с Excel
Всё ещё ни где не нахожу информацию о типах значений и как их читать
18

» WarCraft 3 / Работа с w3o

16GB, я в английском слабоват, так что в англоязычных статьсях не всё понимаю. Я, вроде, нашёл инфу как распарсить файл world-editor-tutorials.thehelper.net/cat_usersubmit.php?view=427...
там почти для всего указывается сколько байт весит та или иная информация.
но дошёл до момента
*Unit definition structure:
char[4]: original unit ID (get the IDs from "Units\UnitData.slk" of war3.mpq)
char[4]: new unit ID. If it is on original table, this is 0, since it isn't used.
int: number m of modifications for this unit
m times a modification structure*
*Modification structure:
char[4] modification ID code (get the IDs from "Units\UnitMetaData.slk" of war3.mpq)
int: variable type* t (0=int, 1=real, 2=unreal, 3=String,...)
t type: value (length depends on the type t specified before)
int: end of unit definition (usually 0)
где указано, что значение поля имеет размер, зависимый от типа значения. Но я ни где не нашёл информации о том, какой тип сколько весит (помимо стандартный int, real, string)
мб кто-то подскажет. В идеале нужна таблица с типами значений и описанием того, сколько эти значения весят и как их читать
18

» WarCraft 3 / Работа с w3o

16GB, значит - остаётся только писать свою утилиту для двухсторонних преобразований w3o?
18

» WarCraft 3 / Работа с w3o

Steal nerves, ну да, я видел в папке аутпут сгенерированную карту, но где находятся слк файлы? и как слк преобразовать обратно в w3o? Извиняюсь если я туплю, но что-то не понимаю