[MANUAL] CT1 Elemental Attribute System

Тема в разделе "Установка и настройка (Setup and configuration)", создана пользователем root, 27 сен 2014.

  1. root

    root Administrator Команда форума Administrator Moderator Developers Team

    Регистрация:
    23 авг 2014
    Сообщения:
    251
    Симпатии:
    57
    Баллы:
    11
    Attribute (атрибут)
    Всего 4 стихии - огонь(fire), вода(water), ветер(wind), земля(earth).
    Есть светлая сторона(holy) и темная сторона(dark/unholy).
    Таким образом всего существует 6 атрибутов:
    Код:
    attr_fire, attr_water, attr_wind, attr_earth, attr_holy, attr_unholy
    Каждый атрибут имеет пару - атрибут с противоположными свойствами:
    Код:
    attr_fire <-> attr_water
    attr_wind <-> attr_earth
    attr_holy <-> attr_unholy
    Ветер - атрибут элемента стихии.
    Если скилл имеет атрибут элемента стихии, то есть ветра, значит эта стихия дает бонус данному скиллу.
    Если скилл атакующий, то стихия дает бонус к атаке, то есть к дамагу, наносимому этим скиллом.
    Если скилл является баффом/дебафом, то стихия повышает шанс наложения данного бафа/дебафа на цель.
    Например attribute={attr_wind;20} дает атаке/касту увеличение значения атрибута ветра на +20.
    Цель при этом может обладать защитным атрибутом {attr_earth;6}, а может и не обладать.
    В любом случае при расчете дамага/шанса участвует разница между атакующим атрибутом нападающего и защитным атрибутом цели, то есть {attr_wind;20} - {attr_earth;6} = 14. Далее значению 14 сопоставляется модификатор/коэффицент дамага/шанса на основании определенной таблицы/формулы.
    Получаем модификатор = 1.05. Дамаг/шанс умножаем на данный модификатор - дамаг/шанс увеличивается.
    Либо наоборот: {attr_wind;20} - {attr_earth;36} = -16, что, к примеру, соответсвует модификатору 0.98.
    Дамаг/шанс умножаем на данный модификатор - дамаг/шанс уменьшается.


    Важный вопрос: каким атрибутом обладает атака/каст. Если в руках у чара нет оружия или есть оружие, не обладающее никаким атрибутом, то атака будет иметь атрибут атакующего скилла, или атака будет иметь атрибут, который получен чаром в результате действия на него бафа, повышающего определенный атрибут (для этого служат такие эффекты как, например, effect={{p_attack_attribute;attr_holy;10}}).
    Если в руках у чара оружие, обладающее некоторым атрибутом, то атака/каст будет иметь именно этот атрибут - атрибут оружия. Если на чаре висит бафф, который повышает АНАЛОГИЧНЫЙ атакующий атрибут, то значения атрибутов оружия и бафа складываются, то есть баф дает бонус к атрибуту атаки.
    Если чар кастует скиллом, который имеет АНАЛОГИЧНЫЙ атрибут attribute={}, то дамаг/шанс при касте данного скилла также будет увеличиваться за счет того что атрибут скилла будет давать бонус к атриубту оружия.
    Если атрибут оружия НЕ совпадает с атрибутом атакующего скилла или эффектом бафа, повыщающим атакующий атрибут, то атрибуты скилла/бафа НЕ БУДУТ давать бонус к атаке/касту с данным оружием, а при расчете дамага/шанса будет учитываться только атрибут оружия.

    Trait (признак)
    Traits(трейты) - это бывшие с4-атрибуты - их работа не изменилась
    Типы трейтов:
    Код:
    // weapon traits
    TRAIT_SWORD	1
    TRAIT_BLUNT	2
    ...
    // magical skill traits
    TRAIT_POISON	21
    TRAIT_HOLD	22
    ...
    // physical skill traits
    TRAIT_BLEED	29
    TRAIT_SHOCK	30
    ...
    // enemy traits
    TRAIT_NPC_FIRST	33
    TRAIT_BUG_WEAKNESS	34
    ...
    У трейтов есть одна характристика - он либо есть, либо его нет. Любая атака физ или маг носит ПРИЗНАК/ТРЕЙТ.
    Если в руках у чара dagger, то нанося удар (физ или маг - неважно), удар уже обладает ПРИЗНАКОМ trait_dagger.
    Если удар наносится скиллом и у скилла прописан параметр trait={trait_poison}, то такое заклинание(Cast) обладает ПРИЗНАКОМ trait_poison. Для ЗАЩИТЫ от таких атак (атак, обладающих ПРИЗНАКОМ) служат скилл-эффекты, которые повышают защиту от атак с указанным ПРИЗНАКОМ - p_defence_trait.
    Параметр, прописанный в таком эффекте, указывает НА СКОЛЬКО ПРОЦЕНТОВ увеличится/уменьшится защита к скиллу с указанным ПРИЗНАКОМ - то есть это ни что иное как устойчивость(Resist) или уязвимость(Weakness) к определенным скиллам.
    Например, значение параметра +30, говорит о том, что защита к скиллу с данным ПРИЗНАКОМ повышается на 30%, что в сервере реализуется как модификатор/коэффициент дамага = (100 - 30)/100 = 0.7.
    Дамаг умножается на этот модификатор (0.7) и соосно уменьшается.
    Аналогично с уязвимостью - прописав в значение параметра -30, получаем уменьшение защиты на 30%, коэффициент (100+30)/100 = 1.3 , и дамаг умножается на 1.3 - то есть увеличивается.
    Код:
    effect = {{p_defence_trait;trait_poison;30}} - дает +30% (+30 ПРОЦЕНТОВ) защиты к скиллу с ПРИЗНАКОМ trat_poison
    effect = {{p_defence_attribute;attr_fire;30}}	- дает +30 к ЗНАЧЕНИЮ защитного атрибута
    
    
    attribute = {attr_holy;20} - это свойство САМОГО СКИЛЛА - участвует при расчете дамага от скилла или расчете шанса наложения бафа/дебафа
    effect = {{p_attack_attribute;attr_holy;10}} - это эффект от скилла - висит на чаре/НПЦ и дает ЧАРУ/НПЦ бонусы, а не скиллу.
    Расчет модификатора дамага от атрибута или модификатора шанса наложения бафа/дебафа считается от разницы значений атрибутов на атакующем и цели.
    Расчет модификатора дамага оттрейта считается простым умножением модификтара атакующего трейта на атакующем на модификатор защитного трейта цели.
    Все это слилось в ОДНУ формулу - влияние атрибутов и трейтов происходит одновременно.


    Если вещь/скилл имеют атрибут, то любая атака такой вещью/скиллом имеет их атрибут.
    Дополнительно к этому атака с оружием в руках ПРОДОЛЖАЕТ иметь ПРИЗНАК этого оружия, например trait_dagger,
    и если на жертве висит баф, повышающий защиту от атак даггером, то баф будет работат - понижать дамаг.