summaryrefslogblamecommitdiff
path: root/db/pre-re/mob_skill_db.conf
blob: 396fa77f58de463033765c1e5904d7dc5d832a7f (plain) (tree)












































































































































































                                                                                                                                                              

























































































































                                                                                
 















                                                                                
































































                                                                                

 
//================= 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"
}

**************************************************************************/
	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
		}
	}

	/**********************************************************************/
    // 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
		}
	}

}
)