Well, I don't have time to translate and test a whole script right now, but I can tell you some of the pieces you'd use. Look at the scripting reference and other samples for details:
1) To create a function that runs when a particular event happens, you'll want to write it like this (it relies on the function name):
Sub Player_OnTileInteraction(TileX, TileY, TileVal, bNew, InteractionIndex)
If .rMap.Name = "Level6" Then
If .PlayerSprite.DY > 3 Then .PlayerSprite.DY = -12
This function executes whenever the player touches a tile, as documented in the player object's OnTileInteraction event in the scripting reference. There are numerous different events for which you can write code, see the scripting reference for details. Some name comes first and then an underscore followed by the event name. Then you have to have a line like this to associate the event with the code using the given name:
HostObj.SinkObjectEvents ProjectObj.GamePlayer, "Player"That associates all the Player events with functions that start with "Player_".
Note that the tile interaction must check the box for raising an event in order for the code to execute for a particular tile interaction. In the example above, the code checks to see if the player is on a map called "Level6" and is falling down faster than 3 pixels per frame, and shoots it upwards if so (when the player triggers the tile interaction defined on that map).
2) To alter an inventory value that would be saved with the game, you'll want to access the player's inventory properties like this:
ProjectObj.GamePlayer.InvQuantityOwned(2) = ProjectObj.GamePlayer.InvQuantityOwned(2) + 1This causes the player's third inventory item (counting from 0) to be incremented by one.
3) This will load the game stored in slot 1.
ProjectObj.LoadRuntime("Slot1")Note that it loads the game and everything associated with it. There are functions to load individual maps, but I'm not clear what approach you want to take. Loading a map will just load the state of the tiles and sprites on that map, it won't make it the actively running map. If you want to switch which map is currently active, I suggest activating a Switch Map function because the code for switching maps is relatively complicated and was not encapsulated into a single function except as a "Special Function" object that could be activated something like this:
4) A message could also be displayed by activating an existing function defined on a map as demonstrated above.