Still missing some needed files, since it's not in GameDisk form. Luckily I know how to fix that, but just for future reference:
- RPG_RT.exe isn't an issue, that can be copied from any project.
- RPG_RT.ini isn't too bad either, but it contains the game's title and some config settings. Duplicating this is easy as well.
- RPG_RT.lmt is the map tree data file. It sticks the .lmu files together. This can't be copied from a new project, since you'll only have map 0001 available. You'd have to create maps until you have the same number as the .lmu files you need, THEN copy it. Of course, this way makes you lose the map names and music (and something else too, but I can't figure what the hex values stand for yet).
- RPG_RT.ldb is the DATABASE. You know what this is. Pretty much everything within your game is lost without this one. It can be copied, but you're using another game's database - heroes, items, and all. If this wasn't a one-map demo it would have to be included.
-------------------
Anyway, on Map 0010 -
The camera moves fine to the ship (assuming you have a potion to activate one of those events). The camera also pans nicely to the left afterwards when the ship is an autostart event. Of course, the ship doesn't move, but that's because the water is non-passable and events obey passability. I'm not really seeing any issues here besides the non-moving ship...
-------------------
Also, panning the camera a specific amount of spaces based on which event you happen to step on isn't that effiecient. I built you a script that'll take care of the panning for you. It's in psuedocode for easier reading, and can go anywhere where you are panning from more than one location. This should go on the single target event and not the multiple "trigger" events. So in this case, the trigger events would just activate the ship, which handles the centering of the camera and the rest of the event. Easy enough. Once this is in, you can copy/paste it to any map and it'll still work. You can also move the trigger events around freely if you want to redesign the map instead of having to figure out where each event should pan to.
Code:
\\ Variable Setup
<> Variable: Set [0001:Target Rel X], equal to Target's X coordinate
<> Variable: Set [0002:Target Rel Y], equal to Target's Y coordinate
\\ Change this next part if target event is < 10 squares from the right
\\ edge, < 11 squares from the left edge, or < 7 squares from either
\\ vertical.Just subtract whatever's necessary.
\\ If it's on the right edge of the screen, subtract 10 from the x value.
\\ If it's only 3 squares from the bottom, subtract 4 from the y.
\\ You will need to add to the x/y values if you go up and left and the
\\ event falls under these guidelines, I'm sure you can figure it out.
<> Variable: [0001:Target Rel X], subtract 10
<> Variable: [0002:Target Rel Y], subtract 0
\\ Now we check to see what the x/y difference between the hero and
\\ target is.
<> Variable: [0001:Target Rel X], subtract Hero's X coordinate
<> Variable: [0002:Target Rel Y], subtract Hero's Y coordinate
\\ This loop moves east
<> Loop
<> Branch if [0001:Target Rel X] > 0
<> Pan camera right 1 space
<> Variable: [0001:Target Rel X], subtract 1
<>
:Else Handler
<> Break Loop
<>
:End
:End Loop
\\ This loop moves west
<> Loop
<> Branch if [0001:Target Rel X] < 0
<> Pan camera left 1 space
<> Variable: [0001:Target Rel X], add 1
<>
:Else Handler
<> Break Loop
<>
:End
:End Loop
\\ This loop moves south
<> Loop
<> Branch if [0002:Target Rel Y] > 0
<> Pan camera down 1 space
<> Variable: [0002:Target Rel Y], subtract 1
<>
:Else Handler
<> Break Loop
<>
:End
:End Loop
\\ This loop moves north
<> Loop
<> Branch if [0002:Target Rel Y] < 0
<> Pan camera up 1 space
<> Variable: [0002:Target Rel Y], add 1
<>
:Else Handler
<> Break Loop
<>
:End
:End Loop |
That's only 26 commands, not including comments or :Ends/:Elses which are automatic.