Jump to content

Getting around macros


ItHadToComeToThis
 Share

You are about to reply to a thread that has been inactive for 1552 days.

Please take a moment to consider if this thread is worth bumping.

Recommended Posts

So, I’m my quest to create the best or most annoying mmo hud ever. I want to add elements of skill to my game. What I’m thinking is having attacks activated by key combinations instead of just a single gesture or click. Trying to do something different. However, if I use gestures then I feel that the players could just use a macro and there are not exactly many keys I can use via LSL. Anyone got any creative ideas they could throw at me for a neat way to go about this?. I was thinking about a combination of keys taken in LSL and gestures as one idea. But asking here in case anyone can help improve on that or suggest something better.

Link to comment
Share on other sites

I can see one possible design which would work for combos and couldn't be done as gestures - press and hold mouse, hit control combo in the right order, release mouse. A combo always begins as CONTROL_LBUTTON(level==1, edge==1), consists of one or more CONTROL_*(level==1, edge==1) & CONTROL_LBUTTON(level ==1 edge==0), ends and is executed with CONTROL_LBUTTON(level==0, edge==1)

However, there is probably no design that will be invulnerable to macros, only to gestures, because macros can happen outside the viewer and outside the scripts ability to dostinguish from ordinary control inputs. I have several programmable devices here, from the X52 I play flight sims with to the USB footswitches I use when performing to control my streaming software and (when performing in SL) activate lighting or anim cues without me taking my hands off my guitar to stab at the keyboard. ALL of them can have a sequence of mouseButtonDown,keystroke1,keystroke2,keystroke3 ... keystrokeN,mouseButtonUp assigned to a single control, or any sequence of key-down or key-up events in any arbitrary order. If a user can make any input, these devices can macro it and they are not all high-end hardware - less than 25 quid buys you a bank of three programmable USB footswitches, for example.

Link to comment
Share on other sites

I have programmable keys on my keyboard and on my mouse and the joystick has quite a couple of programmable keys too - so I think you are wasting your time if you think you can make anything macro proof.

I forgot - I have software that can play macros triggered by any key. Plenty of possibilities.

Edited by Nova Convair
  • Like 1
Link to comment
Share on other sites

Would it help to introduce mandatory pauses between clicks, a kind of imposed rhythm of inputs the script could detect in the timing of leading- and trailing-edge control() events? (I can't be bothered with macro software, so for all I know they may all make it easy to play back such rhythms.)

Another option might be some dynamic interaction with the HUD surface itself, something that changes with each round (or whenever) that must be read from the HUD texture presentation.

Link to comment
Share on other sites

Sorry for the delay. Thank you for the responses. Some very helpful suggestions 😁
 

The basic idea was this. Numbers 1-9 each represented a sign. Press 5 of those signs in a specific order and you cast a spell. I like your idea @Qie Niangao of having something change that has to be interacted with on the hud. And @Da5id Weatherwax your idea is neat also. Perhaps I could combine some of these ideas and have a rhythmical Input combined with something on the hud or a certain key combination. This system I am making is real time combat based and I really want an element of skill included in the combat. Rather than just activating a single gesture and aiming your mouse and firing the spell. So this idea for me would be...you are running around using melee, when you think you have a spare second press 561234 and your character will do a spell animation and then say a fireball shoots out in front of them. Unless anyone has any ideas that might work better to make the spell casting more skill based than press and fire?.

Link to comment
Share on other sites

1 hour ago, ItHadToComeToThis said:

...The basic idea was this. Numbers 1-9 each represented a sign. Press 5 of those signs in a specific order and you cast a spell....

How are you going to detect numbers 1-9? There are no CONTROL_* constants for these keys and they do not raise a control() event for your script.

You have 9 controls a script can detect - 10 if you count the fact that the mouse button flags a different control depending on whether you're in mouselook or not. Forward, back, left, right, rotate-left, rotate-right, up and down (however the viewer has these mapped) plus the two flags for the left mouse button. You have no raw access to keystrokes.

Now, personally, I would LOVE for scripts to be able to receive raw keystrokes or other control inputs such as stick axis values. The ideas I've had over the years that I could build if only this were possible are too many to count. It isn't possible, those ideas were discarded for this very reason.

Link to comment
Share on other sites

On 3/15/2020 at 12:22 PM, Nova Convair said:

I forgot - I have software that can play macros triggered by any key. Plenty of possibilities.

I use voice attack software in one game I play, that can do it simply by vox commands. Although it would seem a little "anime" to be shouting "FIREBALL!" or whatever at my computer to cast spells :)

Link to comment
Share on other sites

1 hour ago, Da5id Weatherwax said:

How are you going to detect numbers 1-9? There are no CONTROL_* constants for these keys and they do not raise a control() event for your script.

You have 9 controls a script can detect - 10 if you count the fact that the mouse button flags a different control depending on whether you're in mouselook or not. Forward, back, left, right, rotate-left, rotate-right, up and down (however the viewer has these mapped) plus the two flags for the left mouse button. You have no raw access to keystrokes.

Now, personally, I would LOVE for scripts to be able to receive raw keystrokes or other control inputs such as stick axis values. The ideas I've had over the years that I could build if only this were possible are too many to count. It isn't possible, those ideas were discarded for this very reason.

As originally explained, this can be bypassed with gestures. You have gestures that are triggered with the number keys, which send a chat message, which is heard by the script.

This is a common technique for combat. Problem with this is you can't know whether they were manually pressed or if a macro (programmable keys or gestures that say the exact sequence) was used. I've no clue how I would get around that myself, besides using left/right/fwd/back sequences and determining the avatar's aim direction via their camera.

Edited by Wulfie Reanimator
Link to comment
Share on other sites

You are about to reply to a thread that has been inactive for 1552 days.

Please take a moment to consider if this thread is worth bumping.

Please sign in to comment

You will be able to leave a comment after signing in



Sign In Now
 Share

×
×
  • Create New...