Jump to content
Search In
  • More options...
Find results that contain...
Find results in...
Mike800

Autoaim in Brutal Doom

Recommended Posts

Knowing how it does headshots, I imagine autoaim is completely disabled on its weapons.

So if you do want it, you're going to have to crack it open and find the weapons' Decorate files and remove the +NOAUTOAIM ( or +WEAPON.NOAUTOAIM, I forget which ) lines from all of them.

Keep in mind, though, that there's a reason for this - the way headshots are programmed in Brutal Doom make monster heads far more attractive targets for autoaim than the rest of the monster, so you'll likely end up with an unreasonable amount of headshots and your projectiles could end up being less reliable as they are far more likely to fly over a monster that's moving away from you.

Share this post


Link to post

But why would you want it? Wouldn't it aim at chunks of gore on the ground as well?

Share this post


Link to post
Arctangent said:

So if you do want it, you're going to have to crack it open and find the weapons' Decorate files and remove the +NOAUTOAIM ( or +WEAPON.NOAUTOAIM, I forget which ) lines from all of them.

Thanks!

Share this post


Link to post
Arctangent said:

your projectiles could end up being less reliable as they are far more likely to fly over a monster that's moving away from you.

The only issue I'm having so far is with the rocket launcher which usually can't hit targets in different elevations than myself. Is it fixable?

Share this post


Link to post

Autoaim fails when the weapon has a +WEAPON.NOAUTOAIM flag, or when the target has a +NOTAUTOAIMED flag, or when the target is not SHOOTABLE, or when the player has autoaim disabled in his Player Setup settings. Check if either of these possibilities applies in your case, and possibly play with different types of autoaim in Player Setup.

Share this post


Link to post

And by saying "rocket launcher usually can't hit targets in different elevations than myself", you actually mean that the weapon just doesn't autoaim at them, right? Just making sure.

Autoaim has a limited range (16*64 = 1024 map units), is the target close enough?

Would you post the rocket launcher's DECORATE code?

Share this post


Link to post
scifista42 said:

And by saying "rocket launcher usually can't hit targets in different elevations than myself", you actually mean that the weapon just doesn't autoaim at them, right? Just making sure.

In some cases it actually autoaim, but not in most cases.

Autoaim has a limited range (16*64 = 1024 map units), is the target close enough?

The target is close enough.

Would you post the rocket launcher's DECORATE code?

Spoiler


// --------------------------------------------------------------------------
//
// Rocket launcher
//
// --------------------------------------------------------------------------

ACTOR Rocket_Launcher : RocketLauncher Replaces RocketLauncher
{
Game Doom
SpawnID 29
Speed 20
Damage 20
Weapon.SelectionOrder 9500
Weapon.AmmoUse1 0
Weapon.AmmoUse2 0
Weapon.AmmoGive2 0
Weapon.AmmoGive1 6
Weapon.AmmoType1 "RocketAmmo"
Weapon.AmmoType2 "RocketRounds"
Inventory.PickupSound "ROCKPKUP"
+FORCEXYBILLBOARD
+WEAPON.AXEBLOOD
+WEAPON.NO_AUTO_SWITCH
Inventory.PickupMessage "$GOTLAUNCHER"
States
{

Steady:
TNT1 A 1
Goto Ready
Ready:
TNT1 A 0
TNT1 A 0 A_JumpIfInventory("IsPlayingAsPurist", 1, "PuristGun")
TNT1 A 8 A_PlaySound("RLANDRAW")
MISS ABCDEFG 1 A_JumpIfInventory("GoFatality", 1, "Steady")
TNT1 AAAAA 0
//TNT1 A 0 A_JumpIfInventory("RocketRounds",1,2)
//Goto Reload
TNT1 AAAA 0
TNT1 A 0 A_JumpIfInventory("Reloading",1,"Reload")
TNT1 A 0 A_JumpIfInventory("Kicking",1,"DoKick")
TNT1 A 0 A_JumpIfInventory("Salute1", 1, "Salute")
TNT1 A 0 A_JumpIfInventory("Salute2", 1, "Salute")
TNT1 A 0 A_JumpIfInventory("Taunting",1,"Taunt")
TNT1 A 0 A_JumpIfInventory("TossGrenade",1,"TossGrenade")
MISG A 1 A_WeaponReady
Goto Ready+11
Deselect:
MISS GFEDCBA 1
TNT1 A 0 A_TakeInventory("TossGrenade", 1)
TNT1 AAAAAAAAAAAAAAAAAA 0 A_Lower
TNT1 A 1
Wait
Select:

TNT1 A 0 A_Takeinventory("FistsSelected",1)
TNT1 A 0 A_Takeinventory("SawSelected",1)
TNT1 A 0 A_Takeinventory("ShotgunSelected",1)
TNT1 A 0 A_Takeinventory("SSGSelected",1)
TNT1 A 0 A_Takeinventory("MinigunSelected",1)
TNT1 A 0 A_Takeinventory("PlasmaGunSelected",1)
//TNT1 A 0 A_Giveinventory("RocketLauncherSelected",1)
TNT1 A 0 A_Giveinventory("RocketLauncherSelected",1)
TNT1 A 0 A_Takeinventory("GrenadeLauncherSelected",1)
TNT1 A 0 A_Takeinventory("BFGSelected",1)
TNT1 A 0 A_Takeinventory("BFG10kSelected",1)
TNT1 A 0 A_Takeinventory("RailGunSelected",1)
TNT1 A 0 A_Takeinventory("SubMachineGunSelected",1)
TNT1 A 0 A_Takeinventory("RevenantLauncherSelected",1)
TNT1 A 0 A_Takeinventory("LostSoulSelected",1)
TNT1 A 0 A_Takeinventory("FlameCannonSelected",1)
TNT1 A 0 A_Takeinventory("HasBarrel",1)
TNT1 A 0 A_TakeInventory("TossGrenade", 1)

MISG A 0 A_Raise
Wait
Fire:
TNT1 A 0 A_JumpIfInventory("RocketRounds",1,2)
Goto Reload
TNT1 AAAA 0

TNT1 A 0 A_FireCustomMissile("RedFlareSpawn",-5,0,0,0)
TNT1 A 0 A_PlaySound ("DSRFIRE")
TNT1 A 0 BRIGHT A_FireCustomMissile("Alerter")
MISF A 1 BRIGHT A_FireCustomMissile("Rocket", 0, 1, 0, -10)
TNT1 A 0 A_Takeinventory("RocketRounds",1)
//TNT1 A 0 ACS_Execute(374, 0, 0, 0, 0)
MISF BCD 1 BRIGHT
MISF E 1 A_SetPitch(-6.0 + pitch)
MISG BCD 2 A_SetPitch(2.0 + pitch)
MISG EF 2
MISG A 0
TNT1 A 0 A_Refire
Goto Ready+11


Reload:
MISG A 1 A_WeaponReady
MISG A 6
TNT1 A 0 A_Takeinventory("Reloading",1)
TNT1 A 0 A_JumpIfInventory("RocketRounds",6,"NoNeedToReload")
TNT1 A 0 A_JumpIfInventory("RocketAmmo",1,3)
Goto Ready+18
TNT1 AAAA 0
TNT1 A 0 A_PlaySound("Reload")
TNT1 A 0 A_SetAngle(-2 + angle)
TNT1 A 0 A_SetPitch(+2 + pitch)
MISR ABCDDE 1
TNT1 A 0 A_FireCustomMissile("RocketCaseSpawn",-30,0,-4,-4)
MISR EFFGG 1
TNT1 A 0 A_SetAngle(+2 + angle)
TNT1 A 0 A_SetPitch(-2 + pitch)
MISR HHIIJJKLM 1
TNT1 A 0 A_SetAngle(+1 + angle)
MISR MMMNOP 1
TNT1 A 0 A_SetAngle(-1 + angle)
MISR Q 3
MISR PR 1
MISG DEF 2
MISG A 6
Goto FinishReload

FinishReload:
TNT1 AAAAAA 0
TNT1 A 0 A_JumpIfInventory("RocketRounds",6,"NoNeedToReload")
TNT1 A 0 A_JumpIfInventory("RocketAmmo",1,3)
Goto Ready+6
TNT1 AAAAAA 0
TNT1 A 0 A_Giveinventory("RocketRounds",1)
TNT1 A 0 A_Takeinventory("RocketAmmo",1)
Goto FinishReload

TNT1 AAAAAAAAAA 0

NoNeedToReload:
MISG A 1 A_Refire
Goto Ready+11


Spawn:
LAUN A -1
Stop


DoKick:
TNT1 A 0
TNT1 A 0 A_Takeinventory("Zoomed",1)
TNT1 A 0 A_ZoomFactor(1.0)
TNT1 A 0 A_Takeinventory("ADSmode",1)
NULL A 0 A_JumpIf (momZ > 0, "AirKick")
NULL A 0 A_JumpIf (momZ < 0, "AirKick")
NULL A 0 A_JumpIf (pitch > 32, "LowKickChecker1")
Goto InitializeNormalKick

LowKickChecker1:
TNT1 A 0
NULL A 0 A_JumpIf (pitch > 90, "InitializeNormalKick")
RIFF A 0 A_FireCustomMissile("KickAttackDetectDowned", 0, 0, 0, 0)

InitializeNOrmalKick:
TNT1 A 0 A_jumpifinventory("PowerStrength",1,"BerserkerKick")
TNT1 A 0 A_PlaySound("KICK")
TNT1 A 0 SetPlayerProperty(0,1,0)
RLKI BCD 1
RIFF A 0 A_FireCustomMissile("KickAttack", 0, 0, 0, -7)
RLKI H 5
KICK A 0 A_Takeinventory("Kicking",1)
RLKI I 1
RLKI GFEDCBA 1
TNT1 A 0 SetPlayerProperty(0,0,0)
TNT1 A 0 A_JumpIfInventory("GoFatality", 1, "Steady")
Goto Ready+11
BerserkerKick:
TNT1 A 0 A_PlaySound("KICK")
TNT1 A 0 SetPlayerProperty(0,1,0)
RLKI BCD 1
RIFF A 0 A_FireCustomMissile("SuperKickAttack", 0, 0, 0, -7)
RLKI H 5
KICK A 0 A_Takeinventory("Kicking",1)
RLKI I 1
RLKI GFEDCBA 1
TNT1 A 0 SetPlayerProperty(0,0,0)
TNT1 A 0 A_JumpIfInventory("GoFatality", 1, "Steady")
Goto Ready+11

AirKick:
TNT1 A 0 A_jumpifinventory("PowerStrength",1,"SuperAirKick")
TNT1 A 0 A_PlaySound("KICK")
TNT1 A 0 A_Recoil (-6)
KICK JKLMN 1
RIFF A 0 A_FireCustomMissile("AirKickAttack", 0, 0, 0, -31)
KICK O 3
KICK A 0 A_Takeinventory("Kicking",1)
KICK PQRST 2
TNT1 A 0 A_JumpIfInventory("GoFatality", 1, "Steady")
Goto Ready+11

SuperAirKick:
TNT1 A 0 A_PlaySound("KICK")
TNT1 A 0 A_Recoil (-6)
KICK JKLMN 1
RIFF A 0 A_FireCustomMissile("SuperAirKickAttack", 0, 0, 0, -31)
KICK O 3
KICK A 0 A_Takeinventory("Kicking",1)
KICK PQRST 2
TNT1 A 0 A_JumpIfInventory("GoFatality", 1, "Steady")
Goto Ready+11

Taunt:
TNT1 A 0 A_Takeinventory("Zoomed",1)
TNT1 A 0 A_ZoomFactor(1.0)
TNT1 A 0 A_Takeinventory("Taunting",1)
TNT1 A 0 A_JumpIfInventory("RealismMode", 1, "CheckGrab")
TNT1 A 10
FUCK A 1
TNT1 A 0 BRIGHT A_FireCustomMissile("Taunter", 0, 0, -1, 0)
TNT1 A 0 BRIGHT A_FireCustomMissile("Taunter", -9, 0, -1, 0)
TNT1 A 0 BRIGHT A_FireCustomMissile("Taunter", 9, 0, -1, 0)
FUCK B 1 A_PlaySound("FUCK", 2)
FUCK CD 1 A_AlertMonsters
FUCK E 15 A_Takeinventory("Taunting",1)
FUCK DCBA 1
TNT1 A 10
Goto Ready
Salute:
TNT1 A 0 SetPlayerProperty(0,1,0)
TNT1 A 0 A_ALertMonsters
SALU ABCDEDCDEDCDEDCBA 4
TNT1 A 0 A_TakeInventory("Salute1",1)
TNT1 A 0 A_TakeInventory("Salute2",1)
TNT1 A 0 SetPlayerProperty(0,0,0)
Goto Ready

CheckGrab:
TNT1 A 0
TNT1 A 0 A_JumpIfTargetInLOS("CheckDistanceGrab")
Goto Ready+6
CheckDistanceGrab:
TNT1 A 0
TNT1 A 0 A_JumpIfCloser(100, "Grab")
Goto Ready+6
CheckIfCanGrab:
TNT1 A 0
TNT1 A 0 A_JumpIfInTargetInventory("CanGrab", 1, "Grab")
Goto Ready+6
Grab:
PKUP ABC 2
TNT1 A 0 A_CustomMissile("PickupProjectile")
PKUP DEF 2
Goto Ready

PuristGun:
TNT1 A 1
TNT1 A 0 A_GiveInventory("ClassicRocketLauncher", 1)
TNT1 A 0 A_TakeInventory("Rocket_Launcher", 1)
TNT1 A 10
Goto Ready
TossGrenade:
TNT1 A 0
TNT1 A 0 A_TakeInventory("TossGrenade", 1)
TNT1 A 0 A_JumpIfInventory("GrenadeAmmo", 1, 1)
Goto NoGrenade
GRTH ABCD 1
TNT1 A 0 A_GiveInventory("FiredGrenade", 1)
TNT1 A 0 A_PLaySound ("GRNPIN")
GRTH EEFG 1
TNT1 A 0 A_PLaySound ("GRNTOSS")
GRTH HI 1
TNT1 A 0 A_TakeInventory("GrenadeAmmo", 1)
TNT1 A 0 A_FireCustomMissile("HandGrenade", random(-2,2), 0, 0, 0, 0, 0)
TNT1 A 0 A_TakeInventory("FiredGrenade", 1)
GRTH JKLM 1
TNT1 A 1
TNT1 A 0 A_TakeInventory("TossGrenade", 1)
Goto Ready
NoGrenade:
TNT1 A 0
TNT1 A 0 A_Print("No Grenades Left.")
Goto REady+11
}
}

//Actor RocketRounds: Inventory
//{
//inventory.maxamount 6
//}

ACTOR RocketRounds : Ammo
{
Inventory.Amount 0
Inventory.MaxAmount 6
Ammo.BackpackAmount 0
Ammo.BackpackMaxAmount 6
Inventory.Icon "LAUNA0"
}












Actor TimeFreezer2 : PowerupGiver
{
Inventory.Pickupmessage "Time Freezer!"
Inventory.Icon "MEGAA0"
Inventory.MaxAmount 0
Inventory.UseSound "pickups/slowmo"
Powerup.Type "TimeFreezer"
Powerup.Duration 50
Translation "128:143=48:63"
+AUTOACTIVATE
+INVENTORY.FANCYPICKUPSOUND
States
{
Spawn:
MEGA ABCD 4 bright
Loop
}
}

ACTOR PowerTimeFreezer2 : PowerTimeFreezer
{
Powerup.Duration 2
}

Share this post


Link to post

Are you sure you were playing with this "Rocket_Launcher" and not the "ClassicRocketLauncher" (mentioned in the code), which is supposedly the vanilla-ish version of the weapon? (otherwise I couldn't find anything in the code that would explain non-functional autoaim)

When you say that it autoaims only "in some cases", do the cases have anything in common? May they be dependant on the type of actor that you're trying to target, and with some actor types it works while not with others?

Also, I don't know if this is true, but if it's true that only the heads of Brutal Doom's monsters can be autoaimed at (meaning that the heads don't have the NOTAUTOAIMED flag, while the bodies have the flag), and assuming the heads have a thinner radius and shorter height that the monster's body, then you'd naturally have it harder to aim horizontally precisely at the head (or precisely 5.6° to the left or to the right of it), and if you don't succeed to aim horizontally precisely at it, the autoaim wouldn't detect the target to aim at.

Share this post


Link to post
scifista42 said:

Are you sure you were playing with this "Rocket_Launcher" and not the "ClassicRocketLauncher" (mentioned in the code), which is supposedly the vanilla-ish version of the weapon? (otherwise I couldn't find anything in the code that would explain non-functional autoaim)

I'm sure.

When you say that it autoaims only "in some cases", do the cases have anything in common? May they be dependant on the type of actor that you're trying to target, and with some actor types it works while not with others?

I don't think so.

Also, I don't know if this is true, but if it's true that only the heads of Brutal Doom's monsters can be autoaimed at (meaning that the heads don't have the NOTAUTOAIMED flag, while the bodies have the flag), and assuming the heads have a thinner radius and shorter height that the monster's body, then you'd naturally have it harder to aim horizontally precisely at the head (or precisely 5.6° to the left or to the right of it), and if you don't succeed to aim horizontally precisely at it, the autoaim wouldn't detect the target to aim at.

The fact is this: autoaim works with the plasma gun in the same cases it doesn't work with the rocket launcher.

Share this post


Link to post
Glaice said:

But why would you want it? Wouldn't it aim at chunks of gore on the ground as well?

If I set "Smart autoaim" option to "only monsters", will it stop aiming at corpses and gibs?

Share this post


Link to post

Unless Brutal Doom defines +ISMONSTER flag on non-monster shootable objects, it should work.

http://zdoom.org/wiki/Autoaim said:
The behavior of autoaim can be changed from the gameplay options menu with the "Smart autoaim" option. If it is off, autoaim will always target the nearest SHOOTABLE thing. If it is on, it will try to avoid shooting at allies and non-monster things. Setting it to "never friends" will prevent it altogether from aiming at friends, and setting it to "only monsters" will prevent it from aiming at anything else than a hostile monster.

http://zdoom.org/wiki/CVARs:Configuration said:
sv_smartaim (integer)
Default: 0
If enabled, the game will attempt to aim only at hostile monsters when autoaiming, even if there are shootable decorations or friendly actors closer to the player. The following values are available:
1 - Target monsters before shootables.
2 - Same as 1, but never target friendly monsters.
3 - Target monsters only.

Share this post


Link to post

Maybe this isn't such a good idea, since shooting items could be required in rare cases.
Setting "Smart autoaim" to "on" sounds like a better idea.

Share this post


Link to post
Mike800 said:

The only issue I'm having so far is with the rocket launcher which usually can't hit targets in different elevations than myself. Is it fixable?

To be more accurate, the rocket launcher does autoaim, but usually only after a few shots.

Share this post


Link to post

Autoaim is not your friend. Let's say there is a monster behind a barrier, but you can see its head and shoulders. You shoot at its head, but autoaim causes your shot to aim for its feet, so your shot hits the barrier. With autoaim off, you shoot at the monster's head and you hit the monster's head. It is even worse if you are shooting a rocket launcher and the barrier is close enough that you take splash damage. It is also annoying if you are shooting at a monster and your shot is diverted to another nearby monster. I don't like having control of my weapon taken from me.

Share this post


Link to post

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×