//================= 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 .
//=========================================================================
//= Monster Skill Database
//=========================================================================
mob_skill_db:(
{
/**************************************************************************
************* Entry structure ********************************************
**************************************************************************
: {
: {
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"
}
**************************************************************************/
SlimeBlast: {
NPC_SELFDESTRUCTION: {
SkillState: "MSS_BERSERK"
SkillLevel: 1
Rate: 10000
CastTime: 100
Delay: 500
Cancelable: true
SkillTarget: "MST_SELF"
CastCondition: "MSC_ALWAYS"
}
}
/**********************************************************************/
BlueSlime: {
// TODO: use NPC_SUMMONMONSTER?
NPC_SUMMONSLAVE: {
SkillState: "MSS_ANY"
SkillLevel: 1
Rate: 8000
CastTime: 1200
Delay: 18000
SkillTarget: "MST_SELF"
CastCondition: "MSC_SLAVELT"
ConditionData: 1
val0: 1090
}
}
/**********************************************************************/
WhiteSlime: {
NPC_SELFDESTRUCTION: {
SkillState: "MSS_BERSERK"
SkillLevel: 1
Rate: 10000
CastTime: 100
Delay: 500
Cancelable: true
SkillTarget: "MST_SELF"
CastCondition: "MSC_ALWAYS"
}
}
/**********************************************************************/
SantaSlime: {
NPC_EMOTION: {
SkillState: "MSS_LOOT"
SkillLevel: 1
Rate: 10000
SkillTarget: "MST_SELF"
CastCondition: "MSC_ALWAYS"
val0: 101
}
NPC_EMOTION: {
SkillState: "MSS_WALK"
SkillLevel: 1
Rate: 5000
SkillTarget: "MST_SELF"
CastCondition: "MSC_ALWAYS"
val0: 5
}
NPC_EMOTION: {
SkillState: "MSS_IDLE"
SkillLevel: 1
Rate: 5000
SkillTarget: "MST_SELF"
CastCondition: "MSC_ALWAYS"
val0: 7
}
NPC_SUMMONSLAVE: {
SkillState: "MSS_BERSERK"
SkillLevel: 5
Rate: 10000
CastTime: 2000
Delay: 60000
SkillTarget: "MST_SELF"
CastCondition: "MSC_SLAVELE"
ConditionData: 3
val0: 1016
}
NPC_SUMMONSLAVE: {
SkillState: "MSS_IDLE"
SkillLevel: 5
Rate: 10000
CastTime: 2000
Delay: 60000
SkillTarget: "MST_SELF"
CastCondition: "MSC_SLAVELE"
ConditionData: 3
val0: 1016
}
}
/**********************************************************************/
GreenSlimeMother: {
NPC_SUMMONSLAVE: {
SkillState: "MSS_ANY"
SkillLevel: 2
Rate: 8000
CastTime: 700
Delay: 8000
SkillTarget: "MST_SELF"
CastCondition: "MSC_SLAVELT"
ConditionData: 2
val0: 1110
}
}
/**********************************************************************/
SeaSlimeMother: {
NPC_SUMMONSLAVE: {
SkillState: "MSS_ANY"
SkillLevel: 2
Rate: 8000
CastTime: 700
Delay: 8000
SkillTarget: "MST_SELF"
CastCondition: "MSC_SLAVELT"
ConditionData: 2
val0: 1109
}
}
/**********************************************************************/
PinkFlower: {
NPC_SUMMONSLAVE: {
SkillState: "MSS_ANY"
SkillLevel: 1
Rate: 10000
CastTime: 1000
Delay: 60000
SkillTarget: "MST_SELF"
CastCondition: "MSC_SLAVELT"
ConditionData: 4
val0: 1049
}
NPC_BLINDATTACK: {
SkillState: "MSS_BERSERK"
SkillLevel: 5
Rate: 10000
CastTime: 1000
Delay: 300000
SkillTarget: "MST_TARGET"
CastCondition: "MSC_ALWAYS"
}
}
/**********************************************************************/
// Note: Cannot explode if poisoned
BallLightning: {
NPC_SELFDESTRUCTION: {
SkillState: "MSS_BERSERK"
SkillLevel: 3
Rate: 10000
CastTime: 500
Delay: 3000
Cancelable: true
SkillTarget: "MST_SELF"
CastCondition: "MSC_MYSTATUSOFF"
ConditionData: "SC_POISON"
}
}
/**********************************************************************/
Luvia: {
NPC_SUMMONSLAVE: {
SkillState: "MSS_ANY"
SkillLevel: 1
Rate: 10000
CastTime: 1000
Delay: 60000
SkillTarget: "MST_SELF"
CastCondition: "MSC_SLAVELT"
ConditionData: 32
val0: 1103
}
NPC_SUMMONSLAVE: {
SkillState: "MSS_ANY"
SkillLevel: 2
Rate: 10000
CastTime: 10
Delay: 5000
SkillTarget: "MST_SELF"
CastCondition: "MSC_SLAVELT"
ConditionData: 7
val0: 1101
}
NPC_SUMMONSLAVE: {
SkillState: "MSS_ANY"
SkillLevel: 1
Rate: 10000
CastTime: 10
Delay: 20000
SkillTarget: "MST_SELF"
CastCondition: "MSC_SLAVELT"
ConditionData: 64
val0: 1101
}
}
/**********************************************************************/
FeyElement: {
NPC_SUMMONSLAVE: {
SkillState: "MSS_ANY"
SkillLevel: 1
Rate: 5000
CastTime: 100
Delay: 500
Cancelable: true
SkillTarget: "MST_SELF"
CastCondition: "MSC_SLAVELT"
ConditionData: 6
val0: 1083
}
NPC_SUMMONSLAVE: {
SkillState: "MSS_ANY"
SkillLevel: 1
Rate: 5000
CastTime: 100
Delay: 500
Cancelable: true
SkillTarget: "MST_SELF"
CastCondition: "MSC_SLAVELT"
ConditionData: 6
val0: 1084
}
}
/**********************************************************************/
Tormenta: {
NPC_SUMMONSLAVE: {
SkillState: "MSS_ANY"
SkillLevel: 1
Rate: 10000
CastTime: 1000
Delay: 150000
SkillTarget: "MST_SELF"
CastCondition: "MSC_SLAVELT"
ConditionData: 32
val0: 1022
}
NPC_SUMMONSLAVE: {
SkillState: "MSS_ANY"
SkillLevel: 2
Rate: 10000
CastTime: 1000
Delay: 70000
SkillTarget: "MST_SELF"
CastCondition: "MSC_SLAVELT"
ConditionData: 7
val0: 1103
}
NPC_SUMMONSLAVE: {
SkillState: "MSS_ANY"
SkillLevel: 2
Rate: 10000
CastTime: 10
Delay: 15000
SkillTarget: "MST_SELF"
CastCondition: "MSC_SLAVELT"
ConditionData: 7
val0: 1101
}
NPC_SUMMONSLAVE: {
SkillState: "MSS_ANY"
SkillLevel: 1
Rate: 10000
CastTime: 10
Delay: 32000
SkillTarget: "MST_SELF"
CastCondition: "MSC_SLAVELT"
ConditionData: 64
val0: 1101
}
NPC_WIDECURSE: {
SkillState: "MSS_BERSERK"
SkillLevel: 3
Rate: 620
CastTime: 10
Delay: 1000
SkillTarget: "MST_SELF"
CastCondition: "MSC_MYHPLTMAXRATE"
ConditionData: 40
}
}
/**********************************************************************/
SUSAN: {
NPC_EMOTION: {
SkillState: "MSS_IDLE"
SkillLevel: 1
Rate: 5000
SkillTarget: "MST_SELF"
CastCondition: "MSC_ALWAYS"
val0: 118
}
NPC_SUMMONSLAVE: {
SkillState: "MSS_ANY"
SkillLevel: 9
Rate: 1000
CastTime: 1000
Delay: 18000
SkillTarget: "MST_SELF"
CastCondition: "MSC_SLAVELT"
ConditionData: 69
val0: 1135
Emotion: 104
}
}
/**********************************************************************/
Reaper: {
NPC_SUMMONSLAVE: {
SkillState: "MSS_ANY"
SkillLevel: 1
Rate: 8000
CastTime: 1000
Delay: 5000
Cancelable: true
SkillTarget: "MST_SELF"
CastCondition: "MSC_SLAVELT"
ConditionData: 1
val0: 1070
}
NPC_SUMMONSLAVE: {
SkillState: "MSS_ANY"
SkillLevel: 1
Rate: 8000
CastTime: 1000
Delay: 5000
Cancelable: true
SkillTarget: "MST_SELF"
CastCondition: "MSC_SLAVELT"
ConditionData: 2
val0: 1070 // TODO: Scythe
}
}
/**********************************************************************/
TheLost: {
NPC_SUMMONSLAVE: {
SkillState: "MSS_ANY"
SkillLevel: 1
Rate: 8000
CastTime: 1000
Delay: 5000
Cancelable: true
SkillTarget: "MST_SELF"
CastCondition: "MSC_SLAVELT"
ConditionData: 2
val0: 1106
}
NPC_WIDESILENCE: {
SkillState: "MSS_BERSERK"
SkillLevel: 5
Rate: 8000
CastTime: 1000
Delay: 90000
Cancelable: true
SkillTarget: "MST_SELF"
CastCondition: "MSC_ALWAYS"
}
NPC_WIDESOULDRAIN: {
SkillState: "MSS_BERSERK"
SkillLevel: 3
Rate: 8000
CastTime: 1000
Delay: 180000
Cancelable: true
SkillTarget: "MST_SELF"
CastCondition: "MSC_MYHPLTMAXRATE"
ConditionData: 60
}
}
}
)