Физика и механика А2

Тема в разделе 'ALLODS2.EU: Общий', создана пользователем Lett, 25 окт 2013.

  1. Lett Его все знают

    Форумные баллы:
    0

    Существует для героев-3 такая фанатская разработка, называется физика героев, где описываются все формулы и внутриигровые закономерности.
    Помню у меня была подобная идея для А2, описать все формулы, механики и зависимости.
    Несколько часов убил на вывод зависимости здоровья воина от силы, так и смог. В итоге нашел свою старую тетрадку с выкладками. Эх, вот я поглупел со времен универа =(
    В общем механико-тред будет тут.

    Расчет здоровья для воина с 0 опыта:

    HP = 2*S + (S/50)*(1.1^S)

    где S - сила, ^ - знак степени, * - знак умножения, дробная часть отбрасывается


    Принципы набора опыта для навыка:

    1. Опыт хранится независимо для каждого навыка, в инфоокне показывается суммарный опыт для всех навыков.

    2. Для повышения навыка с 0 до 1 необходимо 100 опыта, для повышения с 1 до 2 требуется на 10% больше, т.е. 110 опыта. Для повышения с 2 до 3 требуется еще на 10% больше (уже от 110), т.е. 121 опыта.

    3. Итого для повышения с навыка N до N+1 ( к примеру с 84 до 85) требуется 100*(1.1^N) опыта (соотвественно 299906 опыта нужно с 84 на 85).

    4. Для вычисления конечного результата воспользуемся формулой суммы для геометрической прогрессии, в итоге чтобы поднять навык с нуля до N нужно:

    EXP = 1000*(1.1^N - 1)

    в итоге чтобы поднять навык с 0 до 100 нужно 13 779 612 опыта, а для всех пяти навыков 13 779 612 * 5 = 68 898 060 опыта
    Корвин, larzul, Neo и 3 другим нравится это.
  2. Redeemer Map designer (Картостроитель)

    Форумные баллы:
    0

    Теперь и для аллодов 2 тоже существует)))))
    ОМГ) Еще и целая тетрадка. Но все равно молодец.:)

    ЗЫ: Кто только чем не занимается. Я стихи стебные пишу, Тангар вон ваще 8 часов воякой на брюхе ползает, а тут еще и матан)))
  3. Lett Его все знают

    Форумные баллы:
    0

    прибавка здоровья от опыта тоже происходит определенными частями, и зависит от силы

    прибавка = (1.1^S)/100 + 1

    т.е. к примеру при силе 40 в процессе кача здоровье будет прибавляться по 1.453 хп
    здоровье прибавляется в инфоокне при повышении навыка (не всегда), но зависит не от навыков а от опыта каким-то очень неочевидным способом
    прибавка навыка "обновляет" инфоокно, но также возможно изменение хп при перезаходе, т.е. здоровье прибавилось но оно обновится при перезаходе или повышении навыка
    к примеру при опыте 49900 к здоровью прибавляется 50 прибавок (72 хп при силе 40), а при опыте 596200 - сто прибавок (145 хп при силе сорок)
    осталось понять закономерность ))
    Корвин, larzul и romera нравится это.
  4. Lett Его все знают

    Форумные баллы:
    0

    итак, как я и писал, прибавка от опыта происходит частями
    при расчетах следует учесть "невидимую часть хп в инфоокне"
    Поясню немного. Допустим при силе 56 и опыте 0 мы видим в инфоокне что у нас 344 хп. Прибавка согласно расчетам для силы 56 равна примерно 3.08 хп. Когда же у нас увеличится опыт вместо ожидаемых 347 хп мы видим 348. Откуда же они взялись? Дело в том что по формуле силы у нас не 344, а 344,92.. хп, т.е. мы просто не видим дробную часть. Поэтому с прибавкой у нас будет 348,0.. хп, т.е. как раз то что мы и увидим. Поэтому при расчетах не стоит сразу пренебрегать частью после запятой, хоть ее и не видно.
    Прибавка хп (и маны) происходит при значениях опыта 245, 500, 769, 1050 и т.д. Т.е. хп у нас растет дискретно, а не непрерывно.
    Эти числа выходят из такой формулы:

    EXP = 5000 * ( 1.1^(delta/2) - 1)

    где EXP - опыт, delta - количество прибавок (т.е. мы можем вычислить сколько нужно опыта чтобы получить сколько-то прибавок)
    Т.е. чтобы получить сто прибавок к примеру, нам нужно подставить 100 вместо delta в формулу, и получим опыт который нужно набрать/превысить. Если EXP равно например 2320.5, то прибавки мы получим только когда у нас будет 2321 экспы, а не 2320. Округлять тут наверх.

    Как же узнать сколько прибавок мы получим, имея сколько-то опыта? Нужно выполнить обратную процедуру и взять логарифм по основанию 1.1 Но поскольку на виндовом калькуляторе нет такой функции, вспомним из курса алгебры о том что мы его можем вычислить через натуральный (ln) или десятичный (как раз кнопка log на калькуляторе)


    delta = 2 * ln ( EXP/5000 + 1) / ln 1.1

    где ln - натуральный или десятичный логарифм

    Приведу пример расчета. Имеем воина, сила 52, опыт 5л ровно.
    Базовое хп из формулы в первом посте равно примерно 251.72. Еденичная прибавка из формулы в предыдущем посте для силы 52 примерно равна 2.4204 хп. Осталось выяснить сколько полных прибавок мы получим за 5л опыта:

    Делим 5л на 5000 и прибавляем 1, получаем число 1001. Берем его логарифм, и делим на логарифм от 1.1 Полученное число теперь умножаем на два. В итоге получаем:
    144.9741..
    В итоге мы имеем 144 полных прибавки (но 145-я уже близко :)), что нам дает
    144 * 2.4204 = 348.53 добавочных хп. Прибавим 251.72 базовых хп, и получим примерно 600.25 хп. В итоге в игре будет показано что у нас 600 хп.

    Да, все вышенаписанное расчитано для воина, для мага пока не тестировал.
    Корвин, larzul и Redeemer нравится это.
  5. Lett Его все знают

    Форумные баллы:
    0

    С магом все просто. Хп равно половине от воинского при тех же условиях. Количество маны для мага расчитывается аналогично хп для воина, только вместо силы в формулах дух.
    Корвин и larzul нравится это.
  6. Lett Его все знают

    Форумные баллы:
    0

    Немного о магии.
    Работая с редактором вы могли заметить что у заклинаний на вещах и триггерах есть spellpower (sp). Это есть непосредственно сила заклинания.
    Многие заклинания довольно просто расчитываются исходя из этого значения. Приведу некоторые и них:
    Стрела магии:
    max dmg = 10 + sp/3
    min dmg = max / 2
    Телепорт: дистанция = 1 + sp / 3
    Невидимость: длительность = sp
    Стена огня:
    max dmg = 3 + sp/10
    min dmg = max/3
    длит. = 10.0 + sp/10
    Каменная стена: длит. = 10.0 + sp/10
    если к примеру длительность огн. стены 14.3, то будет нанесен урон 14 раз, т.е. она наносит урон каждую игровую секунду.
    Чему же равна SP мага? Формула очень простая
    SP = навык + разум - 30
    как видим это наш навык + разум сверх 30-ти
    Наблюдаются интересные глюки отображения, к примеру с разумом 29 и навыком 0 (SP = -1) в книге заклинаний будут показаны значения для силы закл. 255 (т.е. невид 255 сек, значения урона стрел бешеные), но кастоваться все равно будет минимальное значение.
    Особняком стоит каменное проклятие, так как у мага его значение вдвое выше чем на вещах.
    Длительность КП = 0.15 * SP, т.е. 7.5 сек для силы 50, 15 сек для силы 100 и т.д.
    А у мага соответственно 15 сек, 30 сек и т.д., для мага длит КП = 0.3 * SP
    Сделано это скорее всего в целях баланса, так как маг кастует примерно вдвое медленнее чем бьет копье к примеру. Магазинное копье с КП 30.0 держало бы крепко =)
    Сила заклинаний мобов прописана в ресурсах, а точнее там прописаны значения навыка в сфере магии. К примеру для гарпий и драконов 3 и 4 левелов навыки равны 80 и 100 соответственно. А у некроманта 3-го левела навыки по 60.
    Стоит учитывать что для монстров также действует бонус от разума, т.е. у 4-го дракона с разумом 99 и навыком 100 сила заклинания будет равна 169.
    Корвин, larzul и Redeemer нравится это.
  7. Lett Его все знают

    Форумные баллы:
    0

    Опыт в таверне.
    Долгое время бытовало мнение что опыт, получаемый в трактире за квест зависит от разума. Но в результате тестов я пришел к выводу что это не так. Опыта дается 0,475 от того числа которое написано. Причем он идет преимущественно на основные навыки (астрал/стрельба и основа), по восемь частей на основные и по одной на другие.
    Если выразиться иначе, то он распределяется следующим образом:

    20% опыта от того что написано в трактире идет на основной навык
    20% идет в астрал/стрельбу
    по 2.5% прибавляется к обычным навыкам
    итого получаем 47.5% от того, что обещают в трактире
    если навык максимален (равен 100), опыт за него просто пропадает

    т.е. если в трактире дают 1 лям экспы, то в обычные навыки попадет по 25к, в основные по 200к опыта.

    Нуление.
    При нулении опыт снимается по 10% с каждого навыка. Т.е. если у вас к примеру в воздух вложено 100к, а в землю 500к, то снимут 10к с воздуха и 50к с земли.
    larzul и Redeemer нравится это.
  8. Anotomix Administrator (Администратор)

    Форумные баллы:
    10098414359

    Ну норм, а я пишу кучу всякого полезного для администрирования, в том числе и аук для а2.

    Ну например веб чарэдитор:
    charedit.png manage.png
    Frost031 нравится это.
  9. Anotomix Administrator (Администратор)

    Форумные баллы:
    10098414359

    PHP:
    function CalculateExp($skill) {
            return 
    intval((pow(1.1$skill) - 1.0) * 1000.0);
    }
  10. Lett Его все знают

    Форумные баллы:
    0

    ты не то процитировал))
    то что ты привел, написано в первом посте
    а то что ты процитировал - значения опыта при которых растет хп и мана, если delta проходит значения 1,2,3... и т.д.
  11. Anotomix Administrator (Администратор)

    Форумные баллы:
    10098414359

    Да, бегло прочёл, а слона и не заметил.
  12. Lett Его все знают

    Форумные баллы:
    0

    Немного о наборе опыта.

    Для каждого моба в ресурсах прописан определенный показатель - экспириэнс. Чтобы узнать это число необязательно лезть в ресурсы,

    он равен той сумме денег что появляется в инвентаре после убийства моба

    Как известно получаемый опыт зависит от разума. А точнее от разума зависит множитель, на который будет умножаться экспириэнс моба. Он равен:

    множитель = 0.125 + разум/60

    Когда мы нанесем мобу урон, равный количеству его хп, мы получим "экспириэнс * множитель" опыта. А конкретнее через урон формула будет такой:

    exp = (0.125 + mind/60) * EXP * ( dmg / mobHP ) + 2

    где mind - разум; dmg - урон, который мы нанесли ударом; mobHP - здоровье моба; EXP - экспириенс моба; exp - опыт, который мы получим за удар.

    Плюс два в конце - своего рода "прибавка за удар", это как у мага просто за каст дается опыт.

    Особое значение имеет последний "смертельный" удар, опыт за который не начисляется согласно формуле, а примерно равен

    exp_death < (0.125 + mind/60) * EXP

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

    Все вышенаписанное справедливо для воина, бьющего основным навыком.

    Для второстепенного навыка опыт меньше в 8 раз, а "прибавка за удар" равна 1:

    exp = (0.125 + mind/60) * EXP * ( dmg / mobHP ) / 8+ 1

    Опыт за "смертельный удар" в случае второстепенного навыка также в 8 раз меньше.

    Чтобы понять что такое "смертельный удар", разберем небольшой пример.
    Мы бьем в благе людоеда 1-го уровня, наш урон по нему к примеру 60. Его здоровье равно 200. В итоге наш четвертый удар будет смертельным. Мы получим за нанесенные тремя ударами 180 урона опыт, расчитываемый из первой формулы, а за четвертый "смертельный" удар получим опыт из второй формулы. Соответственно за 20 урона которые мы нанесли последним ударом опыт не получаем. Так что если мы убиваем людоеда с одного удара (к примеру в фуле с78), мы получаем только опыт за "смертельный удар", т.е. меньше чем если бы мы его били меньшим уроном.

    Опыт за один удар не может превышать значения, равного

    exp_max_hit = 20 * 1.1^N

    где N - навык, которым мы бьем
    Т.е. если наш навык низок, к примеру 10, неважно бьем мы тролля 2-го, либо 4-го уровня, максимум с удара будем получать 51 экспы. Сделано видимо для того чтобы навык рос не быстрее чем за 5 ударов.
    larzul, Корвин и Redeemer нравится это.
  13. Lett Его все знают

    Форумные баллы:
    0

    Небольшое уточнение. Я не знаю как это работает на хэте, но в сетевой на отдельно взятой карте "смертельный опыт" равен значению по этой формуле за убийство первых 2-х мобов определенного вида (к примеру убийство 2-х любых троллей второго уровня), а потом закономерно падает по мене роста убийств определенного моба, за четвертого тролля 2-го уровня уже 5/6 от значения из формулы, за седьмого - 4/6, за 12-го 3/6 и проч. Причем не обязательно подряд бить троллей, можно пойти побить белок, или сделать квест, но за следующих троллей-2 опыт (имеется в виду только "смертельный опыт", - за факт убийства) все равно будет все меньше и меньше.
    larzul нравится это.
  14. Саныч Человек оркестр

    Форумные баллы:
    10

    Чувак, отсыпь мне немножко? Хотя бы для того, что бы я понял.
  15. Lett Его все знают

    Форумные баллы:
    0

    Опыт за квесты в таверне:

    За квест "убить N экз. такого-то монстра":

    exp = N * EXP, где EXP -опыт за монстра (см. предыдущие сообщения)

    Убить группу врагов:

    exp = 5*EXP, где EXP - опыт за самого сильного монстра в группе

    Иначе говоря, мы получаем пятикратно за самого "жирного" моба в группе, вне зависимости сколько в группе мобов и каких

    Перехватить группу - то же самое что и в предыдущем случае, только шестикратно:

    exp = 6*EXP

    Квест "убить врага"(одного конкретного): exp = 2 * EXP

    Значения опыта округляются кратно 250, т.е. 1 041 864 округлится до 1 041 750.
    larzul нравится это.
  16. Lett Его все знают

    Форумные баллы:
    0

    Значения экспы с моба (EXP в формулах) хоть и прописано в ресурсах, но закономерно повышается при повышении уровня моба в 5,25 за уровень. Это актуально для уровней 1-4. На 5м уровне EXP выше четвертого всего лишь вдвое. Мне лень проверять это правило для всех абсолютно мобов, но для тех что я посмотрел (популярных) оно верно. Исключение например - некроманты. Их опыт растет в 6,7 раз за уровень

    Приведу значения экспы за некоторых популярных мобов для 1-го уровня:
    ---------------
    белка - 36
    черепашка - 96
    Орк мечник - 300
    Орк лучник - 420 (странно, всегда думал что за мечника больше дают)
    зомби - 240
    зомби стреляющий - 300
    скел - 330
    скел с луком - 360
    Людоед - 1200
    Тролль - 1800
    Дракон - 5400
    ---------------
    некр - 300
    некр лидер - 450
    ---------------

    К примеру опыт за тролля 4-го уровня будет 1800*5.25*5.25*5.25 = 260466 (округляется вверх), за 5-го еще вдвое: 520932.

    а за некро лидера 4-го лвла 450*6.7*6.7*6.7 = 135343.
    lasertable и larzul нравится это.
  17. romera Захожу на форум

    Да не, ребята, что непонятно то? Это же не сопромат даже ) По теме - приятно видеть инициативу, при том что так развернуто ещё никто пробовал сделать. (Хотя попытки были, помню). Готов выделить фул эвила для продолжения исследований. А администрации можно тоже проявить инициативу и выделить топикстартеру пару фулов-топов на мага и война.
    P.S. Найдите ещё хотя бы пару таких тем со смыслом, а не бред - которого 99% )))
  18. Юрок Человек оркестр

    Форумные баллы:
    0

    назовите мне хоть один пример применения этих знаний в игре, для среднестатистического аллодыря...
    Доводы нубов: "теперь мы знаем на ком и как лучше качаться не в счет"
  19. romera Захожу на форум

    Как бы никто и никого не заставляет применять что либо в игре )

    Электричеством среднестатистический обыватель тоже пользуется - не задумываясь о законе Ома )))

    P.S. Кому знания не нужны это их проблемы...

    P.P.S. Деградация - путь к вымиранию вида. У меня уже даже на работе коллеги с двумя вышками так же рассуждают - если они не могут применить знания на практике - то такие знания - по их мнению - не нужны _) Может проблема всё же не в знаниях...
  20. Юрок Человек оркестр

    Форумные баллы:
    0

    С таким настроем вам теорему Ферма надо второй раз доказывать:Oo:

Поделиться этой страницей