//================= Hercules Database =====================================
//= _ _ _
//= | | | | | |
//= | |_| | ___ _ __ ___ _ _| | ___ ___
//= | _ |/ _ \ '__/ __| | | | |/ _ \/ __|
//= | | | | __/ | | (__| |_| | | __/\__ \
//= \_| |_/\___|_| \___|\__,_|_|\___||___/
//================= License ===============================================
//= This file is part of Hercules.
//= http://herc.ws - http://github.com/HerculesWS/Hercules
//=
//= Copyright (C) 2018 Hercules Dev Team
//=
//= Hercules is free software: you can redistribute it and/or modify
//= it under the terms of the GNU General Public License as published by
//= the Free Software Foundation, either version 3 of the License, or
//= (at your option) any later version.
//=
//= This program is distributed in the hope that it will be useful,
//= but WITHOUT ANY WARRANTY; without even the implied warranty of
//= MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
//= GNU General Public License for more details.
//=
//= You should have received a copy of the GNU General Public License
//= along with this program. If not, see <http://www.gnu.org/licenses/>.
//=========================================================================
//= Monster Skill Database
//=========================================================================
mob_skill_db:(
{
/**************************************************************************
************* Entry structure ********************************************
**************************************************************************
<Monster_Constant>: {
<Skill_Constant>: {
ClearSkills: (boolean, defaults to false) allows cleaning all previous defined skills for the mob.
SkillLevel: (int, defaults to 1)
SkillState: (string, defaults to "MSS_ANY")
SkillTarget: (string, defaults to "MST_TARGET")
Rate: (int, defaults to 1) Rate refers to the chance of the skill being casted when the condition is fulfilled.(10000 = 100%)
CastTime: (int, defaults to 0) CastTime is the time in milliseconds that has to be pass to casting skill
Delay: (int, defaults to 0) Delay is the time in milliseconds that has to be pass before recasting the same skill.
Cancelable: (boolean, defaults to false)
CastCondition: (string, defaults to "MSC_ALWAYS")
ConditionData: (int, defaults to 0)
val0: (int, defaults to 0)
val1: (int, defaults to 0)
val2: (int, defaults to 0)
val3: (int, defaults to 0)
val4: (int, defaults to 0)
Emotion: (int, defaults to -1)
ChatMsgID: (int, defaults to 0)
}
}
// STATE:
// any (except dead) / idle (in standby) / walk (in movement) / dead (on killed) /
// loot /attack / angry (like attack, except player has not attacked mob yet) /
// chase (following target, after being attacked) / follow (following target,
// without being attacked) / anytarget (attack+angry+chase+follow)
SKILL_STATES = {
"any": "MSS_ANY",
"idle": "MSS_IDLE",
"walk": "MSS_WALK",
"loot": "MSS_LOOT",
"dead": "MSS_DEAD",
"attack": "MSS_BERSERK",
"angry": "MSS_ANGRY",
"chase": "MSS_RUSH",
"follow": "MSS_FOLLOW",
"anytarget": "MSS_ANYTARGET"
}
// TARGET:
// target (current target) / self / friend / master / randomtarget (any enemy within skill's range)
//
// The following are for ground-skills, a random target tile is selected from the specified area:
// around1 (3x3 area around self) / around2 (5x5 area around self) /
// around3 (7x7 area around self) / around4 (9x9 area around self) /
// around5 (3x3 area around target) / around6 (5x5 area around target) /
// around7 (7x7 area around target) / around8 (9x9 area around target) /
// around = around4
SKILL_TARGET = {
"target": "MST_TARGET",
"randomtarget": "MST_RANDOM",
"self": "MST_SELF",
"friend": "MST_FRIEND",
"master": "MST_MASTER",
"around5": "MST_AROUND5",
"around6": "MST_AROUND6",
"around7": "MST_AROUND7",
"around8": "MST_AROUND8",
"around1": "MST_AROUND1",
"around2": "MST_AROUND2",
"around3": "MST_AROUND3",
"around4": "MST_AROUND4",
"around": "MST_AROUND"
}
// CONDITION:
// always Unconditional (no condition value).
// onspawn When mob spawns/respawns (no condition value).
// myhpltmaxrate When mob's HP drops to the specified %.
// myhpinrate When mob's HP is in a certain % range (condition value = lower bound, val1 = upper bound).
// mystatuson If mob has the specified abnormality in status.
// mystatusoff If mob has ended the specified abnormality in status.
// friendhpltmaxrate When mob's friend's HP drops to the specified %.
// friendhpinrate When mob's friend's HP is in a certain % range (condition value = lower bound, val1 = upper bound).
// friendstatuson If friend has the specified abnormality in status.
// friendstatusoff If friend has ended the specified abnormality in status.
// attackpcgt When attack PCs become greater than specified number.
// attackpcge When attack PCs become greater than or equal to the specified number.
// slavelt When number of slaves is less than the original specified number.
// slavele When number of slaves is less than or equal to the original specified number.
// closedattacked When close range melee attacked (no condition value).
// longrangeattacked When long range attacked, ex. bows, guns, ranged skills (no condition value).
// skillused When the specified skill is used on the mob.
// afterskill After mob casts the specified skill.
// casttargeted When a target is in cast range (no condition value).
// rudeattacked When mob is rude attacked (no condition value).
SKILL_COND1 = {
"always": "MSC_ALWAYS",
"myhpltmaxrate": "MSC_MYHPLTMAXRATE",
"myhpinrate": "MSC_MYHPINRATE",
"friendhpltmaxrate": "MSC_FRIENDHPLTMAXRATE",
"friendhpinrate": "MSC_FRIENDHPINRATE",
"mystatuson": "MSC_MYSTATUSON",
"mystatusoff": "MSC_MYSTATUSOFF",
"friendstatuson": "MSC_FRIENDSTATUSON",
"friendstatusoff": "MSC_FRIENDSTATUSOFF",
"attackpcgt": "MSC_ATTACKPCGT",
"attackpcge": "MSC_ATTACKPCGE",
"slavelt": "MSC_SLAVELT",
"slavele": "MSC_SLAVELE",
"closedattacked": "MSC_CLOSEDATTACKED",
"longrangeattacked": "MSC_LONGRANGEATTACKED",
"skillused": "MSC_SKILLUSED",
"afterskill": "MSC_AFTERSKILL",
"casttargeted": "MSC_CASTTARGETED",
"rudeattacked": "MSC_RUDEATTACKED",
"masterhpltmaxrate": "MSC_MASTERHPLTMAXRATE",
"masterattacked": "MSC_MASTERATTACKED",
"alchemist": "MSC_ALCHEMIST",
"onspawn": "MSC_SPAWN"
}
// Status abnormalities specified through the statuson/statusoff system:
// anybad (any type of state change) / stone / freeze / stun / sleep /
// poison / curse / silence / confusion / blind / hiding / sight (unhidden)
//
// Note: if a negative MobID is provided, the skill will be treated as 'global':
// -1: added for all boss types.
// -2: added for all normal types.
// -4: added for all mobs.
SKILL_COND2 = {
"anybad": "MSC_ANY",
"stone": "SC_STONE",
"freeze": "SC_FREEZE",
"stun": "SC_STUN",
"sleep": "SC_SLEEP",
"poison": "SC_POISON",
"curse": "SC_CURSE",
"silence": "SC_SILENCE",
"confusion": "SC_CONFUSION",
"blind": "SC_BLIND",
"hiding": "SC_HIDING",
"sight": "SC_SIGHT"
}
**************************************************************************/
}
)