code
using RBot;
using RBot.Options;
using System;
using System.Timers;
using System.Windows.Forms;
using System.Collections.Generic;
// Don't steal my bots, can't stand you hoes -satan
// Will steal your hoe tho -kdog
public class Script{
//Config
public string OptionsStorage = "VAbot1";
public bool DontPreconfigure = false;
public List<IOption> Options = new List<IOption>()
{
new Option<string>("Farming1", "1) Farming Class:","Farming Class preferably with a heal","Legion Revenant"),
new Option<string>("Soloing1", "2) Soloing Class:","Soloing Class","LightCaster"),
new Option<OptionEnum>("Server","3) Server:", "Server to be reconnected to"),
new Option<bool>("Safe", "4) Safe Relogin:", "Do you want safe relogin? True or False", false),
new Option<bool>("Any", "5) Autorelogin Any:","Do you want to relogin to any server (good for overnight)", false)
};
ScriptOptionContainer Config;
string soloClass => Config.Get<string>("Soloing1");
string farmClass => Config.Get<string>("Farming1");
//string server => Config.Get<string>("Server");
bool safe => Config.Get<bool>("Safe");
bool any => Config.Get<bool>("Any");
int i_time = 0;
public void ScriptMain(ScriptInterface bot){
bot.Schedule(100, b => {
i_time++;
});
Config = bo*****nfig;
//Options
bot.Options.DisableFX = true;
bot.Options.LagKiller = true;
bot.Options.SafeTimings = true;
bot.Options.HidePlayers = true;
bot.Options.SkipCutsenes = true;
bot.Options.InfiniteRange = true;
bot.Options.GlitchedRooms = false;
bot.Options.ExitCombatBeforeQuest = true;
//Servers
bot.Options.AutoRelogin = true;
bot.Options.AutoReloginAny = any;
bot.Options.SafeRelogin = safe;
switch(bo*****nfig.Get<OptionEnum>("Server"))
{
case OptionEnum.Twilly:
bot.Options.LoginServer = ServerList.Servers.Find(x => x.Name == "Twilly");
break;
case OptionEnum.Twig:
bot.Options.LoginServer = ServerList.Servers.Find(x => x.Name == "Twig");
break;
case OptionEnum.Artix:
bot.Options.LoginServer = ServerList.Servers.Find(x => x.Name == "Artix");
break;
case OptionEnum.Sepulchure:
bot.Options.LoginServer = ServerList.Servers.Find(x => x.Name == "Sepulchure");
break;
case OptionEnum.Gravelyn:
bot.Options.LoginServer = ServerList.Servers.Find(x => x.Name == "Gravelyn");
break;
case OptionEnum.Safiria:
bot.Options.LoginServer = ServerList.Servers.Find(x => x.Name == "Safiria");
break;
case OptionEnum.Sir_Ver:
bot.Options.LoginServer = ServerList.Servers.Find(x => x.Name == "Sir Ver");
break;
case OptionEnum.Drakath:
bot.Options.LoginServer = ServerList.Servers.Find(x => x.Name == "Drakath");
break;
case OptionEnum.Galanoth:
bot.Options.LoginServer = ServerList.Servers.Find(x => x.Name == "Galanoth");
break;
case OptionEnum.Alteon:
bot.Options.LoginServer = ServerList.Servers.Find(x => x.Name == "Alteon");
break;
case OptionEnum.Yorumi:
bot.Options.LoginServer = ServerList.Servers.Find(x => x.Name == "Yorumi");
break;
case OptionEnum.Espada:
bot.Options.LoginServer = ServerList.Servers.Find(x => x.Name == "Espada");
break;
}
//bot.Options.LoginServer = ServerList.Servers.Find(x => x.Name == server);
//Custom
bot.Options.CustomName = "Bot by Satan";
bot.Options.CustomGuild = "satan#0265";
/*
//Skill
SkillDef def = new SkillDef();
def.Load("Skills/Generic.xml");
bot.Skills.OverrideSkills = def;
bot.Skills.StartTimer();
*/
//Requires
bot.Player.LoadBank();
bot.Runtime.Require("Malignant Essence");
bot.Runtime.Require("Empowered Essence");
bot.Runtime.Require("Void Aura");
bot.Runtime.Require(soloClass);
bot.Runtime.Require(farmClass);
/*
//Drops
bot.Drops.Add("Malignant Essence");
bot.Drops.Add("Empowered Essence");
bot.Drops.Start();
//If you ever want to add Whitelist stuff do it like this
*/
//Quests (not used)
//bot.Quests.Add(4439);
//bot.Quests.Start();
rejoin:
bot.Options.SafeTimings = true;
bot.Options.AggroMonsters = false;
if(bot.Map.Name != "shadowrealm"){
bot.Player.JoinGlitched("shadowrealm", "Enter", "Spawn");
bot.Wait.ForMapLoad("shadowrealm", 20);
i_time = 0;
}
/*
int pcount = bot.Map.PlayerCount;
if(pcount <= 2){
if(bot.Map.Name == "shadowrealm"){
bot.Player.Join("yulgar-1e99","Enter","Spawn");
}
goto rejoin;
}
*/
while(!bot.Inventory.Contains("Void Aura", 7500)){
if(!bot.Inventory.Contains("Empowered Essence", 50)){
EE(bot);
}
if(!bot.Inventory.Contains("Malignant Essence", 3)){
ME(bot);
}
bot.Options.SafeTimings = true;
//Complete
bot.Quests.Accept(4439);
bot.Quests.Complete(4439);
bot.Sleep(250);
//Anti-Ghost
if(bot.Quests.IsInProgress(4439)){
bot.Sleep(1000);
bot.Quests.Complete(4439);
bot.Sleep(1000);
if(bot.Quests.IsInProgress(4439)){
bot.Sleep(1000);
bot.Quests.Complete(4439);
bot.Sleep(1000);
if(bot.Quests.IsInProgress(4439)){
bot.Player.Logout();
}
}
}
//Count
int vacountb = bot.Inventory.GetQuantity("Void Aura");
bot.Wait.ForDrop("Void Aura");
bot.Player.Pickup("Void Aura");
int vacounta = bot.Inventory.GetQuantity("Void Aura");
int vacountc = vacounta - vacountb;
int vacountd = 7500 - vacounta;
string time = string.Format("{0:HH:mm:ss}", DateTime.Now);
i_time /= 10;
if(vacountc == 0){
bot.Log("["+ time +"] You got none... "+vacountd+" to go!");
i_time = 0;
}
else{
//bot.Log("["+ time +"] You got "+vacountc+" more, taking "+i_time+" seconds! "+vacountd+" to go!");
bot.Log("["+ time +"] You got "+vacountc+" more! "+vacountd+" to go!");
i_time = 0;
}
bot.Options.SafeTimings = true;
}
}
/*
private static void Timer_Elapsed(object sender, ElapsedEventArgs e, ScriptInterface bot)
{
DateTime time = e.SignalTime;
int vacount = bot.Inventory.GetQuantity("Void Aura");
bot.Log("VA: " + vacount + "AT" + time);
}
*/
/*
private string CreateWhitelistString(string[] items)
{
string text = "";
bool flag = items != null && items.Length != 0;
if (flag)
{
for (int i = 0; i < items.Length; i++)
{
text = text + ((i == 0) ? "" : ",") + items[i].ToLower();
}
}
return text;
}
public void Pickup(params string[] items)
{
string text = CreateWhitelistString(items);
List<string> list = new List<string>();
List<string> currentDrops = this.CurrentDrops;
for (int i = 0; i < items.Length; i++)
{
string item = items[i];
bool pflag = currentDrops.Find((string x) => x.Equals(item, StringComparison.OrdinalIgnoreCase)) != null;
if (pflag)
{
list.Add(item);
}
}
RBot.Call("pickupDrops", new object[]
{
text
});
bool safeTimings = ScriptInterface.Instance.Options.SafeTimings;
if (safeTimings)
{
foreach (string item2 in list)
{
ScriptInterface.Instance.Wait.ForPickup(item2, 10);
}
}
ScriptInterface.Instance.Stats.Drops += lis*****unt;
}
*/
public void getDrop(ScriptInterface bot, string drops){
if(bot.Player.DropExists(drops)){
bot.Skills.StopTimer();
bot.Options.AggroMonsters = false;
bot.Sleep(250);
bot.Player.Pickup(drops);
bot.Sleep(250);
bot.Options.AggroMonsters = true;
bot.Skills.StartTimer();
}
}
public void equipClass(ScriptInterface bot, string eclass){
//equips the desired class and selects the correct set of skills and/or combo respectively
//stolen from nix, creds to him
while(bot.Player.InCombat){
bot.Options.AggroMonsters = false;
bot.Player.Jump("Blank","Left");
bot.Sleep(250);
}
bot.Options.AggroMonsters = false;
bot.Skills.StopTimer();
bot.Skills.Clear();
bot.Player.EquipItem(eclass);
bot.Sleep(500);
bot.Player.EquipItem(eclass);
bot.Skills.Remove(1);
bot.Skills.Remove(2);
bot.Skills.Remove(3);
bot.Skills.Remove(4);
bot.Wait.ForItemEquip(eclass, 20);
bot.Skills.SkillTimer = 5;
if(eclass == "Abyssal Angel" || eclass == "Abyssal Angel's Shadow"){
bot.Skills.Add(2, 1f);
bot.Skills.Add(4, 1f);
bot.Skills.Add(3, .5f);
}
else if(eclass == "Shaman"){
bot.Skills.Add(1, 1f);
bot.Skills.Add(2, 1f);
}
else if(eclass == "Blaze Binder"){
bot.Skills.Add(4, 1f);
bot.Skills.Add(2, 1f);
bot.Skills.Add(1, 1f);
bot.Skills.Add(3, .5f);
}
else if(eclass == "ShadowScythe General"){
bot.Skills.Add(1, 1f);
bot.Skills.Add(2, 1f);
bot.Skills.Add(3, 1f);
}
else if(eclass == "Vampire Lord" || eclass == "Royal Vampire Lord" || eclass == "Enchanted Vampire Lord" || eclass == "Vampire"){
bot.Skills.Add(1, 1f);
bot.Skills.Add(2, 1f);
bot.Skills.Add(3, 1f);
bot.Skills.Add(4, 1f);
}
else if(eclass == "Chaos Slayer Berserker" || eclass == "Chaos Slayer Mystic" || eclass == "Chaos Slayer Thief" || eclass == "Chaos Slayer Cleric" || eclass == "Dark Chaos Berserker " || eclass == "Chaos Champion Prime" || eclass == "Chaos Slayer"){
bot.Skills.Add(2, 1f);
bot.Skills.Add(3, 1f);
bot.Skills.Add(4, 1f);
}
else if(eclass == "Scarlet Sorceress"){
bot.Skills.Add(3, 1f);
bot.Skills.Add(2, 1f);
bot.Skills.Add(1, 1f);
bot.Skills.Add(4, 1f);
}
else if(eclass == "LightCaster"){
bot.Skills.Add(1, 1f);
bot.Skills.Add(2, 1f);
bot.Skills.Add(3, 1f);
bot.Skills.Add(4, 1f);
}
else if(eclass == "Void HighLord"){
bot.Skills.Add(1, 1f);
bot.Skills.Add(2, 1f);
bot.Skills.Add(4, 1f);
}
else{
bot.Skills.Add(1, 1f);
bot.Skills.Add(2, 1f);
bot.Skills.Add(3, 1f);
bot.Skills.Add(4, 1f);
}
bot.Log("Equipped: "+eclass);
bot.Skills.StartTimer();
return;
}
public void EE(ScriptInterface bot){
equipClass(bot,farmClass);
/*
while(bot.Map.Name != "shadowrealm"){
bot.Options.SafeTimings = true;
bot.Options.AggroMonsters = false;
bot.Player.Join("shadowrealm", "Enter", "Spawn");
}
*/
EEre:
bot.Sleep(500);
bot.Player.Jump("Enter", "Spawn");
bot.Options.SafeTimings = true;
bot.Options.AggroMonsters = true;
bot.Player.SetSpawnPoint();
while(!bot.Inventory.Contains("Empowered Essence", 50)){
/*if(bot.Player.DropExists("Empowered Essence"))
{
bot.Player.PickupFast("Empowered Essence");
}*/
//bot.Player.Attack("*");
bot.Player.Kill("*");
bot.Sleep(1000);
if(bot.Player.DropExists("Empowered Essence")){
getDrop(bot, "Empowered Essence");
}
if(bot.Player.State != 2){
if(bot.Monsters.Exists("*")){
bot.Player.Attack("*");
bot.Sleep(1000);
if(bot.Player.State != 2){
bot.Player.Jump("Blank","Left");
bot.Sleep(2000);
goto EEre;
}
}
else{
bot.Wait.ForMonsterSpawn("*", 11);
}
}
while(bot.Player.State == 0){
bot.Options.AggroMonsters = false;
if(bot.Player.Cell != "Blank")
bot.Player.Jump("Blank", "Left");
bot.Sleep(2500);
}
if(bot.Player.Cell != "Enter"){
bot.Player.Jump("Enter", "Spawn");
}
bot.Options.AggroMonsters = true;
}
bot.Options.AggroMonsters = false;
bot.Options.SafeTimings = true;
bot.Player.Jump("Blank","Left");
}
public void ME(ScriptInterface bot){
equipClass(bot,soloClass);
/*
while(bot.Map.Name != "shadowrealm"){
bot.Options.SafeTimings = true;
bot.Options.AggroMonsters = false;
bot.Player.Join("shadowrealm", "Enter", "Spawn");
}
*/
MEre:
bot.Sleep(500);
bot.Player.Jump("r4", "Left");
bot.Options.SafeTimings = true;
bot.Options.AggroMonsters = true;
bot.Player.SetSpawnPoint();
while(!bot.Inventory.Contains("Malignant Essence", 3)){
//bot.SendPacket("%xt%zm%aggroMon%161452%11%");
//bot.Player.Attack("*");
bot.Player.Kill("*");
bot.Sleep(1000);
if(bot.Player.DropExists("Malignant Essence")){
getDrop(bot, "Malignant Essence");
}
if(bot.Player.State != 2){
if(bot.Monsters.Exists("*")){
bot.Player.Attack("*");
bot.Sleep(1000);
if(bot.Player.State != 2){
bot.Player.Jump("Blank","Left");
bot.Sleep(2000);
goto MEre;
}
}
else{
bot.Wait.ForMonsterSpawn("*", 11);
}
}
while(bot.Player.State == 0){
bot.Options.AggroMonsters = false;
if(bot.Player.Cell != "Blank")
bot.Player.Jump("Blank", "Left");
bot.Sleep(2500);
}
if(bot.Player.Cell != "r4"){
bot.Player.Jump("r4", "Left");
}
bot.Options.AggroMonsters = true;
}
bot.Options.AggroMonsters = false;
bot.Options.SafeTimings = true;
bot.Player.Jump("Blank","Left");
}
}
public enum OptionEnum
{
Twilly,
Twig,
Artix,
Sepulchure,
Gravelyn,
Safiria,
Sir_Ver,
Drakath,
Galanoth,
Alteon,
Yorumi,
Espada
}