Запись всех типов предметов в массив от 1 до 105
При подборе предмета проверка его на принадлежность к этим 105 предметам.
Нахождение совпадения, и, соответственно, его номера в массиве.
Работа с найденным номером.
Всё.
Emafusail, еще раз пытаюсь тебе донести - это делать надо НЕ ТАК.
Ты, со стороны лог;ки движка, пишешь непонятно что непонятно и хочешь получать на выходе в непонятном месте весьма конкретный результат. Это так не работает. Тут нужно совсем по другому всё оформить.
Для этого нужно взять ТИП предмета (число в виде 'I03D'), и сравнить его сотвсеми из списка (а он у тебя длинной в 105), и при первомже совпадении вернуть его номер. Например это будет 37.
И уже с этими 37 делать всё что хочешь, т.к. номер имея ты и данные другие можно подтянуть.
Ну там еще можно лупить базу типа set t['I03D'] = 'I03D'
Хотя тут надо чуть по другому на индекс напирать, но смысмыс в общем такой.
Но одно другого не отменяет вообще
ДА! Но оно записывает Только Последний Индекс для всех предметов
SetItemUserData
не различает индекс 1 2 3 4 5 6 а записывает только Последний индекс т.е 105 Для всех предметов!
Не "только последний", а "все 105 поочереди с перезаписью".
Сначало предмет имеет значение 0 (видимо), цикл ему тут же делает 1...тут же делает 2...тут же 3...4...5...6...и так до 105, и только тогда отваливает от него.
Вот смотри далее... Ты задаешь переменную для тела цикла, и считаешь её пока она не упрётся в лимит от инита = 105
Т.е. цикл отработает 105 раз и сделает следующее:
Записывает дату подобранного предмета как тело = это числа от 1 до 105, т.е. тут происходит перезапись сто раз.
Пишет в другую переменную с индексам тела цикла само значение тела цикла.
...всё
Что тут должно произойти? Кроме как дата предмета будет равно 105 после последней перезаписи, а переменная ItemUserDataMas[1...105] = 1...105
меня интересует почему
call SetItemUserData(GetManipulatedItem(), Cnt_Item_Init)
устанавливает для всех предметов значение Item_Init_Number_End
а когда проверяю Значения в инвентаре у них у всех значение 105
а не 1 2 3 4 5 6 7 8 9 исходя из GetItemTypeId
Из-за того что ты перезаписываешь это UserData для подобранного предмета
Ты там делаешь x[a]=a, т.е. что бы ссослаться на индекс массива тебе нужно получить его номер, а его номер - это его же индекс... Зачем?
А после этого SetData(i,x[a]+1)
Хотя по сути это равно SetData(i,a+1)
Ааа...я понял, ты как раз этого и НЕ делаешь.
Ты пишешь set x[1]=1, и тут же после этого пишешь SetData(i,x[1+1]), т.е. ссылаешься на x[2], а оно у тебя будет записано только во время следующего такта цикла.
А еще ты обращаешься к переменоой, а значение ей задаёшь сразу после этого, т.е. при каждом новом ударе у тебя идёт "отхил" (через отрицательный урон) от того значения, которое было записано в момент предыдущей атаки...
Не понятно зачем тебе локейшн (точка).
На замахе далеко не уедешь. Надо отлавливать факт получения целью урона от авто-атаки героя, и работать уже с этим значением.
OVOgenez, это "Змеиная ловкость", самый НЕ скучный скилл из дефолтных, и на много интереснее того что предлагаешь ты:
Мультишот на 6 атак, как 3й Гирокоптера - пресная фигня;
Стандартные промахи - нон-стоп тема! хД
Полностью избавляешься от стандартных орбов.
Делаешь полностью триггерные аналоги этих механик (по возможности).
Переносишь все абилки юнитов (орбы) и предметов (тоже орбы) на основу ЯДа.
При попытке атаковать с одной из абилок или одним из предметов - отлавливаешь урон по жертве.
Когда жертва получает урон от ЯДа - проверяешь обидчика на все абилки и предметы, и тут же вызываешь реакцию на них: т.е. если есть башер - считаешь как там башить (шанс,урон); если есть сфера замедления - считаешь шанс, накладываешь дебафф; если есть вампиризм - считаешь сколько отхилить надо.
Всё просто. Просто делать надо вручную абсолютно всё.
Для реализации подобного функционала нужно что бы для каждого игрока была вовремя произведена запись того героя, которого он себе выбирает. Далее нужно по команде проверять наличие записанного героя, и если некоторые условия подходят (например то что репик ещё не был использован, и/или герой не умер, и/или это только начало игры), удалять его с возвращать деньги владельцу.
Бафф на юнита можно наложить несколькими способами:
Первый - каст нужной абилки в юнита, все бонусы от самой абилки будут получены этим юнитом, но этот эффект может быть развеян и/или перебит другим эффектом от скилла на той же основе.
Второй - выдать юниту ауру, которая работает "только на самого себя", при этом список доступных таким образом бонусов значительно сокращается, но к ним можно добавить и другие (а здесь уже расширяется за счёт комбинаций), но такой эффект простым диспеллом не снять, и перебить не получится... все взаимодействия нужно будет прописать вручную!
Третий - выдать юниту руку с нужной абилкой, будет очень похоже на 1й способ, но там есть своя специфика для использования, но всё же прибегнуть можно...
Конкретно скорость атаки, как сказали выше, можно повысить за счёт абилки от предмета, который повышает скорость атаки героя, который им владеет. Так же можно использовать ауру на самого себя.
SсRealm, речь идёт об параллельном подсчёте убийств для разных героев.
Вот тебе и предлагают использовать таблицу, в которой это можно делать. Хотя это можно считать и без таблицы вовсе, смыл ровно тот же.
Создай двух юнитов и поставь одному 0.00 а другому 1.00, и сравни плавность переходов их анимаций
Почти у всех юнитов этот параметр изначально равен 0.15
Кое-какие большие юниты, например Ледяной змей и Химера имеет по 0.40
Минотавры, мясники и обсидиановые статуи имеют по 0.30
Тень = 1.50
» WarCraft 3 / Создание предмета через itemUserData
И будут у тебя типы предметов от 1227895620 до 1227895724
При подборе предмета проверка его на принадлежность к этим 105 предметам.
Нахождение совпадения, и, соответственно, его номера в массиве.
Работа с найденным номером.
Всё.
» WarCraft 3 / Создание предмета через itemUserData
Ред. Extremator
» WarCraft 3 / Создание предмета через itemUserData
И уже с этими 37 делать всё что хочешь, т.к. номер имея ты и данные другие можно подтянуть.
Хотя тут надо чуть по другому на индекс напирать, но смысмыс в общем такой.
Но одно другого не отменяет вообще
» WarCraft 3 / Создание предмета через itemUserData
» WarCraft 3 / Создание предмета через itemUserData
» WarCraft 3 / Создание предмета через itemUserData
Сначало предмет имеет значение 0 (видимо), цикл ему тут же делает 1...тут же делает 2...тут же 3...4...5...6...и так до 105, и только тогда отваливает от него.
» WarCraft 3 / Создание предмета через itemUserData
» WarCraft 3 / Создание предмета через itemUserData
Т.е. цикл отработает 105 раз и сделает следующее:
Записывает дату подобранного предмета как тело = это числа от 1 до 105, т.е. тут происходит перезапись сто раз.
Пишет в другую переменную с индексам тела цикла само значение тела цикла.
...всё
Разве не это значит "предмет у которого нет значения" ?
» WarCraft 3 / Создание предмета через itemUserData
Ред. Extremator
» WarCraft 3 / Создание предмета через itemUserData
А после этого SetData(i,x[a]+1)
Хотя по сути это равно SetData(i,a+1)
Ты пишешь set x[1]=1, и тут же после этого пишешь SetData(i,x[1+1]), т.е. ссылаешься на x[2], а оно у тебя будет записано только во время следующего такта цикла.
» WarCraft 3 / Создание предмета через itemUserData
» WarCraft 3 / TriggersЫ - Выбор спеллов
» WarCraft 3 / Пак способностей - Skeleton Archer
» WarCraft 3 / Система атаки не рабоатет
» WarCraft 3 / Система атаки не рабоатет
Ред. Extremator
» WarCraft 3 / Пак способностей - Skeleton Archer
Мультишот на 6 атак, как 3й Гирокоптера - пресная фигня;
Стандартные промахи - нон-стоп тема! хД
» WarCraft 3 / Стаки орб эффектов
» WarCraft 3 / Как триггерно увеличить скорость атаки юниту
» WarCraft 3 / Стаки орб эффектов
Делаешь полностью триггерные аналоги этих механик (по возможности).
Переносишь все абилки юнитов (орбы) и предметов (тоже орбы) на основу ЯДа.
При попытке атаковать с одной из абилок или одним из предметов - отлавливаешь урон по жертве.
Когда жертва получает урон от ЯДа - проверяешь обидчика на все абилки и предметы, и тут же вызываешь реакцию на них: т.е. если есть башер - считаешь как там башить (шанс,урон); если есть сфера замедления - считаешь шанс, накладываешь дебафф; если есть вампиризм - считаешь сколько отхилить надо.
» WarCraft 3 / Как сделать repick
» WarCraft 3 / Рандомные герои для команд
» WarCraft 3 / Как триггерно увеличить скорость атаки юниту
Первый - каст нужной абилки в юнита, все бонусы от самой абилки будут получены этим юнитом, но этот эффект может быть развеян и/или перебит другим эффектом от скилла на той же основе.
Второй - выдать юниту ауру, которая работает "только на самого себя", при этом список доступных таким образом бонусов значительно сокращается, но к ним можно добавить и другие (а здесь уже расширяется за счёт комбинаций), но такой эффект простым диспеллом не снять, и перебить не получится... все взаимодействия нужно будет прописать вручную!
Третий - выдать юниту руку с нужной абилкой, будет очень похоже на 1й способ, но там есть своя специфика для использования, но всё же прибегнуть можно...
» WarCraft 3 / Повышение характеристик юнита за убийства
Вот тебе и предлагают использовать таблицу, в которой это можно делать.
Хотя это можно считать и без таблицы вовсе, смыл ровно тот же.
Ред. Extremator
» WarCraft 3 / что делает SetUnitBlendTime ?
Кое-какие большие юниты, например Ледяной змей и Химера имеет по 0.40
Минотавры, мясники и обсидиановые статуи имеют по 0.30
Тень = 1.50
» WarCraft 3 / Glaives of Wisdom Нортона
-
Sange_versions.w3x
Полный список