Combat System — различия между версиями
Материал из Wiki
Wikibot (обсуждение | вклад) (→Расчет урона оружия) |
Wikibot (обсуждение | вклад) |
||
Строка 1: | Строка 1: | ||
== Расчет урона оружия == | == Расчет урона оружия == | ||
+ | <pre> | ||
+ | dam = {<weapon.dam.min> <weapon.dam.max>} //базовый урон оружия случайное число от мин до макс (до удара) | ||
− | + | dam = ((<dam> * <weapon.repair>) / <weapon.max_repair>) //понижение урона от повреждения оружия | |
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
+ | dam = (<dam> * (<tactics> + 500)) / 1000) //бонус от тактики (помним что все навыки считаются как 100.0 или 1000) | ||
− | + | dam = (<dam> + ((<dam> * <str>) / 500)) //бонус от силы | |
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
+ | dam = (<dam> + ((<dam> * <anatomy>) / 5000)) //бонус от анатомии | ||
+ | |||
+ | dam = ((<dam> * (100 + (<skill> / 10))) / 200) //бонус от боевого навыка | ||
+ | |||
+ | |||
+ | //расчет бонуса от магии или цвета оружия (см.таблицу цветов) | ||
+ | if <weapon.damage_plus> | ||
+ | dam = (<dam> + <weapon.damage_plus>) | ||
+ | elseif (<weapon.magic>) | ||
+ | dam = (<dam> + ((((<weapon.magic> / 70) + 1) * 5) / 2)) | ||
+ | endif | ||
Строка 38: | Строка 26: | ||
dam = <dam> * 2/3 | dam = <dam> * 2/3 | ||
endif | endif | ||
+ | </pre> | ||
− | + | - Часть формул может быть скрыта или представлена не в том виде, в котором она существует на данный момент. Это сделано ввиду существующих коллизий. Их список возможно будет представлен позже. | |
− | + | ||
+ | |||
+ | === Таблица цветов === | ||
+ | |||
+ | <pre> | ||
+ | weapon/armor magic plus: | ||
+ | of Ruin +5 | ||
+ | of Might +10 | ||
+ | of Force +15 | ||
+ | of Power +20 | ||
+ | of Vanquishing +25 | ||
+ | </pre> | ||
+ | <pre> | ||
+ | weapon/armor damage plus: | ||
+ | Hot/Rose +0 | ||
+ | Agapite +5 | ||
+ | Flame/Gold +5 | ||
+ | Orion +5 | ||
+ | Verite +5 | ||
+ | Dwarf + 10 | ||
+ | Shadow +10 | ||
+ | Valorite +15 | ||
+ | Holy/Silver +15 | ||
+ | Crystal +15 | ||
+ | Infernal/Magma +20 | ||
+ | Obsidian +25 | ||
+ | Mythic +25 | ||
+ | </pre> | ||
+ | |||
+ | <pre> | ||
+ | Titan Leather +5 | ||
+ | Daemon Leather +10 | ||
+ | Red Leather +5 | ||
+ | Blue Leather +20 | ||
+ | Green Leather +20 | ||
+ | Yellow Leather +20 | ||
+ | Gray Leather +15 | ||
+ | Gold Leather +20 | ||
+ | Silver Leather +20 | ||
+ | Crystal Leather +20 | ||
+ | Black Leather +20 | ||
+ | </pre> | ||
+ | |||
+ | <pre> | ||
+ | dragon_increase: armor.magic = ((<str> + 15) * 10) | ||
+ | titan_increase: armor.magic = ((<str> + 15) * 10) | ||
+ | chrome_increase: armor.magic = ((<str> + 15) * 10) | ||
+ | platinum_increase: armor.magic = ((<str> + 15) * 10) | ||
+ | |||
+ | |||
+ | i_dragon_claw: weapon.magic = ((<swordsmanship> * 2) / 3) | ||
+ | i_titan_fist: weapon.magic = ((<macefighting> * 2) / 3) | ||
+ | i_chrome_lance: weapon.magic = ((<fencing> * 2) / 3) | ||
+ | i_platinum_broadsword: weapon.magic = ((<swordsmanship> * 2) / 3) | ||
+ | </pre> | ||
+ | |||
+ | |||
+ | === Расчет защиты === | ||
+ | |||
+ | |||
+ | <pre> | ||
+ | //выбор слоя для защиты | ||
+ | |||
+ | armor_base = //базовая защита в зависимости от типа доспехов | ||
+ | |||
+ | dfns = (<armor_base> * LAYER_[]_AC_K) / 1000 //коэффициент защиты конкретного слоя | ||
+ | |||
+ | dfns = (<dfns> * <armor.more1l>) / <armor.more1h> //понижение защиты от повреждения доспеха | ||
+ | |||
+ | //расчет бонуса от магии или цвета доспеха (см.таблицу цветов) | ||
+ | |||
+ | if <armor.armor_plus> | ||
+ | dfns = <dfns> + <armor.armor_plus> | ||
+ | elseif (<armor.attr> & attr_magic) | ||
+ | dfns = <dfns> + (<armor.magic> / 70) | ||
+ | endif | ||
+ | |||
+ | |||
+ | //Бонус защиты от магических и алхимических эффектов | ||
+ | spell_effect = 1 | ||
+ | potion_effect = 1 | ||
+ | |||
+ | dfns = <dfns> + <p_layer_i.armor_bonus> //повышение защиты от бонуса слоев, непосредственно не участвующих в защите (квестовые предметы) | ||
+ | </pre> | ||
+ | |||
+ | |||
+ | |||
+ | === Расчет парирования === | ||
+ | |||
+ | <pre> | ||
+ | shield_size = //коэффициент размера щита | ||
+ | |||
+ | if (rand(75) < <shield_size>) //удача на абсорбацию урона щитом, если успех, то рассчитывает далее. | ||
+ | |||
+ | |||
+ | //расчет бонуса от магии или цвета щита (см.таблицу цветов) | ||
+ | if <shield.shield_plus> | ||
+ | absorbed = <absorbed> + <shield.shield_plus> + 9 | ||
+ | elseif (<shield.attr> & attr_magic) | ||
+ | absorbed = <absorbed > + (<shield.magic> / 70) + 9> | ||
+ | endif | ||
+ | absorbed = (<shield_size> * <absorbed>) / 100 | ||
+ | absorbed = (<absorbed > * (100 + (<parrying> / 10))) / 200 | ||
+ | absorbed = <absorbed> * <shield.repair> / <shield.max_repair> //понижение поглощения в зависимости от повреждения щита | ||
+ | </pre> |
Версия 22:01, 24 января 2024
Расчет урона оружия
dam = {<weapon.dam.min> <weapon.dam.max>} //базовый урон оружия случайное число от мин до макс (до удара) dam = ((<dam> * <weapon.repair>) / <weapon.max_repair>) //понижение урона от повреждения оружия dam = (<dam> * (<tactics> + 500)) / 1000) //бонус от тактики (помним что все навыки считаются как 100.0 или 1000) dam = (<dam> + ((<dam> * <str>) / 500)) //бонус от силы dam = (<dam> + ((<dam> * <anatomy>) / 5000)) //бонус от анатомии dam = ((<dam> * (100 + (<skill> / 10))) / 200) //бонус от боевого навыка //расчет бонуса от магии или цвета оружия (см.таблицу цветов) if <weapon.damage_plus> dam = (<dam> + <weapon.damage_plus>) elseif (<weapon.magic>) dam = (<dam> + ((((<weapon.magic> / 70) + 1) * 5) / 2)) endif if (<weapon.дистанционное>) && (<distance> <= 1) && НЕТ great_elven_archer //бонус от кольца при стрельбе вплотную dam = <dam> * 2/3 endif
- Часть формул может быть скрыта или представлена не в том виде, в котором она существует на данный момент. Это сделано ввиду существующих коллизий. Их список возможно будет представлен позже.
Таблица цветов
weapon/armor magic plus: of Ruin +5 of Might +10 of Force +15 of Power +20 of Vanquishing +25
weapon/armor damage plus: Hot/Rose +0 Agapite +5 Flame/Gold +5 Orion +5 Verite +5 Dwarf + 10 Shadow +10 Valorite +15 Holy/Silver +15 Crystal +15 Infernal/Magma +20 Obsidian +25 Mythic +25
Titan Leather +5 Daemon Leather +10 Red Leather +5 Blue Leather +20 Green Leather +20 Yellow Leather +20 Gray Leather +15 Gold Leather +20 Silver Leather +20 Crystal Leather +20 Black Leather +20
dragon_increase: armor.magic = ((<str> + 15) * 10) titan_increase: armor.magic = ((<str> + 15) * 10) chrome_increase: armor.magic = ((<str> + 15) * 10) platinum_increase: armor.magic = ((<str> + 15) * 10) i_dragon_claw: weapon.magic = ((<swordsmanship> * 2) / 3) i_titan_fist: weapon.magic = ((<macefighting> * 2) / 3) i_chrome_lance: weapon.magic = ((<fencing> * 2) / 3) i_platinum_broadsword: weapon.magic = ((<swordsmanship> * 2) / 3)
Расчет защиты
//выбор слоя для защиты armor_base = //базовая защита в зависимости от типа доспехов dfns = (<armor_base> * LAYER_[]_AC_K) / 1000 //коэффициент защиты конкретного слоя dfns = (<dfns> * <armor.more1l>) / <armor.more1h> //понижение защиты от повреждения доспеха //расчет бонуса от магии или цвета доспеха (см.таблицу цветов) if <armor.armor_plus> dfns = <dfns> + <armor.armor_plus> elseif (<armor.attr> & attr_magic) dfns = <dfns> + (<armor.magic> / 70) endif //Бонус защиты от магических и алхимических эффектов spell_effect = 1 potion_effect = 1 dfns = <dfns> + <p_layer_i.armor_bonus> //повышение защиты от бонуса слоев, непосредственно не участвующих в защите (квестовые предметы)
Расчет парирования
shield_size = //коэффициент размера щита if (rand(75) < <shield_size>) //удача на абсорбацию урона щитом, если успех, то рассчитывает далее. //расчет бонуса от магии или цвета щита (см.таблицу цветов) if <shield.shield_plus> absorbed = <absorbed> + <shield.shield_plus> + 9 elseif (<shield.attr> & attr_magic) absorbed = <absorbed > + (<shield.magic> / 70) + 9> endif absorbed = (<shield_size> * <absorbed>) / 100 absorbed = (<absorbed > * (100 + (<parrying> / 10))) / 200 absorbed = <absorbed> * <shield.repair> / <shield.max_repair> //понижение поглощения в зависимости от повреждения щита