Guild Storage users
#1
Exclamation 
Carefully! Use all the recommendations from the main thread
Swarm of OpenKore bots (Рой ботов)
Got it! I'll review all the posts to ensure I capture the complete configuration.


On our server, there are commands @storage and @gstorage. These commands allow you to access storages anywhere without using NPCs.

@storage - opens the regular storage for the account.
@gstorage - opens the guild storage - this allows organizing a bot swarm using OpenKore, where they continuously exchange loot.

So, one bot can check for consumables and restock as needed, another can use loot for production, and all others, like ants, gather everything dropped for them.

However, there's a significant problem in this scheme: the Guild Storage is a single-user box. When one bot opens it, others start waiting for the transaction to finish, creating competition. To minimize possible delays, I adjust OpenKore parameters. If you see different values for a parameter in different messages, trust the later one!

I've placed macros for the swarm in our code repository:

https://github.com/uaOpenKore/uOKfiles/t...ros/GSuser

Here's an explanation of some macros:
macros/GSuser/macro-gstorage.txt
Code:
automacro _GStorage {
  timeout 2
  inventory "Meat" < 11, "Butterfly Wing" < 2, "Fly Wing" < 3, "Awakening Potion" < 2, "White Potion" < 3, "Blue Potion" < 3
  call {
    do autostorage
   }
 }
This macro ensures inventory restocking of necessary consumables. Example is redundant; only Meat, White Potions, and Blue Potions are necessary. Adapt others as needed.
Code:
automacro _GS_close {
  timeout 60
  call {
   do storage close
  }
 }
This macro is necessary in case OpenKore fails to close the storage! Lag can occur, causing other bots to hang and unable to continue working.

macros/GSuser/macro-allToTown.txt
Code:
automacro _allToTown {
 hp < 33%
 timeout 60
 call {
   do bus all tele 2
   pause 3
   do bus all tele 2
  }
This macro sends all party members back to town when HP is below 33%, protecting characters from losing experience.

macros/GSuser/macro-idied.txt
Code:
#macro work only with busCommand plugin!
automacro _GSidied {
  timeout 60
  status dead
  call {
    do bus all tele 2
   }
 }
This macro, requiring the busCommand plugin, teleports all party members to town if a character dies.

macros/GSuser/macro-aLoot.txt
Code:
automacro autoLoot {
  console /You are now in the game/
  timeout 600
  delay 4
  call {
    do c @autoloot
   }
 }
This macro turns on @autoloot for the bot.

macros/GSuser/example-oneStep.txt
This is a complex macro that forces the bot to step if its coordinates don't change within a specified time. It serves as protection against unexplained glitches.
Code:
doCommand macro _oneStep {
  notOnAction attack, sitAuto, move, mapRoute, follow
#  notInTown 1
  notWhileSitting 1
  whenFollowing 0
  timeout 60
 }
This code should be placed in config.txt, where the conditions for launching the "stepping" macro are described.

Code:
automacro _var_oldStp {
 var oldStp unset
 timeout 500
 call {
  $oldStp = 0
 }
}
This automacro only triggers when OpenKore starts to set the stepping parameter.

Code:
macro _oneStep {
   if ( $oldPos == $.pos ) {
     if ($oldStp == 0 ) {
       do north
       do north
       $oldStp = 1
      }
   if ($oldStp == 1 ) {
       do west
       do west
       $oldStp = 2
      }
   if ($oldStp == 2 ) {
       do south
       do south
       $oldStp = 3
      }
    if ($oldStp == 3 ) {
       do east
       do east
       $oldStp = 0
      }
    }
   $oldPos = $.pos
}
This macro makes the bot walk in a square pattern. If the path is restricted, the bot should exit in some direction.
Reply


Messages In This Thread
Guild Storage users - by Sergio - 10-05-2024, 08:55 PM
RE: Guild Storage users - by Sergio - 10-05-2024, 08:57 PM
RE: Guild Storage users - by Sergio - 10-05-2024, 09:15 PM

Forum Jump:

Vote for me: #1 #2 #3 #4 #5 #6 #7 #8 !