Welcome, Guest
Please Login or Register.    Lost Password?

Multiclient Custom Algorithms
(0 viewing) 
Go to bottomPage: 123
TOPIC: Multiclient Custom Algorithms
#48323
Multiclient Custom Algorithms 4 Years, 6 Months ago Karma: 16
Hey Slav,

Would you be willing to explain how multiclient functionality works? I'm working on a bot that requires very little activity on the part of the bot, and it would be a much smaller resource drain on my host to be able to run multiples inside a single VM and have them rotate between one another.

As I understand it, when a return value has "+" in front of it, that means it's a priority function and that client should not give control to the next client. Otherwise, I'm not sure how you manage the flow between multiple clients in the algorithm itself. My ultimate goal is to have each client log in, and then each one take a turn running through a loop that only takes a couple seconds before ceding control to the next client.

I would be grateful for your help! Thanks
AbbadonDespoiler
Expert Boarder
Posts: 375
graphgraph
User Offline Click here to see the profile of this user
The administrator has disabled public write access.
 
#48348
Re: Multiclient Custom Algorithms 4 Years, 6 Months ago Karma: 779
There is a special function "Barrier" to collect all clients in the same position in algorithm and exit together. This may take time to execute algorithms normally. You may switch label of algorithm from another client (while sitting in barrier and waiting others). Use "SwitchLabel" function. '+' is used when fast functions are executed in a row to speed up whole process
Slav2
Admin
Posts: 16111
graph
User Offline Click here to see the profile of this user
The administrator has disabled public write access.
Send logs to my mail - with subject 'log files' to pass spam filter.
How to record logs in knowledge base
 
#48391
Re: Multiclient Custom Algorithms 4 Years, 6 Months ago Karma: 16
Hm, ok, so could you give an example of what that would look like, or show me where that's implemented in the Miner already?

If I'm understanding correctly, SwitchLabel is what lets you transition from one client to the next? I'm not sure I understand the purpose of the label switching.
AbbadonDespoiler
Expert Boarder
Posts: 375
graphgraph
User Offline Click here to see the profile of this user
The administrator has disabled public write access.
 
#48397
Re: Multiclient Custom Algorithms 4 Years, 6 Months ago Karma: 779
SwitchLabel replaces the next algorithm label in different client to predefined label. Client will ignore its own algorithm setting:

If you need to assign label 200 as next in client 2 and call this from client 1 you should write:

Code:

00:  SwitchLabel(2;false;200)[10]
10:  "something to continue"

Slav2
Admin
Posts: 16111
graph
User Offline Click here to see the profile of this user
The administrator has disabled public write access.
Send logs to my mail - with subject 'log files' to pass spam filter.
How to record logs in knowledge base
 
#48400
Re: Multiclient Custom Algorithms 4 Years, 6 Months ago Karma: 16
Slav2 wrote:
SwitchLabel replaces the next algorithm label in different client to predefined label. Client will ignore its own algorithm setting:

If you need to assign label 200 as next in client 2 and call this from client 1 you should write:

Code:

00:  SwitchLabel(2;false;200)[10]
10:  "something to continue"



Ok, just so I understand the sequence of events: this will run Label 200 in Client 2, then come back and do Label 10 in Client 1? If I wanted Client 2 to execute several functions and THEN return to Client 1, how would I achieve that? Here's my sample algorithm:

;SampleBot
00: Goto()[10+]
01: StopClient(;true;true)[01]
02: CloseEveWindow()[01;01]
03: CloseEveWindow()[01;05]
05: StartEveAndLogin(true)[01;20;20;05]
10: StartEveAndLogin(true)[01;20;20;10]
20: StationSpaceCheck()[90;90;45;40+;90]
35: WarpingToStation()[90;45;35;40;38]
38: Unstuck()[90;38;03+;35]
40: DockingToStation(;[90;35+;40;40;45]
45: UnloadCargo()[90+;40;02+;46]
46: AFKLogOffTimers()[90+;46c+;10;47;47]
46c: Sleep(60000)[46c;46]
47: AutoHotkey(Script.ahk;30;False;False;EPVars.ini|EPSection|EPResult)[47a;46;48;48;48]
47a: AutoHotkey(Script.ahk;30;False;False;EPVars.ini|EPSection|EPResult)[03;46;48;48;48]
48: CheckLocal(;[03+;46+;46+]
90: ErrorHandler()[03+;03+;03+]
CL: Goto()[03]
EC: Goto()[10]
FM: Goto()[35+]
LO: Goto()[03]
WO: Goto()[35+]

What I would want this bot to do is to start up, run to 48 (CheckLocal) then pass it off to Client 2, run that up through 48, repeat for the total number of clients (3-5 total), then pass back to Client 1 at 46 so that it checks logoff timers and then loops through 47/47a and then to 48 (ideally), pass off to the next client at 46 to run through 48, pass off to next client to run 46 through 48, back to Client 1, repeat etc. Where would the SwitchLabel and Barrier be? Will I need an Ini file to keep track of current client number?
AbbadonDespoiler
Expert Boarder
Posts: 375
graphgraph
User Offline Click here to see the profile of this user
The administrator has disabled public write access.
 
#48405
Re: Multiclient Custom Algorithms 4 Years, 6 Months ago Karma: 779
If you want to pass local state you may enable "Local Check Grouping". One bot may be a scout in adjacent system.

Slav2
Admin
Posts: 16111
graph
User Offline Click here to see the profile of this user
The administrator has disabled public write access.
Send logs to my mail - with subject 'log files' to pass spam filter.
How to record logs in knowledge base
 
Go to topPage: 123
Moderators: Slav2
© Macro Laboratory 2022
All rights reserved!
Design by Ivan Kozyrin