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

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

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

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

    Интересный кстати баг, скорость с которой бьет пустой посох зависит от расстояния. На макс. дистанции он бьет ощутимо медленнее чем в упор.
  2. sunrei Administrator (Администратор)

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

    Подтверждаю) Сам докопался до этого)
  3. Musicant Отец форума

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

    стрела долго летит)
  4. Корвин Его все знают

    Огромное спасибо ребят за тему!
    Вот еще кусочек с интернета
    Всё округляется вниz.
    Всё округляется в конце операции.
    ===========
    STATS
    ===========
    Обzор: 4.0 + Ловкость / 25 + Раzум /
    25
    Скорость: 12 + Ловкость / 5
    Штраф от нагруzки = 1 * (нагруzка /
    сила).
    ===========
    SPELLS
    ===========
    Раzум прибавляется к скиллу для
    всех подсчётов.
    Если скилл + раzум меньше 30 или
    больше 255, то наблюдаются баги.
    Дальность (кроме телепорта) =
    баzовая + скилл / 30.
    Для подсчёта длительности обычно
    испольzуется следующая
    переменная.
    TimeVar (скилл -> секунды):
    30 = 1.00
    40 = 1.28
    50 = 1.64
    60 = 2.09
    70 = 2.68
    80 = 3.43
    90 = 4.39
    100 = 5.63
    110 = 7.21
    120 = 9.23
    130 = 11.81
    140 = 15.12
    150 = 19.36
    160 = 24.78
    170 = 31.72
    180 = 40.60
    190 = 51.98
    200 = 66.53
    210 = 85.17
    220 = 109.03
    230 = 139.56
    240 = 178.65
    250 = 228.69
    Огненная стрела
    Ледяная стрела
    Каменная стрела
    Молния
    Мана: 3 (Молния = 10)
    Дальность: 6
    Урон min: скилл / 6
    Урон max: скилл / 3
    Огненный шар
    Мана: 30
    Дальность: 9
    Урон min: скилл / 7 * 1.6
    Урон max: скилл / 7 * 3
    Огненная стена
    Мана: 30
    Дальность: 5
    Время: 7.0 + скилл / 10
    Урон min: скилл / 30
    Урон max: скилл / 10
    Ядовитый туман
    Мана: 30
    Дальность: 5
    Время: 5 * TimeVar
    Урон: 2 + (скилл - 40) / 20
    Град
    Мана: 100
    Дальность: 9
    Время: 5.0 + скилл / 10
    Урон min: скилл / 3
    Урон max: скилл
    Радужная молния
    Мана: 80
    Дальность: 6
    Цели: 2 + (скилл - 30) / 20
    Урон min: скилл / 6
    Урон max: скилл / 2
    Невидимость
    Мана: 100
    Дальность: 4
    Время: скилл - 30
    Каменная стена
    Мана: 15
    Дальность: 5
    Время: 7.0 + скилл / 10
    Каменное проклятие
    Мана: 40
    Дальность: 4
    Время: (скилл - 30) * 0.3
    Лечение
    Мана: 5
    Дальность: 5
    Эффект min: скилл / 30 * 8
    Эффект max: скилл / 30 * 16
    Благословление
    Мана: 10
    Дальность: 4
    Время: 10 * TimeVar
    Эффект: 20 + (скилл - 30) * 0.8
    Ускорение
    Мана: 10
    Дальность: 4
    Время: 10 * TimeVar
    Эффект: 1 + (скилл - 30) / 15
    Вампириzм
    Мана: 20
    Дальность: 6
    Урон min: скилл / 7.5
    Урон max: скилл / 5
    Zов
    Мана: 100
    Уровень: 1 + (скилл - 30) / 30
    Перерождение
    Мана: 30
    Дальность: 4
    Телепорт
    Мана: 60
    Дальность: 1 + (скилл - 30) / 3
    Магический щит
    Мана: 10
    Время: 20 * TimeVar
    Эффект: скилл / 10
    Zащита от огня
    Zащита от воды
    Zащита от воzдуха
    Zащита от zемли
    Мана: 40
    Дальность: 4
    Время: 15 * TimeVar
    Эффект: (скилл - 30) / 2
    larzul нравится это.
  5. ZZYZX Мимозукс

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

    В А2 внутриигровое время исчисляется "тиками", при нормальной скорости игры в одной внешней секунде 50 тиков.
  6. ZZYZX Мимозукс

    x = (manaCost*количество_параметра) — для обычных параметров
    x = (manaCost*максимальный_урон) — для damage*
    x = (manaCost*навык_заклинания) — для castSpell, причём само заклинание тут явно не учитывается.

    Сама формула:
    ((x / 70.0)^1.5)+1.0) * x * 50.0

    Оригинал:
    Код:
    while ( v10 )
    {
      if ( *(v10 + 60) == 1 ) // "price"
      {
        *(v6 + 28) = *(v10 + 64);
        return *(v6 + 28);
      }
      v3 = sub_540941(v10); // см. ниже
      v8 += v3;
      if ( v7 )
      {
        v4 = v7;
        v7 = *v7;
        v10 = *(v4 + 8);
      }
      else
      {
        v10 = 0;
      }
    }
    *(v6 + 28) += sub_540A33(v8); // см. ещё ниже
     
    ========================================================================================================
     
    // Тут рассчёт базовой стоимости отдельного параметра
    // **(dword_6D06E4 + 0x1C * *(this + 0x3C) + 0xC) = manaCost для параметра из data.bin
    int __thiscall sub_540941(int this)
    {
      int result; // eax@2
     
      if ( *(this + 0x3C) )
      {
        if ( *(this + 0x3C) == 41 ) // "castspell"
        {
          result = **(dword_6D06E4 + 0x1C * *(this + 0x3C) + 0xC) * *(this + 0x42);
        }
        else
        {                          // это условие сработает, если параметр НЕ является одним из:
          if ( *(this + 0x3C) != 44 // "damagefire"
            && *(this + 0x3C) != 45 // "damagewater"
            && *(this + 0x3C) != 46 // "damageair"
            && *(this + 0x3C) != 47 // "damageearth"
            && *(this + 0x3C) != 48 ) // "damageastral"
            result = **(dword_6D06E4 + 0x1C * *(this + 0x3C) + 0xC) * *(this + 0x40);
          else // а вот тут "damage*" параметры
            result = **(dword_6D06E4 + 0x1C * *(this + 0x3C) + 0xC) * (*(this + 0x41) + *(this + 0x40));
        }
      }
      else
      {
        result = 0;
      }
      return result;
    }
     
    ========================================================================================================
     
    // А этим мы считаем итоговую цену
    signed __int64 __cdecl sub_540A33(signed int a1)
    {
      return (signed __int64)((pow(1.5, (double)a1 / 70.0) + 1.0) * (double)a1 * 50.0);
    }
    
    При рассчёте сначала складываются базовые цены для всех параметров, потом к ним применяется эта формула и полученное значение прибавляется к базовой цене вещи (цена_из_itemname*цена_из_материала*цена_из_класса).
  7. Корвин Его все знают

    Еще раз спасибо за тему! Я уж боялся запороть магазин... А тут все так подробно и прозрачно. Теперь инвентарь нужно будет править. Зато может кузницу сделаю чтобы заколдовывать доспехи/оружие... Конечно идея не претендует на оригинальность но что-то новое ана принесет при должном балансе.
  8. Корвин Его все знают

    Народ! А никто не знает по какой формуле успешность удара рассчитывается?
  9. Avis Аллодер

    Кто нибудь имеет описание формата файлов ресурсов (.RES)? Поделитесь пожалуйста.
    В частности интересует:
    По прочтению начального заголовка и списка элементов GRAPHICS.RES, получаю 2 типа элементов. Те, в которых адрес и размер некоего блока, имеют в сигнатуре расширение .bmp, .pkt и тд, и те, которые без расширения. Те, что без расширения, какую информацию содержат? Такое ощущение, что некий Id и счетчик.
  10. Anotomix Administrator (Администратор)

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

    Господа,

    Нужна формула для посоха с заклинанием "Кислотная Атака".

    Данке.
  11. Lett Его все знают

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

    Кислотная Атака:

    min_damage = 10 + floor(value/3)
    max_damage = 14 + floor(value * 7/15)
  12. Anotomix Administrator (Администратор)

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

    Мерси. +300 баллов тебе за помощь.
  13. Корвин Его все знают

    Короч про атаку/защиту мне никто не подскажет... Может кто формулу частоты и количества регенерации знает?
  14. Lett Его все знают

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

    про атаку защиту чтобы формулу вывести эмпирически, нужна куча статистических данных
    ясно лишь что важна их разница
    полный реген 3 минуты игровых - в движении, в покое 1 минута, у мобов - индивидуально (не как у игрока)
    в кп говорят рег выше - не пробовал
  15. Lasis Его все знают

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

    в кп рег тот же самый какой в покое
  16. allods2eu2 Его все знают

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

    АРХИМУДРО!!! Когда воин в кп-он и так "в покое"....
  17. Anotomix Administrator (Администратор)

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

    В КП это то же состояние покоя.
  18. Whiskey Green Только зарегался

    Подскажите, если кто знает, как рассчитываются резисты к магии, длительность и сила (у мага)
    Спасибо!
  19. Redeemer Map designer (Картостроитель)

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

    Чот поржал. Не проще ли было ебануть что то вроде:
    Код:
    if (*(this + 0x3C) < 44 || *(this + 0x3C) > 48)
    Зукс наркоман.

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