Jump to content

Recommended Posts

Posted

Moved to appropriate forum.

 

I don't really recall any such mod by the name, but I am pretty sure I've heard of one.


Got it, I knew I remembered Duke Patrick's Archery And Heavy Weapons Combat mod.

It adds a realistic bow sway. But of course that's a whole game changing mod for just that little feature...

Posted

Well, I couldn't find anything on nexus so I decided to see if I could put together a simple mod for this. In my script, I'm modifying the f1PArrowTiltUpAngle, f3PArrowTiltUpAngle, etc. ini values with a random modifier depending on marksman skill level. This will adjust the vertical aim. Does anyone know the ini tweaks for adjusting the horizontal aim??

 

Also, I'm getting a CTD after I shoot the bow. My script is below, does anyone know what I'm doing wrong?

 

 

Scriptname AimingTakesPractice extends ReferenceAlias

 

Import Math

Import Utility

 

Actor Property PlayerRef Auto

 

;setup

Float maxskew = 0.5

 

string[] aimparameters

float[] defaultaims

 

;initialize

Event OnInit()

debug.messagebox("initiallizing")

aimparameters = new string[4]

aimparameters[0] = "f1PArrowTiltUpAngle:Combat"

aimparameters[1] = "f3PArrowTiltUpAngle:Combat"

aimparameters[2] = "f1PBoltTiltUpAngle:Combat"

aimparameters[3] = "f3PBoltTiltUpAngle:Combat"

defaultaims = new float[4]

 

Int iElement = defaultaims.Length

While iElement

iElement -=1

defaultaims[iElement] = GetINIFloat(aimparameters[iElement])

EndWhile

 

iElement = aimparameters.Length

While iElement

iElement -= 1

modifyaim(aimparameters[iElement], defaultaims[iElement])

EndWhile

EndEvent

 

 

;update on every bowshot

Event OnPlayerBowShot(Weapon akWeapon, Ammo akAmmo, float afPower, bool abSunGazing)

debug.messagebox("bow is fired")

Int iElement = aimparameters.Length

While iElement

iElement -= 1

modifyaim(aimparameters[iElement], defaultaims[iElement])

EndWhile

endEvent

 

 

;performs math to randomize aim according to Marksman skill level

Function modifyaim(string aimparameter, float defaultaim)

Float archerylvl = PlayerRef.GetActorValue("Marksman")

Float aimmodifier = maxskew * RandomFloat(-(1 - (archerylvl/100)), (1 - (archerylvl/100)))

Float newaim = defaultaim + aimmodifier

SetINIFloat(aimparameter, newaim)

EndFunction

  • 2 weeks later...
Posted

Sorry, I can't help with the script, but I can suggest a couple things to make aiming harder and more skill based:

 

1) iHUD (immersive HUD by gopher): Use this mod to turn off the archery crosshair.

2) LIHUD (less intrusive HUD): Use this mod to move the sneak meter to the bottom of the screen, otherwise when you sneak the meter itself helps you aim.

 

Another little mod I've enjoyed is "Guess the Distance - Perceptive Scouting". It allows you to identify NPCs and enemies from afar so that you have a basic idea of their hostility and level etc. I use it all the time when I see a group of people walking and I can't tell whether they're bandits and friendlies. You can also use the Telescope mod (by KettleWitch) to enhance the distance you can use your power. Since the remote NPC has to be on your crosshairs, I've used iHUD to turn on the crosshair when I have a melee weapon drawn, so I just draw my sword or dagger and then use my perception to see who the NPC is.

 

I also use "Training Dummies and Targets - Falskaar Edition" to allow my low level characters to get some early experience with melee and archery weapons.

Posted

The Requiem Roleplaying Overhaul affects archery at low levels. Arrows fall short and their penetration against armour is poor until perks are invested. That might be what you are looking for? You could either use Requiem as is or study it to see how the Archery changes were done.

Posted

You could also look at the following settings. I haven't experimented with them, but I suspect they might only apply to NPCs:

fCombatRangedAimVariance

fCombatAimProjectileRandomOffset

 

I can't find anything that looks wrong with your script. Does the messagebox appear before the CTD? You may want to use "debug.notification" instead. I don't think it will change the CTD issue, but I find it easier for testing scripts like this, as it doesn't forcibly interrupt the game action.

 

Unfortunately, the CTD may be a result of the script trying to alter the course of a projectile while that projectile is in flight. It may not be something the game it capable of handling.

 

I hope you figure it out. This is a feature I would like to see. If I think of anything that could help, I'll let you know.

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
×
×
  • Create New...

Important Information

By using this site, you agree to our Guidelines, Privacy Policy, and Terms of Use.