User:Datiswous: Difference between revisions

From The DarkMod Wiki
Jump to navigationJump to search
Datiswous (talk | contribs)
No edit summary
Datiswous (talk | contribs)
test with saving a whole .map file inside a wiki page.
 
(36 intermediate revisions by the same user not shown)
Line 1: Line 1:
==== "AI" subfolder ====
<div class="mw-collapsible mw-collapsed" style="width: 30%">
This text is not collapsible; but the next is collapsible and hidden by default:


''If you're new to DarkRadiant, please note that the basic character AIs are depicted as headless bodies in DarkRadiant, because their default heads can be swapped for alternative heads if the mapper wishes to add variety. All available AI heads are listed under one of the subfolders in the table below, but separately from the subfolders of the AI character bodies.''
<div class="mw-collapsible-content">bla bla bla</div>
</div>


{|class="wikitable sortable" border=1 style="overflow:scroll;" cellspacing=0 cellpadding=2 width=100% height:350px
 
"Talk" links next to "Datiswous" appear {{red|red}}.
 
 
https://www.mediawiki.org/wiki/Help:Templates
 
= Secrets of Waterdeep =
{{Abandoned-works|aut=Paul, Bert|none|{{green|Free for adaption}}|-|-|-|-|-}}
 
{{infobox|text= Bla Bla Bla}}
 
 
== Table test ==
 
An alternative way to create and edit tables via use of a template.
 
<nowiki>
{|class="wikitable sortable" border=1 style="" cellspacing=0 cellpadding=2 width=100%
|-
!bgcolor=#d0d0e0 width="7%"|Subfolder(s)
!bgcolor=#d0d0e0 width="11%"|Entity image
!bgcolor=#d0d0e0 width="8%"|Entity file name
!bgcolor=#d0d0e0 width="11%"|Entity description
!bgcolor=#d0d0e0 width="11%"|Notes
|-
{{TableRow|'''kitchen'''|<gallery>File:Jug01.png</gallery>|atdm:jug01|N/A|}}
{{TableRow||<gallery>File:Wine bottle02 standing01.png</gallery>|atdm:wine_bottle02_standing01|N/A|}}
{{TableRow||<gallery>File:Wine bottle02 standing02.png</gallery>|atdm:wine_bottle02_standing02|N/A|}}
|}
</nowiki>
 
 
{|class="wikitable sortable" border=1 style="" cellspacing=0 cellpadding=2 width=100%
|-
!bgcolor=#d0d0e0 width="7%"|Subfolder(s)
!bgcolor=#d0d0e0 width="11%"|Entity image
!bgcolor=#d0d0e0 width="8%"|Entity file name
!bgcolor=#d0d0e0 width="11%"|Entity description
!bgcolor=#d0d0e0 width="11%"|Notes
|-
{{TableRow|'''kitchen'''|<gallery>File:Jug01.png</gallery>|atdm:jug01|N/A|}}
{{TableRow||<gallery>File:Wine bottle02 standing01.png</gallery>|atdm:wine_bottle02_standing01|N/A|}}
{{TableRow||<gallery>File:Wine bottle02 standing02.png</gallery>|atdm:wine_bottle02_standing02|N/A|}}
|}
 
==== "Items" subfolder ====
<div class="mw-collapsible mw-collapsed" data-expandtext="{{int:show}}" data-collapsetext="{{int:hide}}">
 
{|class="wikitable" border=1 style="" cellspacing=0 cellpadding=2 width=100%
|-
|-
!bgcolor=#d0d0e0 width="7%"|Subfolder(s)
!bgcolor=#d0d0e0 width="7%"|Subfolder(s)
Line 13: Line 63:


|-
|-
|'''AAS_flood'''
|''None''
|N/A
|N/A
|aas100_flood
|atdm:item_base
|''This will generate AAS for AI with AAS100''
|''Don't use. The base class for items the player can pick up.''
|
|'''Not''' for mapper use.
|-
|-
|-
|-
|
|
|N/A
|TBA
|aas32_flood
|atdm:item_book_red1
|''This will generate AAS for AI with AAS32''
|''A red Book''
|
|
|-
|-
Line 29: Line 79:
|
|
|N/A
|N/A
|aas48_flood
|atdm:item_book_t1
|''This will generate AAS for AI with AAS48''
|''Book''
|
|
|-
|-
Line 36: Line 86:
|
|
|N/A
|N/A
|aas96_flood
|atdm:item_paper1
|''This will generate AAS for AI with AAS96''
|''Paper''
|
|
|-
|-
Line 43: Line 93:
|
|
|N/A
|N/A
|aas_elemental_flood
|atdm:item_scroll1
|''This will generate AAS for flying elementals.''
|''Scroll''
|
|
|-
|-
Line 50: Line 100:
|
|
|N/A
|N/A
|aas_flood_base
|atdm:map_base
|''Don't use. Base class for all AAS flood entities.''
|''Don't use - base class for all map items.''
|'''Not''' for mapper use.
|'''Not''' for mapper use.
|-
|-
|-
|-
|
|'''Custom'''
|N/A
|aas_rat_flood
|''This will generate AAS for rats.''
|
|-
 
|-
|'''AI Combat Nodes'''
|N/A
|ai_attackcone
|N/A
|N/A
|atdm:grabable_custom_item
|''A customisable, grabable and/or pushable object. Almost any model can be selected and other displayed properties easily modified. The model must have a collision model or the map will not run. If you want it to go in the inventory use atdm:moveable_custom_item.''
|
|
|-
|-
Line 72: Line 114:
|
|
|N/A
|N/A
|ai_attackcone_once
|atdm:moveable_custom_item
|N/A
|''A customisable, moveable object that can go in the inventory and optionally dropped. It can also optionally trigger a target from the inventory. Almost any model can be selected and other displayed properties easily modified. The model must have a collision model or the map will not run. Alternatively, use the 'atdm:static_custom_item' which can still be picked up but is non-droppable and does not need a collision model. For a non-inventory grabable use 'atdm:grabable_custom_item'.''
|
|
|-
|-
Line 79: Line 121:
|
|
|N/A
|N/A
|ai_attackcone_turret
|atdm:static_custom_item
|''Attack cone where monster stands in place and uses normal range attack (if it has one).''
|''A customisable, static object that can be picked up but not dropped. Almost any model can be selected and other displayed properties easily modified. It can optionally trigger a target from the inventory. Alternatively, use the 'atdm:moveable_custom_item', which can optionally be dropped but the model must have a collision model or the map won't run.''
|
|-
|-
|
|N/A
|ai_lost_combat
|''Lost combat node. Monster will retreat to this position when he can no longer reach the player.''
|
|
|-
|-
|}
</div>
==Controlling Where the Player Starts==
{{infobox|text= The "Controlling Where the Player Starts" functionality is broken in TDM 2.10 and 2.11 and got working again since 2.12 dev. The example gui file is also missing, but a new version is being worked on. }}
Beginning with TDM 1.08, map authors can offer more than one start point to players. This could increase re-playability of a map, allowing the player to replay the map with a different starting point.
<div class="mw-collapsible mw-collapsed" style="width: 40%;">
The following text is originally written in 2011 by Grayman and is now outdated:
<div class="mw-collapsible-content">This is an extension to the Button-Controlled Menu Briefing, so you should first obtain and install that package (see above) and become familiar with how it works.
===mainmenu_briefing.gui===
Obtain a new version of mainmenu_briefing.gui from this location:
*[http://www.mediafire.com/?8ygkkhzip5ef3mk Mediafire] (broken link)
This version of mainmenu_briefing.gui adds new definitions to the final briefing screen (screen 6), two for each optional start point.
In the sample gui, you'll see these new definitions:
*windowDef StartPointBox1
*windowDef StartPointBox2
*windowDef StartPointBox3
*windowDef StartPointText1
*windowDef StartPointText2
*windowDef StartPointText3
StartPointTextN defines the starting point text for point N and handles highlighting and mouse events.


|-
StartPointBoxN defines a checkbox to the left of the text describing starting point N.
|'''Animals'''
|<gallery>File:Ai rat small.png</gallery>
|atdm:ai_rat_small
|N/A
|An ordinary rat.
|-
|-
|
|<gallery>File:Ai_spider_tiny.png</gallery>
|atdm:ai_spider_tiny
|''A regular old, tiny spider.  Does not attack; for ambiance only.''
|
|-
|-
|'''Animals/Horses'''
|<gallery>File:Ai animal horse tame1.png</gallery>
|atdm:ai_animal_horse_tame1
|N/A
|Stationary horse with idle animations.
|-
|-
|
|<gallery>File:Ai animal horse tame2.png</gallery>
|atdm:ai_animal_horse_tame2
|N/A
|Stationary horse with idle animations.
|-
|-
|
|<gallery>File:Ai animal horse tame3.png</gallery>
|atdm:ai_animal_horse_tame3
|N/A
|Stationary horse with idle animations.
|-
|-
|
|<gallery>File:Ai animal horse tame4.png</gallery>
|atdm:ai_animal_horse_tame4
|N/A
|Stationary horse with idle animations.
|-
|-
|
|<gallery>File:Ai animal horse tame5.png</gallery>
|atdm:ai_animal_horse_tame5
|N/A
|Stationary horse with idle animations.
|-


|-
Though the template provides three starting points, you can change it to offer any number you wish. They don't need to appear on the last briefing screen, either, though you may find that's the most logical place to offer them.
|'''Builders/Armed'''
|<gallery>File:Ai builder guard.png</gallery>
|atdm:ai_builder_guard
|''Builder Guards defend Church territory and sometimes enforce Church law.''
|
|-
|-
|
|<gallery>File:Ai builder guard lesser.png</gallery>
|atdm:ai_builder_guard_lesser
|''Newer guards are given the more menial jobs while they earn their ceremonial armour.''
|
|-
|-
|
|<gallery>File:Ai builder guard rusted.png</gallery>
|atdm:ai_builder_guard_rusted
|N/A
|
|-
|-
|
|<gallery>File:Ai builder guard rusted02.png</gallery>
|atdm:ai_builder_guard_rusted02
|N/A
|
|-
|-
|
|<gallery>File:Ai builder priest combatant.png</gallery>
|atdm:ai_builder_priest_combatant
|N/A
|
|-


|-
===What the Player Sees===
|'''Builders/Unarmed'''
When the player hovers the mouse over either the checkbox or text for a starting point, the text highlights.
|<gallery>File:Ai builder acolyte.png</gallery>
|atdm:ai_builder_acolyte
|''Builder Acolytes are the lowest rank of the clergy.''
|
|-
|-
|
|<gallery>File:Ai builder forger.png</gallery>
|atdm:ai_builder_forger
|''A valued member of the church who works in the Builder Forges.''
|
|-
|-
|
|<gallery>File:Ai builder guard rusted unarmed.png</gallery>
|atdm:ai_builder_guard_rusted_unarmed
|''A Builder Guard in rusted, rotten armour.  Only prisoners, the lost, or the mad would be seen in such a state.''
|
|-
|-
|
|<gallery>File:Ai builder priest.png</gallery>
|atdm:ai_builder_priest
|''Builder Priests have authority over church territory.''
|
|-


|-
When the player clicks on either the checkbox or text, a checkmark appears in the box and the text remains highlighted. Selecting a different starting position will unhighlight the previous selection and highlight the new one.
|'''Commoners/Armed'''
|<gallery>File:Ai guard female rogue.png</gallery>
|atdm:ai_guard_female_rogue
|''Flaunting social conventions, this woman carries a sword and knows how to use it.''
|
|-
|-
|
|<gallery>File:Ai beggar armed.png</gallery>
|atdm:ai_beggar_armed
|''A desperate beggar, pauper, or urban pagan, armed. Note: By default, the beggar team is not hostile to the player.''
|
|-
|-
|
|<gallery>File:Ai townsfolk commoner archer.png</gallery>
|atdm:ai_townsfolk_commoner_archer
|''This is an untrained peasant who happens to have a bow.''
|
|-
|-
|
|<gallery>File:Ai townsfolk commoner armed.png</gallery>
|atdm:ai_townsfolk_commoner_armed
|''This is an untrained peasant who happens to be armed.''
|
|-
|-
|
|<gallery>File:Ai townsfolk wench armed.png</gallery>
|atdm:ai_townsfolk_wench_armed
|''A generic woman, armed.''
|
|-
|-
|'''Commoners/Armed/Citywatch'''
|<gallery>File:Ai citywatch.png</gallery>
|atdm:ai_citywatch
|''A regular member of the City Watch, charged with keeping the rule of law in the streets of Bridgeport.''
|
|-
|-
|
|<gallery>File:Ai citywatch archer.png</gallery>
|atdm:ai_citywatch_archer
|''An archer member of the City Watch.''
|
|-
|-
|
|<gallery>File:Ai citywatch elite.png</gallery>
|atdm:ai_citywatch_elite
|''An elite member of the City Watch, assigned to guard the wealthiest areas of the city, or as captains over other wards.''
|
|-
|-
|
|<gallery>File:Ai citywatch lesser.png</gallery>
|atdm:ai_citywatch_lesser
|''A less trained, poorly equiped member of the City Watch, generally working in poorer areas of the city.''
|
|-
|-
|'''Commoners/Armed/Foreigners'''
|<gallery>File:Ai moor.png</gallery>
|atdm:ai_moor
|''A foreigner from the southern continent across the sea.''
|
|-
|-
|
|<gallery>File:Ai moor02.png</gallery>
|atdm:ai_moor02
|''A foreigner from the southern continent across the sea.''
|
|-
|-
|'''Commoners/Armed/Guards'''
|<gallery>File:Ai guard archer 01.png</gallery>
|atdm:ai_guard_archer_01
|''A generic archer for hire.''
|
|-
|-
|
|<gallery>File:Ai guard elite.png</gallery>
|atdm:ai_guard_elite
|''An elite guard with expensive equipment; works only for the wealthiest employers.''
|
|-
|-
|
|<gallery>File:Ai guard elite 02.png</gallery>
|atdm:ai_guard_elite_02
|''Often former soldiers, these guards are highly trained and well equipped.''
|
|-
|-
|
|<gallery>File:Ai guard generic 01.png</gallery>
|atdm:ai_guard_generic_01
|''A generic sword for hire.''
|
|-
|-
|
|<gallery>File:Ai guard generic 01 pauldrons.png</gallery>
|atdm:ai_guard_generic_01_pauldrons
|''A generic sword for hire, slightly more armoured.''
|
|-
|-
|
|<gallery>File:Ai guard generic 01b.png</gallery>
|atdm:ai_guard_generic_01b
|''A generic sword for hire.''
|
|-
|-
|
|<gallery>File:Ai guard generic 02.png</gallery>
|atdm:ai_guard_generic_02
|''Another generic sword for hire.''
|
|-
|-
|
|<gallery>File:Ai guard thug.png</gallery>
|atdm:ai_guard_thug
|''A crude hoodlum who enjoys having a reason to push people around.''
|
|-
|-
|
|<gallery>File:Ai proguard.png</gallery>
|atdm:ai_proguard
|''A highly trained, professional guard for hire.''
|
|-
|-
|
|<gallery>File:Ai proguard archer.png</gallery>
|atdm:ai_proguard_archer
|''A highly trained, professional archer for hire.''
|
|-
|-
|'''Commoners/Armed/Pagans'''
|<gallery>File:Ai pagan common archer.png</gallery>
|atdm:ai_pagan_common_archer
|''A humble pagan, with a bow.''
|
|-


|-
When the player starts the mission, he'll start at the selected location.
|
|<gallery>File:Ai pagan common armed.png</gallery>
|atdm:ai_pagan_common_armed
|''A humble pagan, armed.''
|
|-
|-
|'''Commoners/Armed/Thieves'''
|<gallery>File:Ai_burglar.png</gallery>
|atdm:ai_burglar
|''A stealthy thief, used to breaking into places he isn't supposed to be. Default vocals subject to change; to keep it, add 'def_vocal' 'atdm:ai_vocal_set_pro_guard_01' to entity.''
|
|-
|-
|
|<gallery>File:Ai_burglar_professional.png</gallery>
|atdm:ai_burglar_professional
|''Rarest of all, this professional thief is well trained and very well equiped. Default vocals subject to change; to keep it, add 'def_vocal' 'atdm:ai_vocal_set_pro_guard_01' to entity.''
|
|-


|-
If the player makes no selection, he'll start at the info_player_start in the map that has the lowest entity number.
|
|<gallery>File:Ai_burglar_professional_archer.png</gallery>
|atdm:ai_burglar_professional_archer
|''Rarest of all, this professional thief is well trained and very well equiped. Uses bow in combat. Default vocals subject to change; to keep it, add 'def_vocal' 'atdm:ai_vocal_set_pro_guard_01' to entity.''
|
|-
|-
|
|<gallery>File:Ai_female_rogue.png</gallery>
|atdm:ai_female_rogue
|''Carries a weapon and knows how to defend herself. On the criminal team. Model subject to change.''
|
|-
|-
|
|<gallery>File:Ai_female_thief.png</gallery>
|atdm:ai_female_thief
|''A professional criminal, this woman can hold her own against most men.''
|
|-
|-
|
|<gallery>File:Ai_thief01.png</gallery>
|atdm:ai_thief01
|''Good at what he does, this thief is a few steps up from a common pickpocket.''
|
|-
|-
|
|<gallery>File:Ai_thief02.png</gallery>
|atdm:ai_thief02
|''A run of the mill pickpocket.  Thieves like this are a dime a dozen.''
|
|-
|-
|
|<gallery>File:Ai_thief02_archer.png</gallery>
|atdm:ai_thief02_archer
|''A generic thief with bow.''
|
|-
|-
|
|<gallery>File:Ai_thief_thug.png</gallery>
|atdm:ai_thief_thug
|''A crude ruffian who uses his muscle to get what he wants. On the 'Criminal' Team.''
|
|-


|-
===Making It Your Own===
|'''Commoners/Unarmed'''
Three sample starting point descriptions are provided. Change these to match the briefing and starting points for your map. Look for and change these lines:
|<gallery>File:Ai gentleman scientist.png</gallery>
text "Scale the north wall and enter through an attic window."
|atdm:ai_gentleman_scientist
.
|''Not every inventor is a member of the Inventor's Guild. It is common for wealthy gentlemen with a little bit of curiosity to examine the mysteries of anatomy, astrology and alchemy in their spare time.''
.
|
.
|-
text "Use the secret tunnel into the cellar."
|-
.
|
.
|<gallery>File:Ai labourer wealthy01.png</gallery>
.
|atdm:ai_labourer_wealthy01
text "Slide down the coal chute."
|''A well-off labourer, perhaps a master craftsmen. Carries a 50gp purse by default.''
|
|-
|-
|
|<gallery>File:Ai merchant01.png</gallery>
|atdm:ai_merchant01
|''A generic, middle-class merchant. Carries a 50gp purse by default.''
|
|-
|-
|
|<gallery>File:Ai thug unarmed.png</gallery>
|atdm:ai_thug_unarmed
|''A crude scoundrel who is a coward at heart.''
|
|-
|-
|
|<gallery>File:Ai townsfolk beggar.png</gallery>
|atdm:ai_townsfolk_beggar
|''A ragged beggar, pauper, or urban pagan. Note: By default, the beggar team is not hostile to the player.''
|
|-
|-
|
|<gallery>File:Ai townsfolk commoner.png</gallery>
|atdm:ai_townsfolk_commoner
|''A generic engineer/blacksmith/miner character.''
|
|-
|-
|
|<gallery>File:Ai townsfolk commoner 02.png</gallery>
|atdm:ai_townsfolk_commoner_02
|''This is a generic civilian, suitable for servants, merchants, or tradespeople.''
|
|-
|-
|
|<gallery>File:Ai townsfolk engineer.png</gallery>
|atdm:ai_townsfolk_engineer
|''A generic engineer/blacksmith/miner character.''
|
|-
|-
|
|<gallery>File:Ai townsfolk female.png</gallery>
|atdm:ai_townsfolk_female
|''A maidservant or common woman.''
|
|-
|-
|
|<gallery>File:Ai townsfolk wench.png</gallery>
|atdm:ai_townsfolk_wench
|''A generic woman.''
|
|-
|-
|
|<gallery>File:Ai whore.png</gallery>
|atdm:ai_whore
|''A woman of loose morals. On the 'Street People' team, and thus neutral to the player.''
|
|-
|-
|'''Commoners/Unarmed/Inventors'''
|<gallery>File:Ai inventor scientist.png</gallery>
|atdm:ai_inventor_scientist
|''A high-ranking member of the Inventor's Guild.''
|
|-
|-
|'''Commoners/Unarmed/Pagans'''
|<gallery>File:Ai pagan common.png</gallery>
|atdm:ai_pagan_common
|''A humble pagan.''
|
|-


|-
Each selection is tied to a specific info_player_start in your map. Look for these lines and change them to match the names of your info_player_starts:
|'''Internal'''
set "gui::startSelect" "PlayerStart1";
|N/A
.
|atdm:ai_melee_set_base
.
|''Base class for melee difficulty sets (Do not use).''
.
|'''Not''' for mapper use.
set "gui::startSelect" "PlayerStart2";
|-
.
|-
.
|
.
|N/A
set "gui::startSelect" "PlayerStart3";
|atdm:ai_melee_set_knife_novice_expert
|N/A
|
|-
|-
|
|N/A
|atdm:ai_melee_set_knife_novice_hard
|N/A
|
|-
|-
|
|N/A
|atdm:ai_melee_set_knife_novice_normal
|N/A
|
|-
|-
|
|N/A
|atdm:ai_melee_set_knife_skilled_expert
|N/A
|
|-
|-
|
|N/A
|atdm:ai_melee_set_knife_skilled_hard
|N/A
|
|-
|-
|
|N/A
|atdm:ai_melee_set_knife_skilled_normal
|N/A
|
|-
|-
|
|N/A
|atdm:ai_melee_set_knife_trained_expert
|N/A
|
|-
|-
|
|N/A
|atdm:ai_melee_set_knife_trained_hard
|N/A
|
|-
|-
|
|N/A
|atdm:ai_melee_set_knife_trained_normal
|N/A
|
|-
|-
|
|N/A
|atdm:ai_melee_set_novice_expert
|N/A
|
|-
|-
|
|N/A
|atdm:ai_melee_set_novice_hard
|N/A
|
|-
|-
|
|N/A
|atdm:ai_melee_set_novice_normal
|N/A
|
|-
|-
|
|N/A
|atdm:ai_melee_set_skilled_expert
|N/A
|
|-
|-
|
|N/A
|atdm:ai_melee_set_skilled_hard
|N/A
|
|-
|-
|
|N/A
|atdm:ai_melee_set_skilled_normal
|N/A
|
|-
|-
|
|N/A
|atdm:ai_melee_set_trained_expert
|N/A
|
|-
|-
|
|N/A
|atdm:ai_melee_set_trained_hard
|N/A
|
|-
|-
|
|N/A
|atdm:ai_melee_set_trained_normal
|N/A
|
|-
|-
|'''Internal/Base Class'''
|N/A
|atdm:ai_archer_base
|''Don't use. Base class for all TDM AI with projectile weapons.''
|'''Not''' for mapper use.
|-
|-
|
|N/A
|atdm:ai_base
|''Don't use. Base class for all TDM AI entities.''
|'''Not''' for mapper use.
|-
|-
|
|N/A
|atdm:ai_humanoid
|''Don't use. Base class for all TDM humanoid AI entities.''
|'''Not''' for mapper use.
|-
|-
|
|N/A
|atdm:ai_humanoid_newskel
|''Don't use. Base class for all TDM humanoid AI entities using new skeleton.''
|'''Not''' for mapper use.
|-
|-
|
|N/A
|atdm:ai_humanoid_undead
|''Don't use; base class for all undead.''
|'''Not''' for mapper use.
|-
|-
|
|N/A
|atdm:ai_humanoid_undead_newskel
|''Don't use; base class for all undead using new skeleton.''
|'''Not''' for mapper use.
|-
|-
|
|N/A
|atdm:ai_monster_base
|''Don't use. Base class for all TDM Monster AI entities.''
|'''Not''' for mapper use.
|-
|-
|
|N/A
|atdm:ai_undead_zombie_base
|''Don't use; base class for all zombies.''
|'''Not''' for mapper use.
|-
|-
|
|N/A
|atdm:ai_steambot_base
|N/A
|'''Not''' for mapper use. (Probably.)
|-
|-
|'''Internal/Trainer'''
|<gallery>File:Ai trainer melee.png</gallery>
|atdm:ai_trainer_melee_attack
|''AI melee trainer, trains player to make attacks.''
|
|-
|-
|
|<gallery>File:Ai trainer melee dummy base.png</gallery>
|atdm:ai_trainer_melee_dummy_base
|''Base class for melee training dummy (do not use).''
|'''Not''' for mapper use.
|-
|-
|
|<gallery>File:Ai trainer melee dummy builder guard.png</gallery>
|atdm:ai_trainer_melee_dummy_builder_guard
|''Builder guard melee training dummy.''
|
|-
|-
|
|<gallery>File:Ai trainer melee dummy builder guard lesser.png</gallery>
|atdm:ai_trainer_melee_dummy_builder_guard_lesser
|''Lesser Builder guard melee training dummy.''
|
|-
|-
|
|<gallery>File:Ai trainer melee dummy citywatch.png</gallery>
|atdm:ai_trainer_melee_dummy_citywatch
|''Citywatch melee training dummy.''
|
|-
|-
|
|<gallery>File:Ai trainer melee dummy commoner.png</gallery>
|atdm:ai_trainer_melee_dummy_commoner
|''Unarmored melee training dummy (uses commoner model).''
|
|-
|-
|
|<gallery>File:Ai trainer melee dummy elite.png</gallery>
|atdm:ai_trainer_melee_dummy_elite
|''Elite guard melee training dummy.''
|
|-
|-
|
|<gallery>File:Ai trainer melee dummy proguard.png</gallery>
|atdm:ai_trainer_melee_dummy_proguard
|''Proguard melee training dummy.''
|
|-
|-
|
|<gallery>File:Ai trainer melee.png</gallery>
|atdm:ai_trainer_melee_fast_base
|''Base class for fast AI melee trainer (do not use).''
|'''Not''' for mapper use.
|-
|-
|
|<gallery>File:Ai trainer melee.png</gallery>
|atdm:ai_trainer_melee_feint
|''AI melee trainer, trains player to make feint attacks.''
|
|-
|-
|
|<gallery>File:Ai trainer melee.png</gallery>
|atdm:ai_trainer_melee_feint_fast
|''AI melee trainer, trains player to make feint attacks.''
|
|-
|-
|
|<gallery>File:Ai trainer melee.png</gallery>
|atdm:ai_trainer_melee_parry
|''AI melee trainer, trains player to make parries.''
|
|-
|-
|
|<gallery>File:Ai trainer melee.png</gallery>
|atdm:ai_trainer_melee_parry_fast
|''AI melee trainer, trains player to make parries.''
|
|-
|-
|
|<gallery>File:Ai trainer melee.png</gallery>
|atdm:ai_trainer_melee_parry_feint
|''AI melee trainer, trains player to parry, then feint.''
|
|-
|-
|
|<gallery>File:Ai trainer melee.png</gallery>
|atdm:ai_trainer_melee_parry_feint_fast
|''AI melee trainer, trains player to parry, then feint.''
|
|-
|-
|
|<gallery>File:Ai trainer melee.png</gallery>
|atdm:ai_trainer_melee_parry_riposte
|''AI melee trainer, trains player to parry-riposte.''
|
|-
|-
|
|<gallery>File:Ai trainer melee.png</gallery>
|atdm:ai_trainer_melee_parry_riposte_fast
|''AI melee trainer, trains player to parry-riposte.''
|
|-
|-
|
|<gallery>File:Ai trainer melee.png</gallery>
|atdm:ai_trainer_melee_slow_base
|''Base class for slow AI melee trainer (do not use).''
|'''Not''' for mapper use.
|-
|-
|
|<gallery>File:Ai trainer melee.png</gallery>
|atdm:ai_trainer_melee_stophit_evade
|''AI melee trainer, trains player stophit and evade.''
|
|-
|-
|
|<gallery>File:Ai trainer melee.png</gallery>
|atdm:ai_trainer_melee_stophit_evade_fast
|''AI melee trainer, trains player stophit and evade.''
|
|-
|-
|
|<gallery>File:Ai trainer melee.png</gallery>
|atdm:ai_trainer_melee_stophit_parry_feint
|''AI melee trainer, trains player stophit, then parry and riposte with a feint attack.''
|
|-
|-
|
|<gallery>File:Ai trainer melee.png</gallery>
|atdm:ai_trainer_melee_stophit_parry_riposte
|''AI melee trainer, trains player stophit, then parry-riposte.''
|
|-


|-
That's all you need to do to offer three starting points.
|'''Internal/Vocal Sets'''
|N/A
|atdm:ai_vocal_kitchen
|
|
|-
|-
|
|N/A
|atdm:ai_vocal_set_base
|''The default vocal set for AI, defines which sounds are played in the different situations.''
|
|-
|-
|
|N/A
|atdm:ai_vocal_set_builder_01
|''Incomplete set: contains only a builder conversation, is the same as atdm:ai_vocal_set_builder_02.''
|
|-
|-
|
|N/A
|atdm:ai_vocal_set_builder_02
|''Experienced; zealous; occasionaly uses archaic language; strong voice (suits builder guards).''
|
|-
|-
|
|N/A
|atdm:ai_vocal_set_builder_02_priest_armed
|''Experienced; zealous; occasionaly uses archaic language; strong voice (some specific lines tailored for priests).''
|
|-
|-
|
|N/A
|atdm:ai_vocal_set_builder_02_priest_civilian
|N/A
|
|-
|-
|
|N/A
|atdm:ai_vocal_set_builder_03_civilian
|''Strong voice, experienced, determined; archaic language; patient and somewhat monitone, talks about servitude, orthodoxy (suits builder guards, forgers, inquisitors, priests).''
|
|-
|-
|
|N/A
|atdm:ai_vocal_set_builder_03_guard
|''Strong voice, experienced, determined; archaic language; patient and somewhat monitone, talks about servitude, orthodoxy (suits builder guards, forgers, inquisitors, priests).''
|
|-
|-
|
|N/A
|atdm:ai_vocal_set_builder_04_civilian
|''Young; overzealous; slips out of archaic language sometimes; cliche scriptures, full of faith and burning with confidence, talks about doing great things. (suits builder guards, acolytes).''
|
|-
|-
|
|N/A
|atdm:ai_vocal_set_builder_04_guard
|''Young; overzealous; slips out of archaic language sometimes; cliche scriptures, full of faith and burning with confidence, talks about doing great things. (suits builder guards, acolytes).''
|
|-
|-
|
|N/A
|atdm:ai_vocal_set_commander_armed_01
|''Slight northern accent. This character is used to leading other people. He is strong, confident and used to being listened to.  He talks a lot about plans and organization. Suitable for guard leaders or noblemen.''
|
|-
|-
|
|N/A
|atdm:ai_vocal_set_commander_mage_01
|''A strong, commandeering character, tailored to mages. Slight northern accent.''
|
|-
|-
|
|N/A
|atdm:ai_vocal_set_commander_unarmed_01
|''This civilian is used to leading other people. Slight northern accent. He is strong, confident and used to being listened to. He talks a lot about plans and organization. Suitable for guard leaders or noblemen.''
|
|-
|-
|
|N/A
|atdm:ai_vocal_set_critic_armed_01
|''A know-it all, well-spoken character, who always thinks he knows best. (Suits nobles, mages, or snooty guards.)''
|
|-
|-
|
|N/A
|atdm:ai_vocal_set_critic_inventor_armed_01
|''A know-it all, well-spoken character. (suits commoners, generic guards).''
|
|-
|-
|
|N/A
|atdm:ai_vocal_set_critic_inventor_unarmed_01
|''A know-it all, well-spoken character. (tailored to inventors).''
|
|-
|-
|
|N/A
|atdm:ai_vocal_set_critic_mage_01
|''A know-it all, well-spoken character. (tailored to mages).''
|
|-
|-
|
|N/A
|atdm:ai_vocal_set_critic_unarmed_01
|''A know-it all, well-spoken character, who always thinks he knows best. (Suits nobles, snooty servants.)''
|
|-
|-
|
|N/A
|atdm:ai_vocal_set_cynic_armed_01
|''This is a cynical, hot-tempered character who complains a lot about his job. Suits guards.''
|
|-
|-
|
|N/A
|atdm:ai_vocal_set_cynic_citywatch
|''This citywatch is a cynical, hot-tempered character. Complains a lot about his job.''
|
|-
|-
|
|N/A
|atdm:ai_vocal_set_cynic_unarmed_01
|''This civilian is a cynical, hot-tempered character who complains a lot about his job.''
|
|-
|-
|
|N/A
|atdm:ai_vocal_set_drunk_citywatch_01
|''A gravelly-voiced, inebriated city watch of limited intelligence.''
|
|-
|-
|
|N/A
|atdm:ai_vocal_set_drunk_civilian_01
|''A gravelly-voiced, inebriated character of limited intelligence.''
|
|-
|-
|
|N/A
|atdm:ai_vocal_set_drunk_guard_01
|''A gravelly-voiced, inebriated guard of limited intelligence.''
|
|-
|-
|
|N/A
|atdm:ai_vocal_set_elemental
|''Default voices/noises for elementals.''
|
|-
|-
|
|N/A
|atdm:ai_vocal_set_grumbler_civilian_01
|''A bored, seen-it-all character with a gravelly voice; complains a lot; uneducated; gruff, talks about his aches, pains, hunger, boredom, losing at gambling, etc (suits guards, forger, servants, commoners).''
|
|-
|-
|
|N/A
|atdm:ai_vocal_set_grumbler_drunk_01
|N/A
|
|-
|-
|
|N/A
|atdm:ai_vocal_set_grumbler_guard_01
|''A bored, seen-it-all character with a gravelly voice; complains a lot; uneducated; gruff, talks about his aches, pains, hunger, boredom, losing at gambling, etc (suits guards, forger, servants, commoners).''
|
|-
|-
|
|N/A
|atdm:ai_vocal_set_jack_beggar_01
|''A generic beggar character, tends to complain.''
|
|-
|-
|
|N/A
|atdm:ai_vocal_set_jack_civilian_01
|''A generic character, tends to complain. (Suits generic commoners.)''
|
|-
|-
|
|N/A
|atdm:ai_vocal_set_jack_cook_01
|''A generic cook character, tends to complain.''
|
|-
|-
|
|N/A
|atdm:ai_vocal_set_jack_guard_01
|''A generic character, tends to complain. (Suits commoners, generic guards.)''
|
|-
|-
|
|N/A
|atdm:ai_vocal_set_jack_labourer_01
|''A generic labourer character, tends to complain.''
|
|-
|-
|
|N/A
|atdm:ai_vocal_set_jack_merchant_01
|''A generic merchant character, tends to complain.''
|
|-
|-
|
|N/A
|atdm:ai_vocal_set_lady_01
|''An aristocratic woman.''
|
|-
|-
|
|N/A
|atdm:ai_vocal_set_lady_02
|''An aristocratic woman.''
|
|-
|-
|
|N/A
|atdm:ai_vocal_set_lady_armed_02
|''An aristocratic woman, ready to fight.''
|
|-
|-
|
|N/A
|atdm:ai_vocal_set_lady_guard_01
|''An aristocratic woman, ready to fight.''
|
|-


|-
If you want to offer only two starting points, comment out the third checkbox and text windowDef definitions, as well as any other lines that reference those definitions.
|
|N/A
|atdm:ai_vocal_set_lord_civilian_01
|''Strong voice; educated; arrogant and cold; dismissive, talks about himself and his own power/money. The Lord is used to being obeyed. (suits noblemen, elite guards, mages, inventor scientists).''
|
|-
|-
|
|N/A
|atdm:ai_vocal_set_lord_guard_01
|''Strong voice; educated; arrogant and cold; dismissive, talks about himself and his own power/money. The Lord is used to being obeyed. (suits noblemen, elite guards, mages, inventor scientists).''
|
|-
|-
|
|N/A
|atdm:ai_vocal_set_maiden_armed_01
|''This is a This is a young female from the common class. She is a probably a servant or tradeswoman. She is earnest and somewhat timid and used to being ordered around by her betters.''
|
|-


|-
If you want to offer four starting points, copy/paste the StartPointBox3 and StartPointText3 definitions, rename the copies as StartPointBox4 and StartPointText4, adjust (x,y) locations on the screen, and extend the first three box/text definitions so they know about the new definitions.
|
|N/A
|atdm:ai_vocal_set_maiden_mage
|''This is a young female mage. She is earnest and somewhat timid.''
|
|-
|-
|
|N/A
|atdm:ai_vocal_set_maiden_unarmed_01
|''This is a young female from the common class. She is a probably a servant or tradeswoman. She is earnest and somewhat timid and used to being ordered around by her betters.''
|
|-
|-
|
|N/A
|atdm:ai_vocal_set_moor_armed_01
|''A foreign moor from the southern desert lands across the sea.''
|
|-
|-
|
|N/A
|atdm:ai_vocal_set_moor_mage
|''A foreign sorcerer from the southern desert lands across the sea.''
|
|-
|-
|
|N/A
|atdm:ai_vocal_set_moor_unarmed_01
|''This civilian is a foreign moor from the southern desert lands across the sea.''
|
|-
|-
|
|N/A
|atdm:ai_vocal_set_mute
|''Empty vocal set for mute character, for testing, or as basis for new set with just  a few utterances.''
|
|-


|-
For example, in the StartPointBox1 definition, you'll see these lines in the onAction() event:
|
set "background" "guis/assets/objectives/box_checked";
|N/A
set "StartPointBox2::background" "guis/assets/objectives/box_default";
|atdm:ai_vocal_set_pro_civilian_01
set "StartPointBox3::background" "guis/assets/objectives/box_default";
|''Professional, cool; uneducated but experienced; man of few words, very aware of his surroundings, often predicts the player's behaviour; talks about doing his job well (suits guards, elite guards, mages, thieves, inventors, nobles).''
set "StartPointText1::forecolor" HIGHLIGHTED_TEXT_COLOR;
|
set "StartPointText2::forecolor" DEFAULT_TEXT_COLOR;
|-
set "StartPointText3::forecolor" DEFAULT_TEXT_COLOR;
|-
|
|N/A
|atdm:ai_vocal_set_pro_guard_01
|''Professional, cool; uneducated but experienced; man of few words, very aware of his surroundings, often predicts the player's behaviour; talks about doing his job well (suits guards, elite guards, mages, thieves, inventors, nobles).''
|
|-
|-
|
|N/A
|atdm:ai_vocal_set_pro_trainer
|N/A
|
|-
|-
|
|N/A
|atdm:ai_vocal_set_pro_trainer_feint
|N/A
|
|-
|-
|
|N/A
|atdm:ai_vocal_set_revenant_01
|''Default voices/noises for revenants.''
|
|-
|-
|
|N/A
|atdm:ai_vocal_set_simpleton_civilian_01
|''A simple, unintelligent character, who speaks in a slow, measured voice. He goes about his life dealing with the here and now, and doesn't think much about anything beyond what he's doing. Tends to state the obvious.''
|
|-
|-
|
|N/A
|atdm:ai_vocal_set_simpleton_guard_01
|''A simple, unintelligent character, who speaks in a slow, measured voice. He goes about his life dealing with the here and now, and doesn't think much about anything beyond what he's doing. Tends to state the obvious. (Suits commoners, generic guards.)''
|
|-
|-
|
|N/A
|atdm:ai_vocal_set_spider01
|''Default voices/noises for spiders.''
|
|-
|-
|
|N/A
|atdm:ai_vocal_set_thug_civilian_01
|''Crude and crass; uneducated; violent; threatening voice, talks about gambling, bullying, whoring, and bodily functions; swears a lot (suits guards, commoners, thieves).''
|
|-
|-
|
|N/A
|atdm:ai_vocal_set_thug_guard_01
|''Crude and crass; uneducated; violent; threatening voice, talks about gambling, bullying, whoring, and bodily functions; swears a lot (suits guards, commoners, thieves).''
|
|-
|-
|
|N/A
|atdm:ai_vocal_set_wench_barmaid_01
|''A saucy barmaid.''
|
|-
|-
|
|N/A
|atdm:ai_vocal_set_wench_civilian_01
|''A saucy woman, unarmed.''
|
|-
|-
|
|N/A
|atdm:ai_vocal_set_wench_guard_01
|''A saucy woman, ready to fight.''
|
|-
|-
|
|N/A
|atdm:ai_vocal_set_wench_soft_civilian_01
|''A softer spoken woman, unarmed.''
|
|-
|-
|
|N/A
|atdm:ai_vocal_set_wench_soft_guard_01
|''A softer spoken woman, ready to fight.''
|
|-
|-
|
|N/A
|atdm:ai_vocal_set_wench_whore_01
|''A lady of the night, unarmed.''
|
|-
|-
|
|N/A
|atdm:ai_vocal_set_werebeast_01
|''Default voices/noises for werebeasts.''
|
|-
|-
|
|N/A
|atdm:ai_vocal_set_zombie_01
|''Default voices/noises for zombies.''
|
|-
|-
|'''Machines'''
|<gallery>File:Ai lantern bot.png</gallery>
|atdm:ai_lantern_bot
|N/A
|Currently the only working in-game automaton.
|-
|-
|
|N/A
|atdm:ai_steambot_guard
|N/A
|Currently not operational in TDM.
|-


|-
If you add a fourth starting point, these lines would change to include knowledge of the new starting point box/text definitions:
|'''Mages'''
|<gallery>File:Ai archmage01.png</gallery>
|atdm:ai_archmage01
|''A rare and powerful member of the Hermetic Order with a powerful fireball attack.  Note: behaviour subject to change in a future update.''
|
|-
|-
|
|<gallery>File:Ai archmage01_female.png</gallery>
|atdm:ai_archmage01_female
|N/A
|Female counterpart to the male archmage.
|-
|-
|
|<gallery>File:Ai mage01.png</gallery>
|atdm:ai_mage01
|''A typical member of the Hermetic Order; relies primarily on melee attack. Note: behaviour subject to change in a future update.''
|
|-
|-
|
|<gallery>File:Ai mage01_female.png</gallery>
|atdm:ai_mage01_female
|N/A
|Female counterpart to the male mage.
|-
|-
|
|<gallery>File:Ai sorcerer moor.png</gallery>
|atdm:ai_sorcerer_moor
|''A foreign sorcerer from the southern lands across the sea.''
|
|-


|-
set "background" "guis/assets/objectives/box_checked";
|'''Monsters/Elementals'''
set "StartPointBox2::background" "guis/assets/objectives/box_default";
|<gallery>File:Ai elemental.png</gallery>
set "StartPointBox3::background" "guis/assets/objectives/box_default";
|atdm:ai_elemental
set "StartPointBox4::background" "guis/assets/objectives/box_default";
|
set "StartPointText1::forecolor" HIGHLIGHTED_TEXT_COLOR;
|[[Fire Elementals|Fire Elemental]]. Added to TDM in version 2.05.
set "StartPointText2::forecolor" DEFAULT_TEXT_COLOR;
|-
set "StartPointText3::forecolor" DEFAULT_TEXT_COLOR;
|-
set "StartPointText4::forecolor" DEFAULT_TEXT_COLOR;
|'''Monsters/Giant Spiders'''
|<gallery>File:Ai_spider.png</gallery>
|atdm:ai_spider
|''A giant spider. Use spawnarg: 'animal_patrol' '1' to have spider wander around randomly.''
|
|-
|-
|
|<gallery>File:Ai_spider_child.png</gallery>
|atdm:ai_spider_child
|''A very large spider. Use spawnarg: 'animal_patrol' '1' to have spider wander around randomly.''
|
|-
|-
|
|<gallery>File:Ai_spider_huge.png</gallery>
|atdm:ai_spider_huge
|''A huge giant spider. Use spawnarg: 'animal_patrol' '1' to have spider wander around randomly.''
|
|-
|-
|
|<gallery>File:Ai_spider_huge02.png</gallery>
|atdm:ai_spider_huge02
|''A huge giant spider. Use spawnarg: 'animal_patrol' '1' to have spider wander around randomly.''
|
|-
|-
|
|<gallery>File:Ai_spider_thin.png</gallery>
|atdm:ai_spider_thin
|''A thinner giant spider. Use spawnarg: 'animal_patrol' '1' to have spider wander around randomly.''
|
|-
|-
|'''Monsters/Shapeshifters'''
|N/A
|atdm:ai_monster_werebeast
|''A powerful shapeshifer, able to take the form of a beast.''
|Currently not operational in TDM.
|-
|-
|
|N/A
|atdm:ai_monster_werebeast_crawler
|''A powerful shapeshifer, able to take the form of a beast, moves on all fours.''
|Currently not operational in TDM.
|-
|-
|'''Monsters/Undead'''
|<gallery>File:Ai undead revenant.png</gallery>
|atdm:ai_undead_revenant
|''The animated corpse of a Builder who was executed for the most grevious of heresies.''
|
|-
|-
|
|<gallery>File:Ai undead skeleton.png</gallery>
|atdm:ai_undead_skeleton
|''An unarmed skeleton who uses zombie animations.''
|
|-
|-
|
|<gallery>File:Ai undead skeleton armed.png</gallery>
|atdm:ai_undead_skeleton_armed
|''An old, bleached white skeleton, who carries a rusty sword.''
|
|-
|-
|
|<gallery>File:Ai undead skeleton bloody.png</gallery>
|atdm:ai_undead_skeleton_bloody
|''A fresh, bloody skeleton; uses unarmed attack.''
|
|-
|-
|
|<gallery>File:Ai undead skeleton bloody armed.png</gallery>
|atdm:ai_undead_skeleton_bloody_armed
|''A fresh, bloody skeleton, who carries a rusty sword.''
|
|-
|-
|
|<gallery>File:Ai undead skeleton dirty.png</gallery>
|atdm:ai_undead_skeleton_dirty
|''Old, dirty skeleton; uses unarmed attack.''
|
|-
|-
|
|<gallery>File:Ai undead skeleton dirty armed.png</gallery>
|atdm:ai_undead_skeleton_dirty_armed
|''Old, dirty skeleton, who carries a rusty sword.''
|
|-
|-
|'''Monsters/Undead/Spirits'''
|<gallery>File:Ai builder guard ghost.png</gallery>
|atdm:ai_builder_guard_ghost
|''Invisble shadow monster.''
|
|-
|-
|
|<gallery>File:Ai revenant spirit.png</gallery>
|atdm:ai_revenant_spirit
|''A skeletal spirit; uses default AI behaviour right now which isn't really appropriate for a ghost. Probably best used in scripted scenes.''
|
|-
|-
|'''Monsters/Undead/Zombies'''
|<gallery>File:Ai undead zombie.png</gallery>
|atdm:ai_undead_zombie
|''A walking corpse with gaping mouth.''
|
|-
|-
|
|<gallery>File:Ai undead zombie alt01.png</gallery>
|atdm:ai_undead_zombie_alt01
|''A bloodier version of the default zombie.''
|
|-


|-
Make similar changes where needed by searching the file for StartPointBox3 and StartPointText3 to find all the places where box/text definitions are referenced.
|'''Nobles/Armed'''
|<gallery>File:Ai nobleman02 armed.png</gallery>
|atdm:ai_nobleman02_armed
|''An armed aristocrat.''
|
|-
|-
|
|<gallery>File:Ai nobleman armed.png</gallery>
|atdm:ai_nobleman_armed
|N/A
|
|-
|-
|'''Nobles/Unarmed'''
|<gallery>File:Ai nobleman.png</gallery>
|atdm:ai_nobleman
|''A wealthy aristocrat.''
|
|-
|-
|
|<gallery>File:Ai nobleman02 unarmed.png</gallery>
|atdm:ai_nobleman02_unarmed
|''An unarmed aristocrat.''
|
|-
|-
|
|<gallery>File:Ai noblewoman01.png</gallery>
|atdm:ai_noblewoman01
|''A wealthy aristocratic lady.''
|
|-


|-
Also look for references to "selectionIndex", see how it's used, and adjust its setting in your new definitions accordingly.  
|'''Relations'''
|TBA
|atdm:team_relations
|''This entity sets up the team relationships for this map, extending and/or overriding the values read from the 'atdm:team_relations_default' entityDef. This entity will remove itself right after spawn.''
|
|-
|}


''Forum member Destined was kind enough to compile [http://forums.thedarkmod.com/topic/17676-ai-stats-wiki-page/#entry388418 a numerical list of AI characters] in early 2016. It should be up to date even now.''
If you have questions, you can contact grayman on the TDM forums by either sending a PM or posting to this thread: [http://forums.thedarkmod.com/topic/13210-controlling-where-the-player-starts-a-mission/ Controlling where the player starts a mission]
==== "Func" subfolder ====
</div>
<pre style="height:350px; overflow:scroll;">
</div>
{|class="wikitable sortable" border=1 style="" cellspacing=0 cellpadding=2 width=100%
|-
!bgcolor=#d0d0e0 width="7%"|Subfolder(s)
!bgcolor=#d0d0e0 width="11%"|Entity image
!bgcolor=#d0d0e0 width="8%"|Entity file name
!bgcolor=#d0d0e0 width="11%"|Entity description
!bgcolor=#d0d0e0 width="11%"|Notes
|-


|-
<div class="mw-collapsible mw-collapsed" style="width: 40%;">
|''None''
=== Testmap path nodes ===
|N/A
<div class="mw-collapsible-content">
|atdm:func_shooter
Save code in texteditor (for example) as path.map and load in DR
|''An entity shooting projectiles in (regular) time intervals.''
Version 2
|
// entity 0
|-
{
|-
"classname" "worldspawn"
|
"editor_description" "Simple test map consisting of a large room with a player start and a blue room comprising the mapstartpack_complete prefab. The ambient world has been brightened to 0.1 0.1 0.1."
|N/A
// primitive 0
|atdm:vanishing_platform
{
|''Create a brush, select it, then click 'Create entity' and select Info/atdm:start_platform. The platform will vanish after X seconds (default 5, adjustable with the spawnarg 'remove_delay' after the map start. If you place any item on it, link that item to the platform so it will get activated when the platform vanishes.''
brushDef3
|
{
|-
( 0 0 1 -160 ) ( ( 0.015625 0 -3.9375 ) ( 0 0.015625 3.109375 ) ) "textures/common/caulk" 0 0 0
|-
( 0 1 0 -764 ) ( ( 0.015625 0 -3.109375 ) ( 0 0.015625 -2 ) ) "textures/common/caulk" 0 0 0
|
( 1 0 0 -313 ) ( ( 0.015625 0 -3.9375 ) ( 0 0.015625 -2 ) ) "textures/common/caulk" 0 0 0
|N/A
( 0 -1 0 -260 ) ( ( 0.015625 0 3.109375 ) ( 0 0.015625 -2 ) ) "textures/common/caulk" 0 0 0
|func_aas_obstacle
( -1 0 0 -711 ) ( ( 0.015625 0 3.9375 ) ( 0 0.015625 -2 ) ) "textures/common/caulk" 0 0 0
|''Used to dynamically block off areas from monsters. Toggles on/off when triggered.''
( 0 0 -1 128 ) ( ( 0.007811999879777431 0 -1.968623995780945 ) ( 0 0.007811999879777431 -1.554587960243225 ) ) "textures/darkmod/wood/boards/pier_platform" 0 0 0
|
}
|-
}
|-
// primitive 1
|
{
|N/A
brushDef3
|func_aas_portal
  {
|''Used to dynamically block off areas from monsters. Toggles on/off when triggered.''
( 0 0 1 -128 ) ( ( 0.015625 0 -3.9375 ) ( 0 0.015625 3.109375 ) ) "textures/common/caulk" 0 0 0
|
( 0 1 0 -796 ) ( ( 0.015625 0 -3.109375 ) ( 0 0.015625 -2 ) ) "textures/common/caulk" 0 0 0
|-
( 1 0 0 -313 ) ( ( 0.015625 0 -3.9375 ) ( 0 0.015625 -2 ) ) "textures/common/caulk" 0 0 0
|-
( 0 0 -1 -128 ) ( ( 0.015625 0 -3.9375 ) ( 0 0.015625 -3.109375 ) ) "textures/common/caulk" 0 0 0
|
( -1 0 0 -711 ) ( ( 0.015625 0 3.9375 ) ( 0 0.015625 -2 ) ) "textures/common/caulk" 0 0 0
|N/A
( 0 -1 0 764 ) ( ( 0.007811999879777431 0 1.554587960243225 ) ( 0 0.007811999879777431 -0.9999359846115112 ) ) "textures/darkmod/wood/boards/pier_platform" 0 0 0
|func_activator
}
|''Non-displayed entity used to activate triggers when it touches them. Bind to a mover to
}
have the mover activate a triggers as it moves. When target by triggers, activating the
// primitive 2
trigger will toggle the activator on and off. Activator will disable itself when it activates a trigger.''
{
|
brushDef3
|-
{
|-
( 0 0 1 -128 ) ( ( 0.015625 0 -3.9375 ) ( 0 0.015625 3.109375 ) ) "textures/common/caulk" 0 0 0
|
( 0 1 0 -764 ) ( ( 0.015625 0 -3.109375 ) ( 0 0.015625 -2 ) ) "textures/common/caulk" 0 0 0
|N/A
( 1 0 0 -345 ) ( ( 0.015625 0 -3.9375 ) ( 0 0.015625 -2 ) ) "textures/common/caulk" 0 0 0
|func_animate
( 0 0 -1 -128 ) ( ( 0.015625 0 -3.9375 ) ( 0 0.015625 -3.109375 ) ) "textures/common/caulk" 0 0 0
|''Object that changes animation when triggered.''
( 0 -1 0 -260 ) ( ( 0.015625 0 3.109375 ) ( 0 0.015625 -2 ) ) "textures/common/caulk" 0 0 0
|
( -1 0 0 313 ) ( ( 0.007811999879777431 0 1.968623995780945 ) ( 0 0.007811999879777431 -0.9999359846115112 ) ) "textures/darkmod/wood/boards/pier_platform" 0 0 0
|-
}
|-
}
|
// primitive 3
|N/A
{
|func_beam
brushDef3
|''Creates a beam from origin to origin of targeted func_beam. Turns on and off when triggered. Can only target one func_beam at a time and be targeted by one func_beam.''
{
|
( 0 1 0 -764 ) ( ( 0.015625 0 -3.109375 ) ( 0 0.015625 -2 ) ) "textures/common/caulk" 0 0 0
|-
( 1 0 0 -313 ) ( ( 0.015625 0 -3.9375 ) ( 0 0.015625 -2 ) ) "textures/common/caulk" 0 0 0
|-
  ( 0 0 -1 -160 ) ( ( 0.015625 0 -3.9375 ) ( 0 0.015625 -3.109375 ) ) "textures/common/caulk" 0 0 0
|
( 0 -1 0 -260 ) ( ( 0.015625 0 3.109375 ) ( 0 0.015625 -2 ) ) "textures/common/caulk" 0 0 0
|N/A
( -1 0 0 -711 ) ( ( 0.015625 0 3.9375 ) ( 0 0.015625 -2 ) ) "textures/common/caulk" 0 0 0
|func_camera_anim
( 0 0 1 128 ) ( ( 0.007811999879777431 0 -1.968623995780945 ) ( 0 0.007811999879777431 1.554587960243225 ) ) "textures/darkmod/wood/boards/pier_platform" 0 0 0
|''Camera controlled by animation.''
}
|
}
|-
// primitive 4
|-
{
|
brushDef3
|N/A
{
|func_cameraview
( 0 0 1 -128 ) ( ( 0.015625 0 -3.9375 ) ( 0 0.015625 3.109375 ) ) "textures/common/caulk" 0 0 0
|''Simple Camera view, apply a rotation matrix, angle or target it at a target_null.''
( 1 0 0 -313 ) ( ( 0.015625 0 -3.9375 ) ( 0 0.015625 -2 ) ) "textures/common/caulk" 0 0 0
|
( 0 0 -1 -128 ) ( ( 0.015625 0 -3.9375 ) ( 0 0.015625 -3.109375 ) ) "textures/common/caulk" 0 0 0
|-
( 0 -1 0 -292 ) ( ( 0.015625 0 3.109375 ) ( 0 0.015625 -2 ) ) "textures/common/caulk" 0 0 0
|-
( -1 0 0 -711 ) ( ( 0.015625 0 3.9375 ) ( 0 0.015625 -2 ) ) "textures/common/caulk" 0 0 0
|
( 0 1 0 260 ) ( ( 0.007811999879777431 0 -1.554587960243225 ) ( 0 0.007811999879777431 -0.9999359846115112 ) ) "textures/darkmod/wood/boards/pier_platform" 0 0 0
|N/A
}
|func_clipmodel
}
|''Holder for a clip model which can be used by another entity.''
// primitive 5
|
{
|-
brushDef3
|-
{
|
( 0 0 1 -128 ) ( ( 0.015625 0 -3.9375 ) ( 0 0.015625 3.109375 ) ) "textures/common/caulk" 0 0 0
|N/A
( 0 1 0 -764 ) ( ( 0.015625 0 -3.109375 ) ( 0 0.015625 -2 ) ) "textures/common/caulk" 0 0 0
|func_damagable
( 0 0 -1 -128 ) ( ( 0.015625 0 -3.9375 ) ( 0 0.015625 -3.109375 ) ) "textures/common/caulk" 0 0 0
|''Breakable object. Fires targets and changes shader parms and model when damaged. When damaged, shader parm 3 is set to the current time, and shader parm 7 is set to either a random number from 1 to 'numstates', or to the value in 'forcestate' if it is non-zero. If you want an invisible texture, use common/collision. Make sure you func_remove it after it is shot if it's blocking an entrance.''
( 0 -1 0 -260 ) ( ( 0.015625 0 3.109375 ) ( 0 0.015625 -2 ) ) "textures/common/caulk" 0 0 0
|
( -1 0 0 -743 ) ( ( 0.015625 0 3.9375 ) ( 0 0.015625 -2 ) ) "textures/common/caulk" 0 0 0
|-
( 1 0 0 711 ) ( ( 0.007811999879777431 0 -1.968623995780945 ) ( 0 0.007811999879777431 -0.9999359846115112 ) ) "textures/darkmod/wood/boards/pier_platform" 0 0 0
|-
}
|
}
|N/A
// primitive 6
|func_damage
{
|''Damages targeted entities when triggered.''
brushDef3
|
{
|-
( 0 0 1 -88 ) ( ( 0.0625 0 96.65625 ) ( 0 0.0625 21.25 ) ) "textures/common/caulk" 0 0 0
|-
( 0 1 0 500 ) ( ( 0.0625 0 42.75 ) ( 0 0.0625 1.28125 ) ) "textures/common/caulk" 0 0 0
|
( 1 0 0 -737 ) ( ( 0.0625 0 96.65625 ) ( 0 0.0625 1.28125 ) ) "textures/common/caulk" 0 0 0
|N/A
( 0 -1 0 -788 ) ( ( 0.0625 0 21.25 ) ( 0 0.0625 1.28125 ) ) "textures/common/caulk" 0 0 0
|func_earthquake
( -1 0 0 609 ) ( ( 0.0625 0 -32.65625 ) ( 0 0.0625 1.28125 ) ) "textures/common/caulk" 0 0 0
|''Use to trigger earthquakes. The sound shader MUST have shakes set, this allows the sound system to provide a more realistic shake based on sound.''
( 0 0 -1 80 ) ( ( 0.0625 0 96.65625 ) ( 0 0.0625 41.75 ) ) "textures/common/caulk" 0 0 0
|
}
|-
}
|-
// primitive 7
|
{
|N/A
brushDef3
|func_emitter
{
|''Inherits from a func_static but is fixed size and shows a rotation arrow. Use it to orient particle models. Use the 'model' spawnarg to specify the particles. Trigger it to fade it in and/or out.''
( 0 0 1 -80 ) ( ( 0.0625 0 96.65625 ) ( 0 0.0625 21.25 ) ) "textures/common/caulk" 0 0 0
|
( 0 1 0 492 ) ( ( 0.0625 0 42.75 ) ( 0 0.0625 0.78125 ) ) "textures/common/caulk" 0 0 0
|-
( 1 0 0 -737 ) ( ( 0.0625 0 96.65625 ) ( 0 0.0625 0.78125 ) ) "textures/common/caulk" 0 0 0
|-
( 0 0 -1 -48 ) ( ( 0.0625 0 96.65625 ) ( 0 0.0625 42.75 ) ) "textures/common/caulk" 0 0 0
|
( -1 0 0 609 ) ( ( 0.0625 0 -32.65625 ) ( 0 0.0625 0.78125 ) ) "textures/common/caulk" 0 0 0
|N/A
( 0 -1 0 -500 ) ( ( 0.0625 0 22.25 ) ( 0 0.0625 0.78125 ) ) "textures/common/caulk" 0 0 0
|func_explosion
}
|''Hidden object that explodes when activated.''
}
|
// primitive 8
|-
{
|-
brushDef3
|
{
|N/A
( 0 1 0 500 ) ( ( 0.0625 0 42.75 ) ( 0 0.0625 0.28125 ) ) "textures/common/caulk" 0 0 0
|func_forcefield
( 1 0 0 -737 ) ( ( 0.0625 0 96.65625 ) ( 0 0.0625 0.28125 ) ) "textures/common/caulk" 0 0 0
|''Force field.''
( 0 0 -1 -56 ) ( ( 0.0625 0 96.65625 ) ( 0 0.0625 42.75 ) ) "textures/common/caulk" 0 0 0
|
( 0 -1 0 -788 ) ( ( 0.0625 0 20.75 ) ( 0 0.0625 0.28125 ) ) "textures/common/caulk" 0 0 0
|-
( -1 0 0 609 ) ( ( 0.0625 0 -32.65625 ) ( 0 0.0625 0.28125 ) ) "textures/common/caulk" 0 0 0
|-
( 0 0 1 48 ) ( ( 0.0625 0 96.65625 ) ( 0 0.0625 22.25 ) ) "textures/common/caulk" 0 0 0
|
}
|N/A
}
|func_fracture
// primitive 9
|''b-rep brittle fracture (Breakable glass or other material''
{
|
brushDef3
|-
{
|-
( 0 0 1 -80 ) ( ( 0.0625 0 45.78125 ) ( 0 0.0625 21.4375 ) ) "textures/common/caulk" 0 0 0
|
( 1 0 0 -737 ) ( ( 0.0625 0 45.78125 ) ( 0 0.0625 0.78125 ) ) "textures/common/caulk" 0 0 0
|N/A
( 0 0 -1 -48 ) ( ( 0.0625 0 45.78125 ) ( 0 0.0625 42.5625 ) ) "textures/common/caulk" 0 0 0
|func_fx
( 0 -1 0 -796 ) ( ( 0.0625 0 21.4375 ) ( 0 0.0625 0.78125 ) ) "textures/common/caulk" 0 0 0
|''Spawns a special effect when triggered.''
( -1 0 0 609 ) ( ( 0.0625 0 18.21875 ) ( 0 0.0625 0.78125 ) ) "textures/common/caulk" 0 0 0
|
( 0 1 0 788 ) ( ( 0.0625 0 41.5625 ) ( 0 0.0625 0.78125 ) ) "textures/common/caulk" 0 0 0
|-
}
|-
}
|
// primitive 10
|N/A
{
|func_liquid
brushDef3
|''Do not use directly, use atdm:water under Liquids instead! Applies liquid physics to entities.''
{
|
( 0 0 1 -80 ) ( ( 0.0625 0 97.25 ) ( 0 0.0625 21.9375 ) ) "textures/common/caulk" 0 0 0
|-
( 0 1 0 500 ) ( ( 0.0625 0 42.0625 ) ( 0 0.0625 0.78125 ) ) "textures/common/caulk" 0 0 0
|-
( 0 0 -1 -48 ) ( ( 0.0625 0 97.25 ) ( 0 0.0625 42.0625 ) ) "textures/common/caulk" 0 0 0
|
( 0 -1 0 -788 ) ( ( 0.0625 0 21.9375 ) ( 0 0.0625 0.78125 ) ) "textures/common/caulk" 0 0 0
|N/A
( -1 0 0 601 ) ( ( 0.0625 0 -33.25 ) ( 0 0.0625 0.78125 ) ) "textures/common/caulk" 0 0 0
|func_portal
( 1 0 0 -609 ) ( ( 0.0625 0 97.25 ) ( 0 0.0625 0.78125 ) ) "textures/common/caulk" 0 0 0
|''Use to make triggerable portals or close/open portals with distance or depending on LOD bias.''
}
|
}
|-
// primitive 11
|-
{
|
brushDef3
|N/A
{
|func_remove
( 0 0 1 -80 ) ( ( 0.0625 0 97.25 ) ( 0 0.0625 13.4375 ) ) "textures/common/caulk" 0 0 0
|''Removes targeted entities from the game when triggered.''
( 0 1 0 500 ) ( ( 0.0625 0 50.5625 ) ( 0 0.0625 0.78125 ) ) "textures/common/caulk" 0 0 0
|
( 0 0 -1 -48 ) ( ( 0.0625 0 97.25 ) ( 0 0.0625 50.5625 ) ) "textures/common/caulk" 0 0 0
|-
( 0 -1 0 -788 ) ( ( 0.0625 0 13.4375 ) ( 0 0.0625 0.78125 ) ) "textures/common/caulk" 0 0 0
|-
( -1 0 0 737 ) ( ( 0.0625 0 -33.25 ) ( 0 0.0625 0.78125 ) ) "textures/common/caulk" 0 0 0
|
( 1 0 0 -745 ) ( ( 0.0625 0 97.25 ) ( 0 0.0625 0.78125 ) ) "textures/common/caulk" 0 0 0
|N/A
}
|func_securitycamera
}
|''Security camera. Orient the camera pointing at the start location, then it will sweep from that + sweepAngle and back. Uses the following sound shadersRemoves targeted entities from the game when triggered.''
}
|
// entity 1
|-
{
|-
"classname" "light"
|
"name" "ambient_world"
|N/A
"_color" "0.1 0.1 0.1"
|func_smoke
"light_center" "0 0 0"
|''Emits smoke via the smoke system. Set 'smoke' to the particle you want to appear. Bind it to a bone of an animation to emit smoke similar to actors. Trigger it to turn it on and off. This is not as efficient as 'func_emitter'.''
"light_radius" "10280 10280 10280"
|
"nodiffuse" "0"
|-
"noshadows" "0"
|-
"nospecular" "0"
|
"origin" "709 -532 48"
|N/A
"parallel" "0"
|func_splat
"texture" "lights/ambientlightnfo"
|''Splats a decal based on the rotation angle.''
}
|
// entity 2
|-
{
|-
"classname" "atdm:target_addobjectives"
|
"name" "Objectives"
|N/A
"angle" "90.000000"
|func_splinemover
"obj1_1_args" "1"
|''Entity which stores a spline path.''
"obj1_1_irreversible" "0"
|
"obj1_1_not" "0"
|-
"obj1_1_player_responsible" "0"
|-
"obj1_1_spec1" "name"
|
"obj1_1_spec_val1" "ItemName"
|N/A
"obj1_1_state" "0"
|func_spring
"obj1_1_type" "item"
|''Spring connecting two entities.''
"obj1_desc" "Get or Steal a Special Object"
|
"obj1_irreversible" "0"
|-
"obj1_mandatory" "1"
|-
"obj1_ongoing" "0"
|
"obj1_state" "0"
|N/A
"obj1_visible" "1"
|func_static
"obj2_1_args" "1"
|''A brush model that just sits there, doing nothing. Can be used for conditional walls and models.
"obj2_1_irreversible" "0"
When triggered, toggles between visible and hidden (see hide). Entity is non-solid when hidden.''
"obj2_1_not" "0"
|
"obj2_1_player_responsible" "0"
|-
"obj2_1_spec1" "overall"
|-
"obj2_1_state" "0"
|
"obj2_1_type" "item"
|N/A
"obj2_desc" "Get Loot (Easy)"
|func_teleporter
"obj2_difficulty" "0"
|''Teleports the player to its own origin and angle, when DoAction() is called on it. Use 'atdm:teleport' instead.''
"obj2_irreversible" "0"
|
"obj2_mandatory" "1"
|-
"obj2_ongoing" "0"
|-
"obj2_state" "0"
|
"obj2_visible" "1"
|N/A
"obj3_1_args" "2"
|func_waitforbutton
"obj3_1_irreversible" "0"
|''When activated, waits for the player to press the fire button and then activates its targets. Targeting entity toggles it on and off.''
"obj3_1_not" "0"
|
"obj3_1_player_responsible" "0"
|-
"obj3_1_spec1" "overall"
|-
"obj3_1_state" "0"
|
"obj3_1_type" "item"
|N/A
"obj3_desc" "Get Loot (Hard)"
|urine_s
"obj3_difficulty" "1"
|N/A
"obj3_irreversible" "0"
|
"obj3_mandatory" "1"
|-
"obj3_ongoing" "0"
"obj3_state" "0"
"obj3_visible" "1"
"obj4_1_args" "3"
"obj4_1_irreversible" "0"
"obj4_1_not" "0"
"obj4_1_player_responsible" "0"
"obj4_1_spec1" "overall"
"obj4_1_state" "0"
"obj4_1_type" "item"
"obj4_desc" "Get Loot (Expert)"
"obj4_difficulty" "2"
"obj4_irreversible" "0"
"obj4_mandatory" "1"
"obj4_ongoing" "0"
"obj4_state" "0"
"obj4_visible" "1"
"obj5_1_args" "1"
"obj5_1_irreversible" "1"
"obj5_1_not" "1"
"obj5_1_player_responsible" "1"
"obj5_1_spec1" "overall"
"obj5_1_state" "1"
"obj5_1_type" "kill"
"obj5_desc" "No killing (on Expert)"
"obj5_difficulty" "2"
"obj5_irreversible" "1"
"obj5_mandatory" "1"
"obj5_ongoing" "1"
"obj5_state" "0"
"obj5_visible" "1"
"obj6_1_args" "0"
"obj6_1_irreversible" "0"
"obj6_1_not" "0"
"obj6_1_player_responsible" "0"
"obj6_1_spec1" "spawnclass"
"obj6_1_spec2" "name"
"obj6_1_spec_val1" "idPlayer"
"obj6_1_spec_val2" "EscZone"
"obj6_1_state" "0"
"obj6_1_type" "location"
"obj6_desc" "Go To Room X, eg, When all objectives done, return to start (modify Enabling Objectives if different)"
"obj6_enabling_objs" "1 AND (2 OR 3 OR 4)"
"obj6_irreversible" "0"
"obj6_mandatory" "1"
"obj6_ongoing" "0"
"obj6_state" "0"
"obj6_visible" "1"
"origin" "633 -532 0"
}
// entity 3
{
"classname" "atdm:playertools_compass"
"name" "CompassEasy"
"diff_0_nospawn" "0"
"diff_1_nospawn" "1"
"diff_2_nospawn" "1"
"inv_map_start" "1"
"nodrop" "1"
"origin" "618 -554.5 60.5"
"rotation" "1 0 0 0 1 0 0 0 1"
}
// entity 4
{
"classname" "atdm:playertools_lantern"
"name" "LanternEasy"
"diff_0_nospawn" "0"
"diff_1_nospawn" "1"
"diff_2_nospawn" "1"
"inv_map_start" "1"
"nodrop" "1"
"origin" "630 -554.5 60.5"
"rotation" "1 0 0 0 1 0 0 0 1"
}
// entity 5
{
"classname" "atdm:playertools_spyglass"
"name" "SpyglassEasy"
"diff_0_nospawn" "0"
"diff_1_nospawn" "1"
"diff_2_nospawn" "1"
"inv_map_start" "1"
"nodrop" "1"
"origin" "640 -554.5 60.5"
"rotation" "1 0 0 0 1 0 0 0 1"
}
// entity 6
{
"classname" "atdm:playertools_health_potion"
"name" "HealthPotionsEasy"
"diff_0_nospawn" "0"
"diff_1_nospawn" "1"
"diff_2_nospawn" "1"
"inv_count" "10"
"inv_map_start" "1"
"nodrop" "1"
"origin" "656 -554.5 35.5"
"rotation" "1 0 0 0 1 0 0 0 1"
}
// entity 7
{
"classname" "atdm:weapon_shortsword"
"name" "SwordEasy"
"diff_0_nospawn" "0"
"diff_1_nospawn" "1"
"diff_2_nospawn" "1"
"inv_map_start" "1"
"inv_no_pickup_message" "1"
"nodrop" "1"
"origin" "728 -604.5 11.5"
"rotation" "0 1 0 -1 0 0 0 0 1"
}
// entity 8
{
"classname" "atdm:weapon_blackjack"
"name" "BlackjackEasy"
"diff_0_nospawn" "0"
"diff_1_nospawn" "1"
"diff_2_nospawn" "1"
"inv_map_start" "1"
"inv_no_pickup_message" "1"
"nodrop" "1"
"origin" "679.62 -605.25 11.5"
"rotation" "1 0 0 0 1 0 0 0 1"
}
// entity 9
{
"classname" "atdm:playertools_breath_potion"
"name" "BreathPotionsEasy"
"diff_0_nospawn" "0"
"diff_1_nospawn" "1"
"diff_2_nospawn" "1"
"inv_count" "10"
"inv_map_start" "1"
"nodrop" "1"
"origin" "668 -554.5 35.5"
"rotation" "1 0 0 0 1 0 0 0 1"
}
// entity 10
{
"classname" "atdm:playertools_flashbomb"
"name" "FlashbombsEasy"
"diff_0_nospawn" "0"
"diff_1_nospawn" "1"
"diff_2_nospawn" "1"
"inv_count" "10"
"inv_map_start" "1"
"nodrop" "1"
"origin" "620 -604.5 35.5"
"rotation" "1 0 0 0 1 0 0 0 1"
}
// entity 11
{
"classname" "atdm:key_fancy02"
"name" "key_master"
"inv_icon" "guis/assets/hud/inventory_icons/key_good_red"
"inv_map_start" "1"
"inv_name" "MASTER KEY"
"inv_stackable" "0"
"nodrop" "1"
"origin" "729 -532 32"
"rotation" "0 -1 0 1 0 0 0 0 1"
"skin" "bc_key02red"
}
// entity 12
{
"classname" "atdm:shop"
"name" "ShopItems"
"angle" "90.000000"
"diff_0_shop_gold_start" "800"
"diff_1_shop_gold_start" "600"
"diff_2_shop_gold_start" "400"
"origin" "681 -532 0"
"shopItem_11_0_qty" "0"
"shopItem_11_1_qty" "0"
"shopItem_11_2_qty" "0"
"shopItem_11_item" "atdm:playertools_compass"
"shopItem_12_0_qty" "0"
"shopItem_12_1_qty" "0"
"shopItem_12_2_qty" "0"
"shopItem_12_item" "atdm:playertools_lantern"
"shopItem_13_0_qty" "0"
"shopItem_13_1_qty" "0"
"shopItem_13_2_qty" "0"
"shopItem_13_item" "atdm:playertools_spyglass"
"shopItem_15_0_qty" "0"
"shopItem_15_1_qty" "0"
"shopItem_15_2_qty" "0"
"shopItem_15_item" "atdm:playertools_mine"
"shopItem_16_0_qty" "0"
"shopItem_16_1_qty" "0"
"shopItem_16_2_qty" "0"
"shopItem_16_item" "atdm:playertools_flashbomb"
"shopItem_17_0_qty" "0"
"shopItem_17_1_qty" "0"
"shopItem_17_2_qty" "0"
"shopItem_17_item" "atdm:playertools_holywater"
"shopItem_18_0_qty" "0"
"shopItem_18_1_qty" "0"
"shopItem_18_2_qty" "0"
"shopItem_18_item" "atdm:playertools_health_potion"
"shopItem_19_0_qty" "0"
"shopItem_19_1_qty" "0"
"shopItem_19_2_qty" "0"
"shopItem_19_item" "atdm:playertools_breath_potion"
"shopItem_1_0_qty" "0"
"shopItem_1_1_qty" "0"
"shopItem_1_2_qty" "0"
"shopItem_1_item" "atdm:weapon_shortsword"
"shopItem_20_0_qty" "0"
"shopItem_20_1_qty" "0"
"shopItem_20_2_qty" "0"
"shopItem_20_item" "atdm:weapon_vinearrow"
"shopItem_2_0_qty" "0"
"shopItem_2_1_qty" "0"
"shopItem_2_2_qty" "0"
"shopItem_2_item" "atdm:weapon_blackjack"
"shopItem_3_0_qty" "0"
"shopItem_3_1_qty" "0"
"shopItem_3_2_qty" "0"
"shopItem_3_item" "atdm:weapon_waterarrow"
"shopItem_4_0_qty" "0"
"shopItem_4_1_qty" "0"
"shopItem_4_2_qty" "0"
"shopItem_4_item" "atdm:weapon_broadhead"
"shopItem_5_0_qty" "0"
"shopItem_5_1_qty" "0"
"shopItem_5_2_qty" "0"
"shopItem_5_item" "atdm:weapon_ropearrow"
"shopItem_6_0_qty" "0"
"shopItem_6_1_qty" "0"
"shopItem_6_2_qty" "0"
"shopItem_6_item" "atdm:weapon_mossarrow"
"shopItem_7_0_qty" "0"
"shopItem_7_1_qty" "0"
"shopItem_7_2_qty" "0"
"shopItem_7_item" "atdm:weapon_noisemaker"
"shopItem_8_0_qty" "0"
"shopItem_8_1_qty" "0"
"shopItem_8_2_qty" "0"
"shopItem_8_item" "atdm:weapon_firearrow"
"shopItem_9_0_qty" "0"
"shopItem_9_1_qty" "0"
"shopItem_9_2_qty" "0"
"shopItem_9_item" "atdm:weapon_gasarrow"
"startingitem_11_0_qty" "0"
"startingitem_11_1_qty" "0"
"startingitem_11_2_qty" "0"
"startingitem_11_item" "atdm:playertools_compass"
"startingitem_12_0_qty" "0"
"startingitem_12_1_qty" "0"
"startingitem_12_2_qty" "0"
"startingitem_12_item" "atdm:playertools_lantern"
"startingitem_13_0_qty" "0"
"startingitem_13_1_qty" "0"
"startingitem_13_2_qty" "0"
"startingitem_13_item" "atdm:playertools_spyglass"
"startingitem_15_0_qty" "0"
"startingitem_15_1_qty" "0"
"startingitem_15_2_qty" "0"
"startingitem_15_item" "atdm:playertools_mine"
"startingitem_16_0_qty" "0"
"startingitem_16_1_qty" "0"
"startingitem_16_2_qty" "0"
"startingitem_16_item" "atdm:playertools_flashbomb"
"startingitem_17_0_qty" "0"
"startingitem_17_1_qty" "0"
"startingitem_17_2_qty" "0"
"startingitem_17_item" "atdm:playertools_holywater"
"startingitem_18_0_qty" "0"
"startingitem_18_1_qty" "0"
"startingitem_18_2_qty" "0"
"startingitem_18_item" "atdm:playertools_health_potion"
"startingitem_19_0_qty" "0"
"startingitem_19_1_qty" "0"
"startingitem_19_2_qty" "0"
"startingitem_19_item" "atdm:playertools_breath_potion"
"startingitem_1_0_qty" "0"
"startingitem_1_1_qty" "0"
"startingitem_1_2_qty" "0"
"startingitem_1_item" "atdm:weapon_shortsword"
"startingitem_20_0_qty" "0"
"startingitem_20_1_qty" "0"
"startingitem_20_2_qty" "0"
"startingitem_20_item" "atdm:weapon_vinearrow"
"startingitem_2_0_qty" "0"
"startingitem_2_1_qty" "0"
"startingitem_2_2_qty" "0"
"startingitem_2_item" "atdm:weapon_blackjack"
"startingitem_3_0_qty" "0"
"startingitem_3_1_qty" "0"
"startingitem_3_2_qty" "0"
"startingitem_3_item" "atdm:weapon_waterarrow"
"startingitem_4_0_qty" "0"
"startingitem_4_1_qty" "0"
"startingitem_4_2_qty" "0"
"startingitem_4_item" "atdm:weapon_broadhead"
"startingitem_5_0_qty" "0"
"startingitem_5_1_qty" "0"
"startingitem_5_2_qty" "0"
"startingitem_5_item" "atdm:weapon_ropearrow"
"startingitem_6_0_qty" "0"
"startingitem_6_1_qty" "0"
"startingitem_6_2_qty" "0"
"startingitem_6_item" "atdm:weapon_mossarrow"
"startingitem_7_0_qty" "0"
"startingitem_7_1_qty" "0"
"startingitem_7_2_qty" "0"
"startingitem_7_item" "atdm:weapon_noisemaker"
"startingitem_8_0_qty" "0"
"startingitem_8_1_qty" "0"
"startingitem_8_2_qty" "0"
"startingitem_8_item" "atdm:weapon_firearrow"
"startingitem_9_0_qty" "0"
"startingitem_9_1_qty" "0"
"startingitem_9_2_qty" "0"
"startingitem_9_item" "atdm:weapon_gasarrow"
}
// entity 13
{
"classname" "atdm:ammo_broadhead"
"name" "BroadheadsEasy"
"diff_0_nospawn" "0"
"diff_1_nospawn" "1"
"diff_2_nospawn" "1"
"inv_ammo_amount" "30"
"inv_map_start" "1"
"inv_no_pickup_message" "1"
"nodrop" "1"
"origin" "617 -684 -8"
"rotation" "1 0 0 0 0 1 0 -1 0"
}
// entity 14
{
"classname" "atdm:ammo_broadhead"
"name" "BroadheadsHard"
"diff_0_nospawn" "1"
"diff_1_nospawn" "0"
"diff_2_nospawn" "1"
"inv_ammo_amount" "30"
"inv_map_start" "1"
"inv_no_pickup_message" "1"
"nodrop" "1"
"origin" "617 -732 -8"
"rotation" "1 0 0 0 0 1 0 -1 0"
}
// entity 15
{
"classname" "atdm:ammo_broadhead"
"name" "BroadheadsExpert"
"diff_0_nospawn" "1"
"diff_1_nospawn" "1"
"diff_2_nospawn" "0"
"inv_ammo_amount" "30"
"inv_map_start" "1"
"inv_no_pickup_message" "1"
"nodrop" "1"
"origin" "617 -780 -8"
"rotation" "1 0 0 0 0 1 0 -1 0"
}
// entity 16
{
"classname" "atdm:ammo_firearrow"
"name" "FireArrowsEasy"
"diff_0_nospawn" "0"
"diff_1_nospawn" "1"
"diff_2_nospawn" "1"
"inv_ammo_amount" "30"
"inv_map_start" "1"
"inv_no_pickup_message" "1"
"nodrop" "1"
"origin" "633 -684 -8"
"rotation" "1 0 0 0 0 1 0 -1 0"
}
// entity 17
{
"classname" "atdm:ammo_firearrow"
"name" "FireArrowsHard"
"diff_0_nospawn" "1"
"diff_1_nospawn" "0"
"diff_2_nospawn" "1"
"inv_ammo_amount" "30"
"inv_map_start" "1"
"inv_no_pickup_message" "1"
"nodrop" "1"
"origin" "633 -732 -8"
"rotation" "1 0 0 0 0 1 0 -1 0"
}
// entity 18
{
"classname" "atdm:ammo_firearrow"
"name" "FireArrowsExpert"
"diff_0_nospawn" "1"
"diff_1_nospawn" "1"
"diff_2_nospawn" "0"
"inv_ammo_amount" "30"
"inv_map_start" "1"
"inv_no_pickup_message" "1"
"nodrop" "1"
"origin" "633 -780 -8"
"rotation" "1 0 0 0 0 1 0 -1 0"
}
// entity 19
{
"classname" "atdm:ammo_gasarrow"
"name" "GasArrowsEasy"
"diff_0_nospawn" "0"
"diff_1_nospawn" "1"
"diff_2_nospawn" "1"
"inv_ammo_amount" "30"
"inv_map_start" "1"
"inv_no_pickup_message" "1"
"nodrop" "1"
"origin" "649 -684 -8"
"rotation" "1 0 0 0 0 1 0 -1 0"
}
// entity 20
{
"classname" "atdm:ammo_gasarrow"
"name" "GasArrowsHard"
"diff_0_nospawn" "1"
"diff_1_nospawn" "0"
"diff_2_nospawn" "1"
"inv_ammo_amount" "30"
"inv_map_start" "1"
"inv_no_pickup_message" "1"
"nodrop" "1"
"origin" "649 -732 -8"
"rotation" "1 0 0 0 0 1 0 -1 0"
}
// entity 21
{
"classname" "atdm:ammo_gasarrow"
"name" "GasArrowsExpert"
"diff_0_nospawn" "1"
"diff_1_nospawn" "1"
"diff_2_nospawn" "0"
"inv_ammo_amount" "30"
"inv_map_start" "1"
"inv_no_pickup_message" "1"
"nodrop" "1"
"origin" "649 -780 -8"
"rotation" "1 0 0 0 0 1 0 -1 0"
}
// entity 22
{
"classname" "atdm:ammo_mossarrow"
"name" "MossArrowsEasy"
"diff_0_nospawn" "0"
"diff_1_nospawn" "1"
"diff_2_nospawn" "1"
"inv_ammo_amount" "30"
"inv_map_start" "1"
"inv_no_pickup_message" "1"
"nodrop" "1"
"origin" "665 -684 -8"
"rotation" "1 0 0 0 0 1 0 -1 0"
}
// entity 23
{
"classname" "atdm:ammo_mossarrow"
"name" "MossArrowsExpert"
"diff_0_nospawn" "1"
"diff_1_nospawn" "1"
"diff_2_nospawn" "0"
"inv_ammo_amount" "30"
"inv_map_start" "1"
"inv_no_pickup_message" "1"
"nodrop" "1"
"origin" "665 -780 -8"
"rotation" "1 0 0 0 0 1 0 -1 0"
}
// entity 24
{
"classname" "atdm:ammo_mossarrow"
"name" "MossArrowsHard"
"diff_0_nospawn" "1"
"diff_1_nospawn" "0"
"diff_2_nospawn" "1"
"inv_ammo_amount" "30"
"inv_map_start" "1"
"inv_no_pickup_message" "1"
"nodrop" "1"
"origin" "665 -732 -8"
"rotation" "1 0 0 0 0 1 0 -1 0"
}
// entity 25
{
"classname" "atdm:ammo_noisemaker"
"name" "NoiseArrowsEasy"
"diff_0_nospawn" "0"
"diff_1_nospawn" "1"
"diff_2_nospawn" "1"
"inv_ammo_amount" "30"
"inv_map_start" "1"
"inv_no_pickup_message" "1"
"nodrop" "1"
"origin" "681 -684 -8"
"rotation" "1 0 0 0 0 1 0 -1 0"
}
// entity 26
{
"classname" "atdm:ammo_noisemaker"
"name" "NoiseArrowsHard"
"diff_0_nospawn" "1"
"diff_1_nospawn" "0"
"diff_2_nospawn" "1"
"inv_ammo_amount" "30"
"inv_map_start" "1"
"inv_no_pickup_message" "1"
"nodrop" "1"
"origin" "681 -732 -8"
"rotation" "1 0 0 0 0 1 0 -1 0"
}
// entity 27
{
"classname" "atdm:ammo_noisemaker"
"name" "NoiseArrowsExpert"
"diff_0_nospawn" "1"
"diff_1_nospawn" "1"
"diff_2_nospawn" "0"
"inv_ammo_amount" "30"
"inv_map_start" "1"
"inv_no_pickup_message" "1"
"nodrop" "1"
"origin" "681 -780 -8"
"rotation" "1 0 0 0 0 1 0 -1 0"
}
// entity 28
{
"classname" "atdm:ammo_ropearrow"
"name" "RopeArrowsEasy"
"diff_0_nospawn" "0"
"diff_1_nospawn" "1"
"diff_2_nospawn" "1"
"inv_ammo_amount" "30"
"inv_map_start" "1"
"inv_no_pickup_message" "1"
"nodrop" "1"
"origin" "697 -684 -8"
"rotation" "1 0 0 0 0 1 0 -1 0"
}
// entity 29
{
"classname" "atdm:ammo_ropearrow"
"name" "RopeArrowsHard"
"diff_0_nospawn" "1"
"diff_1_nospawn" "0"
"diff_2_nospawn" "1"
"inv_ammo_amount" "30"
"inv_map_start" "1"
"inv_no_pickup_message" "1"
"nodrop" "1"
"origin" "697 -732 -8"
"rotation" "1 0 0 0 0 1 0 -1 0"
}
// entity 30
{
"classname" "atdm:ammo_ropearrow"
"name" "RopeArrowsExpert"
"diff_0_nospawn" "1"
"diff_1_nospawn" "1"
"diff_2_nospawn" "0"
"inv_ammo_amount" "30"
"inv_map_start" "1"
"inv_no_pickup_message" "1"
"nodrop" "1"
"origin" "697 -780 -8"
"rotation" "1 0 0 0 0 1 0 -1 0"
}
// entity 31
{
"classname" "atdm:ammo_waterarrow"
"name" "WaterArrowsEasy"
"diff_0_nospawn" "0"
"diff_1_nospawn" "1"
"diff_2_nospawn" "1"
"inv_ammo_amount" "30"
"inv_map_start" "1"
"inv_no_pickup_message" "1"
"nodrop" "1"
"origin" "729 -684 -8"
"rotation" "1 0 0 0 0 1 0 -1 0"
}
// entity 32
{
"classname" "atdm:ammo_waterarrow"
"name" "WaterArrowsHard"
"diff_0_nospawn" "1"
"diff_1_nospawn" "0"
"diff_2_nospawn" "1"
"inv_ammo_amount" "30"
"inv_map_start" "1"
"inv_no_pickup_message" "1"
"nodrop" "1"
"origin" "729 -732 -8"
"rotation" "1 0 0 0 0 1 0 -1 0"
}
// entity 33
{
"classname" "atdm:ammo_waterarrow"
"name" "WaterArrowsExpert"
"diff_0_nospawn" "1"
"diff_1_nospawn" "1"
"diff_2_nospawn" "0"
"inv_ammo_amount" "30"
"inv_map_start" "1"
"inv_no_pickup_message" "1"
"nodrop" "1"
"origin" "729 -780 -8"
"rotation" "1 0 0 0 0 1 0 -1 0"
}
// entity 34
{
"classname" "atdm:weapon_blackjack"
"name" "BlackjackHard"
"diff_0_nospawn" "1"
"diff_1_nospawn" "0"
"diff_2_nospawn" "1"
"inv_map_start" "1"
"inv_no_pickup_message" "1"
"nodrop" "1"
"origin" "679.62 -621.25 11.5"
"rotation" "1 0 0 0 1 0 0 0 1"
}
// entity 35
{
"classname" "atdm:weapon_blackjack"
"name" "BlackjackExpert"
"diff_0_nospawn" "1"
"diff_1_nospawn" "1"
"diff_2_nospawn" "0"
"inv_map_start" "1"
"inv_no_pickup_message" "1"
"nodrop" "1"
"origin" "679.62 -637.25 11.5"
"rotation" "1 0 0 0 1 0 0 0 1"
}
// entity 36
{
"classname" "atdm:weapon_shortsword"
"name" "SwordHard"
"diff_0_nospawn" "1"
"diff_1_nospawn" "0"
"diff_2_nospawn" "1"
"inv_map_start" "1"
"inv_no_pickup_message" "1"
"nodrop" "1"
"origin" "728 -620.5 11.5"
"rotation" "0 1 0 -1 0 0 0 0 1"
}
// entity 37
{
"classname" "atdm:weapon_shortsword"
"name" "SwordExpert"
"diff_0_nospawn" "1"
"diff_1_nospawn" "1"
"diff_2_nospawn" "0"
"inv_map_start" "1"
"inv_no_pickup_message" "1"
"nodrop" "1"
"origin" "728 -636.5 11.5"
"rotation" "0 1 0 -1 0 0 0 0 1"
}
// entity 38
{
"classname" "atdm:playertools_compass"
"name" "CompassHard"
"diff_0_nospawn" "1"
"diff_1_nospawn" "0"
"diff_2_nospawn" "1"
"inv_map_start" "1"
"nodrop" "1"
"origin" "618 -570.5 60.5"
"rotation" "1 0 0 0 1 0 0 0 1"
}
// entity 39
{
"classname" "atdm:playertools_compass"
"name" "CompassExpert"
"diff_0_nospawn" "1"
"diff_1_nospawn" "1"
"diff_2_nospawn" "0"
"inv_map_start" "1"
"nodrop" "1"
"origin" "618 -586.5 60.5"
"rotation" "1 0 0 0 1 0 0 0 1"
}
// entity 40
{
"classname" "atdm:playertools_lantern"
"name" "LanternHard"
"diff_0_nospawn" "1"
"diff_1_nospawn" "0"
"diff_2_nospawn" "1"
"inv_map_start" "1"
"nodrop" "1"
"origin" "630 -570.5 60.5"
"rotation" "1 0 0 0 1 0 0 0 1"
}
// entity 41
{
"classname" "atdm:playertools_lantern"
"name" "LanternExpert"
"diff_0_nospawn" "1"
"diff_1_nospawn" "1"
"diff_2_nospawn" "0"
"inv_map_start" "1"
"nodrop" "1"
"origin" "630 -586.5 60.5"
"rotation" "1 0 0 0 1 0 0 0 1"
}
// entity 42
{
"classname" "atdm:playertools_spyglass"
"name" "SpyglassHard"
"diff_0_nospawn" "1"
"diff_1_nospawn" "0"
"diff_2_nospawn" "1"
"inv_map_start" "1"
"nodrop" "1"
"origin" "640 -570.5 60.5"
"rotation" "1 0 0 0 1 0 0 0 1"
}
// entity 43
{
"classname" "atdm:playertools_spyglass"
"name" "SpyglassExpert"
"diff_0_nospawn" "1"
"diff_1_nospawn" "1"
"diff_2_nospawn" "0"
"inv_map_start" "1"
"nodrop" "1"
"origin" "640 -586.5 60.5"
"rotation" "1 0 0 0 1 0 0 0 1"
}
// entity 44
{
"classname" "atdm:playertools_flashbomb"
"name" "FlashbombsHard"
"diff_0_nospawn" "1"
"diff_1_nospawn" "0"
"diff_2_nospawn" "1"
"inv_count" "10"
"inv_map_start" "1"
"nodrop" "1"
"origin" "620 -620.5 35.5"
"rotation" "1 0 0 0 1 0 0 0 1"
}
// entity 45
{
"classname" "atdm:playertools_flashbomb"
"name" "FlashbombsExpert"
"diff_0_nospawn" "1"
"diff_1_nospawn" "1"
"diff_2_nospawn" "0"
"inv_count" "10"
"inv_map_start" "1"
"nodrop" "1"
"origin" "620 -636.5 35.5"
"rotation" "1 0 0 0 1 0 0 0 1"
}
// entity 46
{
"classname" "atdm:playertools_health_potion"
"name" "HealthPotionsHard"
"diff_0_nospawn" "1"
"diff_1_nospawn" "0"
"diff_2_nospawn" "1"
"inv_count" "10"
"inv_map_start" "1"
"nodrop" "1"
"origin" "656 -570.5 35.5"
"rotation" "1 0 0 0 1 0 0 0 1"
}
// entity 47
{
"classname" "atdm:playertools_health_potion"
"name" "HealthPotionsExpert"
"diff_0_nospawn" "1"
"diff_1_nospawn" "1"
"diff_2_nospawn" "0"
"inv_count" "10"
"inv_map_start" "1"
"nodrop" "1"
"origin" "656 -586.5 35.5"
"rotation" "1 0 0 0 1 0 0 0 1"
}
// entity 48
{
"classname" "atdm:playertools_breath_potion"
"name" "BreathPotionsHard"
"diff_0_nospawn" "1"
"diff_1_nospawn" "0"
"diff_2_nospawn" "1"
"inv_count" "10"
"inv_map_start" "1"
"nodrop" "1"
"origin" "668 -570.5 35.5"
"rotation" "1 0 0 0 1 0 0 0 1"
}
// entity 49
{
"classname" "atdm:playertools_breath_potion"
"name" "BreathPotionsExpert"
"diff_0_nospawn" "1"
"diff_1_nospawn" "1"
"diff_2_nospawn" "0"
"inv_count" "10"
"inv_map_start" "1"
"nodrop" "1"
"origin" "668 -586.5 35.5"
"rotation" "1 0 0 0 1 0 0 0 1"
}
// entity 50
{
"classname" "atdm:playertools_lockpick_snake"
"name" "LockpickSnakeEasy"
"diff_0_nospawn" "0"
"diff_1_nospawn" "1"
"diff_2_nospawn" "1"
"inv_map_start" "1"
"nodrop" "1"
"origin" "711 -554 32"
"rotation" "0.707107 0.707107 0 -0.707107 0.707107 0 0 0 1"
}
// entity 51
{
"classname" "atdm:playertools_lockpick_triangle"
"name" "LockpickTriangleEasy"
"diff_0_nospawn" "0"
"diff_1_nospawn" "1"
"diff_2_nospawn" "1"
"inv_map_start" "1"
"nodrop" "1"
"origin" "727 -554 32"
"rotation" "0.707107 0.707107 0 -0.707107 0.707107 0 0 0 1"
}
// entity 52
{
"classname" "atdm:playertools_mine"
"name" "MinesEasy"
"diff_0_nospawn" "0"
"diff_1_nospawn" "1"
"diff_2_nospawn" "1"
"inv_count" "10"
"inv_map_start" "1"
"nodrop" "1"
"origin" "651 -604 32"
"rotation" "1 0 0 0 1 0 0 0 1"
}
// entity 53
{
"classname" "atdm:playertools_holywater"
"name" "HolyWatersEasy"
"diff_0_nospawn" "0"
"diff_1_nospawn" "1"
"diff_2_nospawn" "1"
"inv_count" "10"
"inv_map_start" "1"
"nodrop" "1"
"origin" "667 -604 32"
"rotation" "1 0 0 0 1 0 0 0 1"
}
// entity 54
{
"classname" "atdm:playertools_flashmine"
"name" "FlashminesEasy"
"diff_0_nospawn" "0"
"diff_1_nospawn" "1"
"diff_2_nospawn" "1"
"inv_count" "10"
"inv_map_start" "1"
"nodrop" "1"
"origin" "635 -604 32"
"rotation" "1 0 0 0 1 0 0 0 1"
}
// entity 55
{
"classname" "atdm:playertools_lockpick_snake"
"name" "LockpickSnakeHard"
"diff_0_nospawn" "1"
"diff_1_nospawn" "0"
"diff_2_nospawn" "1"
"inv_map_start" "1"
"nodrop" "1"
"origin" "711 -570 32"
"rotation" "0.707107 0.707107 0 -0.707107 0.707107 0 0 0 1"
}
// entity 56
{
"classname" "atdm:playertools_lockpick_snake"
"name" "LockpickSnakeExpert"
"diff_0_nospawn" "1"
"diff_1_nospawn" "1"
"diff_2_nospawn" "0"
"inv_map_start" "1"
"nodrop" "1"
"origin" "711 -586 32"
"rotation" "0.707107 0.707107 0 -0.707107 0.707107 0 0 0 1"
}
// entity 57
{
"classname" "atdm:playertools_lockpick_triangle"
"name" "LockpickTriangleHard"
"diff_0_nospawn" "1"
"diff_1_nospawn" "0"
"diff_2_nospawn" "1"
"inv_map_start" "1"
"nodrop" "1"
"origin" "727 -570 32"
"rotation" "0.707107 0.707107 0 -0.707107 0.707107 0 0 0 1"
}
// entity 58
{
"classname" "atdm:playertools_lockpick_triangle"
"name" "LockpickTriangleExpert"
"diff_0_nospawn" "1"
"diff_1_nospawn" "1"
"diff_2_nospawn" "0"
"inv_map_start" "1"
"nodrop" "1"
"origin" "727 -586 32"
"rotation" "0.707107 0.707107 0 -0.707107 0.707107 0 0 0 1"
}
// entity 59
{
"classname" "atdm:playertools_flashmine"
"name" "FlashminesHard"
"diff_0_nospawn" "1"
"diff_1_nospawn" "0"
"diff_2_nospawn" "1"
"inv_count" "10"
"inv_map_start" "1"
"nodrop" "1"
"origin" "635 -620 32"
"rotation" "1 0 0 0 1 0 0 0 1"
}
// entity 60
{
"classname" "atdm:playertools_flashmine"
"name" "FlashminesExpert"
"diff_0_nospawn" "1"
"diff_1_nospawn" "1"
"diff_2_nospawn" "0"
"inv_count" "10"
"inv_map_start" "1"
"nodrop" "1"
"origin" "635 -636 32"
"rotation" "1 0 0 0 1 0 0 0 1"
}
// entity 61
{
"classname" "atdm:playertools_mine"
"name" "MinesHard"
"diff_0_nospawn" "1"
"diff_1_nospawn" "0"
"diff_2_nospawn" "1"
"inv_count" "10"
"inv_map_start" "1"
"nodrop" "1"
"origin" "651 -620 32"
"rotation" "1 0 0 0 1 0 0 0 1"
}
// entity 62
{
"classname" "atdm:playertools_mine"
"name" "MinesExpert"
"diff_0_nospawn" "1"
"diff_1_nospawn" "1"
"diff_2_nospawn" "0"
"inv_count" "10"
"inv_map_start" "1"
"nodrop" "1"
"origin" "651 -636 32"
"rotation" "1 0 0 0 1 0 0 0 1"
}
// entity 63
{
"classname" "atdm:playertools_holywater"
"name" "HolyWatersHard"
"diff_0_nospawn" "1"
"diff_1_nospawn" "0"
"diff_2_nospawn" "1"
"inv_count" "10"
"inv_map_start" "1"
"nodrop" "1"
"origin" "667 -620 32"
"rotation" "1 0 0 0 1 0 0 0 1"
}
// entity 64
{
"classname" "atdm:playertools_holywater"
"name" "HolyWatersExpert"
"diff_0_nospawn" "1"
"diff_1_nospawn" "1"
"diff_2_nospawn" "0"
"inv_count" "10"
"inv_map_start" "1"
"nodrop" "1"
"origin" "667 -636 32"
"rotation" "1 0 0 0 1 0 0 0 1"
}
// entity 65
{
"classname" "atdm:ammo_vinearrow"
"name" "VineArrowsEasy"
"diff_0_nospawn" "0"
"diff_1_nospawn" "1"
"diff_2_nospawn" "1"
"inv_ammo_amount" "30"
"inv_map_start" "1"
"inv_no_pickup_message" "1"
"nodrop" "1"
"origin" "713 -684 -8"
"rotation" "1 0 0 0 0 1 0 -1 0"
}
// entity 66
{
"classname" "atdm:ammo_vinearrow"
"name" "VineArrowsHard"
"diff_0_nospawn" "1"
"diff_1_nospawn" "0"
"diff_2_nospawn" "1"
"inv_ammo_amount" "30"
"inv_map_start" "1"
"inv_no_pickup_message" "1"
"nodrop" "1"
"origin" "713 -732 -8"
"rotation" "1 0 0 0 0 1 0 -1 0"
}
// entity 67
{
"classname" "atdm:ammo_vinearrow"
"name" "VineArrowsExpert"
"diff_0_nospawn" "1"
"diff_1_nospawn" "1"
"diff_2_nospawn" "0"
"inv_ammo_amount" "30"
"inv_map_start" "1"
"inv_no_pickup_message" "1"
"nodrop" "1"
"origin" "713 -780 -8"
"rotation" "1 0 0 0 0 1 0 -1 0"
}
// entity 68
{
"classname" "atdm:location_settings"
"name" "atdm_location_settings_1"
"ambient_light_dist_scale" "1.0"
"ambient_light_dynamic_cap" "0.1 0.1 0.1"
"ambient_light_falloff" "0"
"angle" "90.000000"
"origin" "657 -532 0"
}
// entity 69
{
"classname" "info_player_start"
"name" "info_player_start_1"
"angle" "90.000000"
"origin" "-199 -196 -128"
}
// entity 70
{
"classname" "atdm:ai_townsfolk_commoner"
"name" "atdm_ai_townsfolk_commoner_1"
"origin" "-584 24 -127.853"
"rotation" "1 0 0 0 1 0 0 0 1"
"team" "0"
"target0" "path_corner_1"
}
// entity 71
{
"classname" "path_follow_actor"
"name" "path_follow_actor_1"
"origin" "-192 24 -24"
}
// entity 72
{
"classname" "path_corner"
"name" "path_corner_1"
"origin" "-392 24 -128"
"target0" "path_wait_1"
"target1" "atdm_target_changetarget_1"
}
// entity 73
{
"classname" "path_wait"
"name" "path_wait_1"
"origin" "-392 24 -32"
"wait" "0"
"target0" "path_follow_actor_1"
}
// entity 74
{
"classname" "light"
"name" "light_1"
"origin" "-200 -24 24"
"light_center" "0 0 0"
"light_radius" "728 776 320"
}
// entity 75
{
"classname" "atdm:target_changetarget"
"name" "atdm_target_changetarget_1"
"origin" "-328 -8 24"
"add" "player1"
"target0" "path_follow_actor_1"
}


|-
</div>
|'''Movers'''
</div>
|<gallery>File:Numberwheel.png</gallery>
|atdm:numberwheel
|N/A
|
|-
|-
|
|<gallery>File:Numberwheel small.png</gallery>
|atdm:numberwheel_small
|N/A
|
|-
|-
|
|N/A
|func_bobbing
|''Generic bobbing entity. It will bob on the Z axis by default.''
|
|-
|-
|
|N/A
|func_cameratarget
|''Used to control camera view motion and camera view position motion.''
|
|-
|-
|
|N/A
|func_mover
|''Movers are objects meant to be controlled through scripts.''
|
|-
|-
|
|N/A
|func_mover_amodel
|''Mover with a model. Movers are objects meant to be controlled through scripts.''
|
|-
|-
|
|N/A
|func_pendulum
|''Pendulums always swing north / south on unrotated models. Add an angles field to the model to allow rotation in other directions. Pendulum frequency is a physical constant based on the length of the beam and gravity.''
|
|-
|-
|
|N/A
|func_plat
|''Standard Quake-style platform.''
|
|-
|-
|
|N/A
|func_riser
|''Simply rises or falls when triggered.''
|
|-
|-
|
|N/A
|func_rotating
|''Generic rotating entity. It will rotate around the Z axis by default. Targeting entity will cause it to start or stop rotating, and, depending on 'invert_on_trigger' will cause it to reverse its direction.''
|
|-
|-
|
|N/A
|func_shaking
|''Shaking object.  Starts shaking at map start by default.  Triggering entity turns it on and off.''
|
|-
|}

Latest revision as of 11:48, 17 May 2024

This text is not collapsible; but the next is collapsible and hidden by default:

bla bla bla


"Talk" links next to "Datiswous" appear red.


https://www.mediawiki.org/wiki/Help:Templates

Secrets of Waterdeep

  • Former author(s): none
  • Current author(s): Free for adaption
  • Status: -
  • Type: -
  • Theme: -
  • Progress: -
  • Campaign: -



Bla Bla Bla


Table test

An alternative way to create and edit tables via use of a template.

 {|class="wikitable sortable" border=1 style="" cellspacing=0 cellpadding=2 width=100%
 |-
 !bgcolor=#d0d0e0 width="7%"|Subfolder(s)
 !bgcolor=#d0d0e0 width="11%"|Entity image
 !bgcolor=#d0d0e0 width="8%"|Entity file name
 !bgcolor=#d0d0e0 width="11%"|Entity description
 !bgcolor=#d0d0e0 width="11%"|Notes
 |-
 {{TableRow|'''kitchen'''|<gallery>File:Jug01.png</gallery>|atdm:jug01|N/A|}}
 {{TableRow||<gallery>File:Wine bottle02 standing01.png</gallery>|atdm:wine_bottle02_standing01|N/A|}}
 {{TableRow||<gallery>File:Wine bottle02 standing02.png</gallery>|atdm:wine_bottle02_standing02|N/A|}}
 |}
 


Subfolder(s) Entity image Entity file name Entity description Notes
kitchen atdm:jug01 N/A
atdm:wine_bottle02_standing01 N/A
atdm:wine_bottle02_standing02 N/A

"Items" subfolder

Subfolder(s) Entity image Entity file name Entity description Notes
None N/A atdm:item_base Don't use. The base class for items the player can pick up. Not for mapper use.
TBA atdm:item_book_red1 A red Book
N/A atdm:item_book_t1 Book
N/A atdm:item_paper1 Paper
N/A atdm:item_scroll1 Scroll
N/A atdm:map_base Don't use - base class for all map items. Not for mapper use.
Custom N/A atdm:grabable_custom_item A customisable, grabable and/or pushable object. Almost any model can be selected and other displayed properties easily modified. The model must have a collision model or the map will not run. If you want it to go in the inventory use atdm:moveable_custom_item.
N/A atdm:moveable_custom_item A customisable, moveable object that can go in the inventory and optionally dropped. It can also optionally trigger a target from the inventory. Almost any model can be selected and other displayed properties easily modified. The model must have a collision model or the map will not run. Alternatively, use the 'atdm:static_custom_item' which can still be picked up but is non-droppable and does not need a collision model. For a non-inventory grabable use 'atdm:grabable_custom_item'.
N/A atdm:static_custom_item A customisable, static object that can be picked up but not dropped. Almost any model can be selected and other displayed properties easily modified. It can optionally trigger a target from the inventory. Alternatively, use the 'atdm:moveable_custom_item', which can optionally be dropped but the model must have a collision model or the map won't run.


Controlling Where the Player Starts

The "Controlling Where the Player Starts" functionality is broken in TDM 2.10 and 2.11 and got working again since 2.12 dev. The example gui file is also missing, but a new version is being worked on.


Beginning with TDM 1.08, map authors can offer more than one start point to players. This could increase re-playability of a map, allowing the player to replay the map with a different starting point.


The following text is originally written in 2011 by Grayman and is now outdated:


This is an extension to the Button-Controlled Menu Briefing, so you should first obtain and install that package (see above) and become familiar with how it works.

mainmenu_briefing.gui

Obtain a new version of mainmenu_briefing.gui from this location:

This version of mainmenu_briefing.gui adds new definitions to the final briefing screen (screen 6), two for each optional start point.

In the sample gui, you'll see these new definitions:

  • windowDef StartPointBox1
  • windowDef StartPointBox2
  • windowDef StartPointBox3
  • windowDef StartPointText1
  • windowDef StartPointText2
  • windowDef StartPointText3

StartPointTextN defines the starting point text for point N and handles highlighting and mouse events.

StartPointBoxN defines a checkbox to the left of the text describing starting point N.

Though the template provides three starting points, you can change it to offer any number you wish. They don't need to appear on the last briefing screen, either, though you may find that's the most logical place to offer them.

What the Player Sees

When the player hovers the mouse over either the checkbox or text for a starting point, the text highlights.

When the player clicks on either the checkbox or text, a checkmark appears in the box and the text remains highlighted. Selecting a different starting position will unhighlight the previous selection and highlight the new one.

When the player starts the mission, he'll start at the selected location.

If the player makes no selection, he'll start at the info_player_start in the map that has the lowest entity number.

Making It Your Own

Three sample starting point descriptions are provided. Change these to match the briefing and starting points for your map. Look for and change these lines:

text "Scale the north wall and enter through an attic window."
.
.
.
text "Use the secret tunnel into the cellar."
.
.
.
text "Slide down the coal chute."

Each selection is tied to a specific info_player_start in your map. Look for these lines and change them to match the names of your info_player_starts:

set "gui::startSelect" "PlayerStart1";
.
.
.
set "gui::startSelect" "PlayerStart2";
.
.
.
set "gui::startSelect" "PlayerStart3";

That's all you need to do to offer three starting points.

If you want to offer only two starting points, comment out the third checkbox and text windowDef definitions, as well as any other lines that reference those definitions.

If you want to offer four starting points, copy/paste the StartPointBox3 and StartPointText3 definitions, rename the copies as StartPointBox4 and StartPointText4, adjust (x,y) locations on the screen, and extend the first three box/text definitions so they know about the new definitions.

For example, in the StartPointBox1 definition, you'll see these lines in the onAction() event:

set "background"			"guis/assets/objectives/box_checked";
set "StartPointBox2::background"	"guis/assets/objectives/box_default";
set "StartPointBox3::background"	"guis/assets/objectives/box_default";
set "StartPointText1::forecolor" 	HIGHLIGHTED_TEXT_COLOR;
set "StartPointText2::forecolor" 	DEFAULT_TEXT_COLOR;
set "StartPointText3::forecolor" 	DEFAULT_TEXT_COLOR;

If you add a fourth starting point, these lines would change to include knowledge of the new starting point box/text definitions:

set "background"			"guis/assets/objectives/box_checked";
set "StartPointBox2::background"	"guis/assets/objectives/box_default";
set "StartPointBox3::background"	"guis/assets/objectives/box_default";
set "StartPointBox4::background"	"guis/assets/objectives/box_default";
set "StartPointText1::forecolor" 	HIGHLIGHTED_TEXT_COLOR;
set "StartPointText2::forecolor" 	DEFAULT_TEXT_COLOR;
set "StartPointText3::forecolor" 	DEFAULT_TEXT_COLOR;
set "StartPointText4::forecolor" 	DEFAULT_TEXT_COLOR;

Make similar changes where needed by searching the file for StartPointBox3 and StartPointText3 to find all the places where box/text definitions are referenced.

Also look for references to "selectionIndex", see how it's used, and adjust its setting in your new definitions accordingly.

If you have questions, you can contact grayman on the TDM forums by either sending a PM or posting to this thread: Controlling where the player starts a mission

Testmap path nodes

Save code in texteditor (for example) as path.map and load in DR

Version 2
// entity 0
{
"classname" "worldspawn"
"editor_description" "Simple test map consisting of a large room with a player start and a blue room comprising the mapstartpack_complete prefab. The ambient world has been brightened to 0.1 0.1 0.1."
// primitive 0
{
brushDef3
{
( 0 0 1 -160 ) ( ( 0.015625 0 -3.9375 ) ( 0 0.015625 3.109375 ) ) "textures/common/caulk" 0 0 0
( 0 1 0 -764 ) ( ( 0.015625 0 -3.109375 ) ( 0 0.015625 -2 ) ) "textures/common/caulk" 0 0 0
( 1 0 0 -313 ) ( ( 0.015625 0 -3.9375 ) ( 0 0.015625 -2 ) ) "textures/common/caulk" 0 0 0
( 0 -1 0 -260 ) ( ( 0.015625 0 3.109375 ) ( 0 0.015625 -2 ) ) "textures/common/caulk" 0 0 0
( -1 0 0 -711 ) ( ( 0.015625 0 3.9375 ) ( 0 0.015625 -2 ) ) "textures/common/caulk" 0 0 0
( 0 0 -1 128 ) ( ( 0.007811999879777431 0 -1.968623995780945 ) ( 0 0.007811999879777431 -1.554587960243225 ) ) "textures/darkmod/wood/boards/pier_platform" 0 0 0
}
}
// primitive 1
{
brushDef3
{
( 0 0 1 -128 ) ( ( 0.015625 0 -3.9375 ) ( 0 0.015625 3.109375 ) ) "textures/common/caulk" 0 0 0
( 0 1 0 -796 ) ( ( 0.015625 0 -3.109375 ) ( 0 0.015625 -2 ) ) "textures/common/caulk" 0 0 0
( 1 0 0 -313 ) ( ( 0.015625 0 -3.9375 ) ( 0 0.015625 -2 ) ) "textures/common/caulk" 0 0 0
( 0 0 -1 -128 ) ( ( 0.015625 0 -3.9375 ) ( 0 0.015625 -3.109375 ) ) "textures/common/caulk" 0 0 0
( -1 0 0 -711 ) ( ( 0.015625 0 3.9375 ) ( 0 0.015625 -2 ) ) "textures/common/caulk" 0 0 0
( 0 -1 0 764 ) ( ( 0.007811999879777431 0 1.554587960243225 ) ( 0 0.007811999879777431 -0.9999359846115112 ) ) "textures/darkmod/wood/boards/pier_platform" 0 0 0
}
}
// primitive 2
{
brushDef3
{
( 0 0 1 -128 ) ( ( 0.015625 0 -3.9375 ) ( 0 0.015625 3.109375 ) ) "textures/common/caulk" 0 0 0
( 0 1 0 -764 ) ( ( 0.015625 0 -3.109375 ) ( 0 0.015625 -2 ) ) "textures/common/caulk" 0 0 0
( 1 0 0 -345 ) ( ( 0.015625 0 -3.9375 ) ( 0 0.015625 -2 ) ) "textures/common/caulk" 0 0 0
( 0 0 -1 -128 ) ( ( 0.015625 0 -3.9375 ) ( 0 0.015625 -3.109375 ) ) "textures/common/caulk" 0 0 0
( 0 -1 0 -260 ) ( ( 0.015625 0 3.109375 ) ( 0 0.015625 -2 ) ) "textures/common/caulk" 0 0 0
( -1 0 0 313 ) ( ( 0.007811999879777431 0 1.968623995780945 ) ( 0 0.007811999879777431 -0.9999359846115112 ) ) "textures/darkmod/wood/boards/pier_platform" 0 0 0
}
}
// primitive 3
{
brushDef3
{
( 0 1 0 -764 ) ( ( 0.015625 0 -3.109375 ) ( 0 0.015625 -2 ) ) "textures/common/caulk" 0 0 0
( 1 0 0 -313 ) ( ( 0.015625 0 -3.9375 ) ( 0 0.015625 -2 ) ) "textures/common/caulk" 0 0 0
( 0 0 -1 -160 ) ( ( 0.015625 0 -3.9375 ) ( 0 0.015625 -3.109375 ) ) "textures/common/caulk" 0 0 0
( 0 -1 0 -260 ) ( ( 0.015625 0 3.109375 ) ( 0 0.015625 -2 ) ) "textures/common/caulk" 0 0 0
( -1 0 0 -711 ) ( ( 0.015625 0 3.9375 ) ( 0 0.015625 -2 ) ) "textures/common/caulk" 0 0 0
( 0 0 1 128 ) ( ( 0.007811999879777431 0 -1.968623995780945 ) ( 0 0.007811999879777431 1.554587960243225 ) ) "textures/darkmod/wood/boards/pier_platform" 0 0 0
}
}
// primitive 4
{
brushDef3
{
( 0 0 1 -128 ) ( ( 0.015625 0 -3.9375 ) ( 0 0.015625 3.109375 ) ) "textures/common/caulk" 0 0 0
( 1 0 0 -313 ) ( ( 0.015625 0 -3.9375 ) ( 0 0.015625 -2 ) ) "textures/common/caulk" 0 0 0
( 0 0 -1 -128 ) ( ( 0.015625 0 -3.9375 ) ( 0 0.015625 -3.109375 ) ) "textures/common/caulk" 0 0 0
( 0 -1 0 -292 ) ( ( 0.015625 0 3.109375 ) ( 0 0.015625 -2 ) ) "textures/common/caulk" 0 0 0
( -1 0 0 -711 ) ( ( 0.015625 0 3.9375 ) ( 0 0.015625 -2 ) ) "textures/common/caulk" 0 0 0
( 0 1 0 260 ) ( ( 0.007811999879777431 0 -1.554587960243225 ) ( 0 0.007811999879777431 -0.9999359846115112 ) ) "textures/darkmod/wood/boards/pier_platform" 0 0 0
}
}
// primitive 5
{
brushDef3
{
( 0 0 1 -128 ) ( ( 0.015625 0 -3.9375 ) ( 0 0.015625 3.109375 ) ) "textures/common/caulk" 0 0 0
( 0 1 0 -764 ) ( ( 0.015625 0 -3.109375 ) ( 0 0.015625 -2 ) ) "textures/common/caulk" 0 0 0
( 0 0 -1 -128 ) ( ( 0.015625 0 -3.9375 ) ( 0 0.015625 -3.109375 ) ) "textures/common/caulk" 0 0 0
( 0 -1 0 -260 ) ( ( 0.015625 0 3.109375 ) ( 0 0.015625 -2 ) ) "textures/common/caulk" 0 0 0
( -1 0 0 -743 ) ( ( 0.015625 0 3.9375 ) ( 0 0.015625 -2 ) ) "textures/common/caulk" 0 0 0
( 1 0 0 711 ) ( ( 0.007811999879777431 0 -1.968623995780945 ) ( 0 0.007811999879777431 -0.9999359846115112 ) ) "textures/darkmod/wood/boards/pier_platform" 0 0 0
}
}
// primitive 6
{
brushDef3
{
( 0 0 1 -88 ) ( ( 0.0625 0 96.65625 ) ( 0 0.0625 21.25 ) ) "textures/common/caulk" 0 0 0
( 0 1 0 500 ) ( ( 0.0625 0 42.75 ) ( 0 0.0625 1.28125 ) ) "textures/common/caulk" 0 0 0
( 1 0 0 -737 ) ( ( 0.0625 0 96.65625 ) ( 0 0.0625 1.28125 ) ) "textures/common/caulk" 0 0 0
( 0 -1 0 -788 ) ( ( 0.0625 0 21.25 ) ( 0 0.0625 1.28125 ) ) "textures/common/caulk" 0 0 0
( -1 0 0 609 ) ( ( 0.0625 0 -32.65625 ) ( 0 0.0625 1.28125 ) ) "textures/common/caulk" 0 0 0
( 0 0 -1 80 ) ( ( 0.0625 0 96.65625 ) ( 0 0.0625 41.75 ) ) "textures/common/caulk" 0 0 0
}
}
// primitive 7
{
brushDef3
{
( 0 0 1 -80 ) ( ( 0.0625 0 96.65625 ) ( 0 0.0625 21.25 ) ) "textures/common/caulk" 0 0 0
( 0 1 0 492 ) ( ( 0.0625 0 42.75 ) ( 0 0.0625 0.78125 ) ) "textures/common/caulk" 0 0 0
( 1 0 0 -737 ) ( ( 0.0625 0 96.65625 ) ( 0 0.0625 0.78125 ) ) "textures/common/caulk" 0 0 0
( 0 0 -1 -48 ) ( ( 0.0625 0 96.65625 ) ( 0 0.0625 42.75 ) ) "textures/common/caulk" 0 0 0
( -1 0 0 609 ) ( ( 0.0625 0 -32.65625 ) ( 0 0.0625 0.78125 ) ) "textures/common/caulk" 0 0 0
( 0 -1 0 -500 ) ( ( 0.0625 0 22.25 ) ( 0 0.0625 0.78125 ) ) "textures/common/caulk" 0 0 0
}
}
// primitive 8
{
brushDef3
{
( 0 1 0 500 ) ( ( 0.0625 0 42.75 ) ( 0 0.0625 0.28125 ) ) "textures/common/caulk" 0 0 0
( 1 0 0 -737 ) ( ( 0.0625 0 96.65625 ) ( 0 0.0625 0.28125 ) ) "textures/common/caulk" 0 0 0
( 0 0 -1 -56 ) ( ( 0.0625 0 96.65625 ) ( 0 0.0625 42.75 ) ) "textures/common/caulk" 0 0 0
( 0 -1 0 -788 ) ( ( 0.0625 0 20.75 ) ( 0 0.0625 0.28125 ) ) "textures/common/caulk" 0 0 0
( -1 0 0 609 ) ( ( 0.0625 0 -32.65625 ) ( 0 0.0625 0.28125 ) ) "textures/common/caulk" 0 0 0
( 0 0 1 48 ) ( ( 0.0625 0 96.65625 ) ( 0 0.0625 22.25 ) ) "textures/common/caulk" 0 0 0
}
}
// primitive 9
{
brushDef3
{
( 0 0 1 -80 ) ( ( 0.0625 0 45.78125 ) ( 0 0.0625 21.4375 ) ) "textures/common/caulk" 0 0 0
( 1 0 0 -737 ) ( ( 0.0625 0 45.78125 ) ( 0 0.0625 0.78125 ) ) "textures/common/caulk" 0 0 0
( 0 0 -1 -48 ) ( ( 0.0625 0 45.78125 ) ( 0 0.0625 42.5625 ) ) "textures/common/caulk" 0 0 0
( 0 -1 0 -796 ) ( ( 0.0625 0 21.4375 ) ( 0 0.0625 0.78125 ) ) "textures/common/caulk" 0 0 0
( -1 0 0 609 ) ( ( 0.0625 0 18.21875 ) ( 0 0.0625 0.78125 ) ) "textures/common/caulk" 0 0 0
( 0 1 0 788 ) ( ( 0.0625 0 41.5625 ) ( 0 0.0625 0.78125 ) ) "textures/common/caulk" 0 0 0
}
}
// primitive 10
{
brushDef3
{
( 0 0 1 -80 ) ( ( 0.0625 0 97.25 ) ( 0 0.0625 21.9375 ) ) "textures/common/caulk" 0 0 0
( 0 1 0 500 ) ( ( 0.0625 0 42.0625 ) ( 0 0.0625 0.78125 ) ) "textures/common/caulk" 0 0 0
( 0 0 -1 -48 ) ( ( 0.0625 0 97.25 ) ( 0 0.0625 42.0625 ) ) "textures/common/caulk" 0 0 0
( 0 -1 0 -788 ) ( ( 0.0625 0 21.9375 ) ( 0 0.0625 0.78125 ) ) "textures/common/caulk" 0 0 0
( -1 0 0 601 ) ( ( 0.0625 0 -33.25 ) ( 0 0.0625 0.78125 ) ) "textures/common/caulk" 0 0 0
( 1 0 0 -609 ) ( ( 0.0625 0 97.25 ) ( 0 0.0625 0.78125 ) ) "textures/common/caulk" 0 0 0
}
}
// primitive 11
{
brushDef3
{
( 0 0 1 -80 ) ( ( 0.0625 0 97.25 ) ( 0 0.0625 13.4375 ) ) "textures/common/caulk" 0 0 0
( 0 1 0 500 ) ( ( 0.0625 0 50.5625 ) ( 0 0.0625 0.78125 ) ) "textures/common/caulk" 0 0 0
( 0 0 -1 -48 ) ( ( 0.0625 0 97.25 ) ( 0 0.0625 50.5625 ) ) "textures/common/caulk" 0 0 0
( 0 -1 0 -788 ) ( ( 0.0625 0 13.4375 ) ( 0 0.0625 0.78125 ) ) "textures/common/caulk" 0 0 0
( -1 0 0 737 ) ( ( 0.0625 0 -33.25 ) ( 0 0.0625 0.78125 ) ) "textures/common/caulk" 0 0 0
( 1 0 0 -745 ) ( ( 0.0625 0 97.25 ) ( 0 0.0625 0.78125 ) ) "textures/common/caulk" 0 0 0
}
}
}
// entity 1
{
"classname" "light"
"name" "ambient_world"
"_color" "0.1 0.1 0.1"
"light_center" "0 0 0"
"light_radius" "10280 10280 10280"
"nodiffuse" "0"
"noshadows" "0"
"nospecular" "0"
"origin" "709 -532 48"
"parallel" "0"
"texture" "lights/ambientlightnfo"
}
// entity 2
{
"classname" "atdm:target_addobjectives"
"name" "Objectives"
"angle" "90.000000"
"obj1_1_args" "1"
"obj1_1_irreversible" "0"
"obj1_1_not" "0"
"obj1_1_player_responsible" "0"
"obj1_1_spec1" "name"
"obj1_1_spec_val1" "ItemName"
"obj1_1_state" "0"
"obj1_1_type" "item"
"obj1_desc" "Get or Steal a Special Object"
"obj1_irreversible" "0"
"obj1_mandatory" "1"
"obj1_ongoing" "0"
"obj1_state" "0"
"obj1_visible" "1"
"obj2_1_args" "1"
"obj2_1_irreversible" "0"
"obj2_1_not" "0"
"obj2_1_player_responsible" "0"
"obj2_1_spec1" "overall"
"obj2_1_state" "0"
"obj2_1_type" "item"
"obj2_desc" "Get Loot (Easy)"
"obj2_difficulty" "0"
"obj2_irreversible" "0"
"obj2_mandatory" "1"
"obj2_ongoing" "0"
"obj2_state" "0"
"obj2_visible" "1"
"obj3_1_args" "2"
"obj3_1_irreversible" "0"
"obj3_1_not" "0"
"obj3_1_player_responsible" "0"
"obj3_1_spec1" "overall"
"obj3_1_state" "0"
"obj3_1_type" "item"
"obj3_desc" "Get Loot (Hard)"
"obj3_difficulty" "1"
"obj3_irreversible" "0"
"obj3_mandatory" "1"
"obj3_ongoing" "0"
"obj3_state" "0"
"obj3_visible" "1"
"obj4_1_args" "3"
"obj4_1_irreversible" "0"
"obj4_1_not" "0"
"obj4_1_player_responsible" "0"
"obj4_1_spec1" "overall"
"obj4_1_state" "0"
"obj4_1_type" "item"
"obj4_desc" "Get Loot (Expert)"
"obj4_difficulty" "2"
"obj4_irreversible" "0"
"obj4_mandatory" "1"
"obj4_ongoing" "0"
"obj4_state" "0"
"obj4_visible" "1"
"obj5_1_args" "1"
"obj5_1_irreversible" "1"
"obj5_1_not" "1"
"obj5_1_player_responsible" "1"
"obj5_1_spec1" "overall"
"obj5_1_state" "1"
"obj5_1_type" "kill"
"obj5_desc" "No killing (on Expert)"
"obj5_difficulty" "2"
"obj5_irreversible" "1"
"obj5_mandatory" "1"
"obj5_ongoing" "1"
"obj5_state" "0"
"obj5_visible" "1"
"obj6_1_args" "0"
"obj6_1_irreversible" "0"
"obj6_1_not" "0"
"obj6_1_player_responsible" "0"
"obj6_1_spec1" "spawnclass"
"obj6_1_spec2" "name"
"obj6_1_spec_val1" "idPlayer"
"obj6_1_spec_val2" "EscZone"
"obj6_1_state" "0"
"obj6_1_type" "location"
"obj6_desc" "Go To Room X, eg, When all objectives done, return to start (modify Enabling Objectives if different)"
"obj6_enabling_objs" "1 AND (2 OR 3 OR 4)"
"obj6_irreversible" "0"
"obj6_mandatory" "1"
"obj6_ongoing" "0"
"obj6_state" "0"
"obj6_visible" "1"
"origin" "633 -532 0"
}
// entity 3
{
"classname" "atdm:playertools_compass"
"name" "CompassEasy"
"diff_0_nospawn" "0"
"diff_1_nospawn" "1"
"diff_2_nospawn" "1"
"inv_map_start" "1"
"nodrop" "1"
"origin" "618 -554.5 60.5"
"rotation" "1 0 0 0 1 0 0 0 1"
}
// entity 4
{
"classname" "atdm:playertools_lantern"
"name" "LanternEasy"
"diff_0_nospawn" "0"
"diff_1_nospawn" "1"
"diff_2_nospawn" "1"
"inv_map_start" "1"
"nodrop" "1"
"origin" "630 -554.5 60.5"
"rotation" "1 0 0 0 1 0 0 0 1"
}
// entity 5
{
"classname" "atdm:playertools_spyglass"
"name" "SpyglassEasy"
"diff_0_nospawn" "0"
"diff_1_nospawn" "1"
"diff_2_nospawn" "1"
"inv_map_start" "1"
"nodrop" "1"
"origin" "640 -554.5 60.5"
"rotation" "1 0 0 0 1 0 0 0 1"
}
// entity 6
{
"classname" "atdm:playertools_health_potion"
"name" "HealthPotionsEasy"
"diff_0_nospawn" "0"
"diff_1_nospawn" "1"
"diff_2_nospawn" "1"
"inv_count" "10"
"inv_map_start" "1"
"nodrop" "1"
"origin" "656 -554.5 35.5"
"rotation" "1 0 0 0 1 0 0 0 1"
}
// entity 7
{
"classname" "atdm:weapon_shortsword"
"name" "SwordEasy"
"diff_0_nospawn" "0"
"diff_1_nospawn" "1"
"diff_2_nospawn" "1"
"inv_map_start" "1"
"inv_no_pickup_message" "1"
"nodrop" "1"
"origin" "728 -604.5 11.5"
"rotation" "0 1 0 -1 0 0 0 0 1"
}
// entity 8
{
"classname" "atdm:weapon_blackjack"
"name" "BlackjackEasy"
"diff_0_nospawn" "0"
"diff_1_nospawn" "1"
"diff_2_nospawn" "1"
"inv_map_start" "1"
"inv_no_pickup_message" "1"
"nodrop" "1"
"origin" "679.62 -605.25 11.5"
"rotation" "1 0 0 0 1 0 0 0 1"
}
// entity 9
{
"classname" "atdm:playertools_breath_potion"
"name" "BreathPotionsEasy"
"diff_0_nospawn" "0"
"diff_1_nospawn" "1"
"diff_2_nospawn" "1"
"inv_count" "10"
"inv_map_start" "1"
"nodrop" "1"
"origin" "668 -554.5 35.5"
"rotation" "1 0 0 0 1 0 0 0 1"
}
// entity 10
{
"classname" "atdm:playertools_flashbomb"
"name" "FlashbombsEasy"
"diff_0_nospawn" "0"
"diff_1_nospawn" "1"
"diff_2_nospawn" "1"
"inv_count" "10"
"inv_map_start" "1"
"nodrop" "1"
"origin" "620 -604.5 35.5"
"rotation" "1 0 0 0 1 0 0 0 1"
}
// entity 11
{
"classname" "atdm:key_fancy02"
"name" "key_master"
"inv_icon" "guis/assets/hud/inventory_icons/key_good_red"
"inv_map_start" "1"
"inv_name" "MASTER KEY"
"inv_stackable" "0"
"nodrop" "1"
"origin" "729 -532 32"
"rotation" "0 -1 0 1 0 0 0 0 1"
"skin" "bc_key02red"
}
// entity 12
{
"classname" "atdm:shop"
"name" "ShopItems"
"angle" "90.000000"
"diff_0_shop_gold_start" "800"
"diff_1_shop_gold_start" "600"
"diff_2_shop_gold_start" "400"
"origin" "681 -532 0"
"shopItem_11_0_qty" "0"
"shopItem_11_1_qty" "0"
"shopItem_11_2_qty" "0"
"shopItem_11_item" "atdm:playertools_compass"
"shopItem_12_0_qty" "0"
"shopItem_12_1_qty" "0"
"shopItem_12_2_qty" "0"
"shopItem_12_item" "atdm:playertools_lantern"
"shopItem_13_0_qty" "0"
"shopItem_13_1_qty" "0"
"shopItem_13_2_qty" "0"
"shopItem_13_item" "atdm:playertools_spyglass"
"shopItem_15_0_qty" "0"
"shopItem_15_1_qty" "0"
"shopItem_15_2_qty" "0"
"shopItem_15_item" "atdm:playertools_mine"
"shopItem_16_0_qty" "0"
"shopItem_16_1_qty" "0"
"shopItem_16_2_qty" "0"
"shopItem_16_item" "atdm:playertools_flashbomb"
"shopItem_17_0_qty" "0"
"shopItem_17_1_qty" "0"
"shopItem_17_2_qty" "0"
"shopItem_17_item" "atdm:playertools_holywater"
"shopItem_18_0_qty" "0"
"shopItem_18_1_qty" "0"
"shopItem_18_2_qty" "0"
"shopItem_18_item" "atdm:playertools_health_potion"
"shopItem_19_0_qty" "0"
"shopItem_19_1_qty" "0"
"shopItem_19_2_qty" "0"
"shopItem_19_item" "atdm:playertools_breath_potion"
"shopItem_1_0_qty" "0"
"shopItem_1_1_qty" "0"
"shopItem_1_2_qty" "0"
"shopItem_1_item" "atdm:weapon_shortsword"
"shopItem_20_0_qty" "0"
"shopItem_20_1_qty" "0"
"shopItem_20_2_qty" "0"
"shopItem_20_item" "atdm:weapon_vinearrow"
"shopItem_2_0_qty" "0"
"shopItem_2_1_qty" "0"
"shopItem_2_2_qty" "0"
"shopItem_2_item" "atdm:weapon_blackjack"
"shopItem_3_0_qty" "0"
"shopItem_3_1_qty" "0"
"shopItem_3_2_qty" "0"
"shopItem_3_item" "atdm:weapon_waterarrow"
"shopItem_4_0_qty" "0"
"shopItem_4_1_qty" "0"
"shopItem_4_2_qty" "0"
"shopItem_4_item" "atdm:weapon_broadhead"
"shopItem_5_0_qty" "0"
"shopItem_5_1_qty" "0"
"shopItem_5_2_qty" "0"
"shopItem_5_item" "atdm:weapon_ropearrow"
"shopItem_6_0_qty" "0"
"shopItem_6_1_qty" "0"
"shopItem_6_2_qty" "0"
"shopItem_6_item" "atdm:weapon_mossarrow"
"shopItem_7_0_qty" "0"
"shopItem_7_1_qty" "0"
"shopItem_7_2_qty" "0"
"shopItem_7_item" "atdm:weapon_noisemaker"
"shopItem_8_0_qty" "0"
"shopItem_8_1_qty" "0"
"shopItem_8_2_qty" "0"
"shopItem_8_item" "atdm:weapon_firearrow"
"shopItem_9_0_qty" "0"
"shopItem_9_1_qty" "0"
"shopItem_9_2_qty" "0"
"shopItem_9_item" "atdm:weapon_gasarrow"
"startingitem_11_0_qty" "0"
"startingitem_11_1_qty" "0"
"startingitem_11_2_qty" "0"
"startingitem_11_item" "atdm:playertools_compass"
"startingitem_12_0_qty" "0"
"startingitem_12_1_qty" "0"
"startingitem_12_2_qty" "0"
"startingitem_12_item" "atdm:playertools_lantern"
"startingitem_13_0_qty" "0"
"startingitem_13_1_qty" "0"
"startingitem_13_2_qty" "0"
"startingitem_13_item" "atdm:playertools_spyglass"
"startingitem_15_0_qty" "0"
"startingitem_15_1_qty" "0"
"startingitem_15_2_qty" "0"
"startingitem_15_item" "atdm:playertools_mine"
"startingitem_16_0_qty" "0"
"startingitem_16_1_qty" "0"
"startingitem_16_2_qty" "0"
"startingitem_16_item" "atdm:playertools_flashbomb"
"startingitem_17_0_qty" "0"
"startingitem_17_1_qty" "0"
"startingitem_17_2_qty" "0"
"startingitem_17_item" "atdm:playertools_holywater"
"startingitem_18_0_qty" "0"
"startingitem_18_1_qty" "0"
"startingitem_18_2_qty" "0"
"startingitem_18_item" "atdm:playertools_health_potion"
"startingitem_19_0_qty" "0"
"startingitem_19_1_qty" "0"
"startingitem_19_2_qty" "0"
"startingitem_19_item" "atdm:playertools_breath_potion"
"startingitem_1_0_qty" "0"
"startingitem_1_1_qty" "0"
"startingitem_1_2_qty" "0"
"startingitem_1_item" "atdm:weapon_shortsword"
"startingitem_20_0_qty" "0"
"startingitem_20_1_qty" "0"
"startingitem_20_2_qty" "0"
"startingitem_20_item" "atdm:weapon_vinearrow"
"startingitem_2_0_qty" "0"
"startingitem_2_1_qty" "0"
"startingitem_2_2_qty" "0"
"startingitem_2_item" "atdm:weapon_blackjack"
"startingitem_3_0_qty" "0"
"startingitem_3_1_qty" "0"
"startingitem_3_2_qty" "0"
"startingitem_3_item" "atdm:weapon_waterarrow"
"startingitem_4_0_qty" "0"
"startingitem_4_1_qty" "0"
"startingitem_4_2_qty" "0"
"startingitem_4_item" "atdm:weapon_broadhead"
"startingitem_5_0_qty" "0"
"startingitem_5_1_qty" "0"
"startingitem_5_2_qty" "0"
"startingitem_5_item" "atdm:weapon_ropearrow"
"startingitem_6_0_qty" "0"
"startingitem_6_1_qty" "0"
"startingitem_6_2_qty" "0"
"startingitem_6_item" "atdm:weapon_mossarrow"
"startingitem_7_0_qty" "0"
"startingitem_7_1_qty" "0"
"startingitem_7_2_qty" "0"
"startingitem_7_item" "atdm:weapon_noisemaker"
"startingitem_8_0_qty" "0"
"startingitem_8_1_qty" "0"
"startingitem_8_2_qty" "0"
"startingitem_8_item" "atdm:weapon_firearrow"
"startingitem_9_0_qty" "0"
"startingitem_9_1_qty" "0"
"startingitem_9_2_qty" "0"
"startingitem_9_item" "atdm:weapon_gasarrow"
}
// entity 13
{
"classname" "atdm:ammo_broadhead"
"name" "BroadheadsEasy"
"diff_0_nospawn" "0"
"diff_1_nospawn" "1"
"diff_2_nospawn" "1"
"inv_ammo_amount" "30"
"inv_map_start" "1"
"inv_no_pickup_message" "1"
"nodrop" "1"
"origin" "617 -684 -8"
"rotation" "1 0 0 0 0 1 0 -1 0"
}
// entity 14
{
"classname" "atdm:ammo_broadhead"
"name" "BroadheadsHard"
"diff_0_nospawn" "1"
"diff_1_nospawn" "0"
"diff_2_nospawn" "1"
"inv_ammo_amount" "30"
"inv_map_start" "1"
"inv_no_pickup_message" "1"
"nodrop" "1"
"origin" "617 -732 -8"
"rotation" "1 0 0 0 0 1 0 -1 0"
}
// entity 15
{
"classname" "atdm:ammo_broadhead"
"name" "BroadheadsExpert"
"diff_0_nospawn" "1"
"diff_1_nospawn" "1"
"diff_2_nospawn" "0"
"inv_ammo_amount" "30"
"inv_map_start" "1"
"inv_no_pickup_message" "1"
"nodrop" "1"
"origin" "617 -780 -8"
"rotation" "1 0 0 0 0 1 0 -1 0"
}
// entity 16
{
"classname" "atdm:ammo_firearrow"
"name" "FireArrowsEasy"
"diff_0_nospawn" "0"
"diff_1_nospawn" "1"
"diff_2_nospawn" "1"
"inv_ammo_amount" "30"
"inv_map_start" "1"
"inv_no_pickup_message" "1"
"nodrop" "1"
"origin" "633 -684 -8"
"rotation" "1 0 0 0 0 1 0 -1 0"
}
// entity 17
{
"classname" "atdm:ammo_firearrow"
"name" "FireArrowsHard"
"diff_0_nospawn" "1"
"diff_1_nospawn" "0"
"diff_2_nospawn" "1"
"inv_ammo_amount" "30"
"inv_map_start" "1"
"inv_no_pickup_message" "1"
"nodrop" "1"
"origin" "633 -732 -8"
"rotation" "1 0 0 0 0 1 0 -1 0"
}
// entity 18
{
"classname" "atdm:ammo_firearrow"
"name" "FireArrowsExpert"
"diff_0_nospawn" "1"
"diff_1_nospawn" "1"
"diff_2_nospawn" "0"
"inv_ammo_amount" "30"
"inv_map_start" "1"
"inv_no_pickup_message" "1"
"nodrop" "1"
"origin" "633 -780 -8"
"rotation" "1 0 0 0 0 1 0 -1 0"
}
// entity 19
{
"classname" "atdm:ammo_gasarrow"
"name" "GasArrowsEasy"
"diff_0_nospawn" "0"
"diff_1_nospawn" "1"
"diff_2_nospawn" "1"
"inv_ammo_amount" "30"
"inv_map_start" "1"
"inv_no_pickup_message" "1"
"nodrop" "1"
"origin" "649 -684 -8"
"rotation" "1 0 0 0 0 1 0 -1 0"
}
// entity 20
{
"classname" "atdm:ammo_gasarrow"
"name" "GasArrowsHard"
"diff_0_nospawn" "1"
"diff_1_nospawn" "0"
"diff_2_nospawn" "1"
"inv_ammo_amount" "30"
"inv_map_start" "1"
"inv_no_pickup_message" "1"
"nodrop" "1"
"origin" "649 -732 -8"
"rotation" "1 0 0 0 0 1 0 -1 0"
}
// entity 21
{
"classname" "atdm:ammo_gasarrow"
"name" "GasArrowsExpert"
"diff_0_nospawn" "1"
"diff_1_nospawn" "1"
"diff_2_nospawn" "0"
"inv_ammo_amount" "30"
"inv_map_start" "1"
"inv_no_pickup_message" "1"
"nodrop" "1"
"origin" "649 -780 -8"
"rotation" "1 0 0 0 0 1 0 -1 0"
}
// entity 22
{
"classname" "atdm:ammo_mossarrow"
"name" "MossArrowsEasy"
"diff_0_nospawn" "0"
"diff_1_nospawn" "1"
"diff_2_nospawn" "1"
"inv_ammo_amount" "30"
"inv_map_start" "1"
"inv_no_pickup_message" "1"
"nodrop" "1"
"origin" "665 -684 -8"
"rotation" "1 0 0 0 0 1 0 -1 0"
}
// entity 23
{
"classname" "atdm:ammo_mossarrow"
"name" "MossArrowsExpert"
"diff_0_nospawn" "1"
"diff_1_nospawn" "1"
"diff_2_nospawn" "0"
"inv_ammo_amount" "30"
"inv_map_start" "1"
"inv_no_pickup_message" "1"
"nodrop" "1"
"origin" "665 -780 -8"
"rotation" "1 0 0 0 0 1 0 -1 0"
}
// entity 24
{
"classname" "atdm:ammo_mossarrow"
"name" "MossArrowsHard"
"diff_0_nospawn" "1"
"diff_1_nospawn" "0"
"diff_2_nospawn" "1"
"inv_ammo_amount" "30"
"inv_map_start" "1"
"inv_no_pickup_message" "1"
"nodrop" "1"
"origin" "665 -732 -8"
"rotation" "1 0 0 0 0 1 0 -1 0"
}
// entity 25
{
"classname" "atdm:ammo_noisemaker"
"name" "NoiseArrowsEasy"
"diff_0_nospawn" "0"
"diff_1_nospawn" "1"
"diff_2_nospawn" "1"
"inv_ammo_amount" "30"
"inv_map_start" "1"
"inv_no_pickup_message" "1"
"nodrop" "1"
"origin" "681 -684 -8"
"rotation" "1 0 0 0 0 1 0 -1 0"
}
// entity 26
{
"classname" "atdm:ammo_noisemaker"
"name" "NoiseArrowsHard"
"diff_0_nospawn" "1"
"diff_1_nospawn" "0"
"diff_2_nospawn" "1"
"inv_ammo_amount" "30"
"inv_map_start" "1"
"inv_no_pickup_message" "1"
"nodrop" "1"
"origin" "681 -732 -8"
"rotation" "1 0 0 0 0 1 0 -1 0"
}
// entity 27
{
"classname" "atdm:ammo_noisemaker"
"name" "NoiseArrowsExpert"
"diff_0_nospawn" "1"
"diff_1_nospawn" "1"
"diff_2_nospawn" "0"
"inv_ammo_amount" "30"
"inv_map_start" "1"
"inv_no_pickup_message" "1"
"nodrop" "1"
"origin" "681 -780 -8"
"rotation" "1 0 0 0 0 1 0 -1 0"
}
// entity 28
{
"classname" "atdm:ammo_ropearrow"
"name" "RopeArrowsEasy"
"diff_0_nospawn" "0"
"diff_1_nospawn" "1"
"diff_2_nospawn" "1"
"inv_ammo_amount" "30"
"inv_map_start" "1"
"inv_no_pickup_message" "1"
"nodrop" "1"
"origin" "697 -684 -8"
"rotation" "1 0 0 0 0 1 0 -1 0"
}
// entity 29
{
"classname" "atdm:ammo_ropearrow"
"name" "RopeArrowsHard"
"diff_0_nospawn" "1"
"diff_1_nospawn" "0"
"diff_2_nospawn" "1"
"inv_ammo_amount" "30"
"inv_map_start" "1"
"inv_no_pickup_message" "1"
"nodrop" "1"
"origin" "697 -732 -8"
"rotation" "1 0 0 0 0 1 0 -1 0"
}
// entity 30
{
"classname" "atdm:ammo_ropearrow"
"name" "RopeArrowsExpert"
"diff_0_nospawn" "1"
"diff_1_nospawn" "1"
"diff_2_nospawn" "0"
"inv_ammo_amount" "30"
"inv_map_start" "1"
"inv_no_pickup_message" "1"
"nodrop" "1"
"origin" "697 -780 -8"
"rotation" "1 0 0 0 0 1 0 -1 0"
}
// entity 31
{
"classname" "atdm:ammo_waterarrow"
"name" "WaterArrowsEasy"
"diff_0_nospawn" "0"
"diff_1_nospawn" "1"
"diff_2_nospawn" "1"
"inv_ammo_amount" "30"
"inv_map_start" "1"
"inv_no_pickup_message" "1"
"nodrop" "1"
"origin" "729 -684 -8"
"rotation" "1 0 0 0 0 1 0 -1 0"
}
// entity 32
{
"classname" "atdm:ammo_waterarrow"
"name" "WaterArrowsHard"
"diff_0_nospawn" "1"
"diff_1_nospawn" "0"
"diff_2_nospawn" "1"
"inv_ammo_amount" "30"
"inv_map_start" "1"
"inv_no_pickup_message" "1"
"nodrop" "1"
"origin" "729 -732 -8"
"rotation" "1 0 0 0 0 1 0 -1 0"
}
// entity 33
{
"classname" "atdm:ammo_waterarrow"
"name" "WaterArrowsExpert"
"diff_0_nospawn" "1"
"diff_1_nospawn" "1"
"diff_2_nospawn" "0"
"inv_ammo_amount" "30"
"inv_map_start" "1"
"inv_no_pickup_message" "1"
"nodrop" "1"
"origin" "729 -780 -8"
"rotation" "1 0 0 0 0 1 0 -1 0"
}
// entity 34
{
"classname" "atdm:weapon_blackjack"
"name" "BlackjackHard"
"diff_0_nospawn" "1"
"diff_1_nospawn" "0"
"diff_2_nospawn" "1"
"inv_map_start" "1"
"inv_no_pickup_message" "1"
"nodrop" "1"
"origin" "679.62 -621.25 11.5"
"rotation" "1 0 0 0 1 0 0 0 1"
}
// entity 35
{
"classname" "atdm:weapon_blackjack"
"name" "BlackjackExpert"
"diff_0_nospawn" "1"
"diff_1_nospawn" "1"
"diff_2_nospawn" "0"
"inv_map_start" "1"
"inv_no_pickup_message" "1"
"nodrop" "1"
"origin" "679.62 -637.25 11.5"
"rotation" "1 0 0 0 1 0 0 0 1"
}
// entity 36
{
"classname" "atdm:weapon_shortsword"
"name" "SwordHard"
"diff_0_nospawn" "1"
"diff_1_nospawn" "0"
"diff_2_nospawn" "1"
"inv_map_start" "1"
"inv_no_pickup_message" "1"
"nodrop" "1"
"origin" "728 -620.5 11.5"
"rotation" "0 1 0 -1 0 0 0 0 1"
}
// entity 37
{
"classname" "atdm:weapon_shortsword"
"name" "SwordExpert"
"diff_0_nospawn" "1"
"diff_1_nospawn" "1"
"diff_2_nospawn" "0"
"inv_map_start" "1"
"inv_no_pickup_message" "1"
"nodrop" "1"
"origin" "728 -636.5 11.5"
"rotation" "0 1 0 -1 0 0 0 0 1"
}
// entity 38
{
"classname" "atdm:playertools_compass"
"name" "CompassHard"
"diff_0_nospawn" "1"
"diff_1_nospawn" "0"
"diff_2_nospawn" "1"
"inv_map_start" "1"
"nodrop" "1"
"origin" "618 -570.5 60.5"
"rotation" "1 0 0 0 1 0 0 0 1"
}
// entity 39
{
"classname" "atdm:playertools_compass"
"name" "CompassExpert"
"diff_0_nospawn" "1"
"diff_1_nospawn" "1"
"diff_2_nospawn" "0"
"inv_map_start" "1"
"nodrop" "1"
"origin" "618 -586.5 60.5"
"rotation" "1 0 0 0 1 0 0 0 1"
}
// entity 40
{
"classname" "atdm:playertools_lantern"
"name" "LanternHard"
"diff_0_nospawn" "1"
"diff_1_nospawn" "0"
"diff_2_nospawn" "1"
"inv_map_start" "1"
"nodrop" "1"
"origin" "630 -570.5 60.5"
"rotation" "1 0 0 0 1 0 0 0 1"
}
// entity 41
{
"classname" "atdm:playertools_lantern"
"name" "LanternExpert"
"diff_0_nospawn" "1"
"diff_1_nospawn" "1"
"diff_2_nospawn" "0"
"inv_map_start" "1"
"nodrop" "1"
"origin" "630 -586.5 60.5"
"rotation" "1 0 0 0 1 0 0 0 1"
}
// entity 42
{
"classname" "atdm:playertools_spyglass"
"name" "SpyglassHard"
"diff_0_nospawn" "1"
"diff_1_nospawn" "0"
"diff_2_nospawn" "1"
"inv_map_start" "1"
"nodrop" "1"
"origin" "640 -570.5 60.5"
"rotation" "1 0 0 0 1 0 0 0 1"
}
// entity 43
{
"classname" "atdm:playertools_spyglass"
"name" "SpyglassExpert"
"diff_0_nospawn" "1"
"diff_1_nospawn" "1"
"diff_2_nospawn" "0"
"inv_map_start" "1"
"nodrop" "1"
"origin" "640 -586.5 60.5"
"rotation" "1 0 0 0 1 0 0 0 1"
}
// entity 44
{
"classname" "atdm:playertools_flashbomb"
"name" "FlashbombsHard"
"diff_0_nospawn" "1"
"diff_1_nospawn" "0"
"diff_2_nospawn" "1"
"inv_count" "10"
"inv_map_start" "1"
"nodrop" "1"
"origin" "620 -620.5 35.5"
"rotation" "1 0 0 0 1 0 0 0 1"
}
// entity 45
{
"classname" "atdm:playertools_flashbomb"
"name" "FlashbombsExpert"
"diff_0_nospawn" "1"
"diff_1_nospawn" "1"
"diff_2_nospawn" "0"
"inv_count" "10"
"inv_map_start" "1"
"nodrop" "1"
"origin" "620 -636.5 35.5"
"rotation" "1 0 0 0 1 0 0 0 1"
}
// entity 46
{
"classname" "atdm:playertools_health_potion"
"name" "HealthPotionsHard"
"diff_0_nospawn" "1"
"diff_1_nospawn" "0"
"diff_2_nospawn" "1"
"inv_count" "10"
"inv_map_start" "1"
"nodrop" "1"
"origin" "656 -570.5 35.5"
"rotation" "1 0 0 0 1 0 0 0 1"
}
// entity 47
{
"classname" "atdm:playertools_health_potion"
"name" "HealthPotionsExpert"
"diff_0_nospawn" "1"
"diff_1_nospawn" "1"
"diff_2_nospawn" "0"
"inv_count" "10"
"inv_map_start" "1"
"nodrop" "1"
"origin" "656 -586.5 35.5"
"rotation" "1 0 0 0 1 0 0 0 1"
}
// entity 48
{
"classname" "atdm:playertools_breath_potion"
"name" "BreathPotionsHard"
"diff_0_nospawn" "1"
"diff_1_nospawn" "0"
"diff_2_nospawn" "1"
"inv_count" "10"
"inv_map_start" "1"
"nodrop" "1"
"origin" "668 -570.5 35.5"
"rotation" "1 0 0 0 1 0 0 0 1"
}
// entity 49
{
"classname" "atdm:playertools_breath_potion"
"name" "BreathPotionsExpert"
"diff_0_nospawn" "1"
"diff_1_nospawn" "1"
"diff_2_nospawn" "0"
"inv_count" "10"
"inv_map_start" "1"
"nodrop" "1"
"origin" "668 -586.5 35.5"
"rotation" "1 0 0 0 1 0 0 0 1"
}
// entity 50
{
"classname" "atdm:playertools_lockpick_snake"
"name" "LockpickSnakeEasy"
"diff_0_nospawn" "0"
"diff_1_nospawn" "1"
"diff_2_nospawn" "1"
"inv_map_start" "1"
"nodrop" "1"
"origin" "711 -554 32"
"rotation" "0.707107 0.707107 0 -0.707107 0.707107 0 0 0 1"
}
// entity 51
{
"classname" "atdm:playertools_lockpick_triangle"
"name" "LockpickTriangleEasy"
"diff_0_nospawn" "0"
"diff_1_nospawn" "1"
"diff_2_nospawn" "1"
"inv_map_start" "1"
"nodrop" "1"
"origin" "727 -554 32"
"rotation" "0.707107 0.707107 0 -0.707107 0.707107 0 0 0 1"
}
// entity 52
{
"classname" "atdm:playertools_mine"
"name" "MinesEasy"
"diff_0_nospawn" "0"
"diff_1_nospawn" "1"
"diff_2_nospawn" "1"
"inv_count" "10"
"inv_map_start" "1"
"nodrop" "1"
"origin" "651 -604 32"
"rotation" "1 0 0 0 1 0 0 0 1"
}
// entity 53
{
"classname" "atdm:playertools_holywater"
"name" "HolyWatersEasy"
"diff_0_nospawn" "0"
"diff_1_nospawn" "1"
"diff_2_nospawn" "1"
"inv_count" "10"
"inv_map_start" "1"
"nodrop" "1"
"origin" "667 -604 32"
"rotation" "1 0 0 0 1 0 0 0 1"
}
// entity 54
{
"classname" "atdm:playertools_flashmine"
"name" "FlashminesEasy"
"diff_0_nospawn" "0"
"diff_1_nospawn" "1"
"diff_2_nospawn" "1"
"inv_count" "10"
"inv_map_start" "1"
"nodrop" "1"
"origin" "635 -604 32"
"rotation" "1 0 0 0 1 0 0 0 1"
}
// entity 55
{
"classname" "atdm:playertools_lockpick_snake"
"name" "LockpickSnakeHard"
"diff_0_nospawn" "1"
"diff_1_nospawn" "0"
"diff_2_nospawn" "1"
"inv_map_start" "1"
"nodrop" "1"
"origin" "711 -570 32"
"rotation" "0.707107 0.707107 0 -0.707107 0.707107 0 0 0 1"
}
// entity 56
{
"classname" "atdm:playertools_lockpick_snake"
"name" "LockpickSnakeExpert"
"diff_0_nospawn" "1"
"diff_1_nospawn" "1"
"diff_2_nospawn" "0"
"inv_map_start" "1"
"nodrop" "1"
"origin" "711 -586 32"
"rotation" "0.707107 0.707107 0 -0.707107 0.707107 0 0 0 1"
}
// entity 57
{
"classname" "atdm:playertools_lockpick_triangle"
"name" "LockpickTriangleHard"
"diff_0_nospawn" "1"
"diff_1_nospawn" "0"
"diff_2_nospawn" "1"
"inv_map_start" "1"
"nodrop" "1"
"origin" "727 -570 32"
"rotation" "0.707107 0.707107 0 -0.707107 0.707107 0 0 0 1"
}
// entity 58
{
"classname" "atdm:playertools_lockpick_triangle"
"name" "LockpickTriangleExpert"
"diff_0_nospawn" "1"
"diff_1_nospawn" "1"
"diff_2_nospawn" "0"
"inv_map_start" "1"
"nodrop" "1"
"origin" "727 -586 32"
"rotation" "0.707107 0.707107 0 -0.707107 0.707107 0 0 0 1"
}
// entity 59
{
"classname" "atdm:playertools_flashmine"
"name" "FlashminesHard"
"diff_0_nospawn" "1"
"diff_1_nospawn" "0"
"diff_2_nospawn" "1"
"inv_count" "10"
"inv_map_start" "1"
"nodrop" "1"
"origin" "635 -620 32"
"rotation" "1 0 0 0 1 0 0 0 1"
}
// entity 60
{
"classname" "atdm:playertools_flashmine"
"name" "FlashminesExpert"
"diff_0_nospawn" "1"
"diff_1_nospawn" "1"
"diff_2_nospawn" "0"
"inv_count" "10"
"inv_map_start" "1"
"nodrop" "1"
"origin" "635 -636 32"
"rotation" "1 0 0 0 1 0 0 0 1"
}
// entity 61
{
"classname" "atdm:playertools_mine"
"name" "MinesHard"
"diff_0_nospawn" "1"
"diff_1_nospawn" "0"
"diff_2_nospawn" "1"
"inv_count" "10"
"inv_map_start" "1"
"nodrop" "1"
"origin" "651 -620 32"
"rotation" "1 0 0 0 1 0 0 0 1"
}
// entity 62
{
"classname" "atdm:playertools_mine"
"name" "MinesExpert"
"diff_0_nospawn" "1"
"diff_1_nospawn" "1"
"diff_2_nospawn" "0"
"inv_count" "10"
"inv_map_start" "1"
"nodrop" "1"
"origin" "651 -636 32"
"rotation" "1 0 0 0 1 0 0 0 1"
}
// entity 63
{
"classname" "atdm:playertools_holywater"
"name" "HolyWatersHard"
"diff_0_nospawn" "1"
"diff_1_nospawn" "0"
"diff_2_nospawn" "1"
"inv_count" "10"
"inv_map_start" "1"
"nodrop" "1"
"origin" "667 -620 32"
"rotation" "1 0 0 0 1 0 0 0 1"
}
// entity 64
{
"classname" "atdm:playertools_holywater"
"name" "HolyWatersExpert"
"diff_0_nospawn" "1"
"diff_1_nospawn" "1"
"diff_2_nospawn" "0"
"inv_count" "10"
"inv_map_start" "1"
"nodrop" "1"
"origin" "667 -636 32"
"rotation" "1 0 0 0 1 0 0 0 1"
}
// entity 65
{
"classname" "atdm:ammo_vinearrow"
"name" "VineArrowsEasy"
"diff_0_nospawn" "0"
"diff_1_nospawn" "1"
"diff_2_nospawn" "1"
"inv_ammo_amount" "30"
"inv_map_start" "1"
"inv_no_pickup_message" "1"
"nodrop" "1"
"origin" "713 -684 -8"
"rotation" "1 0 0 0 0 1 0 -1 0"
}
// entity 66
{
"classname" "atdm:ammo_vinearrow"
"name" "VineArrowsHard"
"diff_0_nospawn" "1"
"diff_1_nospawn" "0"
"diff_2_nospawn" "1"
"inv_ammo_amount" "30"
"inv_map_start" "1"
"inv_no_pickup_message" "1"
"nodrop" "1"
"origin" "713 -732 -8"
"rotation" "1 0 0 0 0 1 0 -1 0"
}
// entity 67
{
"classname" "atdm:ammo_vinearrow"
"name" "VineArrowsExpert"
"diff_0_nospawn" "1"
"diff_1_nospawn" "1"
"diff_2_nospawn" "0"
"inv_ammo_amount" "30"
"inv_map_start" "1"
"inv_no_pickup_message" "1"
"nodrop" "1"
"origin" "713 -780 -8"
"rotation" "1 0 0 0 0 1 0 -1 0"
}
// entity 68
{
"classname" "atdm:location_settings"
"name" "atdm_location_settings_1"
"ambient_light_dist_scale" "1.0"
"ambient_light_dynamic_cap" "0.1 0.1 0.1"
"ambient_light_falloff" "0"
"angle" "90.000000"
"origin" "657 -532 0"
}
// entity 69
{
"classname" "info_player_start"
"name" "info_player_start_1"
"angle" "90.000000"
"origin" "-199 -196 -128"
}
// entity 70
{
"classname" "atdm:ai_townsfolk_commoner"
"name" "atdm_ai_townsfolk_commoner_1"
"origin" "-584 24 -127.853"
"rotation" "1 0 0 0 1 0 0 0 1"
"team" "0"
"target0" "path_corner_1"
}
// entity 71
{
"classname" "path_follow_actor"
"name" "path_follow_actor_1"
"origin" "-192 24 -24"
}
// entity 72
{
"classname" "path_corner"
"name" "path_corner_1"
"origin" "-392 24 -128"
"target0" "path_wait_1"
"target1" "atdm_target_changetarget_1"
}
// entity 73
{
"classname" "path_wait"
"name" "path_wait_1"
"origin" "-392 24 -32"
"wait" "0"
"target0" "path_follow_actor_1"
}
// entity 74
{
"classname" "light"
"name" "light_1"
"origin" "-200 -24 24"
"light_center" "0 0 0"
"light_radius" "728 776 320"
}
// entity 75
{
"classname" "atdm:target_changetarget"
"name" "atdm_target_changetarget_1"
"origin" "-328 -8 24"
"add" "player1"
"target0" "path_follow_actor_1"
}