 |
New verge.exe, new event triggers (onStep, onEntityActivation)
|
 |
|
|
 |
 |
posts:
3259
Registered:
1997-01-01
|
There are now four new read/write string variables accessible to verge3 via vc:
trigger.onStep
trigger.afterStep
trigger.beforeEntityScript
trigger.afterEntityScript
These are global callfunction triggers. If they are blank, or if they are set to a string that isn't a vc function name, nothing happens. But if they are set to a vc function name, awesome magic happens!
If trigger.onStep is set to a vc function name, that function will be called everytime the player entity crosses a zone activation border, regardless of if a zone is about to be activated. If a zone will be activated, this function occurs right before that zone's script goes off.
If trigger.afterStep is set to a vc function name, that function will be called everytime the player entity crosses a zone activation border, regardless of if a zone is about to be activated. If a zone was activated, this function occurs right after that zone's script goes off.
Both trigger.onStep and trigger.afterStep's assigned vc functions will have access to a proper event.tx, event.ty, regardless if a zone gets activated. Note that this is a change in behavior, as event.tx and event.ty are now updated at a new point. If this breaks anyone's day, please let me know.
These two triggers are good for things like dealing with poison and tintinabar-style effects and step counters, which are more dependant on the act of walking than on any specific zone. I was brought to implement this specifically because there was no good way to deal with decrementing the "steps to battle" counter for Sully, and this seemed like an idea whose time had come.
If trigger.beforeEntityScript is set to a vc function name, that function will be called before any entity's onActivate script is called.
If trigger.afterEntityScript is set to a vc function name, that function will be called after any entity's onActivate script is called.
Both trigger.beforeEntityScript and trigger.afterEntityScript's assigned vc functions will have the proper event.tx, event.ty, and event.entity values available to them, just like the entity's onActivate script does.
These two triggers are great for handling universal pre- and post-conditions for entity onActivate events. Specifically, in Sully it was getting tiresome to have to tell the game to forbid the menu as the first line of every entity's onActivate script, and it was getting tiresome to tell the game to re-allow menus afterwards. If you forgot any of these, you basically created a gameplay bug! Awesome, eh?
Forthcoming, but not implemented yet, are similar variables for before and after any zone has been adjacently activated. I'm also looking into making a new kind of zone activation which would activate when you push against it. Imagine a closed door opening when your player pushes into it. I am eager to listen to any suggestions for both new callback triggers, and new script activation conditions.
Please, share your thoughts!
|
 |
Ben McGraw's Egometry.com - Where you can find weekly doses of SotS, and all-you-can-eat me. Also,Kildorf is a smelly joke of a man, barely worth being my arch-nemesis.
|  | | |  |  |
|
|
|
|
|
 |
Pre/post processing for free in Lua
|
 |
|
|
 |
 |
posts:
9
Registered:
2007-08-29
|
...in Sully it was getting tiresome to have to tell the game to forbid the menu as the first line of every entity's onActivate script, and it was getting tiresome to tell the game to re-allow menus afterwards.
With Lua you can automate initialization/finalization calls by coding a function that generates functions like so:
function fDM(func)
-- returns a newly created function that
-- does initialization/finalization and calls func
f = function ()
disable_menu()
if func then
func()
end
enable_menu()
end
return f
end
And then your onActivate function would be defined like so:
--pass your custom function in and it returns the new function made with it
dude_activate = fDM(
function () dude.say("hi") end
)
So dude_activate will equate to:
function ()
disable_menu()
dude.say("hi")
enable_menu()
end
Functions that take functions as parameters are called higher-order functions (HOFs).
I just had to mention this. The new triggers will still definitely help things, though, so, kudos! :)
|
 |
- What's bigger then big? Bigg. Ok, well, technically, bigger.
|  | | |  |  |
|
|
|
|
|
 |
New verge.exe, new event triggers (onStep, onEntityActivation)
|
 |
|
|
 |
 |
posts:
130
Registered:
2005-04-17
|
Quote: Originally posted by mcgruePlease, share your thoughts!
I downloaded the latest Sully release, and I had a little problem.
Then saw this latest Verge3 release. And I still have this little problem.

Has anyone blew the code related to graphic display?
|
|
|
|
|
|
|
 |
New verge.exe, new event triggers (onStep, onEntityActivation)
|
 |
|
|
 |
 |
|
|
 |
New verge.exe, new event triggers (onStep, onEntityActivation)
|
 |
|
|
 |
 |
|
|
 |
New verge.exe, new event triggers (onStep, onEntityActivation)
|
 |
|
|
 |
 |
|
|
 |
New verge.exe, new event triggers (onStep, onEntityActivation)
|
 |
|
|
 |
 |
posts:
130
Registered:
2005-04-17
|
Quote: Originally posted by Kildorf
Grue, that's clearly a WinXP screenshot. What?
It is XP. that's why I wondered because Im aware that you are maintaining the Mac release and Im being forwarded to you...
The bug, btw, is the setting of 640x480 window while maintaining the 320x240 primary buffer size.
|
|
|
|
|
|
|
 |
New verge.exe, new event triggers (onStep, onEntityActivation)
|
 |
|
|
 |
 |
|
|
 |
New verge.exe, new event triggers (onStep, onEntityActivation)
|
 |
|
|
 |
 |
|
|
 |
New verge.exe, new event triggers (onStep, onEntityActivation)
|
 |
|
|
 |
 |
|
|
|
|