26

» WarCraft 3 / Скорость исследования в зависимости от.....

Принятый ответ
Есть костыльный вариант с установкой прогресса вручную. Берёшь улучшение и ставишь ему длительность на 999999... При старте улучшения записываешь того кто его начал (юнит), и стартовый процент прогресса на 0.00 , ну и таймер периодический (можно раз в секунду, можно чаще).
По таймеру делаешь подсчёт нужных зданий и получаешь некое число (например их 5).
Далее множишь его на некий бонус ускорения (за каждое здание, например 0.02).
В итоге получаешь число равное текущей суммарной скорости (5 * 0.02 = 0.1).
И добавляешь это число в текущему значению прогресса. После рассчётов приравнивай текущий прогресс улучшения к этому значению.
В конце проверяешь достиг ли прогресс числа 1.00 (если там НЕ реальные, или в другом объёме, то просто подгоняйте по смыслу). И если достигло - то прекращаешь подсчёты и убираешь работу таймера. Исследование по достижению своих 100% прогресса должно завершиться.
Я так с постройкой юнитов делал. Всё работало.
26

» WarCraft 3 / Что делает нативка Cheat?

Что интересно: чит, открывающий карту, при мгновенном использовании запущенный два раза кратновременно заставляет исчезнуть ВСЕХ юнитов (видимо рендер отключается).
26

» WarCraft 3 / Герой лучник людей

Это чем не подходит? первая страница в списке моделей
У того же автора ещё и с арбалетом есть моделька
26

» WarCraft 3 / Действия после wait'a не работают.

Принятый ответ
Фокус в том что вэйт должен разделять обращения к группам в которых разово наносится урон всем участникам, а не разделять моменты нанесения урона внутри одного обращения к группе.
Вэйты работают в группах, просто не так как этого обычно хотят, т.к. есть некая специфика в механике вэйтов и групп/циклов.
26

» WarCraft 3 / Изменение юнита

Чисто как пример - baseUPGRADE.w3x
Улучшения имеют лимит на 4 функции, поэтому можно вкл/выкл доступность только два раза, если нужно больше - можно либо триггерно произвести блокировку, либо создать ещё несколько таких же улучшение, и при исследовании первого - делать исследованными остальные.
Загруженные файлы
26

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

DumbassMe:
Можете сделать иконочку Ясновидения(на которой изображен глаз совы), но без черной рамочки?
Какая чёрная рамочка? ты про пассивку?
26

» WarCraft 3 / Изменение юнита

Про здания - это больная тема... ибо напрямую - никак
Есть всякие варианты с заменой юнита... с подменой технологий, и прочие извороты
А на счёт улучшения - так добавляешь обоих юнитов в казарму, улучшенных блокируешь игроку, а при улучшении меняешь местами (старых блокируешь, новых разблокируешь). А что бы старые превратились в новых - используешь абилку "Тёмный", которая заставляет юнита превратиться из одного в другого (условие улучшения поставить не забудь). Это можно сделать без триггеров.
26

» WarCraft 3 / Как после улучшения уменьшить урон от способности?

doleo82, ну можно сделать триггерный бафф, работа которого будет полностью управляема.
Я хз что тут объяснять... Каждый подверженный юнит будет получать отдельно бафф, время истечения будет просчитываться отдельно для него, урон и периодичность урон так же будут индивидуальными. Отсюда и возможность изменения урона в зависимости от чего либо.
И при необходимости накладывать в юнитов этот бафф (разумеется триггерно).
26

» WarCraft 3 / Увеличение запаса здоровья героя

Принятый ответ
Extremator, Интересно, любой последующий каст устанавливает заново значение максимального хп, то есть оно даже меньше может стать, мне нужно чтобы бонусы стакались.
Это для установки текущего бонуса ХП.
Если ты хочешь увеличивать значение, то нужно сделать получение текущего значения.
Т.е. выглядеть будет как с лечением:
Установить бонус ХП как (текущий бонус ХП + число)
Для получения надо либо напрямую считывать данные: циклом пройтись и за каждую абилку добавить её значение к переменной, тем самым нарастив её обратно (напротив с тем что при установке её значения она наоборот расходовалась). getHP
Либо просто хранить БД с юнитами, которым было изменено ХП (т.е. внести их в систему юнит-число)
И, получив число, изменить это число в нужную сторону и выполнить установку setHP
. . . 10 минут спустя ...
Вот как-то так - setHP_16k.w3x
Добавил триггер getHP для получения числа, как и описал выше.
И чуть переделал тест скиллом (даёт рандомно от +1 до +100).
По сути, может давать и отрицательные числа, но упрётся в 0
Для этого надо добавить работу с число -32768
Загруженные файлы
26

» WarCraft 3 / Как после улучшения уменьшить урон от способности?

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

» WarCraft 3 / Увеличение запаса здоровья героя

Создаёшь ряд абилок для повышения ХП, и делаешь им бонус в виде растущей степени двойки (по +1, +2, +4, +8, +16 и т.д.).
Забиваешь в переменные эти абилки и числа, которым они будут соответствовать (хотя тут можно прибегнуть и к хитрости с вычленением значения из рав-кода абилки... но... кому это надо?).
типа кодэ
set HP_Ability[1] = 'A001' абилка дающая +16 хп
set HP_Ability[2] = 'A002' абилка дающая +8 хп
set HP_Ability[3] = 'A003' абилка дающая +4 хп
set HP_Ability[4] = 'A004' абилка дающая +2 хп
set HP_Ability[5] = 'A005' абилка дающая +1 хп
set HP_value[1] = 16
set HP_value[2] = 8
set HP_value[3] = 4
set HP_value[4] = 2
set HP_value[5] = 1
Почему запись идёт в обратном порядке? - да просто потому что на GUI цикл считает лишь в одну сторону (хотя можно это обойти, надо лишь понимать что там внутри переменная находится), а на Jass'е можешь с ним творить что угодно, даже вовсе не считать ничего.
Дальше нужен небольшой триггер без события (а в идеале - функция), внутри которого запустится цикл с рядом однообразных проверок и вычислений. Залог успеха - необходимость послать юнита и нужное число в этот триггер. Назовём условно этот триггер как setHP.
Как это будет работать? - В нужном месте записываем юнита и то самое число, которое должно быть установлено как дополнительное здоровье. Тут следует понимать что не получится задать два раза +5 хп и получить в итоге +10 хп, т.к. это установка значения, а не прибавление к текущему имеющемуся в данный момент... но это безусловно решаемый момент, за счёт конструирования дополнительных триггеров-функций которые будут выполнять сложение используя всё необходимое.
типа кодэ 2
set HP_unit = (твой юнит)
set HP_set = (число)
Триггер - Вызвать триггер setHP (без проверки условий)
Внутри этого триггера (условно setHP) будет содержаться примерно следующее:
типа кодэ 3
Цикл А от 1 до 5
Если:
Сравнение чисел - HP_set больше или равно HP_value[A]
Тогда:
set HP_set = HP_set - HP_value[A]
Боевая единица - Добавить юниту HP_unit способность HP_Ability[A]
Иначе:
Боевая единица - Отнять у юнита HP_unit способность HP_Ability[A]
set HP_unit = (Нет боевой единицы)
Чуть пояснений:
Число 5 это конечное значение для описанной сейчас "системы", в идеале там должно быть 12-15 значений, хотя можно и больше (и +1 для отрицательных чисел).
Число А это целое для работы цикла. Если ты не знаешь как они работают (циклы/переменные), то всё это тебе объяснять - совсем другой разговор...
Хз что тут ещё добавить...
26

» WarCraft 3 / Как сделать для каждого игрока отдельный MultiBoard?

Через локал плеера можно и в одном МБорде всё всем показывать.
А так вообще через форс вроде, всем скрываешь, одному показываешь.
26

» WarCraft 3 / Эффект на способность "Сокрушение"

Скорее всего проблема в том что стандартное сокрушение вроде как не имеет настраиваемой графики... т.к. всегда все жаловались на это
Могу ошибаться
26

» Администрация XGM / Добавьте возможность редактирования отправленных писем

Было бы неплохо иметь возможность редактирования содержимого отправленного письма, до того момента как оно будет прочитано получателем (т.е. пока он висит у получателя как не прочитанное).
Так же можно было бы добавить возможность УДАЛЕНИЯ таких писем.
26

» WarCraft 3 / Убрать HP бары у юнитов

Естб параметр скрывания кругов выбора, преселекта, и ХПбаров
Но работает это не на конкретного юнита, а на весь игровой процесс (хотя и переключаемо).
26

» WarCraft 3 / Механика архонта

crusader556:
Так мне надо, чтобы не разделялись обратно
Как подсказали - просто убери (или не давай вовсе) абилку "расседлать" у архонта, вот и все.
26

» WarCraft 3 / Потеря контроля над персанажам

Подтверждаю!
Обращение к группе выбранных игроком юнитов вызывает потерю контроля в сетевой игре (даже с хорошим соединением).
Внутри вроде ничего такого, но - юзается синхронизация (или что-то такое), что даже по виду конструкции выглядит странно...
26

» WarCraft 3 / Повторение триггера

Он даёт предметные статы - атака и ХП.
Если их засунутб в книгу - это ничего не даст.
Нужно взять абилку на каст разового повышения ХП и такую же абилку на повышение атаки, и их засунуть в книги/руны (на атаку книга вроде в стандарте есть уже).
prog:
Тут дело в том, что у юнита не может быть двух одинаковых способностей.
Может, но механизм этот специфичен и не так очевиден (описать его специфику я не могу).
Еще как вариант набросать системку на выдачу нужного бонуса юниту, тогда будет попроще такие манипуляции прлизводить.
26

» WarCraft 3 / Механика архонта

Из двух юнитов создаётся один?
А абилка лучницы и гипогрифа не пойдёт?
26

» WarCraft 3 / Баги со способностью оживший огонь в кампании

У копий ожившего огня вроде как вообще не работает бонусный урон (тот, который стакается).
26

» WarCraft 3 / Дополнительные предметы

В мести воинов была просто замена всего инвентаря на то что лежит внутри сумки, и наоборот.
При активации сумки все предметы героя переносились в другое место (я использовал для этого скрытого юнита с инвентарём), а выдавались все ранее спрятанные (т.е. если такие имелись в сумке). В добавок при открытии сумки в 6й слот добавлялся особый предмет "Отмена", который закрывал инвентарь сумки (т.е. возвращал вещи, которые были у героя в инвентаре ДО открытия сумки, в том числе и саму сумку).
26

» WarCraft 3 / Не могу отловить срабатывание способности

Принятый ответ
А ты уверен что именно этот юнит кастует скилл?
Попробуй поставить общее событие.