Jump to content

Halfway completed Wall Jumping Script in Oblivion


UncheckedLake

Recommended Posts

Hello all, 

Thought I'd share some progress:
This is a recently made Wall-Jumping prototype script that is in a decent working state. (Video)

https://www.youtube.com/watch?v=WSGHYvxe5gA

Idea going for is basic Foundational-Ability that is reasonable to the relevant Skills/factors, that can eventually be used by qualifying NPCs too once programmed to. (Advanced Wall-Jumps Abils could be integrated in more unique circumstances).


So far it can jump from all 8 angle key-inputs. It scales in utility according to several factors for a natural progression feel.

All the variables/formulas can easily be adjusted.
There's 1 Annoyance I've yet to resolve that isn't a major issue, I just like to simply/cleanly fix it. ( After a few successive jumps it can get stuck into auto-jumping off nothing .. a bug or a feature depending how you look at it .. Resolves if let go of 'controlKey' )

If Collision-Meshes are made more precise, the Wall-Jump would be more precise too.

 

--- Next Focus for this:

= Adjust the angle potential to be more precise, so it looks somewhat like this, and should feel natural:

image.thumb.png.ea891375fb7d3fdc83a57116e3850546.png

( What we have now is only the 180 calculation )

It'd be cool to add animations, although I'm not an animator. The forward motion looks decent already.

 

- Next Features related to this likely to (hopefully) 'knock out' soon:
- Ledge-grabbing

- Ledge horizontal  movement

- Climb Up/Clamber/Drop

- Wall/Crevice-Climbing/Moving (with Depth and Corner Turning if can think it through)

- Wall-Running [would be after these/ a bit different]

-- All those would be contextual to the environment and physical objects, and eventually would need animations for each state to look polished.

 

Any thoughts/feedback?

 

Edited by UncheckedLake
  • Like 1
Link to comment
Share on other sites

If this script is made to run every frame, sometimes you need to ignore keys for some time to not confuse or overflow some queue in Oblivion. This what I did in my flight script: 

if ctrl_disabled == 0
	if IsControlPressed 7 != 0
		if DrakeDragonRaceQuest.col_key == 0
			set DrakeDragonRaceQuest.col_key to 1 ; ignore further presses
			if DrakeDragonRaceQuest.disablecollisions == 0
				set DrakeDragonRaceQuest.disablecollisions to 1
				Message "Flight collisions disabled."
			else
				set DrakeDragonRaceQuest.disablecollisions to 0
				Message "Flight collisions enabled."					
			endif
		endif
	endif
	if IsControlPressed 7 == 0 && DrakeDragonRaceQuest.col_key != 0
		set DrakeDragonRaceQuest.col_key to 0 ; stop ignoring key
	endif
endif

In this part pressing a cast button will set up "no collision" flight mode flag.  However to avoid flipping it in and out and to not spam a message queue, a cast key is further ignored until pressed off again. I used quest variables, because this is a function script and so it will forget all local variables when returns.

  • Like 1
Link to comment
Share on other sites

Thanks, I'll have to try something like that. That would be a good solution.
I'm also not sure if the issue with the auto-jumping on 'nothing' is because of a faulty reading of its main mechanism -- Basically, it's reading 1 , but should say 0.

It's happening right at the new-cycle frame, I think. But yes that solution should work block a faulty reading if it's just happening for that frame. (I was seeing the cycle-reading be 0 correctly, then the new-cycle frame appeared to read 1, allowing air-jumps)
It was also inconsistent -- Most times it would not lock into that glitch, just sometimes. Would like to confirm it's not from the rough-draft logic, causing that false-reading somehow, too.

Appreciate your insight.

Link to comment
Share on other sites

  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...