- Joined
- Apr 8, 2011
- Messages
- 108
JASS:
library Utils requires Main
enum (CLASS) { PALADIN, GLADIATOR, ASSASSIN, HEALER, MAGE }
enum (ATTACK_STATUS) { NORMAL_HIT, CRITICAL_HIT, EVADED, PARRIED, BLOCKED, RESISTED, CRIT_BLOCKED, CRIT_PARRIED }
enum (ELEMENTS) { ASD, DARKNESS, HOLY, WIND, EARTH, AQUA, FIRE, NATURE, BLOOD }
enum (STATES) { ABC, STUNING, POISONING, ROOTING, SLEEPING, PARALYZING, FEARING }
enum (STATES_RESIST) { NANAM, STUN, BLEED, POISON, ROOT, SLEEP, PARALYZE, MISCL }
enum (WEAPONS) { FIST, BOW, BLUNT, GREATBLUNT, SWORD, GREATSWORD, AXE, GREATAXE, DAGGER, STAFF, POLE, ANY }
enum (PARTS) { ASMDAM, CHEST, SHOULDERS, HANDS, HEAD, LEGS }
enum (ARMORS) { LIGHT_TYPE, HEAVY_TYPE, ROBE_TYPE }
enum (SILENCES) { ASANA, PHYSICAL_SILENCE, MAGICAL_SILENCE, BOTH_SILENCE }
enum (DAMAGE_TYPES) { ADAM, PHYSICAL, MAGICAL, UNIQUE }
enum (ITEMS_RANK) { NORANK_ITEM, LOWRANK_ITEM, COMMON_ITEM, MAGIC_ITEM, RARE_ITEM, SET_ITEM, UNIQUE_ITEM }
enum (WEAPON_SOUNDS) { SWORD_EQUIP, SWORD_FIRE, SWORD_SOULDRINKER, DAGGER_EQUIP, DAGGER_ASHES, DAGGER_LIGHTNING, DAGGER_POISONED, DAGGER_POLAR, STAFF_EQUIP, STAFF_FIRE, STAFF_MANADRINKER, BOW_EQUIP, BOW_EXPLOSIVE, BOW_MASS, BOW_POISONED, BOW_POLAR }
define {
min100_Size = 1
min90_Size = 2
min80_Size = 3
min70_Size = 4
min60_Size = 5
min50_Size = 6
min40_Size = 7
min30_Size = 8
min20_Size = 9
min10_Size = 10
pls10_Size = 11
pls20_Size = 12
pls30_Size = 13
pls40_Size = 14
pls50_Size = 15
pls60_Size = 16
pls70_Size = 17
pls80_Size = 18
pls90_Size = 19
pls100_Size = 20
// values
// straight
PHYSICAL_DEFENCE_SITUATIONAL_TYPE_1 = 5
PHYSICAL_DEFENCE_SITUATIONAL_TYPE_2 = 6
PHYSICAL_ATTACK_TYPE_2 = 7
PHYSICAL_DEFENCE_TYPE_2 = 8
PHYSICAL_CRITICAL_CHANCE_TYPE_2 = 13
PHYSICAL_CRITICAL_MULT_TYPE_2 = 14
PHYSICAL_CRITICAL_DAMAGE_RESIST = 15
MAGICAL_ATTACK_TYPE_2 = 16
MAGICAL_SUPPRESSION_TYPE_2 = 17
MAGICAL_RESIST_TYPE_2 = 18
MAGICAL_CRITICAL_CHANCE_TYPE_2 = 19
MAGICAL_CRITICAL_MULT_TYPE_2 = 20
MAGICAL_CRITICAL_DAMAGE_RESIST = 21
MAGICAL_ACCURACY_TYPE_2 = 22
ACCURACY_TYPE_2 = 23
EVADE_TYPE_2 = 24
PARRY_TYPE_2 = 25
BLOCK_TYPE_2 = 26
HP_TYPE_2 = 27
MP_TYPE_2 = 28
SPEED_TYPE_2 = 29
HEAL_RATE_TYPE_2 = 49
VAMPIRIC_DAMAGE_TYPE_2 = 50
// percents
PHYSICAL_ATTACK_TYPE_1 = 31
PHYSICAL_DEFENCE_TYPE_1 = 32
MAGICAL_ATTACK_TYPE_1 = 37
MAGICAL_SUPPRESSION_TYPE_1 = 38
MAGICAL_RESIST_TYPE_1 = 39
MAGICAL_ACCURACY_TYPE_1 = 40
ACCURACY_TYPE_1 = 41
EVADE_TYPE_1 = 42
PARRY_TYPE_1 = 43
BLOCK_TYPE_1 = 44
HP_TYPE_1 = 45
MP_TYPE_1 = 46
SPEED_TYPE_1 = 47
ATTACK_SPEED_TYPE_1 = 48
// resists
STUN_RESIST = 51
BLEED_RESIST = 52
POISON_RESIST = 53
ROOT_RESIST = 54
SLEEP_RESIST = 55
PARALYZE_RESIST = 56
MISC_RESIST = 57
FIRE_RESIST = 58
AQUA_RESIST = 59
WIND_RESIST = 60
EARTH_RESIST = 61
HOLY_RESIST = 62
DARKNESS_RESIST = 63
NATURE_RESIST = 64
BLOOD_RESIST = 65
FIRE_BONUS = 66
AQUA_BONUS = 67
WIND_BONUS = 68
EARTH_BONUS = 69
HOLY_BONUS = 70
DARKNESS_BONUS = 71
NATURE_BONUS = 72
BLOOD_BONUS = 73
// base
STR_BONUS = 74
STD_BONUS = 75
RCT_BONUS = 76
DEX_BONUS = 77
INT_BONUS = 78
WIL_BONUS = 79
// reflect amounts
PHYSICAL_REFLECT_AMOUNT = 80
PHYSICAL_REFLECT_CHANCE = 81
PHYSICAL_BUFFS_REFLECT_CHANCE = 82
MAGICAL_REFLECT_AMOUNT = 83
MAGICAL_REFLECT_CHANCE = 84
MAGICAL_BUFFS_REFLECT_CHANCE = 85
// weapon resists
BOW_RESIST = 86
BLUNT_RESIST = 90
GREATBLUNT_RESIST = 91
SWORD_RESIST = 92
GREATSWORD_RESIST = 93
AXE_RESIST = 94
GREATAXE_RESIST = 95
DAGGER_RESIST = 96
STAFF_RESIST = 97
POLE_RESIST = 98
ADD_HP = 102
ADD_MP = 103
FRONT_DAMAGE_BONUS = 104
SIDE_DAMAGE_BONUS = 105
BACK_DAMAGE_BONUS = 106
SILENT = 107
STEALTHINESS = 108
BLINDNESS = 109
FIRE_DAMAGE = 110
AQUA_DAMAGE = 111
WIND_DAMAGE = 112
EARTH_DAMAGE = 113
HOLY_DAMAGE = 114
DARKNESS_DAMAGE = 115
NATURE_DAMAGE = 116
BLOOD_DAMAGE = 117
//============================
POSITIVE = true
NEGATIVE = false
SHIELD = ANY+1
BACK_CONDITION = 1
}
real GetBonus_STR(int v){ return 0.9 + (v * 0.02) }
real GetBonus_STD(int v){ return 0.9 + (v * 0.03) }
real GetBonus_RCT(int v){ return 0.9 + (v * 0.01) }
real GetBonus_DEX(int v){ return 1.00 + (v * 0.01) }
real GetBonus_INT(int v){ return 0.8 + (v * 0.04) }
real GetBonus_WIL(int v){ return 0.9 + (v * 0.02) }
// защита в процент
real D2P(real x) {
if x <= FIRST_DEF_LIMIT {
return x / VALUE_BY_PERCENT_1
}
elseif (x > FIRST_DEF_LIMIT and x <= SECOND_DEF_LIMIT) {
return (FIRST_DEF_LIMIT / VALUE_BY_PERCENT_1) + ((x - FIRST_DEF_LIMIT) / VALUE_BY_PERCENT_2)
}
elseif (x > SECOND_DEF_LIMIT) {
return (FIRST_DEF_LIMIT / VALUE_BY_PERCENT_1) + ((SECOND_DEF_LIMIT - FIRST_DEF_LIMIT) / VALUE_BY_PERCENT_2) + ((x - SECOND_DEF_LIMIT) / VALUE_BY_PERCENT_3)
}
return 0.
}
// маг атака в процент
real MA2P(real x) {
if x <= MA_FIRST_LIMIT {
return x / MA_VALUE_BY_PERCENT_1
}
elseif (x > MA_FIRST_LIMIT and x <= MA_SECOND_LIMIT) {
return (MA_FIRST_LIMIT / MA_VALUE_BY_PERCENT_1) + ((x - MA_FIRST_LIMIT) / MA_VALUE_BY_PERCENT_2)
}
elseif (x > MA_SECOND_LIMIT) {
return (MA_FIRST_LIMIT / MA_VALUE_BY_PERCENT_1) + ((MA_SECOND_LIMIT - MA_FIRST_LIMIT) / MA_VALUE_BY_PERCENT_2) + ((x - MA_SECOND_LIMIT) / MA_VALUE_BY_PERCENT_3)
}
return 0.
}
//enum (ALTERNATE_STATES) { STUN, FEAR, ROOT, PARALYZE, TURNED}
endlibrary