SolvedLooping kill command Grimoire 3.8+

Posts 1–10 of 10 · Page 1 of 1
Looping kill command Grimoire 3.8+
Hi folks,

Relatively new botter here. I was wondering if there is a way to create a looping command that will kill a random enemy say, 50 times.

The exact purpose of this is actually for farming gold in icestormarena from frost spirits. I've started implementing "save states" into all my bots by swapping out armor pieces and I want to do this after killing a certain amount of these guys in order to save my gold progress (see: https://twitter.com/Aelious_AE/statu...10658842611719).

Is this possible? Or are there any other possible workarounds? Thanks!
I suppose you could use the if statement "This Player, Gold is greater than" and set up "checkpoints". Not exactly what you're looking for, but it sort of works if I'm understanding you correctly.

Sort of like
Code:
 Kill *
Gold is greater than: 123
Equip: Armour
Kill *
Gold is greater than: 333
Equip: Armour
Gold is greater than: 999
If that isn't what you're looking for, you could spam Kill commands then equip an item, but that looks ugly.

There's probably a way easier way, goodluck.
I dont know if this is efficient but this is my idea
So instead of changing armor every kill (that would take alot of down time because of the delay), just put a milestone of some sort to keep track of the gold you currently have.

e.g.

Code:
Gold is less than: 1000000 (this can be any amount)
Kill *
Gold is greater than: 1000000 (this should be the same with the previous)
Equip: Any Armor
Gold is less than: 2000000 (are you getting the pattern here?)
Kill *
Gold is greater than: 2000000 (same as previous)
Equip: Any Armor
(And so on and so forth)
Max gold is 4mil (i think you know that already) so just cap it at that amount and youre good to go.
what I've found to work so far
I've tried combining what cermayk and Good have reccommended and ended up with a pretty efficient checkpoint system that doesn't rely on quest turn ins.

I utilized the rest command + the automatic exit combat before resting in order to exit combat to switch armors and save. I make checkpoint labels throughout the test so it looks something like this:

Code:
[Checkpoint A]
Kill: *
Gold is less than 1000000
Goto label: Checkpoint A
Rest
Equip: Armour
Equip: Previous Armour (if desired)
[Checkpoint B]
Kill: *
Gold is less than 1500000
Goto label: Checkpoint B
Rest
Equip: Armour
Equip: Previous Armour (if desired)
ETC...
This seems to be pretty efficient but let me know any improvements!

- - - Updated - - -

Quote Originally Posted by despacito456 View Post

I utilized the rest command + the automatic exit combat before resting in order to exit combat
okay this portion is proving quite buggy and I'm not exactly sure why.. using delay commands or changing cells is going to be my next attempt.
Here you go:
Code:
[START]
Greater than : 3999999
Logout
Less than: 3000000
Index Down: 5
Move to: Cell, Pad
Delay 2000
Equip: itemName
Goto: Kill
Less than: 2000000
Index Down: 5
Move to: Cell, Pad
Delay 2000
Equip: itemName
Goto: Kill
Less than: 1000000
Index Down: 4
Move to: Cell, Pad
Delay 2000
Equip: itemName
[KILL]
Cell is not: monstersCell
Move to: Cell, Pad
Monster in room: *
Kill: *
Is In combat
Goto: Kill
Goto: Start
NOTES:
- You must change the bold command to stop or w/e but you only use one command;
- Putting Delay to make sure that u'r out of combat before equipping the item you want;
- You can get rid of the Italic commands since they implemented the new respawn timer.

Index command line if you're wondering:
Code:
      {
        "$type": "Grimoire.Botting.Commands.Misc.CmdIndex, Grimoire",
        "Type": 1,
        "Index": 4
      },
Quote Originally Posted by ROBUT View Post
Here you go:
Code:
[START]
Greater than : 3999999
Logout
Less than: 3000000
Index Down: 5
Move to: Cell, Pad
Delay 2000
Equip: itemName
Goto: Kill
Less than: 2000000
Index Down: 5
Move to: Cell, Pad
Delay 2000
Equip: itemName
Goto: Kill
Less than: 1000000
Index Down: 4
Move to: Cell, Pad
Delay 2000
Equip: itemName
[KILL]
Cell is not: monstersCell
Move to: Cell, Pad
Monster in room: *
Kill: *
Is In combat
Goto: Kill
Goto: Start
NOTES:
- You must change the bold command to stop or w/e but you only use one command;
- Putting Delay to make sure that u'r out of combat before equipping the item you want;
- You can get rid of the Italic commands since they implemented the new respawn timer.

Index command line if you're wondering:
Code:
      {
        "$type": "Grimoire.Botting.Commands.Misc.CmdIndex, Grimoire",
        "Type": 1,
        "Index": 4
      },
To be honest I'm not entirely sure how to implement an index or how the bot even reads that, but I definitely will be trying to incorporate the "is in combat" aspect instead of my weird rest mechanic. If you could explain the index more that would be great, as I noticed it's supposed to be under the Misc tab yet I don't see it anywhere (I'm on 3.8+ if that makes a difference).

Cheers!
Quote Originally Posted by despacito456 View Post
To be honest I'm not entirely sure how to implement an index or how the bot even reads that, but I definitely will be trying to incorporate the "is in combat" aspect instead of my weird rest mechanic. If you could explain the index more that would be great, as I noticed it's supposed to be under the Misc tab yet I don't see it anywhere (I'm on 3.8+ if that makes a difference).

Cheers!
I think the easy fix to this is that you should open your bot in notepad and paste the index code he shared.

Also thank you for this info about indexes. I think i have new uses for that im my personal bots.
Here I wrote it with labels instead of index down cuz this is just something i personally prefer:
Code:
{
  "$type": "Grimoire.Botting.Configuration, Grimoire",
  "Commands": {
    "$type": "System.Collections.Generic.List`1[[Grimoire.Botting.IBotCommand, Grimoire]], mscorlib",
    "$values": [
      {
        "$type": "Grimoire.Botting.Commands.Misc.CmdLabel, Grimoire",
        "Name": "Start"
      },
      {
        "$type": "Grimoire.Botting.Commands.Misc.Statements.CmdGoldLessThan, Grimoire",
        "Tag": "This player",
        "Text": "Gold is less than",
        "Value1": "4000000",
        "Value2": ""
      },
      {
        "$type": "Grimoire.Botting.Commands.Misc.CmdGotoLabel, Grimoire",
        "Label": "3M"
      },
      {
        "$type": "Grimoire.Botting.Commands.Misc.CmdStop, Grimoire"
      },
      {
        "$type": "Grimoire.Botting.Commands.Misc.CmdLabel, Grimoire",
        "Name": "3M"
      },
      {
        "$type": "Grimoire.Botting.Commands.Misc.Statements.CmdGoldLessThan, Grimoire",
        "Tag": "This player",
        "Text": "Gold is less than",
        "Value1": "3000000",
        "Value2": ""
      },
      {
        "$type": "Grimoire.Botting.Commands.Misc.CmdGotoLabel, Grimoire",
        "Label": "2M"
      },
      {
        "$type": "Grimoire.Botting.Commands.Map.CmdMoveToCell, Grimoire",
        "Cell": "Cell",
        "Pad": "Pad"
      },
      {
        "$type": "Grimoire.Botting.Commands.Misc.CmdDelay, Grimoire",
        "Delay": 2000
      },
      {
        "$type": "Grimoire.Botting.Commands.Item.CmdEquip, Grimoire",
        "ItemName": "itemName"
      },
      {
        "$type": "Grimoire.Botting.Commands.Misc.CmdGotoLabel, Grimoire",
        "Label": "Kill"
      },
      {
        "$type": "Grimoire.Botting.Commands.Misc.CmdLabel, Grimoire",
        "Name": "2M"
      },
      {
        "$type": "Grimoire.Botting.Commands.Misc.Statements.CmdGoldLessThan, Grimoire",
        "Tag": "This player",
        "Text": "Gold is less than",
        "Value1": "2000000",
        "Value2": ""
      },
      {
        "$type": "Grimoire.Botting.Commands.Misc.CmdGotoLabel, Grimoire",
        "Label": "1M"
      },
      {
        "$type": "Grimoire.Botting.Commands.Map.CmdMoveToCell, Grimoire",
        "Cell": "Cell",
        "Pad": "Pad"
      },
      {
        "$type": "Grimoire.Botting.Commands.Misc.CmdDelay, Grimoire",
        "Delay": 2000
      },
      {
        "$type": "Grimoire.Botting.Commands.Item.CmdEquip, Grimoire",
        "ItemName": "itemName"
      },
      {
        "$type": "Grimoire.Botting.Commands.Misc.CmdGotoLabel, Grimoire",
        "Label": "Kill"
      },
      {
        "$type": "Grimoire.Botting.Commands.Misc.CmdLabel, Grimoire",
        "Name": "1M"
      },
      {
        "$type": "Grimoire.Botting.Commands.Misc.Statements.CmdGoldLessThan, Grimoire",
        "Tag": "This player",
        "Text": "Gold is less than",
        "Value1": "1000000",
        "Value2": ""
      },
      {
        "$type": "Grimoire.Botting.Commands.Misc.CmdGotoLabel, Grimoire",
        "Label": "Kill"
      },
      {
        "$type": "Grimoire.Botting.Commands.Map.CmdMoveToCell, Grimoire",
        "Cell": "Cell",
        "Pad": "Pad"
      },
      {
        "$type": "Grimoire.Botting.Commands.Misc.CmdDelay, Grimoire",
        "Delay": 2000
      },
      {
        "$type": "Grimoire.Botting.Commands.Item.CmdEquip, Grimoire",
        "ItemName": "itemName"
      },
      {
        "$type": "Grimoire.Botting.Commands.Misc.CmdLabel, Grimoire",
        "Name": "Kill"
      },
      {
        "$type": "Grimoire.Botting.Commands.Misc.Statements.CmdCellIsNot, Grimoire",
        "Tag": "Map",
        "Text": "Cell is not",
        "Value1": "monstersCell",
        "Value2": ""
      },
      {
        "$type": "Grimoire.Botting.Commands.Map.CmdMoveToCell, Grimoire",
        "Cell": "Cell",
        "Pad": "Pad"
      },
      {
        "$type": "Grimoire.Botting.Commands.Misc.Statements.CmdMonsterInRoom, Grimoire",
        "Tag": "Monster",
        "Text": "Is in room",
        "Value1": "*",
        "Value2": ""
      },
      {
        "$type": "Grimoire.Botting.Commands.Combat.CmdKill, Grimoire",
        "Monster": "*"
      },
      {
        "$type": "Grimoire.Botting.Commands.Misc.CmdGotoLabel, Grimoire",
        "Label": "Start"
      }
    ]
  },
  "Skills": {
    "$type": "System.Collections.Generic.List`1[[Grimoire.Game.Data.Skill, Grimoire]], mscorlib",
    "$values": []
  },
  "Quests": {
    "$type": "System.Collections.Generic.List`1[[Grimoire.Game.Data.Quest, Grimoire]], mscorlib",
    "$values": []
  },
  "Author": "Author",
  "Description": "Description",
  "Boosts": {
    "$type": "System.Collections.Generic.List`1[[Grimoire.Game.Data.InventoryItem, Grimoire]], mscorlib",
    "$values": []
  },
  "Drops": {
    "$type": "System.Collections.Generic.List`1[[System.String, mscorlib]], mscorlib",
    "$values": []
  },
  "SkillDelay": 500,
  "ExitCombatBeforeRest": true,
  "ExitCombatBeforeQuest": true,
  "EnablePickup": true,
  "RelogDelay": 5000,
  "BotDelay": 1000,
  "SkipDelayIndexIf": true,
  "WalkSpeed": 8,
  "NotifyUponDrop": {
    "$type": "System.Collections.Generic.List`1[[System.String, mscorlib]], mscorlib",
    "$values": []
  },
  "RestMp": 60,
  "RestHp": 60,
  "RestartUponDeath": true
}
NOTE:
- Make sure to change the stop command at first line
- change Cell, Pad to the cells you need to change to before equipping items and before killing monster
- change itemName to the item you want to equip
- change other bot options such as bot delay and put class abilities and stuff as you please
Okay guys thank you so much! It is now super efficient and has automatic save checkpoints every 500,000 gold which is a much needed feature... nothing worse than losing hours worth of farming progress!

Do you guys think I should make a public release version? I've never done that before, not exactly sure how it'd go xD
Quote Originally Posted by despacito456 View Post
Okay guys thank you so much! It is now super efficient and has automatic save checkpoints every 500,000 gold which is a much needed feature... nothing worse than losing hours worth of farming progress!

Do you guys think I should make a public release version? I've never done that before, not exactly sure how it'd go xD
I personally don't care. So you're free to do as you please.
Posts 1–10 of 10 · Page 1 of 1
This thread is closed for replies.

Similar Threads

Tags for this Thread

None

Need help?