Jump to content

Weird delay issue with OnKeyDown, IsKeyPressed2, IsKeyPressed 3


Recommended Posts

Hello,

I'm having a bit of trouble figuring this out : I just want to write a short script that prints a message on screen in-game if I press a key.

The issue is that instead of printing the message when I press the key, there is a weird delay where I have to hold the key for several seconds before it actually prints the message. That delay may varies, spamming the key doesn't work, I have to hold it

Here's the script :

short KeyPress

begin gamemode

set KeyPress to OnKeyDown 56   
   if KeyPress == 1    
     Message "Pressed"
   endif
end

I have tried this with various keybinds, I have tried to use IsKeyPressed2 and IsKeyPressed3 instead, and the message will eventually show up but always with a delay. 

I have also tried to insert a modifier for my character to increase it's speed attribute, and it works, but not before 3 or 4 seconds of holding that key. I can't make any sense out of it

Link to comment
Share on other sites

It sounds like the script might be attached to a quest? Quests, by default, run their GameMode block every 5 seconds (unlike object scripts which run it every frame if I remember correctly). You can change it by declaring the fQuestDelayTime variable in your quest script and setting it to a lower value. More information here: https://cs.uesp.net/wiki/FQuestDelayTime

scriptname ExampleQuestScript

float fQuestDelayTime

begin _GameMode
	if (fQuestDelayTime != 1)
		let fQuestDelayTime := 1 ; run script once a second after this
	endif
	if (IsKeyPressed3 56) ; or another key code
		Message "Key pressed!"
	endif
end

Hopefully that helps a bit!

Link to comment
Share on other sites

  • Recently Browsing   0 members

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