Да чего там делать, Юр) Делаешь один хендлер, а в нем вместе с отталкиванием персонажа делаешь еще один вызов на убавление энергии и все) А то так и будут находить честные игроки лазейки через тролля)
Вид для печати
Мы можем одно и тоже разными словами называть. Оно изначально так и было, но если ты начнешь экспериментировать, то там начнется самое интересное, ну вот не так просто как ты пишешь. Первое, перестает работать обработчик индекса смерти, а в хендлеры я ранее не лазил. Короче, это все нюансы и сейчас конечно я решил эту задачку.
Вопрос более сложный, ты будешь тестировать?:v2_dizzy_wall:
:D
Буду) Вроде работает) Но реально протестировать могут только те, кто ухитрился за тролля пройти в прошлый раз.
А на счет кода - я бы так не делал) Зачем размещать в общий обработчик коллизий убавление энергии тролля, если ее можно разместить в CollideObject_5501_1()?
Но раз сделал уже, пускай будет)
Без разницы.
А ты сделай :)
1. Если просто перенести PlayerHurt() без указания class=hurt, не будет обрабатываться код смерти от кого, но все работать будет.
2. Если указать class=hurt, что перенос PlayerHurt() делает бессмысленным, то не будет обрабатываться бросок назад в CollideObject_5501_1, что в свою очередь делает бессмысленным перенос прыжка в общий обработчик коллизий class=hurt, поскольку общий класс для всего.
Это практические сливки. И еще практически я наигрался в разные варианты. Не спорю, что вариантов решений может быть несколько, как и простых, так и велосипедных. Но поступил проще, что показалось на первый взгляд - впилял уникальный обработчик только для тролля в func HandlerCollision():
Меня хватило потрахаться на 5 минут.Цитата:
// for troll index death on bridge
if(ObjGet(idx,32)==12 && mode!=0) // troll collider objects
Это оргазм перфекционизма, с меня хватит и я до сих пор не уверен 100% ли это гарантированный результат от этого "сифилиса".:D
- - - Добавлено - - -
Вот сборка для троллинга.
- сделал нормальное убавление энергии от тролля;
- добавил звук прыжка, когда тролль его отталкивает.
И? Погибая от кого ни попадя, все время будет смерть от тролля?
Если ты выставляешь class=hurt он же для всех будет обрабатываться.
Да разобрался я как работает HandlerCollision и что куда можно перенести. Но поскольку запилял по-другому, не вижу смысла в перестановке слагаемых. Твое решение более оптимально по копипасту и переходах туда-сюда, что скорее важнее.
Практически нужно троллить.
- - - Добавлено - - -
Titus, если кто-то пролезет через это:
то тогда хз как это разрулить еще оптимальнее:)Цитата:
func CollideObject_5501_1() // троль
{
PlayerEnterJump (-1,DIZ_POW);
PlayerHurt(10);
FX_Play(FX_TROLL_GROWL);
SamplePlay(FX_JUMP);
if(PlayerGet(P_LIFE)==0)
PlayerSet(P_DEATH, 12);
}
Совсем забыл, есть еще одна особенность: когда берешь верхнюю часть карты, то нет никакого звука, меня это так смутило сперва. Выкладывается со звуком, а берется без. Версии 1.03 и 1.04.