MOTR logo
    • Категории
    • Последние
    • Популярные
    • Метки
    • Пользователи
    • Группы
    • Зарегистрироваться
    • Войти

    Ошибка в скилле Meteor Storm

    Запланировано Прикреплена Закрыта Перенесена Архив ошибок
    165 Сообщения 38 Posters 7.2k Просмотры
    Загружаем больше сообщений
    • Сначала старые
    • Сначала новые
    • По количеству голосов
    Ответить
    • Ответить, создав новую тему
    Авторизуйтесь, чтобы ответить
    Эта тема была удалена. Только пользователи с правом управления темами могут её видеть.
    • ThroyanecT Не в сети
      Throyanec
      отредактировано

      /src/map/skill.c

      case WZ_METEOR: /* ƒƒeƒIƒXƒg[ƒ€ /
      if(rand()%100 < 3
      skilllv)
      status_change_start(bl,SC_STAN,skilllv,0,0,0,skill_get_time2(skillid,skilllv),0);
      break;

      Не учитывается вит/лак резист, отсутсвует множитель sc_def_vit/100
      приводит к значительно большиму шансу наложения стана, проблемам с прохождением дефа и воплям на форуме 😃

      Аналогии:

      case AS_SONICBLOW: /* ƒ\ƒjƒbƒNƒuƒ[ */

                  if( rand()%100 < (2*skilllv+10)**sc_def_vit/100* )
                          status_change_start(bl,SC_STAN,skilllv,0,0,0,skill_get_time2(skillid,skilllv),0);
                  break;
      

      case SM_BASH: /* ƒoƒbƒVƒ…i‹}ŠUŒ‚j */

                  if( sd && (skill=pc_checkskill(sd,SM_FATALBLOW))>0 ){
                          if( rand()%100 < 6*(skilllv-5)**sc_def_vit/100* )
                                  status_change_start(bl,SC_STAN,skilllv,0,0,0,skill_get_time2(SM_FATALBLOW,skilllv),0);
                  }
                  break;
      

      case HT_LANDMINE: /* ƒ‰ƒ“ƒhƒ}ƒCƒ“ */

                  if( rand()%100 < (5*skilllv+30)**sc_def_vit/100* )
                          status_change_start(bl,SC_STAN,skilllv,0,0,0,skill_get_time2(skillid,skilllv),0);
                  break;
      
      1 ответ Последний ответ Ответить Цитировать 0
      • EllebonE Не в сети
        Ellebon Заблокирован
        отредактировано

        по руски напиши, да

        1 ответ Последний ответ Ответить Цитировать 0
        • FurcubeF Не в сети
          Furcube Заблокирован
          отредактировано

          и приведи доказательства того, что это ошибка. может так оно и задумано.

          1 ответ Последний ответ Ответить Цитировать 0
          • PsychoP Не в сети
            Psycho
            отредактировано

            если по русски станит все живое ибо на твой вит и лак ему пох а это ЧИТ=)

            1 ответ Последний ответ Ответить Цитировать 0
            • Darth CrusherD Не в сети
              Darth Crusher
              отредактировано

              Сейчас для метеор шторма имеем в коде

              [code:cdqv25k2]
              if(rand()%100 < 3*skilllv)
              [/code:cdqv25k2]

              Такого рода условие полностью игнорирует наличие вит и лак, что не есть правильно.
              А должно быть

              [code:cdqv25k2]
              if(rand()%100 < sc_def_vit)
              [/code:cdqv25k2]

              или же вероятнее всего

              [code:cdqv25k2]
              if(rand()%100 < 3skilllvsc_def_vit/100 )
              [/code:cdqv25k2]

              1 ответ Последний ответ Ответить Цитировать 0
              • ThroyanecT Не в сети
                Throyanec
                отредактировано

                @Furcube:
                и приведи доказательства того, что это ошибка. может так оно и задумано.

                Есть механика игры и поэтой механике, у статуса должен быть:

                1. базовый шанс
                2. иммунитет
                3. время воздействия

                Это должно работать для всех скиллов.

                1 ответ Последний ответ Ответить Цитировать 0
                • Darth CrusherD Не в сети
                  Darth Crusher
                  отредактировано

                  прокомментирую последнюю часть кода. Там имеется:

                  1. зависимость базового шанса стуна от уровня скилла, который достигает 30% на 10м левеле
                  2. учёт при этом статов вит и лак жертвы
                  1 ответ Последний ответ Ответить Цитировать 0
                  • FurcubeF Не в сети
                    Furcube Заблокирован
                    отредактировано

                    не надо только залезать в еАфину - там многие скилы работают несколько иначе чем в жАфине.

                    1 ответ Последний ответ Ответить Цитировать 0
                    • МистикалМ Не в сети
                      Мистикал
                      отредактировано

                      @Throyanec:

                      @Furcube:
                      и приведи доказательства того, что это ошибка. может так оно и задумано.

                      Есть механика игры и поэтой механике, у статуса должен быть:

                      1. базовый шанс
                      2. иммунитет
                      3. время воздействия

                      Это должно работать для всех скиллов.

                      Несовсем точно, у статуса должны быть:

                      1. базовый шанс, зависящий от воздействующего скилла
                      2. шанс, зависящий от статов персонажа
                      3. иммунитет, зависящий от статов персонажа
                      4. время воздействия, зависящее от статов персонажа

                      Какраз этот Пункт 2 упущен в формуле рассчёта стана от метеора.

                      1 ответ Последний ответ Ответить Цитировать 0
                      • ThroyanecT Не в сети
                        Throyanec
                        отредактировано

                        1. шанс, зависящий от статов персонажа
                        2. иммунитет, зависящий от статов персонажа

                        В чем разница этих 2х пунктов?)

                        1 ответ Последний ответ Ответить Цитировать 0
                        • МистикалМ Не в сети
                          Мистикал
                          отредактировано

                          =))))))) Ты прав хотя с точки зрения русского языка слово "шанс" более точно описывает механику процесса. "Иммунитет" как правило означает полную неприкосновенность.

                          А эмулятор был взят jathena-1178. Т.е. самый последний на текущий момент.

                          1 ответ Последний ответ Ответить Цитировать 0
                          • Sasha-sanS Не в сети
                            Sasha-san
                            отредактировано

                            Throyanec, а ты проверил, может там ещё внутри функции status_change_start() проверка вит/лак?

                            1 ответ Последний ответ Ответить Цитировать 0
                            • Darth CrusherD Не в сети
                              Darth Crusher
                              отредактировано

                              Мистикал, см. мою последнюю формулу
                              Sasha-san, нет, та фукнция проверки не включает, поскольку в других скиллах эта же функция употребляется наряду с проверкой на различные статы, т.е. она только меняет статус и ничего более.

                              1 ответ Последний ответ Ответить Цитировать 0
                              • МистикалМ Не в сети
                                Мистикал
                                отредактировано

                                Darth Crusher, тру тру я тожесамое отписал в теме последнего ВоЕ.

                                Нет, внутри функции проверок на вит лак нету, проверка происходит до включения статуса.

                                С запуском функции status_change_start() происходит смена статуса объекта.

                                1 ответ Последний ответ Ответить Цитировать 0
                                • deathbandD Не в сети
                                  deathband
                                  отредактировано

                                  обратите внимание вот на это:

                                  в функции status_change_start (statuc.c) есть интересное место:
                                  [code:okbtrnf7]
                                  case SC_STAN:
                                  scdef=3+status_get_vit(bl)+status_get_luk(bl)/3;
                                  break;
                                  [/code:okbtrnf7]

                                  и далее:[code:okbtrnf7]
                                  if(scdef>=100)
                                  return 0;[/code:okbtrnf7]

                                  т.е. если я правильно понимаю.. если суммарный дефенс от статуса превышает 100.. статус просто не накладывается вообще

                                  Мистикал, бррр.. не заметил ваш пост

                                  1 ответ Последний ответ Ответить Цитировать 0
                                  • AstarA Не в сети
                                    Astar
                                    отредактировано

                                    То что в теории по механике так должно быть, еще не говорит однозначно, что именно так работает на оффе.
                                    Нужен либо оригинальные код 🙂 либо тесты.

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

                                    1 ответ Последний ответ Ответить Цитировать 0
                                    • Darth CrusherD Не в сети
                                      Darth Crusher
                                      отредактировано

                                      deathband,
                                      [code:1e1ddhgi]
                                      scdef=3+status_get_vit(bl)+status_get_luk(bl)/3;[/code:1e1ddhgi]
                                      это формула длительности стана

                                      1 ответ Последний ответ Ответить Цитировать 0
                                      • deathbandD Не в сети
                                        deathband
                                        отредактировано

                                        @"Darth-Crusher":
                                        deathband, это формула длительности стана

                                        простите, но если у нас 0ая длительно... разве это не есть защита? 🙂
                                        или должен быть ещё некий иммунитет?

                                        меня лично, очень интересуют настоящие (не старые) формулы оффа.

                                        1 ответ Последний ответ Ответить Цитировать 0
                                        • ThroyanecT Не в сети
                                          Throyanec
                                          отредактировано

                                          Вот именно так оно и реализовано сейчас. Да должен быть иммунитет. устал

                                          Вопрос там ничего не решит, - никто оригинальный код не покажет, если уж сказать четко про азуру не смогли, то что уж говорить о шансе наложения стана под метеором.

                                          1 ответ Последний ответ Ответить Цитировать 0
                                          • Darth CrusherD Не в сети
                                            Darth Crusher
                                            отредактировано

                                            @"deathband":

                                            @"Darth-Crusher":
                                            deathband, это формула длительности стана

                                            простите, но если у нас 0ая длительно... разве это не есть защита? 🙂
                                            или должен быть ещё некий иммунитет?

                                            меня лично, очень интересуют настоящие (не старые) формулы оффа.

                                            есть разница между вероятностью появления эффекта и его длительностью. Это легко проиллюстрировать на примере статусов curse или sleep

                                            1 ответ Последний ответ Ответить Цитировать 0
                                            • Первое сообщение
                                              Последнее сообщение