What is the proper way to exclude an object on the map from being affected by the color properties of a plane?
|
If a plane master has a color, all objects on that plane will be affected by it, without exception.
The way a plane master works is that all objects on the plane are drawn, and then the master's properties are applied to the resulting composite as if it's a single icon. |
What if they're not on the same plane? Using the lighting example; how can I have some objects on the map appear over the plane master?
|
In response to Ter13
|
|
Wonderful. Thank you very much!
|
Not as a macro, no, but you can disable the right-click menu (either with a client setting or a skin setting) and then any right-clicks will be sent via normal mouse commands.
511 introduces MouseRightButton as a macro name, but it's for use as a mapping target from a gamepad button, not as a macroable thing itself. |
This is kind of a broad question but what is the simplest and most proper way to incorporate diagonal movement?
|
In response to Exentriks Gaming
|
|
Exentriks Gaming wrote:
This is kind of a broad question but what is the simplest and most proper way to incorporate diagonal movement? I don't follow. Diagonal movement is already built into the engine. |
Having it work using a combination of two keys for example: pressing the up and left arrow keys would move diagonally towards the north west.
|
Oh, that's fairly straightforward. Have key-down and key-up macros for each of the arrow keys. The verb they use should be instant. When the verb is called, mark down whether the key is up or down. Then in a loop that runs every tick, move the player based on which keys are down.
|
In response to Exentriks Gaming
|
|
It seems to me like the timing is different.
For the case where you're always facing the mouse, this is the order of things: 1. Move, changing dir based on movement 2. Face the mouse 3. Render the screen (done by the engine) 4. Back to #1 For the other case, #1 and #2 are swapped: 1. Face the mouse 2. Face the movement direction 3. Render 4. Back to #1 The best way to guarantee an order is to put these things in the same loop. It's good to have one main loop, anyway. A common game loop involves just one loop for all objects that need to update every tick: var list/updaters You'd probably then add your players to the updaters list, and give them an Update() proc like this: // (In your "player" type) |
In response to Kaiochao
|
|
Thank you very much, I already had a game loop and got it to work immediately. For future reference, do you have any idea what could be causing this shift in the order?
|
In response to Exentriks Gaming
|
|
When the loop is started by a proc, if that proc was started before movement was handled, then the mouse aiming loop will always happen before movement happens, and vice-versa. If you start the aiming loop at the end of the movement-handling code, it would probably always happen after movement is handled.
It could be that (non-instant) verbs called by the client aren't processed until everything else is, within the same tick. Hence movement is handled before those verbs. Still, it's not really worth worrying about, since the main update loop pattern is more reliable and already gives you full control. |
In response to Kaiochao
|
|
Really appreciate it.
|
I found out last night that in fact no new appearance features from 500 onward are saved. That's something I'll probably change in 511.