View Issue Details

IDProjectCategoryView StatusLast Update
0002655The Dark ModAIpublic27.10.2011 05:20
Reportergrayman Assigned Tograyman  
PrioritynormalSeveritynormalReproducibilityalways
Status closedResolutionfixed 
PlatformWin32OSWindowsOS VersionXP
Product VersionTDM 1.04 
Target VersionTDM 1.06Fixed in VersionTDM 1.06 
Summary0002655: Werebeast crawler can cause damage above his height
DescriptionI was standing on a ledge 128 above a crawling werebeast. It had just dispatched a Citywatch guard when it spotted me on the ledge. It positioned itself below me and attacked, doing enough damage after 3 swipes to kill me.

The werebeast is low to the ground. It would have had to stand up and reach high to get to me, and it didn't do that.

He should not have been able to reach me, let alone kill me.

The map is attached.
TagsNo tags attached.

Activities

grayman

grayman

25.02.2011 16:00

viewer  

blind.map (27,165 bytes)   
Version 2
// entity 0
{
"classname" "worldspawn"
"editor_drLastCameraPos" "44.1071 -334.695 188.767"
"editor_drLastCameraAngle" "-6.9 62.1 0"
"editor_drMapPos1" "1738.55 1171.14 -520.531"
"editor_drMapAngle1" "14.7001 87.8977 0"
"editor_drMapPos2" "414.798 255.441 -264.933"
"editor_drMapAngle2" "2.10002 84.5976 0"
"editor_drMapPos3" "-749.97 -1606.21 -470.066"
"editor_drMapAngle3" "-3.29998 6.59757 0"
"editor_drMapPos4" "1014.05 -953.679 -556.857"
"editor_drMapAngle4" "-10.2 355.498 0"
"editor_drMapPos5" "987.599 3513.79 -319.877"
"editor_drMapAngle5" "-61.1999 172.198 0"
"editor_drMapPos6" "-1032.5 -2840 739.5"
"editor_drMapAngle6" "-77.0999 175.798 0"
"editor_drMapPos7" "952.822 285.005 1366.04"
"editor_drMapAngle7" "-74.8 149.373 0"
"editor_drMapPos8" "976 424 320"
"editor_drMapAngle8" "-3 15.3467 0"
"editor_drMapPos9" "409.146 547.464 392.83"
"editor_drMapAngle9" "-16.8 284.947 0"
// primitive 0
{
brushDef3
{
( 0 0 1 -264 ) ( ( 0.03125 0 0 ) ( 0 0.03125 0 ) ) "textures/common/caulk" 0 0 0
( 0 1 0 -512 ) ( ( 0.03125 0 0 ) ( 0 0.03125 0.25 ) ) "textures/common/caulk" 0 0 0
( 1 0 0 -256 ) ( ( 0.03125 0 0 ) ( 0 0.03125 0.25 ) ) "textures/common/caulk" 0 0 0
( 0 -1 0 -512 ) ( ( 0.03125 0 0 ) ( 0 0.03125 0.25 ) ) "textures/common/caulk" 0 0 0
( -1 0 0 -512 ) ( ( 0.03125 0 0 ) ( 0 0.03125 0.25 ) ) "textures/common/caulk" 0 0 0
( 0 0 -1 256 ) ( ( 0.0078125 0 0 ) ( 0 0.0078125 0 ) ) "textures/darkmod/nature/dirt/dirt_001" 0 0 0
}
}
// primitive 1
{
brushDef3
{
( 0 0 1 -256 ) ( ( 0.03125 0 63.75 ) ( 0 0.03125 0 ) ) "textures/common/caulk" 0 0 0
( 0 1 0 -520 ) ( ( 0.03125 0 0 ) ( 0 0.03125 0 ) ) "textures/common/caulk" 0 0 0
( 1 0 0 -256 ) ( ( 0.03125 0 63.75 ) ( 0 0.03125 0 ) ) "textures/common/caulk" 0 0 0
( 0 0 -1 0 ) ( ( 0.03125 0 63.75 ) ( 0 0.03125 0 ) ) "textures/common/caulk" 0 0 0
( -1 0 0 -512 ) ( ( 0.03125 0 0.25 ) ( 0 0.03125 0 ) ) "textures/common/caulk" 0 0 0
( 0 -1 0 512 ) ( ( 0.0078125 0 0 ) ( 0 0.0078125 0 ) ) "textures/darkmod/nature/dirt/dirt_001" 0 0 0
}
}
// primitive 2
{
brushDef3
{
( 0 0 1 -256 ) ( ( 0.03125 0 0 ) ( 0 0.03125 7.75 ) ) "textures/common/caulk" 0 0 0
( 0 1 0 -512 ) ( ( 0.03125 0 56.25 ) ( 0 0.03125 0 ) ) "textures/common/caulk" 0 0 0
( 1 0 0 -264 ) ( ( 0.03125 0 0 ) ( 0 0.03125 0 ) ) "textures/common/caulk" 0 0 0
( 0 0 -1 0 ) ( ( 0.03125 0 0 ) ( 0 0.03125 56.25 ) ) "textures/common/caulk" 0 0 0
( 0 -1 0 -512 ) ( ( 0.03125 0 7.75 ) ( 0 0.03125 0 ) ) "textures/common/caulk" 0 0 0
( -1 0 0 256 ) ( ( 0.0078125 0 0 ) ( 0 0.0078125 0 ) ) "textures/darkmod/nature/dirt/dirt_001" 0 0 0
}
}
// primitive 3
{
brushDef3
{
( 0 1 0 -512 ) ( ( 0.03125 0 0 ) ( 0 0.03125 63.75 ) ) "textures/common/caulk" 0 0 0
( 1 0 0 -256 ) ( ( 0.03125 0 0 ) ( 0 0.03125 63.75 ) ) "textures/common/caulk" 0 0 0
( 0 0 -1 -8 ) ( ( 0.03125 0 0 ) ( 0 0.03125 0 ) ) "textures/common/caulk" 0 0 0
( 0 -1 0 -512 ) ( ( 0.03125 0 0 ) ( 0 0.03125 63.75 ) ) "textures/common/caulk" 0 0 0
( -1 0 0 -512 ) ( ( 0.03125 0 0 ) ( 0 0.03125 63.75 ) ) "textures/common/caulk" 0 0 0
( 0 0 1 0 ) ( ( 0.0078125 0 0 ) ( 0 0.0078125 0 ) ) "textures/darkmod/nature/dirt/dirt_001" 0 0 0
}
}
// primitive 4
{
brushDef3
{
( 0 0 1 -256 ) ( ( 0.03125 0 0.25 ) ( 0 0.03125 0 ) ) "textures/common/caulk" 0 0 0
( 1 0 0 -256 ) ( ( 0.03125 0 0.25 ) ( 0 0.03125 0 ) ) "textures/common/caulk" 0 0 0
( 0 0 -1 0 ) ( ( 0.03125 0 0.25 ) ( 0 0.03125 0 ) ) "textures/common/caulk" 0 0 0
( 0 -1 0 -520 ) ( ( 0.03125 0 0 ) ( 0 0.03125 0 ) ) "textures/common/caulk" 0 0 0
( -1 0 0 -512 ) ( ( 0.03125 0 63.75 ) ( 0 0.03125 0 ) ) "textures/common/caulk" 0 0 0
( 0 1 0 512 ) ( ( 0.0078125 0 0 ) ( 0 0.0078125 0 ) ) "textures/darkmod/nature/dirt/dirt_001" 0 0 0
}
}
// primitive 5
{
brushDef3
{
( 0 0 1 -256 ) ( ( 0.03125 0 0 ) ( 0 0.03125 0.25 ) ) "textures/common/caulk" 0 0 0
( 0 1 0 -512 ) ( ( 0.03125 0 63.75 ) ( 0 0.03125 0 ) ) "textures/common/caulk" 0 0 0
( 0 0 -1 0 ) ( ( 0.03125 0 0 ) ( 0 0.03125 63.75 ) ) "textures/common/caulk" 0 0 0
( 0 -1 0 -512 ) ( ( 0.03125 0 0.25 ) ( 0 0.03125 0 ) ) "textures/common/caulk" 0 0 0
( -1 0 0 -520 ) ( ( 0.03125 0 0 ) ( 0 0.03125 0 ) ) "textures/common/caulk" 0 0 0
( 1 0 0 512 ) ( ( 0.0078125 0 0 ) ( 0 0.0078125 0 ) ) "textures/darkmod/nature/dirt/dirt_001" 0 0 0
}
}
// primitive 6
{
brushDef3
{
( 0 0 1 -248 ) ( ( 0.0625 0 13.15625 ) ( 0 0.0625 8.6875 ) ) "textures/common/caulk" 0 0 0
( 0 1 0 156 ) ( ( 0.0625 0 55.3125 ) ( 0 0.0625 11.28125 ) ) "textures/common/caulk" 0 0 0
( 1 0 0 -938 ) ( ( 0.0625 0 13.15625 ) ( 0 0.0625 11.28125 ) ) "textures/common/caulk" 0 0 0
( 0 -1 0 -476 ) ( ( 0.0625 0 8.6875 ) ( 0 0.0625 11.28125 ) ) "textures/common/caulk" 0 0 0
( -1 0 0 810 ) ( ( 0.0625 0 50.84375 ) ( 0 0.0625 11.28125 ) ) "textures/common/caulk" 0 0 0
( 0 0 -1 240 ) ( ( 0.0625 0 13.15625 ) ( 0 0.0625 54.3125 ) ) "textures/common/caulk" 0 0 0
}
}
// primitive 7
{
brushDef3
{
( 0 0 1 -240 ) ( ( 0.0625 0 13.15625 ) ( 0 0.0625 8.6875 ) ) "textures/common/caulk" 0 0 0
( 0 1 0 148 ) ( ( 0.0625 0 55.3125 ) ( 0 0.0625 10.78125 ) ) "textures/common/caulk" 0 0 0
( 1 0 0 -938 ) ( ( 0.0625 0 13.15625 ) ( 0 0.0625 10.78125 ) ) "textures/common/caulk" 0 0 0
( 0 0 -1 112 ) ( ( 0.0625 0 13.15625 ) ( 0 0.0625 55.3125 ) ) "textures/common/caulk" 0 0 0
( -1 0 0 810 ) ( ( 0.0625 0 50.84375 ) ( 0 0.0625 10.78125 ) ) "textures/common/caulk" 0 0 0
( 0 -1 0 -156 ) ( ( 0.0625 0 9.6875 ) ( 0 0.0625 10.78125 ) ) "textures/common/caulk" 0 0 0
}
}
// primitive 8
{
brushDef3
{
( 0 1 0 156 ) ( ( 0.0625 0 55.3125 ) ( 0 0.0625 10.28125 ) ) "textures/common/caulk" 0 0 0
( 1 0 0 -938 ) ( ( 0.0625 0 13.15625 ) ( 0 0.0625 10.28125 ) ) "textures/common/caulk" 0 0 0
( 0 0 -1 104 ) ( ( 0.0625 0 13.15625 ) ( 0 0.0625 55.3125 ) ) "textures/common/caulk" 0 0 0
( 0 -1 0 -476 ) ( ( 0.0625 0 8.1875 ) ( 0 0.0625 10.28125 ) ) "textures/common/caulk" 0 0 0
( -1 0 0 810 ) ( ( 0.0625 0 50.84375 ) ( 0 0.0625 10.28125 ) ) "textures/common/caulk" 0 0 0
( 0 0 1 -112 ) ( ( 0.0625 0 13.15625 ) ( 0 0.0625 9.6875 ) ) "textures/common/caulk" 0 0 0
}
}
// primitive 9
{
brushDef3
{
( 0 0 1 -240 ) ( ( 0.0625 0 26.28125 ) ( 0 0.0625 8.875 ) ) "textures/common/caulk" 0 0 0
( 1 0 0 -938 ) ( ( 0.0625 0 26.28125 ) ( 0 0.0625 10.78125 ) ) "textures/common/caulk" 0 0 0
( 0 0 -1 112 ) ( ( 0.0625 0 26.28125 ) ( 0 0.0625 55.125 ) ) "textures/common/caulk" 0 0 0
( 0 -1 0 -484 ) ( ( 0.0625 0 8.875 ) ( 0 0.0625 10.78125 ) ) "textures/common/caulk" 0 0 0
( -1 0 0 810 ) ( ( 0.0625 0 37.71875 ) ( 0 0.0625 10.78125 ) ) "textures/common/caulk" 0 0 0
( 0 1 0 476 ) ( ( 0.0625 0 54.125 ) ( 0 0.0625 10.78125 ) ) "textures/common/caulk" 0 0 0
}
}
// primitive 10
{
brushDef3
{
( 0 0 1 -240 ) ( ( 0.0625 0 13.75 ) ( 0 0.0625 9.375 ) ) "textures/common/caulk" 0 0 0
( 0 1 0 156 ) ( ( 0.0625 0 54.625 ) ( 0 0.0625 10.78125 ) ) "textures/common/caulk" 0 0 0
( 0 0 -1 112 ) ( ( 0.0625 0 13.75 ) ( 0 0.0625 54.625 ) ) "textures/common/caulk" 0 0 0
( 0 -1 0 -476 ) ( ( 0.0625 0 9.375 ) ( 0 0.0625 10.78125 ) ) "textures/common/caulk" 0 0 0
( -1 0 0 802 ) ( ( 0.0625 0 50.25 ) ( 0 0.0625 10.78125 ) ) "textures/common/caulk" 0 0 0
( 1 0 0 -810 ) ( ( 0.0625 0 13.75 ) ( 0 0.0625 10.78125 ) ) "textures/common/caulk" 0 0 0
}
}
// primitive 11
{
brushDef3
{
( 0 0 1 -240 ) ( ( 0.0625 0 13.75 ) ( 0 0.0625 0.875 ) ) "textures/common/caulk" 0 0 0
( 0 1 0 156 ) ( ( 0.0625 0 63.125 ) ( 0 0.0625 10.78125 ) ) "textures/common/caulk" 0 0 0
( 0 0 -1 112 ) ( ( 0.0625 0 13.75 ) ( 0 0.0625 63.125 ) ) "textures/common/caulk" 0 0 0
( 0 -1 0 -476 ) ( ( 0.0625 0 0.875 ) ( 0 0.0625 10.78125 ) ) "textures/common/caulk" 0 0 0
( -1 0 0 938 ) ( ( 0.0625 0 50.25 ) ( 0 0.0625 10.78125 ) ) "textures/common/caulk" 0 0 0
( 1 0 0 -946 ) ( ( 0.0625 0 13.75 ) ( 0 0.0625 10.78125 ) ) "textures/common/caulk" 0 0 0
}
}
// primitive 12
{
brushDef3
{
( 0 0 1 -240 ) ( ( 0.0625 0 18.65625 ) ( 0 0.0625 8.6875 ) ) "textures/common/caulk" 0 0 0
( 0 1 0 236 ) ( ( 0.0625 0 55.3125 ) ( 0 0.0625 10.78125 ) ) "textures/common/caulk" 0 0 0
( 1 0 0 -938 ) ( ( 0.0625 0 18.65625 ) ( 0 0.0625 10.78125 ) ) "textures/common/caulk" 0 0 0
( 0 0 -1 112 ) ( ( 0.0625 0 18.65625 ) ( 0 0.0625 55.3125 ) ) "textures/common/caulk" 0 0 0
( -1 0 0 810 ) ( ( 0.0625 0 45.34375 ) ( 0 0.0625 10.78125 ) ) "textures/common/caulk" 0 0 0
( 0 -1 0 -244 ) ( ( 0.0625 0 9.6875 ) ( 0 0.0625 10.78125 ) ) "textures/common/caulk" 0 0 0
}
}
// primitive 13
{
brushDef3
{
( 0 0 1 -240 ) ( ( 0.0625 0 21.15625 ) ( 0 0.0625 8.6875 ) ) "textures/common/caulk" 0 0 0
( 0 1 0 276 ) ( ( 0.0625 0 55.3125 ) ( 0 0.0625 10.78125 ) ) "textures/common/caulk" 0 0 0
( 1 0 0 -938 ) ( ( 0.0625 0 21.15625 ) ( 0 0.0625 10.78125 ) ) "textures/common/caulk" 0 0 0
( 0 0 -1 112 ) ( ( 0.0625 0 21.15625 ) ( 0 0.0625 55.3125 ) ) "textures/common/caulk" 0 0 0
( -1 0 0 810 ) ( ( 0.0625 0 42.84375 ) ( 0 0.0625 10.78125 ) ) "textures/common/caulk" 0 0 0
( 0 -1 0 -284 ) ( ( 0.0625 0 9.6875 ) ( 0 0.0625 10.78125 ) ) "textures/common/caulk" 0 0 0
}
}
// primitive 14
{
brushDef3
{
( 0 0 1 -4 ) ( ( 0.0078125 0 1.5625 ) ( 0 0.0078125 252.25 ) ) "textures/darkmod/nature/snow/plain_ice01" 0 0 0
( 0 1 0 376 ) ( ( 0.0078125 0 3.75 ) ( 0 0.0078125 255.9375 ) ) "textures/darkmod/nature/snow/plain_ice01" 0 0 0
( 1 0 0 -128 ) ( ( 0.0078125 0 1.5625 ) ( 0 0.0078125 255.9375 ) ) "textures/darkmod/nature/snow/plain_ice01" 0 0 0
( 0 0 -1 0 ) ( ( 0.0078125 0 1.5625 ) ( 0 0.0078125 3.75 ) ) "textures/darkmod/nature/snow/plain_ice01" 0 0 0
( 0 -1 0 -392 ) ( ( 0.0078125 0 252.25 ) ( 0 0.0078125 255.9375 ) ) "textures/darkmod/nature/snow/plain_ice01" 0 0 0
( -1 0 0 112 ) ( ( 0.0078125 0 254.4375 ) ( 0 0.0078125 255.9375 ) ) "textures/darkmod/nature/snow/plain_ice01" 0 0 0
}
}
// primitive 15
{
brushDef3
{
( 0 0 1 -4 ) ( ( 0.0078125 0 251.0625 ) ( 0 0.0078125 252.25 ) ) "textures/darkmod/nature/snow/plain_ice01" 0 0 0
( 0 1 0 -456 ) ( ( 0.0078125 0 3.75 ) ( 0 0.0078125 255.9375 ) ) "textures/darkmod/nature/snow/plain_ice01" 0 0 0
( 1 0 0 -128 ) ( ( 0.0078125 0 251.0625 ) ( 0 0.0078125 255.9375 ) ) "textures/darkmod/nature/snow/plain_ice01" 0 0 0
( 0 0 -1 0 ) ( ( 0.0078125 0 251.0625 ) ( 0 0.0078125 3.75 ) ) "textures/darkmod/nature/snow/plain_ice01" 0 0 0
( 0 -1 0 440 ) ( ( 0.0078125 0 252.25 ) ( 0 0.0078125 255.9375 ) ) "textures/darkmod/nature/snow/plain_ice01" 0 0 0
( -1 0 0 112 ) ( ( 0.0078125 0 4.9375 ) ( 0 0.0078125 255.9375 ) ) "textures/darkmod/nature/snow/plain_ice01" 0 0 0
}
}
// primitive 16
{
brushDef3
{
( 0 0 1 -128 ) ( ( 0.0078125 0 0 ) ( 0 0.0078125 0 ) ) "textures/darkmod/nature/dirt/dirt_001" 0 0 0
( 0 1 0 -512 ) ( ( 0.0078125 0 0 ) ( 0 0.0078125 0 ) ) "textures/darkmod/nature/dirt/dirt_001" 0 0 0
( 1 0 0 -64 ) ( ( 0.0078125 0 0 ) ( 0 0.0078125 0 ) ) "textures/darkmod/nature/dirt/dirt_001" 0 0 0
( 0 0 -1 0 ) ( ( 0.0078125 0 0 ) ( 0 0.0078125 0 ) ) "textures/darkmod/nature/dirt/dirt_001" 0 0 0
( 0 -1 0 -512 ) ( ( 0.0078125 0 0 ) ( 0 0.0078125 0 ) ) "textures/darkmod/nature/dirt/dirt_001" 0 0 0
( -1 0 0 -512 ) ( ( 0.0078125 0 0 ) ( 0 0.0078125 0 ) ) "textures/darkmod/nature/dirt/dirt_001" 0 0 0
}
}
}
// entity 1
{
"classname" "light"
"name" "light_1"
"light_center" "0 0 0"
"light_radius" "672 664 320"
"origin" "-256 0 192"
}
// entity 2
{
"classname" "info_player_start"
"name" "info_player_start_1"
"angle" "45"
"origin" "-352 -456 136"
}
// entity 3
{
"classname" "light"
"name" "ambient_world"
"_color" "0.06 0.06 0.06"
"light_center" "0 0 0"
"light_radius" "7777 7777 7777"
"nodiffuse" "0"
"noshadows" "0"
"nospecular" "0"
"origin" "907 -174.5 205.5"
"parallel" "0"
"texture" "lights/ambientlightnfo"
}
// entity 4
{
"classname" "atdm:playertools_compass"
"name" "CompassEasy2"
"diff_0_nospawn" "0"
"diff_1_nospawn" "1"
"diff_2_nospawn" "1"
"inv_map_start" "1"
"origin" "819 -194.5 220.5"
}
// entity 5
{
"classname" "atdm:playertools_lantern"
"name" "LanternEasy2"
"diff_0_nospawn" "0"
"diff_1_nospawn" "1"
"diff_2_nospawn" "1"
"inv_map_start" "1"
"origin" "831 -194.5 220.5"
}
// entity 6
{
"classname" "atdm:playertools_spyglass"
"name" "SpyglassEasy2"
"diff_0_nospawn" "0"
"diff_1_nospawn" "1"
"diff_2_nospawn" "1"
"inv_map_start" "1"
"origin" "841 -194.5 220.5"
}
// entity 7
{
"classname" "atdm:playertools_health_potion"
"name" "HealthPotionsEasy2"
"diff_0_nospawn" "0"
"diff_1_nospawn" "1"
"diff_2_nospawn" "1"
"inv_count" "10"
"inv_map_start" "1"
"origin" "857 -194.5 195.5"
}
// entity 8
{
"classname" "atdm:weapon_shortsword"
"name" "SwordEasy2"
"diff_0_nospawn" "0"
"diff_1_nospawn" "1"
"diff_2_nospawn" "1"
"inv_map_start" "1"
"inv_no_pickup_message" "1"
"origin" "929 -292.5 171.5"
"rotation" "0 1 0 -1 0 0 0 0 1"
}
// entity 9
{
"classname" "atdm:weapon_blackjack"
"name" "BlackjackEasy2"
"diff_0_nospawn" "0"
"diff_1_nospawn" "1"
"diff_2_nospawn" "1"
"inv_map_start" "1"
"inv_no_pickup_message" "1"
"origin" "880.625 -293.25 171.5"
}
// entity 10
{
"classname" "atdm:playertools_breath_potion"
"name" "BreathPotionsEasy2"
"diff_0_nospawn" "0"
"diff_1_nospawn" "1"
"diff_2_nospawn" "1"
"inv_count" "10"
"inv_map_start" "1"
"origin" "869 -194.5 195.5"
}
// entity 11
{
"classname" "atdm:playertools_flashbomb"
"name" "FlashbombsEasy2"
"diff_0_nospawn" "0"
"diff_1_nospawn" "1"
"diff_2_nospawn" "1"
"inv_count" "30"
"inv_map_start" "1"
"origin" "821 -292.5 195.5"
}
// entity 12
{
"classname" "atdm:ammo_broadhead"
"name" "BroadheadsEasy2"
"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"
"origin" "818 -372 152"
"rotation" "1 0 0 0 0 1 0 -1 0"
}
// entity 13
{
"classname" "atdm:ammo_broadhead"
"name" "BroadheadsHard2"
"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"
"origin" "818 -420 152"
"rotation" "1 0 0 0 0 1 0 -1 0"
}
// entity 14
{
"classname" "atdm:ammo_broadhead"
"name" "BroadheadsExpert2"
"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"
"origin" "818 -468 152"
"rotation" "1 0 0 0 0 1 0 -1 0"
}
// entity 15
{
"classname" "atdm:ammo_firearrow"
"name" "FireArrowsEasy2"
"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"
"origin" "834 -372 152"
"rotation" "1 0 0 0 0 1 0 -1 0"
}
// entity 16
{
"classname" "atdm:ammo_firearrow"
"name" "FireArrowsHard2"
"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"
"origin" "834 -420 152"
"rotation" "1 0 0 0 0 1 0 -1 0"
}
// entity 17
{
"classname" "atdm:ammo_firearrow"
"name" "FireArrowsExpert2"
"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"
"origin" "834 -468 152"
"rotation" "1 0 0 0 0 1 0 -1 0"
}
// entity 18
{
"classname" "atdm:ammo_gasarrow"
"name" "GasArrowsEasy2"
"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"
"origin" "850 -372 152"
"rotation" "1 0 0 0 0 1 0 -1 0"
}
// entity 19
{
"classname" "atdm:ammo_gasarrow"
"name" "GasArrowsHard2"
"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"
"origin" "850 -420 152"
"rotation" "1 0 0 0 0 1 0 -1 0"
}
// entity 20
{
"classname" "atdm:ammo_gasarrow"
"name" "GasArrowsExpert2"
"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"
"origin" "850 -468 152"
"rotation" "1 0 0 0 0 1 0 -1 0"
}
// entity 21
{
"classname" "atdm:ammo_mossarrow"
"name" "MossArrowsEasy2"
"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"
"origin" "866 -372 152"
"rotation" "1 0 0 0 0 1 0 -1 0"
}
// entity 22
{
"classname" "atdm:ammo_mossarrow"
"name" "MossArrowsExpert2"
"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"
"origin" "866 -468 152"
"rotation" "1 0 0 0 0 1 0 -1 0"
}
// entity 23
{
"classname" "atdm:ammo_mossarrow"
"name" "MossArrowsHard2"
"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"
"origin" "866 -420 152"
"rotation" "1 0 0 0 0 1 0 -1 0"
}
// entity 24
{
"classname" "atdm:ammo_noisemaker"
"name" "NoiseArrowsEasy2"
"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"
"origin" "882 -372 152"
"rotation" "1 0 0 0 0 1 0 -1 0"
}
// entity 25
{
"classname" "atdm:ammo_noisemaker"
"name" "NoiseArrowsHard2"
"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"
"origin" "882 -420 152"
"rotation" "1 0 0 0 0 1 0 -1 0"
}
// entity 26
{
"classname" "atdm:ammo_noisemaker"
"name" "NoiseArrowsExpert2"
"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"
"origin" "882 -468 152"
"rotation" "1 0 0 0 0 1 0 -1 0"
}
// entity 27
{
"classname" "atdm:ammo_ropearrow"
"name" "RopeArrowsEasy2"
"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"
"origin" "898 -372 152"
"rotation" "1 0 0 0 0 1 0 -1 0"
}
// entity 28
{
"classname" "atdm:ammo_ropearrow"
"name" "RopeArrowsHard2"
"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"
"origin" "898 -420 152"
"rotation" "1 0 0 0 0 1 0 -1 0"
}
// entity 29
{
"classname" "atdm:ammo_ropearrow"
"name" "RopeArrowsExpert2"
"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"
"origin" "898 -468 152"
"rotation" "1 0 0 0 0 1 0 -1 0"
}
// entity 30
{
"classname" "atdm:ammo_waterarrow"
"name" "WaterArrowsEasy2"
"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"
"origin" "930 -372 152"
"rotation" "1 0 0 0 0 1 0 -1 0"
}
// entity 31
{
"classname" "atdm:ammo_waterarrow"
"name" "WaterArrowsHard2"
"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"
"origin" "930 -420 152"
"rotation" "1 0 0 0 0 1 0 -1 0"
}
// entity 32
{
"classname" "atdm:ammo_waterarrow"
"name" "WaterArrowsExpert2"
"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"
"origin" "930 -468 152"
"rotation" "1 0 0 0 0 1 0 -1 0"
}
// entity 33
{
"classname" "atdm:weapon_blackjack"
"name" "BlackjackHard2"
"diff_0_nospawn" "1"
"diff_1_nospawn" "0"
"diff_2_nospawn" "1"
"inv_map_start" "1"
"inv_no_pickup_message" "1"
"origin" "880.625 -309.25 171.5"
}
// entity 34
{
"classname" "atdm:weapon_blackjack"
"name" "BlackjackExpert2"
"diff_0_nospawn" "1"
"diff_1_nospawn" "1"
"diff_2_nospawn" "0"
"inv_map_start" "1"
"inv_no_pickup_message" "1"
"origin" "880.625 -325.25 171.5"
}
// entity 35
{
"classname" "atdm:weapon_shortsword"
"name" "SwordHard2"
"diff_0_nospawn" "1"
"diff_1_nospawn" "0"
"diff_2_nospawn" "1"
"inv_map_start" "1"
"inv_no_pickup_message" "1"
"origin" "929 -308.5 171.5"
"rotation" "0 1 0 -1 0 0 0 0 1"
}
// entity 36
{
"classname" "atdm:weapon_shortsword"
"name" "SwordExpert2"
"diff_0_nospawn" "1"
"diff_1_nospawn" "1"
"diff_2_nospawn" "0"
"inv_map_start" "1"
"inv_no_pickup_message" "1"
"origin" "929 -324.5 171.5"
"rotation" "0 1 0 -1 0 0 0 0 1"
}
// entity 37
{
"classname" "atdm:playertools_compass"
"name" "CompassHard2"
"diff_0_nospawn" "1"
"diff_1_nospawn" "0"
"diff_2_nospawn" "1"
"inv_map_start" "1"
"origin" "819 -210.5 220.5"
}
// entity 38
{
"classname" "atdm:playertools_compass"
"name" "CompassExpert2"
"diff_0_nospawn" "1"
"diff_1_nospawn" "1"
"diff_2_nospawn" "0"
"inv_map_start" "1"
"origin" "819 -226.5 220.5"
}
// entity 39
{
"classname" "atdm:playertools_lantern"
"name" "LanternHard2"
"diff_0_nospawn" "1"
"diff_1_nospawn" "0"
"diff_2_nospawn" "1"
"inv_map_start" "1"
"origin" "831 -210.5 220.5"
}
// entity 40
{
"classname" "atdm:playertools_lantern"
"name" "LanternExpert2"
"diff_0_nospawn" "1"
"diff_1_nospawn" "1"
"diff_2_nospawn" "0"
"inv_map_start" "1"
"origin" "831 -226.5 220.5"
}
// entity 41
{
"classname" "atdm:playertools_spyglass"
"name" "SpyglassHard2"
"diff_0_nospawn" "1"
"diff_1_nospawn" "0"
"diff_2_nospawn" "1"
"inv_map_start" "1"
"origin" "841 -210.5 220.5"
}
// entity 42
{
"classname" "atdm:playertools_spyglass"
"name" "SpyglassExpert2"
"diff_0_nospawn" "1"
"diff_1_nospawn" "1"
"diff_2_nospawn" "0"
"inv_map_start" "1"
"origin" "841 -226.5 220.5"
}
// entity 43
{
"classname" "atdm:playertools_flashbomb"
"name" "FlashbombsHard2"
"diff_0_nospawn" "1"
"diff_1_nospawn" "0"
"diff_2_nospawn" "1"
"inv_count" "30"
"inv_map_start" "1"
"origin" "821 -308.5 195.5"
}
// entity 44
{
"classname" "atdm:playertools_flashbomb"
"name" "FlashbombsExpert2"
"diff_0_nospawn" "1"
"diff_1_nospawn" "1"
"diff_2_nospawn" "0"
"inv_count" "30"
"inv_map_start" "1"
"origin" "821 -324.5 195.5"
}
// entity 45
{
"classname" "atdm:playertools_health_potion"
"name" "HealthPotionsHard2"
"diff_0_nospawn" "0"
"diff_1_nospawn" "1"
"diff_2_nospawn" "1"
"inv_count" "10"
"inv_map_start" "1"
"origin" "857 -210.5 195.5"
}
// entity 46
{
"classname" "atdm:playertools_health_potion"
"name" "HealthPotionsExpert2"
"diff_0_nospawn" "1"
"diff_1_nospawn" "1"
"diff_2_nospawn" "0"
"inv_count" "10"
"inv_map_start" "1"
"origin" "857 -226.5 195.5"
}
// entity 47
{
"classname" "atdm:playertools_breath_potion"
"name" "BreathPotionsHard2"
"diff_0_nospawn" "1"
"diff_1_nospawn" "0"
"diff_2_nospawn" "1"
"inv_count" "10"
"inv_map_start" "1"
"origin" "869 -210.5 195.5"
}
// entity 48
{
"classname" "atdm:playertools_breath_potion"
"name" "BreathPotionsExpert2"
"diff_0_nospawn" "1"
"diff_1_nospawn" "1"
"diff_2_nospawn" "0"
"inv_count" "10"
"inv_map_start" "1"
"origin" "869 -226.5 195.5"
}
// entity 49
{
"classname" "atdm:playertools_lockpick_snake"
"name" "LockpickSnakeEasy2"
"diff_0_nospawn" "0"
"diff_1_nospawn" "1"
"diff_2_nospawn" "1"
"inv_map_start" "1"
"origin" "912 -194 192"
"rotation" "0.707107 0.707107 0 -0.707107 0.707107 0 0 0 1"
}
// entity 50
{
"classname" "atdm:playertools_lockpick_triangle"
"name" "LockpickTriangleEasy2"
"diff_0_nospawn" "0"
"diff_1_nospawn" "1"
"diff_2_nospawn" "1"
"inv_map_start" "1"
"origin" "928 -194 192"
"rotation" "0.707107 0.707107 0 -0.707107 0.707107 0 0 0 1"
}
// entity 51
{
"classname" "atdm:playertools_mine"
"name" "MinesEasy2"
"diff_0_nospawn" "0"
"diff_1_nospawn" "1"
"diff_2_nospawn" "1"
"inv_count" "10"
"inv_map_start" "1"
"origin" "852 -292 192"
}
// entity 52
{
"classname" "atdm:playertools_holywater"
"name" "HolyWatersEasy2"
"diff_0_nospawn" "0"
"diff_1_nospawn" "1"
"diff_2_nospawn" "1"
"inv_count" "10"
"inv_map_start" "1"
"origin" "868 -292 192"
}
// entity 53
{
"classname" "atdm:playertools_flashmine"
"name" "FlashminesEasy2"
"diff_0_nospawn" "0"
"diff_1_nospawn" "1"
"diff_2_nospawn" "1"
"inv_count" "30"
"inv_map_start" "1"
"origin" "836 -292 192"
}
// entity 54
{
"classname" "atdm:playertools_lockpick_snake"
"name" "LockpickSnakeHard2"
"diff_0_nospawn" "1"
"diff_1_nospawn" "0"
"diff_2_nospawn" "1"
"inv_map_start" "1"
"origin" "912 -210 192"
"rotation" "0.707107 0.707107 0 -0.707107 0.707107 0 0 0 1"
}
// entity 55
{
"classname" "atdm:playertools_lockpick_snake"
"name" "LockpickSnakeExpert2"
"diff_0_nospawn" "1"
"diff_1_nospawn" "1"
"diff_2_nospawn" "0"
"inv_map_start" "1"
"origin" "912 -226 192"
"rotation" "0.707107 0.707107 0 -0.707107 0.707107 0 0 0 1"
}
// entity 56
{
"classname" "atdm:playertools_lockpick_triangle"
"name" "LockpickTriangleHard2"
"diff_0_nospawn" "1"
"diff_1_nospawn" "0"
"diff_2_nospawn" "1"
"inv_map_start" "1"
"origin" "928 -210 192"
"rotation" "0.707107 0.707107 0 -0.707107 0.707107 0 0 0 1"
}
// entity 57
{
"classname" "atdm:playertools_lockpick_triangle"
"name" "LockpickTriangleExpert2"
"diff_0_nospawn" "1"
"diff_1_nospawn" "1"
"diff_2_nospawn" "0"
"inv_map_start" "1"
"origin" "928 -226 192"
"rotation" "0.707107 0.707107 0 -0.707107 0.707107 0 0 0 1"
}
// entity 58
{
"classname" "atdm:playertools_flashmine"
"name" "FlashminesHard2"
"diff_0_nospawn" "1"
"diff_1_nospawn" "0"
"diff_2_nospawn" "1"
"inv_count" "30"
"inv_map_start" "1"
"origin" "836 -308 192"
}
// entity 59
{
"classname" "atdm:playertools_flashmine"
"name" "FlashminesExpert2"
"diff_0_nospawn" "1"
"diff_1_nospawn" "1"
"diff_2_nospawn" "0"
"inv_count" "30"
"inv_map_start" "1"
"origin" "836 -324 192"
}
// entity 60
{
"classname" "atdm:playertools_mine"
"name" "MinesHard2"
"diff_0_nospawn" "1"
"diff_1_nospawn" "0"
"diff_2_nospawn" "1"
"inv_count" "10"
"inv_map_start" "1"
"origin" "852 -308 192"
}
// entity 61
{
"classname" "atdm:playertools_mine"
"name" "MinesExpert2"
"diff_0_nospawn" "1"
"diff_1_nospawn" "1"
"diff_2_nospawn" "0"
"inv_count" "10"
"inv_map_start" "1"
"origin" "852 -324 192"
}
// entity 62
{
"classname" "atdm:playertools_holywater"
"name" "HolyWatersHard2"
"diff_0_nospawn" "1"
"diff_1_nospawn" "0"
"diff_2_nospawn" "1"
"inv_count" "10"
"inv_map_start" "1"
"origin" "868 -308 192"
}
// entity 63
{
"classname" "atdm:playertools_holywater"
"name" "HolyWatersExpert2"
"diff_0_nospawn" "1"
"diff_1_nospawn" "1"
"diff_2_nospawn" "0"
"inv_count" "10"
"inv_map_start" "1"
"origin" "868 -324 192"
}
// entity 64
{
"classname" "atdm:ai_monster_werebeast_crawler"
"name" "atdm_ai_monster_werebeast_crawler_1"
"animal_patrol" "0"
"origin" "184 -272 8"
"target" "path_corner_5"
}
// entity 65
{
"classname" "path_corner"
"name" "path_corner_7"
"origin" "120 448 0"
"run" "1"
"target" "path_corner_5"
}
// entity 66
{
"classname" "path_corner"
"name" "path_corner_5"
"origin" "120 -384 0"
"run" "1"
"target" "path_corner_7"
}
// entity 67
{
"classname" "light"
"name" "light_3"
"light_center" "0 0 0"
"light_radius" "672 664 320"
"origin" "168 0 192"
}
// entity 68
{
"classname" "atdm:ai_citywatch"
"name" "atdm_ai_citywatch_1"
"origin" "176 272 8"
}
blind.map (27,165 bytes)   
Springheel

Springheel

26.02.2011 13:56

administrator   ~0003672

Hmm, I suspect that the attack cone is set at the same height for both werebeasts; the crawler probably needs its own value.
grayman

grayman

20.04.2011 16:53

viewer   ~0003812

The standing werebeast has a height of 72 and a melee reach of 60, so he can reach to a height of 132. If the player's origin is at or below that height, the beast can damage you.

The numbers are the same for the crawler.

What's a reasonable height for the crawler? I'm testing with 36, so he can't reach higher than 36 + 60 = 96. But it doesn't look right that something close to the floor can reach 3x its height, so I'm wondering if his melee reach needs to be smaller. But that's also used horizontally, so unless I split melee reach into vertical (say 30) and horizontal (60) components, his reach will be less than his stand-up brother.
grayman

grayman

20.04.2011 17:57

viewer   ~0003813

The crawler has 2 attacks.

In the first attack, he stays on the floor and reaches out one hand in front of him. He doesn't reach any higher than his head. If I give him a height of 36, and no vertical melee_range, his attack looks more realistic.

In the second attack, he stands up and reaches out with both hands. One raises above his head, so his vertical reach is around 80. With a height of 36, he'd need a vertical melee_range of (80 - 36) 44.

But whether he attacks is determined well ahead of which attack he uses, which is random. So I can't adjust the vertical melee_range based on attack, so I have to use an average.

So I'm thinking a bounding box height of 36 and a vertical melee_range of (44 + 0)/2 = 22. I'd leave his horizontal melee_range at 60.

I have to look at what splitting the melee_range would do to other AI. I can make their vertical equal their horizontal so they all behave the way they do today. For humans, that's 40.
grayman

grayman

20.04.2011 22:31

viewer   ~0003814

Created melee_range_vert to give the crawling werebeast a vertical reach (30) different from his horizontal reach (60). The code can handle different vertical and horizontal reaches for any AI, but for now the crawler is the only one that needs this.

Also adjusted the crawler’s bounding box height from 72 to 36.

Also fixed a minor error in how reachability is calculated.

rev. 4812:

ai.cpp
actor.cpp
actor.h

rev 11850:

tdm_ai_monster_werebeast.def

Issue History

Date Modified Username Field Change
25.02.2011 16:00 grayman New Issue
25.02.2011 16:00 grayman File Added: blind.map
26.02.2011 13:56 Springheel Note Added: 0003672
20.04.2011 16:47 grayman Assigned To => grayman
20.04.2011 16:47 grayman Status new => assigned
20.04.2011 16:53 grayman Note Added: 0003812
20.04.2011 17:57 grayman Note Added: 0003813
20.04.2011 22:31 grayman Note Added: 0003814
20.04.2011 22:31 grayman Status assigned => resolved
20.04.2011 22:31 grayman Resolution open => fixed
20.04.2011 22:31 grayman Fixed in Version => TDM 1.06
20.04.2011 22:31 grayman Target Version => TDM 1.06
27.10.2011 05:20 greebo Status resolved => closed