Storm Gust фризит с первой волны

Тема в разделе "Ошибки", создана пользователем Valse, 3 сен 2016.

Статус темы:
Закрыта.
  1. Ronlet Dale

    Ronlet Dale Игрок

    Кроме того:

    • It is rumoured that players only need to be hit 3 times by Storm Gust to freeze. This is false. The third hit of Storm Gust -- regardless of whether it was the same one that did the first two times or not -- has a 150% chance to freeze the target. This means, with the exception of those immune to the Freezing status, players with high MDEF can lower this chance to under 100% and have a chance at not freezing on the third hit.
    Т.е. иногда третья волна не фризит.

    В случае с фрирой баг заклдючается в том, что иногда при респауне не сбрасывается счетчик волн гаста.
    Пример:

    1) Бьем лава голема. 3 волны, фриз, разбили, еще 2 волны - труп.
    2) Он респаунится. У него по каким-то хитрым причинам остается в памяти счетчик волн гаста, равный двум.
    3) Кастуем гаст. После первой волны счетчик равен трем - моб фризится, дядя негодует и пишет пост на форуме.
    Восемь и Мяурицо нравится это.
  2. Мяурицо

    Мяурицо Игрок

    вот, я как раз и говорил что у мобов есть ещё внутренний айди.
    Бывает наносишь монстру урон, он респавнится и агрится сразу же на тебя (хотя монстр не агрессор) то есть это с учётом 2 факторов: 1) instantly respawn 2) возможность респа в зоне видимост
    к теме не относится, но тоже занятно
    У нас из-за невозможности монстров респаться в зоне видимости игрока такие случае не происходят.
    А ещё это отличная штука для понимания почему некоторым долго карты не падают, потому что по сути нужно убивать к конкретного попоринга а не всех подряд, ведь у каждого свой каунт идёт.
  3. Ronlet Dale

    Ronlet Dale Игрок

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

    По поводу счетчика на выпадение карт - этого нет. В момент убийства моба для каждой лутинки из таблички дропа генерируется случайное число от 0 до 1. Если число меньше шанса дропа - то данная вещь выпадает. Если больше - не выпадает.

    Пример:
    таблица дропа:
    1) Джелопи 100% = 1
    2) Яблоко 60% = 0.6
    3) Карта 0.02% = 0.0002
    4) Еда + 5 декс со сковородки 3% = 0.03

    Генерим 4 случайных числа:
    1) 0.22348756
    2) 0.05682342
    3) 0.09478502
    4) 0.01928301

    В результате нас из монстра выпадают:
    1) Джелопи
    2) Яблоко
    4) Еда

    Так делается для каждой лутинки из каждого убитого моба. (У кражи и мвп дропа другая механика, если что).
    FrauMaus, -=FaNaTiK=-, Krelian и ещё 1-му нравится это.
  4. Восемь

    Восемь Игрок

    А, если это из-за счетчика, то это понятно, не раз видела мобов, которые агрились на меня после респауна.
  5. Мяурицо

    Мяурицо Игрок

    Ну только имелось ввиду не счетчик на карты а вообще на всё. Несомненно убийство 10.000 монстров не даст 100 % шанс выпадения карты у которой шанс 0.01 % но вероятность выпадения её будет крайне высока. По сути, это как в математике имеется множество вариантов решения одной и той же задачи.
  6. Ronlet Dale

    Ronlet Dale Игрок

    Нет. https://ru.wikipedia.org/wiki/Ошибка_игрока
    Владимир нравится это.
  7. hello

    hello Read Only

    Нет чтоб просто подождать рестарта и повторного возгорания. Правильный ответ уже был в самом начале.
    thevoid нравится это.
  8. они не так часто обновляют описание скиллов) Это касается в первую очередь старой механики(и её описания) в первую очередь, ибо на неё забили
  9. Ronlet Dale

    Ronlet Dale Игрок

    Ок. Возьмем последний эмулятор Hercules (вроде один из самых обновляемых сейчас).

    Код:
    case WZ_STORMGUST:
    /**
    * Storm Gust counter was dropped in renewal
    **/
    #ifdef RENEWAL
    sc_start(src,bl,SC_FREEZE,65-(5*skill_lv),skill_lv,skill->get_time2(skill_id,skill_lv));
    #else
    //On third hit, there is a 150% to freeze the target
    if(tsc->sg_counter >= 3 &&
    sc_start(src,bl,SC_FREEZE,150,skill_lv,skill->get_time2(skill_id,skill_lv)))
    tsc->sg_counter = 0;
    /**
    * being it only resets on success it'd keep stacking and eventually overflowing on mvps, so we reset at a high value
    **/
    else if( tsc->sg_counter > 250 )
    tsc->sg_counter = 0;
    #endif
    break;
    
    Полностью совпадает с описанием приведенным по ссылкам выше.
    Valse и Владимир нравится это.
  10. Мяурицо

    Мяурицо Игрок

    спасибо, у меня эта статья имеется даже в закладках, только это не имеет отношение к делу. это как в анекдоте уже.
    - а какой шанс карты?
    - 50 на 50
    ну, технически это так, но не совсем.
    с заблуждением монье карло та же история
  11. Мяурицо

    Мяурицо Игрок

    туда же можно еще один вариант.
    генерация случайных чисел.
    имеем: монстр в базе с айди 1430
    на карте он 1
    генератор случайных чисел устанавливается на 700 для гема. на 700 монстре падает гем. При выпадении генерируется новое число, при рестарте тоже самое. Технически, так происходит в реальном мире, при возможности перемещения в пространстве или телепортации или одоления скорости света это можно было и проверить. Все высказанные теории являются верными и приводят к одному результату.
    Последнее редактирование: 8 сен 2016
  12. X

    X Играет за мобов
    Команда форума

    Большое спасибо всем за участие в анализе.
    На самом деле такие коллективные разборки иногда помогают выявить что-нибудь новое или ранее малоизвестное о вполне привычных фичах игры.

    В нашем случае, баг возник после переподгрузки базы предметов и монстров на ходу, без рестарта. Зачем предметов - описано здесь, а монстров - потому, что переподгрузка предметов аннулирует данные о дропе в @whodrops и @mi.
    Вообще, вся эта история с переподгрузками баз данных без рестарта очень ненадёжная, и мы стараемся обращаться к ней максимально редко, чтобы не порождать такие вот аномалии, как описанный в топике.

    @Valse
    Ещё раз, гомен за такое поведение гаста.
    К этому моменту, его больше нет.
Статус темы:
Закрыта.