English French German Spanish Russian
Key-Combos (e.g: Allow to make move-keys context-sensitive to overlap with hotkey-bar keys, etc) - IDEAS FOR RYZOM - Ryzom Community ForumHomeGuest


Is this idea good?
Yes, I see the benefit! 1 (1)
No, this is not needed at all! 1
Yes, but please improve the description. 0
No, I don't understand. 3
Add images, and it's my favourite thread! 0
Other 0
Abstain 2

#1 [en] 

Make it possible that one key on the keyboard triggers multiple actions (just like macros),
but only trigger each action if the action's context-requirement is met.

Some actions need quick hotkeys such as <skill1-hotkey> or <skill2-hotkey>.

– But even then, it would be nice to have 1 key switching between 50m skills and 25m skills and another switching between offensive and defensive - 2 rather than 4 keys for different hotkey bars.

– But other actions are peaceful and take a long time to cast or are used very rarely (deposit tracking, sit/stand). These actions could overlap with the move keys.

For this, we need "contexts" - lists which contain a set of "key=action" pairs. It can look different from the view of an user and a developer (described below).

The user – Selects areas of his keyboard:
1– Some areas are for common quick-actions such as left/right turn/strafe + moving.
2– Other areas are context sensitive.

Side-note: I would like hotkey bars which look like a keyboard near hotkeys to access actions.

Context-sensitive areas:
1– Some areas are for toggling contexts (A or B) similar to hotkey-bars, but for all actions, not just magic/fighting.
2– The third type of context-key activates a context only for the next key pressed. This key can then itself activate another context (temporarily), prolong the current context by another action or issue an action (or both). Any key not belonging to the combo may cancel it (or the key which triggered it).

Maybe not all users understand this complex system from the very beginning, but some will read into it because we understand the benefit from such a system.

The developer sees a config file like this:

default = move,switch
persistent = move,switch
temporary = playeractions #until the next key is pressed
d = action : player / turn_left
g = action : player / turn_right
f = action : player / move_forward
s = action : player / move_backward
q = context : +playeractions -move ~temporary
s = action : hotkey_bar / 08
d = action : hotkey_bar / 09
f = action : hotkey_bar / 18
g = action : hotkey_bar / 19

And he sees following code to translate key-codes into action-links (pretty much standard):

variable actions : array[ number_hotkeys ][ list ] = { hotkeyN -> list{ action, … }, … } // or alternatively a buffered linked-list for actions.
function parse_config(file){ … }
function handle_hotkey(number){ … }
function handle_action(type, index, context){ if(allContexts[context] = ACTIVE) then handle_action(type, index) }
function handle_action(type, index){ … }

Edited 2 times | Last edited by Jizzy (4 years ago)

#2 [en] 

I am totally confused by this description and have no idea what is meant by "context" in this discussion.

We already have 10 action bars, we can easily program a key to change action bars rather than using the moderately clumsy crtl+<num> or the less clumsy scroll key.

Why do you want/desire the move keys to serve double duty? That's only four keys out of 26 (plus characters and the numbers).


Remembering Tyneetryk
Phaedreas Tears - 15 years old and first(*) of true neutral guilds in Atys.
(*) This statement is contested, but we are certainly the longest lasting.
<clowns | me & you | jokers>

#3 [en] 

In addition, you have the <shift>, <ctrl>, and <alt> characters for a total of, approximately, 400 (yes four hundred) combinations.


I need me a new tag line on my messages!

#4 [en] 

Because with 4 fingers, you can access 4+4+4 keys +6 around easily. The thumb can access ALT+space comfortably only. This totals in _just 20_ keys available.
That is assuming the keys SDFG for moving instead of WASD.
EDIT: I mean comfortable access only. The other hand is reserved for the mouse.

If you access any other key and then quickly one of these 20, you may hit a different key which is as annoying as the CAPS_LOCK key.

Instead of ctrl+key or shift+key, I prefer key1->key2 because that works everywhere on the keyboard, not just near WASD.

And if my move-keys serve a double-duty for "backward / A+sit", or "acid / long-range acid" it is easier to remember.
Currently, A+Acid for a "long-range acid" spell would switch hotkey-bars and not toggle them back after using the spell (macros aren't triggered by used actions :(, so you can'T do it with macros BTW: similarly as you can't restore a previous target…).

Edited 2 times | Last edited by Jizzy (4 years ago)

#5 [en] 

So, using SDFG for moving (insead of WASD or the arrow keys or the mouse, you can still (as you note) access the four keys above and the four keys below and the three to either side. That's a lot of keys. Why do you think you will need three times that many on a fast basis? As far as I can tell, this proposal is about accessing actions rapidly. Ryzom just doesn't need that kind of twitch factor.

I can easily access keys 1 - 6 on the number line. I use the mouse to move, space to target when I'm not using a macro, and I don't even feel the need to program QWERTY to correspond to SHIFT+<num>

If you manage to program this for yourself, more power to you, but I don't see it as being at all worth the limited time of the official devs.

And I still don't understand what you mean by "context" in your initial description.

-- my two bittts.

Last edited by Bitttymacod (4 years ago)


Remembering Tyneetryk
Phaedreas Tears - 15 years old and first(*) of true neutral guilds in Atys.
(*) This statement is contested, but we are certainly the longest lasting.
<clowns | me & you | jokers>

#6 [en] 

… First, thanks for the feedback, Bittymacod.

If you have the context "playeraction", D triggers a different action (hotkey-bar #9) as if you would have the default contetxt "move" where it would trigger a "turn-left" action.

Some words are context-sensitive. If christians speak of god, they mean the "almighty all-knowing god". But if an atheist speaks of god, he means more likely "what lived before and will live after me, what has the power to control humanity as a whole, that is referenced by the word god".
So I took that word for the expression "context-sensitive hotkeys" – hotkeys that contain multiple meanings based on "the context", which is a precursor, a precursor is what came before, what gives some meaning to the expression after.

… now, to address the question of need:

I already have programmed this for my own HTML5-game, but I struggle to hook it into Linux, below all user applications.

Apart from that, I think it's an illegal macro according to the "terms of use".

… the difference it makes, I better explain with an example:

I want Y for:
1. A hotkey for spells
2. The quick chat for "Yes".
3. The quick chat for "Yeah!"
4. The quick chat for "Jihi" because J and H (for hi alone) are on the other side of my keyboard.

CRTL, ALT and Shift are hard to recognize, but imagine you could put it all as:
– <just Y> : use spell
– <hotkey: say> + <Y> + <hotkey #1-3> : Jihi, Yes, Yeah

#7 [en] 

So what are the contexts in your example?

Context 1 clearly is "action"

However, contexts 2-4 look to me as if they are all the same -- "conversation".

So what about H?
Context 1 = action > H = a movement key (no idea which one) - makes sense.
Context 2-4 = conversation?

It would seem very strange to me if contexts 1-4 were different things for different keys. I think that may have been why I had a hard time understanding "context."

Context For me --
use action bar 3 = crafting.
Use action bar 8 - high power healing and casting
Use action bar 10 - hitting (including conditionals)
Use action bar 1 Low power healing and zapping (used to preserve hp and sap when high levels are not needed).
Action bar 2 4 5 6 7 -- Digging in the five continents.

I really have no need to switch suddenly from any of these contexts to any other.

In the end, I think we play in drastically different ways, and that's OK.

-- Bittty

P.S. Yes, programming the keys using something other than the built in macros is getting close to violating the ToS. However, if you are still using only yourself to control your toon (even if slightly easier), I don't think you would get nuked. The ToS is against automation. However, I am not a CSR nor do I play one on TV.

Last edited by Bitttymacod (4 years ago)


Remembering Tyneetryk
Phaedreas Tears - 15 years old and first(*) of true neutral guilds in Atys.
(*) This statement is contested, but we are certainly the longest lasting.
<clowns | me & you | jokers>

#8 Multilingual 

This is what I will do and it can be done in Ryzom:

Made a macro for:

Key Y - for casting spell
Ctrl+Y - for saying "Yes"
Key H - for saying "Jijhi"
Key J - for saying "Yeah"
Ctrl+Shift+J - for saying "Yes, Yeah"
Ctrl+Shift+H - for saying "Yes, Hiji"

Key 1
- change bar for long range (bar 3)
- select a spell to cast from 1-20 slots of bar 3
- change to the previous bar (bar 1)

Key 2
- change bar for short range (bar 4)
- select a spell to cast 1-20 slots of bar 4
- change to the previous bar (bar 1)

Using open bar 2:
Key 1
- select the spell to cast (assigned 1-10 slots) for long range
Key 2
- select the spell to cast (assigned 11-20 slots) for short range

Macros Ryzom can make your keyboard to behave the way you wanted. Although it is a pain but all the examples I shown above can be done.

Your Idea is nice. Imagine:
A - turn left
S - backward
D - turn right
E - cast a spell

you want by pressing:
E - cast double spell
A+S+E - cast a long range spell
A+S+D+E -cast a short range spell

It is not implemented in Ryzom but you can use crtl+key, shift+key and crtl+shift+key assigned to a specific action.

Another option also is to use your other hand and use numpad to toggle different action bars and still came up with almost same result you wanted.

made a macro for numpad 1 for Bar 1 - long range
made a macro for numpad 2 for Bar 2 - short range
made a macro for numpad 3 for Bar 3 - double spell
made a macro for E - to cast a spell

by pressing:
numpad 1 - Bar 1 will be available (using the other hand)
E - cast long range

numpad 2 - Bar 2 will be available (using the other hand)
E - cast short range

numpad 3 - Bar 3 will be available (using the other hand)
E - cast long range

note: if you want to go back to your current action bar just include it in your macro

Last edited by Afriel (4 years ago)


Last visit Mon Jan 20 23:15:16 2020 UTC

powered by ryzom-api