//================= 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" } **************************************************************************/ Ratto: { NPC_POISON: { SkillState: "MSS_BERSERK" SkillLevel: 20 Rate: 500 Delay: 500 Cancelable: true SkillTarget: "MST_TARGET" CastCondition: "MSC_ALWAYS" } } /**********************************************************************/ Blub: { NPC_SUMMONSLAVE: { SkillState: "MSS_ANY" SkillLevel: 4 Rate: 10000 CastTime: 700 Delay: 60000 SkillTarget: "MST_SELF" CastCondition: "MSC_SPAWN" val0: 1007 } } /**********************************************************************/ Crocotree: { NPC_REBIRTH: { SkillState: "MSS_DEAD" SkillLevel: 2 Rate: 10000 Cancelable: true SkillTarget: "MST_SELF" CastCondition: "MSC_ALWAYS" } NPC_TRANSFORMATION: { SkillState: "MSS_ANY" SkillLevel: 1 Rate: 10000 CastTime: 700 Delay: 60000 SkillTarget: "MST_SELF" CastCondition: "MSC_AFTERSKILL" ConditionData: 208 val0: 1014 } } /**********************************************************************/ Frostiana: { NPC_POISON: { SkillState: "MSS_BERSERK" SkillLevel: 5 Rate: 1000 Delay: 2000 Cancelable: true SkillTarget: "MST_TARGET" CastCondition: "MSC_ALWAYS" } } /**********************************************************************/ Pikpik: { NPC_SELFDESTRUCTION: { SkillState: "MSS_BERSERK" SkillLevel: 1 Rate: 10000 CastTime: 1000 SkillTarget: "MST_SELF" CastCondition: "MSC_ALWAYS" } NPC_SELFDESTRUCTION: { SkillState: "MSS_RUSH" SkillLevel: 1 Rate: 2000 CastTime: 1000 SkillTarget: "MST_SELF" CastCondition: "MSC_ALWAYS" } } /**********************************************************************/ CroconutMob: { NPC_SUICIDE: { SkillState: "MSS_ANY" SkillLevel: 1 Rate: 10000 CastTime: 1000 SkillTarget: "MST_SELF" CastCondition: "MSC_ALWAYS" } } /**********************************************************************/ Tipiu: { NPC_SUMMONSLAVE: { SkillState: "MSS_IDLE" SkillLevel: 6 Rate: 10000 SkillTarget: "MST_SELF" CastCondition: "MSC_SPAWN" val0: 1003 } NPC_SUMMONSLAVE: { SkillState: "MSS_BERSERK" SkillLevel: 2 Rate: 2000 CastTime: 700 Delay: 10000 SkillTarget: "MST_SELF" CastCondition: "MSC_SLAVELE" ConditionData: 5 val0: 1003 } NPC_SUMMONSLAVE: { SkillState: "MSS_IDLE" SkillLevel: 2 Rate: 7000 CastTime: 700 Delay: 10000 SkillTarget: "MST_SELF" CastCondition: "MSC_SLAVELE" ConditionData: 5 val0: 1003 } } /**********************************************************************/ Tipiou: { NPC_SUMMONSLAVE: { SkillState: "MSS_IDLE" SkillLevel: 5 Rate: 10000 SkillTarget: "MST_SELF" CastCondition: "MSC_SPAWN" val0: 1002 } NPC_SUMMONSLAVE: { SkillState: "MSS_BERSERK" SkillLevel: 2 Rate: 2000 CastTime: 700 Delay: 10000 SkillTarget: "MST_SELF" CastCondition: "MSC_SLAVELE" ConditionData: 4 val0: 1002 } NPC_SUMMONSLAVE: { SkillState: "MSS_IDLE" SkillLevel: 2 Rate: 7000 CastTime: 700 Delay: 10000 SkillTarget: "MST_SELF" CastCondition: "MSC_SLAVELE" ConditionData: 4 val0: 1002 } } /**********************************************************************/ Slime: { NPC_SUMMONMONSTER: { SkillState: "MSS_DEAD" SkillLevel: 2 Rate: 10000 SkillTarget: "MST_SELF" CastCondition: "MSC_ALWAYS" val0: 1025 } } /**********************************************************************/ Beehive: { NPC_SUMMONMONSTER: { SkillState: "MSS_ANYTARGET" SkillLevel: 1 Rate: 10000 CastTime: 100 Delay: 6500 Cancelable: false SkillTarget: "MST_SELF" CastCondition: "MSC_MYHPLTMAXRATE" ConditionData: 90 val0: 1058 } NPC_SUMMONMONSTER: { SkillState: "MSS_ANYTARGET" SkillLevel: 2 Rate: 10000 CastTime: 100 Delay: 6500 Cancelable: false SkillTarget: "MST_SELF" CastCondition: "MSC_MYHPLTMAXRATE" ConditionData: 50 val0: 1058 } NPC_SUMMONMONSTER: { SkillState: "MSS_ANYTARGET" SkillLevel: 3 Rate: 10000 CastTime: 100 Delay: 6500 Cancelable: false SkillTarget: "MST_SELF" CastCondition: "MSC_MYHPLTMAXRATE" ConditionData: 20 val0: 1058 } NPC_SUMMONMONSTER: { SkillState: "MSS_DEAD" SkillLevel: 1 Rate: 10000 SkillTarget: "MST_SELF" CastCondition: "MSC_ALWAYS" val0: 1058 } } /**********************************************************************/ PoisonSkull: { NPC_POISON: { SkillState: "MSS_BERSERK" SkillLevel: 20 Rate: 2500 Delay: 100 Cancelable: true SkillTarget: "MST_TARGET" CastCondition: "MSC_ALWAYS" } } /**********************************************************************/ BanditLord: { NPC_SUMMONSLAVE: { SkillState: "MSS_ANYTARGET" SkillLevel: 1 Rate: 10000 CastTime: 300 Delay: 270000 Cancelable: false SkillTarget: "MST_SELF" CastCondition: "MSC_MYHPLTMAXRATE" ConditionData: 70 val0: 1063 } NPC_SUMMONSLAVE: { SkillState: "MSS_ANYTARGET" SkillLevel: 2 Rate: 10000 CastTime: 300 Delay: 270000 Cancelable: false SkillTarget: "MST_SELF" CastCondition: "MSC_MYHPLTMAXRATE" ConditionData: 50 val0: 1064 } NPC_SUMMONSLAVE: { SkillState: "MSS_ANYTARGET" SkillLevel: 2 Rate: 10000 CastTime: 1000 Delay: 90000 Cancelable: false SkillTarget: "MST_SELF" CastCondition: "MSC_LONGRANGEATTACKED" val0: 1064 } NPC_SUMMONSLAVE: { SkillState: "MSS_ANYTARGET" SkillLevel: 3 Rate: 10000 CastTime: 1000 Delay: 270000 Cancelable: false SkillTarget: "MST_SELF" CastCondition: "MSC_MYHPLTMAXRATE" ConditionData: 25 val0: 1063 } NPC_POISON: { SkillState: "MSS_BERSERK" SkillLevel: 20 Rate: 7500 Delay: 20000 Cancelable: true SkillTarget: "MST_TARGET" CastCondition: "MSC_MYHPLTMAXRATE" ConditionData: 7 } /**********************************************************************/ } SpiderQueen: { NPC_POISON: { SkillState: "MSS_ALL" SkillLevel: 20 Rate: 5000 Delay: 100 Cancelable: true SkillTarget: "MST_TARGET" CastCondition: "MSC_ALWAYS" } NPC_SUMMONSLAVE: { SkillState: "MSS_ANY" SkillLevel: 5 Rate: 10000 CastTime: 700 Delay: 60000 SkillTarget: "MST_SELF" CastCondition: "MSC_SPAWN" val0: 1044 } } /**********************************************************************/ FireDummy: { MG_FIREWALL: { SkillState: "MSS_BERSERK" SkillLevel: 1 Rate: 9000 CastTime: 1800 Delay: 120000 Cancelable: true SkillTarget: "MST_TARGET" CastCondition: "MSC_ALWAYS" } } /**********************************************************************/ PinkFlower: { NPC_SUMMONSLAVE: { SkillState: "MSS_ANY" SkillLevel: 1 Rate: 10000 CastTime: 1000 Delay: 20000 SkillTarget: "MST_SELF" CastCondition: "MSC_SLAVELE" ConditionData: 3 val0: 1029 } } /**********************************************************************/ YellowTulip: { NPC_SUMMONSLAVE: { SkillState: "MSS_ANY" SkillLevel: 1 Rate: 10000 CastTime: 500 Delay: 10000 SkillTarget: "MST_SELF" CastCondition: "MSC_SLAVELE" ConditionData: 1 val0: 1029 } } /**********************************************************************/ YellowRose: { NPC_SUMMONSLAVE: { SkillState: "MSS_ANY" SkillLevel: 1 Rate: 10000 CastTime: 200 Delay: 5000 SkillTarget: "MST_SELF" CastCondition: "MSC_SLAVELE" ConditionData: 2 val0: 1029 } } /**********************************************************************/ BlueRose: { NPC_SUMMONSLAVE: { SkillState: "MSS_ANY" SkillLevel: 2 Rate: 10000 CastTime: 100 Delay: 3000 SkillTarget: "MST_SELF" CastCondition: "MSC_SLAVELE" ConditionData: 2 val0: 1029 } } /**********************************************************************/ RedRose: { NPC_SUMMONSLAVE: { SkillState: "MSS_ANY" SkillLevel: 1 Rate: 10000 CastTime: 1000 Delay: 20000 SkillTarget: "MST_SELF" CastCondition: "MSC_SLAVELE" ConditionData: 2 val0: 1029 } } /**********************************************************************/ GoldenScorpion: { SM_BASH: { SkillState: "MSS_BERSERK" SkillLevel: 6 Rate: 1800 Delay: 20000 Cancelable: true SkillTarget: "MST_TARGET" CastCondition: "MSC_ATTACKPCGE" ConditionData: 2 } NPC_SILENCEATTACK: { SkillState: "MSS_BERSERK" SkillLevel: 2 Rate: 9800 Delay: 40000 CastTime: 700 Cancelable: true SkillTarget: "MST_TARGET" CastCondition: "MSC_LONGRANGEATTACKED" } } /**********************************************************************/ GreenSlimeProgenitor: { NPC_SUMMONSLAVE: { SkillState: "MSS_ANY" SkillLevel: 4 Rate: 10000 CastTime: 700 Delay: 20000 SkillTarget: "MST_SELF" CastCondition: "MSC_SLAVELE" ConditionData: 2 val0: 1024 } } /**********************************************************************/ YellowSlimeProgenitor: { NPC_SUMMONSLAVE: { SkillState: "MSS_ANY" SkillLevel: 8 Rate: 10000 CastTime: 700 Delay: 40000 SkillTarget: "MST_SELF" CastCondition: "MSC_SLAVELE" ConditionData: 6 val0: 1073 } } /**********************************************************************/ MudSlimeProgenitor: { NPC_SUMMONSLAVE: { SkillState: "MSS_ANY" SkillLevel: 8 Rate: 10000 CastTime: 400 Delay: 30000 SkillTarget: "MST_SELF" CastCondition: "MSC_SLAVELE" ConditionData: 6 val0: 1096 } AL_DECAGI: { SkillState: "MSS_BERSERK" SkillLevel: 1 Rate: 6000 Delay: 180000 Cancelable: true SkillTarget: "MST_TARGET" CastCondition: "MSC_ALWAYS" } } /**********************************************************************/ GeneralKrukan: { ASC_METEORASSAULT: { SkillState: "MSS_BERSERK" SkillLevel: 2 Rate: 6000 CastTime: 800 Delay: 20000 Cancelable: false SkillTarget: "MST_TARGET" CastCondition: "MSC_ALWAYS" } NPC_CURSEATTACK: { SkillState: "MSS_BERSERK" SkillLevel: 1 Rate: 4000 CastTime: 2000 Delay: 20000 Cancelable: false SkillTarget: "MST_TARGET" CastCondition: "MSC_ALWAYS" } // Mana Ghost NPC_SUMMONMONSTER: { SkillState: "MSS_ANYTARGET" SkillLevel: 4 Rate: 7000 CastTime: 500 Delay: 60000 Cancelable: true SkillTarget: "MST_SELF" CastCondition: "MSC_MYHPLTMAXRATE" ConditionData: 50 val0: 1101 } // Black Scorpion NPC_SUMMONMONSTER: { SkillState: "MSS_ANYTARGET" SkillLevel: 1 Rate: 6000 CastTime: 700 Delay: 60000 Cancelable: true SkillTarget: "MST_SELF" CastCondition: "MSC_ALWAYS" val0: 1104 } SM_BASH: { SkillState: "MSS_BERSERK" SkillLevel: 5 Rate: 2800 Delay: 20000 Cancelable: true SkillTarget: "MST_TARGET" CastCondition: "MSC_ALWAYS" } } /**********************************************************************/ GeneralRazha: { ASC_METEORASSAULT: { SkillState: "MSS_BERSERK" SkillLevel: 3 Rate: 6000 CastTime: 800 Delay: 20000 Cancelable: false SkillTarget: "MST_TARGET" CastCondition: "MSC_ALWAYS" } NPC_CURSEATTACK: { SkillState: "MSS_BERSERK" SkillLevel: 2 Rate: 4000 CastTime: 2000 Delay: 20000 Cancelable: false SkillTarget: "MST_TARGET" CastCondition: "MSC_ALWAYS" } // Skeleton NPC_SUMMONMONSTER: { SkillState: "MSS_ANYTARGET" SkillLevel: 4 Rate: 7000 CastTime: 500 Delay: 60000 Cancelable: true SkillTarget: "MST_SELF" CastCondition: "MSC_MYHPLTMAXRATE" ConditionData: 50 val0: 1084 } // Black Slime NPC_SUMMONMONSTER: { SkillState: "MSS_ANYTARGET" SkillLevel: 3 Rate: 6000 CastTime: 700 Delay: 60000 Cancelable: true SkillTarget: "MST_SELF" CastCondition: "MSC_ALWAYS" val0: 1079 } SM_BASH: { SkillState: "MSS_BERSERK" SkillLevel: 6 Rate: 2800 Delay: 20000 Cancelable: true SkillTarget: "MST_TARGET" CastCondition: "MSC_ALWAYS" } } /**********************************************************************/ GeneralTerogan: { ASC_METEORASSAULT: { SkillState: "MSS_BERSERK" SkillLevel: 4 Rate: 6000 CastTime: 800 Delay: 20000 Cancelable: false SkillTarget: "MST_TARGET" CastCondition: "MSC_ALWAYS" } NPC_CURSEATTACK: { SkillState: "MSS_BERSERK" SkillLevel: 3 Rate: 4000 CastTime: 2000 Delay: 20000 Cancelable: false SkillTarget: "MST_TARGET" CastCondition: "MSC_ALWAYS" } // Golem NPC_SUMMONMONSTER: { SkillState: "MSS_ANYTARGET" SkillLevel: 2 Rate: 7000 CastTime: 500 Delay: 60000 Cancelable: true SkillTarget: "MST_SELF" CastCondition: "MSC_MYHPLTMAXRATE" ConditionData: 50 val0: 1121 } // Terranite NPC_SUMMONMONSTER: { SkillState: "MSS_ANYTARGET" SkillLevel: 5 Rate: 6000 CastTime: 700 Delay: 60000 Cancelable: true SkillTarget: "MST_SELF" CastCondition: "MSC_ALWAYS" val0: 1113 } SM_BASH: { SkillState: "MSS_BERSERK" SkillLevel: 7 Rate: 2800 Delay: 20000 Cancelable: true SkillTarget: "MST_TARGET" CastCondition: "MSC_ALWAYS" } } /**********************************************************************/ MisterPrickel: { SN_SHARPSHOOTING: { SkillState: "MSS_ANYTARGET" SkillLevel: 2 Rate: 10000 CastTime: 1000 Delay: 5000 Cancelable: false SkillTarget: "MST_TARGET" CastCondition: "MSC_LONGRANGEATTACKED" } } } )