XGM Forum
Сайт - Статьи - Проекты - Ресурсы - Блоги

Форуме в режиме ТОЛЬКО ЧТЕНИЕ. Вы можете задать вопросы в Q/A на сайте, либо создать свой проект или ресурс.
Вернуться   XGM Forum > Warcraft> Академия: форум для вопросов
Ник
Пароль
Войти через VK в один клик
Сайт использует только имя.

Ответ
 
FatalBlade

offline
Опыт: 7,398
Активность:
Баг триггерного дублирования способностей предмета - герой получает двойной бонус!
Я случайно нашёл баг, как можно сделать триггерно, что при покупке 1-го предмета, герой может получить бонус как за 2 предмета.
И так, создаём торговца (любого, лишь бы продавал предметы). Создаём 2-х героев. Назовём их Hero1 и Hero2. Ставим на карте Hero1 рядом с торговцем. Hero2 ставим чуть подальше, что бы он не был в радиусе магазина (не обязательно что бы подальше от магазина, но желательно, что бы самому не запутаться). Создаём триггер с событием Предмет Продан (EVENT_PLAYER_UNIT_SELL_ITEM ). В действиях, триггерно отдаём купленный предмет второму герою (Hero2), ведь купил его первый герой (Hero1). Вот так:
((код jass
function Trig_Bug_Actions takes nothing returns nothing
call UnitAddItem( Hero2, GetSoldItem() )
endfunction
function InitTrig_Bug takes nothing returns nothing
set gg_trg_Bug = CreateTrigger( )
call TriggerRegisterAnyUnitEventBJ( gg_trg_Bug, EVENT_PLAYER_UNIT_SELL_ITEM )
call TriggerAddAction( gg_trg_Bug, function Trig_Bug_Actions )
endfunction
))
В результате вы видите что у обоих героев есть купленный предмет, хотя купили мы один. Предмет дублировался. Затем, просто возмите Hero1, и передайте его предмет второму герою (Hero2). У Hero2 вы увидите двойной эффект! Но это ещё не всё. У Hero2 сейчас 2 предмета. По очереди выбросите оба предмета на землю. Вы увидите что когда вы выкинули второй предмет, первый исчез. Остался всего 1 предмет. Но посмотрите внимательно на героя. У него пустой инвентарь, но бонус от предмета остался! А если вы подберёте только что выброшенный предмет с земли, то у вас будет двойной бонус! Например если предмет даёт +2 ко всем статам, то он будет давать +4.
Я попробовал это с предметом со способностью Блинк, и у меня получился безоткатный Блинк! По такой же схеме купите у торговца Блинк первому герою (Hero1). Но на этот раз никому ничего не передавайте. Просто выберите Hero2, и кастуйте с помощью его предмета Блинк. Вам будет показано что есть откат, но вы всё равно сможете кастовать Блинк. Без отката! Работает это только у Hero2, то есть НЕ у того кто купил предмет.
И последнее. После того как вы купили предмет, возьмите любого из двух героев, выбросите его предмет на землю, и уничтожьте. В результате у второго героя, у которого ещё есть этот предмет в инвентаре, этот предмет станет невозможно не использовать, не выкинуть. Он станет мёртвым грузом в инвентаре.

Отредактировано FatalBlade, 24.11.2012 в 06:35.
Старый 24.11.2012, 06:03
DioD

offline
Опыт: 45,134
Активность:
большое спасибо за плаг научное открытие
все свободны расходитель не задерживайте очередь.
Старый 24.11.2012, 08:25
FatalBlade

offline
Опыт: 7,398
Активность:
DioD, там немного по другому написано, и он писал, что
FellGuard:
Пока не известно относительно применения не-пассивных заклинаний
А мне известно. Я написал про Блинк.
Старый 24.11.2012, 13:21
DioD

offline
Опыт: 45,134
Активность:
Немного подругому написано? Наркоман штоле?
И какая выгода от безоткатного блинка, когда его можно и так сделать безоткатным?
Старый 24.11.2012, 13:46
FatalBlade

offline
Опыт: 7,398
Активность:
DioD, я писал не о выгоде, а вообще о баге.
Да и вообще, тогда какая выгода от того что там FellGuard писал? Всё что он написал тоже можно реализовать триггерно.

Отредактировано FatalBlade, 24.11.2012 в 14:33.
Старый 24.11.2012, 13:55
DioD

offline
Опыт: 45,134
Активность:
Реализацию выдачи одной и той же абилки дважды в студию!
Старый 24.11.2012, 14:51
FatalBlade

offline
Опыт: 7,398
Активность:
DioD:
Реализацию выдачи одной и той же абилки дважды в студию!
Если это пассивка, то копируешь её, и всё. А вообще и копировать не надо. В РО есть очень много одинаковых предметовых абилок, разница только в равкоде и количество бонуса (например +10 ИНТ), которые можно выставить одинаково.
Старый 24.11.2012, 14:55
DioD

offline
Опыт: 45,134
Активность:
я хочу двойной стан на 10% но не 1 на 20% а именно 2 стана по 10% покажи мне как ты выдашь 2 одинаковых стана триггерно.
Старый 24.11.2012, 15:12
quq_CCCP
Я белый и пушистый!
offline
Опыт: 93,288
Активность:
DioD:
стан на 10%
мб. баш, стан это уже активная способность, это пунка А, пункт Б - баши не складываются...
Старый 24.11.2012, 15:17
FatalBlade

offline
Опыт: 7,398
Активность:
DioD,
Когда выдаёшь герою 2 предмета у которых один и тот же стан, то у героя как раз так и будет - 2 стана по 10%, а не 1 на 20%. Bash'ы не складываются. Я эксперементировал с этим, и видел нескольколько раз, что за ОДИН удар, выскочило сразу ДВА красных числа, которые выскакивают когда срабатывает стан. Ошибиться я не мог - скорость атаки героя была довольно низкая. Это значит что у героя есть 2 стана.
P.S. то же самое было и с критами.
Старый 24.11.2012, 15:18
DioD

offline
Опыт: 45,134
Активность:
Когда выдаёшь герою 2 предмета у которых один и тот же стан, то у героя как раз так и будет - 2 стана по 10%, а не 1 на 20%. Bash'ы не складываются.
Баши стакаются, а теперь прочитай мой вопрос, ты заявил:
Всё что он написал тоже можно реализовать триггерно.
Показывай как ты реализовал триггерно без эксплойта.
Старый 24.11.2012, 17:08
FatalBlade

offline
Опыт: 7,398
Активность:
DioD:
Показывай как ты реализовал триггерно без эксплойта.
Я уже выше написал как. Даёшь герою 2 предмета со способностью Баш. У тебя будет 2 баша. То же самое и с критами. Можно даже дать герою баш + крит.
Старый 24.11.2012, 17:38
Темак
jass for everyone
offline
Опыт: 7,200
Активность:
FatalBlade, можно таким образом обнулять кд одной конкретной способности (а не всем)?
Старый 24.11.2012, 17:42
FatalBlade

offline
Опыт: 7,398
Активность:
Temak1, ты про мой спор с DioD'ом или про первый пост?
Старый 24.11.2012, 17:47
Темак
jass for everyone
offline
Опыт: 7,200
Активность:
FatalBlade:
Я попробовал это с предметом со способностью Блинк, и у меня получился безоткатный Блинк! По такой же схеме купите у торговца Блинк первому герою (Hero1). Но на этот раз никому ничего не передавайте. Просто выберите Hero2, и кастуйте с помощью его предмета Блинк. Вам будет показано что есть откат, но вы всё равно сможете кастовать Блинк. Без отката! Работает это только у Hero2, то есть НЕ у того кто купил предмет.

ещё, не мешало бы, для понятности, поменять Hero1 и Hero2 на, например, Горного короля и Паладина.
Старый 24.11.2012, 18:03
FatalBlade

offline
Опыт: 7,398
Активность:
Temak1, вообщем получалось, что у Hero2 (Паладина, если так удобно :)), то есть НЕ у того героя, который покупал предмет, можно было кастовать Блинк без отката, хотя на предмете ПОКАЗАН откат. У Hero1 же, это не работало - нужно было ждать откат.
Старый 24.11.2012, 18:18
Темак
jass for everyone
offline
Опыт: 7,200
Активность:
FatalBlade:
кастовать Блинк без отката, хотя на предмете ПОКАЗАН откат
вот это очень круто, спасибо!
А как криты складываются? Например, если я добавлю 2 крита с 10% шансом на 2-кратный урон, то при каждом ударе будет 2 раза высчитываться шанс на крит или шанс будет 20%? А урон будет нанесён в двух, трёх или четырёхкратном размере?
Temak1 добавил:
я заметил что у близзов очень много багов с цикличными триггерами, видимо они не рассчитывали, что игроки будут создавать динамические триггеры :)
Старый 24.11.2012, 18:26
FatalBlade

offline
Опыт: 7,398
Активность:
Temak1:
А как криты складываются? Например, если я добавлю 2 крита с 10% шансом на 2-кратный урон, то при каждом ударе будет 2 раза высчитываться шанс на крит или шанс будет 20%?
Нет, не каждый раз. У тебя будут 2 способности крита, и у каждого например шанс 10%. Может выйти так, что сработает первый крит, может сработает второй, а может и оба сразу. Только когда сработают оба сразу, ты увидишь 2 красных числа, то есть 2 сообщения о том, что был крит.
Temak1:
А урон будет нанесён в двух, трёх или четырёхкратном размере?
А вот этого не знаю :) Когда сработают сразу оба крита, если у тебя урон равен 100 dmg, то ты увидишь над юнитом 2 числа 200. Но наносится ли 400 урона или 300 я не знаю. Но точно не 200.
FatalBlade добавил:
Temak1:
я заметил что у близзов очень много багов с цикличными триггерами, видимо они не рассчитывали, что игроки будут создавать динамические триггеры :)
Какие баги? У меня создаются динамические триггеры, и даже есть периодические, но вроде ничего необычного не замечал.
Старый 24.11.2012, 19:00
Темак
jass for everyone
offline
Опыт: 7,200
Активность:
FatalBlade:
А вот этого не знаю :) Когда сработают сразу оба крита, если у тебя урон равен 100 dmg, то ты увидишь над юнитом 2 числа 200. Но наносится ли 400 урона или 300 я не знаю. Но точно не 200.
если это работает как в стандарте (без использования бага), то есть, если у героя 2 крита, предметный 3х и свой 4.2х то при одновременном срабатывании урон наносился только от предмета, а он слабее (мб это частный случай)
FatalBlade:
Какие баги? У меня создаются динамические триггеры, и даже есть периодические, но вроде ничего необычного не замечал.
если в триггере отвечающем за событие "юнит отдал приказ - без цели" сделать действие "приказать юниту [любой приказ без цели]", то варик просто закрывается (без фатала)
Старый 24.11.2012, 20:39
FatalBlade

offline
Опыт: 7,398
Активность:
Temak1:
если это работает как в стандарте (без использования бага), то есть, если у героя 2 крита, предметный 3х и свой 4.2х то при одновременном срабатывании урон наносился только от предмета, а он слабее (мб это частный случай)
Может быть. Я пробовал только с критами от предметов, без своих геройских критов.
Temak1:
если в триггере отвечающем за событие "юнит отдал приказ - без цели" сделать действие "приказать юниту [любой приказ без цели]", то варик просто закрывается (без фатала)
Логично. Такое по идее должно быть с любым приказом, не только без цели, но и по цели, и по области. Подумай сам, ведь юнит получил приказ, затем выполнил такого же типа приказ, и событие опять сработало, и тогда он опять выполняет приказ, на которое опять сработает событие... Это безконечный цикл.
То же самое например, сделай триггер, в котором когда герой входит в област 1, перемещай его триггерно в область 2. И сделай ещё один триггер, в котором если герой входит в область 2, перемещай его в область 1. Запусти игру и прриведи героя в одну из областей. Варик не закроется, но в лучшем случае зависнит. В худшем случае, зависнит комп. А если у тебя ещё и Виндос ХР, то будет синий экран смерти.

Отредактировано FatalBlade, 24.11.2012 в 21:09.
Старый 24.11.2012, 21:02
Ответ

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы можете скачивать файлы

BB-коды Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход



Часовой пояс GMT +3, время: 12:23.