Entertainer Archive

Thread: Stopping recursive macros is not the answer!

Tiaga
Thu Aug 05, 2004 9:45 am
#1

Hey, the subject worked in the corr forum to get people's attention, I figure it should work here too.

But it's not just a gimmick to grab attention. I really mean it. I have also told TH as such, and sent a proposed alternative. Here is a brief overview of what I sent.

Many methods have been suggested or assumed to stop recursion, ranging from the simple to the elaborate. Every single one of them suffers the same flaw. Anything that can be done with a looping macro can be done without a looping macro. I'm willing to prove this. As a result, any attempt to stop macros from looping is doomed to failure, as it will not stop anything.

The only solution to stop unattended game-play while keeping the macro system is something time based. The simplest method, which has been suggested often, is to setup a timer that kills any running commands after a period of inactivity. The biggest problem with this method is that it can be circumvented with a shoe box vibrator or drinky-drinky bird. A more complex solution to deal with that would be limiting the time within which commands from a macro invocation are allowed to run.

That is a very high level overview. What I sent to TH went into a little more detail. Some people may see a few flaws there, but those are really implementation specific and I addressed them in the more detailed overview.

For a straight timer, disabling auto-AFK would make no difference. Programmers have the capibility of creating more than one timer just as easily as they can create one. It doesn't even nevessarily need to be a timer. Unlike auto-AFK, there is no event to trigger. Just that any command after the period of inactivity would be aborted instead of run.

The other method on the surface you may think is flawed because it doesn't stop you from calling another macro and resetting the time. One of the keys of the proposal, however, is that any method of calling another macro would inherit the same time limit. Only starting something directly from the keyboard or mouse would be able to start a fresh timer.

This solves unattended gameplay without touching recursive macros or affecting ATK gameplay in any way. In either case, eventually you would be logged out of the server due to inactivity. Disabling auto-AFK would hasten this, as auto-AFK is seen by the server as activity.



Inside my heart is breaking, my make-up may be flaking
But my smile still stays on
My soul is painted like the wings of butterflies
Fairytales of yesterday will grow but never die
I can fly - my friends
SWG Entertainer.com Fashions by TK

Schardour
Thu Aug 05, 2004 10:32 am
#2

I like this




T
IL KISMETA

lTlSlCl
A life spent making mistakes is not only more honorable,
but more useful than a life spent doing nothing.
XzXzXzXzX
Also...Tayel [PLD]

Ariven
Thu Aug 05, 2004 10:44 am
#3



Tiaga wrote:
Hey, the subject worked in the corr forum to get people's attention, I figure it should work here too.

But it's not just a gimmick to grab attention. I really mean it. I have also told TH as such, and sent a proposed alternative.




Unless they do a major revamp of the macro code removing /macro calls in a macro, running checks on all uses of /ui action ToolbarslotXX or removing the /ui action call, modify the keymap set up to prevent mapping macros to keys, AND changing the alias system they are not going to prevent people from dealing with looping alternatives to do the same exact thing...

Unless they do a serious and complex change of all these systems it wont solve the issue... and if they DO that major change I do not feel confident that they are not going to mess up unrelated or marginally related items. They do not have a good track record of keeping things clean in their changes..

Some of the pitfalls I see with their actions would be them removing the /ui action command entirely instead of doing it right by parsing for it running macros in the toolbar slot. and if they remove it entirely it will have rather extensive effects in a lot of peoples setups.

I use macros to switch weapons in a fight, to handle crafting, to handle buffing, to make sure I dont lose bivoli WHILE buffing, to cure states in combat, to heal in combat, to heal wounds of people in a fast and effective manner.

All of these would be damaged if they stomp willy nilly on the codebase, and I am pretty sure that quite a few others would have the same (or similar) issues.

The change in and of itself as stated.. to remove looping isnt that bad for me, -inconvenient- but not horrible.

But the unintended consequences of their hamhanded methods at fixing what they perceive as a problem scares the you know what out of me.... and THAT is why I am opposed to them just "nerfing looping"


So I like your proposal, its a minor enough change that they will likely only break 2 professions and a 4 crafting schematics instead of the massive issues I expect them to have if they go ahead.
Tiaga
Thu Aug 05, 2004 10:55 am
#4

Did you even read the rest of the post beyond the first line? All these options people are afraid of wouldn't even fix anything. Heck, re-read the subject.

If they just try and stop looping I am going to be there immediately to shoot it down. That means, indirectly, pretty much everything people are afraid of I will do everything I can to prevent happening.

Message Edited by Tiaga on 08-05-2004 10:57 AM



Inside my heart is breaking, my make-up may be flaking
But my smile still stays on
My soul is painted like the wings of butterflies
Fairytales of yesterday will grow but never die
I can fly - my friends
SWG Entertainer.com Fashions by TK

PistolDance
Thu Aug 05, 2004 11:36 am
#5







Tiaga wrote:
Did you even read the rest of the post beyond the first line? All these options people are afraid of wouldn't even fix anything. Heck, re-read the subject.

If they just try and stop looping I am going to be there immediately to shoot it down. That means, indirectly, pretty much everything people are afraid of I will do everything I can to prevent happening.




He did, I dont think you read the rest of his though





Ariven wrote:

So I like your proposal, its a minor enough change that they will likely only break 2 professions and a 4 crafting schematics instead of the massive issues I expect them to have if they go ahead.




Message Edited by PistolDance on 08-05-2004 11:37 AM



Milandra (SI)

" Into the garbage chute fly-boy! "
OckVofad
Thu Aug 05, 2004 11:38 am
#6

Maybe you know the answer to this. What is the goal of this change? Is it to stop or reduce AFK play or is it to eliminate buffbots and spambots?


As you mentioned all this can be achieved without recursive macros. The only way I can see this being achieved is if theymake certaincommands unusable by a macro such as: /say, /shout, or /join.


Doing this would at least get rid of bots with minimal damage to other profs (except squad leader which is going to be revamped soon right/).





Visit OckTech DroidWorks on Bloodfin
Theed, Naboo Waypoint -6015, 3346.
Bestine, Tatooine Waypoint -595, -4220

Admin for Bloodfin Droid Engineer Association

I'd like an HTML tag Please
Tiaga
Thu Aug 05, 2004 1:02 pm
#7

Traffic and suggestions are nice.... When they don't all say pretty much the same thing.

It's like all the people that go to the CM forum to say "nerf CM" in some way or another... Think that's traffic worth keeping?

When this hits test-center I'll be testing it, and reporting any way I find around whatever they do. I can be very creative. If it's a simple recursion check, I've already got a couple presently unused methods of looping ready to try, and will look for more. The results will be posted full disclosure... Meaning I'm going to report on everything I find in public view. Hopefully having a circumvention method before it even hits live will either get them to fix it or pull it, because nobody wants another half-assed attempt.

Depending on what they do in the end, I may push to get previous half-assed attempts pulled.. Such as the alias recursion guard.



Inside my heart is breaking, my make-up may be flaking
But my smile still stays on
My soul is painted like the wings of butterflies
Fairytales of yesterday will grow but never die
I can fly - my friends
SWG Entertainer.com Fashions by TK

PistolDance
Thu Aug 05, 2004 1:18 pm
#8






Tiaga wrote:
When this hits test-center I'll be testing it, and reporting any way I find around whatever they do.




I still cant get on test center, some kind of error



Milandra (SI)

" Into the garbage chute fly-boy! "
hawkbatleader1
Thu Aug 05, 2004 1:25 pm
#9

Tiaga...please forgive me for lumping you in with the other profession correspondants who have been looking for a fix to the afktainer issues...**at all costs**


At least I can see that you understand the ramifications that this macro change could have on EVERYONE...and the fact that it will NOT solve the root problems entertainers have with afk'rs and buff bots.


Something a bit simpler than a high level timer function, that would tie up insane resources, individually tracking (server side) the entire player base, would be a directed strike at the worst 2 locations that afkrs and buff bots reside.


I would like to see an hourly purge of the starport and cantina areas of the 2 major cities...coronet and theed. (bestine might be nice too)


every hour, on the hour, players are given a 3 minute warning. they must clear the area, or be logged.


This will prevent afk macro'rs from surviving for more than one hourly purge...


They could even disguise this as CONTENT! Make it a high level raid by terrorists...who aggro everyone. Make it a planetary bombardment....This will draw in active players, and gameplay, while purging the inactives from the areas that are the most heavily bogged down with afk'rs


It adds content, and fixes the most common locations of afk abuse MUCH more effectively than removing recursive macros.


As a matter of fact...I may do something similar to your technique...spend some time finding workarounds to recursive macros...just to prove the ineffectiveness of that in ending afk'rs.


I already have some ideas, whether they remove /macro calls within macros, or /ui commands...I can still make macros that can outlast my servers up time.






The dev team would never allow any kind of imbalance so that one group of people would "cut swaths" through crowds of people.

Thunderheart - 6/17/04
PistolDance
Thu Aug 05, 2004 1:37 pm
#10






hawkbatleader1 wrote:

I would like to see an hourly purge of the starport and cantina areas of the 2 major cities...coronet and theed. (bestine might be nice too)


every hour, on the hour, players are given a 3 minute warning. they must clear the area, or be logged.


This will prevent afk macro'rs from surviving for more than one hourly purge...




Im sorry, I cant agree with this Not only will the little box disrupt my play (at times it can get very hectice) but a lot of times when I log in I go afk while I get a drink, make food, answer the phone use the restroom.All of which can take over 3 minutes


Just doing any of these at the wrong time could easily take me out of game and make me lose my buffs or have to log in all over again





Milandra (SI)

" Into the garbage chute fly-boy! "
Tiaga
Thu Aug 05, 2004 2:20 pm
#11


hawkbatleader1 wrote:
Something a bit simpler than a high level timer function, that would tie up insane resources, individually tracking (server side) the entire player base, would be a directed strike at the worst 2 locations that afkrs and buff bots reside.




It's not such a huge amount of resources. Each server in the clusters is designed to handle around 200 players from what I've heard. Even my simple old-ish cell phone and the original palm pilot could handle more than 200 reminders without a problem.

The server, as it were, already has a timer to track inactivity. Try sitting there doing nothing with AFK up and no macro running. Eventually you get disconnected. Somewhere between 15 and 30 minutes, I've never bothered to test it.

The timer I'm suggesting is client side.

It's not just entertainers they are going after with this. It is all unattended play. They would need to get all the spawns around Coronet and Tyrena, all the cantinas, the borgle bat caves, anywhere there is a good resource concentration, med centers, PA halls, .... you get the idea. Not really anywhere left to go. If it were just for entertainer there are simpler ways they could do it.

Message Edited by Tiaga on 08-05-2004 02:21 PM



Inside my heart is breaking, my make-up may be flaking
But my smile still stays on
My soul is painted like the wings of butterflies
Fairytales of yesterday will grow but never die
I can fly - my friends
SWG Entertainer.com Fashions by TK

Zilod
Thu Aug 05, 2004 3:48 pm
#12

if we speak of timers or to keep track of macros we must take in account that the number of macro can be really high 6 toolbars + 24 boxes = 144 possibles macros that can call them each other and can have a high number or instructions (time) to execute.


also we must consider that some "recursing" can be needed even by live players, i'm not saying that a player need a looping macro, just that the player can have to use the same macro many many times, eg for artisan crafting macro or cob.


in my opinion best solution is to remove the possibility to macros to call each other so


/macro

/ui toolbar

eventually /allias(i don't know how they works in SWG, but if they are like the MUD ones they have to be removed/changed)


for /macro i don't see big problems, macros can be quite long and comples so if you really don't need to not to play your char (totally or partially) i don't think you need it


/ui is a bit more complex, in my opinion is another thing that is not necessary, anyway it can be changed just to make it works only on items.


uf /ui toolbar is not the same command triggered by the pression of the F key or of the mouse on the box

eg


/ui toolbar -> box activated

F key pressed -> box activated

mouse pression -> box activated


you have just to put a simple if statement and check if you are activating an item or not so

/ui toolbar -> (if object) -> box activated


otherwise if /ui is the same trigger

eg

/ui toolbar -> box activated


F key pressed -> /ui toolbar -> box activated

mouse pression -> /ui toolbar -> box activated


just change the command 'name' to for example /box activation who is not possible to be called by a macro and make a ne /ui toolbar command that activate it if it pass an if statement

eg



/ui toolbar -> (if object) -> /box activation - > box activated
F key pressed -> /box activation -> box activated


mouse pression -> /box activation -> box activated


this way (both ways) you will be still able to call items using the /ui command but not to call other macros so will still be possible to create doc buffing macros, artisan trainer macros or change outfit macros, but not to create macro loops
Tiaga
Thu Aug 05, 2004 4:18 pm
#13

Zilod, your first comment pertains more to stopping recursion than to timers. Timers are a hard and fast limit. It doesn't matter how many macros you start if they all end in 15 minutes. On the other hand, without looping you can just start 100 macros to each do 1 iteration and effectively do the same thing.

The trouble with stopping looping is they have tried that. Aliases have a recursion guard. See how much good it did? I've already thought of 2 ways to loop macros that I've never seen anyone suggest.



Inside my heart is breaking, my make-up may be flaking
But my smile still stays on
My soul is painted like the wings of butterflies
Fairytales of yesterday will grow but never die
I can fly - my friends
SWG Entertainer.com Fashions by TK

Page 1 of 4
Previous Next