Update V1.3

This commit is contained in:
Bouletmarc 2024-03-30 03:16:39 -04:00
parent 4a9cbc0015
commit 84e7093acd
64 changed files with 6178 additions and 1370 deletions

View File

@ -99,7 +99,7 @@ namespace app
if (CurrentStep == 2)
{
MapAreaStruc.Position ThisChestPos = Form1_0.MapAreaStruc_0.GetPositionOfObject("object", "GoodChest", 78, new List<int>());
MapAreaStruc.Position ThisChestPos = Form1_0.MapAreaStruc_0.GetPositionOfObject("object", "GoodChest", (int) Enums.Area.TowerCellarLevel5, new List<int>());
//Form1_0.ItemsStruc_0.GrabAllItemsForGold();
if (Form1_0.Mover_0.MoveToLocation(ThisChestPos.X, ThisChestPos.Y))

View File

@ -66,7 +66,7 @@ namespace app
{
//"id":71, "type":"exit", "x":214, "y":25, "isGoodExit":true}
//Form1_0.method_1("Moving to: " + ((Enums.Area)(Form1_0.MapAreaStruc_0.CurrentObjectAreaIndex + 1)), Color.Red);
Position ThisFinalPosition = Form1_0.MapAreaStruc_0.GetPositionOfObject("exit", Form1_0.Town_0.getAreaName((int)Form1_0.MapAreaStruc_0.CurrentObjectAreaIndex + 1), (int) (Form1_0.PlayerScan_0.levelNo - 1), new List<int>() { });
Position ThisFinalPosition = Form1_0.MapAreaStruc_0.GetPositionOfObject("exit", Form1_0.Town_0.getAreaName((int)Form1_0.MapAreaStruc_0.CurrentObjectAreaIndex + 1), (int) Form1_0.PlayerScan_0.levelNo, new List<int>() { });
if (Form1_0.Mover_0.MoveToLocation(ThisFinalPosition.X, ThisFinalPosition.Y))
{
int Tryyyy = 0;
@ -106,12 +106,12 @@ namespace app
else
{
Form1_0.method_1("Duriel location not detected!", Color.Red);
//ScriptDone = true;
ScriptDone = true;
return;
}
}
if (CurrentStep == 3)
if (CurrentStep == 2)
{
int Tryyyy = 0;
int StartLevel = (int) Form1_0.PlayerScan_0.levelNo;
@ -129,7 +129,7 @@ namespace app
}
}
if (CurrentStep == 4)
if (CurrentStep == 3)
{
Form1_0.Potions_0.CanUseSkillForRegen = false;
Form1_0.SetGameStatus("KILLING DURIEL");

View File

@ -141,7 +141,7 @@ namespace app
//JungleMediumChestLeft ####
MapAreaStruc.Position ThisChestPos = Form1_0.MapAreaStruc_0.GetPositionOfObject("object", "GoodChest", 78, IgnoredChestList);
MapAreaStruc.Position ThisChestPos = Form1_0.MapAreaStruc_0.GetPositionOfObject("object", "GoodChest", (int)Enums.Area.LowerKurast, IgnoredChestList);
int Tryy = 0;
while (ThisChestPos.X != 0 && ThisChestPos.Y != 0 && Tryy < 30)
{
@ -166,7 +166,7 @@ namespace app
IgnoredChestList.Add(Form1_0.MapAreaStruc_0.CurrentObjectIndex);
}
ThisChestPos = Form1_0.MapAreaStruc_0.GetPositionOfObject("object", "GoodChest", 78, IgnoredChestList);
ThisChestPos = Form1_0.MapAreaStruc_0.GetPositionOfObject("object", "GoodChest", (int) Enums.Area.LowerKurast, IgnoredChestList);
Tryy++;
}

View File

@ -62,7 +62,12 @@ namespace app
}
if (CurrentStep == 2)
{
{
if ((Enums.Area)Form1_0.PlayerScan_0.levelNo == Enums.Area.DuranceOfHateLevel2)
{
CurrentStep = 1;
return;
}
/*X: 22561,
Y: 9553,*/
if (Form1_0.Mover_0.MoveToLocation(17568, 8069))
@ -73,6 +78,12 @@ namespace app
if (CurrentStep == 3)
{
if ((Enums.Area)Form1_0.PlayerScan_0.levelNo == Enums.Area.DuranceOfHateLevel2)
{
CurrentStep = 1;
return;
}
Form1_0.Potions_0.CanUseSkillForRegen = false;
Form1_0.SetGameStatus("KILLING MEPHISTO");
if (Form1_0.MobsStruc_0.GetMobs("getBossName", "Mephisto", false, 200, new List<long>()))
@ -96,16 +107,18 @@ namespace app
Form1_0.ItemsStruc_0.GrabAllItemsForGold();
Form1_0.Potions_0.CanUseSkillForRegen = true;
Position ThisFinalPosition = Form1_0.MapAreaStruc_0.GetPositionOfObject("object", "portal", 102 - 1, new List<int>() { });
if (Form1_0.Mover_0.MoveToLocation(ThisFinalPosition.X, ThisFinalPosition.Y))
//Position ThisFinalPosition = Form1_0.MapAreaStruc_0.GetPositionOfObject("object", "portal", 102 - 1, new List<int>() { });
//if (Form1_0.Mover_0.MoveToLocation(ThisFinalPosition.X, ThisFinalPosition.Y))
while (Form1_0.PlayerScan_0.levelNo == (int)Enums.Area.DuranceOfHateLevel3)
{
Dictionary<string, int> itemScreenPos = Form1_0.GameStruc_0.World2Screen(Form1_0.PlayerScan_0.xPosFinal, Form1_0.PlayerScan_0.yPosFinal, ThisFinalPosition.X, ThisFinalPosition.Y);
Form1_0.KeyMouse_0.MouseClicc(itemScreenPos["x"], itemScreenPos["y"] - 15);
Form1_0.KeyMouse_0.MouseClicc(itemScreenPos["x"], itemScreenPos["y"] - 15);
Form1_0.KeyMouse_0.MouseClicc(itemScreenPos["x"], itemScreenPos["y"] - 15);
Form1_0.KeyMouse_0.MouseClicc(itemScreenPos["x"], itemScreenPos["y"] - 15);
Form1_0.KeyMouse_0.MouseClicc(itemScreenPos["x"], itemScreenPos["y"] - 15);
Form1_0.Mover_0.FinishMoving();
if (Form1_0.Mover_0.MoveToLocation(17601, 8070))
{
Dictionary<string, int> itemScreenPos = Form1_0.GameStruc_0.World2Screen(Form1_0.PlayerScan_0.xPosFinal, Form1_0.PlayerScan_0.yPosFinal, 17601, 8070);
//Dictionary<string, int> itemScreenPos = Form1_0.GameStruc_0.World2Screen(Form1_0.PlayerScan_0.xPosFinal, Form1_0.PlayerScan_0.yPosFinal, ThisFinalPosition.X, ThisFinalPosition.Y);
Form1_0.KeyMouse_0.MouseClicc(itemScreenPos["x"], itemScreenPos["y"] - 15);
Form1_0.PlayerScan_0.GetPositions();
}
}
ScriptDone = true;

121
Bots/Pindleskin.cs Normal file
View File

@ -0,0 +1,121 @@
using System;
using System.Collections.Generic;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using static app.MapAreaStruc;
namespace app
{
public class Pindleskin
{
Form1 Form1_0;
public int CurrentStep = 0;
public bool ScriptDone = false;
public void SetForm1(Form1 form1_1)
{
Form1_0 = form1_1;
}
public void ResetVars()
{
CurrentStep = 0;
ScriptDone = false;
}
public void RunScript()
{
Form1_0.Town_0.ScriptTownAct = 5; //set to town act 5 when running this script
if (Form1_0.Town_0.GetInTown())
{
Form1_0.SetGameStatus("GO TO WP");
CurrentStep = 0;
Form1_0.MoveToPath_0.MoveToThisPos(new Position { X = 5130, Y = 5120 });
if (Form1_0.ObjectsStruc_0.GetObjects("PermanentTownPortal", true, new List<uint>()))
{
Dictionary<string, int> itemScreenPos = Form1_0.GameStruc_0.World2Screen(Form1_0.PlayerScan_0.xPosFinal, Form1_0.PlayerScan_0.yPosFinal, Form1_0.ObjectsStruc_0.itemx, Form1_0.ObjectsStruc_0.itemy);
Form1_0.KeyMouse_0.MouseClicc(itemScreenPos["x"], itemScreenPos["y"] - 15);
Form1_0.WaitDelay(100);
}
//Form1_0.Town_0.GoToWPArea(3, 8);
}
else
{
if (CurrentStep == 0)
{
Form1_0.SetGameStatus("DOING PINDLESKIN");
Form1_0.Battle_0.CastDefense();
Form1_0.WaitDelay(15);
if ((Enums.Area) Form1_0.PlayerScan_0.levelNo == Enums.Area.NihlathaksTemple)
{
CurrentStep++;
}
else
{
Form1_0.Town_0.GoToTown();
}
}
if (CurrentStep == 1)
{
Form1_0.MoveToPath_0.MoveToThisPos(new Position { X = 10058, Y = 13236 });
CurrentStep++;
}
if (CurrentStep == 2)
{
Form1_0.Potions_0.CanUseSkillForRegen = false;
Form1_0.SetGameStatus("KILLING PINDLESKIN");
if (Form1_0.MobsStruc_0.GetMobs("getSuperUniqueName", "Pindleskin", false, 200, new List<long>()))
{
if (Form1_0.MobsStruc_0.MobsHP > 0)
{
Form1_0.Battle_0.RunBattleScriptOnThisMob("getSuperUniqueName", "Pindleskin");
}
else
{
Form1_0.ItemsStruc_0.GetItems(true);
Form1_0.ItemsStruc_0.GetItems(true);
Form1_0.ItemsStruc_0.GetItems(true);
Form1_0.ItemsStruc_0.GetItems(true);
Form1_0.ItemsStruc_0.GetItems(true);
Form1_0.ItemsStruc_0.GetItems(true);
Form1_0.ItemsStruc_0.GetItems(true);
Form1_0.ItemsStruc_0.GetItems(true);
Form1_0.ItemsStruc_0.GetItems(true);
Form1_0.ItemsStruc_0.GetItems(true);
Form1_0.ItemsStruc_0.GrabAllItemsForGold();
Form1_0.Potions_0.CanUseSkillForRegen = true;
ScriptDone = true;
return;
//Form1_0.LeaveGame(true);
}
}
else
{
Form1_0.method_1("Pindleskin not detected!", Color.Red);
//baal not detected...
Form1_0.ItemsStruc_0.GetItems(true);
if (Form1_0.MobsStruc_0.GetMobs("getSuperUniqueName", "Pindleskin", false, 200, new List<long>())) return; //redetect baal?
Form1_0.ItemsStruc_0.GrabAllItemsForGold();
if (Form1_0.MobsStruc_0.GetMobs("getSuperUniqueName", "Pindleskin", false, 200, new List<long>())) return; //redetect baal?
Form1_0.Potions_0.CanUseSkillForRegen = true;
ScriptDone = true;
return;
//Form1_0.LeaveGame(true);
}
}
}
}
}
}

141
Bots/Rush/AndarielRush.cs Normal file
View File

@ -0,0 +1,141 @@
using System;
using System.Collections.Generic;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace app
{
public class AndarielRush
{
Form1 Form1_0;
public int CurrentStep = 0;
public bool ScriptDone = false;
public void SetForm1(Form1 form1_1)
{
Form1_0 = form1_1;
}
public void ResetVars()
{
CurrentStep = 0;
ScriptDone = false;
}
public void RunScript()
{
Form1_0.Town_0.ScriptTownAct = 5; //set to town act 5 when running this script
if (Form1_0.Town_0.GetInTown())
{
Form1_0.SetGameStatus("GO TO WP");
CurrentStep = 0;
Form1_0.Town_0.GoToWPArea(1, 8);
}
else
{
if (CurrentStep == 0)
{
Form1_0.SetGameStatus("DOING ANDARIEL");
Form1_0.Battle_0.CastDefense();
Form1_0.WaitDelay(15);
if ((Enums.Area) Form1_0.PlayerScan_0.levelNo == Enums.Area.CatacombsLevel2)
{
Form1_0.Town_0.SpawnTPButNotUseIT();
CurrentStep++;
}
else
{
Form1_0.Town_0.GoToTown();
}
}
if (CurrentStep == 1)
{
Form1_0.MoveToPath_0.MoveToArea(Enums.Area.CatacombsLevel3);
Form1_0.MoveToPath_0.MoveToArea(Enums.Area.CatacombsLevel4);
Form1_0.Town_0.TPSpawned = false;
CurrentStep++;
}
if (CurrentStep == 2)
{
Form1_0.SetGameStatus("Andariel waiting on leecher");
if (!Form1_0.Town_0.TPSpawned) Form1_0.Town_0.SpawnTPButNotUseIT();
//get leecher infos
Form1_0.PlayerScan_0.GetLeechPositions();
if (Form1_0.PlayerScan_0.LeechlevelNo == (int)Enums.Area.CatacombsLevel4)
{
CurrentStep++;
}
}
if (CurrentStep == 3)
{
/*X: 22561,
Y: 9553,*/
if (Form1_0.Mover_0.MoveToLocation(22561, 9553))
{
CurrentStep++;
}
}
if (CurrentStep == 4)
{
Form1_0.Potions_0.CanUseSkillForRegen = false;
Form1_0.SetGameStatus("KILLING ANDARIEL");
if (Form1_0.MobsStruc_0.GetMobs("getBossName", "Andariel", false, 200, new List<long>()))
{
if (Form1_0.MobsStruc_0.MobsHP > 0)
{
Form1_0.Battle_0.RunBattleScriptOnThisMob("getBossName", "Andariel");
}
else
{
Form1_0.ItemsStruc_0.GetItems(true);
Form1_0.ItemsStruc_0.GetItems(true);
Form1_0.ItemsStruc_0.GetItems(true);
Form1_0.ItemsStruc_0.GetItems(true);
Form1_0.ItemsStruc_0.GetItems(true);
Form1_0.ItemsStruc_0.GetItems(true);
Form1_0.ItemsStruc_0.GetItems(true);
Form1_0.ItemsStruc_0.GetItems(true);
Form1_0.ItemsStruc_0.GetItems(true);
Form1_0.ItemsStruc_0.GetItems(true);
Form1_0.ItemsStruc_0.GrabAllItemsForGold();
Form1_0.Potions_0.CanUseSkillForRegen = true;
ScriptDone = true;
return;
//Form1_0.LeaveGame(true);
}
}
else
{
Form1_0.method_1("Andariel not detected!", Color.Red);
//baal not detected...
Form1_0.ItemsStruc_0.GetItems(true);
if (Form1_0.MobsStruc_0.GetMobs("getBossName", "Andariel", false, 200, new List<long>())) return; //redetect baal?
Form1_0.ItemsStruc_0.GrabAllItemsForGold();
if (Form1_0.MobsStruc_0.GetMobs("getBossName", "Andariel", false, 200, new List<long>())) return; //redetect baal?
Form1_0.Potions_0.CanUseSkillForRegen = true;
ScriptDone = true;
return;
//Form1_0.LeaveGame(true);
}
}
}
}
}
}

135
Bots/Rush/DarkWoodRush.cs Normal file
View File

@ -0,0 +1,135 @@
using System;
using System.Collections.Generic;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using static app.MapAreaStruc;
namespace app
{
public class DarkWoodRush
{
Form1 Form1_0;
public int CurrentStep = 0;
public bool ScriptDone = false;
public Position InifussTree = new Position { X = 0, Y = 0 };
public void SetForm1(Form1 form1_1)
{
Form1_0 = form1_1;
}
public void ResetVars()
{
CurrentStep = 0;
ScriptDone = false;
}
public void RunScript()
{
Form1_0.Town_0.ScriptTownAct = 5; //set to town act 5 when running this script
if (Form1_0.Town_0.GetInTown())
{
Form1_0.SetGameStatus("GO TO WP");
CurrentStep = 0;
Form1_0.Town_0.GoToWPArea(1, 3);
}
else
{
if (CurrentStep == 0)
{
Form1_0.SetGameStatus("DOING DARKWOOD");
Form1_0.Battle_0.CastDefense();
Form1_0.WaitDelay(15);
if ((Enums.Area) Form1_0.PlayerScan_0.levelNo == Enums.Area.DarkWood)
{
Form1_0.Town_0.SpawnTPButNotUseIT();
CurrentStep++;
}
else
{
Form1_0.Town_0.GoToTown();
}
}
if (CurrentStep == 1)
{
InifussTree = Form1_0.MapAreaStruc_0.GetPositionOfObject("object", "InifussTree", (int) Enums.Area.DarkWood, new List<int>());
if (InifussTree.X != 0 && InifussTree.Y != 0)
{
Form1_0.MoveToPath_0.MoveToThisPos(InifussTree);
//repeat clic on tree
int tryyy = 0;
while (tryyy <= 25)
{
Dictionary<string, int> itemScreenPos = Form1_0.GameStruc_0.World2Screen(Form1_0.PlayerScan_0.xPosFinal, Form1_0.PlayerScan_0.yPosFinal, InifussTree.X, InifussTree.Y);
Form1_0.KeyMouse_0.MouseClicc(itemScreenPos["x"], itemScreenPos["y"]);
Form1_0.PlayerScan_0.GetPositions();
tryyy++;
}
CurrentStep++;
}
else
{
Form1_0.method_1("Inifuss Tree location not detected!", Color.Red);
ScriptDone = true;
return;
}
}
if (CurrentStep == 2)
{
if (!Form1_0.Battle_0.DoBattleScript(25))
{
Position ThisTPPos = new Position { X = InifussTree.X - 10, Y = InifussTree.Y + 5 };
Form1_0.MoveToPath_0.MoveToThisPos(ThisTPPos);
Form1_0.Town_0.TPSpawned = false;
CurrentStep++;
}
}
if (CurrentStep == 3)
{
Form1_0.SetGameStatus("DarkWood waiting on leecher");
if (!Form1_0.Town_0.TPSpawned) Form1_0.Town_0.SpawnTPButNotUseIT();
Form1_0.Battle_0.DoBattleScript(25);
//get leecher infos
Form1_0.PlayerScan_0.GetLeechPositions();
if (Form1_0.PlayerScan_0.LeechlevelNo == (int)Enums.Area.DarkWood)
{
CurrentStep++;
}
}
if (CurrentStep == 4)
{
Form1_0.SetGameStatus("DarkWood waiting on leecher #2");
Form1_0.Battle_0.DoBattleScript(25);
//get leecher infos
Form1_0.PlayerScan_0.GetLeechPositions();
if (Form1_0.PlayerScan_0.LeechlevelNo == (int)Enums.Area.RogueEncampment)
{
ScriptDone = true;
}
}
}
}
}
}

228
Bots/Rush/DurielRush.cs Normal file
View File

@ -0,0 +1,228 @@
using System;
using System.Collections.Generic;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using static app.MapAreaStruc;
namespace app
{
public class DurielRush
{
Form1 Form1_0;
public int CurrentStep = 0;
public bool ScriptDone = false;
public Position OrificePos = new Position { X = 0, Y = 0 };
public bool WaitedInDuriel = false;
public void SetForm1(Form1 form1_1)
{
Form1_0 = form1_1;
}
public void ResetVars()
{
CurrentStep = 0;
ScriptDone = false;
}
public void RunScript()
{
Form1_0.Town_0.ScriptTownAct = 5; //set to town act 5 when running this script
if (Form1_0.Town_0.GetInTown())
{
Form1_0.SetGameStatus("GO TO WP");
CurrentStep = 0;
Form1_0.Town_0.GoToWPArea(2, 8);
}
else
{
if (CurrentStep == 0)
{
Form1_0.SetGameStatus("DOING DURIEL");
Form1_0.Battle_0.CastDefense();
Form1_0.WaitDelay(15);
if ((Enums.Area) Form1_0.PlayerScan_0.levelNo == Enums.Area.CanyonOfTheMagi)
{
CurrentStep++;
}
else
{
Form1_0.Town_0.GoToTown();
}
}
if (CurrentStep == 1)
{
//id":152, "type":"object", "x":453, "y":258, "name":"orifice", "op":25, "class":"quest"}
//Detect the correct tomb where Duriel hide
OrificePos = Form1_0.MapAreaStruc_0.GetAreaOfObject("object", "HoradricOrifice", new List<int>(), 65, 72);
if (OrificePos.X != 0 && OrificePos.Y != 0)
{
//"id":71, "type":"exit", "x":214, "y":25, "isGoodExit":true}
//Form1_0.method_1("Moving to: " + ((Enums.Area)(Form1_0.MapAreaStruc_0.CurrentObjectAreaIndex + 1)), Color.Red);
Position ThisFinalPosition = Form1_0.MapAreaStruc_0.GetPositionOfObject("exit", Form1_0.Town_0.getAreaName((int)Form1_0.MapAreaStruc_0.CurrentObjectAreaIndex + 1), (int) Form1_0.PlayerScan_0.levelNo, new List<int>() { });
if (Form1_0.Mover_0.MoveToLocation(ThisFinalPosition.X, ThisFinalPosition.Y))
{
int Tryyyy = 0;
while (Form1_0.PlayerScan_0.levelNo == 46 && Tryyyy <= 25)
{
Dictionary<string, int> itemScreenPos = Form1_0.GameStruc_0.World2Screen(Form1_0.PlayerScan_0.xPosFinal, Form1_0.PlayerScan_0.yPosFinal, ThisFinalPosition.X, ThisFinalPosition.Y);
Form1_0.KeyMouse_0.MouseClicc(itemScreenPos["x"], itemScreenPos["y"]);
Form1_0.PlayerScan_0.GetPositions();
Tryyyy++;
}
//didn't clic correctly on tomb door, substract some pixels
Tryyyy = 0;
while (Form1_0.PlayerScan_0.levelNo == 46 && Tryyyy <= 25)
{
Dictionary<string, int> itemScreenPos = Form1_0.GameStruc_0.World2Screen(Form1_0.PlayerScan_0.xPosFinal, Form1_0.PlayerScan_0.yPosFinal, ThisFinalPosition.X, ThisFinalPosition.Y);
Form1_0.KeyMouse_0.MouseClicc(itemScreenPos["x"] - 70, itemScreenPos["y"]);
Form1_0.PlayerScan_0.GetPositions();
Tryyyy++;
}
//didn't clic correctly on tomb door, substract some pixels
Tryyyy = 0;
while (Form1_0.PlayerScan_0.levelNo == 46 && Tryyyy <= 25)
{
Dictionary<string, int> itemScreenPos = Form1_0.GameStruc_0.World2Screen(Form1_0.PlayerScan_0.xPosFinal, Form1_0.PlayerScan_0.yPosFinal, ThisFinalPosition.X, ThisFinalPosition.Y);
Form1_0.KeyMouse_0.MouseClicc(itemScreenPos["x"] + 70, itemScreenPos["y"]);
Form1_0.PlayerScan_0.GetPositions();
Tryyyy++;
}
Form1_0.MoveToPath_0.MoveToThisPos(OrificePos); //Move to Orifice
CurrentStep++;
}
}
else
{
Form1_0.method_1("Duriel location not detected!", Color.Red);
ScriptDone = true;
return;
}
}
if (CurrentStep == 2)
{
if (!Form1_0.Battle_0.DoBattleScript(25))
{
Form1_0.MoveToPath_0.MoveToThisPos(OrificePos);
Form1_0.Town_0.TPSpawned = false;
CurrentStep++;
}
Form1_0.Town_0.TPSpawned = false;
CurrentStep++;
}
if (CurrentStep == 3)
{
Form1_0.SetGameStatus("Duriel waiting on leecher");
if (!Form1_0.Town_0.TPSpawned) Form1_0.Town_0.SpawnTPButNotUseIT();
Form1_0.Battle_0.DoBattleScript(25);
//get leecher infos
Form1_0.PlayerScan_0.GetLeechPositions();
if (Form1_0.PlayerScan_0.LeechlevelNo >= (int) Enums.Area.TalRashasTomb1 && Form1_0.PlayerScan_0.LeechlevelNo <= (int)Enums.Area.TalRashasTomb7)
{
CurrentStep++;
}
}
if (CurrentStep == 2)
{
int Tryyyy = 0;
int StartLevel = (int) Form1_0.PlayerScan_0.levelNo;
while ((int) Form1_0.PlayerScan_0.levelNo == StartLevel && Tryyyy <= 25)
{
Dictionary<string, int> itemScreenPos = Form1_0.GameStruc_0.World2Screen(Form1_0.PlayerScan_0.xPosFinal, Form1_0.PlayerScan_0.yPosFinal, OrificePos.X, OrificePos.Y);
Form1_0.KeyMouse_0.MouseClicc(itemScreenPos["x"] - 446, itemScreenPos["y"] - 268);
Form1_0.PlayerScan_0.GetPositions();
Tryyyy++;
}
if ((Enums.Area)Form1_0.PlayerScan_0.levelNo == Enums.Area.DurielsLair)
{
CurrentStep++;
}
}
if (CurrentStep == 3)
{
Form1_0.Potions_0.CanUseSkillForRegen = false;
Form1_0.SetGameStatus("KILLING DURIEL");
if (!WaitedInDuriel)
{
//get leecher infos
Form1_0.PlayerScan_0.GetLeechPositions();
if (Form1_0.PlayerScan_0.LeechlevelNo == (int)Enums.Area.DurielsLair)
{
WaitedInDuriel = true;
}
else
{
return;
}
}
if (Form1_0.MobsStruc_0.GetMobs("getBossName", "Duriel", false, 200, new List<long>()))
{
if (Form1_0.MobsStruc_0.MobsHP > 0)
{
Form1_0.Battle_0.RunBattleScriptOnThisMob("getBossName", "Duriel");
}
else
{
Form1_0.ItemsStruc_0.GetItems(true);
Form1_0.ItemsStruc_0.GetItems(true);
Form1_0.ItemsStruc_0.GetItems(true);
Form1_0.ItemsStruc_0.GetItems(true);
Form1_0.ItemsStruc_0.GetItems(true);
Form1_0.ItemsStruc_0.GetItems(true);
Form1_0.ItemsStruc_0.GetItems(true);
Form1_0.ItemsStruc_0.GetItems(true);
Form1_0.ItemsStruc_0.GetItems(true);
Form1_0.ItemsStruc_0.GetItems(true);
Form1_0.ItemsStruc_0.GrabAllItemsForGold();
Form1_0.Potions_0.CanUseSkillForRegen = true;
ScriptDone = true;
return;
//Form1_0.LeaveGame(true);
}
}
else
{
Form1_0.method_1("Duriel not detected!", Color.Red);
//baal not detected...
Form1_0.ItemsStruc_0.GetItems(true);
if (Form1_0.MobsStruc_0.GetMobs("getBossName", "Duriel", false, 200, new List<long>())) return; //redetect baal?
Form1_0.ItemsStruc_0.GrabAllItemsForGold();
if (Form1_0.MobsStruc_0.GetMobs("getBossName", "Duriel", false, 200, new List<long>())) return; //redetect baal?
Form1_0.Potions_0.CanUseSkillForRegen = true;
ScriptDone = true;
return;
//Form1_0.LeaveGame(true);
}
}
}
}
}
}

171
Bots/Rush/FarOasisRush.cs Normal file
View File

@ -0,0 +1,171 @@
using System;
using System.Collections.Generic;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using static app.MapAreaStruc;
namespace app
{
public class FarOasisRush
{
Form1 Form1_0;
public int CurrentStep = 0;
public bool ScriptDone = false;
public Position ChestPos = new Position { X = 0, Y = 0 };
public void SetForm1(Form1 form1_1)
{
Form1_0 = form1_1;
}
public void ResetVars()
{
CurrentStep = 0;
ScriptDone = false;
}
public void RunScript()
{
Form1_0.Town_0.ScriptTownAct = 5; //set to town act 5 when running this script
if (Form1_0.Town_0.GetInTown())
{
Form1_0.SetGameStatus("GO TO WP");
CurrentStep = 0;
Form1_0.Town_0.GoToWPArea(2, 4);
}
else
{
if (CurrentStep == 0)
{
Form1_0.SetGameStatus("DOING FAR OASIS (STAFF)");
Form1_0.Battle_0.CastDefense();
Form1_0.WaitDelay(15);
if ((Enums.Area) Form1_0.PlayerScan_0.levelNo == Enums.Area.FarOasis)
{
Form1_0.Town_0.SpawnTPButNotUseIT();
CurrentStep++;
}
else
{
Form1_0.Town_0.GoToTown();
}
}
if (CurrentStep == 1)
{
Form1_0.MoveToPath_0.MoveToArea(Enums.Area.MaggotLairLevel1);
CurrentStep++;
}
if (CurrentStep == 2)
{
if (Form1_0.PlayerScan_0.levelNo != (int)Enums.Area.MaggotLairLevel1)
{
CurrentStep--;
return;
}
Form1_0.MoveToPath_0.MoveToArea(Enums.Area.MaggotLairLevel2);
CurrentStep++;
}
if (CurrentStep == 3)
{
if (Form1_0.PlayerScan_0.levelNo != (int)Enums.Area.MaggotLairLevel2)
{
CurrentStep--;
return;
}
Form1_0.MoveToPath_0.MoveToArea(Enums.Area.MaggotLairLevel3);
CurrentStep++;
}
if (CurrentStep == 4)
{
if (Form1_0.PlayerScan_0.levelNo != (int)Enums.Area.MaggotLairLevel3)
{
CurrentStep--;
return;
}
ChestPos = Form1_0.MapAreaStruc_0.GetPositionOfObject("object", "StaffOfKingsChest", (int) Enums.Area.MaggotLairLevel3, new List<int>());
if (ChestPos.X != 0 && ChestPos.Y != 0)
{
Form1_0.MoveToPath_0.MoveToThisPos(ChestPos);
//repeat clic on chest
int tryyy = 0;
while (tryyy <= 25)
{
Dictionary<string, int> itemScreenPos = Form1_0.GameStruc_0.World2Screen(Form1_0.PlayerScan_0.xPosFinal, Form1_0.PlayerScan_0.yPosFinal, ChestPos.X, ChestPos.Y);
Form1_0.KeyMouse_0.MouseClicc(itemScreenPos["x"], itemScreenPos["y"]);
Form1_0.PlayerScan_0.GetPositions();
tryyy++;
}
CurrentStep++;
}
else
{
Form1_0.method_1("Staff Chest location not detected!", Color.Red);
ScriptDone = true;
return;
}
}
if (CurrentStep == 5)
{
if (!Form1_0.Battle_0.DoBattleScript(25))
{
Position ThisTPPos = new Position { X = ChestPos.X - 10, Y = ChestPos.Y + 5 };
Form1_0.MoveToPath_0.MoveToThisPos(ThisTPPos);
Form1_0.Town_0.TPSpawned = false;
CurrentStep++;
}
}
if (CurrentStep == 6)
{
Form1_0.SetGameStatus("Staff Chest waiting on leecher");
if (!Form1_0.Town_0.TPSpawned) Form1_0.Town_0.SpawnTPButNotUseIT();
Form1_0.Battle_0.DoBattleScript(25);
//get leecher infos
Form1_0.PlayerScan_0.GetLeechPositions();
if (Form1_0.PlayerScan_0.LeechlevelNo == (int)Enums.Area.MaggotLairLevel3)
{
CurrentStep++;
}
}
if (CurrentStep == 7)
{
Form1_0.SetGameStatus("Staff Chest waiting on leecher #2");
Form1_0.Battle_0.DoBattleScript(25);
//get leecher infos
Form1_0.PlayerScan_0.GetLeechPositions();
if (Form1_0.PlayerScan_0.LeechlevelNo == (int)Enums.Area.LutGholein)
{
ScriptDone = true;
}
}
}
}
}
}

View File

@ -0,0 +1,147 @@
using System;
using System.Collections.Generic;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using static app.MapAreaStruc;
namespace app
{
public class HallOfDeadRushCube
{
Form1 Form1_0;
public int CurrentStep = 0;
public bool ScriptDone = false;
public Position ChestPos = new Position { X = 0, Y = 0 };
public void SetForm1(Form1 form1_1)
{
Form1_0 = form1_1;
}
public void ResetVars()
{
CurrentStep = 0;
ScriptDone = false;
}
public void RunScript()
{
Form1_0.Town_0.ScriptTownAct = 5; //set to town act 5 when running this script
if (Form1_0.Town_0.GetInTown())
{
Form1_0.SetGameStatus("GO TO WP");
CurrentStep = 0;
Form1_0.Town_0.GoToWPArea(2, 3);
}
else
{
if (CurrentStep == 0)
{
Form1_0.SetGameStatus("DOING HALL OF THE DEAD (CUBE)");
Form1_0.Battle_0.CastDefense();
Form1_0.WaitDelay(15);
if ((Enums.Area) Form1_0.PlayerScan_0.levelNo == Enums.Area.HallsOfTheDeadLevel2)
{
Form1_0.Town_0.SpawnTPButNotUseIT();
CurrentStep++;
}
else
{
Form1_0.Town_0.GoToTown();
}
}
if (CurrentStep == 1)
{
Form1_0.MoveToPath_0.MoveToArea(Enums.Area.HallsOfTheDeadLevel3);
CurrentStep++;
}
if (CurrentStep == 2)
{
if (Form1_0.PlayerScan_0.levelNo != (int)Enums.Area.HallsOfTheDeadLevel2)
{
CurrentStep--;
return;
}
ChestPos = Form1_0.MapAreaStruc_0.GetPositionOfObject("object", "HoradricCubeChest", (int) Enums.Area.HallsOfTheDeadLevel3, new List<int>());
if (ChestPos.X != 0 && ChestPos.Y != 0)
{
Form1_0.MoveToPath_0.MoveToThisPos(ChestPos);
//repeat clic on chest
int tryyy = 0;
while (tryyy <= 25)
{
Dictionary<string, int> itemScreenPos = Form1_0.GameStruc_0.World2Screen(Form1_0.PlayerScan_0.xPosFinal, Form1_0.PlayerScan_0.yPosFinal, ChestPos.X, ChestPos.Y);
Form1_0.KeyMouse_0.MouseClicc(itemScreenPos["x"], itemScreenPos["y"]);
Form1_0.PlayerScan_0.GetPositions();
tryyy++;
}
CurrentStep++;
}
else
{
Form1_0.method_1("Cube location not detected!", Color.Red);
ScriptDone = true;
return;
}
}
if (CurrentStep == 3)
{
if (!Form1_0.Battle_0.DoBattleScript(25))
{
Position ThisTPPos = new Position { X = ChestPos.X - 10, Y = ChestPos.Y + 5 };
Form1_0.MoveToPath_0.MoveToThisPos(ThisTPPos);
Form1_0.Town_0.TPSpawned = false;
CurrentStep++;
}
}
if (CurrentStep == 4)
{
Form1_0.SetGameStatus("Cube waiting on leecher");
if (!Form1_0.Town_0.TPSpawned) Form1_0.Town_0.SpawnTPButNotUseIT();
Form1_0.Battle_0.DoBattleScript(25);
//get leecher infos
Form1_0.PlayerScan_0.GetLeechPositions();
if (Form1_0.PlayerScan_0.LeechlevelNo == (int)Enums.Area.HallsOfTheDeadLevel3)
{
CurrentStep++;
}
}
if (CurrentStep == 5)
{
Form1_0.SetGameStatus("Cube waiting on leecher #2");
Form1_0.Battle_0.DoBattleScript(25);
//get leecher infos
Form1_0.PlayerScan_0.GetLeechPositions();
if (Form1_0.PlayerScan_0.LeechlevelNo == (int)Enums.Area.LutGholein)
{
ScriptDone = true;
}
}
}
}
}
}

View File

@ -0,0 +1,172 @@
using System;
using System.Collections.Generic;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using static app.MapAreaStruc;
namespace app
{
public class KahlimBrainRush
{
Form1 Form1_0;
public int CurrentStep = 0;
public bool ScriptDone = false;
public Position ChestPos = new Position { X = 0, Y = 0 };
public void SetForm1(Form1 form1_1)
{
Form1_0 = form1_1;
}
public void ResetVars()
{
CurrentStep = 0;
ScriptDone = false;
}
public void RunScript()
{
Form1_0.Town_0.ScriptTownAct = 5; //set to town act 5 when running this script
if (Form1_0.Town_0.GetInTown())
{
Form1_0.SetGameStatus("GO TO WP");
CurrentStep = 0;
Form1_0.Town_0.GoToWPArea(3, 3);
}
else
{
if (CurrentStep == 0)
{
Form1_0.SetGameStatus("DOING KAHLIM BRAIN");
Form1_0.Battle_0.CastDefense();
Form1_0.WaitDelay(15);
if ((Enums.Area) Form1_0.PlayerScan_0.levelNo == Enums.Area.FlayerJungle)
{
Form1_0.Town_0.SpawnTPButNotUseIT();
CurrentStep++;
}
else
{
Form1_0.Town_0.GoToTown();
}
}
if (CurrentStep == 1)
{
Form1_0.MoveToPath_0.MoveToArea(Enums.Area.FlayerDungeonLevel1);
CurrentStep++;
}
if (CurrentStep == 2)
{
if (Form1_0.PlayerScan_0.levelNo != (int)Enums.Area.FlayerDungeonLevel1)
{
CurrentStep--;
return;
}
Form1_0.MoveToPath_0.MoveToArea(Enums.Area.FlayerDungeonLevel2);
CurrentStep++;
}
if (CurrentStep == 3)
{
if (Form1_0.PlayerScan_0.levelNo != (int)Enums.Area.FlayerDungeonLevel2)
{
CurrentStep--;
return;
}
Form1_0.MoveToPath_0.MoveToArea(Enums.Area.FlayerDungeonLevel3);
CurrentStep++;
}
if (CurrentStep == 4)
{
if (Form1_0.PlayerScan_0.levelNo != (int)Enums.Area.FlayerDungeonLevel3)
{
CurrentStep--;
return;
}
ChestPos = Form1_0.MapAreaStruc_0.GetPositionOfObject("object", "KhalimChest2", (int) Enums.Area.FlayerDungeonLevel3, new List<int>());
if (ChestPos.X != 0 && ChestPos.Y != 0)
{
Form1_0.MoveToPath_0.MoveToThisPos(ChestPos);
//repeat clic on chest
int tryyy = 0;
while (tryyy <= 25)
{
Dictionary<string, int> itemScreenPos = Form1_0.GameStruc_0.World2Screen(Form1_0.PlayerScan_0.xPosFinal, Form1_0.PlayerScan_0.yPosFinal, ChestPos.X, ChestPos.Y);
Form1_0.KeyMouse_0.MouseClicc(itemScreenPos["x"], itemScreenPos["y"]);
Form1_0.PlayerScan_0.GetPositions();
tryyy++;
}
CurrentStep++;
}
else
{
Form1_0.method_1("Kahlim Brain Chest location not detected!", Color.Red);
ScriptDone = true;
return;
}
}
if (CurrentStep == 5)
{
if (!Form1_0.Battle_0.DoBattleScript(15))
{
Position ThisTPPos = new Position { X = ChestPos.X - 10, Y = ChestPos.Y + 5 };
Form1_0.MoveToPath_0.MoveToThisPos(ThisTPPos);
Form1_0.Town_0.TPSpawned = false;
CurrentStep++;
}
}
if (CurrentStep == 6)
{
Form1_0.SetGameStatus("Kahlim Brain waiting on leecher");
if (!Form1_0.Town_0.TPSpawned) Form1_0.Town_0.SpawnTPButNotUseIT();
Form1_0.Battle_0.DoBattleScript(15);
//get leecher infos
Form1_0.PlayerScan_0.GetLeechPositions();
if (Form1_0.PlayerScan_0.LeechlevelNo == (int)Enums.Area.FlayerDungeonLevel3)
{
CurrentStep++;
}
}
if (CurrentStep == 7)
{
Form1_0.SetGameStatus("Kahlim Brain waiting on leecher #2");
Form1_0.Battle_0.DoBattleScript(15);
//get leecher infos
Form1_0.PlayerScan_0.GetLeechPositions();
if (Form1_0.PlayerScan_0.LeechlevelNo == (int)Enums.Area.KurastDocks)
{
ScriptDone = true;
}
}
}
}
}
}

147
Bots/Rush/KahlimEyeRush.cs Normal file
View File

@ -0,0 +1,147 @@
using System;
using System.Collections.Generic;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using static app.MapAreaStruc;
namespace app
{
public class KahlimEyeRush
{
Form1 Form1_0;
public int CurrentStep = 0;
public bool ScriptDone = false;
public Position ChestPos = new Position { X = 0, Y = 0 };
public void SetForm1(Form1 form1_1)
{
Form1_0 = form1_1;
}
public void ResetVars()
{
CurrentStep = 0;
ScriptDone = false;
}
public void RunScript()
{
Form1_0.Town_0.ScriptTownAct = 5; //set to town act 5 when running this script
if (Form1_0.Town_0.GetInTown())
{
Form1_0.SetGameStatus("GO TO WP");
CurrentStep = 0;
Form1_0.Town_0.GoToWPArea(3, 1);
}
else
{
if (CurrentStep == 0)
{
Form1_0.SetGameStatus("DOING KAHLIM EYE");
Form1_0.Battle_0.CastDefense();
Form1_0.WaitDelay(15);
if ((Enums.Area) Form1_0.PlayerScan_0.levelNo == Enums.Area.SpiderForest)
{
Form1_0.Town_0.SpawnTPButNotUseIT();
CurrentStep++;
}
else
{
Form1_0.Town_0.GoToTown();
}
}
if (CurrentStep == 1)
{
Form1_0.MoveToPath_0.MoveToArea(Enums.Area.SpiderCavern);
CurrentStep++;
}
if (CurrentStep == 2)
{
if (Form1_0.PlayerScan_0.levelNo != (int)Enums.Area.SpiderCavern)
{
CurrentStep--;
return;
}
ChestPos = Form1_0.MapAreaStruc_0.GetPositionOfObject("object", "KhalimChest3", (int) Enums.Area.SpiderCavern, new List<int>());
if (ChestPos.X != 0 && ChestPos.Y != 0)
{
Form1_0.MoveToPath_0.MoveToThisPos(ChestPos);
//repeat clic on chest
int tryyy = 0;
while (tryyy <= 25)
{
Dictionary<string, int> itemScreenPos = Form1_0.GameStruc_0.World2Screen(Form1_0.PlayerScan_0.xPosFinal, Form1_0.PlayerScan_0.yPosFinal, ChestPos.X, ChestPos.Y);
Form1_0.KeyMouse_0.MouseClicc(itemScreenPos["x"], itemScreenPos["y"]);
Form1_0.PlayerScan_0.GetPositions();
tryyy++;
}
CurrentStep++;
}
else
{
Form1_0.method_1("Kahlim Eye Chest location not detected!", Color.Red);
ScriptDone = true;
return;
}
}
if (CurrentStep == 3)
{
if (!Form1_0.Battle_0.DoBattleScript(15))
{
Position ThisTPPos = new Position { X = ChestPos.X - 10, Y = ChestPos.Y + 5 };
Form1_0.MoveToPath_0.MoveToThisPos(ThisTPPos);
Form1_0.Town_0.TPSpawned = false;
CurrentStep++;
}
}
if (CurrentStep == 4)
{
Form1_0.SetGameStatus("Kahlim Eye waiting on leecher");
if (!Form1_0.Town_0.TPSpawned) Form1_0.Town_0.SpawnTPButNotUseIT();
Form1_0.Battle_0.DoBattleScript(15);
//get leecher infos
Form1_0.PlayerScan_0.GetLeechPositions();
if (Form1_0.PlayerScan_0.LeechlevelNo == (int)Enums.Area.SpiderCavern)
{
CurrentStep++;
}
}
if (CurrentStep == 5)
{
Form1_0.SetGameStatus("Kahlim Eye waiting on leecher #2");
Form1_0.Battle_0.DoBattleScript(15);
//get leecher infos
Form1_0.PlayerScan_0.GetLeechPositions();
if (Form1_0.PlayerScan_0.LeechlevelNo == (int)Enums.Area.KurastDocks)
{
ScriptDone = true;
}
}
}
}
}
}

View File

@ -0,0 +1,188 @@
using System;
using System.Collections.Generic;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using static app.MapAreaStruc;
namespace app
{
public class KahlimHeartRush
{
Form1 Form1_0;
public int CurrentStep = 0;
public bool ScriptDone = false;
public Position ChestPos = new Position { X = 0, Y = 0 };
public void SetForm1(Form1 form1_1)
{
Form1_0 = form1_1;
}
public void ResetVars()
{
CurrentStep = 0;
ScriptDone = false;
}
public void RunScript()
{
Form1_0.Town_0.ScriptTownAct = 5; //set to town act 5 when running this script
if (Form1_0.Town_0.GetInTown())
{
Form1_0.SetGameStatus("GO TO WP");
CurrentStep = 0;
Form1_0.Town_0.GoToWPArea(3, 5);
}
else
{
if (CurrentStep == 0)
{
Form1_0.SetGameStatus("DOING KAHLIM HEART");
Form1_0.Battle_0.CastDefense();
Form1_0.WaitDelay(15);
if ((Enums.Area) Form1_0.PlayerScan_0.levelNo == Enums.Area.KurastBazaar)
{
Form1_0.Town_0.SpawnTPButNotUseIT();
CurrentStep++;
}
else
{
Form1_0.Town_0.GoToTown();
}
}
if (CurrentStep == 1)
{
Form1_0.MoveToPath_0.MoveToArea(Enums.Area.SewersLevel1Act3);
CurrentStep++;
}
if (CurrentStep == 2)
{
if (Form1_0.PlayerScan_0.levelNo != (int)Enums.Area.SewersLevel1Act3)
{
CurrentStep--;
return;
}
Form1_0.MoveToPath_0.MoveToArea(Enums.Area.SewersLevel2Act3);
ChestPos = Form1_0.MapAreaStruc_0.GetPositionOfObject("object", "Act3SewerStairsToLevel3", (int)Enums.Area.SewersLevel1Act3, new List<int>());
if (ChestPos.X != 0 && ChestPos.Y != 0)
{
Form1_0.MoveToPath_0.MoveToThisPos(ChestPos);
//repeat clic on chest
int tryyy = 0;
while (tryyy <= 25)
{
Dictionary<string, int> itemScreenPos = Form1_0.GameStruc_0.World2Screen(Form1_0.PlayerScan_0.xPosFinal, Form1_0.PlayerScan_0.yPosFinal, ChestPos.X, ChestPos.Y);
Form1_0.KeyMouse_0.MouseClicc(itemScreenPos["x"], itemScreenPos["y"]);
Form1_0.PlayerScan_0.GetPositions();
Form1_0.WaitDelay(2);
tryyy++;
}
CurrentStep++;
}
else
{
Form1_0.method_1("Lever location not detected!", Color.Red);
ScriptDone = true;
return;
}
Form1_0.MoveToPath_0.MoveToArea(Enums.Area.SewersLevel2Act3);
CurrentStep++;
}
if (CurrentStep == 3)
{
if (Form1_0.PlayerScan_0.levelNo != (int)Enums.Area.SewersLevel2Act3)
{
CurrentStep--;
return;
}
ChestPos = Form1_0.MapAreaStruc_0.GetPositionOfObject("object", "KhalimChest1", (int) Enums.Area.SewersLevel2Act3, new List<int>());
if (ChestPos.X != 0 && ChestPos.Y != 0)
{
Form1_0.MoveToPath_0.MoveToThisPos(ChestPos);
//repeat clic on chest
int tryyy = 0;
while (tryyy <= 25)
{
Dictionary<string, int> itemScreenPos = Form1_0.GameStruc_0.World2Screen(Form1_0.PlayerScan_0.xPosFinal, Form1_0.PlayerScan_0.yPosFinal, ChestPos.X, ChestPos.Y);
Form1_0.KeyMouse_0.MouseClicc(itemScreenPos["x"], itemScreenPos["y"]);
Form1_0.PlayerScan_0.GetPositions();
tryyy++;
}
CurrentStep++;
}
else
{
Form1_0.method_1("Kahlim Heart Chest location not detected!", Color.Red);
ScriptDone = true;
return;
}
}
if (CurrentStep == 4)
{
if (!Form1_0.Battle_0.DoBattleScript(15))
{
Position ThisTPPos = new Position { X = ChestPos.X - 10, Y = ChestPos.Y + 5 };
Form1_0.MoveToPath_0.MoveToThisPos(ThisTPPos);
Form1_0.Town_0.TPSpawned = false;
CurrentStep++;
}
}
if (CurrentStep == 5)
{
Form1_0.SetGameStatus("Kahlim Heart waiting on leecher");
if (!Form1_0.Town_0.TPSpawned) Form1_0.Town_0.SpawnTPButNotUseIT();
Form1_0.Battle_0.DoBattleScript(15);
//get leecher infos
Form1_0.PlayerScan_0.GetLeechPositions();
if (Form1_0.PlayerScan_0.LeechlevelNo == (int)Enums.Area.SewersLevel2Act3)
{
CurrentStep++;
}
}
if (CurrentStep == 6)
{
Form1_0.SetGameStatus("Kahlim Heart waiting on leecher #2");
Form1_0.Battle_0.DoBattleScript(15);
//get leecher infos
Form1_0.PlayerScan_0.GetLeechPositions();
if (Form1_0.PlayerScan_0.LeechlevelNo == (int)Enums.Area.KurastDocks)
{
ScriptDone = true;
}
}
}
}
}
}

168
Bots/Rush/LostCityRush.cs Normal file
View File

@ -0,0 +1,168 @@
using System;
using System.Collections.Generic;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using static app.MapAreaStruc;
namespace app
{
public class LostCityRush
{
Form1 Form1_0;
public int CurrentStep = 0;
public bool ScriptDone = false;
public Position ChestPos = new Position { X = 0, Y = 0 };
public void SetForm1(Form1 form1_1)
{
Form1_0 = form1_1;
}
public void ResetVars()
{
CurrentStep = 0;
ScriptDone = false;
}
public void RunScript()
{
Form1_0.Town_0.ScriptTownAct = 5; //set to town act 5 when running this script
if (Form1_0.Town_0.GetInTown())
{
Form1_0.SetGameStatus("GO TO WP");
CurrentStep = 0;
Form1_0.Town_0.GoToWPArea(2, 5);
}
else
{
if (CurrentStep == 0)
{
Form1_0.SetGameStatus("DOING LOST CITY (AMMY)");
Form1_0.Battle_0.CastDefense();
Form1_0.WaitDelay(15);
if ((Enums.Area) Form1_0.PlayerScan_0.levelNo == Enums.Area.LostCity)
{
Form1_0.Town_0.SpawnTPButNotUseIT();
CurrentStep++;
}
else
{
Form1_0.Town_0.GoToTown();
}
}
if (CurrentStep == 1)
{
/*Form1_0.MoveToPath_0.MoveToArea(Enums.Area.ValleyOfSnakes);
CurrentStep++;
}
if (CurrentStep == 2)
{
if (Form1_0.PlayerScan_0.levelNo != (int)Enums.Area.ValleyOfSnakes)
{
CurrentStep--;
return;
}*/
Form1_0.MoveToPath_0.MoveToArea(Enums.Area.ClawViperTempleLevel1);
CurrentStep++;
}
if (CurrentStep == 2)
{
if (Form1_0.PlayerScan_0.levelNo != (int)Enums.Area.ClawViperTempleLevel1)
{
CurrentStep--;
return;
}
Form1_0.MoveToPath_0.MoveToArea(Enums.Area.ClawViperTempleLevel2);
CurrentStep++;
}
if (CurrentStep == 3)
{
if (Form1_0.PlayerScan_0.levelNo != (int)Enums.Area.ClawViperTempleLevel2)
{
CurrentStep--;
return;
}
ChestPos = Form1_0.MapAreaStruc_0.GetPositionOfObject("object", "TaintedSunAltar", (int) Enums.Area.HallsOfTheDeadLevel3, new List<int>());
if (ChestPos.X != 0 && ChestPos.Y != 0)
{
Form1_0.MoveToPath_0.MoveToThisPos(ChestPos);
//repeat clic on chest
/*int tryyy = 0;
while (tryyy <= 25)
{
Dictionary<string, int> itemScreenPos = Form1_0.GameStruc_0.World2Screen(Form1_0.PlayerScan_0.xPosFinal, Form1_0.PlayerScan_0.yPosFinal, ChestPos.X, ChestPos.Y);
Form1_0.KeyMouse_0.MouseClicc(itemScreenPos["x"], itemScreenPos["y"]);
Form1_0.PlayerScan_0.GetPositions();
tryyy++;
}*/
Form1_0.Town_0.TPSpawned = false;
CurrentStep++;
}
else
{
Form1_0.method_1("Ammy location not detected!", Color.Red);
Form1_0.Town_0.TPSpawned = false;
CurrentStep++;
//ScriptDone = true;
//return;
}
}
if (CurrentStep == 4)
{
if (!Form1_0.Town_0.TPSpawned) Form1_0.Town_0.SpawnTPButNotUseIT();
CurrentStep++;
}
if (CurrentStep == 5)
{
Form1_0.SetGameStatus("Ammy waiting on leecher");
Form1_0.Battle_0.DoBattleScript(25);
//get leecher infos
Form1_0.PlayerScan_0.GetLeechPositions();
if (Form1_0.PlayerScan_0.LeechlevelNo == (int)Enums.Area.ClawViperTempleLevel2)
{
CurrentStep++;
}
}
if (CurrentStep == 6)
{
Form1_0.SetGameStatus("Ammy waiting on leecher #2");
Form1_0.Battle_0.DoBattleScript(25);
//get leecher infos
Form1_0.PlayerScan_0.GetLeechPositions();
if (Form1_0.PlayerScan_0.LeechlevelNo == (int)Enums.Area.LutGholein)
{
ScriptDone = true;
}
}
}
}
}
}

174
Bots/Rush/MephistoRush.cs Normal file
View File

@ -0,0 +1,174 @@
using System;
using System.Collections.Generic;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using static app.MapAreaStruc;
namespace app
{
public class MephistoRush
{
Form1 Form1_0;
public int CurrentStep = 0;
public bool ScriptDone = false;
public void SetForm1(Form1 form1_1)
{
Form1_0 = form1_1;
}
public void ResetVars()
{
CurrentStep = 0;
ScriptDone = false;
}
public void RunScript()
{
Form1_0.Town_0.ScriptTownAct = 5; //set to town act 5 when running this script
if (Form1_0.Town_0.GetInTown())
{
Form1_0.SetGameStatus("GO TO WP");
CurrentStep = 0;
Form1_0.Town_0.GoToWPArea(3, 8);
}
else
{
if (CurrentStep == 0)
{
Form1_0.SetGameStatus("DOING MEPHISTO");
Form1_0.Battle_0.CastDefense();
Form1_0.WaitDelay(15);
if ((Enums.Area) Form1_0.PlayerScan_0.levelNo == Enums.Area.DuranceOfHateLevel2)
{
Form1_0.Town_0.SpawnTPButNotUseIT();
CurrentStep++;
}
else
{
Form1_0.Town_0.GoToTown();
}
}
if (CurrentStep == 1)
{
Form1_0.MoveToPath_0.MoveToArea(Enums.Area.DuranceOfHateLevel3);
CurrentStep++;
}
if (CurrentStep == 2)
{
if ((Enums.Area)Form1_0.PlayerScan_0.levelNo == Enums.Area.DuranceOfHateLevel2)
{
CurrentStep = 1;
return;
}
/*X: 22561,
Y: 9553,*/
if (Form1_0.Mover_0.MoveToLocation(17568, 8069))
{
Form1_0.Town_0.TPSpawned = false;
CurrentStep++;
}
}
if (CurrentStep == 3)
{
if ((Enums.Area)Form1_0.PlayerScan_0.levelNo == Enums.Area.DuranceOfHateLevel2)
{
CurrentStep = 1;
return;
}
if (!Form1_0.Town_0.TPSpawned) Form1_0.Town_0.SpawnTPButNotUseIT();
Form1_0.Battle_0.DoBattleScript(25);
//get leecher infos
Form1_0.PlayerScan_0.GetLeechPositions();
if (Form1_0.PlayerScan_0.LeechlevelNo == (int)Enums.Area.DuranceOfHateLevel3)
{
CurrentStep++;
}
}
if (CurrentStep == 4)
{
if ((Enums.Area)Form1_0.PlayerScan_0.levelNo == Enums.Area.DuranceOfHateLevel2)
{
CurrentStep = 1;
return;
}
if (!Form1_0.Town_0.TPSpawned) Form1_0.Town_0.SpawnTPButNotUseIT();
Form1_0.Potions_0.CanUseSkillForRegen = false;
Form1_0.SetGameStatus("KILLING MEPHISTO");
if (Form1_0.MobsStruc_0.GetMobs("getBossName", "Mephisto", false, 200, new List<long>()))
{
if (Form1_0.MobsStruc_0.MobsHP > 0)
{
Form1_0.Battle_0.RunBattleScriptOnThisMob("getBossName", "Mephisto");
}
else
{
Form1_0.ItemsStruc_0.GetItems(true);
Form1_0.ItemsStruc_0.GetItems(true);
Form1_0.ItemsStruc_0.GetItems(true);
Form1_0.ItemsStruc_0.GetItems(true);
Form1_0.ItemsStruc_0.GetItems(true);
Form1_0.ItemsStruc_0.GetItems(true);
Form1_0.ItemsStruc_0.GetItems(true);
Form1_0.ItemsStruc_0.GetItems(true);
Form1_0.ItemsStruc_0.GetItems(true);
Form1_0.ItemsStruc_0.GetItems(true);
Form1_0.ItemsStruc_0.GrabAllItemsForGold();
Form1_0.Potions_0.CanUseSkillForRegen = true;
//Position ThisFinalPosition = Form1_0.MapAreaStruc_0.GetPositionOfObject("object", "portal", 102 - 1, new List<int>() { });
//if (Form1_0.Mover_0.MoveToLocation(ThisFinalPosition.X, ThisFinalPosition.Y))
while (Form1_0.PlayerScan_0.levelNo == (int)Enums.Area.DuranceOfHateLevel3)
{
if (Form1_0.Mover_0.MoveToLocation(17601, 8070))
{
Dictionary<string, int> itemScreenPos = Form1_0.GameStruc_0.World2Screen(Form1_0.PlayerScan_0.xPosFinal, Form1_0.PlayerScan_0.yPosFinal, 17601, 8070);
//Dictionary<string, int> itemScreenPos = Form1_0.GameStruc_0.World2Screen(Form1_0.PlayerScan_0.xPosFinal, Form1_0.PlayerScan_0.yPosFinal, ThisFinalPosition.X, ThisFinalPosition.Y);
Form1_0.KeyMouse_0.MouseClicc(itemScreenPos["x"], itemScreenPos["y"] - 15);
Form1_0.PlayerScan_0.GetPositions();
}
}
ScriptDone = true;
return;
//Form1_0.LeaveGame(true);
}
}
else
{
Form1_0.method_1("Mephisto not detected!", Color.Red);
//baal not detected...
Form1_0.ItemsStruc_0.GetItems(true);
if (Form1_0.MobsStruc_0.GetMobs("getBossName", "Mephisto", false, 200, new List<long>())) return; //redetect baal?
Form1_0.ItemsStruc_0.GrabAllItemsForGold();
if (Form1_0.MobsStruc_0.GetMobs("getBossName", "Mephisto", false, 200, new List<long>())) return; //redetect baal?
Form1_0.Potions_0.CanUseSkillForRegen = true;
ScriptDone = true;
return;
//Form1_0.LeaveGame(true);
}
}
}
}
}
}

141
Bots/Rush/RadamentRush.cs Normal file
View File

@ -0,0 +1,141 @@
using System;
using System.Collections.Generic;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using static app.MapAreaStruc;
namespace app
{
public class RadamentRush
{
Form1 Form1_0;
public int CurrentStep = 0;
public bool ScriptDone = false;
public Position RadamentPosition = new Position { X = 0, Y = 0 };
public void SetForm1(Form1 form1_1)
{
Form1_0 = form1_1;
}
public void ResetVars()
{
CurrentStep = 0;
ScriptDone = false;
}
public void RunScript()
{
Form1_0.Town_0.ScriptTownAct = 5; //set to town act 5 when running this script
if (Form1_0.Town_0.GetInTown())
{
Form1_0.SetGameStatus("GO TO WP");
CurrentStep = 0;
Form1_0.Town_0.GoToWPArea(2, 1);
}
else
{
if (CurrentStep == 0)
{
Form1_0.SetGameStatus("DOING RADAMENT");
Form1_0.Battle_0.CastDefense();
Form1_0.WaitDelay(15);
if ((Enums.Area) Form1_0.PlayerScan_0.levelNo == Enums.Area.SewersLevel2Act2)
{
Form1_0.Town_0.SpawnTPButNotUseIT();
CurrentStep++;
}
else
{
Form1_0.Town_0.GoToTown();
}
}
if (CurrentStep == 1)
{
Form1_0.MoveToPath_0.MoveToArea(Enums.Area.SewersLevel3Act2);
CurrentStep++;
}
if (CurrentStep == 2)
{
RadamentPosition = Form1_0.MapAreaStruc_0.GetPositionOfObject("npc", "Radament2", (int) Enums.Area.SewersLevel3Act2, new List<int>());
if (RadamentPosition.X != 0 && RadamentPosition.Y != 0)
{
Form1_0.MoveToPath_0.MoveToThisPos(RadamentPosition);
//repeat clic on tree
/*int tryyy = 0;
while (tryyy <= 25)
{
Dictionary<string, int> itemScreenPos = Form1_0.GameStruc_0.World2Screen(Form1_0.PlayerScan_0.xPosFinal, Form1_0.PlayerScan_0.yPosFinal, RadamentPosition.X, RadamentPosition.Y);
Form1_0.KeyMouse_0.MouseClicc(itemScreenPos["x"], itemScreenPos["y"]);
Form1_0.PlayerScan_0.GetPositions();
tryyy++;
}*/
CurrentStep++;
}
else
{
Form1_0.method_1("Radament location not detected!", Color.Red);
ScriptDone = true;
return;
}
}
if (CurrentStep == 3)
{
Form1_0.SetGameStatus("Radament clearing");
if (!Form1_0.Battle_0.DoBattleScript(25))
{
Form1_0.MoveToPath_0.MoveToThisPos(RadamentPosition);
Form1_0.Town_0.TPSpawned = false;
CurrentStep++;
}
}
if (CurrentStep == 4)
{
Form1_0.SetGameStatus("Radament waiting on leecher");
if (!Form1_0.Town_0.TPSpawned) Form1_0.Town_0.SpawnTPButNotUseIT();
Form1_0.Battle_0.DoBattleScript(25);
//get leecher infos
Form1_0.PlayerScan_0.GetLeechPositions();
if (Form1_0.PlayerScan_0.LeechlevelNo == (int)Enums.Area.SewersLevel3Act2)
{
CurrentStep++;
}
}
if (CurrentStep == 5)
{
Form1_0.SetGameStatus("Radament waiting on leecher #2");
Form1_0.Battle_0.DoBattleScript(25);
//get leecher infos
Form1_0.PlayerScan_0.GetLeechPositions();
if (Form1_0.PlayerScan_0.LeechlevelNo == (int)Enums.Area.LutGholein)
{
ScriptDone = true;
}
}
}
}
}
}

151
Bots/Rush/SummonerRush.cs Normal file
View File

@ -0,0 +1,151 @@
using System;
using System.Collections.Generic;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using static app.MapAreaStruc;
namespace app
{
public class SummonerRush
{
Form1 Form1_0;
public int CurrentStep = 0;
public bool ScriptDone = false;
public Position WaitPos = new Position { X = 0, Y = 0 };
public void SetForm1(Form1 form1_1)
{
Form1_0 = form1_1;
}
public void ResetVars()
{
CurrentStep = 0;
ScriptDone = false;
}
public void RunScript()
{
Form1_0.Town_0.ScriptTownAct = 5; //set to town act 5 when running this script
if (Form1_0.Town_0.GetInTown())
{
Form1_0.SetGameStatus("GO TO WP");
CurrentStep = 0;
Form1_0.Town_0.GoToWPArea(2, 7);
}
else
{
if (CurrentStep == 0)
{
Form1_0.SetGameStatus("DOING SUMMONER");
Form1_0.Battle_0.CastDefense();
Form1_0.WaitDelay(15);
if ((Enums.Area) Form1_0.PlayerScan_0.levelNo == Enums.Area.ArcaneSanctuary)
{
Form1_0.Town_0.SpawnTPButNotUseIT();
CurrentStep++;
}
else
{
Form1_0.Town_0.GoToTown();
}
}
if (CurrentStep == 1)
{
Form1_0.MoveToPath_0.MoveToNPC("Summoner", 45);
Form1_0.PlayerScan_0.GetPositions();
WaitPos.X = Form1_0.PlayerScan_0.xPos;
WaitPos.Y = Form1_0.PlayerScan_0.yPos;
CurrentStep++;
}
if (CurrentStep == 2)
{
if (!Form1_0.Battle_0.DoBattleScript(25))
{
Form1_0.MoveToPath_0.MoveToThisPos(WaitPos);
Form1_0.Town_0.TPSpawned = false;
CurrentStep++;
}
Form1_0.Town_0.TPSpawned = false;
CurrentStep++;
}
if (CurrentStep == 3)
{
Form1_0.SetGameStatus("Summoner waiting on leecher");
if (!Form1_0.Town_0.TPSpawned) Form1_0.Town_0.SpawnTPButNotUseIT();
Form1_0.Battle_0.DoBattleScript(25);
//get leecher infos
Form1_0.PlayerScan_0.GetLeechPositions();
if (Form1_0.PlayerScan_0.LeechlevelNo == (int)Enums.Area.ArcaneSanctuary)
{
CurrentStep++;
}
}
if (CurrentStep == 4)
{
Form1_0.Potions_0.CanUseSkillForRegen = false;
Form1_0.SetGameStatus("KILLING SUMMONER");
if (Form1_0.MobsStruc_0.GetMobs("getBossName", "Summoner", false, 200, new List<long>()))
{
if (Form1_0.MobsStruc_0.MobsHP > 0)
{
Form1_0.Battle_0.RunBattleScriptOnThisMob("getBossName", "Summoner");
}
else
{
Form1_0.ItemsStruc_0.GetItems(true);
Form1_0.ItemsStruc_0.GetItems(true);
Form1_0.ItemsStruc_0.GetItems(true);
Form1_0.ItemsStruc_0.GetItems(true);
Form1_0.ItemsStruc_0.GetItems(true);
Form1_0.ItemsStruc_0.GetItems(true);
Form1_0.ItemsStruc_0.GetItems(true);
Form1_0.ItemsStruc_0.GetItems(true);
Form1_0.ItemsStruc_0.GetItems(true);
Form1_0.ItemsStruc_0.GetItems(true);
Form1_0.ItemsStruc_0.GrabAllItemsForGold();
Form1_0.Potions_0.CanUseSkillForRegen = true;
ScriptDone = true;
return;
//Form1_0.LeaveGame(true);
}
}
else
{
Form1_0.method_1("Summoner not detected!", Color.Red);
//baal not detected...
Form1_0.ItemsStruc_0.GetItems(true);
if (Form1_0.MobsStruc_0.GetMobs("getBossName", "Summoner", false, 200, new List<long>())) return; //redetect baal?
Form1_0.ItemsStruc_0.GrabAllItemsForGold();
if (Form1_0.MobsStruc_0.GetMobs("getBossName", "Summoner", false, 200, new List<long>())) return; //redetect baal?
Form1_0.Potions_0.CanUseSkillForRegen = true;
ScriptDone = true;
return;
//Form1_0.LeaveGame(true);
}
}
}
}
}
}

191
Bots/Rush/TravincalRush.cs Normal file
View File

@ -0,0 +1,191 @@
using System;
using System.Collections.Generic;
using System.Drawing;
using System.IO;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using static app.MapAreaStruc;
namespace app
{
public class TravincalRush
{
Form1 Form1_0;
public int CurrentStep = 0;
public bool ScriptDone = false;
public Position OrbPos = new Position { X = 0, Y = 0 };
public List<long> IgnoredCouncilMembers = new List<long>();
public bool KilledAnyMember = false;
public Position PortalPosition = new Position { X = 0, Y = 0 };
public void SetForm1(Form1 form1_1)
{
Form1_0 = form1_1;
}
public void ResetVars()
{
CurrentStep = 0;
ScriptDone = false;
}
public void RunScript()
{
Form1_0.Town_0.ScriptTownAct = 5; //set to town act 5 when running this script
if (Form1_0.Town_0.GetInTown())
{
Form1_0.SetGameStatus("GO TO WP");
CurrentStep = 0;
Form1_0.Town_0.GoToWPArea(3, 7);
}
else
{
if (CurrentStep == 0)
{
Form1_0.SetGameStatus("DOING TRAVINCAL");
Form1_0.Battle_0.CastDefense();
Form1_0.WaitDelay(15);
if ((Enums.Area) Form1_0.PlayerScan_0.levelNo == Enums.Area.Travincal)
{
Form1_0.Town_0.SpawnTPButNotUseIT();
PortalPosition.X = Form1_0.PlayerScan_0.xPos + 85;
PortalPosition.Y = Form1_0.PlayerScan_0.yPos - 139;
CurrentStep++;
}
else
{
Form1_0.Town_0.GoToTown();
}
}
if (CurrentStep == 1)
{
Form1_0.MoveToPath_0.MoveToThisPos(PortalPosition);
CurrentStep++;
}
if (CurrentStep == 2)
{
Form1_0.SetGameStatus("Travincal clearing");
if (!Form1_0.Battle_0.DoBattleScript(25))
{
Form1_0.MoveToPath_0.MoveToThisPos(PortalPosition);
Form1_0.Town_0.TPSpawned = false;
CurrentStep++;
}
}
if (CurrentStep == 3)
{
Form1_0.SetGameStatus("Travincal waiting on leecher");
if (!Form1_0.Town_0.TPSpawned) Form1_0.Town_0.SpawnTPButNotUseIT();
Form1_0.Battle_0.DoBattleScript(25);
//get leecher infos
Form1_0.PlayerScan_0.GetLeechPositions();
if (Form1_0.PlayerScan_0.LeechlevelNo == (int)Enums.Area.Travincal)
{
CurrentStep++;
}
}
if (CurrentStep == 4)
{
OrbPos = Form1_0.MapAreaStruc_0.GetPositionOfObject("object", "CompellingOrb", (int)Enums.Area.Travincal, new List<int>());
if (OrbPos.X != 0 && OrbPos.Y != 0)
{
Form1_0.MoveToPath_0.MoveToThisPos(OrbPos);
CurrentStep++;
}
else
{
Form1_0.method_1("Kahlim Orb location not detected!", Color.Red);
ScriptDone = true;
return;
}
}
if (CurrentStep == 5)
{
Form1_0.Potions_0.CanUseSkillForRegen = false;
Form1_0.SetGameStatus("KILLING TRAVINCAL COUNCIL");
if (Form1_0.MobsStruc_0.GetMobs("getSuperUniqueName", "Council Member", false, 200, IgnoredCouncilMembers))
{
if (Form1_0.MobsStruc_0.MobsHP > 0)
{
Form1_0.Battle_0.RunBattleScriptOnThisMob("getSuperUniqueName", "Council Member");
}
else
{
KilledAnyMember = true;
IgnoredCouncilMembers.Add(Form1_0.MobsStruc_0.MobsPointerLocation);
}
}
else
{
if (!KilledAnyMember)
{
Form1_0.method_1("Council Members not detected!", Color.Red);
//baal not detected...
Form1_0.ItemsStruc_0.GetItems(true);
if (Form1_0.MobsStruc_0.GetMobs("getSuperUniqueName", "Council Member", false, 200, new List<long>())) return; //redetect baal?
Form1_0.ItemsStruc_0.GrabAllItemsForGold();
if (Form1_0.MobsStruc_0.GetMobs("getSuperUniqueName", "Council Member", false, 200, new List<long>())) return; //redetect baal?
Form1_0.Potions_0.CanUseSkillForRegen = true;
ScriptDone = true;
return;
}
else
{
Form1_0.Town_0.SpawnTPButNotUseIT();
CurrentStep++;
}
}
}
if (CurrentStep == 6)
{
Form1_0.SetGameStatus("Travincal waiting on leecher #2");
Form1_0.Battle_0.DoBattleScript(25);
//get leecher infos
Form1_0.PlayerScan_0.GetLeechPositions();
if (Form1_0.PlayerScan_0.LeechlevelNo == (int)Enums.Area.KurastDocks)
{
Form1_0.ItemsStruc_0.GetItems(true);
Form1_0.ItemsStruc_0.GetItems(true);
Form1_0.ItemsStruc_0.GetItems(true);
Form1_0.ItemsStruc_0.GetItems(true);
Form1_0.ItemsStruc_0.GetItems(true);
Form1_0.ItemsStruc_0.GetItems(true);
Form1_0.ItemsStruc_0.GetItems(true);
Form1_0.ItemsStruc_0.GetItems(true);
Form1_0.ItemsStruc_0.GetItems(true);
Form1_0.ItemsStruc_0.GetItems(true);
Form1_0.ItemsStruc_0.GrabAllItemsForGold();
Form1_0.Potions_0.CanUseSkillForRegen = true;
ScriptDone = true;
}
}
}
}
}
}

162
Bots/Rush/TristramRush.cs Normal file
View File

@ -0,0 +1,162 @@
using System;
using System.Collections.Generic;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using static app.MapAreaStruc;
namespace app
{
public class TristramRush
{
Form1 Form1_0;
public int CurrentStep = 0;
public bool ScriptDone = false;
public Position TristramPos = new Position { X = 0, Y = 0 };
public void SetForm1(Form1 form1_1)
{
Form1_0 = form1_1;
}
public void ResetVars()
{
CurrentStep = 0;
ScriptDone = false;
}
public void RunScript()
{
Form1_0.Town_0.ScriptTownAct = 5; //set to town act 5 when running this script
if (Form1_0.Town_0.GetInTown())
{
Form1_0.SetGameStatus("GO TO WP");
CurrentStep = 0;
Form1_0.Town_0.GoToWPArea(1, 2);
}
else
{
if (CurrentStep == 0)
{
Form1_0.SetGameStatus("DOING TRISTRAM");
Form1_0.Battle_0.CastDefense();
Form1_0.WaitDelay(15);
if ((Enums.Area)Form1_0.PlayerScan_0.levelNo == Enums.Area.StonyField)
{
Form1_0.Town_0.SpawnTPButNotUseIT();
CurrentStep++;
}
else
{
Form1_0.Town_0.GoToTown();
}
}
if (CurrentStep == 1)
{
TristramPos = Form1_0.MapAreaStruc_0.GetPositionOfObject("object", "CairnStoneAlpha", (int)Enums.Area.StonyField, new List<int>());
if (TristramPos.X != 0 && TristramPos.Y != 0)
{
Form1_0.MoveToPath_0.MoveToThisPos(TristramPos);
CurrentStep++;
}
else
{
Form1_0.method_1("Tristram location not detected!", Color.Red);
ScriptDone = true;
return;
}
}
if (CurrentStep == 2)
{
Form1_0.SetGameStatus("Tristram clearing stones");
if (!Form1_0.Battle_0.DoBattleScript(25))
{
Position ThisTPPos = new Position { X = TristramPos.X - 10, Y = TristramPos.Y + 5 };
Form1_0.MoveToPath_0.MoveToThisPos(TristramPos);
Form1_0.Town_0.TPSpawned = false;
CurrentStep++;
}
}
if (CurrentStep == 3)
{
Form1_0.SetGameStatus("Tristram waiting on leecher");
if (!Form1_0.Town_0.TPSpawned) Form1_0.Town_0.SpawnTPButNotUseIT();
Form1_0.Battle_0.DoBattleScript(25);
//get leecher infos
Form1_0.PlayerScan_0.GetLeechPositions();
if (Form1_0.PlayerScan_0.LeechlevelNo == (int)Enums.Area.StonyField)
{
CurrentStep++;
}
}
if (CurrentStep == 4)
{
Form1_0.SetGameStatus("Tristram waiting for Tristram portal");
if (Form1_0.ObjectsStruc_0.GetObjects("PermanentTownPortal", true, new List<uint>(), 60))
{
Form1_0.Mover_0.MoveToLocation(Form1_0.ObjectsStruc_0.itemx, Form1_0.ObjectsStruc_0.itemy);
Dictionary<string, int> itemScreenPos = Form1_0.GameStruc_0.World2Screen(Form1_0.PlayerScan_0.xPosFinal, Form1_0.PlayerScan_0.yPosFinal, Form1_0.ObjectsStruc_0.itemx, Form1_0.ObjectsStruc_0.itemy);
Form1_0.KeyMouse_0.MouseClicc(itemScreenPos["x"], itemScreenPos["y"] - 15);
Form1_0.WaitDelay(100);
}
if (Form1_0.PlayerScan_0.levelNo == (int)Enums.Area.Tristram)
{
CurrentStep++;
}
}
if (CurrentStep == 5)
{
Form1_0.SetGameStatus("Doing Tristram");
if (Form1_0.ObjectsStruc_0.GetObjects("CainGibbet", true, new List<uint>()))
{
if (Form1_0.Mover_0.MoveToLocation(Form1_0.ObjectsStruc_0.itemx, Form1_0.ObjectsStruc_0.itemy))
{
//repeat clic on tree
int tryyy = 0;
while (tryyy <= 15)
{
Dictionary<string, int> itemScreenPos = Form1_0.GameStruc_0.World2Screen(Form1_0.PlayerScan_0.xPosFinal, Form1_0.PlayerScan_0.yPosFinal, Form1_0.ObjectsStruc_0.itemx, Form1_0.ObjectsStruc_0.itemy);
Form1_0.KeyMouse_0.MouseClicc(itemScreenPos["x"], itemScreenPos["y"] - 15);
Form1_0.WaitDelay(4);
tryyy++;
}
CurrentStep++;
}
}
}
if (CurrentStep == 6)
{
Form1_0.SetGameStatus("Clearing Tristram");
if (!Form1_0.Battle_0.DoBattleScript(25))
{
ScriptDone = true;
}
}
}
}
}
}

136
Bots/Travincal.cs Normal file
View File

@ -0,0 +1,136 @@
using System;
using System.Collections.Generic;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using static app.MapAreaStruc;
namespace app
{
public class Travincal
{
Form1 Form1_0;
public int CurrentStep = 0;
public bool ScriptDone = false;
public Position OrbPos = new Position { X = 0, Y = 0 };
public List<long> IgnoredCouncilMembers = new List<long>();
public bool KilledAnyMember = false;
public void SetForm1(Form1 form1_1)
{
Form1_0 = form1_1;
}
public void ResetVars()
{
CurrentStep = 0;
ScriptDone = false;
}
public void RunScript()
{
Form1_0.Town_0.ScriptTownAct = 5; //set to town act 5 when running this script
if (Form1_0.Town_0.GetInTown())
{
Form1_0.SetGameStatus("GO TO WP");
CurrentStep = 0;
Form1_0.Town_0.GoToWPArea(2, 7);
}
else
{
if (CurrentStep == 0)
{
Form1_0.SetGameStatus("DOING TRAVINCAL");
Form1_0.Battle_0.CastDefense();
Form1_0.WaitDelay(15);
if ((Enums.Area) Form1_0.PlayerScan_0.levelNo == Enums.Area.Travincal)
{
CurrentStep++;
}
else
{
Form1_0.Town_0.GoToTown();
}
}
if (CurrentStep == 1)
{
OrbPos = Form1_0.MapAreaStruc_0.GetPositionOfObject("object", "CompellingOrb", (int)Enums.Area.HallsOfTheDeadLevel3, new List<int>());
if (OrbPos.X != 0 && OrbPos.Y != 0)
{
Form1_0.MoveToPath_0.MoveToThisPos(OrbPos);
CurrentStep++;
}
else
{
Form1_0.method_1("Kahlim Orb location not detected!", Color.Red);
ScriptDone = true;
return;
}
}
if (CurrentStep == 2)
{
Form1_0.Potions_0.CanUseSkillForRegen = false;
Form1_0.SetGameStatus("KILLING TRAVINCAL COUNCIL");
if (Form1_0.MobsStruc_0.GetMobs("getSuperUniqueName", "Council Member", false, 200, IgnoredCouncilMembers))
{
if (Form1_0.MobsStruc_0.MobsHP > 0)
{
Form1_0.Battle_0.RunBattleScriptOnThisMob("getSuperUniqueName", "Council Member");
}
else
{
KilledAnyMember = true;
IgnoredCouncilMembers.Add(Form1_0.MobsStruc_0.MobsPointerLocation);
}
}
else
{
if (!KilledAnyMember)
{
Form1_0.method_1("Council Members not detected!", Color.Red);
//baal not detected...
Form1_0.ItemsStruc_0.GetItems(true);
if (Form1_0.MobsStruc_0.GetMobs("getSuperUniqueName", "Council Member", false, 200, new List<long>())) return; //redetect baal?
Form1_0.ItemsStruc_0.GrabAllItemsForGold();
if (Form1_0.MobsStruc_0.GetMobs("getSuperUniqueName", "Council Member", false, 200, new List<long>())) return; //redetect baal?
Form1_0.Potions_0.CanUseSkillForRegen = true;
ScriptDone = true;
return;
}
else
{
Form1_0.ItemsStruc_0.GetItems(true);
Form1_0.ItemsStruc_0.GetItems(true);
Form1_0.ItemsStruc_0.GetItems(true);
Form1_0.ItemsStruc_0.GetItems(true);
Form1_0.ItemsStruc_0.GetItems(true);
Form1_0.ItemsStruc_0.GetItems(true);
Form1_0.ItemsStruc_0.GetItems(true);
Form1_0.ItemsStruc_0.GetItems(true);
Form1_0.ItemsStruc_0.GetItems(true);
Form1_0.ItemsStruc_0.GetItems(true);
Form1_0.ItemsStruc_0.GrabAllItemsForGold();
Form1_0.Potions_0.CanUseSkillForRegen = true;
ScriptDone = true;
return;
//Form1_0.LeaveGame(true);
}
}
}
}
}
}
}

View File

@ -1,95 +1,115 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace app
{
public static class CharConfig
{
//#######################################
//SHORTCUT KEY TO START/STOP BOT
//#######################################
public static int StartStopKey = 0x65; //numpad5 -> refer to virtual key code (vkcode)
//#######################################
//SHORTCUT KEYS SETTINGS (FOR PALADIN)
//#######################################
public static System.Windows.Forms.Keys KeySkillAttack = Keys.F1; //hammer
public static System.Windows.Forms.Keys KeySkillAura = Keys.F2; //concentration
public static System.Windows.Forms.Keys KeySkillfastMoveAtTown = Keys.F7; //vigor
public static System.Windows.Forms.Keys KeySkillfastMoveOutsideTown = Keys.F7; //refer to teleport if have teleport else vigor
public static System.Windows.Forms.Keys KeySkillDefenseAura = Keys.F6; //defiance
public static System.Windows.Forms.Keys KeySkillCastDefense = Keys.F5; //sacred shield
public static System.Windows.Forms.Keys KeySkillLifeAura = Keys.F3; //prayer
//#######################################
//BELT AND INVENTORY SETTINGS
//#######################################
public static int[] BeltPotTypeToHave = new int[4] { 0, 0, 1, 3 }; //HP-HP-MANA-FULL RV -> 0=HP, 1=MANA, 2=RV, 3=FULL RV
public static int[] InventoryDontCheckItem = new int[40]
{
0, 0, 0, 0, 0, 1, 1, 1, 1, 1, //IF EQUAL 0, WE CAN USE THIS SPOT FOR BOT
0, 0, 0, 0, 0, 1, 1, 1, 1, 1, //IF EQUAL 0, WE CAN USE THIS SPOT FOR BOT
0, 0, 0, 0, 1, 1, 1, 1, 1, 1, //IF EQUAL 0, WE CAN USE THIS SPOT FOR BOT
0, 0, 0, 0, 1, 1, 1, 1, 1, 1 //IF EQUAL 0, WE CAN USE THIS SPOT FOR BOT
};
public static string DummyItemSharedStash1 = "Key"; //PUT THIS DUMMY ITEM IN SHARED STASH1 SO ITEMS DETECTION CORRECTLY APPLY TO THIS STASH
public static string DummyItemSharedStash2 = "Scroll of Identify"; //PUT THIS DUMMY ITEM IN SHARED STASH2 SO ITEMS DETECTION CORRECTLY APPLY TO THIS STASH
public static string DummyItemSharedStash3 = "Scroll of Town Portal"; //PUT THIS DUMMY ITEM IN SHARED STASH3 SO ITEMS DETECTION CORRECTLY APPLY TO THIS STASH
//#######################################
//PLAYER SETTINGS
//#######################################
public static string PlayerCharName = ""; //CHAR NAME
public static bool UseTeleport = true;
public static int ChickenHP = 22; //VALUE IN PERCENT
public static int TakeHPPotUnder = 85; //VALUE IN PERCENT
public static int TakeRVPotUnder = 35; //VALUE IN PERCENT
public static int TakeManaPotUnder = 15; //VALUE IN PERCENT
public static int GambleAboveGoldAmount = 500000; //IF GOLD IN STASH EXCEED AMOUNT, WE GAMBLE FOR GOLD
public static int GambleUntilGoldAmount = 100000; //GAMBLE UNTIL THIS LOW GOLD AMOUNT IS REACHED
public static bool PlayerAttackWithRightHand = true;
public static (int, int) KeysLocationInInventory = (8, 0);
//#######################################
//MERC SETTINGS
//#######################################
public static bool UsingMerc = true;
public static int MercTakeHPPotUnder = 40; //NOT YET WORKING
//#######################################
//BOT SETTINGS (USE ONLY CHAOS OR BAAL, NOT BOTH AT SAME TIME)
//#######################################
public static int MaxGameTime = 7; //9MINS -> TIME IN MINUTES
public static bool RunMephistoScript = false;
public static bool RunAndarielScript = false;
public static bool RunCountessScript = false;
public static bool RunSummonerScript = false;
public static bool RunDurielScript = false;
public static bool RunChaosScript = false; //CHAOS LEECH SCRIPT **NOT FINISHED**
public static bool RunLowerKurastScript = false; //LOWER KURAST SCRIPT
public static bool RunBaalLeechScript = true; //BAAL LEECH SCRIPT
public static bool RunItemGrabScriptOnly = false;
//NOT IN GAME SCRIPT (SEARCH GAMES OR CREATE A NEW GAME)
public static bool RunChaosSearchGameScript = false; //CHAOS GAMES SEARCHER SCRIPT
public static bool RunBaalSearchGameScript = true; //BAAL GAMES SEARCHER SCRIPT
public static bool RunGameMakerScript = false; //CREATE NEW GAME SCRIPT
public static string GameName = "LOWERKTEST"; //SET GAME NAME, IF USING GAME MAKER
public static string GamePass = "33"; //SET GAME PASS, IF USING GAME MAKER
public static int GameDifficulty = 2; //0 = normal, 1 = nighmare, 2 = hell
//#######################################
//GAME/PC SCREEN SETTINGS
//#######################################
//public static int ScreenX = 1920;
//public static int ScreenY = 1080;
//public static int ScreenYMenu = 180; //REMOVE 180 PIXEL FROM THE BOTTOM SCREEN TO NOT CLIC ANY BOTTOM MENU BUTTONS
}
}
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace app
{
public static class CharConfig
{
//#######################################
//SHORTCUT KEY TO START/STOP BOT
//#######################################
public static int StartStopKey = 0x65; //numpad5 -> refer to virtual key code (vkcode)
//#######################################
//SHORTCUT KEYS SETTINGS (FOR PALADIN)
//#######################################
public static System.Windows.Forms.Keys KeySkillAttack = Keys.F1; //hammer
public static System.Windows.Forms.Keys KeySkillAura = Keys.F2; //concentration
public static System.Windows.Forms.Keys KeySkillfastMoveAtTown = Keys.F7; //vigor
public static System.Windows.Forms.Keys KeySkillfastMoveOutsideTown = Keys.F7; //refer to teleport if have teleport else vigor
public static System.Windows.Forms.Keys KeySkillDefenseAura = Keys.F6; //defiance
public static System.Windows.Forms.Keys KeySkillCastDefense = Keys.F5; //sacred shield
public static System.Windows.Forms.Keys KeySkillLifeAura = Keys.F3; //prayer
//#######################################
//BELT AND INVENTORY SETTINGS
//#######################################
public static int[] BeltPotTypeToHave = new int[4] { 0, 0, 1, 3 }; //HP-HP-MANA-FULL RV -> 0=HP, 1=MANA, 2=RV, 3=FULL RV
public static int[] InventoryDontCheckItem = new int[40]
{
0, 0, 0, 0, 0, 1, 1, 1, 1, 1, //IF EQUAL 0, WE CAN USE THIS SPOT FOR BOT
0, 0, 0, 0, 0, 1, 1, 1, 1, 1, //IF EQUAL 0, WE CAN USE THIS SPOT FOR BOT
0, 0, 0, 0, 1, 1, 1, 1, 1, 1, //IF EQUAL 0, WE CAN USE THIS SPOT FOR BOT
0, 0, 0, 0, 1, 1, 1, 1, 1, 1 //IF EQUAL 0, WE CAN USE THIS SPOT FOR BOT
};
public static string DummyItemSharedStash1 = "Key"; //PUT THIS DUMMY ITEM IN SHARED STASH1 SO ITEMS DETECTION CORRECTLY APPLY TO THIS STASH
public static string DummyItemSharedStash2 = "Scroll of Identify"; //PUT THIS DUMMY ITEM IN SHARED STASH2 SO ITEMS DETECTION CORRECTLY APPLY TO THIS STASH
public static string DummyItemSharedStash3 = "Scroll of Town Portal"; //PUT THIS DUMMY ITEM IN SHARED STASH3 SO ITEMS DETECTION CORRECTLY APPLY TO THIS STASH
//#######################################
//PLAYER SETTINGS
//#######################################
public static string PlayerCharName = ""; //CHAR NAME
public static bool UseTeleport = true;
public static int ChickenHP = 22; //VALUE IN PERCENT
public static int TakeHPPotUnder = 85; //VALUE IN PERCENT
public static int TakeRVPotUnder = 35; //VALUE IN PERCENT
public static int TakeManaPotUnder = 15; //VALUE IN PERCENT
public static int GambleAboveGoldAmount = 500000; //IF GOLD IN STASH EXCEED AMOUNT, WE GAMBLE FOR GOLD
public static int GambleUntilGoldAmount = 100000; //GAMBLE UNTIL THIS LOW GOLD AMOUNT IS REACHED
public static bool PlayerAttackWithRightHand = true;
public static (int, int) KeysLocationInInventory = (8, 0);
//#######################################
//MERC SETTINGS
//#######################################
public static bool UsingMerc = true;
public static int MercTakeHPPotUnder = 40; //NOT YET WORKING
//#######################################
//BOT SETTINGS (USE ONLY CHAOS OR BAAL, NOT BOTH AT SAME TIME)
//#######################################
public static int MaxGameTime = 7; //9MINS -> TIME IN MINUTES
public static bool IsRushing = false;
public static string RunningOnChar = "";
public static string RushLeecherName = "";
public static bool RunDarkWoodRush = false;
public static bool RunTristramRush = false;
public static bool RunAndarielRush = false;
public static bool RunRadamentRush = false;
public static bool RunHallOfDeadRush = false;
public static bool RunFarOasisRush = false;
public static bool RunLostCityRush = false;
public static bool RunSummonerRush = false;
public static bool RunDurielRush = false;
public static bool RunKahlimEyeRush = false;
public static bool RunKahlimBrainRush = false;
public static bool RunKahlimHeartRush = false;
public static bool RunTravincalRush = false;
public static bool RunMephistoRush = false;
//public static bool RunRush = false;
public static bool RunPindleskinScript = false;
public static bool RunTravincalScript = false;
public static bool RunMephistoScript = false;
public static bool RunAndarielScript = false;
public static bool RunCountessScript = false;
public static bool RunSummonerScript = false;
public static bool RunDurielScript = false;
public static bool RunChaosScript = false; //CHAOS LEECH SCRIPT **NOT FINISHED**
public static bool RunLowerKurastScript = false; //LOWER KURAST SCRIPT
public static bool RunBaalLeechScript = true; //BAAL LEECH SCRIPT
public static bool RunItemGrabScriptOnly = false;
//NOT IN GAME SCRIPT (SEARCH GAMES OR CREATE A NEW GAME)
public static bool RunChaosSearchGameScript = false; //CHAOS GAMES SEARCHER SCRIPT
public static bool RunBaalSearchGameScript = true; //BAAL GAMES SEARCHER SCRIPT
public static bool RunGameMakerScript = false; //CREATE NEW GAME SCRIPT
public static string GameName = "LOWERKTEST"; //SET GAME NAME, IF USING GAME MAKER
public static string GamePass = "33"; //SET GAME PASS, IF USING GAME MAKER
public static int GameDifficulty = 2; //0 = normal, 1 = nighmare, 2 = hell
//#######################################
//GAME/PC SCREEN SETTINGS
//#######################################
//public static int ScreenX = 1920;
//public static int ScreenY = 1080;
//public static int ScreenYMenu = 180; //REMOVE 180 PIXEL FROM THE BOTTOM SCREEN TO NOT CLIC ANY BOTTOM MENU BUTTONS
}
}

File diff suppressed because it is too large Load Diff

297
Form1.cs
View File

@ -40,9 +40,9 @@ namespace app
public partial class Form1 : Form
{
public string BotVersion = "V1.2";
public string BotVersion = "V1.3";
public string D2_LOD_113C_Path = @"C:\Users\boule\OneDrive\Bureau\JEUX\DiabloIICOCO\";
public string D2_LOD_113C_Path = "";
public Process process;
public string ThisEndPath = Application.StartupPath + @"\Extracted\";
@ -84,6 +84,7 @@ namespace app
public int CurrentGameNumberSinceStart = 1;
public bool ForceSwitch2ndPlayer = false;
public bool BadPlayerPointerFound = false;
public double FPS = 0;
@ -112,10 +113,12 @@ namespace app
public Repair Repair_0;
public Chaos Chaos_0;
public Duriel Duriel_0;
public Pindleskin Pindleskin_0;
public Battle Battle_0;
public KeyMouse KeyMouse_0;
public Summoner Summoner_0;
public Baal Baal_0;
public Travincal Travincal_0;
public Mephisto Mephisto_0;
public Andariel Andariel_0;
public Countess Countess_0;
@ -128,6 +131,21 @@ namespace app
public MapAreaStruc MapAreaStruc_0;
public MoveToPath MoveToPath_0;
public AndarielRush AndarielRush_0;
public DarkWoodRush DarkWoodRush_0;
public DurielRush DurielRush_0;
public FarOasisRush FarOasisRush_0;
public HallOfDeadRushCube HallOfDeadRushCube_0;
public KahlimBrainRush KahlimBrainRush_0;
public KahlimEyeRush KahlimEyeRush_0;
public KahlimHeartRush KahlimHeartRush_0;
public LostCityRush LostCityRush_0;
public MephistoRush MephistoRush_0;
public RadamentRush RadamentRush_0;
public SummonerRush SummonerRush_0;
public TravincalRush TravincalRush_0;
public TristramRush TristramRush_0;
// REQUIRED CONSTS
const int PROCESS_QUERY_INFORMATION = 0x0400;
const int MEM_COMMIT = 0x00001000;
@ -195,13 +213,6 @@ namespace app
ScreenX = Screen.PrimaryScreen.Bounds.Width;
ScreenY = Screen.PrimaryScreen.Bounds.Height;
if (Form1_0.D2_LOD_113C_Path == "")
{
method_1("ERROR: Diablo2 LOD 1.13C Path NOT SET CORRECTLY!", Color.Red);
method_1("Clic on the settings button and set the path where Diablo2 1.13c (the old legacy diablo2) is located!", Color.Red);
method_1("Make sure the path don't contain any whitespace!", Color.Red);
}
//CenterX = CharConfig.ScreenX / 2;
//CenterY = CharConfig.ScreenY / 2;
@ -232,7 +243,9 @@ namespace app
Battle_0 = new Battle();
KeyMouse_0 = new KeyMouse();
Duriel_0 = new Duriel();
Pindleskin_0 = new Pindleskin();
Baal_0 = new Baal();
Travincal_0 = new Travincal();
Mephisto_0 = new Mephisto();
Andariel_0 = new Andariel();
Countess_0 = new Countess();
@ -245,6 +258,21 @@ namespace app
MapAreaStruc_0 = new MapAreaStruc();
MoveToPath_0 = new MoveToPath();
AndarielRush_0 = new AndarielRush();
DarkWoodRush_0 = new DarkWoodRush();
DurielRush_0 = new DurielRush();
FarOasisRush_0 = new FarOasisRush();
HallOfDeadRushCube_0 = new HallOfDeadRushCube();
KahlimBrainRush_0 = new KahlimBrainRush();
KahlimEyeRush_0 = new KahlimEyeRush();
KahlimHeartRush_0 = new KahlimHeartRush();
LostCityRush_0 = new LostCityRush();
MephistoRush_0 = new MephistoRush();
RadamentRush_0 = new RadamentRush();
SummonerRush_0 = new SummonerRush();
TravincalRush_0 = new TravincalRush();
TristramRush_0 = new TristramRush();
ItemsStruc_0.SetForm1(Form1_0);
Mem_0.SetForm1(Form1_0);
PatternsScan_0.SetForm1(Form1_0);
@ -269,9 +297,11 @@ namespace app
Summoner_0.SetForm1(Form1_0);
Chaos_0.SetForm1(Form1_0);
Duriel_0.SetForm1(Form1_0);
Travincal_0.SetForm1(Form1_0);
Battle_0.SetForm1(Form1_0);
KeyMouse_0.SetForm1(Form1_0);
Mephisto_0.SetForm1(Form1_0);
Pindleskin_0.SetForm1(Form1_0);
Baal_0.SetForm1(Form1_0);
Andariel_0.SetForm1(Form1_0);
Countess_0.SetForm1(Form1_0);
@ -284,8 +314,30 @@ namespace app
MapAreaStruc_0.SetForm1(Form1_0);
MoveToPath_0.SetForm1(Form1_0);
AndarielRush_0.SetForm1(Form1_0);
DarkWoodRush_0.SetForm1(Form1_0);
DurielRush_0.SetForm1(Form1_0);
FarOasisRush_0.SetForm1(Form1_0);
HallOfDeadRushCube_0.SetForm1(Form1_0);
KahlimBrainRush_0.SetForm1(Form1_0);
KahlimEyeRush_0.SetForm1(Form1_0);
KahlimHeartRush_0.SetForm1(Form1_0);
LostCityRush_0.SetForm1(Form1_0);
MephistoRush_0.SetForm1(Form1_0);
RadamentRush_0.SetForm1(Form1_0);
SummonerRush_0.SetForm1(Form1_0);
TravincalRush_0.SetForm1(Form1_0);
TristramRush_0.SetForm1(Form1_0);
SettingsLoader_0.LoadSettings();
if (Form1_0.D2_LOD_113C_Path == "")
{
method_1("ERROR: Diablo2 LOD 1.13C Path NOT SET CORRECTLY!", Color.Red);
method_1("Clic on the settings button and set the path where Diablo2 1.13c (the old legacy diablo2) is located!", Color.Red);
method_1("Make sure the path don't contain any whitespace!", Color.Red);
}
KeyMouse_0.proc = KeyMouse_0.HookCallback;
KeyMouse_0.hookID = KeyMouse_0.SetHook(KeyMouse_0.proc);
//ItemsAlert_0.SetParams();
@ -601,17 +653,38 @@ namespace app
Mephisto_0.ResetVars();
Summoner_0.ResetVars();
Duriel_0.ResetVars();
Travincal_0.ResetVars();
Pindleskin_0.ResetVars();
AndarielRush_0.ResetVars();
DarkWoodRush_0.ResetVars();
DurielRush_0.ResetVars();
FarOasisRush_0.ResetVars();
HallOfDeadRushCube_0.ResetVars();
KahlimBrainRush_0.ResetVars();
KahlimEyeRush_0.ResetVars();
KahlimHeartRush_0.ResetVars();
LostCityRush_0.ResetVars();
MephistoRush_0.ResetVars();
RadamentRush_0.ResetVars();
SummonerRush_0.ResetVars();
TravincalRush_0.ResetVars();
TristramRush_0.ResetVars();
Town_0.IgnoredTPList.Clear();
Town_0.IgnoredWPList.Clear();
Baal_0.IgnoredTPList.Clear();
Town_0.FirstTown = true;
ForceSwitch2ndPlayer = false;
PlayerScan_0.PlayerGoldInventory = 0;
SetGameDone = false;
BadPlayerPointerFound = false;
BeltStruc_0.ForceMANAPotionQty = 0;
BeltStruc_0.ForceHPPotionQty = 0;
SetGamesText();
CurrentGameNumber++;
CurrentGameNumberSinceStart++;
SettingsLoader_0.SaveOthersSettings();
//##############################
MapAreaStruc_0.ScanMapStruc();
@ -641,7 +714,8 @@ namespace app
{
GameStruc_0.SetNewGame();
SetNewGame();
WaitDelay(400); //wait here because 'loading' menu is not correct
if (!CharConfig.IsRushing) WaitDelay(400); //wait here because 'loading' menu is not correct
if (CharConfig.IsRushing) PlayerScan_0.ScanForLeecher();
Town_0.GetCorpse();
HasPointers = true;
}
@ -653,7 +727,8 @@ namespace app
{
GameStruc_0.SetNewGame();
SetNewGame();
WaitDelay(400); //wait here because 'loading' menu is not correct
if (!CharConfig.IsRushing) WaitDelay(400); //wait here because 'loading' menu is not correct
if (CharConfig.IsRushing) PlayerScan_0.ScanForLeecher();
Town_0.GetCorpse();
HasPointers = true;
}
@ -666,6 +741,7 @@ namespace app
method_1("Leaving Player pointer not found!", Color.Red);
Form1_0.Potions_0.ForceLeave = true;
ForceSwitch2ndPlayer = true;
BadPlayerPointerFound = true;
Form1_0.Baal_0.SearchSameGamesAsLastOne = false;
Form1_0.Chaos_0.SearchSameGamesAsLastOne = false;
Form1_0.LeaveGame(false);
@ -686,33 +762,16 @@ namespace app
UIScan_0.readUI();
if (!UIScan_0.loading)
{
/*if (UIScan_0.deadMenu || PlayerScan_0.PlayerHP == 0)
{
method_1("PLAYER DIED!!!", Color.Red);
CharDied = true;
LeaveGame();
}*/
//HoverStruc_0.GetHovering();
bool runnn = true;
if (runnn)
{
//#####
/*if (CharConfig.RunLowerKurastScript && LowerKurast_0.ScriptDone)
{
LeaveGame(true);
}*/
//#####
//LowerKurast_0.TakeChest();
//Form1_0.ObjectsStruc_0.GetObjects("JungleMediumChestLeft", true, new List<uint>() { }, 400);
//MoveToPath_0.MoveToArea(20);
//return;
if (!ItemsStruc_0.GetItems(true))
{
//BeltStruc_0.CheckForMissingPotions();
if (Town_0.Towning)
{
ItemsStruc_0.GetItems(false);
@ -720,65 +779,176 @@ namespace app
}
else
{
if (Battle_0.ClearingArea && !CharConfig.RunItemGrabScriptOnly)
if (!CharConfig.IsRushing)
{
Battle_0.RunBattleScript();
}
else
{
if (CharConfig.RunAndarielScript && !Andariel_0.ScriptDone)
if (Battle_0.ClearingArea && !CharConfig.RunItemGrabScriptOnly)
{
Andariel_0.RunScript();
Battle_0.RunBattleScript();
}
else
{
if (CharConfig.RunCountessScript && !Countess_0.ScriptDone)
if (CharConfig.RunAndarielScript && !Andariel_0.ScriptDone)
{
Countess_0.RunScript();
Andariel_0.RunScript();
}
else
{
if (CharConfig.RunSummonerScript && !Summoner_0.ScriptDone)
if (CharConfig.RunCountessScript && !Countess_0.ScriptDone)
{
Summoner_0.RunScript();
Countess_0.RunScript();
}
else
{
if (CharConfig.RunDurielScript && !Duriel_0.ScriptDone)
if (CharConfig.RunSummonerScript && !Summoner_0.ScriptDone)
{
Duriel_0.RunScript();
Summoner_0.RunScript();
}
else
{
if (CharConfig.RunLowerKurastScript && !LowerKurast_0.ScriptDone)
if (CharConfig.RunDurielScript && !Duriel_0.ScriptDone)
{
LowerKurast_0.RunScript();
Duriel_0.RunScript();
}
else
{
if (CharConfig.RunMephistoScript && !Mephisto_0.ScriptDone)
if (CharConfig.RunLowerKurastScript && !LowerKurast_0.ScriptDone)
{
Mephisto_0.RunScript();
LowerKurast_0.RunScript();
}
else
{
/*if (CharConfig.RunLowerKurastScript && LowerKurast_0.ScriptDone)
if (CharConfig.RunTravincalScript && !Travincal_0.ScriptDone)
{
LeaveGame(true); //#####
}*/
if (CharConfig.RunChaosScript && !Chaos_0.ScriptDone)
{
Chaos_0.RunScript();
Travincal_0.RunScript();
}
else
{
if (CharConfig.RunBaalLeechScript && !Baal_0.ScriptDone)
if (CharConfig.RunMephistoScript && !Mephisto_0.ScriptDone)
{
Baal_0.RunScript();
Mephisto_0.RunScript();
}
else
{
Form1_0.LeaveGame(true);
if (CharConfig.RunChaosScript && !Chaos_0.ScriptDone)
{
Chaos_0.RunScript();
}
else
{
if (CharConfig.RunPindleskinScript && !Pindleskin_0.ScriptDone)
{
Pindleskin_0.RunScript();
}
else
{
if (CharConfig.RunBaalLeechScript && !Baal_0.ScriptDone)
{
Baal_0.RunScript();
}
else
{
Form1_0.LeaveGame(true);
}
}
}
}
}
}
}
}
}
}
}
}
else
{
if (CharConfig.RunDarkWoodRush && !DarkWoodRush_0.ScriptDone)
{
DarkWoodRush_0.RunScript();
}
else
{
if (CharConfig.RunTristramRush && !TristramRush_0.ScriptDone)
{
TristramRush_0.RunScript();
}
else
{
if (CharConfig.RunAndarielRush && !AndarielRush_0.ScriptDone)
{
AndarielRush_0.RunScript();
}
else
{
if (CharConfig.RunRadamentRush && !RadamentRush_0.ScriptDone)
{
RadamentRush_0.RunScript();
}
else
{
if (CharConfig.RunHallOfDeadRush && !HallOfDeadRushCube_0.ScriptDone)
{
HallOfDeadRushCube_0.RunScript();
}
else
{
if (CharConfig.RunFarOasisRush && !FarOasisRush_0.ScriptDone)
{
FarOasisRush_0.RunScript();
}
else
{
if (CharConfig.RunLostCityRush && !LostCityRush_0.ScriptDone)
{
LostCityRush_0.RunScript();
}
else
{
if (CharConfig.RunSummonerRush && !SummonerRush_0.ScriptDone)
{
SummonerRush_0.RunScript();
}
else
{
if (CharConfig.RunDurielRush && !DurielRush_0.ScriptDone)
{
DurielRush_0.RunScript();
}
else
{
if (CharConfig.RunKahlimEyeRush && !KahlimEyeRush_0.ScriptDone)
{
KahlimEyeRush_0.RunScript();
}
else
{
if (CharConfig.RunKahlimBrainRush && !KahlimBrainRush_0.ScriptDone)
{
KahlimBrainRush_0.RunScript();
}
else
{
if (CharConfig.RunKahlimHeartRush && !KahlimHeartRush_0.ScriptDone)
{
KahlimHeartRush_0.RunScript();
}
else
{
if (CharConfig.RunTravincalRush && !TravincalRush_0.ScriptDone)
{
TravincalRush_0.RunScript();
}
else
{
if (CharConfig.RunMephistoRush && !MephistoRush_0.ScriptDone)
{
MephistoRush_0.RunScript();
}
}
}
}
}
}
}
}
}
@ -796,7 +966,7 @@ namespace app
ObjectsStruc_0.GetObjects("TownPortal", true);
}
Potions_0.CheckIfWeUsePotion();
if (!CharConfig.RunItemGrabScriptOnly) GameStruc_0.CheckChickenGameTime();
if (!CharConfig.RunItemGrabScriptOnly && !CharConfig.IsRushing) GameStruc_0.CheckChickenGameTime();
Grid_SetInfos("Scanned", ItemsStruc_0.ItemsScanned.ToString());
@ -810,6 +980,7 @@ namespace app
}
else
{
PlayerScan_0.PrintedLeechFoundInfo = false;
Potions_0.ForceLeave = false;
FoundPlayerPointerTryCount = 0;
HasPointers = false;
@ -823,14 +994,28 @@ namespace app
ChangeCharScript();
if (CharConfig.IsRushing)
{
CharConfig.RunGameMakerScript = false;
CharConfig.RunItemGrabScriptOnly = false;
CharConfig.RunChaosSearchGameScript = false;
CharConfig.RunBaalSearchGameScript = false;
}
if (CharConfig.RunGameMakerScript)
{
Form1_0.SetGameStatus("CREATING GAME");
if (BadPlayerPointerFound)
{
CurrentGameNumber++;
CurrentGameNumberSinceStart++;
BadPlayerPointerFound = false;
}
RunScriptNOTInGame();
}
else
{
//Chaos_0.RunScriptNOTInGame();
if (CharConfig.RunBaalSearchGameScript && !CharConfig.RunItemGrabScriptOnly)
{
Form1_0.SetGameStatus("SEARCHING GAMES");

733
FormCharSettings.Designer.cs generated Normal file
View File

@ -0,0 +1,733 @@
namespace app
{
partial class FormCharSettings
{
/// <summary>
/// Required designer variable.
/// </summary>
private System.ComponentModel.IContainer components = null;
/// <summary>
/// Clean up any resources being used.
/// </summary>
/// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
protected override void Dispose(bool disposing)
{
if (disposing && (components != null))
{
components.Dispose();
}
base.Dispose(disposing);
}
#region Windows Form Designer generated code
/// <summary>
/// Required method for Designer support - do not modify
/// the contents of this method with the code editor.
/// </summary>
private void InitializeComponent()
{
this.label1 = new System.Windows.Forms.Label();
this.comboBoxType = new System.Windows.Forms.ComboBox();
this.groupBox1 = new System.Windows.Forms.GroupBox();
this.label2 = new System.Windows.Forms.Label();
this.textBoxLeftSkill = new System.Windows.Forms.TextBox();
this.textBoxRightSkill = new System.Windows.Forms.TextBox();
this.label3 = new System.Windows.Forms.Label();
this.textBoxFastMoveTown = new System.Windows.Forms.TextBox();
this.label4 = new System.Windows.Forms.Label();
this.textBoxFastMoveTeleport = new System.Windows.Forms.TextBox();
this.label5 = new System.Windows.Forms.Label();
this.textBoxDefenseSkill = new System.Windows.Forms.TextBox();
this.label6 = new System.Windows.Forms.Label();
this.textBoxCastDefenseSkill = new System.Windows.Forms.TextBox();
this.label7 = new System.Windows.Forms.Label();
this.textBoxLifeSkill = new System.Windows.Forms.TextBox();
this.label8 = new System.Windows.Forms.Label();
this.checkBoxAttachRightHand = new System.Windows.Forms.CheckBox();
this.groupBox2 = new System.Windows.Forms.GroupBox();
this.comboBoxBelt1 = new System.Windows.Forms.ComboBox();
this.comboBoxBelt2 = new System.Windows.Forms.ComboBox();
this.comboBoxBelt3 = new System.Windows.Forms.ComboBox();
this.comboBoxBelt4 = new System.Windows.Forms.ComboBox();
this.label9 = new System.Windows.Forms.Label();
this.label10 = new System.Windows.Forms.Label();
this.label11 = new System.Windows.Forms.Label();
this.label12 = new System.Windows.Forms.Label();
this.groupBoxInventory = new System.Windows.Forms.GroupBox();
this.label13 = new System.Windows.Forms.Label();
this.textBoxCharName = new System.Windows.Forms.TextBox();
this.label14 = new System.Windows.Forms.Label();
this.groupBox3 = new System.Windows.Forms.GroupBox();
this.checkBoxUseTeleport = new System.Windows.Forms.CheckBox();
this.label15 = new System.Windows.Forms.Label();
this.numericUpDownChickenHP = new System.Windows.Forms.NumericUpDown();
this.numericUpDownTakeHP = new System.Windows.Forms.NumericUpDown();
this.label16 = new System.Windows.Forms.Label();
this.numericUpDownTakeMana = new System.Windows.Forms.NumericUpDown();
this.label17 = new System.Windows.Forms.Label();
this.numericUpDownTakeRV = new System.Windows.Forms.NumericUpDown();
this.label18 = new System.Windows.Forms.Label();
this.numericUpDownGambleAbove = new System.Windows.Forms.NumericUpDown();
this.label19 = new System.Windows.Forms.Label();
this.numericUpDownGambleUntil = new System.Windows.Forms.NumericUpDown();
this.label20 = new System.Windows.Forms.Label();
this.numericUpDownKeyXPos = new System.Windows.Forms.NumericUpDown();
this.label21 = new System.Windows.Forms.Label();
this.numericUpDownKeyYPos = new System.Windows.Forms.NumericUpDown();
this.checkBoxUseMerc = new System.Windows.Forms.CheckBox();
this.numericUpDownMercTakeHPUnder = new System.Windows.Forms.NumericUpDown();
this.label22 = new System.Windows.Forms.Label();
this.groupBox4 = new System.Windows.Forms.GroupBox();
this.button1 = new System.Windows.Forms.Button();
this.groupBox1.SuspendLayout();
this.groupBox2.SuspendLayout();
this.groupBox3.SuspendLayout();
((System.ComponentModel.ISupportInitialize)(this.numericUpDownChickenHP)).BeginInit();
((System.ComponentModel.ISupportInitialize)(this.numericUpDownTakeHP)).BeginInit();
((System.ComponentModel.ISupportInitialize)(this.numericUpDownTakeMana)).BeginInit();
((System.ComponentModel.ISupportInitialize)(this.numericUpDownTakeRV)).BeginInit();
((System.ComponentModel.ISupportInitialize)(this.numericUpDownGambleAbove)).BeginInit();
((System.ComponentModel.ISupportInitialize)(this.numericUpDownGambleUntil)).BeginInit();
((System.ComponentModel.ISupportInitialize)(this.numericUpDownKeyXPos)).BeginInit();
((System.ComponentModel.ISupportInitialize)(this.numericUpDownKeyYPos)).BeginInit();
((System.ComponentModel.ISupportInitialize)(this.numericUpDownMercTakeHPUnder)).BeginInit();
this.groupBox4.SuspendLayout();
this.SuspendLayout();
//
// label1
//
this.label1.AutoSize = true;
this.label1.Location = new System.Drawing.Point(48, 12);
this.label1.Name = "label1";
this.label1.Size = new System.Drawing.Size(59, 13);
this.label1.TabIndex = 0;
this.label1.Text = "Char Type:";
//
// comboBoxType
//
this.comboBoxType.FormattingEnabled = true;
this.comboBoxType.Items.AddRange(new object[] {
"Paladin Hammer",
"Sorceress Blizzard"});
this.comboBoxType.Location = new System.Drawing.Point(116, 9);
this.comboBoxType.Name = "comboBoxType";
this.comboBoxType.Size = new System.Drawing.Size(199, 21);
this.comboBoxType.TabIndex = 1;
this.comboBoxType.SelectedIndexChanged += new System.EventHandler(this.comboBoxType_SelectedIndexChanged);
//
// groupBox1
//
this.groupBox1.Controls.Add(this.checkBoxAttachRightHand);
this.groupBox1.Controls.Add(this.textBoxLifeSkill);
this.groupBox1.Controls.Add(this.label8);
this.groupBox1.Controls.Add(this.textBoxCastDefenseSkill);
this.groupBox1.Controls.Add(this.label7);
this.groupBox1.Controls.Add(this.textBoxDefenseSkill);
this.groupBox1.Controls.Add(this.label6);
this.groupBox1.Controls.Add(this.textBoxFastMoveTeleport);
this.groupBox1.Controls.Add(this.label5);
this.groupBox1.Controls.Add(this.textBoxFastMoveTown);
this.groupBox1.Controls.Add(this.label4);
this.groupBox1.Controls.Add(this.textBoxRightSkill);
this.groupBox1.Controls.Add(this.label3);
this.groupBox1.Controls.Add(this.textBoxLeftSkill);
this.groupBox1.Controls.Add(this.label2);
this.groupBox1.Location = new System.Drawing.Point(5, 36);
this.groupBox1.Name = "groupBox1";
this.groupBox1.Size = new System.Drawing.Size(171, 207);
this.groupBox1.TabIndex = 2;
this.groupBox1.TabStop = false;
this.groupBox1.Text = "Skills Shortcuts Keys";
//
// label2
//
this.label2.AutoSize = true;
this.label2.Location = new System.Drawing.Point(10, 49);
this.label2.Name = "label2";
this.label2.Size = new System.Drawing.Size(84, 13);
this.label2.TabIndex = 3;
this.label2.Text = "Attack Left Skill:";
//
// textBoxLeftSkill
//
this.textBoxLeftSkill.Location = new System.Drawing.Point(123, 46);
this.textBoxLeftSkill.Name = "textBoxLeftSkill";
this.textBoxLeftSkill.Size = new System.Drawing.Size(37, 20);
this.textBoxLeftSkill.TabIndex = 4;
//
// textBoxRightSkill
//
this.textBoxRightSkill.Location = new System.Drawing.Point(123, 68);
this.textBoxRightSkill.Name = "textBoxRightSkill";
this.textBoxRightSkill.Size = new System.Drawing.Size(37, 20);
this.textBoxRightSkill.TabIndex = 6;
//
// label3
//
this.label3.AutoSize = true;
this.label3.Location = new System.Drawing.Point(10, 71);
this.label3.Name = "label3";
this.label3.Size = new System.Drawing.Size(91, 13);
this.label3.TabIndex = 5;
this.label3.Text = "Attack Right Skill:";
//
// textBoxFastMoveTown
//
this.textBoxFastMoveTown.Location = new System.Drawing.Point(123, 90);
this.textBoxFastMoveTown.Name = "textBoxFastMoveTown";
this.textBoxFastMoveTown.Size = new System.Drawing.Size(37, 20);
this.textBoxFastMoveTown.TabIndex = 8;
//
// label4
//
this.label4.AutoSize = true;
this.label4.Location = new System.Drawing.Point(10, 93);
this.label4.Name = "label4";
this.label4.Size = new System.Drawing.Size(108, 13);
this.label4.TabIndex = 7;
this.label4.Text = "Fast Move (In Town):";
//
// textBoxFastMoveTeleport
//
this.textBoxFastMoveTeleport.Location = new System.Drawing.Point(123, 112);
this.textBoxFastMoveTeleport.Name = "textBoxFastMoveTeleport";
this.textBoxFastMoveTeleport.Size = new System.Drawing.Size(37, 20);
this.textBoxFastMoveTeleport.TabIndex = 10;
//
// label5
//
this.label5.AutoSize = true;
this.label5.Location = new System.Drawing.Point(10, 115);
this.label5.Name = "label5";
this.label5.Size = new System.Drawing.Size(108, 13);
this.label5.TabIndex = 9;
this.label5.Text = "Fast Move (Teleport):";
//
// textBoxDefenseSkill
//
this.textBoxDefenseSkill.Location = new System.Drawing.Point(123, 134);
this.textBoxDefenseSkill.Name = "textBoxDefenseSkill";
this.textBoxDefenseSkill.Size = new System.Drawing.Size(37, 20);
this.textBoxDefenseSkill.TabIndex = 12;
//
// label6
//
this.label6.AutoSize = true;
this.label6.Location = new System.Drawing.Point(10, 137);
this.label6.Name = "label6";
this.label6.Size = new System.Drawing.Size(72, 13);
this.label6.TabIndex = 11;
this.label6.Text = "Defense Skill:";
//
// textBoxCastDefenseSkill
//
this.textBoxCastDefenseSkill.Location = new System.Drawing.Point(123, 156);
this.textBoxCastDefenseSkill.Name = "textBoxCastDefenseSkill";
this.textBoxCastDefenseSkill.Size = new System.Drawing.Size(37, 20);
this.textBoxCastDefenseSkill.TabIndex = 14;
//
// label7
//
this.label7.AutoSize = true;
this.label7.Location = new System.Drawing.Point(10, 159);
this.label7.Name = "label7";
this.label7.Size = new System.Drawing.Size(96, 13);
this.label7.TabIndex = 13;
this.label7.Text = "Cast Defense Skill:";
//
// textBoxLifeSkill
//
this.textBoxLifeSkill.Location = new System.Drawing.Point(123, 178);
this.textBoxLifeSkill.Name = "textBoxLifeSkill";
this.textBoxLifeSkill.Size = new System.Drawing.Size(37, 20);
this.textBoxLifeSkill.TabIndex = 16;
//
// label8
//
this.label8.AutoSize = true;
this.label8.Location = new System.Drawing.Point(10, 181);
this.label8.Name = "label8";
this.label8.Size = new System.Drawing.Size(49, 13);
this.label8.TabIndex = 15;
this.label8.Text = "Life Skill:";
//
// checkBoxAttachRightHand
//
this.checkBoxAttachRightHand.AutoSize = true;
this.checkBoxAttachRightHand.Location = new System.Drawing.Point(20, 22);
this.checkBoxAttachRightHand.Name = "checkBoxAttachRightHand";
this.checkBoxAttachRightHand.Size = new System.Drawing.Size(136, 17);
this.checkBoxAttachRightHand.TabIndex = 17;
this.checkBoxAttachRightHand.Text = "Attack with Right Hand";
this.checkBoxAttachRightHand.UseVisualStyleBackColor = true;
//
// groupBox2
//
this.groupBox2.Controls.Add(this.label12);
this.groupBox2.Controls.Add(this.label11);
this.groupBox2.Controls.Add(this.label10);
this.groupBox2.Controls.Add(this.label9);
this.groupBox2.Controls.Add(this.comboBoxBelt4);
this.groupBox2.Controls.Add(this.comboBoxBelt3);
this.groupBox2.Controls.Add(this.comboBoxBelt2);
this.groupBox2.Controls.Add(this.comboBoxBelt1);
this.groupBox2.Location = new System.Drawing.Point(201, 249);
this.groupBox2.Name = "groupBox2";
this.groupBox2.Size = new System.Drawing.Size(245, 64);
this.groupBox2.TabIndex = 3;
this.groupBox2.TabStop = false;
this.groupBox2.Text = "Belt Potions Type";
//
// comboBoxBelt1
//
this.comboBoxBelt1.FormattingEnabled = true;
this.comboBoxBelt1.Items.AddRange(new object[] {
"HP",
"Mana",
"RV",
"Full RV"});
this.comboBoxBelt1.Location = new System.Drawing.Point(6, 38);
this.comboBoxBelt1.Name = "comboBoxBelt1";
this.comboBoxBelt1.Size = new System.Drawing.Size(58, 21);
this.comboBoxBelt1.TabIndex = 0;
//
// comboBoxBelt2
//
this.comboBoxBelt2.FormattingEnabled = true;
this.comboBoxBelt2.Items.AddRange(new object[] {
"HP",
"Mana",
"RV",
"Full RV"});
this.comboBoxBelt2.Location = new System.Drawing.Point(64, 38);
this.comboBoxBelt2.Name = "comboBoxBelt2";
this.comboBoxBelt2.Size = new System.Drawing.Size(58, 21);
this.comboBoxBelt2.TabIndex = 1;
//
// comboBoxBelt3
//
this.comboBoxBelt3.FormattingEnabled = true;
this.comboBoxBelt3.Items.AddRange(new object[] {
"HP",
"Mana",
"RV",
"Full RV"});
this.comboBoxBelt3.Location = new System.Drawing.Point(122, 38);
this.comboBoxBelt3.Name = "comboBoxBelt3";
this.comboBoxBelt3.Size = new System.Drawing.Size(58, 21);
this.comboBoxBelt3.TabIndex = 2;
//
// comboBoxBelt4
//
this.comboBoxBelt4.FormattingEnabled = true;
this.comboBoxBelt4.Items.AddRange(new object[] {
"HP",
"Mana",
"RV",
"Full RV"});
this.comboBoxBelt4.Location = new System.Drawing.Point(180, 38);
this.comboBoxBelt4.Name = "comboBoxBelt4";
this.comboBoxBelt4.Size = new System.Drawing.Size(58, 21);
this.comboBoxBelt4.TabIndex = 3;
//
// label9
//
this.label9.AutoSize = true;
this.label9.Location = new System.Drawing.Point(21, 22);
this.label9.Name = "label9";
this.label9.Size = new System.Drawing.Size(34, 13);
this.label9.TabIndex = 4;
this.label9.Text = "Slot1:";
//
// label10
//
this.label10.AutoSize = true;
this.label10.Location = new System.Drawing.Point(78, 22);
this.label10.Name = "label10";
this.label10.Size = new System.Drawing.Size(34, 13);
this.label10.TabIndex = 5;
this.label10.Text = "Slot2:";
//
// label11
//
this.label11.AutoSize = true;
this.label11.Location = new System.Drawing.Point(136, 22);
this.label11.Name = "label11";
this.label11.Size = new System.Drawing.Size(34, 13);
this.label11.TabIndex = 6;
this.label11.Text = "Slot3:";
//
// label12
//
this.label12.AutoSize = true;
this.label12.Location = new System.Drawing.Point(193, 22);
this.label12.Name = "label12";
this.label12.Size = new System.Drawing.Size(34, 13);
this.label12.TabIndex = 7;
this.label12.Text = "Slot4:";
//
// groupBoxInventory
//
this.groupBoxInventory.Location = new System.Drawing.Point(5, 319);
this.groupBoxInventory.Name = "groupBoxInventory";
this.groupBoxInventory.Size = new System.Drawing.Size(441, 101);
this.groupBoxInventory.TabIndex = 4;
this.groupBoxInventory.TabStop = false;
this.groupBoxInventory.Text = "Inventory Available Slots (Checked mean this slot is NOT FREE)";
//
// label13
//
this.label13.AutoSize = true;
this.label13.ForeColor = System.Drawing.Color.Red;
this.label13.Location = new System.Drawing.Point(106, 427);
this.label13.Name = "label13";
this.label13.Size = new System.Drawing.Size(258, 52);
this.label13.TabIndex = 5;
this.label13.Text = "**Place theses dummy items inside the shared stash**\r\n-Key in Shared Stash1\r\n-ID " +
"Scroll in Shared Stash2\r\n-TP Scroll in Shared Stash3";
this.label13.TextAlign = System.Drawing.ContentAlignment.TopCenter;
//
// textBoxCharName
//
this.textBoxCharName.Location = new System.Drawing.Point(108, 18);
this.textBoxCharName.Name = "textBoxCharName";
this.textBoxCharName.Size = new System.Drawing.Size(149, 20);
this.textBoxCharName.TabIndex = 19;
//
// label14
//
this.label14.AutoSize = true;
this.label14.Location = new System.Drawing.Point(15, 21);
this.label14.Name = "label14";
this.label14.Size = new System.Drawing.Size(63, 13);
this.label14.TabIndex = 18;
this.label14.Text = "Char Name:";
//
// groupBox3
//
this.groupBox3.Controls.Add(this.numericUpDownKeyYPos);
this.groupBox3.Controls.Add(this.numericUpDownKeyXPos);
this.groupBox3.Controls.Add(this.label21);
this.groupBox3.Controls.Add(this.numericUpDownGambleUntil);
this.groupBox3.Controls.Add(this.label20);
this.groupBox3.Controls.Add(this.numericUpDownGambleAbove);
this.groupBox3.Controls.Add(this.label19);
this.groupBox3.Controls.Add(this.numericUpDownTakeRV);
this.groupBox3.Controls.Add(this.checkBoxUseTeleport);
this.groupBox3.Controls.Add(this.label18);
this.groupBox3.Controls.Add(this.numericUpDownTakeMana);
this.groupBox3.Controls.Add(this.label17);
this.groupBox3.Controls.Add(this.numericUpDownTakeHP);
this.groupBox3.Controls.Add(this.label16);
this.groupBox3.Controls.Add(this.numericUpDownChickenHP);
this.groupBox3.Controls.Add(this.label15);
this.groupBox3.Controls.Add(this.label14);
this.groupBox3.Controls.Add(this.textBoxCharName);
this.groupBox3.Location = new System.Drawing.Point(182, 36);
this.groupBox3.Name = "groupBox3";
this.groupBox3.Size = new System.Drawing.Size(264, 207);
this.groupBox3.TabIndex = 20;
this.groupBox3.TabStop = false;
this.groupBox3.Text = "Char Parameters";
//
// checkBoxUseTeleport
//
this.checkBoxUseTeleport.AutoSize = true;
this.checkBoxUseTeleport.Location = new System.Drawing.Point(18, 186);
this.checkBoxUseTeleport.Name = "checkBoxUseTeleport";
this.checkBoxUseTeleport.Size = new System.Drawing.Size(87, 17);
this.checkBoxUseTeleport.TabIndex = 18;
this.checkBoxUseTeleport.Text = "Use Teleport";
this.checkBoxUseTeleport.UseVisualStyleBackColor = true;
//
// label15
//
this.label15.AutoSize = true;
this.label15.Location = new System.Drawing.Point(15, 43);
this.label15.Name = "label15";
this.label15.Size = new System.Drawing.Size(67, 13);
this.label15.TabIndex = 20;
this.label15.Text = "Chicken HP:";
//
// numericUpDownChickenHP
//
this.numericUpDownChickenHP.Location = new System.Drawing.Point(162, 41);
this.numericUpDownChickenHP.Name = "numericUpDownChickenHP";
this.numericUpDownChickenHP.Size = new System.Drawing.Size(53, 20);
this.numericUpDownChickenHP.TabIndex = 21;
//
// numericUpDownTakeHP
//
this.numericUpDownTakeHP.Location = new System.Drawing.Point(162, 62);
this.numericUpDownTakeHP.Name = "numericUpDownTakeHP";
this.numericUpDownTakeHP.Size = new System.Drawing.Size(53, 20);
this.numericUpDownTakeHP.TabIndex = 23;
//
// label16
//
this.label16.AutoSize = true;
this.label16.Location = new System.Drawing.Point(15, 64);
this.label16.Name = "label16";
this.label16.Size = new System.Drawing.Size(115, 13);
this.label16.TabIndex = 22;
this.label16.Text = "Take HP potion under:";
//
// numericUpDownTakeMana
//
this.numericUpDownTakeMana.Location = new System.Drawing.Point(162, 83);
this.numericUpDownTakeMana.Name = "numericUpDownTakeMana";
this.numericUpDownTakeMana.Size = new System.Drawing.Size(53, 20);
this.numericUpDownTakeMana.TabIndex = 25;
//
// label17
//
this.label17.AutoSize = true;
this.label17.Location = new System.Drawing.Point(15, 85);
this.label17.Name = "label17";
this.label17.Size = new System.Drawing.Size(127, 13);
this.label17.TabIndex = 24;
this.label17.Text = "Take Mana potion under:";
//
// numericUpDownTakeRV
//
this.numericUpDownTakeRV.Location = new System.Drawing.Point(162, 104);
this.numericUpDownTakeRV.Name = "numericUpDownTakeRV";
this.numericUpDownTakeRV.Size = new System.Drawing.Size(53, 20);
this.numericUpDownTakeRV.TabIndex = 27;
//
// label18
//
this.label18.AutoSize = true;
this.label18.Location = new System.Drawing.Point(15, 106);
this.label18.Name = "label18";
this.label18.Size = new System.Drawing.Size(139, 13);
this.label18.TabIndex = 26;
this.label18.Text = "Take RV potion under (HP):";
//
// numericUpDownGambleAbove
//
this.numericUpDownGambleAbove.Increment = new decimal(new int[] {
10000,
0,
0,
0});
this.numericUpDownGambleAbove.Location = new System.Drawing.Point(162, 125);
this.numericUpDownGambleAbove.Maximum = new decimal(new int[] {
10000000,
0,
0,
0});
this.numericUpDownGambleAbove.Name = "numericUpDownGambleAbove";
this.numericUpDownGambleAbove.Size = new System.Drawing.Size(95, 20);
this.numericUpDownGambleAbove.TabIndex = 29;
//
// label19
//
this.label19.AutoSize = true;
this.label19.Location = new System.Drawing.Point(15, 127);
this.label19.Name = "label19";
this.label19.Size = new System.Drawing.Size(140, 13);
this.label19.TabIndex = 28;
this.label19.Text = "Gamble above gold amount:";
//
// numericUpDownGambleUntil
//
this.numericUpDownGambleUntil.Increment = new decimal(new int[] {
10000,
0,
0,
0});
this.numericUpDownGambleUntil.Location = new System.Drawing.Point(162, 146);
this.numericUpDownGambleUntil.Maximum = new decimal(new int[] {
10000000,
0,
0,
0});
this.numericUpDownGambleUntil.Name = "numericUpDownGambleUntil";
this.numericUpDownGambleUntil.Size = new System.Drawing.Size(95, 20);
this.numericUpDownGambleUntil.TabIndex = 31;
//
// label20
//
this.label20.AutoSize = true;
this.label20.Location = new System.Drawing.Point(15, 148);
this.label20.Name = "label20";
this.label20.Size = new System.Drawing.Size(129, 13);
this.label20.TabIndex = 30;
this.label20.Text = "Gamble until gold amount:";
//
// numericUpDownKeyXPos
//
this.numericUpDownKeyXPos.Location = new System.Drawing.Point(174, 167);
this.numericUpDownKeyXPos.Name = "numericUpDownKeyXPos";
this.numericUpDownKeyXPos.Size = new System.Drawing.Size(41, 20);
this.numericUpDownKeyXPos.TabIndex = 33;
//
// label21
//
this.label21.AutoSize = true;
this.label21.Location = new System.Drawing.Point(15, 169);
this.label21.Name = "label21";
this.label21.Size = new System.Drawing.Size(153, 13);
this.label21.TabIndex = 32;
this.label21.Text = "Keys location in Inventory (x,y):";
//
// numericUpDownKeyYPos
//
this.numericUpDownKeyYPos.Location = new System.Drawing.Point(216, 167);
this.numericUpDownKeyYPos.Name = "numericUpDownKeyYPos";
this.numericUpDownKeyYPos.Size = new System.Drawing.Size(41, 20);
this.numericUpDownKeyYPos.TabIndex = 34;
//
// checkBoxUseMerc
//
this.checkBoxUseMerc.AutoSize = true;
this.checkBoxUseMerc.Location = new System.Drawing.Point(46, 16);
this.checkBoxUseMerc.Name = "checkBoxUseMerc";
this.checkBoxUseMerc.Size = new System.Drawing.Size(72, 17);
this.checkBoxUseMerc.TabIndex = 35;
this.checkBoxUseMerc.Text = "Use Merc";
this.checkBoxUseMerc.UseVisualStyleBackColor = true;
//
// numericUpDownMercTakeHPUnder
//
this.numericUpDownMercTakeHPUnder.Location = new System.Drawing.Point(128, 37);
this.numericUpDownMercTakeHPUnder.Name = "numericUpDownMercTakeHPUnder";
this.numericUpDownMercTakeHPUnder.Size = new System.Drawing.Size(53, 20);
this.numericUpDownMercTakeHPUnder.TabIndex = 36;
//
// label22
//
this.label22.AutoSize = true;
this.label22.Location = new System.Drawing.Point(7, 39);
this.label22.Name = "label22";
this.label22.Size = new System.Drawing.Size(115, 13);
this.label22.TabIndex = 35;
this.label22.Text = "Take HP potion under:";
//
// groupBox4
//
this.groupBox4.Controls.Add(this.checkBoxUseMerc);
this.groupBox4.Controls.Add(this.numericUpDownMercTakeHPUnder);
this.groupBox4.Controls.Add(this.label22);
this.groupBox4.Location = new System.Drawing.Point(5, 249);
this.groupBox4.Name = "groupBox4";
this.groupBox4.Size = new System.Drawing.Size(190, 64);
this.groupBox4.TabIndex = 37;
this.groupBox4.TabStop = false;
this.groupBox4.Text = "Merc Parameters";
//
// button1
//
this.button1.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.button1.ForeColor = System.Drawing.Color.Red;
this.button1.Location = new System.Drawing.Point(364, 7);
this.button1.Name = "button1";
this.button1.Size = new System.Drawing.Size(75, 23);
this.button1.TabIndex = 38;
this.button1.Text = "Save";
this.button1.UseVisualStyleBackColor = true;
this.button1.Click += new System.EventHandler(this.button1_Click);
//
// FormCharSettings
//
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
this.BackColor = System.Drawing.SystemColors.ControlDark;
this.ClientSize = new System.Drawing.Size(452, 487);
this.Controls.Add(this.button1);
this.Controls.Add(this.groupBox4);
this.Controls.Add(this.groupBox3);
this.Controls.Add(this.label13);
this.Controls.Add(this.groupBoxInventory);
this.Controls.Add(this.groupBox2);
this.Controls.Add(this.groupBox1);
this.Controls.Add(this.comboBoxType);
this.Controls.Add(this.label1);
this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedDialog;
this.MaximizeBox = false;
this.Name = "FormCharSettings";
this.ShowIcon = false;
this.Text = "D2R - BMBot - Char Settings";
this.FormClosing += new System.Windows.Forms.FormClosingEventHandler(this.FormCharSettings_FormClosing);
this.groupBox1.ResumeLayout(false);
this.groupBox1.PerformLayout();
this.groupBox2.ResumeLayout(false);
this.groupBox2.PerformLayout();
this.groupBox3.ResumeLayout(false);
this.groupBox3.PerformLayout();
((System.ComponentModel.ISupportInitialize)(this.numericUpDownChickenHP)).EndInit();
((System.ComponentModel.ISupportInitialize)(this.numericUpDownTakeHP)).EndInit();
((System.ComponentModel.ISupportInitialize)(this.numericUpDownTakeMana)).EndInit();
((System.ComponentModel.ISupportInitialize)(this.numericUpDownTakeRV)).EndInit();
((System.ComponentModel.ISupportInitialize)(this.numericUpDownGambleAbove)).EndInit();
((System.ComponentModel.ISupportInitialize)(this.numericUpDownGambleUntil)).EndInit();
((System.ComponentModel.ISupportInitialize)(this.numericUpDownKeyXPos)).EndInit();
((System.ComponentModel.ISupportInitialize)(this.numericUpDownKeyYPos)).EndInit();
((System.ComponentModel.ISupportInitialize)(this.numericUpDownMercTakeHPUnder)).EndInit();
this.groupBox4.ResumeLayout(false);
this.groupBox4.PerformLayout();
this.ResumeLayout(false);
this.PerformLayout();
}
#endregion
private System.Windows.Forms.Label label1;
private System.Windows.Forms.ComboBox comboBoxType;
private System.Windows.Forms.GroupBox groupBox1;
private System.Windows.Forms.TextBox textBoxFastMoveTown;
private System.Windows.Forms.Label label4;
private System.Windows.Forms.TextBox textBoxRightSkill;
private System.Windows.Forms.Label label3;
private System.Windows.Forms.TextBox textBoxLeftSkill;
private System.Windows.Forms.Label label2;
private System.Windows.Forms.TextBox textBoxLifeSkill;
private System.Windows.Forms.Label label8;
private System.Windows.Forms.TextBox textBoxCastDefenseSkill;
private System.Windows.Forms.Label label7;
private System.Windows.Forms.TextBox textBoxDefenseSkill;
private System.Windows.Forms.Label label6;
private System.Windows.Forms.TextBox textBoxFastMoveTeleport;
private System.Windows.Forms.Label label5;
private System.Windows.Forms.CheckBox checkBoxAttachRightHand;
private System.Windows.Forms.GroupBox groupBox2;
private System.Windows.Forms.ComboBox comboBoxBelt2;
private System.Windows.Forms.ComboBox comboBoxBelt1;
private System.Windows.Forms.ComboBox comboBoxBelt4;
private System.Windows.Forms.ComboBox comboBoxBelt3;
private System.Windows.Forms.Label label12;
private System.Windows.Forms.Label label11;
private System.Windows.Forms.Label label10;
private System.Windows.Forms.Label label9;
private System.Windows.Forms.GroupBox groupBoxInventory;
private System.Windows.Forms.Label label13;
private System.Windows.Forms.TextBox textBoxCharName;
private System.Windows.Forms.Label label14;
private System.Windows.Forms.GroupBox groupBox3;
private System.Windows.Forms.CheckBox checkBoxUseTeleport;
private System.Windows.Forms.NumericUpDown numericUpDownTakeRV;
private System.Windows.Forms.Label label18;
private System.Windows.Forms.NumericUpDown numericUpDownTakeMana;
private System.Windows.Forms.Label label17;
private System.Windows.Forms.NumericUpDown numericUpDownTakeHP;
private System.Windows.Forms.Label label16;
private System.Windows.Forms.NumericUpDown numericUpDownChickenHP;
private System.Windows.Forms.Label label15;
private System.Windows.Forms.NumericUpDown numericUpDownGambleUntil;
private System.Windows.Forms.Label label20;
private System.Windows.Forms.NumericUpDown numericUpDownGambleAbove;
private System.Windows.Forms.Label label19;
private System.Windows.Forms.NumericUpDown numericUpDownKeyYPos;
private System.Windows.Forms.NumericUpDown numericUpDownKeyXPos;
private System.Windows.Forms.Label label21;
private System.Windows.Forms.CheckBox checkBoxUseMerc;
private System.Windows.Forms.NumericUpDown numericUpDownMercTakeHPUnder;
private System.Windows.Forms.Label label22;
private System.Windows.Forms.GroupBox groupBox4;
private System.Windows.Forms.Button button1;
}
}

177
FormCharSettings.cs Normal file
View File

@ -0,0 +1,177 @@
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace app
{
public partial class FormCharSettings : Form
{
public List<CheckBox> AvailableSlotList = new List<CheckBox>();
public Form1 Form1_0;
public bool CanReloadSettings = true;
public FormCharSettings(Form1 form1_1)
{
Form1_0 = form1_1;
InitializeComponent();
for (int i = 0; i < 40; i++)
{
CheckBox CheckBox_0 = new CheckBox();
CheckBox_0.Size = new Size(15, 15);
AvailableSlotList.Add(CheckBox_0);
this.groupBoxInventory.Controls.Add(this.AvailableSlotList[AvailableSlotList.Count - 1]);
}
int ThisXPos = 0;
int ThixYPos = 0;
for (int i = 0; i < 40; i++)
{
if (i < 10)
{
ThisXPos = groupBoxInventory.Location.X + 5 + (i * 18);
ThixYPos = 20;
}
if (i >= 10 && i < 20)
{
ThisXPos = groupBoxInventory.Location.X + 5 + ((i - 10) * 18);
ThixYPos = 20 + (18 * 1);
}
if (i >= 20 && i < 30)
{
ThisXPos = groupBoxInventory.Location.X + 5 + ((i - 20) * 18);
ThixYPos = 20 + (18 * 2);
}
if (i >= 30 && i < 40)
{
ThisXPos = groupBoxInventory.Location.X + 5 + ((i - 30) * 18);
ThixYPos = 20 + (18 * 3);
}
AvailableSlotList[i].Location = new Point(ThisXPos, ThixYPos);
}
LoadSettings();
}
public void LoadSettings()
{
CanReloadSettings = false;
if (CharConfig.RunningOnChar == "PaladinHammer") comboBoxType.SelectedIndex = 0;
if (CharConfig.RunningOnChar == "SorceressBlizzard") comboBoxType.SelectedIndex = 1;
textBoxLeftSkill.Text = CharConfig.KeySkillAttack.ToString();
textBoxRightSkill.Text = CharConfig.KeySkillAura.ToString();
textBoxFastMoveTown.Text = CharConfig.KeySkillfastMoveAtTown.ToString();
textBoxFastMoveTeleport.Text = CharConfig.KeySkillfastMoveOutsideTown.ToString();
textBoxDefenseSkill.Text = CharConfig.KeySkillDefenseAura.ToString();
textBoxCastDefenseSkill.Text = CharConfig.KeySkillCastDefense.ToString();
textBoxLifeSkill.Text = CharConfig.KeySkillLifeAura.ToString();
checkBoxAttachRightHand.Checked = CharConfig.PlayerAttackWithRightHand;
checkBoxUseMerc.Checked = CharConfig.UsingMerc;
numericUpDownMercTakeHPUnder.Value = CharConfig.MercTakeHPPotUnder;
textBoxCharName.Text = CharConfig.PlayerCharName;
numericUpDownChickenHP.Value = CharConfig.ChickenHP;
numericUpDownTakeHP.Value = CharConfig.TakeHPPotUnder;
numericUpDownTakeMana.Value = CharConfig.TakeManaPotUnder;
numericUpDownTakeRV.Value = CharConfig.TakeRVPotUnder;
numericUpDownGambleAbove.Value = CharConfig.GambleAboveGoldAmount;
numericUpDownGambleUntil.Value = CharConfig.GambleUntilGoldAmount;
checkBoxUseTeleport.Checked = CharConfig.UseTeleport;
comboBoxBelt1.SelectedIndex = CharConfig.BeltPotTypeToHave[0];
comboBoxBelt2.SelectedIndex = CharConfig.BeltPotTypeToHave[1];
comboBoxBelt3.SelectedIndex = CharConfig.BeltPotTypeToHave[2];
comboBoxBelt4.SelectedIndex = CharConfig.BeltPotTypeToHave[3];
numericUpDownKeyXPos.Value = CharConfig.KeysLocationInInventory.Item1;
numericUpDownKeyYPos.Value = CharConfig.KeysLocationInInventory.Item2;
for (int i = 0; i < 40; i++)
{
if (CharConfig.InventoryDontCheckItem[i] == 0) AvailableSlotList[i].Checked = false;
if (CharConfig.InventoryDontCheckItem[i] == 1) AvailableSlotList[i].Checked = true;
}
CanReloadSettings = true;
}
public void SaveSettings()
{
if (comboBoxType.SelectedIndex == 0) CharConfig.RunningOnChar = "PaladinHammer";
if (comboBoxType.SelectedIndex == 1) CharConfig.RunningOnChar = "SorceressBlizzard";
Enum.TryParse(textBoxLeftSkill.Text, out CharConfig.KeySkillAttack);
Enum.TryParse(textBoxRightSkill.Text, out CharConfig.KeySkillAura);
Enum.TryParse(textBoxFastMoveTown.Text, out CharConfig.KeySkillfastMoveAtTown);
Enum.TryParse(textBoxFastMoveTeleport.Text, out CharConfig.KeySkillfastMoveOutsideTown);
Enum.TryParse(textBoxDefenseSkill.Text, out CharConfig.KeySkillDefenseAura);
Enum.TryParse(textBoxCastDefenseSkill.Text, out CharConfig.KeySkillCastDefense);
Enum.TryParse(textBoxLifeSkill.Text, out CharConfig.KeySkillLifeAura);
CharConfig.PlayerAttackWithRightHand = checkBoxAttachRightHand.Checked;
CharConfig.UsingMerc = checkBoxUseMerc.Checked;
CharConfig.MercTakeHPPotUnder = (int) numericUpDownMercTakeHPUnder.Value;
CharConfig.PlayerCharName = textBoxCharName.Text;
CharConfig.ChickenHP = (int)numericUpDownChickenHP.Value;
CharConfig.TakeHPPotUnder = (int)numericUpDownTakeHP.Value;
CharConfig.TakeManaPotUnder = (int)numericUpDownTakeMana.Value;
CharConfig.TakeRVPotUnder = (int)numericUpDownTakeRV.Value;
CharConfig.GambleAboveGoldAmount = (int)numericUpDownGambleAbove.Value;
CharConfig.GambleUntilGoldAmount = (int)numericUpDownGambleUntil.Value;
CharConfig.UseTeleport = checkBoxUseTeleport.Checked;
CharConfig.BeltPotTypeToHave[0] = comboBoxBelt1.SelectedIndex;
CharConfig.BeltPotTypeToHave[1] = comboBoxBelt2.SelectedIndex;
CharConfig.BeltPotTypeToHave[2] = comboBoxBelt3.SelectedIndex;
CharConfig.BeltPotTypeToHave[3] = comboBoxBelt4.SelectedIndex;
CharConfig.KeysLocationInInventory.Item1 = (int)numericUpDownKeyXPos.Value;
CharConfig.KeysLocationInInventory.Item2 = (int)numericUpDownKeyYPos.Value;
for (int i = 0; i < 40; i++)
{
if (!AvailableSlotList[i].Checked) CharConfig.InventoryDontCheckItem[i] = 0;
if (AvailableSlotList[i].Checked) CharConfig.InventoryDontCheckItem[i] = 1;
}
}
private void FormCharSettings_FormClosing(object sender, FormClosingEventArgs e)
{
SaveSettings();
Form1_0.SettingsLoader_0.SaveCharSettings();
}
private void comboBoxType_SelectedIndexChanged(object sender, EventArgs e)
{
if (CanReloadSettings)
{
if (comboBoxType.SelectedIndex == 0) CharConfig.RunningOnChar = "PaladinHammer";
if (comboBoxType.SelectedIndex == 1) CharConfig.RunningOnChar = "SorceressBlizzard";
Form1_0.SettingsLoader_0.ReloadCharSettings();
LoadSettings();
}
}
private void button1_Click(object sender, EventArgs e)
{
SaveSettings();
Form1_0.SettingsLoader_0.SaveCharSettings();
}
}
}

120
FormCharSettings.resx Normal file
View File

@ -0,0 +1,120 @@
<?xml version="1.0" encoding="utf-8"?>
<root>
<!--
Microsoft ResX Schema
Version 2.0
The primary goals of this format is to allow a simple XML format
that is mostly human readable. The generation and parsing of the
various data types are done through the TypeConverter classes
associated with the data types.
Example:
... ado.net/XML headers & schema ...
<resheader name="resmimetype">text/microsoft-resx</resheader>
<resheader name="version">2.0</resheader>
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
<value>[base64 mime encoded serialized .NET Framework object]</value>
</data>
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
<comment>This is a comment</comment>
</data>
There are any number of "resheader" rows that contain simple
name/value pairs.
Each data row contains a name, and value. The row also contains a
type or mimetype. Type corresponds to a .NET class that support
text/value conversion through the TypeConverter architecture.
Classes that don't support this are serialized and stored with the
mimetype set.
The mimetype is used for serialized objects, and tells the
ResXResourceReader how to depersist the object. This is currently not
extensible. For a given mimetype the value must be set accordingly:
Note - application/x-microsoft.net.object.binary.base64 is the format
that the ResXResourceWriter will generate, however the reader can
read any of the formats listed below.
mimetype: application/x-microsoft.net.object.binary.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.soap.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.bytearray.base64
value : The object must be serialized into a byte array
: using a System.ComponentModel.TypeConverter
: and then encoded with base64 encoding.
-->
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
<xsd:element name="root" msdata:IsDataSet="true">
<xsd:complexType>
<xsd:choice maxOccurs="unbounded">
<xsd:element name="metadata">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" />
</xsd:sequence>
<xsd:attribute name="name" use="required" type="xsd:string" />
<xsd:attribute name="type" type="xsd:string" />
<xsd:attribute name="mimetype" type="xsd:string" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="assembly">
<xsd:complexType>
<xsd:attribute name="alias" type="xsd:string" />
<xsd:attribute name="name" type="xsd:string" />
</xsd:complexType>
</xsd:element>
<xsd:element name="data">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="resheader">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" />
</xsd:complexType>
</xsd:element>
</xsd:choice>
</xsd:complexType>
</xsd:element>
</xsd:schema>
<resheader name="resmimetype">
<value>text/microsoft-resx</value>
</resheader>
<resheader name="version">
<value>2.0</value>
</resheader>
<resheader name="reader">
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
</root>

248
FormSettings.Designer.cs generated
View File

@ -28,18 +28,34 @@
/// </summary>
private void InitializeComponent()
{
System.Windows.Forms.ListViewItem listViewItem1 = new System.Windows.Forms.ListViewItem("Item Grab ONLY");
System.Windows.Forms.ListViewItem listViewItem2 = new System.Windows.Forms.ListViewItem("Countess");
System.Windows.Forms.ListViewItem listViewItem3 = new System.Windows.Forms.ListViewItem("Andariel");
System.Windows.Forms.ListViewItem listViewItem4 = new System.Windows.Forms.ListViewItem("Summoner");
System.Windows.Forms.ListViewItem listViewItem5 = new System.Windows.Forms.ListViewItem("Duriel");
System.Windows.Forms.ListViewItem listViewItem6 = new System.Windows.Forms.ListViewItem("Lower Kurast");
System.Windows.Forms.ListViewItem listViewItem7 = new System.Windows.Forms.ListViewItem("Mephisto");
System.Windows.Forms.ListViewItem listViewItem8 = new System.Windows.Forms.ListViewItem("Chaos Leech");
System.Windows.Forms.ListViewItem listViewItem9 = new System.Windows.Forms.ListViewItem("Baal Leech");
System.Windows.Forms.ListViewItem listViewItem76 = new System.Windows.Forms.ListViewItem("Item Grab ONLY");
System.Windows.Forms.ListViewItem listViewItem77 = new System.Windows.Forms.ListViewItem("Countess");
System.Windows.Forms.ListViewItem listViewItem78 = new System.Windows.Forms.ListViewItem("Andariel");
System.Windows.Forms.ListViewItem listViewItem79 = new System.Windows.Forms.ListViewItem("Summoner");
System.Windows.Forms.ListViewItem listViewItem80 = new System.Windows.Forms.ListViewItem("Duriel");
System.Windows.Forms.ListViewItem listViewItem81 = new System.Windows.Forms.ListViewItem("Lower Kurast");
System.Windows.Forms.ListViewItem listViewItem82 = new System.Windows.Forms.ListViewItem("Travincal");
System.Windows.Forms.ListViewItem listViewItem83 = new System.Windows.Forms.ListViewItem("Mephisto");
System.Windows.Forms.ListViewItem listViewItem84 = new System.Windows.Forms.ListViewItem("Chaos Leech");
System.Windows.Forms.ListViewItem listViewItem85 = new System.Windows.Forms.ListViewItem("Pindleskin");
System.Windows.Forms.ListViewItem listViewItem86 = new System.Windows.Forms.ListViewItem("Baal Leech");
System.Windows.Forms.ListViewItem listViewItem87 = new System.Windows.Forms.ListViewItem("Dark Wood");
System.Windows.Forms.ListViewItem listViewItem88 = new System.Windows.Forms.ListViewItem("Tristram");
System.Windows.Forms.ListViewItem listViewItem89 = new System.Windows.Forms.ListViewItem("Andariel");
System.Windows.Forms.ListViewItem listViewItem90 = new System.Windows.Forms.ListViewItem("Radament");
System.Windows.Forms.ListViewItem listViewItem91 = new System.Windows.Forms.ListViewItem("Hall of the Dead (Cube)");
System.Windows.Forms.ListViewItem listViewItem92 = new System.Windows.Forms.ListViewItem("Far Oasis (Staff)");
System.Windows.Forms.ListViewItem listViewItem93 = new System.Windows.Forms.ListViewItem("Lost City (Ammy)");
System.Windows.Forms.ListViewItem listViewItem94 = new System.Windows.Forms.ListViewItem("Summoner");
System.Windows.Forms.ListViewItem listViewItem95 = new System.Windows.Forms.ListViewItem("Duriel");
System.Windows.Forms.ListViewItem listViewItem96 = new System.Windows.Forms.ListViewItem("Kahlim Eye");
System.Windows.Forms.ListViewItem listViewItem97 = new System.Windows.Forms.ListViewItem("Kahlim Brain");
System.Windows.Forms.ListViewItem listViewItem98 = new System.Windows.Forms.ListViewItem("Kahlim Heart");
System.Windows.Forms.ListViewItem listViewItem99 = new System.Windows.Forms.ListViewItem("Travincal");
System.Windows.Forms.ListViewItem listViewItem100 = new System.Windows.Forms.ListViewItem("Mephisto");
this.listViewRunScripts = new System.Windows.Forms.ListView();
this.columnHeader1 = ((System.Windows.Forms.ColumnHeader)(new System.Windows.Forms.ColumnHeader()));
this.label1 = new System.Windows.Forms.Label();
this.label1Run = new System.Windows.Forms.Label();
this.label2 = new System.Windows.Forms.Label();
this.groupBox1 = new System.Windows.Forms.GroupBox();
this.button1 = new System.Windows.Forms.Button();
@ -52,10 +68,16 @@
this.label3 = new System.Windows.Forms.Label();
this.textBoxGameName = new System.Windows.Forms.TextBox();
this.numericUpDownMaxTime = new System.Windows.Forms.NumericUpDown();
this.label7 = new System.Windows.Forms.Label();
this.label7MaxTime = new System.Windows.Forms.Label();
this.comboBoxLobby = new System.Windows.Forms.ComboBox();
this.label8 = new System.Windows.Forms.Label();
this.textBoxD2Path = new System.Windows.Forms.TextBox();
this.listViewRush = new System.Windows.Forms.ListView();
this.columnHeader2 = ((System.Windows.Forms.ColumnHeader)(new System.Windows.Forms.ColumnHeader()));
this.checkBoxRush = new System.Windows.Forms.CheckBox();
this.label1LeechName = new System.Windows.Forms.Label();
this.textBox1LeechName = new System.Windows.Forms.TextBox();
this.button2 = new System.Windows.Forms.Button();
this.groupBox1.SuspendLayout();
((System.ComponentModel.ISupportInitialize)(this.numericUpDownRunNumber)).BeginInit();
((System.ComponentModel.ISupportInitialize)(this.numericUpDownMaxTime)).BeginInit();
@ -69,30 +91,34 @@
this.listViewRunScripts.FullRowSelect = true;
this.listViewRunScripts.GridLines = true;
this.listViewRunScripts.HideSelection = false;
listViewItem1.StateImageIndex = 0;
listViewItem2.Checked = true;
listViewItem2.StateImageIndex = 1;
listViewItem3.StateImageIndex = 0;
listViewItem4.StateImageIndex = 0;
listViewItem5.StateImageIndex = 0;
listViewItem6.StateImageIndex = 0;
listViewItem7.StateImageIndex = 0;
listViewItem8.StateImageIndex = 0;
listViewItem9.StateImageIndex = 0;
listViewItem76.StateImageIndex = 0;
listViewItem77.Checked = true;
listViewItem77.StateImageIndex = 1;
listViewItem78.StateImageIndex = 0;
listViewItem79.StateImageIndex = 0;
listViewItem80.StateImageIndex = 0;
listViewItem81.StateImageIndex = 0;
listViewItem82.StateImageIndex = 0;
listViewItem83.StateImageIndex = 0;
listViewItem84.StateImageIndex = 0;
listViewItem85.StateImageIndex = 0;
listViewItem86.StateImageIndex = 0;
this.listViewRunScripts.Items.AddRange(new System.Windows.Forms.ListViewItem[] {
listViewItem1,
listViewItem2,
listViewItem3,
listViewItem4,
listViewItem5,
listViewItem6,
listViewItem7,
listViewItem8,
listViewItem9});
this.listViewRunScripts.Location = new System.Drawing.Point(12, 132);
listViewItem76,
listViewItem77,
listViewItem78,
listViewItem79,
listViewItem80,
listViewItem81,
listViewItem82,
listViewItem83,
listViewItem84,
listViewItem85,
listViewItem86});
this.listViewRunScripts.Location = new System.Drawing.Point(12, 179);
this.listViewRunScripts.Name = "listViewRunScripts";
this.listViewRunScripts.Scrollable = false;
this.listViewRunScripts.Size = new System.Drawing.Size(225, 157);
this.listViewRunScripts.Size = new System.Drawing.Size(225, 232);
this.listViewRunScripts.TabIndex = 0;
this.listViewRunScripts.UseCompatibleStateImageBehavior = false;
this.listViewRunScripts.View = System.Windows.Forms.View.List;
@ -102,21 +128,23 @@
//
this.columnHeader1.Width = 200;
//
// label1
// label1Run
//
this.label1.AutoSize = true;
this.label1.Font = new System.Drawing.Font("Microsoft Sans Serif", 9.75F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.label1.Location = new System.Drawing.Point(54, 108);
this.label1.Name = "label1";
this.label1.Size = new System.Drawing.Size(134, 16);
this.label1.TabIndex = 1;
this.label1.Text = "Select Run Scripts";
this.label1Run.AutoSize = true;
this.label1Run.Font = new System.Drawing.Font("Microsoft Sans Serif", 9.75F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.label1Run.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(0)))), ((int)(((byte)(0)))), ((int)(((byte)(192)))));
this.label1Run.Location = new System.Drawing.Point(47, 135);
this.label1Run.Name = "label1Run";
this.label1Run.Size = new System.Drawing.Size(134, 16);
this.label1Run.TabIndex = 1;
this.label1Run.Text = "Select Run Scripts";
//
// label2
//
this.label2.AutoSize = true;
this.label2.Font = new System.Drawing.Font("Microsoft Sans Serif", 9.75F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.label2.Location = new System.Drawing.Point(50, 64);
this.label2.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(0)))), ((int)(((byte)(0)))), ((int)(((byte)(192)))));
this.label2.Location = new System.Drawing.Point(50, 83);
this.label2.Name = "label2";
this.label2.Size = new System.Drawing.Size(142, 16);
this.label2.TabIndex = 3;
@ -133,7 +161,7 @@
this.groupBox1.Controls.Add(this.textBoxGamePass);
this.groupBox1.Controls.Add(this.label3);
this.groupBox1.Controls.Add(this.textBoxGameName);
this.groupBox1.Location = new System.Drawing.Point(3, 328);
this.groupBox1.Location = new System.Drawing.Point(3, 450);
this.groupBox1.Name = "groupBox1";
this.groupBox1.Size = new System.Drawing.Size(244, 122);
this.groupBox1.TabIndex = 4;
@ -236,7 +264,7 @@
//
// numericUpDownMaxTime
//
this.numericUpDownMaxTime.Location = new System.Drawing.Point(162, 299);
this.numericUpDownMaxTime.Location = new System.Drawing.Point(162, 421);
this.numericUpDownMaxTime.Maximum = new decimal(new int[] {
99999,
0,
@ -251,14 +279,14 @@
0,
0});
//
// label7
// label7MaxTime
//
this.label7.AutoSize = true;
this.label7.Location = new System.Drawing.Point(27, 301);
this.label7.Name = "label7";
this.label7.Size = new System.Drawing.Size(132, 13);
this.label7.TabIndex = 9;
this.label7.Text = "Max Game Time (minutes):";
this.label7MaxTime.AutoSize = true;
this.label7MaxTime.Location = new System.Drawing.Point(27, 423);
this.label7MaxTime.Name = "label7MaxTime";
this.label7MaxTime.Size = new System.Drawing.Size(132, 13);
this.label7MaxTime.TabIndex = 9;
this.label7MaxTime.Text = "Max Game Time (minutes):";
//
// comboBoxLobby
//
@ -267,7 +295,7 @@
"Game Create/Maker",
"Chaos Search (Leech)",
"Baal Search (Leech)"});
this.comboBoxLobby.Location = new System.Drawing.Point(12, 83);
this.comboBoxLobby.Location = new System.Drawing.Point(12, 102);
this.comboBoxLobby.Name = "comboBoxLobby";
this.comboBoxLobby.Size = new System.Drawing.Size(226, 21);
this.comboBoxLobby.TabIndex = 9;
@ -277,7 +305,8 @@
//
this.label8.AutoSize = true;
this.label8.Font = new System.Drawing.Font("Microsoft Sans Serif", 9.75F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.label8.Location = new System.Drawing.Point(50, 14);
this.label8.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(0)))), ((int)(((byte)(0)))), ((int)(((byte)(192)))));
this.label8.Location = new System.Drawing.Point(50, 40);
this.label8.Name = "label8";
this.label8.Size = new System.Drawing.Size(137, 16);
this.label8.TabIndex = 10;
@ -285,25 +314,121 @@
//
// textBoxD2Path
//
this.textBoxD2Path.Location = new System.Drawing.Point(12, 33);
this.textBoxD2Path.Location = new System.Drawing.Point(12, 59);
this.textBoxD2Path.Name = "textBoxD2Path";
this.textBoxD2Path.Size = new System.Drawing.Size(225, 20);
this.textBoxD2Path.TabIndex = 9;
//
// listViewRush
//
this.listViewRush.CheckBoxes = true;
this.listViewRush.Columns.AddRange(new System.Windows.Forms.ColumnHeader[] {
this.columnHeader2});
this.listViewRush.FullRowSelect = true;
this.listViewRush.GridLines = true;
this.listViewRush.HideSelection = false;
listViewItem87.StateImageIndex = 0;
listViewItem88.StateImageIndex = 0;
listViewItem89.StateImageIndex = 0;
listViewItem90.StateImageIndex = 0;
listViewItem91.StateImageIndex = 0;
listViewItem92.StateImageIndex = 0;
listViewItem93.StateImageIndex = 0;
listViewItem94.StateImageIndex = 0;
listViewItem95.StateImageIndex = 0;
listViewItem96.StateImageIndex = 0;
listViewItem97.StateImageIndex = 0;
listViewItem98.StateImageIndex = 0;
listViewItem99.StateImageIndex = 0;
listViewItem100.StateImageIndex = 0;
this.listViewRush.Items.AddRange(new System.Windows.Forms.ListViewItem[] {
listViewItem87,
listViewItem88,
listViewItem89,
listViewItem90,
listViewItem91,
listViewItem92,
listViewItem93,
listViewItem94,
listViewItem95,
listViewItem96,
listViewItem97,
listViewItem98,
listViewItem99,
listViewItem100});
this.listViewRush.Location = new System.Drawing.Point(252, 179);
this.listViewRush.Name = "listViewRush";
this.listViewRush.Scrollable = false;
this.listViewRush.Size = new System.Drawing.Size(225, 232);
this.listViewRush.TabIndex = 11;
this.listViewRush.UseCompatibleStateImageBehavior = false;
this.listViewRush.View = System.Windows.Forms.View.List;
//
// columnHeader2
//
this.columnHeader2.Width = 200;
//
// checkBoxRush
//
this.checkBoxRush.AutoSize = true;
this.checkBoxRush.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.checkBoxRush.Location = new System.Drawing.Point(23, 157);
this.checkBoxRush.Name = "checkBoxRush";
this.checkBoxRush.Size = new System.Drawing.Size(203, 17);
this.checkBoxRush.TabIndex = 12;
this.checkBoxRush.Text = "Show and Run on Rush Scripts";
this.checkBoxRush.UseVisualStyleBackColor = true;
this.checkBoxRush.CheckedChanged += new System.EventHandler(this.checkBoxRush_CheckedChanged);
//
// label1LeechName
//
this.label1LeechName.AutoSize = true;
this.label1LeechName.Location = new System.Drawing.Point(9, 424);
this.label1LeechName.Name = "label1LeechName";
this.label1LeechName.Size = new System.Drawing.Size(80, 13);
this.label1LeechName.TabIndex = 9;
this.label1LeechName.Text = "Leecher Name:";
this.label1LeechName.Visible = false;
//
// textBox1LeechName
//
this.textBox1LeechName.Location = new System.Drawing.Point(88, 421);
this.textBox1LeechName.Name = "textBox1LeechName";
this.textBox1LeechName.Size = new System.Drawing.Size(149, 20);
this.textBox1LeechName.TabIndex = 9;
this.textBox1LeechName.Visible = false;
//
// button2
//
this.button2.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.button2.ForeColor = System.Drawing.Color.Red;
this.button2.Location = new System.Drawing.Point(39, 5);
this.button2.Name = "button2";
this.button2.Size = new System.Drawing.Size(168, 29);
this.button2.TabIndex = 13;
this.button2.Text = "OPEN CHAR SETTINGS";
this.button2.UseVisualStyleBackColor = true;
this.button2.Click += new System.EventHandler(this.button2_Click);
//
// FormSettings
//
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
this.BackColor = System.Drawing.SystemColors.ControlDark;
this.ClientSize = new System.Drawing.Size(253, 454);
this.ClientSize = new System.Drawing.Size(252, 574);
this.Controls.Add(this.button2);
this.Controls.Add(this.textBox1LeechName);
this.Controls.Add(this.label1LeechName);
this.Controls.Add(this.checkBoxRush);
this.Controls.Add(this.listViewRush);
this.Controls.Add(this.label8);
this.Controls.Add(this.comboBoxLobby);
this.Controls.Add(this.textBoxD2Path);
this.Controls.Add(this.numericUpDownMaxTime);
this.Controls.Add(this.label7);
this.Controls.Add(this.label7MaxTime);
this.Controls.Add(this.groupBox1);
this.Controls.Add(this.label2);
this.Controls.Add(this.label1);
this.Controls.Add(this.label1Run);
this.Controls.Add(this.listViewRunScripts);
this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedDialog;
this.MaximizeBox = false;
@ -311,6 +436,7 @@
this.ShowIcon = false;
this.Text = "D2R - BMBot - Settings";
this.FormClosing += new System.Windows.Forms.FormClosingEventHandler(this.FormSettings_FormClosing);
this.Load += new System.EventHandler(this.FormSettings_Load);
this.groupBox1.ResumeLayout(false);
this.groupBox1.PerformLayout();
((System.ComponentModel.ISupportInitialize)(this.numericUpDownRunNumber)).EndInit();
@ -324,7 +450,7 @@
private System.Windows.Forms.ListView listViewRunScripts;
private System.Windows.Forms.ColumnHeader columnHeader1;
private System.Windows.Forms.Label label1;
private System.Windows.Forms.Label label1Run;
private System.Windows.Forms.Label label2;
private System.Windows.Forms.GroupBox groupBox1;
private System.Windows.Forms.Label label5;
@ -337,9 +463,15 @@
private System.Windows.Forms.NumericUpDown numericUpDownRunNumber;
private System.Windows.Forms.Label label6;
private System.Windows.Forms.NumericUpDown numericUpDownMaxTime;
private System.Windows.Forms.Label label7;
private System.Windows.Forms.Label label7MaxTime;
private System.Windows.Forms.ComboBox comboBoxLobby;
private System.Windows.Forms.Label label8;
private System.Windows.Forms.TextBox textBoxD2Path;
private System.Windows.Forms.ListView listViewRush;
private System.Windows.Forms.ColumnHeader columnHeader2;
private System.Windows.Forms.CheckBox checkBoxRush;
private System.Windows.Forms.Label label1LeechName;
private System.Windows.Forms.TextBox textBox1LeechName;
private System.Windows.Forms.Button button2;
}
}

View File

@ -1,4 +1,5 @@
using System;
using System.Drawing;
using System.Windows.Forms;
namespace app
@ -13,6 +14,9 @@ namespace app
InitializeComponent();
listViewRush.Location = new Point(listViewRunScripts.Location.X, listViewRunScripts.Location.Y);
listViewRush.Visible = false;
LoadSettings();
}
@ -20,6 +24,8 @@ namespace app
{
textBoxD2Path.Text = Form1_0.D2_LOD_113C_Path;
numericUpDownMaxTime.Value = CharConfig.MaxGameTime;
checkBoxRush.Checked = CharConfig.IsRushing;
textBox1LeechName.Text = CharConfig.RushLeecherName;
listViewRunScripts.Items[0].Checked = CharConfig.RunItemGrabScriptOnly;
listViewRunScripts.Items[1].Checked = CharConfig.RunCountessScript;
@ -27,9 +33,26 @@ namespace app
listViewRunScripts.Items[3].Checked = CharConfig.RunSummonerScript;
listViewRunScripts.Items[4].Checked = CharConfig.RunDurielScript;
listViewRunScripts.Items[5].Checked = CharConfig.RunLowerKurastScript;
listViewRunScripts.Items[6].Checked = CharConfig.RunMephistoScript;
listViewRunScripts.Items[7].Checked = CharConfig.RunChaosScript;
listViewRunScripts.Items[8].Checked = CharConfig.RunBaalLeechScript;
listViewRunScripts.Items[6].Checked = CharConfig.RunTravincalScript;
listViewRunScripts.Items[7].Checked = CharConfig.RunMephistoScript;
listViewRunScripts.Items[8].Checked = CharConfig.RunChaosScript;
listViewRunScripts.Items[9].Checked = CharConfig.RunPindleskinScript;
listViewRunScripts.Items[10].Checked = CharConfig.RunBaalLeechScript;
listViewRush.Items[0].Checked = CharConfig.RunDarkWoodRush;
listViewRush.Items[1].Checked = CharConfig.RunTristramRush;
listViewRush.Items[2].Checked = CharConfig.RunAndarielRush;
listViewRush.Items[3].Checked = CharConfig.RunRadamentRush;
listViewRush.Items[4].Checked = CharConfig.RunHallOfDeadRush;
listViewRush.Items[5].Checked = CharConfig.RunFarOasisRush;
listViewRush.Items[6].Checked = CharConfig.RunLostCityRush;
listViewRush.Items[7].Checked = CharConfig.RunSummonerRush;
listViewRush.Items[8].Checked = CharConfig.RunDurielRush;
listViewRush.Items[9].Checked = CharConfig.RunKahlimEyeRush;
listViewRush.Items[10].Checked = CharConfig.RunKahlimBrainRush;
listViewRush.Items[11].Checked = CharConfig.RunKahlimHeartRush;
listViewRush.Items[12].Checked = CharConfig.RunTravincalRush;
listViewRush.Items[13].Checked = CharConfig.RunMephistoRush;
if (CharConfig.RunGameMakerScript) comboBoxLobby.SelectedIndex = 0;
if (CharConfig.RunChaosSearchGameScript) comboBoxLobby.SelectedIndex = 1;
@ -43,17 +66,55 @@ namespace app
numericUpDownRunNumber.Value = Form1_0.CurrentGameNumber;
SetCreateGameGroupbox();
SetRushMenu();
}
public void SetRushMenu()
{
if (checkBoxRush.Checked)
{
comboBoxLobby.Enabled = false;
listViewRunScripts.Visible = false;
label1Run.Text = "Select Rush Scripts";
textBox1LeechName.Visible = true;
label1LeechName.Visible = true;
label7MaxTime.Visible = false;
numericUpDownMaxTime.Visible = false;
listViewRush.Visible = true;
}
else
{
comboBoxLobby.Enabled = true;
listViewRunScripts.Visible = true;
label1Run.Text = "Select Run Scripts";
textBox1LeechName.Visible = false;
label1LeechName.Visible = false;
label7MaxTime.Visible = true;
numericUpDownMaxTime.Visible = true;
listViewRush.Visible = false;
}
}
public void SetCreateGameGroupbox()
{
groupBox1.Enabled = (comboBoxLobby.SelectedIndex == 0);
if (!checkBoxRush.Checked) groupBox1.Enabled = (comboBoxLobby.SelectedIndex == 0);
else groupBox1.Enabled = false;
}
public void SaveSettings()
{
Form1_0.D2_LOD_113C_Path = textBoxD2Path.Text;
CharConfig.MaxGameTime = (int) numericUpDownMaxTime.Value;
CharConfig.IsRushing = checkBoxRush.Checked;
CharConfig.RushLeecherName = textBox1LeechName.Text;
CharConfig.RunItemGrabScriptOnly = listViewRunScripts.Items[0].Checked;
CharConfig.RunCountessScript = listViewRunScripts.Items[1].Checked;
@ -61,9 +122,26 @@ namespace app
CharConfig.RunSummonerScript = listViewRunScripts.Items[3].Checked;
CharConfig.RunDurielScript = listViewRunScripts.Items[4].Checked;
CharConfig.RunLowerKurastScript = listViewRunScripts.Items[5].Checked;
CharConfig.RunMephistoScript = listViewRunScripts.Items[6].Checked;
CharConfig.RunChaosScript = listViewRunScripts.Items[7].Checked;
CharConfig.RunBaalLeechScript = listViewRunScripts.Items[8].Checked;
CharConfig.RunTravincalScript = listViewRunScripts.Items[6].Checked;
CharConfig.RunMephistoScript = listViewRunScripts.Items[7].Checked;
CharConfig.RunChaosScript = listViewRunScripts.Items[8].Checked;
CharConfig.RunPindleskinScript = listViewRunScripts.Items[9].Checked;
CharConfig.RunBaalLeechScript = listViewRunScripts.Items[10].Checked;
CharConfig.RunDarkWoodRush = listViewRush.Items[0].Checked;
CharConfig.RunTristramRush = listViewRush.Items[1].Checked;
CharConfig.RunAndarielRush = listViewRush.Items[2].Checked;
CharConfig.RunRadamentRush = listViewRush.Items[3].Checked;
CharConfig.RunHallOfDeadRush = listViewRush.Items[4].Checked;
CharConfig.RunFarOasisRush = listViewRush.Items[5].Checked;
CharConfig.RunLostCityRush = listViewRush.Items[6].Checked;
CharConfig.RunSummonerRush = listViewRush.Items[7].Checked;
CharConfig.RunDurielRush = listViewRush.Items[8].Checked;
CharConfig.RunKahlimEyeRush = listViewRush.Items[9].Checked;
CharConfig.RunKahlimBrainRush = listViewRush.Items[10].Checked;
CharConfig.RunKahlimHeartRush = listViewRush.Items[11].Checked;
CharConfig.RunTravincalRush = listViewRush.Items[12].Checked;
CharConfig.RunMephistoRush = listViewRush.Items[13].Checked;
CharConfig.RunGameMakerScript = (comboBoxLobby.SelectedIndex == 0);
CharConfig.RunChaosSearchGameScript = (comboBoxLobby.SelectedIndex == 1);
@ -97,5 +175,21 @@ namespace app
{
}
private void FormSettings_Load(object sender, EventArgs e)
{
}
private void checkBoxRush_CheckedChanged(object sender, EventArgs e)
{
SetRushMenu();
}
private void button2_Click(object sender, EventArgs e)
{
FormCharSettings FormCharSettings_0 = new FormCharSettings(Form1_0);
FormCharSettings_0.ShowDialog();
}
}
}

View File

@ -5,7 +5,6 @@ Diablo II : Resurrected - Bot
# REQUIREMENTS
- Diablo2 Lord of Destruction 1.13C MUST BE INSTALLED for bot path finding (set the path in Settings.txt)
- .Net Framework 4.7.2
- Windows 64bit (the game must run in 64x, UNTESTED ON 32BIT)
@ -13,37 +12,22 @@ Diablo II : Resurrected - Bot
Start D2R, then start the bot.
- Use the application App.exe (available in '/bin/x64/Debug/' folder if not downloaded from release)
- Use the application App.exe in '/bin/x64/Debug/' folder
- Press Numpad5 to Start or Stop the bot alternativly
# CONFIGURE
- Settings configurations are in file Settings.txt
- Settings for Bots configurations are in file BotSettings.txt (->Theses settings can be edited in the settings menu directly!)
- Settings for Bots configurations are in file BotSettings.txt
- Settings for Char configurations are in file CharSettings.txt
- Settings for Items picking configurations are in file ItemsSettings.txt
# BOT RUNS SCRIPTS AVAILABLE
- Item grab Only script (this script can be used to move arround manually but let the bot pick items)
- Countess script
- Andariel script
- Summoner script
- Duriel script
- Lower Kurast script
- Mephisto script
- Chaos leech script
- Baal leech script
# LOBBY GAME SCRIPTS AVAILABLE
- Game Maker script
- Chaos games searching script (for leeching XP)
- Baal games searching script (for leeching XP)
# FEATURES
- Pick desired Items
- Lower Kurast script
- Baal leech script
- Baal games searching script
- Chaos leech script (not finished)
- Use Potions/Chicken
- Use Merc, Merc reliving in town
- Town script (ONLY for Act4 or Act5 right now)
@ -54,9 +38,8 @@ Diablo II : Resurrected - Bot
- Mover script (with or without teleport)
- Gambling script
- Cubing script (**cubing recipes need to be transfered to a settings file**)
- Game Maker script
# IS IT SAFE?
NO, any hack are not safe, you always use them at your own risk!
Blizzard do have Warden anti-cheat that will scan your computer for running processes and compare them against a blacklist.
I accept no responsibility for any outcomes or usage of this tool.
NO, any hack are not safe, you always use them at your own risk! Blizzard do have Warden anti-cheat that will scan your computer for running processes and compare them against a blacklist. I accept no responsibility for any outcomes or usage of this tool.

View File

@ -63,7 +63,7 @@ namespace app
{
MoveAway();
}
if (Form1_0.Mover_0.MoveToLocation(Form1_0.MobsStruc_0.xPosFinal - 2, Form1_0.MobsStruc_0.yPosFinal - 2))
if (Form1_0.Mover_0.MoveToLocation(Form1_0.MobsStruc_0.xPosFinal + 2, Form1_0.MobsStruc_0.yPosFinal + 2))
{
SetSkills();
}
@ -78,7 +78,7 @@ namespace app
}
}
public void DoBattleScript(int MaxDistance)
public bool DoBattleScript(int MaxDistance)
{
if (Form1_0.MobsStruc_0.GetMobs("", "", true, MaxDistance, new List<long>()))
{
@ -86,14 +86,16 @@ namespace app
{
MoveAway();
}
if (Form1_0.Mover_0.MoveToLocation(Form1_0.MobsStruc_0.xPosFinal - 2, Form1_0.MobsStruc_0.yPosFinal - 2))
if (Form1_0.Mover_0.MoveToLocation(Form1_0.MobsStruc_0.xPosFinal + 2, Form1_0.MobsStruc_0.yPosFinal + 2))
{
SetSkills();
}
Form1_0.MobsStruc_0.GetLastMobs();
CastSkills();
AttackTryCheck();
return true;
}
return false;
}
public void RunBattleScriptOnThisMob(string MobType, string MobName)
@ -104,7 +106,7 @@ namespace app
{
MoveAway();
}
if (Form1_0.Mover_0.MoveToLocation(Form1_0.MobsStruc_0.xPosFinal - 2, Form1_0.MobsStruc_0.yPosFinal - 2))
if (Form1_0.Mover_0.MoveToLocation(Form1_0.MobsStruc_0.xPosFinal + 2, Form1_0.MobsStruc_0.yPosFinal + 2))
{
SetSkills();
}

View File

@ -24,7 +24,7 @@ namespace app
{
Form1_0 = form1_1;
CubingRecipes.Add("Flawless Emerald+Flawless Emerald+Flawless Emerald=Perfect Emerald"); //Perfect emerald
/*CubingRecipes.Add("Flawless Emerald+Flawless Emerald+Flawless Emerald=Perfect Emerald"); //Perfect emerald
CubingRecipes.Add("Flawless Sapphire+Flawless Sapphire+Flawless Sapphire=Perfect Sapphire"); //Perfect Sapphire
CubingRecipes.Add("Flawless Amethyst+Flawless Amethyst+Flawless Amethyst=Perfect Amethyst"); //Perfect Amethyst
CubingRecipes.Add("Flawless Topaz+Flawless Topaz+Flawless Topaz=Perfect Topaz"); //Perfect Topaz
@ -56,7 +56,7 @@ namespace app
CubingRecipes.Add("Pul Rune+Pul Rune+Flawed Diamond=Um Rune"); //Um
//Token
CubingRecipes.Add("Twisted Essence of Suffering+Charged Essense of Hatred+Burning Essence of Terror+Festering Essence of Destruction=Token of Absolution");
CubingRecipes.Add("Twisted Essence of Suffering+Charged Essense of Hatred+Burning Essence of Terror+Festering Essence of Destruction=Token of Absolution");*/
}
public void ResetCubeInventory()
@ -303,11 +303,11 @@ namespace app
{
//clic transmute button
Form1_0.KeyMouse_0.MouseClicc(405, 615);
Form1_0.WaitDelay(20);
Form1_0.WaitDelay(35);
Form1_0.KeyMouse_0.MouseClicc(405, 615);
Form1_0.WaitDelay(20);
Form1_0.WaitDelay(35);
Form1_0.KeyMouse_0.MouseClicc(405, 615);
Form1_0.WaitDelay(20);
Form1_0.WaitDelay(35);
Form1_0.ItemsStruc_0.GetItems(false); //get inventory again
//send item to inventory

View File

@ -36,38 +36,38 @@ namespace app
Form1_0 = form1_1;
}
public void MoveToArea(Area ThisID)
public void MoveToArea(Area ThisID, int AcceptOffset = -1)
{
if (Form1_0.PlayerScan_0.levelNo == 0) Form1_0.PlayerScan_0.GetPositions();
ThisPlayerAreaID = (int)Form1_0.PlayerScan_0.levelNo;
ThisFinalPosition = Form1_0.MapAreaStruc_0.GetPositionOfObject("exit", Form1_0.Town_0.getAreaName((int) ThisID), ThisPlayerAreaID - 1, new List<int>() { });
ThisFinalPosition = Form1_0.MapAreaStruc_0.GetPositionOfObject("exit", Form1_0.Town_0.getAreaName((int) ThisID), ThisPlayerAreaID, new List<int>() { });
//Console.WriteLine("Going to Pos: " + ThisFinalPosition.X + ", " + ThisFinalPosition.Y);
MoveToArea((int) ThisID);
MoveToArea((int) ThisID, AcceptOffset);
}
public void MoveToNPC(string NPCName)
public void MoveToNPC(string NPCName, int AcceptOffset = -1)
{
if (Form1_0.PlayerScan_0.levelNo == 0) Form1_0.PlayerScan_0.GetPositions();
ThisPlayerAreaID = (int)Form1_0.PlayerScan_0.levelNo;
ThisFinalPosition = Form1_0.MapAreaStruc_0.GetPositionOfObject("npc", NPCName, ThisPlayerAreaID - 1, new List<int>() { });
ThisFinalPosition = Form1_0.MapAreaStruc_0.GetPositionOfObject("npc", NPCName, ThisPlayerAreaID, new List<int>() { });
MoveToArea((int)ThisPlayerAreaID);
MoveToArea((int)ThisPlayerAreaID, AcceptOffset);
}
public void MoveToThisPos(Position ThisPositionn)
public void MoveToThisPos(Position ThisPositionn, int AcceptOffset = -1)
{
if (Form1_0.PlayerScan_0.levelNo == 0) Form1_0.PlayerScan_0.GetPositions();
ThisPlayerAreaID = (int)Form1_0.PlayerScan_0.levelNo;
ThisFinalPosition = ThisPositionn;
MoveToArea((int)ThisPlayerAreaID);
MoveToArea((int)ThisPlayerAreaID, AcceptOffset);
}
public void MoveToArea(int ThisID)
public void MoveToArea(int ThisID, int AcceptOffset = -1)
{
ThisPlayerAreaID = (int)Form1_0.PlayerScan_0.levelNo;
//Console.WriteLine("Going to Pos: " + ThisFinalPosition.X + ", " + ThisFinalPosition.Y);
@ -80,6 +80,15 @@ namespace app
IsMovingThruPath = true;
while (IsMovingThruPath)
{
if (AcceptOffset > -1)
{
if (IsCloseToLocation(ThisFinalPosition, AcceptOffset))
{
IsMovingThruPath = false;
break;
}
}
//Console.WriteLine("Pos test: " + path[CurrentPathIndex].X + ", " + path[CurrentPathIndex].Y);
if (Form1_0.Mover_0.MoveToLocation(path[CurrentPathIndex].X + (path[CurrentPathIndex].Width / 2), path[CurrentPathIndex].Y + (path[CurrentPathIndex].Height / 2), false, false))
{
@ -112,7 +121,7 @@ namespace app
}
}
Form1_0.Mover_0.MoveToLocation(ThisFinalPosition.X, ThisFinalPosition.Y);
if (AcceptOffset == -1) Form1_0.Mover_0.MoveToLocation(ThisFinalPosition.X, ThisFinalPosition.Y);
int tryyy = 0;
while (Form1_0.PlayerScan_0.levelNo == ThisPlayerAreaID && tryyy <= 25)
@ -135,6 +144,19 @@ namespace app
}
}
public bool IsCloseToLocation(Position ThissP, int AcceptOffset)
{
bool MovedCorrectly = false;
if (Form1_0.PlayerScan_0.xPosFinal >= (ThissP.X - AcceptOffset)
&& Form1_0.PlayerScan_0.xPosFinal <= (ThissP.X + AcceptOffset)
&& Form1_0.PlayerScan_0.yPosFinal >= (ThissP.Y - AcceptOffset)
&& Form1_0.PlayerScan_0.yPosFinal <= (ThissP.Y + AcceptOffset))
{
MovedCorrectly = true;
}
return MovedCorrectly;
}
public List<Room> FindShortestPath(List<Room> rooms, int startX, int startY, int destX, int destY)
{
@ -183,7 +205,7 @@ namespace app
return path;
}
foreach (Room neighbor in GetNeighbors(currentRoom, rooms, roomsOut))
foreach (Room neighbor in GetNeighbors(currentRoom, rooms))
{
if (!visited.Contains(neighbor))
{
@ -192,42 +214,48 @@ namespace app
parent[neighbor] = currentRoom;
}
}
if (roomsOut != rooms)
{
foreach (Room neighbor in GetNeighbors2(currentRoom, roomsOut))
{
if (!visited.Contains(neighbor))
{
queue.Enqueue(neighbor);
visited.Add(neighbor);
parent[neighbor] = currentRoom;
}
}
}
}
return null; // No path found
}
public static IEnumerable<Room> GetNeighbors(Room room, List<Room> rooms, List<Room> roomsOut)
public static IEnumerable<Room> GetNeighbors(Room room, List<Room> rooms)
{
if (rooms != roomsOut)
foreach (Room otherRoom in rooms)
{
foreach (Room otherRoom in roomsOut)
{
if (room != otherRoom && IsNeighbor(room, otherRoom))
{
yield return otherRoom;
}
}
//Console.WriteLine("Neighbor test: " + otherRoom.X + ", " + otherRoom.Y + " neighbor of: " + room.X + ", " + room.Y + " | " + IsNeighbor(room, otherRoom));
foreach (Room otherRoom in rooms)
if (room != otherRoom && IsNeighbor(room, otherRoom))
{
if (room != otherRoom && IsNeighbor(room, otherRoom))
{
yield return otherRoom;
}
//Console.WriteLine("Room: " + otherRoom.X + ", " + otherRoom.Y + " neighbor of: " + room.X + ", " + room.Y);
yield return otherRoom;
}
}
else
{
foreach (Room otherRoom in rooms)
{
//Console.WriteLine("Neighbor test: " + otherRoom.X + ", " + otherRoom.Y + " neighbor of: " + room.X + ", " + room.Y + " | " + IsNeighbor(room, otherRoom));
}
if (room != otherRoom && IsNeighbor(room, otherRoom))
{
//Console.WriteLine("Room: " + otherRoom.X + ", " + otherRoom.Y + " neighbor of: " + room.X + ", " + room.Y);
yield return otherRoom;
}
public static IEnumerable<Room> GetNeighbors2(Room room, List<Room> rooms)
{
foreach (Room otherRoom in rooms)
{
//Console.WriteLine("Neighbor test: " + otherRoom.X + ", " + otherRoom.Y + " neighbor of: " + room.X + ", " + room.Y + " | " + IsNeighbor(room, otherRoom));
if (room != otherRoom && IsNeighbor(room, otherRoom))
{
//Console.WriteLine("Room: " + otherRoom.X + ", " + otherRoom.Y + " neighbor of: " + room.X + ", " + room.Y);
yield return otherRoom;
}
}
}

View File

@ -101,6 +101,10 @@ namespace app
ThisTimeCheck = DateTime.Now - LastTimeSinceTeleport;
}
}
else
{
Form1_0.SetProcessingTime();
}
//#######
//Form1_0.WaitDelay(10);

View File

@ -14,6 +14,13 @@ namespace app
public bool FirstShopping = true;
Dictionary<string, int> LastitemScreenPos = new Dictionary<string, int>();
public bool ShopForSellingitem = false;
public bool ShopForHP = false;
public bool ShopForMana = false;
public bool ShopForTP = false;
public bool ShopForKey = false;
public bool ShopForRegainHP = false;
public void SetForm1(Form1 form1_1)
{
Form1_0 = form1_1;
@ -36,6 +43,13 @@ namespace app
Form1_0.ItemsStruc_0.GetItems(false); //get inventory
Form1_0.BeltStruc_0.CheckForMissingPotions();
ShopForSellingitem = Form1_0.InventoryStruc_0.HasInventoryItems();
ShopForHP = Form1_0.BeltStruc_0.MissingHPPot;
ShopForMana = Form1_0.BeltStruc_0.MissingManaPot;
ShopForTP = (Form1_0.InventoryStruc_0.HUDItems_tpscrolls <= 2);
ShopForKey = (Form1_0.InventoryStruc_0.HUDItems_keys <= 3);
ShopForRegainHP = Form1_0.PlayerScan_0.ShouldSeeShopForHP();
if (Form1_0.InventoryStruc_0.HasInventoryItems()
|| Form1_0.BeltStruc_0.MissingHPPot
|| Form1_0.BeltStruc_0.MissingManaPot

View File

@ -32,6 +32,7 @@ namespace app
public uint LastUsedTPID = 0;
public int LastUsedTPCount = 0;
public List<uint> IgnoredTPList = new List<uint>();
public List<uint> IgnoredWPList = new List<uint>();
public bool FirstTown = true;
public void SetForm1(Form1 form1_1)
@ -259,10 +260,10 @@ namespace app
if ((Form1_0.InventoryStruc_0.ContainStashItemInInventory() || (Form1_0.PlayerScan_0.PlayerGoldInventory >= 35000))
&& TriedToStashCount < 6 && !FastTowning)
{
//Console.WriteLine(Form1_0.InventoryStruc_0.ContainStashItemInInventory() + "|" + (Form1_0.PlayerScan_0.PlayerGoldInventory >= 35000));
Form1_0.method_1("Stash: item(" + Form1_0.InventoryStruc_0.ContainStashItemInInventory() + ") | Gold(" + (Form1_0.PlayerScan_0.PlayerGoldInventory >= 35000) + ")", Color.Red);
Form1_0.SetGameStatus("TOWN-STASH");
string DescTxt = "";
if (Form1_0.InventoryStruc_0.ContainStashItemInInventory()) DescTxt += " (ITEM)";
if ((Form1_0.PlayerScan_0.PlayerGoldInventory >= 35000)) DescTxt += " (GOLD)";
Form1_0.SetGameStatus("TOWN-STASH" + DescTxt);
MoveToStash(true);
TriedToStashCount++;
}
@ -312,7 +313,15 @@ namespace app
{
if (Form1_0.Shop_0.ShouldShop() && TriedToShopCount < 6)
{
Form1_0.SetGameStatus("TOWN-SHOP");
string DescTxt = "";
if (Form1_0.Shop_0.ShopForSellingitem) DescTxt += " (SELL)";
if (Form1_0.Shop_0.ShopForHP) DescTxt += " (HP)";
if (Form1_0.Shop_0.ShopForMana) DescTxt += " (MANA)";
if (Form1_0.Shop_0.ShopForTP) DescTxt += " (TP)";
if (Form1_0.Shop_0.ShopForKey) DescTxt += " (KEYS)";
if (Form1_0.Shop_0.ShopForRegainHP) DescTxt += " (REGEN HP)";
Form1_0.SetGameStatus("TOWN-SHOP" + DescTxt);
//Console.WriteLine("town moving to shop");
MoveToStore();
TriedToShopCount++;
@ -387,65 +396,14 @@ namespace app
//if (Form1_0.Mover_0.MoveToLocation(4681, 4541))
//{
//use wp
/*if (Form1_0.ObjectsStruc_0.GetObjects("WaypointPortal", false))
if (Form1_0.ObjectsStruc_0.GetObjects("WaypointPortal", false, IgnoredWPList))
{
if (Form1_0.ObjectsStruc_0.itemx == 0 && Form1_0.ObjectsStruc_0.itemy == 0)
{
IgnoredWPList.Add(Form1_0.ObjectsStruc_0.ObjectUnitID);
return;
}
if (Form1_0.Mover_0.MoveToLocation(Form1_0.ObjectsStruc_0.itemx, Form1_0.ObjectsStruc_0.itemy))
{
if (Form1_0.ObjectsStruc_0.GetObjects("WaypointPortal", false))
{
Dictionary<string, int> itemScreenPos = Form1_0.GameStruc_0.World2Screen(Form1_0.PlayerScan_0.xPosFinal, Form1_0.PlayerScan_0.yPosFinal, Form1_0.ObjectsStruc_0.itemx, Form1_0.ObjectsStruc_0.itemy);
Form1_0.KeyMouse_0.MouseClicc(itemScreenPos["x"], itemScreenPos["y"] - 15);
Form1_0.Mover_0.FinishMoving();
if (Form1_0.UIScan_0.WaitTilUIOpen("waypointMenu"))
{
if (SelectWPIndex == -1)
{
SelectTownWP();
}
else
{
SelectThisWPIndex(SelectActWPIndex, SelectWPIndex);
}
}
}
}
}
else
{*/
//"id":119, "type":"object", "x":84, "y":69, "name":"Waypoint",
Position ThisFinalPosition = Form1_0.MapAreaStruc_0.GetPositionOfObject("object", "WaypointPortal", 1 - 1, new List<int>() { });
if (Form1_0.Mover_0.MoveToLocation(ThisFinalPosition.X, ThisFinalPosition.Y))
{
Dictionary<string, int> itemScreenPos = Form1_0.GameStruc_0.World2Screen(Form1_0.PlayerScan_0.xPosFinal, Form1_0.PlayerScan_0.yPosFinal, ThisFinalPosition.X, ThisFinalPosition.Y);
Form1_0.KeyMouse_0.MouseClicc(itemScreenPos["x"], itemScreenPos["y"] - 15);
Form1_0.Mover_0.FinishMoving();
if (Form1_0.UIScan_0.WaitTilUIOpen("waypointMenu"))
{
if (SelectWPIndex == -1)
{
SelectTownWP();
}
else
{
SelectThisWPIndex(SelectActWPIndex, SelectWPIndex);
}
}
}
//Form1_0.method_1("NO WP FOUND NEAR IN TOWN", Color.OrangeRed);
//}
//}
}
/*if (TownAct == 2)
{
}*/
if (TownAct == 3)
{
if (Form1_0.Mover_0.MoveToLocation(5134, 5107))
{
if (Form1_0.Mover_0.MoveToLocation(5154, 5056))
{
//use wp
/*if (Form1_0.ObjectsStruc_0.GetObjects("Act3TownWaypoint", false))
{
Dictionary<string, int> itemScreenPos = Form1_0.GameStruc_0.World2Screen(Form1_0.PlayerScan_0.xPosFinal, Form1_0.PlayerScan_0.yPosFinal, Form1_0.ObjectsStruc_0.itemx, Form1_0.ObjectsStruc_0.itemy);
Form1_0.KeyMouse_0.MouseClicc(itemScreenPos["x"], itemScreenPos["y"] - 15);
@ -462,9 +420,13 @@ namespace app
}
}
}
else
{*/
Position ThisFinalPosition = Form1_0.MapAreaStruc_0.GetPositionOfObject("object", "Act3TownWaypoint", 75 - 1, new List<int>() { });
}
else
{
//"id":119, "type":"object", "x":84, "y":69, "name":"Waypoint",
Position ThisFinalPosition = Form1_0.MapAreaStruc_0.GetPositionOfObject("object", "WaypointPortal", 1, new List<int>() { });
if (ThisFinalPosition.X != 0 && ThisFinalPosition.Y != 0)
{
if (Form1_0.Mover_0.MoveToLocation(ThisFinalPosition.X, ThisFinalPosition.Y))
{
Dictionary<string, int> itemScreenPos = Form1_0.GameStruc_0.World2Screen(Form1_0.PlayerScan_0.xPosFinal, Form1_0.PlayerScan_0.yPosFinal, ThisFinalPosition.X, ThisFinalPosition.Y);
@ -482,8 +444,129 @@ namespace app
}
}
}
//Form1_0.method_1("NO WP FOUND NEAR IN TOWN", Color.OrangeRed);
//}
}
else
{
Form1_0.method_1("NO WP FOUND NEAR IN TOWN", Color.OrangeRed);
}
}
//}
}
if (TownAct == 2)
{
//use wp
if (Form1_0.ObjectsStruc_0.GetObjects("Act2Waypoint", false, IgnoredWPList))
{
if (Form1_0.ObjectsStruc_0.itemx == 0 && Form1_0.ObjectsStruc_0.itemy == 0)
{
IgnoredWPList.Add(Form1_0.ObjectsStruc_0.ObjectUnitID);
return;
}
if (Form1_0.Mover_0.MoveToLocation(Form1_0.ObjectsStruc_0.itemx, Form1_0.ObjectsStruc_0.itemy))
{
Dictionary<string, int> itemScreenPos = Form1_0.GameStruc_0.World2Screen(Form1_0.PlayerScan_0.xPosFinal, Form1_0.PlayerScan_0.yPosFinal, Form1_0.ObjectsStruc_0.itemx, Form1_0.ObjectsStruc_0.itemy);
Form1_0.KeyMouse_0.MouseClicc(itemScreenPos["x"], itemScreenPos["y"] - 15);
Form1_0.Mover_0.FinishMoving();
if (Form1_0.UIScan_0.WaitTilUIOpen("waypointMenu"))
{
if (SelectWPIndex == -1)
{
SelectTownWP();
}
else
{
SelectThisWPIndex(SelectActWPIndex, SelectWPIndex);
}
}
}
}
else
{
//"id":119, "type":"object", "x":84, "y":69, "name":"Waypoint",
Position ThisFinalPosition = Form1_0.MapAreaStruc_0.GetPositionOfObject("object", "Act2Waypoint", 40, new List<int>() { });
if (ThisFinalPosition.X != 0 && ThisFinalPosition.Y != 0)
{
if (Form1_0.Mover_0.MoveToLocation(ThisFinalPosition.X, ThisFinalPosition.Y))
{
Dictionary<string, int> itemScreenPos = Form1_0.GameStruc_0.World2Screen(Form1_0.PlayerScan_0.xPosFinal, Form1_0.PlayerScan_0.yPosFinal, ThisFinalPosition.X, ThisFinalPosition.Y);
Form1_0.KeyMouse_0.MouseClicc(itemScreenPos["x"], itemScreenPos["y"] - 15);
Form1_0.Mover_0.FinishMoving();
if (Form1_0.UIScan_0.WaitTilUIOpen("waypointMenu"))
{
if (SelectWPIndex == -1)
{
SelectTownWP();
}
else
{
SelectThisWPIndex(SelectActWPIndex, SelectWPIndex);
}
}
}
}
else
{
Form1_0.method_1("NO WP FOUND NEAR IN TOWN", Color.OrangeRed);
}
}
}
if (TownAct == 3)
{
if (Form1_0.Mover_0.MoveToLocation(5134, 5107))
{
if (Form1_0.Mover_0.MoveToLocation(5154, 5056))
{
//use wp
if (Form1_0.ObjectsStruc_0.GetObjects("Act3TownWaypoint", false, IgnoredWPList))
{
if (Form1_0.ObjectsStruc_0.itemx == 0 && Form1_0.ObjectsStruc_0.itemy == 0)
{
IgnoredWPList.Add(Form1_0.ObjectsStruc_0.ObjectUnitID);
return;
}
Dictionary<string, int> itemScreenPos = Form1_0.GameStruc_0.World2Screen(Form1_0.PlayerScan_0.xPosFinal, Form1_0.PlayerScan_0.yPosFinal, Form1_0.ObjectsStruc_0.itemx, Form1_0.ObjectsStruc_0.itemy);
Form1_0.KeyMouse_0.MouseClicc(itemScreenPos["x"], itemScreenPos["y"] - 15);
Form1_0.Mover_0.FinishMoving();
if (Form1_0.UIScan_0.WaitTilUIOpen("waypointMenu"))
{
if (SelectWPIndex == -1)
{
SelectTownWP();
}
else
{
SelectThisWPIndex(SelectActWPIndex, SelectWPIndex);
}
}
}
else
{
Position ThisFinalPosition = Form1_0.MapAreaStruc_0.GetPositionOfObject("object", "Act3TownWaypoint", 75, new List<int>() { });
if (ThisFinalPosition.X != 0 && ThisFinalPosition.Y != 0)
{
if (Form1_0.Mover_0.MoveToLocation(ThisFinalPosition.X, ThisFinalPosition.Y))
{
Dictionary<string, int> itemScreenPos = Form1_0.GameStruc_0.World2Screen(Form1_0.PlayerScan_0.xPosFinal, Form1_0.PlayerScan_0.yPosFinal, ThisFinalPosition.X, ThisFinalPosition.Y);
Form1_0.KeyMouse_0.MouseClicc(itemScreenPos["x"], itemScreenPos["y"] - 15);
Form1_0.Mover_0.FinishMoving();
if (Form1_0.UIScan_0.WaitTilUIOpen("waypointMenu"))
{
if (SelectWPIndex == -1)
{
SelectTownWP();
}
else
{
SelectThisWPIndex(SelectActWPIndex, SelectWPIndex);
}
}
}
}
else
{
Form1_0.method_1("NO WP FOUND NEAR IN TOWN", Color.OrangeRed);
}
}
}
}
}
@ -492,8 +575,13 @@ namespace app
if (Form1_0.Mover_0.MoveToLocation(5055, 5039))
{
//use wp
/*if (Form1_0.ObjectsStruc_0.GetObjects("PandamoniumFortressWaypoint", false))
if (Form1_0.ObjectsStruc_0.GetObjects("PandamoniumFortressWaypoint", false, IgnoredWPList))
{
if (Form1_0.ObjectsStruc_0.itemx == 0 && Form1_0.ObjectsStruc_0.itemy == 0)
{
IgnoredWPList.Add(Form1_0.ObjectsStruc_0.ObjectUnitID);
return;
}
Dictionary<string, int> itemScreenPos = Form1_0.GameStruc_0.World2Screen(Form1_0.PlayerScan_0.xPosFinal, Form1_0.PlayerScan_0.yPosFinal, Form1_0.ObjectsStruc_0.itemx, Form1_0.ObjectsStruc_0.itemy);
Form1_0.KeyMouse_0.MouseClicc(itemScreenPos["x"], itemScreenPos["y"] - 15);
Form1_0.Mover_0.FinishMoving();
@ -510,27 +598,33 @@ namespace app
}
}
else
{*/
Position ThisFinalPosition = Form1_0.MapAreaStruc_0.GetPositionOfObject("object", "PandamoniumFortressWaypoint", 103 - 1, new List<int>() { });
if (Form1_0.Mover_0.MoveToLocation(ThisFinalPosition.X, ThisFinalPosition.Y))
{
Position ThisFinalPosition = Form1_0.MapAreaStruc_0.GetPositionOfObject("object", "PandamoniumFortressWaypoint", 103, new List<int>() { });
if (ThisFinalPosition.X != 0 && ThisFinalPosition.Y != 0)
{
Dictionary<string, int> itemScreenPos = Form1_0.GameStruc_0.World2Screen(Form1_0.PlayerScan_0.xPosFinal, Form1_0.PlayerScan_0.yPosFinal, ThisFinalPosition.X, ThisFinalPosition.Y);
Form1_0.KeyMouse_0.MouseClicc(itemScreenPos["x"], itemScreenPos["y"] - 15);
Form1_0.Mover_0.FinishMoving();
if (Form1_0.UIScan_0.WaitTilUIOpen("waypointMenu"))
if (Form1_0.Mover_0.MoveToLocation(ThisFinalPosition.X, ThisFinalPosition.Y))
{
if (SelectWPIndex == -1)
Dictionary<string, int> itemScreenPos = Form1_0.GameStruc_0.World2Screen(Form1_0.PlayerScan_0.xPosFinal, Form1_0.PlayerScan_0.yPosFinal, ThisFinalPosition.X, ThisFinalPosition.Y);
Form1_0.KeyMouse_0.MouseClicc(itemScreenPos["x"], itemScreenPos["y"] - 15);
Form1_0.Mover_0.FinishMoving();
if (Form1_0.UIScan_0.WaitTilUIOpen("waypointMenu"))
{
SelectTownWP();
}
else
{
SelectThisWPIndex(SelectActWPIndex, SelectWPIndex);
if (SelectWPIndex == -1)
{
SelectTownWP();
}
else
{
SelectThisWPIndex(SelectActWPIndex, SelectWPIndex);
}
}
}
}
//Form1_0.method_1("NO WP FOUND NEAR IN TOWN", Color.OrangeRed);
//}
else
{
Form1_0.method_1("NO WP FOUND NEAR IN TOWN", Color.OrangeRed);
}
}
}
}
if (TownAct == 5)
@ -539,8 +633,13 @@ namespace app
if (Form1_0.Mover_0.MoveToLocation(5117, 5065))
{
//use wp
/*if (Form1_0.ObjectsStruc_0.GetObjects("ExpansionWaypoint", false))
if (Form1_0.ObjectsStruc_0.GetObjects("ExpansionWaypoint", false, IgnoredWPList))
{
if (Form1_0.ObjectsStruc_0.itemx == 0 && Form1_0.ObjectsStruc_0.itemy == 0)
{
IgnoredWPList.Add(Form1_0.ObjectsStruc_0.ObjectUnitID);
return;
}
Dictionary<string, int> itemScreenPos = Form1_0.GameStruc_0.World2Screen(Form1_0.PlayerScan_0.xPosFinal, Form1_0.PlayerScan_0.yPosFinal, Form1_0.ObjectsStruc_0.itemx, Form1_0.ObjectsStruc_0.itemy);
Form1_0.KeyMouse_0.MouseClicc(itemScreenPos["x"], itemScreenPos["y"] - 15);
Form1_0.Mover_0.FinishMoving();
@ -557,27 +656,33 @@ namespace app
}
}
else
{*/
Position ThisFinalPosition = Form1_0.MapAreaStruc_0.GetPositionOfObject("object", "ExpansionWaypoint", 109 - 1, new List<int>() { });
if (Form1_0.Mover_0.MoveToLocation(ThisFinalPosition.X, ThisFinalPosition.Y))
{
Position ThisFinalPosition = Form1_0.MapAreaStruc_0.GetPositionOfObject("object", "ExpansionWaypoint", 109, new List<int>() { });
if (ThisFinalPosition.X != 0 && ThisFinalPosition.Y != 0)
{
Dictionary<string, int> itemScreenPos = Form1_0.GameStruc_0.World2Screen(Form1_0.PlayerScan_0.xPosFinal, Form1_0.PlayerScan_0.yPosFinal, ThisFinalPosition.X, ThisFinalPosition.Y);
Form1_0.KeyMouse_0.MouseClicc(itemScreenPos["x"], itemScreenPos["y"] - 15);
Form1_0.Mover_0.FinishMoving();
if (Form1_0.UIScan_0.WaitTilUIOpen("waypointMenu"))
if (Form1_0.Mover_0.MoveToLocation(ThisFinalPosition.X, ThisFinalPosition.Y))
{
if (SelectWPIndex == -1)
Dictionary<string, int> itemScreenPos = Form1_0.GameStruc_0.World2Screen(Form1_0.PlayerScan_0.xPosFinal, Form1_0.PlayerScan_0.yPosFinal, ThisFinalPosition.X, ThisFinalPosition.Y);
Form1_0.KeyMouse_0.MouseClicc(itemScreenPos["x"], itemScreenPos["y"] - 15);
Form1_0.Mover_0.FinishMoving();
if (Form1_0.UIScan_0.WaitTilUIOpen("waypointMenu"))
{
SelectTownWP();
}
else
{
SelectThisWPIndex(SelectActWPIndex, SelectWPIndex);
if (SelectWPIndex == -1)
{
SelectTownWP();
}
else
{
SelectThisWPIndex(SelectActWPIndex, SelectWPIndex);
}
}
}
}
//Form1_0.method_1("NO WP FOUND NEAR IN TOWN", Color.OrangeRed);
//}
else
{
Form1_0.method_1("NO WP FOUND NEAR IN TOWN", Color.OrangeRed);
}
}
}
}
}
@ -1377,6 +1482,32 @@ namespace app
}
}
public void SpawnTPButNotUseIT()
{
//fix when close to RedPortal in Baal
if (Form1_0.PlayerScan_0.xPosFinal >= (15090 - 4)
&& Form1_0.PlayerScan_0.xPosFinal <= (15090 + 4)
&& Form1_0.PlayerScan_0.yPosFinal >= (5008 - 4)
&& Form1_0.PlayerScan_0.yPosFinal <= (5008 + 4)
&& Form1_0.PlayerScan_0.levelNo == 131)
{
Form1_0.Mover_0.MoveToLocation(15090, 5008 + 15);
}
//has tp
if (Form1_0.InventoryStruc_0.HUDItems_tpscrolls > 0)
{
// open inv
Form1_0.UIScan_0.OpenUIMenu("invMenu");
//use tp in inventory
Form1_0.InventoryStruc_0.UseTP();
TPSpawned = true;
//close inv
Form1_0.UIScan_0.CloseUIMenu("invMenu");
Form1_0.WaitDelay(50); //100 default
}
}
public void GetCorpse()
{
if (Form1_0.ItemsStruc_0.ItemsEquiped > 2) return;

View File

@ -1,28 +1,45 @@
//#######################################
//SHORTCUT KEY TO START/STOP BOT
//#######################################
StartStopKey=101
//#######################################
//BOT SETTINGS (USE ONLY CHAOS OR BAAL, NOT BOTH AT SAME TIME)
//#######################################
MaxGameTime=7
RunMephistoScript=false
RunAndarielScript=false
RunCountessScript=false
RunSummonerScript=false
RunDurielScript=false
RunChaosScript=false
RunLowerKurastScript=true
RunBaalLeechScript=false
RunItemGrabScriptOnly=false
//#######################################
//NOT IN GAME SCRIPT (SEARCH GAMES OR CREATE A NEW GAME)
//#######################################
RunChaosSearchGameScript=false
RunBaalSearchGameScript=false
RunGameMakerScript=true
GameName=PUTNAMEHERE
GamePass=33
//#######################################
//SHORTCUT KEY TO START/STOP BOT
//#######################################
StartStopKey=101
//#######################################
//BOT SETTINGS (USE ONLY CHAOS OR BAAL, NOT BOTH AT SAME TIME)
//#######################################
MaxGameTime=7
IsRushing=false
RushLeecherName=
RunDarkWoodRush=false
RunTristramRush=false
RunAndarielRush=false
RunRadamentRush=false
RunHallOfDeadRush=false
RunFarOasisRush=false
RunLostCityRush=false
RunSummonerRush=false
RunDurielRush=false
RunKahlimEyeRush=false
RunKahlimBrainRush=false
RunKahlimHeartRush=false
RunTravincalRush=false
RunMephistoRush=false
RunPindleskinScript=false
RunMephistoScript=false
RunAndarielScript=false
RunCountessScript=false
RunSummonerScript=false
RunDurielScript=false
RunChaosScript=false
RunLowerKurastScript=true
RunBaalLeechScript=false
RunItemGrabScriptOnly=false
//#######################################
//NOT IN GAME SCRIPT (SEARCH GAMES OR CREATE A NEW GAME)
//#######################################
RunChaosSearchGameScript=false
RunBaalSearchGameScript=false
RunGameMakerScript=true
GameName=GAMENAMEHERE
GamePass=33
GameDifficulty=2

View File

@ -0,0 +1,65 @@
//#######################################
//#######################################
//####### SKILL ARE REPRESENTED AS BELLOW: (IF YOU DONT WANT TO USE THE SKILL SET THE SHORTCUT KEY TO SOMETHING UNAVAILABLE!)
//####### KeySkillAttack=Hammer Skill
//####### KeySkillAura=Concentration
//####### KeySkillfastMoveAtTown=Vigor
//####### KeySkillfastMoveOutsideTown=Teleport if have Teleport else Vigor
//####### KeySkillDefenseAura=Defiance
//####### KeySkillCastDefense=Sacred Shield
//####### KeySkillLifeAura=Payer
//#######################################
//#######################################
//SKILLS KEYS SETTINGS (FOR HAMMER PALADIN)
//#######################################
KeySkillAttack=F1
KeySkillAura=F2
KeySkillfastMoveAtTown=F9
KeySkillfastMoveOutsideTown=F7
KeySkillDefenseAura=F7
KeySkillCastDefense=F5
KeySkillLifeAura=F4
PlayerAttackWithRightHand=false
//#######################################
//BELT SETTINGS HP-HP-MANA-FULL RV -> 0=HP,1=MANA,2=RV,3=FULL RV
//#######################################
BeltPotTypeToHave=0,0,1,3
//#######################################
//INVENTORY SETTINGS -> IF EQUAL 0,WE CAN USE THIS SPOT FOR BOT
//#######################################
InventoryDontCheckItem=
{
0,0,0,0,0,0,0,1,1,1,
0,0,0,0,0,0,0,1,1,1,
0,0,0,0,0,0,0,1,1,1,
0,0,0,0,0,0,0,1,1,1
}
//#######################################
//SHARED STASH DUMMY ITEM -> PUT THIS DUMMY ITEM IN THE SPECIFIC SHARED STASH SO ITEMS DETECTION CORRECTLY APPLY TO THIS SHARED STASH
//#######################################
DummyItemSharedStash1=Key
DummyItemSharedStash2=Scroll of Identify
DummyItemSharedStash3=Scroll of Town Portal
//#######################################
//PLAYER SETTINGS
//#######################################
PlayerCharName=CHARNAMEHERE
UseTeleport=true
ChickenHP=22
TakeHPPotUnder=85
TakeRVPotUnder=35
TakeManaPotUnder=15
GambleAboveGoldAmount=500000
GambleUntilGoldAmount=100000
KeysLocationInInventory=8,0
//#######################################
//MERC SETTINGS
//#######################################
UsingMerc=false
MercTakeHPPotUnder=40

View File

@ -1,53 +1,65 @@
//#######################################
//SKILLS KEYS SETTINGS (FOR PALADIN)
//#######################################
KeySkillAttack=F1
KeySkillAura=F2
KeySkillfastMoveAtTown=F9
KeySkillfastMoveOutsideTown=F7
KeySkillDefenseAura=F7
KeySkillCastDefense=F5
KeySkillLifeAura=F4
//#######################################
//BELT SETTINGS HP-HP-MANA-FULL RV -> 0=HP,1=MANA,2=RV,3=FULL RV
//#######################################
BeltPotTypeToHave=0,0,1,3
//#######################################
//INVENTORY SETTINGS -> IF EQUAL 0,WE CAN USE THIS SPOT FOR BOT
//#######################################
InventoryDontCheckItem=
{
0,0,0,0,0,0,0,1,1,1,
0,0,0,0,0,0,0,1,1,1,
0,0,0,0,0,0,0,1,1,1,
0,0,0,0,0,0,0,1,1,1
}
//#######################################
//SHARED STASH DUMMY ITEM -> PUT THIS DUMMY ITEM IN THE SPECIFIC SHARED STASH SO ITEMS DETECTION CORRECTLY APPLY TO THIS SHARED STASH
//#######################################
DummyItemSharedStash1=Key
DummyItemSharedStash2=Scroll of Identify
DummyItemSharedStash3=Scroll of Town Portal
//#######################################
//PLAYER SETTINGS
//#######################################
PlayerCharName=YOURCHARNAME
UseTeleport=true
ChickenHP=22
TakeHPPotUnder=85
TakeRVPotUnder=35
TakeManaPotUnder=15
GambleAboveGoldAmount=500000
GambleUntilGoldAmount=100000
PlayerAttackWithRightHand=true
KeysLocationInInventory=8,0
//#######################################
//MERC SETTINGS
//#######################################
UsingMerc=false
//#######################################
//#######################################
//####### SKILL ARE REPRESENTED AS BELLOW: (IF YOU DONT WANT TO USE THE SKILL SET THE SHORTCUT KEY TO SOMETHING UNAVAILABLE!)
//####### KeySkillAttack=Ice Bolt
//####### KeySkillAura=Blizzard
//####### KeySkillfastMoveAtTown=**NOTHING (NO SKILL IS SET TO THIS SHORTCUT KEY)**
//####### KeySkillfastMoveOutsideTown=Teleport
//####### KeySkillDefenseAura=Teleport
//####### KeySkillCastDefense=Frozen Armor
//####### KeySkillLifeAura=Energy Shield
//#######################################
//#######################################
//SKILLS KEYS SETTINGS (FOR BLIZZARD SORCERESS)
//#######################################
KeySkillAttack=F1
KeySkillAura=F2
KeySkillfastMoveAtTown=F9
KeySkillfastMoveOutsideTown=F7
KeySkillDefenseAura=F7
KeySkillCastDefense=F5
KeySkillLifeAura=F4
PlayerAttackWithRightHand=true
//#######################################
//BELT SETTINGS HP-HP-MANA-FULL RV -> 0=HP,1=MANA,2=RV,3=FULL RV
//#######################################
BeltPotTypeToHave=0,0,1,3
//#######################################
//INVENTORY SETTINGS -> IF EQUAL 0,WE CAN USE THIS SPOT FOR BOT
//#######################################
InventoryDontCheckItem=
{
0,0,0,0,0,0,0,1,1,1,
0,0,0,0,0,0,0,1,1,1,
0,0,0,0,0,0,0,1,1,1,
0,0,0,0,0,0,0,1,1,1
}
//#######################################
//SHARED STASH DUMMY ITEM -> PUT THIS DUMMY ITEM IN THE SPECIFIC SHARED STASH SO ITEMS DETECTION CORRECTLY APPLY TO THIS SHARED STASH
//#######################################
DummyItemSharedStash1=Key
DummyItemSharedStash2=Scroll of Identify
DummyItemSharedStash3=Scroll of Town Portal
//#######################################
//PLAYER SETTINGS
//#######################################
PlayerCharName=CHARNAMEHERE
UseTeleport=true
ChickenHP=22
TakeHPPotUnder=85
TakeRVPotUnder=35
TakeManaPotUnder=15
GambleAboveGoldAmount=500000
GambleUntilGoldAmount=100000
KeysLocationInInventory=8,0
//#######################################
//MERC SETTINGS
//#######################################
UsingMerc=false
MercTakeHPPotUnder=40

View File

@ -0,0 +1,8 @@
//#######################################
//SET THE CHAR TO RUN WITH
//#######################################
//AVAILABLE CHAR ARE:
//PaladinHammer
//SorceressBlizzard
//#######################################
RunOnChar=SorceressBlizzard

View File

@ -0,0 +1,35 @@
//#######################################
//SET ALL CUBING RECIPES TO PERFORM
//#######################################
Flawless Emerald+Flawless Emerald+Flawless Emerald=Perfect Emerald
Flawless Sapphire+Flawless Sapphire+Flawless Sapphire=Perfect Sapphire
Flawless Amethyst+Flawless Amethyst+Flawless Amethyst=Perfect Amethyst
Flawless Topaz+Flawless Topaz+Flawless Topaz=Perfect Topaz
Flawless Ruby+Flawless Ruby+Flawless Ruby=Perfect Ruby
Flawless Diamond+Flawless Diamond+Flawless Diamond=Perfect Diamond
El Rune+El Rune+El Rune=Eld Rune
Eld Rune+Eld Rune+Eld Rune=Tir Rune
Tir Rune+Tir Rune+Tir Rune=Nef Rune
Nef Rune+Nef Rune+Nef Rune=Eth Rune
Eth Rune+Eth Rune+Eth Rune=Ith Rune
Ith Rune+Ith Rune+Ith Rune=Tal Rune
Tal Rune+Tal Rune+Tal Rune=Ral Rune
Ral Rune+Ral Rune+Ral Rune=Ort Rune
Ort Rune+Ort Rune+Ort Rune=Thul Rune
Thul Rune+Thul Rune+Thul Rune+Chipped Topaz=Amn Rune
Amn Rune+Amn Rune+Amn Rune+Chipped Amethyst=Sol Rune
Sol Rune+Sol Rune+Sol Rune+Chipped Sapphire=Shael Rune
Shael Rune+Shael Rune+Shael Rune+Chipped Ruby=Dol Rune
Dol Rune+Dol Rune+Dol Rune+Chipped Emerald=Hel Rune
Hel Rune+Hel Rune+Hel Rune+Chipped Diamond=Io Rune
Io Rune+Io Rune+Io Rune+Flawed Topaz=Lum Rune
Lum Rune+Lum Rune+Lum Rune+Flawed Amethyst=Ko Rune
Ko Rune+Ko Rune+Ko Rune+Flawed Sapphire=Fal Rune
Fal Rune+Fal Rune+Fal Rune+Flawed Ruby=Lem Rune
Lem Rune+Lem Rune+Lem Rune+Flawed Emerald=Pul Rune
Pul Rune+Pul Rune+Flawed Diamond=Um Rune
Twisted Essence of Suffering+Charged Essense of Hatred+Burning Essence of Terror+Festering Essence of Destruction=Token of Absolution

View File

@ -1,155 +1,155 @@
//#######################################
//UNIQUE ITEMS
//#######################################
//HELMS
Grim Helm// Vampire Gaze
Shako// Harlequin Crest
Demonhead// Andariel's Visage
Bone Visage// Giant Skull
Spired Helm// Nightwing's Veil
Corona// Crown of ages
//ARMORS
Serpentskin Armor// Skin of the Vipermagi
Mesh Armor// Shaftstop
Sacred Armor// Tyrael's Might
Dusk Shroud// Ormus' Robes
//Gloves
Chain Gloves// Chance Guards
Vampirebone Gloves// Dracul's Grasp
Ogre Gauntlets// Steelrend
//Boots
Scarabshell Boots// Sandstorm Trek
Boneweave Boots// Marrowwalk
War Boots// Gore Rider
Myrmidon Greaves// Gore Rider or Shadow Dancer
//Belts
War Belt// Thundergod's Vigor
Spiderweb Sash// Arachnid Mesh
Vampirefang Belt// Nosferatu's Coil
Mithril Coil// Verdungo's Hearty Cord
//Paladin Shields
Gilded Shield// Herald Of Zakarum
Zakarum Shield// Herald Of Zakarum
//Sorceress Orbs
Swirling Crystal// The Oculus
Eldritch Orb// Eschuta's Temper
Dimensional Shard// Death's Fathom
//Circlets
Tiara// Kira's Guardian
Diadem// Griffon's Eye
//Necromancer Shrunken Heads
Hierophant Trophy// Homunculus
//Druid Pelts
Totemic Mask// Jalal's Mane
//Barbarian Helms
Slayer Guard// Arreat's Face
Guardian Crown// Arreat's Face
//Others
Grand Charm// Possible GHEED
Ring// #### ID LATER ####
Amulet// #### ID LATER ####
Jewel// #### ID LATER #### -> Rainbow Facet
//#######################################
//KEYS/GEMS/RUNES ITEMS
//#######################################
//El Rune
Eld Rune
Tir Rune
Nef Rune
Eth Rune
Ith Rune
Tal Rune
Ral Rune
Ort Rune
Thul Rune
Amn Rune
Sol Rune
Shael Rune
Dol Rune
Hel Rune
Io Rune
Lum Rune
Ko Rune
Fal Rune
Lem Rune
Pul Rune
Um Rune
Mal Rune
Ist Rune
Gul Rune
Vex Rune
Ohm Rune
Lo Rune
Sur Rune
Ber Rune
Jah Rune
Cham Rune
Zod Rune
// ##### Keys ######################
Key of Terror
Key of Hate
Key of Destruction
// ##### Essences ######################
Twisted Essence Of Suffering
Charged Essence Of Hatred
Burning Essence Of Terror
Festering Essence Of Destruction
Token Of Absolution
// ##### Gems ######################
Chipped Amethyst
Chipped Topaz
Chipped Sapphire
Chipped Ruby
Chipped Emerald
Chipped Diamond
Flawed Amethyst
Flawed Topaz
Flawed Sapphire
Flawed Ruby
Flawed Emerald
Flawed Diamond
//Amethyst
//Topaz
//Sapphire
//Ruby
//Emerald
//Diamond
Flawless Amethyst
Flawless Topaz
Flawless Sapphire
Flawless Ruby
Flawless Emerald
Flawless Diamond
Perfect Amethyst
Perfect Topaz
Perfect Sapphire
Perfect Ruby
Perfect Emerald
Perfect Diamond
//#######################################
//SET ITEMS
//#######################################
Lacquered Plate// Tal Rasha's Guardianship
Death Mask// Tal Rasha's Horadric Crest
Mesh Belt// Tal Rasha's Fine Spun Cloth
Sacred Armor// Immortal King
Heavy Bracers// Trang-Oul's Claws
Winged Helm// Guillaume's Face
//#######################################
//UNIQUE ITEMS
//#######################################
//HELMS
Grim Helm// Vampire Gaze
Shako// Harlequin Crest
Demonhead// Andariel's Visage
Bone Visage// Giant Skull
Spired Helm// Nightwing's Veil
Corona// Crown of ages
//ARMORS
Serpentskin Armor// Skin of the Vipermagi
Mesh Armor// Shaftstop
Sacred Armor// Tyrael's Might
Dusk Shroud// Ormus' Robes
//Gloves
Chain Gloves// Chance Guards
Vampirebone Gloves// Dracul's Grasp
Ogre Gauntlets// Steelrend
//Boots
Scarabshell Boots// Sandstorm Trek
Boneweave Boots// Marrowwalk
War Boots// Gore Rider
Myrmidon Greaves// Gore Rider or Shadow Dancer
//Belts
War Belt// Thundergod's Vigor
Spiderweb Sash// Arachnid Mesh
Vampirefang Belt// Nosferatu's Coil
Mithril Coil// Verdungo's Hearty Cord
//Paladin Shields
Gilded Shield// Herald Of Zakarum
Zakarum Shield// Herald Of Zakarum
//Sorceress Orbs
Swirling Crystal// The Oculus
Eldritch Orb// Eschuta's Temper
Dimensional Shard// Death's Fathom
//Circlets
Tiara// Kira's Guardian
Diadem// Griffon's Eye
//Necromancer Shrunken Heads
Hierophant Trophy// Homunculus
//Druid Pelts
Totemic Mask// Jalal's Mane
//Barbarian Helms
Slayer Guard// Arreat's Face
Guardian Crown// Arreat's Face
//Others
Grand Charm// Possible GHEED
Ring// #### ID LATER ####
Amulet// #### ID LATER ####
Jewel// #### ID LATER #### -> Rainbow Facet
//#######################################
//KEYS/GEMS/RUNES ITEMS
//#######################################
//El Rune
Eld Rune
Tir Rune
Nef Rune
Eth Rune
Ith Rune
Tal Rune
Ral Rune
Ort Rune
Thul Rune
Amn Rune
Sol Rune
Shael Rune
Dol Rune
Hel Rune
Io Rune
Lum Rune
Ko Rune
Fal Rune
Lem Rune
Pul Rune
Um Rune
Mal Rune
Ist Rune
Gul Rune
Vex Rune
Ohm Rune
Lo Rune
Sur Rune
Ber Rune
Jah Rune
Cham Rune
Zod Rune
// ##### Keys ######################
Key of Terror
Key of Hate
Key of Destruction
// ##### Essences ######################
Twisted Essence Of Suffering
Charged Essence Of Hatred
Burning Essence Of Terror
Festering Essence Of Destruction
Token Of Absolution
// ##### Gems ######################
Chipped Amethyst
Chipped Topaz
Chipped Sapphire
Chipped Ruby
Chipped Emerald
Chipped Diamond
Flawed Amethyst
Flawed Topaz
Flawed Sapphire
Flawed Ruby
Flawed Emerald
Flawed Diamond
//Amethyst
//Topaz
//Sapphire
//Ruby
//Emerald
//Diamond
Flawless Amethyst
Flawless Topaz
Flawless Sapphire
Flawless Ruby
Flawless Emerald
Flawless Diamond
Perfect Amethyst
Perfect Topaz
Perfect Sapphire
Perfect Ruby
Perfect Emerald
Perfect Diamond
//#######################################
//SET ITEMS
//#######################################
Lacquered Plate// Tal Rasha's Guardianship
Death Mask// Tal Rasha's Horadric Crest
Mesh Belt// Tal Rasha's Fine Spun Cloth
Sacred Armor// Immortal King
Heavy Bracers// Trang-Oul's Claws
Winged Helm// Guillaume's Face
Russet Armor// Aldur's Advance

View File

@ -1,5 +1,6 @@
using Newtonsoft.Json;
using System;
using System.IO;
using System.Collections.Generic;
using System.Diagnostics;
using System.Drawing;
@ -26,7 +27,6 @@ namespace app
Form1_0 = form1_1;
_kooloMapPath = Application.StartupPath + @"\map.exe";
_d2LoDPath = Form1_0.D2_LOD_113C_Path;
}
public Position GetAreaOfObject(string ObjectType, string ObjectName, List<int> IgnoreTheseIndex, int StartAreaIndexToSearch = 0, int EndAreaIndexToSearch = 1)
@ -121,7 +121,7 @@ namespace app
//for (int i = 0; i < AllMapData.Count; i++)
//{
int i = AreaID;
int i = AreaID - 1;
if (AllMapData[i].Objects.Count == 0) ScanMapStruc();
for (int k = 0; k < AllMapData[i].Objects.Count; k++)
{
@ -247,6 +247,8 @@ namespace app
public void ScanMapStruc()
{
_d2LoDPath = Form1_0.D2_LOD_113C_Path;
Form1_0.method_1("Seed: " + Form1_0.PlayerScan_0.mapSeedValue.ToString(), Color.DarkBlue);
Form1_0.method_1("Difficulty: " + ((Difficulty)Form1_0.PlayerScan_0.difficulty).ToString(), Color.DarkBlue);
@ -258,6 +260,8 @@ namespace app
public void GetMapData(string seed, Difficulty difficulty)
{
Console.WriteLine(_d2LoDPath);
var procStartInfo = new ProcessStartInfo
{
FileName = _kooloMapPath,
@ -295,6 +299,11 @@ namespace app
process.WaitForExit();
string SavePathh = Form1_0.ThisEndPath + "DumpMap.txt";
File.Create(SavePathh).Dispose();
File.WriteAllLines(SavePathh, stdoutLines);
/*if (process.ExitCode != 0)
{
throw new Exception($"Error detected fetching Map Data from Diablo II: LoD 1.13c game, please make sure you have the classic expansion game installed AND config.yaml D2LoDPath is pointing to the correct game path. Error code: {process.ExitCode}");

View File

@ -456,9 +456,9 @@ namespace app
case 306: return "Grand Vizier of Chaos";
case 308: return "Riftwraith the Cannibal";
case 312: return "Lord De Seis";
// case 345: return "Council Member";
// case 346: return "Council Member";
// case 347: return "Council Member";
case 345: return "Council Member";
case 346: return "Council Member";
case 347: return "Council Member";
case 362: return "Winged Death";
case 402: return "The Smith";
case 409: return "The Feature Creep";

View File

@ -135,6 +135,7 @@ namespace app
case 156: return "Andariel";
case 211: return "Duriel";
case 229: return "Radament";
case 744: return "Radament2";
case 242: return "Mephisto";
case 243: return "Diablo";
case 250: return "Summoner";
@ -152,6 +153,7 @@ namespace app
case 707: return "Uber Andariel";
case 708: return "Uber Duriel";
case 709: return "Uber Baal";
case 745: return "CubeNPC";
case 271: return "roguehire";
//case 338: return "act2hire";

View File

@ -94,6 +94,8 @@ namespace app
public long HPPercentFromPlayer = 0;
public long ManaPercentFromPlayer = 0;
public bool PrintedLeechFoundInfo = false;
public int[] RoomExit = new int[2];
// REQUIRED METHODS
@ -393,11 +395,24 @@ namespace app
LeechPlayerPointer = 0;
LeechPlayerUnitID = 0;
string LeeeechName = Form1_0.GameStruc_0.GameOwnerName;
if (CharConfig.IsRushing) LeeeechName = CharConfig.RushLeecherName;
if (LeeeechName == "")
{
Form1_0.method_1("Leecher name is empty!", Color.Red);
}
for (int i = 0; i < 8; i++)
{
string name = Form1_0.Mem_0.ReadMemString(partyStruct);
if (name.ToLower() == Form1_0.GameStruc_0.GameOwnerName.ToLower())
if (name.ToLower() == LeeeechName.ToLower())
{
if (!PrintedLeechFoundInfo)
{
Form1_0.method_1("Leecher pointer found!", Color.DarkViolet);
PrintedLeechFoundInfo = true;
}
LeechPlayerUnitID = Form1_0.Mem_0.ReadUInt32Raw((IntPtr)(partyStruct + 0x48));
LeechPlayerPointer = partyStruct;
break;

View File

@ -71,16 +71,38 @@
<Reference Include="System.Xml" />
</ItemGroup>
<ItemGroup>
<Compile Include="Bots\Rush\MephistoRush.cs" />
<Compile Include="Bots\Rush\AndarielRush.cs" />
<Compile Include="Bots\Rush\DurielRush.cs" />
<Compile Include="Bots\Rush\KahlimHeartRush.cs" />
<Compile Include="Bots\Rush\KahlimBrainRush.cs" />
<Compile Include="Bots\Rush\KahlimEyeRush.cs" />
<Compile Include="Bots\Rush\LostCityRush.cs" />
<Compile Include="Bots\Rush\FarOasisRush.cs" />
<Compile Include="Bots\Rush\HallOfDeadRushCube.cs" />
<Compile Include="Bots\Rush\RadamentRush.cs" />
<Compile Include="Bots\Rush\SummonerRush.cs" />
<Compile Include="Bots\Rush\TristramRush.cs" />
<Compile Include="Bots\Rush\DarkWoodRush.cs" />
<Compile Include="Bots\Duriel.cs" />
<Compile Include="Bots\Pindleskin.cs" />
<Compile Include="Bots\Rush\TravincalRush.cs" />
<Compile Include="Bots\Travincal.cs" />
<Compile Include="Bots\Summoner.cs" />
<Compile Include="Bots\Mephisto.cs" />
<Compile Include="Bots\Baal.cs" />
<Compile Include="Bots\Chaos.cs" />
<Compile Include="CharConfig.cs" />
<Compile Include="Config\CharConfig.cs" />
<Compile Include="Bots\Andariel.cs" />
<Compile Include="Bots\Countess.cs" />
<Compile Include="Bots\LowerKurast.cs" />
<Compile Include="SettingsLoader.cs" />
<Compile Include="Config\SettingsLoader.cs" />
<Compile Include="FormCharSettings.cs">
<SubType>Form</SubType>
</Compile>
<Compile Include="FormCharSettings.Designer.cs">
<DependentUpon>FormCharSettings.cs</DependentUpon>
</Compile>
<Compile Include="FormSettings.cs">
<SubType>Form</SubType>
</Compile>
@ -129,6 +151,9 @@
<EmbeddedResource Include="Form1.resx">
<DependentUpon>Form1.cs</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="FormCharSettings.resx">
<DependentUpon>FormCharSettings.cs</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="FormSettings.resx">
<DependentUpon>FormSettings.cs</DependentUpon>
</EmbeddedResource>
@ -156,16 +181,26 @@
<None Include="App.config" />
</ItemGroup>
<ItemGroup>
<Content Include="BotSettings.txt">
<Content Include="Settings\Char\PaladinHammer.txt">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</Content>
<Content Include="CharSettings.txt">
<Content Include="Settings\Char\SorceressBlizzard.txt">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</Content>
<Content Include="ItemsSettings.txt">
<Content Include="Settings\CubingRecipes.txt">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</Content>
<Content Include="Settings\BotSettings.txt">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</Content>
<Content Include="Settings\CharSettings.txt">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</Content>
<Content Include="Settings\ItemsSettings.txt">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</Content>
<None Include="Resources\Application.png" />
</ItemGroup>
<ItemGroup />
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
</Project>

View File

@ -1 +1,2 @@
RunNumber=5
RunNumber=0
D2_LOD_113C_Path=

View File

@ -1,28 +1,45 @@
//#######################################
//SHORTCUT KEY TO START/STOP BOT
//#######################################
StartStopKey=101
//#######################################
//BOT SETTINGS (USE ONLY CHAOS OR BAAL, NOT BOTH AT SAME TIME)
//#######################################
MaxGameTime=7
RunMephistoScript=false
RunAndarielScript=false
RunCountessScript=false
RunSummonerScript=false
RunDurielScript=false
RunChaosScript=false
RunLowerKurastScript=true
RunBaalLeechScript=false
RunItemGrabScriptOnly=false
//#######################################
//NOT IN GAME SCRIPT (SEARCH GAMES OR CREATE A NEW GAME)
//#######################################
RunChaosSearchGameScript=false
RunBaalSearchGameScript=false
RunGameMakerScript=true
GameName=PUTNAMEHERE
GamePass=33
//#######################################
//SHORTCUT KEY TO START/STOP BOT
//#######################################
StartStopKey=101
//#######################################
//BOT SETTINGS (USE ONLY CHAOS OR BAAL, NOT BOTH AT SAME TIME)
//#######################################
MaxGameTime=7
IsRushing=false
RushLeecherName=
RunDarkWoodRush=false
RunTristramRush=false
RunAndarielRush=false
RunRadamentRush=false
RunHallOfDeadRush=false
RunFarOasisRush=false
RunLostCityRush=false
RunSummonerRush=false
RunDurielRush=false
RunKahlimEyeRush=false
RunKahlimBrainRush=false
RunKahlimHeartRush=false
RunTravincalRush=false
RunMephistoRush=false
RunPindleskinScript=false
RunMephistoScript=false
RunAndarielScript=false
RunCountessScript=false
RunSummonerScript=false
RunDurielScript=false
RunChaosScript=false
RunLowerKurastScript=true
RunBaalLeechScript=false
RunItemGrabScriptOnly=false
//#######################################
//NOT IN GAME SCRIPT (SEARCH GAMES OR CREATE A NEW GAME)
//#######################################
RunChaosSearchGameScript=false
RunBaalSearchGameScript=false
RunGameMakerScript=true
GameName=GAMENAMEHERE
GamePass=33
GameDifficulty=2

View File

@ -0,0 +1,65 @@
//#######################################
//#######################################
//####### SKILL ARE REPRESENTED AS BELLOW: (IF YOU DONT WANT TO USE THE SKILL SET THE SHORTCUT KEY TO SOMETHING UNAVAILABLE!)
//####### KeySkillAttack=Hammer Skill
//####### KeySkillAura=Concentration
//####### KeySkillfastMoveAtTown=Vigor
//####### KeySkillfastMoveOutsideTown=Teleport if have Teleport else Vigor
//####### KeySkillDefenseAura=Defiance
//####### KeySkillCastDefense=Sacred Shield
//####### KeySkillLifeAura=Payer
//#######################################
//#######################################
//SKILLS KEYS SETTINGS (FOR HAMMER PALADIN)
//#######################################
KeySkillAttack=F1
KeySkillAura=F2
KeySkillfastMoveAtTown=F9
KeySkillfastMoveOutsideTown=F7
KeySkillDefenseAura=F7
KeySkillCastDefense=F5
KeySkillLifeAura=F4
PlayerAttackWithRightHand=false
//#######################################
//BELT SETTINGS HP-HP-MANA-FULL RV -> 0=HP,1=MANA,2=RV,3=FULL RV
//#######################################
BeltPotTypeToHave=0,0,1,3
//#######################################
//INVENTORY SETTINGS -> IF EQUAL 0,WE CAN USE THIS SPOT FOR BOT
//#######################################
InventoryDontCheckItem=
{
0,0,0,0,0,0,0,1,1,1,
0,0,0,0,0,0,0,1,1,1,
0,0,0,0,0,0,0,1,1,1,
0,0,0,0,0,0,0,1,1,1
}
//#######################################
//SHARED STASH DUMMY ITEM -> PUT THIS DUMMY ITEM IN THE SPECIFIC SHARED STASH SO ITEMS DETECTION CORRECTLY APPLY TO THIS SHARED STASH
//#######################################
DummyItemSharedStash1=Key
DummyItemSharedStash2=Scroll of Identify
DummyItemSharedStash3=Scroll of Town Portal
//#######################################
//PLAYER SETTINGS
//#######################################
PlayerCharName=CHARNAMEHERE
UseTeleport=true
ChickenHP=22
TakeHPPotUnder=85
TakeRVPotUnder=35
TakeManaPotUnder=15
GambleAboveGoldAmount=500000
GambleUntilGoldAmount=100000
KeysLocationInInventory=8,0
//#######################################
//MERC SETTINGS
//#######################################
UsingMerc=false
MercTakeHPPotUnder=40

View File

@ -1,53 +1,65 @@
//#######################################
//SKILLS KEYS SETTINGS (FOR PALADIN)
//#######################################
KeySkillAttack=F1
KeySkillAura=F2
KeySkillfastMoveAtTown=F9
KeySkillfastMoveOutsideTown=F7
KeySkillDefenseAura=F7
KeySkillCastDefense=F5
KeySkillLifeAura=F4
//#######################################
//BELT SETTINGS HP-HP-MANA-FULL RV -> 0=HP,1=MANA,2=RV,3=FULL RV
//#######################################
BeltPotTypeToHave=0,0,1,3
//#######################################
//INVENTORY SETTINGS -> IF EQUAL 0,WE CAN USE THIS SPOT FOR BOT
//#######################################
InventoryDontCheckItem=
{
0,0,0,0,0,0,0,1,1,1,
0,0,0,0,0,0,0,1,1,1,
0,0,0,0,0,0,0,1,1,1,
0,0,0,0,0,0,0,1,1,1
}
//#######################################
//SHARED STASH DUMMY ITEM -> PUT THIS DUMMY ITEM IN THE SPECIFIC SHARED STASH SO ITEMS DETECTION CORRECTLY APPLY TO THIS SHARED STASH
//#######################################
DummyItemSharedStash1=Key
DummyItemSharedStash2=Scroll of Identify
DummyItemSharedStash3=Scroll of Town Portal
//#######################################
//PLAYER SETTINGS
//#######################################
PlayerCharName=YOURCHARNAME
UseTeleport=true
ChickenHP=22
TakeHPPotUnder=85
TakeRVPotUnder=35
TakeManaPotUnder=15
GambleAboveGoldAmount=500000
GambleUntilGoldAmount=100000
PlayerAttackWithRightHand=true
KeysLocationInInventory=8,0
//#######################################
//MERC SETTINGS
//#######################################
UsingMerc=false
//#######################################
//#######################################
//####### SKILL ARE REPRESENTED AS BELLOW: (IF YOU DONT WANT TO USE THE SKILL SET THE SHORTCUT KEY TO SOMETHING UNAVAILABLE!)
//####### KeySkillAttack=Ice Bolt
//####### KeySkillAura=Blizzard
//####### KeySkillfastMoveAtTown=**NOTHING (NO SKILL IS SET TO THIS SHORTCUT KEY)**
//####### KeySkillfastMoveOutsideTown=Teleport
//####### KeySkillDefenseAura=Teleport
//####### KeySkillCastDefense=Frozen Armor
//####### KeySkillLifeAura=Energy Shield
//#######################################
//#######################################
//SKILLS KEYS SETTINGS (FOR BLIZZARD SORCERESS)
//#######################################
KeySkillAttack=F1
KeySkillAura=F2
KeySkillfastMoveAtTown=F9
KeySkillfastMoveOutsideTown=F7
KeySkillDefenseAura=F7
KeySkillCastDefense=F5
KeySkillLifeAura=F4
PlayerAttackWithRightHand=true
//#######################################
//BELT SETTINGS HP-HP-MANA-FULL RV -> 0=HP,1=MANA,2=RV,3=FULL RV
//#######################################
BeltPotTypeToHave=0,0,1,3
//#######################################
//INVENTORY SETTINGS -> IF EQUAL 0,WE CAN USE THIS SPOT FOR BOT
//#######################################
InventoryDontCheckItem=
{
0,0,0,0,0,0,0,1,1,1,
0,0,0,0,0,0,0,1,1,1,
0,0,0,0,0,0,0,1,1,1,
0,0,0,0,0,0,0,1,1,1
}
//#######################################
//SHARED STASH DUMMY ITEM -> PUT THIS DUMMY ITEM IN THE SPECIFIC SHARED STASH SO ITEMS DETECTION CORRECTLY APPLY TO THIS SHARED STASH
//#######################################
DummyItemSharedStash1=Key
DummyItemSharedStash2=Scroll of Identify
DummyItemSharedStash3=Scroll of Town Portal
//#######################################
//PLAYER SETTINGS
//#######################################
PlayerCharName=CHARNAMEHERE
UseTeleport=true
ChickenHP=22
TakeHPPotUnder=85
TakeRVPotUnder=35
TakeManaPotUnder=15
GambleAboveGoldAmount=500000
GambleUntilGoldAmount=100000
KeysLocationInInventory=8,0
//#######################################
//MERC SETTINGS
//#######################################
UsingMerc=false
MercTakeHPPotUnder=40

View File

@ -0,0 +1,8 @@
//#######################################
//SET THE CHAR TO RUN WITH
//#######################################
//AVAILABLE CHAR ARE:
//PaladinHammer
//SorceressBlizzard
//#######################################
RunOnChar=SorceressBlizzard

View File

@ -0,0 +1,35 @@
//#######################################
//SET ALL CUBING RECIPES TO PERFORM
//#######################################
Flawless Emerald+Flawless Emerald+Flawless Emerald=Perfect Emerald
Flawless Sapphire+Flawless Sapphire+Flawless Sapphire=Perfect Sapphire
Flawless Amethyst+Flawless Amethyst+Flawless Amethyst=Perfect Amethyst
Flawless Topaz+Flawless Topaz+Flawless Topaz=Perfect Topaz
Flawless Ruby+Flawless Ruby+Flawless Ruby=Perfect Ruby
Flawless Diamond+Flawless Diamond+Flawless Diamond=Perfect Diamond
El Rune+El Rune+El Rune=Eld Rune
Eld Rune+Eld Rune+Eld Rune=Tir Rune
Tir Rune+Tir Rune+Tir Rune=Nef Rune
Nef Rune+Nef Rune+Nef Rune=Eth Rune
Eth Rune+Eth Rune+Eth Rune=Ith Rune
Ith Rune+Ith Rune+Ith Rune=Tal Rune
Tal Rune+Tal Rune+Tal Rune=Ral Rune
Ral Rune+Ral Rune+Ral Rune=Ort Rune
Ort Rune+Ort Rune+Ort Rune=Thul Rune
Thul Rune+Thul Rune+Thul Rune+Chipped Topaz=Amn Rune
Amn Rune+Amn Rune+Amn Rune+Chipped Amethyst=Sol Rune
Sol Rune+Sol Rune+Sol Rune+Chipped Sapphire=Shael Rune
Shael Rune+Shael Rune+Shael Rune+Chipped Ruby=Dol Rune
Dol Rune+Dol Rune+Dol Rune+Chipped Emerald=Hel Rune
Hel Rune+Hel Rune+Hel Rune+Chipped Diamond=Io Rune
Io Rune+Io Rune+Io Rune+Flawed Topaz=Lum Rune
Lum Rune+Lum Rune+Lum Rune+Flawed Amethyst=Ko Rune
Ko Rune+Ko Rune+Ko Rune+Flawed Sapphire=Fal Rune
Fal Rune+Fal Rune+Fal Rune+Flawed Ruby=Lem Rune
Lem Rune+Lem Rune+Lem Rune+Flawed Emerald=Pul Rune
Pul Rune+Pul Rune+Flawed Diamond=Um Rune
Twisted Essence of Suffering+Charged Essense of Hatred+Burning Essence of Terror+Festering Essence of Destruction=Token of Absolution

View File

@ -1,155 +1,155 @@
//#######################################
//UNIQUE ITEMS
//#######################################
//HELMS
Grim Helm// Vampire Gaze
Shako// Harlequin Crest
Demonhead// Andariel's Visage
Bone Visage// Giant Skull
Spired Helm// Nightwing's Veil
Corona// Crown of ages
//ARMORS
Serpentskin Armor// Skin of the Vipermagi
Mesh Armor// Shaftstop
Sacred Armor// Tyrael's Might
Dusk Shroud// Ormus' Robes
//Gloves
Chain Gloves// Chance Guards
Vampirebone Gloves// Dracul's Grasp
Ogre Gauntlets// Steelrend
//Boots
Scarabshell Boots// Sandstorm Trek
Boneweave Boots// Marrowwalk
War Boots// Gore Rider
Myrmidon Greaves// Gore Rider or Shadow Dancer
//Belts
War Belt// Thundergod's Vigor
Spiderweb Sash// Arachnid Mesh
Vampirefang Belt// Nosferatu's Coil
Mithril Coil// Verdungo's Hearty Cord
//Paladin Shields
Gilded Shield// Herald Of Zakarum
Zakarum Shield// Herald Of Zakarum
//Sorceress Orbs
Swirling Crystal// The Oculus
Eldritch Orb// Eschuta's Temper
Dimensional Shard// Death's Fathom
//Circlets
Tiara// Kira's Guardian
Diadem// Griffon's Eye
//Necromancer Shrunken Heads
Hierophant Trophy// Homunculus
//Druid Pelts
Totemic Mask// Jalal's Mane
//Barbarian Helms
Slayer Guard// Arreat's Face
Guardian Crown// Arreat's Face
//Others
Grand Charm// Possible GHEED
Ring// #### ID LATER ####
Amulet// #### ID LATER ####
Jewel// #### ID LATER #### -> Rainbow Facet
//#######################################
//KEYS/GEMS/RUNES ITEMS
//#######################################
//El Rune
Eld Rune
Tir Rune
Nef Rune
Eth Rune
Ith Rune
Tal Rune
Ral Rune
Ort Rune
Thul Rune
Amn Rune
Sol Rune
Shael Rune
Dol Rune
Hel Rune
Io Rune
Lum Rune
Ko Rune
Fal Rune
Lem Rune
Pul Rune
Um Rune
Mal Rune
Ist Rune
Gul Rune
Vex Rune
Ohm Rune
Lo Rune
Sur Rune
Ber Rune
Jah Rune
Cham Rune
Zod Rune
// ##### Keys ######################
Key of Terror
Key of Hate
Key of Destruction
// ##### Essences ######################
Twisted Essence Of Suffering
Charged Essence Of Hatred
Burning Essence Of Terror
Festering Essence Of Destruction
Token Of Absolution
// ##### Gems ######################
Chipped Amethyst
Chipped Topaz
Chipped Sapphire
Chipped Ruby
Chipped Emerald
Chipped Diamond
Flawed Amethyst
Flawed Topaz
Flawed Sapphire
Flawed Ruby
Flawed Emerald
Flawed Diamond
//Amethyst
//Topaz
//Sapphire
//Ruby
//Emerald
//Diamond
Flawless Amethyst
Flawless Topaz
Flawless Sapphire
Flawless Ruby
Flawless Emerald
Flawless Diamond
Perfect Amethyst
Perfect Topaz
Perfect Sapphire
Perfect Ruby
Perfect Emerald
Perfect Diamond
//#######################################
//SET ITEMS
//#######################################
Lacquered Plate// Tal Rasha's Guardianship
Death Mask// Tal Rasha's Horadric Crest
Mesh Belt// Tal Rasha's Fine Spun Cloth
Sacred Armor// Immortal King
Heavy Bracers// Trang-Oul's Claws
Winged Helm// Guillaume's Face
//#######################################
//UNIQUE ITEMS
//#######################################
//HELMS
Grim Helm// Vampire Gaze
Shako// Harlequin Crest
Demonhead// Andariel's Visage
Bone Visage// Giant Skull
Spired Helm// Nightwing's Veil
Corona// Crown of ages
//ARMORS
Serpentskin Armor// Skin of the Vipermagi
Mesh Armor// Shaftstop
Sacred Armor// Tyrael's Might
Dusk Shroud// Ormus' Robes
//Gloves
Chain Gloves// Chance Guards
Vampirebone Gloves// Dracul's Grasp
Ogre Gauntlets// Steelrend
//Boots
Scarabshell Boots// Sandstorm Trek
Boneweave Boots// Marrowwalk
War Boots// Gore Rider
Myrmidon Greaves// Gore Rider or Shadow Dancer
//Belts
War Belt// Thundergod's Vigor
Spiderweb Sash// Arachnid Mesh
Vampirefang Belt// Nosferatu's Coil
Mithril Coil// Verdungo's Hearty Cord
//Paladin Shields
Gilded Shield// Herald Of Zakarum
Zakarum Shield// Herald Of Zakarum
//Sorceress Orbs
Swirling Crystal// The Oculus
Eldritch Orb// Eschuta's Temper
Dimensional Shard// Death's Fathom
//Circlets
Tiara// Kira's Guardian
Diadem// Griffon's Eye
//Necromancer Shrunken Heads
Hierophant Trophy// Homunculus
//Druid Pelts
Totemic Mask// Jalal's Mane
//Barbarian Helms
Slayer Guard// Arreat's Face
Guardian Crown// Arreat's Face
//Others
Grand Charm// Possible GHEED
Ring// #### ID LATER ####
Amulet// #### ID LATER ####
Jewel// #### ID LATER #### -> Rainbow Facet
//#######################################
//KEYS/GEMS/RUNES ITEMS
//#######################################
//El Rune
Eld Rune
Tir Rune
Nef Rune
Eth Rune
Ith Rune
Tal Rune
Ral Rune
Ort Rune
Thul Rune
Amn Rune
Sol Rune
Shael Rune
Dol Rune
Hel Rune
Io Rune
Lum Rune
Ko Rune
Fal Rune
Lem Rune
Pul Rune
Um Rune
Mal Rune
Ist Rune
Gul Rune
Vex Rune
Ohm Rune
Lo Rune
Sur Rune
Ber Rune
Jah Rune
Cham Rune
Zod Rune
// ##### Keys ######################
Key of Terror
Key of Hate
Key of Destruction
// ##### Essences ######################
Twisted Essence Of Suffering
Charged Essence Of Hatred
Burning Essence Of Terror
Festering Essence Of Destruction
Token Of Absolution
// ##### Gems ######################
Chipped Amethyst
Chipped Topaz
Chipped Sapphire
Chipped Ruby
Chipped Emerald
Chipped Diamond
Flawed Amethyst
Flawed Topaz
Flawed Sapphire
Flawed Ruby
Flawed Emerald
Flawed Diamond
//Amethyst
//Topaz
//Sapphire
//Ruby
//Emerald
//Diamond
Flawless Amethyst
Flawless Topaz
Flawless Sapphire
Flawless Ruby
Flawless Emerald
Flawless Diamond
Perfect Amethyst
Perfect Topaz
Perfect Sapphire
Perfect Ruby
Perfect Emerald
Perfect Diamond
//#######################################
//SET ITEMS
//#######################################
Lacquered Plate// Tal Rasha's Guardianship
Death Mask// Tal Rasha's Horadric Crest
Mesh Belt// Tal Rasha's Fine Spun Cloth
Sacred Armor// Immortal King
Heavy Bracers// Trang-Oul's Claws
Winged Helm// Guillaume's Face
Russet Armor// Aldur's Advance

View File

@ -0,0 +1,2 @@
RunNumber=46
D2_LOD_113C_Path=C:\Users\boule\OneDrive\Bureau\JEUX\DiabloIICOCO\

Binary file not shown.

Binary file not shown.

View File

@ -0,0 +1,4 @@
// <autogenerated />
using System;
using System.Reflection;
[assembly: global::System.Runtime.Versioning.TargetFrameworkAttribute(".NETFramework,Version=v4.7.2", FrameworkDisplayName = ".NET Framework 4.7.2")]

Binary file not shown.

View File

@ -1 +1 @@
6a7391e92dd09d8fef5b6d342f93d8f6a6cce75ed3d99f68cdb45f9ad445fcbb
9a507da8d3c9db65d49a77ae93d04a2ae985cbd38209ba92e2742470df16bfac

View File

@ -1,6 +1,3 @@
C:\Users\boule\OneDrive\Documents\Visual Studio 2022\Projects\D2R-BMBot-main\bin\Debug\BotSettings.txt
C:\Users\boule\OneDrive\Documents\Visual Studio 2022\Projects\D2R-BMBot-main\bin\Debug\CharSettings.txt
C:\Users\boule\OneDrive\Documents\Visual Studio 2022\Projects\D2R-BMBot-main\bin\Debug\ItemsSettings.txt
C:\Users\boule\OneDrive\Documents\Visual Studio 2022\Projects\D2R-BMBot-main\bin\Debug\app.exe.config
C:\Users\boule\OneDrive\Documents\Visual Studio 2022\Projects\D2R-BMBot-main\bin\Debug\app.exe
C:\Users\boule\OneDrive\Documents\Visual Studio 2022\Projects\D2R-BMBot-main\bin\Debug\app.pdb
@ -27,3 +24,10 @@ C:\Users\boule\OneDrive\Documents\Visual Studio 2022\Projects\D2R-BMBot-main\obj
C:\Users\boule\OneDrive\Documents\Visual Studio 2022\Projects\D2R-BMBot-main\obj\Debug\app.exe.config
C:\Users\boule\OneDrive\Documents\Visual Studio 2022\Projects\D2R-BMBot-main\obj\Debug\app.csproj.Up2Date
C:\Users\boule\OneDrive\Documents\Visual Studio 2022\Projects\D2R-BMBot-main\obj\Debug\app.FormSettings.resources
C:\Users\boule\OneDrive\Documents\Visual Studio 2022\Projects\D2R-BMBot-main\bin\Debug\Settings\CubingRecipes.txt
C:\Users\boule\OneDrive\Documents\Visual Studio 2022\Projects\D2R-BMBot-main\bin\Debug\Settings\BotSettings.txt
C:\Users\boule\OneDrive\Documents\Visual Studio 2022\Projects\D2R-BMBot-main\bin\Debug\Settings\CharSettings.txt
C:\Users\boule\OneDrive\Documents\Visual Studio 2022\Projects\D2R-BMBot-main\bin\Debug\Settings\ItemsSettings.txt
C:\Users\boule\OneDrive\Documents\Visual Studio 2022\Projects\D2R-BMBot-main\bin\Debug\Settings\Char\PaladinHammer.txt
C:\Users\boule\OneDrive\Documents\Visual Studio 2022\Projects\D2R-BMBot-main\bin\Debug\Settings\Char\SorceressBlizzard.txt
C:\Users\boule\OneDrive\Documents\Visual Studio 2022\Projects\D2R-BMBot-main\obj\Debug\app.FormCharSettings.resources

Binary file not shown.

Binary file not shown.