Ксати я считаю героекопалку читерством и мне кажется ее надо запретить
И сидеть ночами перегружать игру вручную в ожидании нужного героя... Просто игрокам некуда время девать совершенно... Или играть первым попавшимся героем, так что ли? Какой смысл вообще тогда играть?
На 5 этаже гильдии магов имеется заклинание полёт!!! Используя его можно влететь в замок минуя стража границы!!! Я очень расчитывал, что кто-нибудь до этого догадается, правда прохождение было бы 4 дня...
Я пробовал пролететь - не получилось,страж мешает. Был удивлен, раньше считал, что с полетом можно куда угодно забраться.
Вчера провёл анализ дизассемблированного экзешника hmm2pl.exe (v2.1, Gold от Буки). Вот какие результаты получены:
1) В начале битвы генерируется некоторое псевдослучайное число (зависит, скорее всего, от качественного и количественного состава армии, распределения стеков по слотам и т.п.). Это число не зависит от таймера и хранится в течение битвы по одному и тому же адресу! Далее, оно меняется в процессе битвы, но только в результате арифметических и логических операций (and, or, shl и т.п.). Т. е. если повторять одни и те же ходы (действия), картинка морали будет всегда одной и той же, что позволяет записать "нотацию" партии (подобно шахматам).
2) Если мораль (m) больше нуля, то выпадет она или нет конкретному стеку зависит от условия: mod(R, 24) + 1 <= m, где R - упомянутое псевдослучайное число (узнать можно под отладчиком или с помощью специальных программ). Если это условие выполняется, мораль выпадает, иначе - нет. Механику выпадения "плохой" морали ещё не разбирал.
3) Выводы: а) если отряду не выпала мораль на одной клетке, не выпадет и на всех остальных (и наоборот; при условии, что отряд не атакует; таким образом, гипотеза о "моральных клетках" неверна); б) если мораль выпала/не выпала при атаке, то не важно, с какой клетки эта атака была произведена: мораль будет выпадать/не выпадать и на всех других клетках (здесь число R рассчитывается после ответки); в) атакуя разные стеки противника, получаем разное R и, соответственно, разную мораль.
В тройке, возможно, та же механика. Но R рассчитывается перед боем и ЗАВИСИТ от таймера, но по-прежнему ТОЛЬКО перед боем. Т. е. я хочу сказать, что если у двух игроков окажутся числа R одинаковыми, то как бы они ни подбирали задержки, картинка морали будет также одинаковой.
Хотелось бы узнать Ваше мнение на этот счёт. И контрпримеры (я таковых пока не нашёл).
2AlexSpl: Очень интересная инфа! Но это для вторых героев, правда кое что и справедливо для третьих! Формула скорее всего такая же, но зависимость от времени в третьих героях точно есть! По выводам: Понятно, что гипотеза с моральными клетками - это полный бред. А вот с пунктом в) я бы поспорил. Недавно я проводил бой, в начале которого атака абсолютно любого стека давала удачу, но если подожлать немного, то никакой удачи не было!
что если у двух игроков окажутся числа R одинаковыми, то как бы они ни подбирали задержки, картинка морали будет также одинаковой.
А эту фразу не понял вообще. Т.е. не будет разницы ждать 2 секунды и 2 часа??? Да ладно.... Не верю!!! (с) Станиславский
2wolf64: Чтоб туда залететь, надо направить ход через ворота замка и пролетая над ними нажать ПРОБЕЛ! Всё работает, проверено!
2AmberSoler: По поводу морали и вэйта полностью с тобой не согласен!
А вот с пунктом в) я бы поспорил. Недавно я проводил бой, в начале которого атака абсолютно любого стека давала удачу, но если подожлать немного, то никакой удачи не было!
А эту фразу не понял вообще. Т.е. не будет разницы ждать 2 секунды и 2 часа??? Да ладно.... Не верю!!! (с) Станиславский
По поводу последней фразы. Я и Вы начинаем один и тот же бой. У меня сгенерировалось, например, R1 = BD76h (48 502), а у Вас - R2 = 9FF0h (40 944). Далее, эти числа меняются только в арифметических и логических операциях и не зависят от таймера. Пусть у меня Архангелу после атаки мораль не выпала, а у Вас - выпала. Начинаем ту же битву заново, и допустим нам так повезло, что R1 у меня и R2 у Вас оказались в точности такими же, как и в первый раз! Так вот, никакие задержки тогда не помогут мне получить мораль, а Вам - её обломать.
2) Если мораль (m) больше нуля, то выпадет она или нет конкретному стеку зависит от условия: mod(R, 24) + 1 <= m, где R - упомянутое псевдослучайное число (узнать можно под отладчиком или с помощью специальных программ). Если это условие выполняется, мораль выпадает, иначе - нет. Механику выпадения "плохой" морали ещё не разбирал.
3) Выводы: а) если отряду не выпала мораль на одной клетке, не выпадет и на всех остальных (и наоборот; при условии, что отряд не атакует; таким образом, гипотеза о "моральных клетках" неверна);
По пункту 2 ... в асме не шарю ... но хотелось бы узнать каким макаром был сделан вывод о том что mod(R, 24) + 1 <= m искомая формула.
По пункту 3 ... выводы сделаны при анализе екзешника от вторых героев ... а в третих может все не так ... так что однозначно утверждать об этом нельзя ... я верю своим глазам ... за что купил - за то и продаю ;)
По поводу последней фразы. Я и Вы начинаем один и тот же бой. У меня сгенерировалось, например, R1 = BD76h (48 502), а у Вас - R2 = 9FF0h (40 944). Далее, эти числа меняются только в арифметических и логических операциях и не зависят от таймера. Пусть у меня Архангелу после атаки мораль не выпала, а у Вас - выпала. Начинаем ту же битву заново, и допустим нам так повезло, что R1 у меня и R2 у Вас оказались в точности такими же, как и в первый раз! Так вот, никакие задержки тогда не помогут мне получить мораль, а Вам - её обломать.
Ну а как же тот факт, что можно получить мораль в первом раунде можно получит 10 раз подряд, а на 11 затупить немного и морали не будет? Это имеет место быть и с этим фактом не поспоришь! Неужели первые 10 раз было одно R, а на 11 раз другое?
Добавлено через 2 минуты K0Lb@zzeR;189013
По пункту 3 ... выводы сделаны при анализе екзешника от вторых героев ... а в третих может все не так ...
Вторые и третьи герои создавались одной фирмой и наверняка одними програмистами и я не думаю, что формулы и принцип бы кординально изменились!
Вчера провёл анализ дизассемблированного экзешника hmm2pl.exe (v2.1, Gold от Буки).
А какой дизасс юзал ???
K0Lb@zzeR
18 лет назад
Dirty_Player;189014
Вторые и третьи герои создавались одной фирмой и наверняка одними програмистами и я не думаю, что формулы и принцип бы кординально изменились!
Улыбнуло ... так то ... одним программистом ... однозначно бред ... он просто не до жил до тройки (уволился скорей всего) ... поверь мне как программисту :)
И все последующие реализы должны быть лучше ... ядро программы совершенно различаеться ... однозначно ...
2Dirty Player: Где мы друг друга не понимаем? :) Чтобы провести 11 тестов, нужно 11 раз начать битву сначала. Так? И 11 раз значание R (зависящее от "затравки", "seed") будет различным! Значит, 10 раз выпадали такие значения R, что остаток оказывался одинаковым (точнее, [остаток + 1] был не больше морали, а на 11-ый раз всё случилось наоборот). Повторюсь, что это только предположение, и механизм морали в тройке сложнее, чем в "двушке".
2K0Lb@zzeR: IDA Pro v5.02. Вывод делается однозначно, если надо, могу скинуть фрагмент кода в личку.
P. S. Вообще, всё это я затеял в надежде научиться предсказывать мораль и удачу, но, похоже, из-за их псевдослучайного характера, одним мозгом :) тут не обойтись... Хотя, конечно, можно попытаться написать программу, которая считывала бы значение R из оперативки и "предсказывала" выпадение морали и удачи. Кстати, благодаря этому мини-исследованию, наконец-то увидел анимацию неудачи (грозовое облачко и молния) :)
2K0Lb@zzeR: Всё, хватит разводить флуд :) Скину не ранее, чем завтра (дома нет выхода в сеть). По поводу "задержек": остаюсь при своём мнении (мораль не зависит от временных интервалов, что постараюсь опровергнуть или подтвердить).
2wolf64: Чтоб туда залететь, надо направить ход через ворота замка и пролетая над ними нажать ПРОБЕЛ! Всё работает, проверено!
Известный баг, особенно злой из-за того, что на большинстве геройских ресурсов прямо запрещен, следовательно, ИМХО, многими игроками и тут сознательно не использовался.
А то даблкаст тоже работает. Проверено!
P. S. С полетом вообще связано много багов. Прервать полет можно ведь не только пробелом или другими клавишами, он может прерываться и событием, и битвой, и взятием предмета, наконец (когда герой, взяв с карты что-то, останавливается около предмета. Например, на гарнизоне, не воюя с ним. Или прямо на артефакте). Поэтому у нас на Хероесортале это прямо запрещено, формулировка примерно такая: "Запрещено искусственно прерывать полет, например нажатием клавиш". Последнее означает, в частности, что та клетка, на которую приземляется герой в конце полета, обязательно должна быть свободной. И это логично.
2AlexSpl: Чтоб туда залететь, надо направить ход через ворота замка и пролетая над ними нажать ПРОБЕЛ! Всё работает, проверено!
В определённых геройских кругах это считается багом, и запрещено правилами :smile01:
Добавлено через 5 минут AlexSpl;189028
Кстати, благодаря этому мини-исследованию, наконец-то увидел анимацию неудачи (грозовое облачко и молния) :)
Это в Двойке. Там после посещения разграбленной пирамиды такая фигня вылезает. -2 к удаче. В Тройке антиудачи не бывает. А то, что здесь писали про ненужность абилки дьяволов и заклинания неудача, то это как посмотреть. Вот у противника будет +1 к удаче, пригодятся дьяволы, больше удачи, и неудача на всех проканает.