Custom Monsters Tutorial for DungeonDoom6XP: |
This tutorial contains specific information for adding new monsters with special abilities to DungeonDoom. ************************************************************************************** Chapter 1: Adding a custom monster: ************************************************************************************** Monsters can easily be added to the following parts of DungeonDoom: -the random spawning routines in the Dungeon Dungeon Monsters: this file contains the definitions normal_difficulty normal_difficulty is the default setting. If you set a value in the hard or easy difficulty definitions as well, that value will be used to overwrite the setting in the normal definition, if hard or easy difficulty is set, respectively. If you want to add a monster you will need to increase the value set in mon_div. Then you need to add a monster definition at the end of the list of monster definitions. a monster definition needs at least these keys: mon_type: the classname of the monster for all standard monsters the absolute probablity is set to 10. Increase/decrease this number to increase or decrease spawning frequency of this specific type. Monsters can also use special abilities. These are set by adding keys to the monster: mon_keys: the number of keys to be set Example for the format key*val: "DDinfl1*monster_shot" sets the key "DDinfl1" to the value "monster_shot".) Special abilities will be discussed in chapter 2 Example for addition of the custom model 'The Shambler' as a Dungeon Monster definition in vanilla DungeonDoom6XP: in teh definition normal_difficult within defficulty.def: change "mon_div" "56" to "mon_div" "57" after the last monster definition "mon_type57" "monster_zombie_tough" add the new one: "mon_type58" "monster_shambler" If you copy the original obihb shambler release (obihb_shambler.pk4) to the DungeonDoom6XP directory, the above modification includes the custom shambler model in DungeonDoom as a randomly spawned Dungeon Monster. The Shambler will be spawned between levels 40 and 60 of the long gameplay variant (for the short gameplay variant that corresponds to between levels 8 and 12) with the same probability than any other monster. If killed it will give a lot of gold and experience. Boss Monsters: Quest Monsters: Special Ability "Wizards": wizards are generated by randomly combining different key values which confer special abilities (wizard_keys) together with a basic shape (wizard_shapes). If you want to add a new monster model to the collection of shapes, just increase the value of wizard_shapes, add a new shape defined by wizard_shape (for example "wizard_shape14" "monster_shambler") and add a level min/max pair defined by wizard_slevel (for example "wizard_slevel14" "3*5", which means that only wizards of the level 3 to 5 can have this shape - the higher the wizard level the more powerful it is and the deeper in the dungeon it lives). Finally add a name definition defined by wizard_nameA (for example "wizard_nameA14" "Shambler Mage") ************************************************************************************** Chapter 2: Adding special abilities: ************************************************************************************** In DungeonDoom6XP, all special abilities are set by key/val pairs. These can be set for any of the monster types as detailed above. For Dungeon Monsters, the number of keys needs to be set using mon_keys. Then the individual keys are set by adding them with mon_key1, on_key2, mon_key3... etc. For boss or minions these keys are written slightly different as boss_keys, boss_key1... or minion_keys etc. The format for setting the keys is key*val for example "DDinfl1*monster_shot" sets the key "DDinfl1" to the value "monster_shot". For setting special monster abilities the following keys need to be set: DDinflnum: number of special abilities for Dungeon Monster number 5 this is done by: "mon_keys5" "5" These values set the special ability teleport for monster number 5 with certain arguments that define how the teleport
Chapter 3: List of special abilities: ************************************************************************************** ..................................................................... no arguments Player temporarily blinded when entity dies ..................................................................... arguments ARG1: duration[sec] Player blinded for ARG1 sec if distance to player is smaller than ARG2 ..................................................................... arguments ARG1: duration[sec/100] Player movement impaired for ARG1/100 sec if distance to player is smaller than ARG2 ..................................................................... arguments ARG1: duration[sec/100] Player movement becomes eratic for ARG1/100 sec if distance to player is smaller than ARG2 ..................................................................... arguments ARG1: fraction (usually set to 0.75) Monster teleports itself towards the player if it's distance to the player is larger than ARG2 and smaller than ARG3. The distance traveled is the total distance between the monster and player divided by ARG1. ..................................................................... arguments ARG1: amount (usually set to 10) Monster substracts ARG1 experience form the player every second if player is within the distance ARG2. ..................................................................... arguments ARG1: amount (usually set to 10) Monster substracts ARG1 mana form the player every second if player is within the distance ARG2. ..................................................................... arguments ARG1: amount Monster steals ARG1 gold if distance to player is smaller than ARG2. ..................................................................... no arguments The nearer the monster gets to the player the more life the player will loose per 1/2 second. ..................................................................... no arguments Engulf the player in flames if the distance to the monster is below 100. ..................................................................... arguments ARG1: amount (usually set to 50) The monster heals itself by the amount of ARG1. Inbetween healing, there ..................................................................... arguments ARG1: pause[sec] (usually set to 10) Monster teleports the player near the monster if it's distance to the player is larger than ARG2 and smaller than ARG3. A pause of ARG1 sec will be set between teleports. ..................................................................... arguments ARG1: number (usually set below 10) Monster spawns ARG1 minions of the class ARG2. If the number of minions falls below ARG1, new minions will be spawned rapidly. ..................................................................... arguments ARG1: duration (usually set to 5) Monster generates a shield for ARG1*1.2 seconds that blocks any damage. Inbetween shield generation, there is a pause of 1-10 seconds. ..................................................................... arguments ARG1: distance (usually set to 200) Monster destroys your lightsource if the distance between the monster and the player is below ARG1. ..................................................................... arguments ARG1: distance (usually set to 200) Monster removes all the ammo of your currently equipped weapon if the distance between the monster and the player is below ARG1. ..................................................................... arguments ARG1: effect (implemented:paralyze_shot,blast_shot,blast2_shot,blind_shot) If monster sees player, it fires a shot displayed by the model ARG2 with a lightsource of the color (ARG5,ARG6,ARG7) and the sound ARG8 attached. The monster will fire a particle every ARG4 seconds and the particle movement speed is defined by ARG3. If a shot hits the player, the script function ARG1 will be called. Several script functions are implemented already. ..................................................................... arguments ARG1: effect (implemented:paralyze_shot,blast_shot,blast2_shot,blind_shot) If monster sees player, it fires a sequence of shots, each displayed by the model ARG2 with a lightsource of the color (ARG5,ARG6,ARG7) and the sound ARG8 attached. The monster will fire a particle blast every ARG4 seconds and the particle movement speed is defined by ARG3. The number of particles in each blast is ARG9 and the temporal pause between each particle is ARG10. If a shot hits the player, the script function ARG1 will be called. Several script functions are implemented already. ..................................................................... arguments ARG1: FX Starts the effect ARG1 on the monster every ARG2 seconds. The duration of the effect and ARG2 should be synchronized. ..................................................................... arguments ARG1: red Attaches a lightsource of the color (ARG1,ARG2,ARG3) with the radius ARG4 to the monster. ..................................................................... no arguments Darkens all general lightsources, including the players lightsource when near. Please let me know if you have any additional questions. -hellborg |