View Issue Details

IDProjectCategoryView StatusLast Update
0006323The Dark ModPhysicspublic19.06.2025 16:07
ReporterFrost_Salamander Assigned To 
PrioritynormalSeveritynormalReproducibilityalways
Status newResolutionopen 
PlatformPCOSWindowsOS Version11
Product VersionTDM 2.11 
Target VersionTDM 2.14 
Summary0006323: Drowned AI not marked as 'player responsible' if shallow water
DescriptionIn the FM High Expectations (version 3), it was meant to be possible to complete an assassination objective by drowning an AI in a baptismal font that contains very shallow water. Indeed you can place the AI so that his head is under water and he drowns. However, the 'kill' objective is not marked as complete.

I think the reason for this is as follows:

- The objective has the 'player responsible' attribute ticked. This is correct as it will ensure that accidental death of the AI does not complete the objective.
- While the AI is drowning, a check occurs every few seconds to see if the AI is underwater and applies damage.
- The check determines who is responsible for the AI being in the water. This check occurs in UpdateAir() and is located here: https://github.com/stgatilov/darkmod_src/blob/0a7a601e7264f6be7bca6f875e49e0bc56362cde/game/ai/AI.cpp#L12568
- The variable that determines who pushed the AI into the water is called 'm_SetInMotionByActor'. This variable is cleared when the AI stops moving. This happens here: https://github.com/stgatilov/darkmod_src/blob/0a7a601e7264f6be7bca6f875e49e0bc56362cde/game/physics/Physics_AF.cpp#L6301
- I think m_SetInMotionByActor is initially set here when the body is 'dequipped' (i.e. dropped from shouldering): https://github.com/stgatilov/darkmod_src/blob/0a7a601e7264f6be7bca6f875e49e0bc56362cde/game/Grabber.cpp#L1749
- The entity that determines who pushed the AI into the water is passed through to the damage check, and ultimately to the 'Killed()' function when the AI dies. Here an event is passed to the objectives system to indicate if the player was responsible for the death or not. This happens here: https://github.com/stgatilov/darkmod_src/blob/0a7a601e7264f6be7bca6f875e49e0bc56362cde/game/ai/AI.cpp#L7111
- Because the water is so shallow in the baptismal font, the ragdoll stops moving immediately and m_SetInMotionByActor is cleared before the check in UpdateAir() happens, so the 'player responsible' flag isn't set. This means the objective doesn't fire because the player 'isn't responsible'.

I think this problem doesn't occur in deeper water because the body is still moving as it's sinking and m_SetInMotionByActor isn't cleared before the first UpdateAir() check.

Oddly, while testing this theory out I managed to place the AI into the font face up (instead of face down as normal). In this case the objective fired as expected. However it's not easy to orient the body that way so I have been unable to reproduce it again.

I think for a workaround for High Expectations I will just remove the 'player responsible' attribute from the objective, as the chances of the AI dying accidentally are very rare.
Steps To ReproduceThe issue is discussed in this forum post, along with steps to reproduce: https://forums.thedarkmod.com/index.php?/topic/21837-fan-mission-the-lieutenant-2-high-expectations-by-frost_salamander-20230424/&do=findComment&comment=487316

TagsNo tags attached.

Activities

Frost_Salamander

Frost_Salamander

19.06.2025 12:51

reporter   ~0017048

Last edited: 19.06.2025 12:52

Just doing some testing on this on a test map (attached). I found that the the objective will reliably trigger (15/15 attempts) if the water is at least 40 units deep. This is worse than I thought, as a body will be completely submerged at about 16 units deep. The next level I tested at before 40 units was 36 units, and on the 10th test, the objective didn't trigger. So the real value could be between 37 and 40.
drown.map (39,636 bytes)   
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 -1 ) ( 0 0.015625 -0.875 ) ) "textures/common/caulk" 0 0 0
( 0 1 0 -576 ) ( ( 0.015625 0 0.875 ) ( 0 0.015625 -2 ) ) "textures/common/caulk" 0 0 0
( 1 0 0 -568 ) ( ( 0.015625 0 -1 ) ( 0 0.015625 -2 ) ) "textures/common/caulk" 0 0 0
( 0 -1 0 -448 ) ( ( 0.015625 0 -0.875 ) ( 0 0.015625 -2 ) ) "textures/common/caulk" 0 0 0
( -1 0 0 -456 ) ( ( 0.015625 0 1 ) ( 0 0.015625 -2 ) ) "textures/common/caulk" 0 0 0
( 0 0 -1 128 ) ( ( 0.007811999879777431 0 -0.4999679923057556 ) ( 0 0.007811999879777431 0.4374719932675362 ) ) "textures/darkmod/wood/boards/pier_platform" 0 0 0
}
}
// primitive 1
{
brushDef3
{
( 0 0 1 -128 ) ( ( 0.015625 0 -1 ) ( 0 0.015625 -0.875 ) ) "textures/common/caulk" 0 0 0
( 0 1 0 -608 ) ( ( 0.015625 0 0.875 ) ( 0 0.015625 -2 ) ) "textures/common/caulk" 0 0 0
( 1 0 0 -568 ) ( ( 0.015625 0 -1 ) ( 0 0.015625 -2 ) ) "textures/common/caulk" 0 0 0
( 0 0 -1 -128 ) ( ( 0.015625 0 -1 ) ( 0 0.015625 0.875 ) ) "textures/common/caulk" 0 0 0
( -1 0 0 -456 ) ( ( 0.015625 0 1 ) ( 0 0.015625 -2 ) ) "textures/common/caulk" 0 0 0
( 0 -1 0 576 ) ( ( 0.007811999879777431 0 -0.4374719932675362 ) ( 0 0.007811999879777431 -0.9999359846115112 ) ) "textures/darkmod/wood/boards/pier_platform" 0 0 0
}
}
// primitive 2
{
brushDef3
{
( 0 0 1 -128 ) ( ( 0.015625 0 -1 ) ( 0 0.015625 -0.875 ) ) "textures/common/caulk" 0 0 0
( 0 1 0 -576 ) ( ( 0.015625 0 0.875 ) ( 0 0.015625 -2 ) ) "textures/common/caulk" 0 0 0
( 1 0 0 -600 ) ( ( 0.015625 0 -1 ) ( 0 0.015625 -2 ) ) "textures/common/caulk" 0 0 0
( 0 0 -1 -128 ) ( ( 0.015625 0 -1 ) ( 0 0.015625 0.875 ) ) "textures/common/caulk" 0 0 0
( 0 -1 0 -448 ) ( ( 0.015625 0 -0.875 ) ( 0 0.015625 -2 ) ) "textures/common/caulk" 0 0 0
( -1 0 0 568 ) ( ( 0.007811999879777431 0 0.4999679923057556 ) ( 0 0.007811999879777431 -0.9999359846115112 ) ) "textures/darkmod/wood/boards/pier_platform" 0 0 0
}
}
// primitive 3
{
brushDef3
{
( 0 1 0 -576 ) ( ( 0.015625 0 0.875 ) ( 0 0.015625 -2 ) ) "textures/common/caulk" 0 0 0
( 1 0 0 -568 ) ( ( 0.015625 0 -1 ) ( 0 0.015625 -2 ) ) "textures/common/caulk" 0 0 0
( 0 0 -1 -160 ) ( ( 0.015625 0 -1 ) ( 0 0.015625 0.875 ) ) "textures/common/caulk" 0 0 0
( -1 0 0 -456 ) ( ( 0.015625 0 1 ) ( 0 0.015625 -2 ) ) "textures/common/caulk" 0 0 0
( 0 0 1 128 ) ( ( 0.007811999879777431 0 -0.4999679923057556 ) ( 0 0.007811999879777431 -0.4374719932675362 ) ) "textures/darkmod/wood/boards/pier_platform" 0 0 0
( 0 -1 0 0 ) ( ( 0.015625 0 1 ) ( 0 0.015625 -2 ) ) "textures/common/caulk" 0 0 0
}
}
// primitive 4
{
brushDef3
{
( 0 0 1 -128 ) ( ( 0.015625 0 -1 ) ( 0 0.015625 -0.875 ) ) "textures/common/caulk" 0 0 0
( 1 0 0 -568 ) ( ( 0.015625 0 -1 ) ( 0 0.015625 -2 ) ) "textures/common/caulk" 0 0 0
( 0 0 -1 -128 ) ( ( 0.015625 0 -1 ) ( 0 0.015625 0.875 ) ) "textures/common/caulk" 0 0 0
( 0 -1 0 -480 ) ( ( 0.015625 0 -0.875 ) ( 0 0.015625 -2 ) ) "textures/common/caulk" 0 0 0
( -1 0 0 -456 ) ( ( 0.015625 0 1 ) ( 0 0.015625 -2 ) ) "textures/common/caulk" 0 0 0
( 0 1 0 448 ) ( ( 0.007811999879777431 0 0.4374719932675362 ) ( 0 0.007811999879777431 -0.9999359846115112 ) ) "textures/darkmod/wood/boards/pier_platform" 0 0 0
}
}
// primitive 5
{
brushDef3
{
( 0 0 1 -128 ) ( ( 0.015625 0 -1 ) ( 0 0.015625 -0.875 ) ) "textures/common/caulk" 0 0 0
( 0 1 0 -576 ) ( ( 0.015625 0 0.875 ) ( 0 0.015625 -2 ) ) "textures/common/caulk" 0 0 0
( 0 0 -1 -128 ) ( ( 0.015625 0 -1 ) ( 0 0.015625 0.875 ) ) "textures/common/caulk" 0 0 0
( 0 -1 0 -448 ) ( ( 0.015625 0 -0.875 ) ( 0 0.015625 -2 ) ) "textures/common/caulk" 0 0 0
( -1 0 0 -488 ) ( ( 0.015625 0 1 ) ( 0 0.015625 -2 ) ) "textures/common/caulk" 0 0 0
( 1 0 0 456 ) ( ( 0.007811999879777431 0 -0.4999679923057556 ) ( 0 0.007811999879777431 -0.9999359846115112 ) ) "textures/darkmod/wood/boards/pier_platform" 0 0 0
}
}
// primitive 6
{
brushDef3
{
( 0 0 1 -88 ) ( ( 0.0625 0 108.40625 ) ( 0 0.0625 5.3125 ) ) "textures/common/caulk" 0 0 0
( 0 1 0 688 ) ( ( 0.0625 0 58.6875 ) ( 0 0.0625 1.28125 ) ) "textures/common/caulk" 0 0 0
( 1 0 0 -992 ) ( ( 0.0625 0 108.40625 ) ( 0 0.0625 1.281249999999993 ) ) "textures/common/caulk" 0 0 0
( 0 -1 0 -976 ) ( ( 0.0625 0 5.3125 ) ( 0 0.0625 1.28125 ) ) "textures/common/caulk" 0 0 0
( -1 0 0 864 ) ( ( 0.0625 0 -44.40624999999997 ) ( 0 0.0625 1.281249999999996 ) ) "textures/common/caulk" 0 0 0
( 0 0 -1 80 ) ( ( 0.0625 0 108.40625 ) ( 0 0.0625 57.6875 ) ) "textures/common/caulk" 0 0 0
}
}
// primitive 7
{
brushDef3
{
( 0 0 1 -80 ) ( ( 0.0625 0 108.40625 ) ( 0 0.0625 5.3125 ) ) "textures/common/caulk" 0 0 0
( 0 1 0 680 ) ( ( 0.0625 0 58.6875 ) ( 0 0.0625 0.78125 ) ) "textures/common/caulk" 0 0 0
( 1 0 0 -992 ) ( ( 0.0625 0 108.40625 ) ( 0 0.0625 0.78125 ) ) "textures/common/caulk" 0 0 0
( 0 0 -1 -48 ) ( ( 0.0625 0 108.40625 ) ( 0 0.0625 58.6875 ) ) "textures/common/caulk" 0 0 0
( -1 0 0 864 ) ( ( 0.0625 0 -44.40625 ) ( 0 0.0625 0.78125 ) ) "textures/common/caulk" 0 0 0
( 0 -1 0 -688 ) ( ( 0.0625 0 6.3125 ) ( 0 0.0625 0.78125 ) ) "textures/common/caulk" 0 0 0
}
}
// primitive 8
{
brushDef3
{
( 0 1 0 688 ) ( ( 0.0625 0 58.6875 ) ( 0 0.0625 0.28125 ) ) "textures/common/caulk" 0 0 0
( 1 0 0 -992 ) ( ( 0.0625 0 108.40625 ) ( 0 0.0625 0.2812500000000018 ) ) "textures/common/caulk" 0 0 0
( 0 0 -1 -56 ) ( ( 0.0625 0 108.40625 ) ( 0 0.0625 58.68749999999994 ) ) "textures/common/caulk" 0 0 0
( 0 -1 0 -976 ) ( ( 0.0625 0 4.8125 ) ( 0 0.0625 0.28125 ) ) "textures/common/caulk" 0 0 0
( -1 0 0 864 ) ( ( 0.0625 0 -44.40624999999996 ) ( 0 0.0625 0.28125 ) ) "textures/common/caulk" 0 0 0
( 0 0 1 48 ) ( ( 0.0625 0 108.40625 ) ( 0 0.0625 6.312499999999886 ) ) "textures/common/caulk" 0 0 0
}
}
// primitive 9
{
brushDef3
{
( 0 0 1 -80 ) ( ( 0.0625 0 57.53125 ) ( 0 0.0625 5.5 ) ) "textures/common/caulk" 0 0 0
( 1 0 0 -992 ) ( ( 0.0625 0 57.53125 ) ( 0 0.0625 0.78125 ) ) "textures/common/caulk" 0 0 0
( 0 0 -1 -48 ) ( ( 0.0625 0 57.53125 ) ( 0 0.0625 58.5 ) ) "textures/common/caulk" 0 0 0
( 0 -1 0 -984 ) ( ( 0.0625 0 5.5 ) ( 0 0.0625 0.78125 ) ) "textures/common/caulk" 0 0 0
( -1 0 0 864 ) ( ( 0.0625 0 6.46875 ) ( 0 0.0625 0.78125 ) ) "textures/common/caulk" 0 0 0
( 0 1 0 976 ) ( ( 0.0625 0 57.5 ) ( 0 0.0625 0.78125 ) ) "textures/common/caulk" 0 0 0
}
}
// primitive 10
{
brushDef3
{
( 0 0 1 -80 ) ( ( 0.0625 0 108.9999999999993 ) ( 0 0.0625 5.999999999998806 ) ) "textures/common/caulk" 0 0 0
( 0 1 0 688 ) ( ( 0.0625 0 58 ) ( 0 0.0625 0.78125 ) ) "textures/common/caulk" 0 0 0
( 0 0 -1 -48 ) ( ( 0.0625 0 109.0000000000002 ) ( 0 0.0625 57.9999999999996 ) ) "textures/common/caulk" 0 0 0
( 0 -1 0 -976 ) ( ( 0.0625 0 6 ) ( 0 0.0625 0.78125 ) ) "textures/common/caulk" 0 0 0
( -1 0 0 856 ) ( ( 0.0625 0 -45 ) ( 0 0.0625 0.78125 ) ) "textures/common/caulk" 0 0 0
( 1 0 0 -864 ) ( ( 0.0625 0 109 ) ( 0 0.0625 0.78125 ) ) "textures/common/caulk" 0 0 0
}
}
// primitive 11
{
brushDef3
{
( 0 0 1 -80 ) ( ( 0.0625 0 108.9999999999993 ) ( 0 0.0625 -2.500000000001194 ) ) "textures/common/caulk" 0 0 0
( 0 1 0 688 ) ( ( 0.0625 0 66.5 ) ( 0 0.0625 0.78125 ) ) "textures/common/caulk" 0 0 0
( 0 0 -1 -48 ) ( ( 0.0625 0 109.0000000000002 ) ( 0 0.0625 66.4999999999996 ) ) "textures/common/caulk" 0 0 0
( 0 -1 0 -976 ) ( ( 0.0625 0 -2.5 ) ( 0 0.0625 0.78125 ) ) "textures/common/caulk" 0 0 0
( -1 0 0 992 ) ( ( 0.0625 0 -45 ) ( 0 0.0625 0.78125 ) ) "textures/common/caulk" 0 0 0
( 1 0 0 -1000 ) ( ( 0.0625 0 109 ) ( 0 0.0625 0.78125 ) ) "textures/common/caulk" 0 0 0
}
}
// primitive 12
{
brushDef3
{
( 0 0 1 128 ) ( ( 0.0195312497089617 0 0 ) ( 0 0.0195312497089617 8.881784197001252e-16 ) ) "textures/darkmod/stone/brick/blocks_large_mildew" 0 0 0
( 0 1 0 0 ) ( ( 0.0195312497089617 0 1.4210854715202e-14 ) ( 0 0.0195312497089617 -0.4687499930150807 ) ) "textures/darkmod/stone/brick/blocks_large_mildew" 0 0 0
( 1 0 0 -320 ) ( ( 0.0195312497089617 0 0 ) ( 0 0.0195312497089617 -0.468749993015082 ) ) "textures/darkmod/stone/brick/blocks_large_mildew" 0 0 0
( 0 0 -1 -176 ) ( ( 0.0195312497089617 0 0 ) ( 0 0.0195312497089617 -8.881784197001252e-16 ) ) "textures/darkmod/stone/brick/blocks_large_mildew" 0 0 0
( 0 -1 0 -192 ) ( ( 0.0195312497089617 0 -7.105427357601002e-15 ) ( 0 0.0195312497089617 -0.4687499930150807 ) ) "textures/darkmod/stone/brick/blocks_large_mildew" 0 0 0
( -1 0 0 304 ) ( ( 0.0195312497089617 0 0 ) ( 0 0.0195312497089617 -0.4687499930150807 ) ) "textures/darkmod/stone/brick/blocks_large_mildew" 0 0 0
}
}
// primitive 13
{
brushDef3
{
( 0 0 1 128 ) ( ( 0.0195312497089617 0 0 ) ( 0 0.0195312497089617 8.881784197001252e-16 ) ) "textures/darkmod/stone/brick/blocks_large_mildew" 0 0 0
( 0 1 0 0 ) ( ( 0.0195312497089617 0 0 ) ( 0 0.0195312497089617 -0.4687499930150878 ) ) "textures/darkmod/stone/brick/blocks_large_mildew" 0 0 0
( 0 0 -1 -176 ) ( ( 0.0195312497089617 0 0 ) ( 0 0.0195312497089617 -8.881784197001252e-16 ) ) "textures/darkmod/stone/brick/blocks_large_mildew" 0 0 0
( 0 -1 0 -192 ) ( ( 0.0195312497089617 0 0 ) ( 0 0.0195312497089617 -0.4687499930150842 ) ) "textures/darkmod/stone/brick/blocks_large_mildew" 0 0 0
( -1 0 0 192 ) ( ( 0.0195312497089617 0 0 ) ( 0 0.0195312497089617 -0.4687499930150807 ) ) "textures/darkmod/stone/brick/blocks_large_mildew" 0 0 0
( 1 0 0 -208 ) ( ( 0.0195312497089617 0 0 ) ( 0 0.0195312497089617 -0.468749993015082 ) ) "textures/darkmod/stone/brick/blocks_large_mildew" 0 0 0
}
}
// primitive 14
{
brushDef3
{
( 0 0 1 128 ) ( ( 0.01953124970896172 0 -1.77635683940025e-15 ) ( 0 0.0195312497089617 1.77635683940025e-15 ) ) "textures/darkmod/stone/brick/blocks_large_mildew" 0 0 0
( 0 0 -1 -176 ) ( ( 0.01953124970896172 0 5.329070518200751e-15 ) ( 0 0.0195312497089617 1.243449787580175e-14 ) ) "textures/darkmod/stone/brick/blocks_large_mildew" 0 0 0
( 0 -1 0 -192 ) ( ( 0.0195312497089617 0 1.77635683940025e-15 ) ( 0 0.0195312497089617 -0.4687499930150789 ) ) "textures/darkmod/stone/brick/blocks_large_mildew" 0 0 0
( -1 0 0 208 ) ( ( 0.01953124970896172 0 0 ) ( 0 0.0195312497089617 -0.4687499930150771 ) ) "textures/darkmod/stone/brick/blocks_large_mildew" 0 0 0
( 1 0 0 -304 ) ( ( 0.01953124970896172 0 3.552713678800501e-15 ) ( 0 0.0195312497089617 -0.4687499930150807 ) ) "textures/darkmod/stone/brick/blocks_large_mildew" 0 0 0
( 0 1 0 176 ) ( ( 0.0195312497089617 0 -1.77635683940025e-15 ) ( 0 0.0195312497089617 -0.468749993015078 ) ) "textures/darkmod/stone/brick/blocks_large_mildew" 0 0 0
}
}
// primitive 15
{
brushDef3
{
( 0 0 1 172 ) ( ( 0.0195312497089617 0 7.771561172376096e-16 ) ( 0 0.0195312497089617 -1.77635683940025e-15 ) ) "textures/darkmod/stone/brick/blocks_large_mildew" 0 0 0
( 0 0 -1 -176 ) ( ( 0.0195312497089617 0 -1.110223024625157e-16 ) ( 0 0.0195312497089617 -1.77635683940025e-15 ) ) "textures/darkmod/stone/brick/blocks_large_mildew" 0 0 0
( -1 0 0 208 ) ( ( 0.0195312497089617 0 1.110223024625157e-16 ) ( 0 0.0195312497089617 -0.468749993015094 ) ) "textures/darkmod/stone/brick/blocks_large_mildew" 0 0 0
( 1 0 0 -304 ) ( ( 0.0195312497089617 0 -1.77635683940025e-15 ) ( 0 0.0195312497089617 -0.4687499930150665 ) ) "textures/darkmod/stone/brick/blocks_large_mildew" 0 0 0
( 0 -1 0 -176 ) ( ( 0.0195312497089617 0 5.861977570020827e-14 ) ( 0 0.0195312497089617 -0.4687499930150647 ) ) "textures/darkmod/stone/brick/blocks_large_mildew" 0 0 0
( 0 1 0 16 ) ( ( 0.0195312497089617 0 0 ) ( 0 0.0195312497089617 -0.4687499930150949 ) ) "textures/darkmod/stone/brick/blocks_large_mildew" 0 0 0
}
}
// primitive 16
{
brushDef3
{
( 0 0 1 128 ) ( ( 0.0195312497089617 0 0 ) ( 0 0.0195312497089617 0 ) ) "textures/darkmod/stone/brick/blocks_large_mildew" 0 0 0
( 0 1 0 0 ) ( ( 0.0195312497089617 0 -3.552713678800501e-15 ) ( 0 0.0195312497089617 -0.4687499930150807 ) ) "textures/darkmod/stone/brick/blocks_large_mildew" 0 0 0
( 0 0 -1 -176 ) ( ( 0.0195312497089617 0 0 ) ( 0 0.0195312497089617 0 ) ) "textures/darkmod/stone/brick/blocks_large_mildew" 0 0 0
( -1 0 0 208 ) ( ( 0.0195312497089617 0 0 ) ( 0 0.0195312497089617 -0.4687499930150807 ) ) "textures/darkmod/stone/brick/blocks_large_mildew" 0 0 0
( 1 0 0 -304 ) ( ( 0.0195312497089617 0 0 ) ( 0 0.0195312497089617 -0.4687499930150807 ) ) "textures/darkmod/stone/brick/blocks_large_mildew" 0 0 0
( 0 -1 0 -16 ) ( ( 0.0195312497089617 0 1.77635683940025e-15 ) ( 0 0.0195312497089617 -0.4687499930150816 ) ) "textures/darkmod/stone/brick/blocks_large_mildew" 0 0 0
}
}
// primitive 17
{
brushDef3
{
( 1 0 0 -568 ) ( ( 0.015625 0 -1 ) ( 0 0.015625 -2 ) ) "textures/common/caulk" 0 0 0
( 0 0 -1 -160 ) ( ( 0.015625 0 -1 ) ( 0 0.015625 0.875 ) ) "textures/common/caulk" 0 0 0
( 0 -1 0 -448 ) ( ( 0.015625 0 -0.875 ) ( 0 0.015625 -2 ) ) "textures/common/caulk" 0 0 0
( -1 0 0 -456 ) ( ( 0.015625 0 1 ) ( 0 0.015625 -2 ) ) "textures/common/caulk" 0 0 0
( 0 0 1 128 ) ( ( 0.007811999879777431 0 -0.4999679923057556 ) ( 0 0.007811999879777431 -0.4374719932675362 ) ) "textures/darkmod/wood/boards/pier_platform" 0 0 0
( 0 1 0 192 ) ( ( 0.015625 0 1 ) ( 0 0.015625 -2 ) ) "textures/common/caulk" 0 0 0
}
}
// primitive 18
{
brushDef3
{
( 1 0 0 -568 ) ( ( 0.015625 0 -1 ) ( 0 0.015625 -2 ) ) "textures/common/caulk" 0 0 0
( 0 0 -1 -160 ) ( ( 0.015625 0 -1 ) ( 0 0.015625 0.875 ) ) "textures/common/caulk" 0 0 0
( 0 0 1 128 ) ( ( 0.007811999879777431 0 -0.4999679923057556 ) ( 0 0.007811999879777431 -0.4374719932675362 ) ) "textures/darkmod/wood/boards/pier_platform" 0 0 0
( 0 1 0 0 ) ( ( 0.015625 0 1 ) ( 0 0.015625 -2 ) ) "textures/common/caulk" 0 0 0
( 0 -1 0 -192 ) ( ( 0.015625 0 1 ) ( 0 0.015625 -2 ) ) "textures/common/caulk" 0 0 0
( -1 0 0 320 ) ( ( 0.015625 0 1 ) ( 0 0.015625 -2 ) ) "textures/common/caulk" 0 0 0
}
}
// primitive 19
{
brushDef3
{
( 0 0 -1 -160 ) ( ( 0.015625 0 -1 ) ( 0 0.015625 0.875 ) ) "textures/common/caulk" 0 0 0
( -1 0 0 -456 ) ( ( 0.015625 0 1 ) ( 0 0.015625 -2 ) ) "textures/common/caulk" 0 0 0
( 0 0 1 128 ) ( ( 0.007811999879777431 0 -0.4999679923057556 ) ( 0 0.007811999879777431 -0.4374719932675362 ) ) "textures/darkmod/wood/boards/pier_platform" 0 0 0
( 0 1 0 0 ) ( ( 0.015625 0 1 ) ( 0 0.015625 -2 ) ) "textures/common/caulk" 0 0 0
( 0 -1 0 -192 ) ( ( 0.015625 0 1 ) ( 0 0.015625 -2 ) ) "textures/common/caulk" 0 0 0
( 1 0 0 -192 ) ( ( 0.015625 0 1 ) ( 0 0.015625 -2 ) ) "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" "964 -720 48"
"parallel" "0"
"texture" "lights/ambientlightnfo"
}
// entity 2
{
"classname" "atdm:target_addobjectives"
"name" "Objectives"
"angle" "90.000000"
"origin" "888 -720 0"
"obj1_desc" "Kill the thug"
"obj1_ongoing" "0"
"obj1_visible" "1"
"obj1_mandatory" "1"
"obj1_irreversible" "0"
"obj1_state" "0"
"obj1_1_state" "0"
"obj1_1_not" "0"
"obj1_1_irreversible" "0"
"obj1_1_player_responsible" "1"
"obj1_1_type" "kill"
"obj1_1_spec1" "name"
"obj1_1_spec_val1" "thug"
"obj1_1_args" "1"
}
// 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" "873 -742.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" "885 -742.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" "895 -742.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" "911 -742.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" "983 -792.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" "934.62 -793.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" "923 -742.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" "875 -792.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" "984 -720 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" "936 -720 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" "872 -872 -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" "872 -920 -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" "872 -968 -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" "888 -872 -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" "888 -920 -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" "888 -968 -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" "904 -872 -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" "904 -920 -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" "904 -968 -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" "920 -872 -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" "920 -968 -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" "920 -920 -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" "936 -872 -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" "936 -920 -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" "936 -968 -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" "952 -872 -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" "952 -920 -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" "952 -968 -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" "984 -872 -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" "984 -920 -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" "984 -968 -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" "934.62 -809.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" "934.62 -825.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" "983 -808.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" "983 -824.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" "873 -758.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" "873 -774.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" "885 -758.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" "885 -774.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" "895 -758.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" "895 -774.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" "875 -808.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" "875 -824.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" "911 -758.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" "911 -774.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" "923 -758.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" "923 -774.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" "966 -742 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" "982 -742 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" "906 -792 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" "922 -792 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" "890 -792 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" "966 -758 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" "966 -774 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" "982 -758 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" "982 -774 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" "890 -808 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" "890 -824 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" "906 -808 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" "906 -824 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" "922 -808 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" "922 -824 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" "968 -872 -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" "968 -920 -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" "968 -968 -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" "912 -720 0"
}
// entity 69
{
"classname" "info_player_start"
"name" "info_player_start_1"
"angle" "90.000000"
"origin" "256 -304 -128"
}
// entity 70
{
"classname" "atdm:ai_thief_thug"
"name" "thug"
"origin" "260.007 -220.998 -127.752"
"rotation" "0 1 0 -1 0 0 0 0 1"
"health" "10"
"shouldered_name" "Thug"
"shouldered_name_dead" "Thug (dead)"
}
// entity 71
{
"classname" "atdm:liquid_water"
"name" "atdm_liquid_water_1"
"model" "atdm_liquid_water_1"
"origin" "256 -96 -152"
"underwater_gui" "guis\underwater\underwater_green_thinmurk.gui"
// primitive 0
{
brushDef3
{
( 0 0 1 -16 ) ( ( 0.01953124970896172 0 -1.000000000000002 ) ( 0 0.0195312497089617 0.765625001164147 ) ) "textures/water_source/water_clear" 0 0 0
( 0 1 0 -80 ) ( ( 0.0195312497089617 0 -8.881784197001252e-15 ) ( 0 0.0195312497089617 -0.8593749860301614 ) ) "textures/water_source/water_clear" 0 0 0
( 1 0 0 -48 ) ( ( 0.0195312497089617 0 1.17128529097954e-14 ) ( 0 0.0195312497089617 -0.8593749860301707 ) ) "textures/water_source/water_clear" 0 0 0
( 0 0 -1 -20 ) ( ( 0.0195312497089617 0 1.443289932012704e-15 ) ( 0 0.0195312497089617 -8.881784197001252e-16 ) ) "textures/water_source/water_clear" 0 0 0
( 0 -1 0 -80 ) ( ( 0.0195312497089617 0 7.105427357601002e-15 ) ( 0 0.0195312497089617 -0.8593749860301614 ) ) "textures/water_source/water_clear" 0 0 0
( -1 0 0 -48 ) ( ( 0.0195312497089617 0 -5.551115123125783e-17 ) ( 0 0.01953124970896171 -0.8593749860301678 ) ) "textures/water_source/water_clear" 0 0 0
}
}
}
// entity 72
{
"classname" "light"
"name" "light_1"
"origin" "258 -100 -82"
"light_center" "0 0 0"
"light_radius" "224 320 144"
}
drown.map (39,636 bytes)   

Issue History

Date Modified Username Field Change
23.09.2023 10:05 Frost_Salamander New Issue
08.10.2023 16:22 Daft Mugi Target Version => TDM 2.12
05.12.2023 01:25 nbohr1more Target Version TDM 2.12 => TDM 2.13
08.01.2025 03:46 nbohr1more Target Version TDM 2.13 => TDM 2.14
19.06.2025 12:51 Frost_Salamander Note Added: 0017048
19.06.2025 12:51 Frost_Salamander File Added: drown.map
19.06.2025 12:52 Frost_Salamander Note Edited: 0017048
19.06.2025 16:07 Frost_Salamander Description Updated