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

    Rare loot droped in=)

    Запланировано Прикреплена Закрыта Перенесена Общий
    94 Сообщения 32 Posters 5.4k Просмотры
    Загружаем больше сообщений
    • Сначала старые
    • Сначала новые
    • По количеству голосов
    Ответить
    • Ответить, создав новую тему
    Авторизуйтесь, чтобы ответить
    Эта тема была удалена. Только пользователи с правом управления темами могут её видеть.
    • R Не в сети
      RAt197 Заблокирован
      отредактировано

      Народ, по моему мнению, карта или шмотка упадет только тогда когда она уйдет из мира (Вставят в шмот, или шмотку, поломают, продадут NPC).

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

        @tass:
        Блин, еще раз, 99% что так:

        Когда ты убиваешь поринга, кидается случайное число в диапазоне например 1-10000. Если выпадает меньше 20, дропается карта нарпимер.

        Т.е. составлена шкала дропа из моба в зависимости от этого случ. числа, при убийстве несчастного поринга это число выбирается случ. образом, по шкале смотрим - оппа, карта! А 0,2% - это собсна шанс попадания этого числа в место шкалы, которое соответствует карте.

        Иными словами, если ты проведешь бесконечную серию экспериментов с порингами (какого рода, объяснять не надо?), то в среднем карта будет у тебя падать в 0,2% случаев. И баста 😉

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

        В игре как вы понимаете все основано на этой недоделке.

        И именно берется 1 к 1
        10000(число)
        и если выпадет < 1 тоесть число "ноль" дропается вещ 0.01 вероятностью.

        блее корректно было бы увеличить шкалу до 10^(4+2)
        и при рассчете раскидывать хотябы эти 100 свободных чисел по шкале 10^6, для вероятности 0.01, для больших вероятностей это будет больше колличество чисел.
        да эта операция увеличит колличество вычислений на этапе обработки дропа(события) на ~3*10^5 вычислений.
        Но будет уже более корректной.

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

          могу заявить что выпадение для каждого свое генератор случайных чисел считает а там как повезет т.к выбил 2 гоблин арчер карты за 4 мин из 5 гоблин арчеров а за 4 мин как ни старайся 10000 гоблинов не положеш

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

            @Spacoom:
            Линейный конгруэнтный генератор, используемый в нашем сервере, вполне достаточен для наших целей.

            Кроме того использование его на массе игроков значительно повышает его вероятностные характеристики применительно к одному игроку.

            Проще говоря, генератор может быть и не совсем случаен, но поскольку он вызывается по большому количеству событий в игре, то число для каждого конкретного случая выпадения лута выходит практически неотличимое от случайного. Или кто-то способен предсказать, когда именно вся масса игровых событий подведет генератор в определенную точку его цикла? 😉

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

              Keincross бесспорно это относится к порингам, и массе других массово истребляемых монстрах...
              но есть и значительно более редкие события, то как убивания МВП, минибоссы
              это говоря о луте!

              но почему никто не говорит о заточке... заточке брони с +7 на +8... врятли можно назвать массовой... да и +6+7 также.. и даеляется это в 1000 а то и 10000 раз меньше чем обычное выбивание лута...
              есть еще масса различных событий, то как ковка...

              и всеже предлагается хоть для таких более редких событий, изменить работу генератора увеличивающая детализированность и случайность процедуры выбора, конкретного события

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

                ZaaZy, а ты что, считаешь, будто на МОТРе для заточки один генератор используется, а для порингов другой? Не будь наивным, это та же самая функция на сервере, и ее цикл общий для порингов и точильщиков. :mrgreen: И если ты думаешь, будто способен поймать неслучайную последовательность заточек, то ты так больше не думай - за долю секунды перед твоей заточкой новис шарахнет поринга - и ты сломаешь вещь, так и не сделав ее +10, а он получит карту. :mrgreen:

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

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

                  пусть для массовых так и останется нечто вроде if x<rnd(10000) then тратата (x- вероятность)

                  а для еденичных весь "if... then..." меняется на отдельную функцию примерно описанную выше

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

                    А смысл??? Случайность в заточке и выпадении раров сейчас обеспечивается случайностью вызовов - ведь когда онлайн 3к+ игроков и каждый заставляет генератор срабатывать по 20+ раз в минуту, причем в непредсказуемые моменты времени, вот именно тогда последовательность чисел, выпадающих одному игроку, становится практически безупречно случайной. Даже будь там не линейный конгруэнтный генератор, а линейная возрастающая последовательность (например: 1,2,3,4..., 10000), все равно, вызванная в произвольные моменты времени, такая функция дала бы для одного игрока близкие к случайным результаты. 🙂

                    Так что улучшать качество случайных чисел как раз не надо - оно и так более чем достаточное. Даже не факт, что предложенная тобой схема даст лучший результат. А если и даст - какой ценой, стоит ли оно того? ИМХО, не стоит.

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

                      Keincross, 20+ в минуту это сильно 😉
                      реально например атака арчера
                      это вызов 2х рнд на саму атаку
                      +2х на фли\лакидодж

                      если атакует монстр то тоже 4+ вызовов рнд

                      если учесть количество одновременно проводимых боёв
                      +вызовы рнд для просчёта "движения" мобов
                      то получиться тысячи( десятки) вызовов рнд в СЕКУНДУ
                      т.ч. даже в случае замены рнд на 1,2,3... будет довольно сложно подобрать "счастливый" момент

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

                        Pret, во-первых, 1к это тоже 20+. 🙂 Во-вторых, число взято с запасом. В третьих, я говорил про среднее количество вызовов на игрока. Кто-то ведь просто сидит и ничего не делает. 🙂 Ну а в целом по серверу действительно будут тысячи и десятки тысяч вызовов в секунду. Именно это я и пытался объяснить и именно об этом говорил Спакум.

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