Difference between revisions of "HPL3/Scripting/Scripting Guide/The OnAction method"

From Frictional Wiki
Jump to navigation Jump to search
Line 33: Line 33:
  
 
Of course, we can do much more complicated things with this method, we can test sequences, events, and pretty much everything concerning our map script.
 
Of course, we can do much more complicated things with this method, we can test sequences, events, and pretty much everything concerning our map script.
 
==See Also==
 
*[[HPL3/SOMA/Scripting/Input Types|Input Types]]
 
*[[HPL3/SOMA/Scripting/iKeyboard|iKeyboard]]
 
  
 
{{NavBar|HPL3/Scripting/Helper Files|Helper Files|HPL3/Scripting/HPL3 Scripting Guide|HPL3 Scripting Guide|HPL3/Scripting/The Update method|The Update method}}
 
{{NavBar|HPL3/Scripting/Helper Files|Helper Files|HPL3/Scripting/HPL3 Scripting Guide|HPL3 Scripting Guide|HPL3/Scripting/The Update method|The Update method}}

Revision as of 19:42, 12 August 2020


In the next two chapters we will look over useful functions that exist in every map script file.

Workflow

This method gets called when a key on the keyboard is pressed. It detects the keyboard input, and it is mostly used for testing parts of our script. It can be very useful to us when we want to test something quickly. Below is the default code in a map script file for OnAction:

 1 ////////////////////////////
 2 // To get when player makes input (mostly used for debug)
 3 void OnAction(int alAction, bool abPressed)
 4 {
 5 	if (abPressed == false)
 6 		return;
 7 
 8 	if (alAction == eAction_Test1)
 9 	{
10 			
11 	}
12 }

As you can see, the function has two arguments: alAction and abPressed.

alAction is an integer which represents the key code of the current key has been pressed, and abPressed is a boolean which checks if the key is currently pressed. After that, we check if the current button is pressed or not, because we want to execute our code only when our button is pressed, so if the key isn’t pressed, we stop the execution of this method, which is achieved by typing return.

And now we have a condition that checks which key we have pressed. We can search for keys by typing eAction_ and we will see a list of all of the available keys, which is pretty much every key on the keyboard. eAction_Test0 to eAction_Test9 are the number keys on the keyboard, so if we press 0 on our keyboard, the code inside the eAction_Test0 condition will be executed.

Let’s see an example.

I have a map with a boxlight. When I press 0, the boxlight will turn red, and when I press 1, the boxlight will turn blue.

  • shows an example*

Of course, we can do much more complicated things with this method, we can test sequences, events, and pretty much everything concerning our map script.