Compare commits

...

2 Commits

Author SHA1 Message Date
Bouletmarc 45d3299f00 V3.01 2024-05-05 17:58:12 -04:00
Bouletmarc a4778a348c V3.0 2024-05-05 17:31:27 -04:00
44 changed files with 2346 additions and 593 deletions

119
Bots/ArachnidLair.cs Normal file
View File

@ -0,0 +1,119 @@
using System;
using System.Collections.Generic;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using static Enums;
using static MapAreaStruc;
public class ArachnidLair
{
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 DetectCurrentStep()
{
if ((Enums.Area)Form1_0.PlayerScan_0.levelNo == Enums.Area.SpiderForest) CurrentStep = 1;
if ((Enums.Area)Form1_0.PlayerScan_0.levelNo == Enums.Area.SpiderCavern) CurrentStep = 2;
}
public void RunScript()
{
Form1_0.Town_0.ScriptTownAct = 1; //set to town act 5 when running this script
if (!Form1_0.Running || !Form1_0.GameStruc_0.IsInGame())
{
ScriptDone = true;
return;
}
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 ARACHNID LAIR");
Form1_0.Battle_0.CastDefense();
Form1_0.WaitDelay(15);
if ((Enums.Area)Form1_0.PlayerScan_0.levelNo == Enums.Area.SpiderForest)
{
CurrentStep++;
}
else
{
DetectCurrentStep();
if (CurrentStep == 0)
{
Form1_0.Town_0.FastTowning = false;
Form1_0.Town_0.GoToTown();
}
}
}
if (CurrentStep == 1)
{
if ((Enums.Area)Form1_0.PlayerScan_0.levelNo == Enums.Area.SpiderCavern)
{
CurrentStep++;
return;
}
Form1_0.PathFinding_0.MoveToNextArea(Enums.Area.SpiderCavern);
CurrentStep++;
}
if (CurrentStep == 2)
{
//####
if ((Enums.Area)Form1_0.PlayerScan_0.levelNo == Enums.Area.SpiderForest)
{
CurrentStep--;
return;
}
//####
Form1_0.SetGameStatus("CLEARING ARACHNID LAIR");
if ((Enums.Area)Form1_0.Battle_0.AreaIDFullyCleared != Enums.Area.SpiderCavern)
{
Form1_0.Battle_0.ClearFullAreaOfMobs();
if (!Form1_0.Battle_0.ClearingArea)
{
Form1_0.Town_0.FastTowning = false;
Form1_0.Town_0.UseLastTP = false;
ScriptDone = true;
}
}
else
{
Form1_0.Town_0.FastTowning = false;
Form1_0.Town_0.UseLastTP = false;
ScriptDone = true;
}
}
}
}
}

View File

@ -349,7 +349,7 @@ public class Baal
}
//STOP CASTING ERROR DETECTING MOBS/BAAL MOVED
if ((DateTime.Now - TimeSinceLastWaveDone).TotalSeconds > 25)
/*if ((DateTime.Now - TimeSinceLastWaveDone).TotalSeconds > 25)
{
TimeSinceLastWaveDone = DateTime.MaxValue;
TimeSinceLastWaveSet = false;
@ -369,7 +369,7 @@ public class Baal
CheckingThroneBackMode = 0;
return;
}
}
}*/
//STOP CASTING
if (Form1_0.MobsStruc_0.GetMobs("", "", true, 30, IgnoredMobs))

View File

@ -37,9 +37,10 @@ public class Chaos
public int SealType = 0;
public bool MovedToTPPos = false;
public bool CastedAtSeis = false;
public bool FastChaosPopingSeals = false;
public void SetForm1(Form1 form1_1)
{
Form1_0 = form1_1;
@ -55,6 +56,7 @@ public class Chaos
StartTimeUniqueBossWaiting = DateTime.Now;
MovedToTPPos = false;
CastedAtSeis = false;
FastChaosPopingSeals = false;
}
public void DetectCurrentStep()
@ -182,56 +184,59 @@ public class Chaos
StartTimeUniqueBossWaiting = DateTime.Now;
TimeSetForWaitingUniqueBoss = true;
}
if (CurrentSealPos.Y == 5275) SealType = 1;
else SealType = 2;
if (SealType == 1) Form1_0.PathFinding_0.MoveToThisPos(new Position { X = 7691, Y = 5292 }, 4, true);
else Form1_0.PathFinding_0.MoveToThisPos(new Position { X = 7695, Y = 5316 }, 4, true);
Form1_0.SetGameStatus("WAITING VIZIER " + (TryCountWaitingUniqueBoss + 1) + "/1");
bool UniqueDetected = Form1_0.MobsStruc_0.GetMobs("getSuperUniqueName", "Grand Vizier of Chaos", false, 200, new List<long>());
while (!UniqueDetected && (DateTime.Now - StartTimeUniqueBossWaiting).TotalSeconds < CharConfig.ChaosWaitingSealBossDelay)
{
UniqueDetected = Form1_0.MobsStruc_0.GetMobs("getSuperUniqueName", "Grand Vizier of Chaos", false, 200, new List<long>());
Form1_0.PlayerScan_0.GetPositions();
Form1_0.overlayForm.UpdateOverlay();
Form1_0.GameStruc_0.CheckChickenGameTime();
Form1_0.ItemsStruc_0.GetItems(true);
Form1_0.Potions_0.CheckIfWeUsePotion();
Form1_0.Battle_0.DoBattleScript(10);
//###
Form1_0.Battle_0.SetSkills();
Form1_0.Battle_0.CastSkillsNoMove();
//###
Application.DoEvents();
}
if (!UniqueDetected)
{
TimeSetForWaitingUniqueBoss = false;
CurrentStep++;
}
else
{
if (CurrentSealPos.Y == 5275) SealType = 1;
else SealType = 2;
Form1_0.SetGameStatus("KILLING VIZIER");
if (SealType == 1) Form1_0.PathFinding_0.MoveToThisPos(new Position { X = 7691, Y = 5292 }, 4, true);
else Form1_0.PathFinding_0.MoveToThisPos(new Position { X = 7695, Y = 5316 }, 4, true);
Form1_0.SetGameStatus("WAITING VIZIER " + (TryCountWaitingUniqueBoss + 1) + "/1");
bool UniqueDetected = Form1_0.MobsStruc_0.GetMobs("getSuperUniqueName", "Grand Vizier of Chaos", false, 200, new List<long>());
while (!UniqueDetected && (DateTime.Now - StartTimeUniqueBossWaiting).TotalSeconds < CharConfig.ChaosWaitingSealBossDelay)
if (Form1_0.MobsStruc_0.GetMobs("getSuperUniqueName", "Grand Vizier of Chaos", false, 200, new List<long>()))
{
UniqueDetected = Form1_0.MobsStruc_0.GetMobs("getSuperUniqueName", "Grand Vizier of Chaos", false, 200, new List<long>());
Form1_0.PlayerScan_0.GetPositions();
Form1_0.overlayForm.UpdateOverlay();
Form1_0.GameStruc_0.CheckChickenGameTime();
Form1_0.ItemsStruc_0.GetItems(true);
Form1_0.Potions_0.CheckIfWeUsePotion();
Form1_0.Battle_0.DoBattleScript(10);
//###
Form1_0.Battle_0.SetSkills();
Form1_0.Battle_0.CastSkillsNoMove();
//###
Application.DoEvents();
}
if (!UniqueDetected)
{
TimeSetForWaitingUniqueBoss = false;
CurrentStep++;
if (Form1_0.MobsStruc_0.MobsHP > 0)
{
Form1_0.Battle_0.RunBattleScriptOnThisMob("getSuperUniqueName", "Grand Vizier of Chaos", new List<long>());
}
else
{
TimeSetForWaitingUniqueBoss = false;
CurrentStep++;
}
}
else
{
Form1_0.SetGameStatus("KILLING VIZIER");
if (Form1_0.MobsStruc_0.GetMobs("getSuperUniqueName", "Grand Vizier of Chaos", false, 200, new List<long>()))
{
if (Form1_0.MobsStruc_0.MobsHP > 0)
{
Form1_0.Battle_0.RunBattleScriptOnThisMob("getSuperUniqueName", "Grand Vizier of Chaos", new List<long>());
}
else
{
TimeSetForWaitingUniqueBoss = false;
CurrentStep++;
}
}
TimeSetForWaitingUniqueBoss = false;
CurrentStep++;
}
}
}
@ -243,7 +248,7 @@ public class Chaos
&& Form1_0.PlayerScan_0.yPosFinal <= (TPPos.Y + 5))
{
if (Form1_0.PublicGame && !Form1_0.Town_0.TPSpawned) Form1_0.Town_0.SpawnTP();
Form1_0.Battle_0.CastDefense();
if (!FastChaos && !FastChaosPopingSeals) Form1_0.Battle_0.CastDefense();
Form1_0.InventoryStruc_0.DumpBadItemsOnGround();
MovedToTPPos = true;
Form1_0.PathFinding_0.MoveToObject("DiabloSeal5", 4, true);
@ -310,65 +315,68 @@ public class Chaos
StartTimeUniqueBossWaiting = DateTime.Now;
TimeSetForWaitingUniqueBoss = true;
}
if (CurrentSealPos.X == 7773) SealType = 1;
else SealType = 2;
if (SealType == 1)
{
Form1_0.PathFinding_0.MoveToThisPos(new Position { X = 7794, Y = 5227 }, 4, true);
//NTM_MoveTo(108, 7797, 5201);
//for (int i = 0; i < 3; i += 1) NTM_TeleportTo(7794, 5227);
}
else Form1_0.PathFinding_0.MoveToThisPos(new Position { X = 7798, Y = 5186 }, 4, true);
Form1_0.SetGameStatus("WAITING LORD DE SEIS " + (TryCountWaitingUniqueBoss + 1) + "/1");
bool UniqueDetected = Form1_0.MobsStruc_0.GetMobs("getSuperUniqueName", "Lord De Seis", false, 200, new List<long>());
while (!UniqueDetected && (DateTime.Now - StartTimeUniqueBossWaiting).TotalSeconds < CharConfig.ChaosWaitingSealBossDelay)
{
UniqueDetected = Form1_0.MobsStruc_0.GetMobs("getSuperUniqueName", "Lord De Seis", false, 200, new List<long>());
Form1_0.PlayerScan_0.GetPositions();
Form1_0.overlayForm.UpdateOverlay();
Form1_0.GameStruc_0.CheckChickenGameTime();
Form1_0.ItemsStruc_0.GetItems(true);
Form1_0.Potions_0.CheckIfWeUsePotion();
Form1_0.Battle_0.DoBattleScript(10);
//###
Form1_0.Battle_0.SetSkills();
Form1_0.Battle_0.CastSkillsNoMove();
//###
Application.DoEvents();
}
if (!UniqueDetected)
{
//Form1_0.Battle_0.CastDefense();
Form1_0.InventoryStruc_0.DumpBadItemsOnGround();
TimeSetForWaitingUniqueBoss = false;
CurrentStep++;
}
else
{
if (CurrentSealPos.X == 7773) SealType = 1;
else SealType = 2;
Form1_0.SetGameStatus("KILLING LORD DE SEIS");
if (SealType == 1)
if (Form1_0.MobsStruc_0.GetMobs("getSuperUniqueName", "Lord De Seis", false, 200, new List<long>()))
{
Form1_0.PathFinding_0.MoveToThisPos(new Position { X = 7794, Y = 5227 }, 4, true);
//NTM_MoveTo(108, 7797, 5201);
//for (int i = 0; i < 3; i += 1) NTM_TeleportTo(7794, 5227);
}
else Form1_0.PathFinding_0.MoveToThisPos(new Position { X = 7798, Y = 5186 }, 4, true);
Form1_0.SetGameStatus("WAITING LORD DE SEIS " + (TryCountWaitingUniqueBoss + 1) + "/1");
bool UniqueDetected = Form1_0.MobsStruc_0.GetMobs("getSuperUniqueName", "Lord De Seis", false, 200, new List<long>());
while (!UniqueDetected && (DateTime.Now - StartTimeUniqueBossWaiting).TotalSeconds < CharConfig.ChaosWaitingSealBossDelay)
{
UniqueDetected = Form1_0.MobsStruc_0.GetMobs("getSuperUniqueName", "Lord De Seis", false, 200, new List<long>());
Form1_0.PlayerScan_0.GetPositions();
Form1_0.overlayForm.UpdateOverlay();
Form1_0.GameStruc_0.CheckChickenGameTime();
Form1_0.ItemsStruc_0.GetItems(true);
Form1_0.Potions_0.CheckIfWeUsePotion();
Form1_0.Battle_0.DoBattleScript(10);
//###
Form1_0.Battle_0.SetSkills();
Form1_0.Battle_0.CastSkillsNoMove();
//###
Application.DoEvents();
}
if (!UniqueDetected)
{
//Form1_0.Battle_0.CastDefense();
Form1_0.InventoryStruc_0.DumpBadItemsOnGround();
TimeSetForWaitingUniqueBoss = false;
CurrentStep++;
if (Form1_0.MobsStruc_0.MobsHP > 0)
{
Form1_0.Battle_0.RunBattleScriptOnThisMob("getSuperUniqueName", "Lord De Seis", new List<long>());
}
else
{
//Form1_0.Battle_0.CastDefense();
Form1_0.InventoryStruc_0.DumpBadItemsOnGround();
TimeSetForWaitingUniqueBoss = false;
CurrentStep++;
}
}
else
{
Form1_0.SetGameStatus("KILLING LORD DE SEIS");
if (Form1_0.MobsStruc_0.GetMobs("getSuperUniqueName", "Lord De Seis", false, 200, new List<long>()))
{
if (Form1_0.MobsStruc_0.MobsHP > 0)
{
Form1_0.Battle_0.RunBattleScriptOnThisMob("getSuperUniqueName", "Lord De Seis", new List<long>());
}
else
{
//Form1_0.Battle_0.CastDefense();
Form1_0.InventoryStruc_0.DumpBadItemsOnGround();
TimeSetForWaitingUniqueBoss = false;
CurrentStep++;
}
}
TimeSetForWaitingUniqueBoss = false;
CurrentStep++;
}
}
//######
@ -428,57 +436,49 @@ public class Chaos
StartTimeUniqueBossWaiting = DateTime.Now;
TimeSetForWaitingUniqueBoss = true;
}
if (CurrentSealPos.X == 7893) SealType = 1;
else SealType = 2;
if (SealType == 1) SealType = 1; // temp
else Form1_0.PathFinding_0.MoveToThisPos(new Position { X = 7933, Y = 5299 }, 4, true);
Form1_0.SetGameStatus("WAITING INFECTOR " + (TryCountWaitingUniqueBoss + 1) + "/1");
bool UniqueDetected = Form1_0.MobsStruc_0.GetMobs("getSuperUniqueName", "Winged Death", false, 200, new List<long>());
while (!UniqueDetected && (DateTime.Now - StartTimeUniqueBossWaiting).TotalSeconds < CharConfig.ChaosWaitingSealBossDelay)
{
UniqueDetected = Form1_0.MobsStruc_0.GetMobs("getSuperUniqueName", "Winged Death", false, 200, new List<long>());
Form1_0.PlayerScan_0.GetPositions();
Form1_0.overlayForm.UpdateOverlay();
Form1_0.GameStruc_0.CheckChickenGameTime();
Form1_0.ItemsStruc_0.GetItems(true);
Form1_0.Potions_0.CheckIfWeUsePotion();
Form1_0.Battle_0.DoBattleScript(10);
//###
Form1_0.Battle_0.SetSkills();
Form1_0.Battle_0.CastSkillsNoMove();
//###
Application.DoEvents();
}
if (!UniqueDetected)
{
Form1_0.InventoryStruc_0.DumpBadItemsOnGround();
TimeSetForWaitingUniqueBoss = false;
CurrentStep++;
}
else
{
if (CurrentSealPos.X == 7893) SealType = 1;
else SealType = 2;
Form1_0.SetGameStatus("KILLING INFECTOR");
if (SealType == 1) SealType = 1; // temp
else Form1_0.PathFinding_0.MoveToThisPos(new Position { X = 7933, Y = 5299 }, 4, true);
Form1_0.SetGameStatus("WAITING INFECTOR " + (TryCountWaitingUniqueBoss + 1) + "/1");
bool UniqueDetected = Form1_0.MobsStruc_0.GetMobs("getSuperUniqueName", "Winged Death", false, 200, new List<long>());
while (!UniqueDetected && (DateTime.Now - StartTimeUniqueBossWaiting).TotalSeconds < CharConfig.ChaosWaitingSealBossDelay)
if (Form1_0.MobsStruc_0.GetMobs("getSuperUniqueName", "Winged Death", false, 200, new List<long>()))
{
UniqueDetected = Form1_0.MobsStruc_0.GetMobs("getSuperUniqueName", "Winged Death", false, 200, new List<long>());
Form1_0.PlayerScan_0.GetPositions();
Form1_0.overlayForm.UpdateOverlay();
Form1_0.GameStruc_0.CheckChickenGameTime();
Form1_0.ItemsStruc_0.GetItems(true);
Form1_0.Potions_0.CheckIfWeUsePotion();
Form1_0.Battle_0.DoBattleScript(10);
//###
Form1_0.Battle_0.SetSkills();
Form1_0.Battle_0.CastSkillsNoMove();
//###
Application.DoEvents();
}
if (!UniqueDetected)
{
Form1_0.InventoryStruc_0.DumpBadItemsOnGround();
TimeSetForWaitingUniqueBoss = false;
CurrentStep++;
}
else
{
Form1_0.SetGameStatus("KILLING INFECTOR");
if (Form1_0.MobsStruc_0.GetMobs("getSuperUniqueName", "Winged Death", false, 200, new List<long>()))
if (Form1_0.MobsStruc_0.MobsHP > 0)
{
if (Form1_0.MobsStruc_0.MobsHP > 0)
{
Form1_0.Battle_0.RunBattleScriptOnThisMob("getSuperUniqueName", "Winged Death", new List<long>());
}
else
{
Form1_0.InventoryStruc_0.DumpBadItemsOnGround();
TimeSetForWaitingUniqueBoss = false;
CurrentStep++;
}
Form1_0.Battle_0.RunBattleScriptOnThisMob("getSuperUniqueName", "Winged Death", new List<long>());
}
else
{
@ -487,6 +487,12 @@ public class Chaos
CurrentStep++;
}
}
else
{
Form1_0.InventoryStruc_0.DumpBadItemsOnGround();
TimeSetForWaitingUniqueBoss = false;
CurrentStep++;
}
}
//######
}
@ -501,7 +507,7 @@ public class Chaos
if (Form1_0.PathFinding_0.MoveToThisPos(DiabloSpawnPos, 4, true))
{
//Form1_0.PathFinding_0.MoveToThisPos(DiabloSpawnPos, 4, true);
Form1_0.Battle_0.CastDefense();
if (!FastChaos) Form1_0.Battle_0.CastDefense();
CurrentStep++;
}
}
@ -515,7 +521,7 @@ public class Chaos
bool DetectedDiablo = Form1_0.MobsStruc_0.GetMobs("getBossName", "Diablo", false, 200, new List<long>());
DateTime StartTime = DateTime.Now;
TimeSpan TimeSinceDetecting = DateTime.Now - StartTime;
while (!DetectedDiablo && TimeSinceDetecting.TotalSeconds < 12)
while (!DetectedDiablo && TimeSinceDetecting.TotalSeconds < 13)
{
Form1_0.SetGameStatus("WAITING DETECTING DIABLO");
DetectedDiablo = Form1_0.MobsStruc_0.GetMobs("getBossName", "Diablo", false, 200, new List<long>());
@ -534,10 +540,11 @@ public class Chaos
}
}
if (TimeSinceDetecting.TotalSeconds >= 12)
if (TimeSinceDetecting.TotalSeconds >= 13)
{
Form1_0.MobsStruc_0.DetectThisMob("getBossName", "Diablo", false, 200, new List<long>());
Form1_0.method_1("Waited too long for Diablo repoping the seals!", Color.OrangeRed);
FastChaosPopingSeals = true;
CurrentStep = 3;
return;
}

145
Bots/Crypt.cs Normal file
View File

@ -0,0 +1,145 @@
using System;
using System.Collections.Generic;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using static Enums;
using static MapAreaStruc;
public class Crypt
{
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 DetectCurrentStep()
{
if ((Enums.Area)Form1_0.PlayerScan_0.levelNo == Enums.Area.ColdPlains) CurrentStep = 1;
if ((Enums.Area)Form1_0.PlayerScan_0.levelNo == Enums.Area.BurialGrounds) CurrentStep = 2;
if ((Enums.Area)Form1_0.PlayerScan_0.levelNo == Enums.Area.Crypt) CurrentStep = 3;
if ((Enums.Area)Form1_0.PlayerScan_0.levelNo == Enums.Area.Mausoleum)
{
Form1_0.PathFinding_0.MoveToExit(Enums.Area.BurialGrounds);
CurrentStep = 2;
}
}
public void RunScript()
{
Form1_0.Town_0.ScriptTownAct = 1; //set to town act 5 when running this script
if (!Form1_0.Running || !Form1_0.GameStruc_0.IsInGame())
{
ScriptDone = true;
return;
}
if (Form1_0.Town_0.GetInTown())
{
Form1_0.SetGameStatus("GO TO WP");
CurrentStep = 0;
Form1_0.Town_0.GoToWPArea(1, 1);
}
else
{
if (CurrentStep == 0)
{
Form1_0.SetGameStatus("DOING CRYPT");
Form1_0.Battle_0.CastDefense();
Form1_0.WaitDelay(15);
if ((Enums.Area)Form1_0.PlayerScan_0.levelNo == Enums.Area.ColdPlains)
{
CurrentStep++;
}
else
{
DetectCurrentStep();
if (CurrentStep == 0)
{
Form1_0.Town_0.FastTowning = false;
Form1_0.Town_0.GoToTown();
}
}
}
if (CurrentStep == 1)
{
if ((Enums.Area)Form1_0.PlayerScan_0.levelNo == Enums.Area.BurialGrounds)
{
CurrentStep++;
return;
}
Form1_0.PathFinding_0.MoveToNextArea(Enums.Area.BurialGrounds);
CurrentStep++;
}
if (CurrentStep == 2)
{
//####
if (Form1_0.PlayerScan_0.levelNo == (int)Enums.Area.Crypt)
{
CurrentStep++;
return;
}
if ((Enums.Area)Form1_0.PlayerScan_0.levelNo == Enums.Area.ColdPlains)
{
CurrentStep--;
return;
}
//####
Form1_0.PathFinding_0.MoveToExit(Enums.Area.Crypt);
CurrentStep++;
}
if (CurrentStep == 3)
{
//####
if ((Enums.Area)Form1_0.PlayerScan_0.levelNo == Enums.Area.BurialGrounds)
{
CurrentStep--;
return;
}
//####
Form1_0.SetGameStatus("CLEARING CRYPT");
if ((Enums.Area)Form1_0.Battle_0.AreaIDFullyCleared != Enums.Area.Crypt)
{
Form1_0.Battle_0.ClearFullAreaOfMobs();
if (!Form1_0.Battle_0.ClearingArea)
{
Form1_0.Town_0.FastTowning = false;
Form1_0.Town_0.UseLastTP = false;
ScriptDone = true;
}
}
else
{
Form1_0.Town_0.FastTowning = false;
Form1_0.Town_0.UseLastTP = false;
ScriptDone = true;
}
}
}
}
}

145
Bots/Mausoleum.cs Normal file
View File

@ -0,0 +1,145 @@
using System;
using System.Collections.Generic;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using static Enums;
using static MapAreaStruc;
public class Mausoleum
{
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 DetectCurrentStep()
{
if ((Enums.Area)Form1_0.PlayerScan_0.levelNo == Enums.Area.ColdPlains) CurrentStep = 1;
if ((Enums.Area)Form1_0.PlayerScan_0.levelNo == Enums.Area.BurialGrounds) CurrentStep = 2;
if ((Enums.Area)Form1_0.PlayerScan_0.levelNo == Enums.Area.Mausoleum) CurrentStep = 3;
if ((Enums.Area)Form1_0.PlayerScan_0.levelNo == Enums.Area.Crypt)
{
Form1_0.PathFinding_0.MoveToExit(Enums.Area.BurialGrounds);
CurrentStep = 2;
}
}
public void RunScript()
{
Form1_0.Town_0.ScriptTownAct = 1; //set to town act 5 when running this script
if (!Form1_0.Running || !Form1_0.GameStruc_0.IsInGame())
{
ScriptDone = true;
return;
}
if (Form1_0.Town_0.GetInTown())
{
Form1_0.SetGameStatus("GO TO WP");
CurrentStep = 0;
Form1_0.Town_0.GoToWPArea(1, 1);
}
else
{
if (CurrentStep == 0)
{
Form1_0.SetGameStatus("DOING MAUSOLEUM");
Form1_0.Battle_0.CastDefense();
Form1_0.WaitDelay(15);
if ((Enums.Area)Form1_0.PlayerScan_0.levelNo == Enums.Area.ColdPlains)
{
CurrentStep++;
}
else
{
DetectCurrentStep();
if (CurrentStep == 0)
{
Form1_0.Town_0.FastTowning = false;
Form1_0.Town_0.GoToTown();
}
}
}
if (CurrentStep == 1)
{
if ((Enums.Area)Form1_0.PlayerScan_0.levelNo == Enums.Area.BurialGrounds)
{
CurrentStep++;
return;
}
Form1_0.PathFinding_0.MoveToNextArea(Enums.Area.BurialGrounds);
CurrentStep++;
}
if (CurrentStep == 2)
{
//####
if (Form1_0.PlayerScan_0.levelNo == (int)Enums.Area.Mausoleum)
{
CurrentStep++;
return;
}
if ((Enums.Area)Form1_0.PlayerScan_0.levelNo == Enums.Area.ColdPlains)
{
CurrentStep--;
return;
}
//####
Form1_0.PathFinding_0.MoveToExit(Enums.Area.Mausoleum);
CurrentStep++;
}
if (CurrentStep == 3)
{
//####
if ((Enums.Area)Form1_0.PlayerScan_0.levelNo == Enums.Area.BurialGrounds)
{
CurrentStep--;
return;
}
//####
Form1_0.SetGameStatus("CLEARING MAUSOLEUM");
if ((Enums.Area)Form1_0.Battle_0.AreaIDFullyCleared != Enums.Area.Mausoleum)
{
Form1_0.Battle_0.ClearFullAreaOfMobs();
if (!Form1_0.Battle_0.ClearingArea)
{
Form1_0.Town_0.FastTowning = false;
Form1_0.Town_0.UseLastTP = false;
ScriptDone = true;
}
}
else
{
Form1_0.Town_0.FastTowning = false;
Form1_0.Town_0.UseLastTP = false;
ScriptDone = true;
}
}
}
}
}

View File

@ -125,9 +125,13 @@ public class Mephisto
{
if (Form1_0.Battle_0.EndBossBattle())
{
Form1_0.Town_0.FastTowning = false;
Form1_0.Town_0.UseLastTP = false;
ScriptDone = 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)
/*while (Form1_0.PlayerScan_0.levelNo == (int)Enums.Area.DuranceOfHateLevel3)
{
Form1_0.ItemsStruc_0.GetItems(true);
if (Form1_0.Mover_0.MoveToLocation(17601, 8070))
@ -145,7 +149,7 @@ public class Mephisto
Form1_0.Town_0.FastTowning = false;
Form1_0.Town_0.UseLastTP = false;
ScriptDone = true;
ScriptDone = true;*/
return;
//Form1_0.LeaveGame(true);
}

180
Bots/Pit.cs Normal file
View File

@ -0,0 +1,180 @@
using System;
using System.Collections.Generic;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using static Enums;
using static MapAreaStruc;
public class Pit
{
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 DetectCurrentStep()
{
if ((Enums.Area)Form1_0.PlayerScan_0.levelNo == Enums.Area.OuterCloister) CurrentStep = 1;
if ((Enums.Area)Form1_0.PlayerScan_0.levelNo == Enums.Area.MonasteryGate) CurrentStep = 2;
if ((Enums.Area)Form1_0.PlayerScan_0.levelNo == Enums.Area.TamoeHighland) CurrentStep = 3;
if ((Enums.Area)Form1_0.PlayerScan_0.levelNo == Enums.Area.PitLevel1) CurrentStep = 4;
if ((Enums.Area)Form1_0.PlayerScan_0.levelNo == Enums.Area.PitLevel2) CurrentStep = 5;
}
public void RunScript()
{
Form1_0.Town_0.ScriptTownAct = 1; //set to town act 5 when running this script
if (!Form1_0.Running || !Form1_0.GameStruc_0.IsInGame())
{
ScriptDone = true;
return;
}
if (Form1_0.Town_0.GetInTown())
{
Form1_0.SetGameStatus("GO TO WP");
CurrentStep = 0;
Form1_0.Town_0.GoToWPArea(1, 5);
}
else
{
if (CurrentStep == 0)
{
Form1_0.SetGameStatus("DOING CRYPT");
Form1_0.Battle_0.CastDefense();
Form1_0.WaitDelay(15);
if ((Enums.Area)Form1_0.PlayerScan_0.levelNo == Enums.Area.OuterCloister)
{
CurrentStep++;
}
else
{
DetectCurrentStep();
if (CurrentStep == 0)
{
Form1_0.Town_0.FastTowning = false;
Form1_0.Town_0.GoToTown();
}
}
}
if (CurrentStep == 1)
{
if ((Enums.Area)Form1_0.PlayerScan_0.levelNo == Enums.Area.BurialGrounds)
{
CurrentStep++;
return;
}
Form1_0.PathFinding_0.MoveToNextArea(Enums.Area.MonasteryGate);
CurrentStep++;
}
if (CurrentStep == 2)
{
//####
if (Form1_0.PlayerScan_0.levelNo == (int)Enums.Area.TamoeHighland)
{
CurrentStep++;
return;
}
if ((Enums.Area)Form1_0.PlayerScan_0.levelNo == Enums.Area.OuterCloister)
{
CurrentStep--;
return;
}
//####
Form1_0.PathFinding_0.MoveToNextArea(Enums.Area.TamoeHighland);
CurrentStep++;
}
if (CurrentStep == 3)
{
//####
if (Form1_0.PlayerScan_0.levelNo == (int)Enums.Area.PitLevel1)
{
CurrentStep++;
return;
}
if ((Enums.Area)Form1_0.PlayerScan_0.levelNo == Enums.Area.MonasteryGate)
{
CurrentStep--;
return;
}
//####
Form1_0.PathFinding_0.MoveToExit(Enums.Area.PitLevel1);
CurrentStep++;
}
if (CurrentStep == 4)
{
Form1_0.SetGameStatus("CLEARING PIT LVL1");
if ((Enums.Area)Form1_0.Battle_0.AreaIDFullyCleared != Enums.Area.PitLevel1)
{
Form1_0.Battle_0.ClearFullAreaOfMobs();
if (!Form1_0.Battle_0.ClearingArea)
{
Form1_0.PathFinding_0.MoveToExit(Enums.Area.PitLevel2);
CurrentStep++;
}
}
else
{
Form1_0.PathFinding_0.MoveToExit(Enums.Area.PitLevel2);
CurrentStep++;
}
}
if (CurrentStep == 5)
{
//####
if (Form1_0.PlayerScan_0.levelNo == (int)Enums.Area.PitLevel1)
{
Form1_0.PathFinding_0.MoveToExit(Enums.Area.PitLevel2);
return;
}
//####
Form1_0.SetGameStatus("CLEARING PIT LVL2");
if ((Enums.Area)Form1_0.Battle_0.AreaIDFullyCleared != Enums.Area.PitLevel2)
{
Form1_0.Battle_0.ClearFullAreaOfMobs();
if (!Form1_0.Battle_0.ClearingArea)
{
Form1_0.Town_0.FastTowning = false;
Form1_0.Town_0.UseLastTP = false;
ScriptDone = true;
}
}
else
{
Form1_0.Town_0.FastTowning = false;
Form1_0.Town_0.UseLastTP = false;
ScriptDone = true;
}
}
}
}
}

View File

@ -157,11 +157,14 @@ public class MephistoRush
if (Form1_0.Battle_0.EndBossBattle())
{
Form1_0.Town_0.FastTowning = false;
Form1_0.Town_0.UseLastTP = false;
ScriptDone = 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)
/*while (Form1_0.PlayerScan_0.levelNo == (int)Enums.Area.DuranceOfHateLevel3)
{
if (Form1_0.Mover_0.MoveToLocation(17601, 8070))
{
@ -178,7 +181,7 @@ public class MephistoRush
Form1_0.Town_0.FastTowning = false;
Form1_0.Town_0.UseLastTP = false;
ScriptDone = true;
ScriptDone = true;*/
return;
//Form1_0.LeaveGame(true);
}

86
Bots/ShopBot.cs Normal file
View File

@ -0,0 +1,86 @@
using System;
using System.Collections.Generic;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
public class ShopBot
{
Form1 Form1_0;
public int CurrentStep = 0;
public bool ScriptDone = false;
public int MaxShopCount = -1;
public int CurrentShopCount = 0;
public int ShopBotTownAct = 5;
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 = ShopBotTownAct;
if (!Form1_0.Running || !Form1_0.GameStruc_0.IsInGame())
{
ScriptDone = true;
return;
}
if (CurrentStep == 0)
{
Form1_0.SetGameStatus("DOING SHOPBOT");
Form1_0.Battle_0.CastDefense();
Form1_0.WaitDelay(15);
if ((Enums.Area)Form1_0.PlayerScan_0.levelNo == Enums.Area.Harrogath)
{
CurrentStep++;
}
else
{
Form1_0.Town_0.FastTowning = false;
Form1_0.Town_0.GoToTown();
}
}
if (CurrentStep == 1)
{
Form1_0.SetGameStatus("TOWN-SHOPBOT");
//Console.WriteLine("town moving to shop");
Form1_0.Town_0.MoveToStore();
CurrentStep++;
}
if (CurrentStep == 2)
{
Form1_0.Town_0.GoToWPArea(5, 1);
CurrentStep++;
}
if (CurrentStep == 2)
{
Form1_0.Town_0.GoToWPArea(5, 0);
if (MaxShopCount > 0)
{
CurrentShopCount++;
if (CurrentShopCount >= MaxShopCount)
{
ScriptDone = true;
}
}
CurrentStep = 1;
}
}
}

View File

@ -139,6 +139,11 @@ public static class CharConfig
public static bool RunBaalLeechScript = true; //BAAL LEECH SCRIPT
public static bool RunTerrorZonesScript = false;
public static bool RunItemGrabScriptOnly = false;
public static bool RunShopBotScript = false;
public static bool RunMausoleumScript = false;
public static bool RunCryptScript = false;
public static bool RunArachnidScript = false;
public static bool RunPitScript = 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
@ -191,5 +196,6 @@ public static class CharConfig
public static int LeechEnterTPDelay = 600;
public static int MephistoRedPortalEnterDelay = 800;
public static int CubeItemPlaceDelay = 16;
public static int CreateGameWaitDelay = 1;
}

View File

@ -254,7 +254,7 @@ public class SettingsLoader
{
string[] Splitted = AllLines[i].Split('=');
if (Splitted[0] == "MaxGameTime") AllLines[i] = "MaxGameTime=" + CharConfig.MaxGameTime;
if (Splitted[0] == "LogNotUsefulErrors") AllLines[i] = "LogNotUsefulErrors=" + CharConfig.IsRushing;
if (Splitted[0] == "LogNotUsefulErrors") AllLines[i] = "LogNotUsefulErrors=" + CharConfig.LogNotUsefulErrors;
if (Splitted[0] == "IsRushing") AllLines[i] = "IsRushing=" + CharConfig.IsRushing;
if (Splitted[0] == "RushLeecherName") AllLines[i] = "RushLeecherName=" + CharConfig.RushLeecherName;
@ -347,6 +347,11 @@ public class SettingsLoader
if (Splitted[0] == "RunNihlatakScript") AllLines[i] = "RunNihlatakScript=" + CharConfig.RunNihlatakScript;
if (Splitted[0] == "RunFrozensteinScript") AllLines[i] = "RunFrozensteinScript=" + CharConfig.RunFrozensteinScript;
if (Splitted[0] == "RunTerrorZonesScript") AllLines[i] = "RunTerrorZonesScript=" + CharConfig.RunTerrorZonesScript;
if (Splitted[0] == "RunShopBotScript") AllLines[i] = "RunShopBotScript=" + CharConfig.RunShopBotScript;
if (Splitted[0] == "RunMausoleumScript") AllLines[i] = "RunMausoleumScript=" + CharConfig.RunMausoleumScript;
if (Splitted[0] == "RunCryptScript") AllLines[i] = "RunCryptScript=" + CharConfig.RunCryptScript;
if (Splitted[0] == "RunArachnidScript") AllLines[i] = "RunArachnidScript=" + CharConfig.RunArachnidScript;
if (Splitted[0] == "RunPitScript") AllLines[i] = "RunPitScript=" + CharConfig.RunPitScript;
if (Splitted[0] == "RunChaosSearchGameScript") AllLines[i] = "RunChaosSearchGameScript=" + CharConfig.RunChaosSearchGameScript;
if (Splitted[0] == "RunBaalSearchGameScript") AllLines[i] = "RunBaalSearchGameScript=" + CharConfig.RunBaalSearchGameScript;
@ -417,6 +422,7 @@ public class SettingsLoader
if (Splitted[0] == "MephistoRedPortalEnterDelay") AllLines[i] = "MephistoRedPortalEnterDelay=" + CharConfig.MephistoRedPortalEnterDelay;
if (Splitted[0] == "CubeItemPlaceDelay") AllLines[i] = "CubeItemPlaceDelay=" + CharConfig.CubeItemPlaceDelay;
if (Splitted[0] == "OverallDelaysMultiplyer") AllLines[i] = "OverallDelaysMultiplyer=" + CharConfig.OverallDelaysMultiplyer;
if (Splitted[0] == "CreateGameWaitDelay") AllLines[i] = "CreateGameWaitDelay=" + CharConfig.CreateGameWaitDelay;
}
}
@ -1361,6 +1367,26 @@ public class SettingsLoader
{
CharConfig.RunTerrorZonesScript = bool.Parse(Params[1].ToLower());
}
if (Params[0].Contains("RunShopBotScript"))
{
CharConfig.RunShopBotScript = bool.Parse(Params[1].ToLower());
}
if (Params[0].Contains("RunMausoleumScript"))
{
CharConfig.RunMausoleumScript = bool.Parse(Params[1].ToLower());
}
if (Params[0].Contains("RunCryptScript"))
{
CharConfig.RunCryptScript = bool.Parse(Params[1].ToLower());
}
if (Params[0].Contains("RunArachnidScript"))
{
CharConfig.RunArachnidScript = bool.Parse(Params[1].ToLower());
}
if (Params[0].Contains("RunPitScript"))
{
CharConfig.RunPitScript = bool.Parse(Params[1].ToLower());
}
//########
if (Params[0].Contains("RunItemGrabScriptOnly"))
@ -1463,6 +1489,7 @@ public class SettingsLoader
if (Params[0].Contains("LeechEnterTPDelay")) CharConfig.LeechEnterTPDelay = int.Parse(Params[1]);
if (Params[0].Contains("MephistoRedPortalEnterDelay")) CharConfig.MephistoRedPortalEnterDelay = int.Parse(Params[1]);
if (Params[0].Contains("CubeItemPlaceDelay")) CharConfig.CubeItemPlaceDelay = int.Parse(Params[1]);
if (Params[0].Contains("CreateGameWaitDelay")) CharConfig.CreateGameWaitDelay = int.Parse(Params[1]);
if (Params[0].Contains("OverallDelaysMultiplyer")) CharConfig.OverallDelaysMultiplyer = double.Parse(Params[1], System.Globalization.CultureInfo.InvariantCulture);
}
}

29
Form1.Designer.cs generated
View File

@ -77,6 +77,8 @@ partial class Form1
this.button4 = new System.Windows.Forms.Button();
this.button3 = new System.Windows.Forms.Button();
this.folderBrowserDialog1 = new System.Windows.Forms.FolderBrowserDialog();
this.tabPage10 = new System.Windows.Forms.TabPage();
this.richTextBoSoldLogs = new System.Windows.Forms.RichTextBox();
((System.ComponentModel.ISupportInitialize)(this.dataGridView1)).BeginInit();
this.tabControl1.SuspendLayout();
this.tabPage1.SuspendLayout();
@ -90,6 +92,7 @@ partial class Form1
this.tabPage6.SuspendLayout();
this.tabPage7.SuspendLayout();
this.statusStrip1.SuspendLayout();
this.tabPage10.SuspendLayout();
this.SuspendLayout();
//
// button1
@ -166,6 +169,7 @@ partial class Form1
this.tabControl1.Controls.Add(this.tabPage2);
this.tabControl1.Controls.Add(this.tabPage8);
this.tabControl1.Controls.Add(this.tabPage9);
this.tabControl1.Controls.Add(this.tabPage10);
this.tabControl1.Location = new System.Drawing.Point(5, 31);
this.tabControl1.Name = "tabControl1";
this.tabControl1.SelectedIndex = 0;
@ -599,6 +603,28 @@ partial class Form1
//
this.folderBrowserDialog1.Description = "Select the folder where D2 LOD 1.13C is located";
//
// tabPage10
//
this.tabPage10.Controls.Add(this.richTextBoSoldLogs);
this.tabPage10.Location = new System.Drawing.Point(4, 22);
this.tabPage10.Name = "tabPage10";
this.tabPage10.Size = new System.Drawing.Size(323, 324);
this.tabPage10.TabIndex = 4;
this.tabPage10.Text = "Sold Logs";
this.tabPage10.UseVisualStyleBackColor = true;
//
// richTextBoSoldLogs
//
this.richTextBoSoldLogs.DetectUrls = false;
this.richTextBoSoldLogs.Dock = System.Windows.Forms.DockStyle.Fill;
this.richTextBoSoldLogs.Location = new System.Drawing.Point(0, 0);
this.richTextBoSoldLogs.Name = "richTextBoSoldLogs";
this.richTextBoSoldLogs.ReadOnly = true;
this.richTextBoSoldLogs.ScrollBars = System.Windows.Forms.RichTextBoxScrollBars.ForcedVertical;
this.richTextBoSoldLogs.Size = new System.Drawing.Size(323, 324);
this.richTextBoSoldLogs.TabIndex = 6;
this.richTextBoSoldLogs.Text = "";
//
// Form1
//
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
@ -640,6 +666,7 @@ partial class Form1
this.tabPage7.ResumeLayout(false);
this.statusStrip1.ResumeLayout(false);
this.statusStrip1.PerformLayout();
this.tabPage10.ResumeLayout(false);
this.ResumeLayout(false);
this.PerformLayout();
@ -695,5 +722,7 @@ partial class Form1
public System.Windows.Forms.CheckBox checkBoxShowValidObjectOnly;
private System.Windows.Forms.Button buttonPauseResume;
private System.Windows.Forms.FolderBrowserDialog folderBrowserDialog1;
private System.Windows.Forms.TabPage tabPage10;
private System.Windows.Forms.RichTextBox richTextBoSoldLogs;
}

215
Form1.cs
View File

@ -40,12 +40,13 @@ using static MapAreaStruc;
public partial class Form1 : Form
{
public string BotVersion = "V2.99";
public string BotVersion = "V3.01";
public string D2_LOD_113C_Path = "";
public Process process;
public string ThisEndPath = Application.StartupPath + @"\Extracted\";
public string ThisLogPath = Application.StartupPath + @"\Logs\";
public Dictionary<string, IntPtr> offsets = new Dictionary<string, IntPtr>();
public IntPtr BaseAddress = (IntPtr)0;
public IntPtr processHandle = (IntPtr)0;
@ -166,6 +167,11 @@ public partial class Form1 : Form
public Shenk Shenk_0;
public Nihlatak Nihlatak_0;
public Frozenstein Frozenstein_0;
public ShopBot ShopBot_0;
public Mausoleum Mausoleum_0;
public Crypt Crypt_0;
public ArachnidLair ArachnidLair_0;
public Pit Pit_0;
public AndarielRush AndarielRush_0;
public DarkWoodRush DarkWoodRush_0;
@ -352,6 +358,11 @@ public partial class Form1 : Form
Frozenstein_0 = new Frozenstein();
TerrorZones_0 = new TerrorZones();
AreaScript_0 = new AreaScript();
ShopBot_0 = new ShopBot();
Mausoleum_0 = new Mausoleum();
Crypt_0 = new Crypt();
ArachnidLair_0 = new ArachnidLair();
Pit_0 = new Pit();
AndarielRush_0 = new AndarielRush();
DarkWoodRush_0 = new DarkWoodRush();
@ -429,6 +440,11 @@ public partial class Form1 : Form
Frozenstein_0.SetForm1(Form1_0);
TerrorZones_0.SetForm1(Form1_0);
AreaScript_0.SetForm1(Form1_0);
ShopBot_0.SetForm1(Form1_0);
Mausoleum_0.SetForm1(Form1_0);
Crypt_0.SetForm1(Form1_0);
ArachnidLair_0.SetForm1(Form1_0);
Pit_0.SetForm1(Form1_0);
AndarielRush_0.SetForm1(Form1_0);
DarkWoodRush_0.SetForm1(Form1_0);
@ -565,12 +581,14 @@ public partial class Form1 : Form
if (responseBody.Contains("public string BotVersion = "))
{
double ThisVersionOnline = double.Parse(responseBody.Substring(responseBody.IndexOf('=') + 4, 3), System.Globalization.CultureInfo.InvariantCulture);
double ThisVersionCurrent = double.Parse(BotVersion.Substring(1, 3), System.Globalization.CultureInfo.InvariantCulture);
string ThisOnlineVString = responseBody.Substring(responseBody.IndexOf('=') + 4, 5);
ThisOnlineVString = ThisOnlineVString.Replace("\"", "").Replace(";", "");
double ThisVersionOnline = double.Parse(ThisOnlineVString, System.Globalization.CultureInfo.InvariantCulture);
double ThisVersionCurrent = double.Parse(BotVersion.Substring(1).Replace("\"", ""), System.Globalization.CultureInfo.InvariantCulture);
if (ThisVersionOnline > ThisVersionCurrent)
{
method_1("New update V" + ThisVersionOnline + " available on github!", Color.Red);
method_1("New update V" + ThisVersionOnline.ToString().Replace(",", ".") + " available on github!", Color.Red);
buttonUpdate.Visible = true;
}
else if (ThisVersionOnline == ThisVersionCurrent)
@ -671,6 +689,36 @@ public partial class Form1 : Form
richTextBox2.SelectionColor = ThisColor;
richTextBox2.AppendText(LogThis + Environment.NewLine);
method_1(LogThis, ThisColor, false);
if (!Directory.Exists(ThisLogPath)) Directory.CreateDirectory(ThisLogPath);
if (!File.Exists(ThisLogPath + "ItemsLogs.txt")) File.Create(ThisLogPath + "ItemsLogs.txt").Dispose();
File.AppendAllText(ThisLogPath + "ItemsLogs.txt", LogThis + Environment.NewLine);
Application.DoEvents();
}
//}
//catch { }
}
public void method_1_SoldItems(string string_3, Color ThisColor)
{
//try
//{
if (richTextBoSoldLogs.InvokeRequired)
{
// Call this same method but append THREAD2 to the text
Action safeWrite = delegate { method_1_Items(string_3, ThisColor); };
richTextBoSoldLogs.Invoke(safeWrite);
}
else
{
string LogThis = string_3 + " " + GameStruc_0.GetTimeNow();
richTextBoSoldLogs.SelectionColor = ThisColor;
richTextBoSoldLogs.AppendText(LogThis + Environment.NewLine);
method_1(LogThis, ThisColor, false);
if (!Directory.Exists(ThisLogPath)) Directory.CreateDirectory(ThisLogPath);
if (!File.Exists(ThisLogPath + "ItemsSoldLogs.txt")) File.Create(ThisLogPath + "ItemsSoldLogs.txt").Dispose();
File.AppendAllText(ThisLogPath + "ItemsSoldLogs.txt", LogThis + Environment.NewLine);
Application.DoEvents();
}
//}
@ -978,6 +1026,11 @@ public partial class Form1 : Form
Nihlatak_0.ResetVars();
Frozenstein_0.ResetVars();
TerrorZones_0.ResetVars();
ShopBot_0.ResetVars();
Mausoleum_0.ResetVars();
Crypt_0.ResetVars();
ArachnidLair_0.ResetVars();
Pit_0.ResetVars();
AndarielRush_0.ResetVars();
DarkWoodRush_0.ResetVars();
@ -1035,9 +1088,26 @@ public partial class Form1 : Form
Form1_0.PatternsScan_0.GetUnitsScannedCount(1);
if (Form1_0.PatternsScan_0.ScannedItemsCount < 100)
{
method_1("Detected Poiters Error, Restarting Bot...", Color.Red);
method_1("Detected Pointers Error, Restarting Bot...", Color.Red);
PatternsScan_0.ResetV1Scanning();
HasPointers = false;
PointerError = true;
PatternsScan_0.AllItemsPointers = new Dictionary<long, bool>();
PatternsScan_0.AllObjectsPointers = new Dictionary<long, bool>(); //->refer to all gameobjects
PatternsScan_0.AllPlayersPointers = new Dictionary<long, bool>();
PatternsScan_0.AllNPCPointers = new Dictionary<long, bool>();
PatternsScan_0.AllPossiblePointers = new List<long>();
PatternsScan_0.AllPossibleItemsPointers = new List<long>();
PatternsScan_0.AllPossiblePlayerPointers = new List<long>();
PatternsScan_0.AllPossibleObjectsPointers = new List<long>();
PatternsScan_0.AllPossibleNPCPointers = new List<long>();
PatternsScan_0.AllScannedPointers = new Dictionary<long, bool>();
PatternsScan_0.StartIndexItem = long.MaxValue;
PatternsScan_0.StartIndexItemLast = long.MaxValue;
//PatternsScan_0.PatternScan();
}
}
@ -1095,6 +1165,7 @@ public partial class Form1 : Form
//if (PatternsScan_0.StartIndexItem_V2 == long.MaxValue) PatternsScan_0.DetectFirstUnitPointer(); //UNITS SCAN V2
Town_0.GetCorpse();
ItemsStruc_0.GetBadItemsOnCursor();
InventoryStruc_0.CheckInventorySpecialUniqueItems();
HasPointers = true;
}
else
@ -1117,6 +1188,7 @@ public partial class Form1 : Form
//if (PatternsScan_0.StartIndexItem_V2 == long.MaxValue) PatternsScan_0.DetectFirstUnitPointer(); //UNITS SCAN V2
Town_0.GetCorpse();
ItemsStruc_0.GetBadItemsOnCursor();
InventoryStruc_0.CheckInventorySpecialUniqueItems();
HasPointers = true;
}
else
@ -1158,9 +1230,9 @@ public partial class Form1 : Form
//ItemsStruc_0.GetItems(true);
//overlayForm.SetAllOverlay();
//GameStruc_0.GetTerrorZones();
//Running = false;
//if (Running) LoopTimer.Start();
//KeyMouse_0.SetForm1(Form1_0);
//return;
if (CharConfig.RunMapHackOnly)
@ -1205,13 +1277,18 @@ public partial class Form1 : Form
{
if (Form1_0.Town_0.TownScriptDone)
{
ItemsStruc_0.TriesToPickItemCount = 0;
Town_0.FastTowning = true;
Town_0.ForcedTowning = false;
//Town_0.FastTowning = false;
Town_0.UseLastTP = false;
Town_0.TPSpawned = false;
}
if (!Form1_0.Town_0.GetInTown()) Form1_0.Town_0.TownScriptDone = false;
if (!Form1_0.Town_0.GetInTown())
{
Form1_0.Stash_0.DeposingGoldCount = 0;
Form1_0.Town_0.TownScriptDone = false;
}
if (!Town_0.GetInTown() && Form1_0.ItemsStruc_0.ItemsEquiped <= 2)
{
@ -1235,127 +1312,162 @@ public partial class Form1 : Form
}
else
{
if (CharConfig.RunCowsScript && !Cows_0.ScriptDone)
if (CharConfig.RunShopBotScript && !ShopBot_0.ScriptDone)
{
Cows_0.RunScript();
ShopBot_0.RunScript();
}
else
{
if (CharConfig.RunCountessScript && !Countess_0.ScriptDone)
if (CharConfig.RunMausoleumScript && !Mausoleum_0.ScriptDone)
{
Countess_0.RunScript();
Mausoleum_0.RunScript();
}
else
{
if (CharConfig.RunAndarielScript && !Andariel_0.ScriptDone)
if (CharConfig.RunCryptScript && !Crypt_0.ScriptDone)
{
Andariel_0.RunScript();
Crypt_0.RunScript();
}
else
{
if (CharConfig.RunSummonerScript && !Summoner_0.ScriptDone)
if (CharConfig.RunPitScript && !Pit_0.ScriptDone)
{
Summoner_0.RunScript();
Pit_0.RunScript();
}
else
{
if (CharConfig.RunDurielScript && !Duriel_0.ScriptDone)
if (CharConfig.RunCowsScript && !Cows_0.ScriptDone)
{
Duriel_0.RunScript();
Cows_0.RunScript();
}
else
{
if (CharConfig.RunLowerKurastScript && !LowerKurast_0.ScriptDone)
if (CharConfig.RunCountessScript && !Countess_0.ScriptDone)
{
LowerKurast_0.RunScript();
Countess_0.RunScript();
}
else
{
if (CharConfig.RunA3SewersScript && !Act3Sewers_0.ScriptDone)
if (CharConfig.RunAndarielScript && !Andariel_0.ScriptDone)
{
Act3Sewers_0.RunScript();
Andariel_0.RunScript();
}
else
{
if (CharConfig.RunUpperKurastScript && !UpperKurast_0.ScriptDone)
if (CharConfig.RunSummonerScript && !Summoner_0.ScriptDone)
{
UpperKurast_0.RunScript();
Summoner_0.RunScript();
}
else
{
if (CharConfig.RunTravincalScript && !Travincal_0.ScriptDone)
if (CharConfig.RunDurielScript && !Duriel_0.ScriptDone)
{
Travincal_0.RunScript();
Duriel_0.RunScript();
}
else
{
if (CharConfig.RunMephistoScript && !Mephisto_0.ScriptDone)
if (CharConfig.RunArachnidScript && !ArachnidLair_0.ScriptDone)
{
Mephisto_0.RunScript();
ArachnidLair_0.RunScript();
}
else
{
if (CharConfig.RunChaosScript && !Chaos_0.ScriptDone)
if (CharConfig.RunLowerKurastScript && !LowerKurast_0.ScriptDone)
{
Chaos_0.RunScript();
LowerKurast_0.RunScript();
}
else
{
if (CharConfig.RunChaosLeechScript && !ChaosLeech_0.ScriptDone)
if (CharConfig.RunA3SewersScript && !Act3Sewers_0.ScriptDone)
{
ChaosLeech_0.RunScript();
Act3Sewers_0.RunScript();
}
else
{
if (CharConfig.RunEldritchScript && !Eldritch_0.ScriptDone)
if (CharConfig.RunUpperKurastScript && !UpperKurast_0.ScriptDone)
{
Eldritch_0.RunScript();
UpperKurast_0.RunScript();
}
else
{
if (CharConfig.RunShenkScript && !Shenk_0.ScriptDone)
if (CharConfig.RunTravincalScript && !Travincal_0.ScriptDone)
{
Shenk_0.RunScript();
Travincal_0.RunScript();
}
else
{
if (CharConfig.RunFrozensteinScript && !Frozenstein_0.ScriptDone)
if (CharConfig.RunMephistoScript && !Mephisto_0.ScriptDone)
{
Frozenstein_0.RunScript();
Mephisto_0.RunScript();
}
else
{
if (CharConfig.RunPindleskinScript && !Pindleskin_0.ScriptDone)
if (CharConfig.RunChaosScript && !Chaos_0.ScriptDone)
{
Pindleskin_0.RunScript();
Chaos_0.RunScript();
}
else
{
if (CharConfig.RunNihlatakScript && !Nihlatak_0.ScriptDone)
if (CharConfig.RunChaosLeechScript && !ChaosLeech_0.ScriptDone)
{
Nihlatak_0.RunScript();
ChaosLeech_0.RunScript();
}
else
{
if (CharConfig.RunBaalScript && !Baal_0.ScriptDone)
if (CharConfig.RunEldritchScript && !Eldritch_0.ScriptDone)
{
Baal_0.RunScript();
Eldritch_0.RunScript();
}
else
{
if (CharConfig.RunBaalLeechScript && !BaalLeech_0.ScriptDone)
if (CharConfig.RunShenkScript && !Shenk_0.ScriptDone)
{
BaalLeech_0.RunScript();
Shenk_0.RunScript();
}
else
{
if (CharConfig.RunTerrorZonesScript && !TerrorZones_0.ScriptDone)
if (CharConfig.RunFrozensteinScript && !Frozenstein_0.ScriptDone)
{
TerrorZones_0.RunScript();
Frozenstein_0.RunScript();
}
else
{
Form1_0.LeaveGame(true);
if (CharConfig.RunPindleskinScript && !Pindleskin_0.ScriptDone)
{
Pindleskin_0.RunScript();
}
else
{
if (CharConfig.RunNihlatakScript && !Nihlatak_0.ScriptDone)
{
Nihlatak_0.RunScript();
}
else
{
if (CharConfig.RunBaalScript && !Baal_0.ScriptDone)
{
Baal_0.RunScript();
}
else
{
if (CharConfig.RunBaalLeechScript && !BaalLeech_0.ScriptDone)
{
BaalLeech_0.RunScript();
}
else
{
if (CharConfig.RunTerrorZonesScript && !TerrorZones_0.ScriptDone)
{
TerrorZones_0.RunScript();
}
else
{
Form1_0.LeaveGame(true);
}
}
}
}
}
}
}
}
@ -1557,6 +1669,11 @@ public partial class Form1 : Form
{
Form1_0.KeyMouse_0.MouseClicc(970, 970); //clic 'play'
Form1_0.WaitDelay(100);
if (CharConfig.GameDifficulty == 0) Form1_0.KeyMouse_0.MouseClicc(960, 450); //clic 'normal'
if (CharConfig.GameDifficulty == 0) Form1_0.KeyMouse_0.MouseClicc(960, 520); //clic 'nm'
if (CharConfig.GameDifficulty == 0) Form1_0.KeyMouse_0.MouseClicc(960, 585); //clic 'hell'
Form1_0.WaitDelay(100);
}
else
{
@ -1969,6 +2086,8 @@ public partial class Form1 : Form
//SetPlayButtonText("STOP");
Running = true;
BotJustStarted = true;
Form1_0.GameStartedTime = DateTime.Now;
Form1_0.InventoryStruc_0.DisabledSpecialItems = false;
Startt();
}

View File

@ -69,10 +69,10 @@ public partial class FormAdvancedSettings : Form
dataGridViewAdvanced.Rows[RowsIndex++].HeaderCell.Value = "Overall Delays Multiplyer";
dataGridViewAdvanced.Rows.Add();
dataGridViewAdvanced.Rows[dataGridViewAdvanced.Rows.Count - 1].Cells[0].Value = CharConfig.EndBattleGrabDelay;
dataGridViewAdvanced.Rows[RowsIndex++].HeaderCell.Value = "End Battle Grab Delay (ms*100)";
dataGridViewAdvanced.Rows[RowsIndex++].HeaderCell.Value = "End Battle Item Grab Delay (ms*100)";
dataGridViewAdvanced.Rows.Add();
dataGridViewAdvanced.Rows[dataGridViewAdvanced.Rows.Count - 1].Cells[0].Value = CharConfig.MaxTimeEnterGame;
dataGridViewAdvanced.Rows[RowsIndex++].HeaderCell.Value = "Max Game Time To Enter (sec)";
dataGridViewAdvanced.Rows[RowsIndex++].HeaderCell.Value = "Max Search Game Time To Enter (sec)";
dataGridViewAdvanced.Rows.Add();
dataGridViewAdvanced.Rows[dataGridViewAdvanced.Rows.Count - 1].Cells[0].Value = CharConfig.BaalWavesCastDelay;
dataGridViewAdvanced.Rows[RowsIndex++].HeaderCell.Value = "Baal Waves Cast Delay (sec)";
@ -81,7 +81,7 @@ public partial class FormAdvancedSettings : Form
dataGridViewAdvanced.Rows[RowsIndex++].HeaderCell.Value = "Chaos Waiting Seal Boss Delay (sec)";
dataGridViewAdvanced.Rows.Add();
dataGridViewAdvanced.Rows[dataGridViewAdvanced.Rows.Count - 1].Cells[0].Value = CharConfig.RecastBODelay;
dataGridViewAdvanced.Rows[RowsIndex++].HeaderCell.Value = "Recast BO Delay (sec)";
dataGridViewAdvanced.Rows[RowsIndex++].HeaderCell.Value = "Recast BO after Delay (sec)";
dataGridViewAdvanced.Rows.Add();
dataGridViewAdvanced.Rows[dataGridViewAdvanced.Rows.Count - 1].Cells[0].Value = CharConfig.TownSwitchAreaDelay;
dataGridViewAdvanced.Rows[RowsIndex++].HeaderCell.Value = "Town Switch Area Delay (sec)";
@ -93,13 +93,16 @@ public partial class FormAdvancedSettings : Form
dataGridViewAdvanced.Rows[RowsIndex++].HeaderCell.Value = "Player MaxHP Check Delay (ms)";
dataGridViewAdvanced.Rows.Add();
dataGridViewAdvanced.Rows[dataGridViewAdvanced.Rows.Count - 1].Cells[0].Value = CharConfig.LeechEnterTPDelay;
dataGridViewAdvanced.Rows[RowsIndex++].HeaderCell.Value = "Leech Enter TP Delay (ms*10)";
dataGridViewAdvanced.Rows[RowsIndex++].HeaderCell.Value = "Leech Games Enter TP Delay (ms*10)";
dataGridViewAdvanced.Rows.Add();
dataGridViewAdvanced.Rows[dataGridViewAdvanced.Rows.Count - 1].Cells[0].Value = CharConfig.MephistoRedPortalEnterDelay;
dataGridViewAdvanced.Rows[RowsIndex++].HeaderCell.Value = "Mephisto Red Portal Enter Delay (ms*10)";
dataGridViewAdvanced.Rows[RowsIndex++].HeaderCell.Value = "Mephisto Ending Red Portal Delay (ms*10)";
dataGridViewAdvanced.Rows.Add();
dataGridViewAdvanced.Rows[dataGridViewAdvanced.Rows.Count - 1].Cells[0].Value = CharConfig.CubeItemPlaceDelay;
dataGridViewAdvanced.Rows[RowsIndex++].HeaderCell.Value = "Cube Item Place Delay (ms*10)";
dataGridViewAdvanced.Rows[RowsIndex++].HeaderCell.Value = "Cube Item Placing Delay (ms*10)";
dataGridViewAdvanced.Rows.Add();
dataGridViewAdvanced.Rows[dataGridViewAdvanced.Rows.Count - 1].Cells[0].Value = CharConfig.CubeItemPlaceDelay;
dataGridViewAdvanced.Rows[RowsIndex++].HeaderCell.Value = "Create New Game Wait Delay (ms*10)";
}
public void SaveSettings()
@ -130,6 +133,7 @@ public partial class FormAdvancedSettings : Form
CharConfig.LeechEnterTPDelay = int.Parse(dataGridViewAdvanced.Rows[RowsIndex++].Cells[0].Value.ToString());
CharConfig.MephistoRedPortalEnterDelay = int.Parse(dataGridViewAdvanced.Rows[RowsIndex++].Cells[0].Value.ToString());
CharConfig.CubeItemPlaceDelay = int.Parse(dataGridViewAdvanced.Rows[RowsIndex++].Cells[0].Value.ToString());
CharConfig.CreateGameWaitDelay = int.Parse(dataGridViewAdvanced.Rows[RowsIndex++].Cells[0].Value.ToString());
}
private void FormAdvancedSettings_FormClosing(object sender, FormClosingEventArgs e)

420
FormSettings.Designer.cs generated
View File

@ -31,45 +31,50 @@ partial class FormSettings
System.Windows.Forms.ListViewItem listViewItem1 = new System.Windows.Forms.ListViewItem("Maphack ONLY (no script running)");
System.Windows.Forms.ListViewItem listViewItem2 = new System.Windows.Forms.ListViewItem("Item Grab ONLY");
System.Windows.Forms.ListViewItem listViewItem3 = new System.Windows.Forms.ListViewItem("Maphack & Item Grab ONLY");
System.Windows.Forms.ListViewItem listViewItem4 = new System.Windows.Forms.ListViewItem("Cows");
System.Windows.Forms.ListViewItem listViewItem5 = new System.Windows.Forms.ListViewItem("Countess");
System.Windows.Forms.ListViewItem listViewItem6 = new System.Windows.Forms.ListViewItem("Andariel");
System.Windows.Forms.ListViewItem listViewItem7 = new System.Windows.Forms.ListViewItem("Summoner");
System.Windows.Forms.ListViewItem listViewItem8 = new System.Windows.Forms.ListViewItem("Duriel");
System.Windows.Forms.ListViewItem listViewItem9 = new System.Windows.Forms.ListViewItem("Lower Kurast (Chests)");
System.Windows.Forms.ListViewItem listViewItem10 = new System.Windows.Forms.ListViewItem("Act3 Sewers (Chests)");
System.Windows.Forms.ListViewItem listViewItem11 = new System.Windows.Forms.ListViewItem("Upper Kurast (Chests)");
System.Windows.Forms.ListViewItem listViewItem12 = new System.Windows.Forms.ListViewItem("Travincal");
System.Windows.Forms.ListViewItem listViewItem13 = new System.Windows.Forms.ListViewItem("Mephisto");
System.Windows.Forms.ListViewItem listViewItem14 = new System.Windows.Forms.ListViewItem("Chaos");
System.Windows.Forms.ListViewItem listViewItem15 = new System.Windows.Forms.ListViewItem("Chaos Leech");
System.Windows.Forms.ListViewItem listViewItem16 = new System.Windows.Forms.ListViewItem("Eldritch");
System.Windows.Forms.ListViewItem listViewItem17 = new System.Windows.Forms.ListViewItem("Shenk");
System.Windows.Forms.ListViewItem listViewItem18 = new System.Windows.Forms.ListViewItem("Frozenstein (Anya)");
System.Windows.Forms.ListViewItem listViewItem19 = new System.Windows.Forms.ListViewItem("Pindleskin");
System.Windows.Forms.ListViewItem listViewItem20 = new System.Windows.Forms.ListViewItem("Nihlatak");
System.Windows.Forms.ListViewItem listViewItem21 = new System.Windows.Forms.ListViewItem("Baal");
System.Windows.Forms.ListViewItem listViewItem22 = new System.Windows.Forms.ListViewItem("Baal Leech");
System.Windows.Forms.ListViewItem listViewItem23 = new System.Windows.Forms.ListViewItem("Terror Zones");
System.Windows.Forms.ListViewItem listViewItem24 = new System.Windows.Forms.ListViewItem("Waypoint Taker");
System.Windows.Forms.ListViewItem listViewItem25 = new System.Windows.Forms.ListViewItem("Dark Wood");
System.Windows.Forms.ListViewItem listViewItem26 = new System.Windows.Forms.ListViewItem("Tristram");
System.Windows.Forms.ListViewItem listViewItem27 = new System.Windows.Forms.ListViewItem("Andariel");
System.Windows.Forms.ListViewItem listViewItem28 = new System.Windows.Forms.ListViewItem("Radament");
System.Windows.Forms.ListViewItem listViewItem29 = new System.Windows.Forms.ListViewItem("Hall of the Dead (Cube)");
System.Windows.Forms.ListViewItem listViewItem30 = new System.Windows.Forms.ListViewItem("Far Oasis (Staff)");
System.Windows.Forms.ListViewItem listViewItem31 = new System.Windows.Forms.ListViewItem("Lost City (Ammy)");
System.Windows.Forms.ListViewItem listViewItem32 = new System.Windows.Forms.ListViewItem("Summoner");
System.Windows.Forms.ListViewItem listViewItem33 = new System.Windows.Forms.ListViewItem("Duriel");
System.Windows.Forms.ListViewItem listViewItem34 = new System.Windows.Forms.ListViewItem("Kahlim Eye");
System.Windows.Forms.ListViewItem listViewItem35 = new System.Windows.Forms.ListViewItem("Kahlim Brain");
System.Windows.Forms.ListViewItem listViewItem36 = new System.Windows.Forms.ListViewItem("Kahlim Heart");
System.Windows.Forms.ListViewItem listViewItem37 = new System.Windows.Forms.ListViewItem("Travincal");
System.Windows.Forms.ListViewItem listViewItem38 = new System.Windows.Forms.ListViewItem("Mephisto");
System.Windows.Forms.ListViewItem listViewItem39 = new System.Windows.Forms.ListViewItem("Chaos");
System.Windows.Forms.ListViewItem listViewItem40 = new System.Windows.Forms.ListViewItem("Anya");
System.Windows.Forms.ListViewItem listViewItem41 = new System.Windows.Forms.ListViewItem("Ancients");
System.Windows.Forms.ListViewItem listViewItem42 = new System.Windows.Forms.ListViewItem("Baal");
System.Windows.Forms.ListViewItem listViewItem4 = new System.Windows.Forms.ListViewItem("ShopBot");
System.Windows.Forms.ListViewItem listViewItem5 = new System.Windows.Forms.ListViewItem("Mausoleum");
System.Windows.Forms.ListViewItem listViewItem6 = new System.Windows.Forms.ListViewItem("Crypt");
System.Windows.Forms.ListViewItem listViewItem7 = new System.Windows.Forms.ListViewItem("Pit");
System.Windows.Forms.ListViewItem listViewItem8 = new System.Windows.Forms.ListViewItem("Cows");
System.Windows.Forms.ListViewItem listViewItem9 = new System.Windows.Forms.ListViewItem("Countess");
System.Windows.Forms.ListViewItem listViewItem10 = new System.Windows.Forms.ListViewItem("Andariel");
System.Windows.Forms.ListViewItem listViewItem11 = new System.Windows.Forms.ListViewItem("Summoner");
System.Windows.Forms.ListViewItem listViewItem12 = new System.Windows.Forms.ListViewItem("Duriel");
System.Windows.Forms.ListViewItem listViewItem13 = new System.Windows.Forms.ListViewItem("Arachnid Lair");
System.Windows.Forms.ListViewItem listViewItem14 = new System.Windows.Forms.ListViewItem("Lower Kurast (Chests)");
System.Windows.Forms.ListViewItem listViewItem15 = new System.Windows.Forms.ListViewItem("Act3 Sewers (Chests)");
System.Windows.Forms.ListViewItem listViewItem16 = new System.Windows.Forms.ListViewItem("Upper Kurast (Chests)");
System.Windows.Forms.ListViewItem listViewItem17 = new System.Windows.Forms.ListViewItem("Travincal");
System.Windows.Forms.ListViewItem listViewItem18 = new System.Windows.Forms.ListViewItem("Mephisto");
System.Windows.Forms.ListViewItem listViewItem19 = new System.Windows.Forms.ListViewItem("Chaos");
System.Windows.Forms.ListViewItem listViewItem20 = new System.Windows.Forms.ListViewItem("Chaos Leech");
System.Windows.Forms.ListViewItem listViewItem21 = new System.Windows.Forms.ListViewItem("Eldritch");
System.Windows.Forms.ListViewItem listViewItem22 = new System.Windows.Forms.ListViewItem("Shenk");
System.Windows.Forms.ListViewItem listViewItem23 = new System.Windows.Forms.ListViewItem("Frozenstein (Anya)");
System.Windows.Forms.ListViewItem listViewItem24 = new System.Windows.Forms.ListViewItem("Pindleskin");
System.Windows.Forms.ListViewItem listViewItem25 = new System.Windows.Forms.ListViewItem("Nihlatak");
System.Windows.Forms.ListViewItem listViewItem26 = new System.Windows.Forms.ListViewItem("Baal");
System.Windows.Forms.ListViewItem listViewItem27 = new System.Windows.Forms.ListViewItem("Baal Leech");
System.Windows.Forms.ListViewItem listViewItem28 = new System.Windows.Forms.ListViewItem("Terror Zones");
System.Windows.Forms.ListViewItem listViewItem29 = new System.Windows.Forms.ListViewItem("Waypoint Taker");
System.Windows.Forms.ListViewItem listViewItem30 = new System.Windows.Forms.ListViewItem("Dark Wood");
System.Windows.Forms.ListViewItem listViewItem31 = new System.Windows.Forms.ListViewItem("Tristram");
System.Windows.Forms.ListViewItem listViewItem32 = new System.Windows.Forms.ListViewItem("Andariel");
System.Windows.Forms.ListViewItem listViewItem33 = new System.Windows.Forms.ListViewItem("Radament");
System.Windows.Forms.ListViewItem listViewItem34 = new System.Windows.Forms.ListViewItem("Hall of the Dead (Cube)");
System.Windows.Forms.ListViewItem listViewItem35 = new System.Windows.Forms.ListViewItem("Far Oasis (Staff)");
System.Windows.Forms.ListViewItem listViewItem36 = new System.Windows.Forms.ListViewItem("Lost City (Ammy)");
System.Windows.Forms.ListViewItem listViewItem37 = new System.Windows.Forms.ListViewItem("Summoner");
System.Windows.Forms.ListViewItem listViewItem38 = new System.Windows.Forms.ListViewItem("Duriel");
System.Windows.Forms.ListViewItem listViewItem39 = new System.Windows.Forms.ListViewItem("Kahlim Eye");
System.Windows.Forms.ListViewItem listViewItem40 = new System.Windows.Forms.ListViewItem("Kahlim Brain");
System.Windows.Forms.ListViewItem listViewItem41 = new System.Windows.Forms.ListViewItem("Kahlim Heart");
System.Windows.Forms.ListViewItem listViewItem42 = new System.Windows.Forms.ListViewItem("Travincal");
System.Windows.Forms.ListViewItem listViewItem43 = new System.Windows.Forms.ListViewItem("Mephisto");
System.Windows.Forms.ListViewItem listViewItem44 = new System.Windows.Forms.ListViewItem("Chaos");
System.Windows.Forms.ListViewItem listViewItem45 = new System.Windows.Forms.ListViewItem("Anya");
System.Windows.Forms.ListViewItem listViewItem46 = new System.Windows.Forms.ListViewItem("Ancients");
System.Windows.Forms.ListViewItem listViewItem47 = new System.Windows.Forms.ListViewItem("Baal");
System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(FormSettings));
this.listViewRunScripts = new System.Windows.Forms.ListView();
this.columnHeader3 = ((System.Windows.Forms.ColumnHeader)(new System.Windows.Forms.ColumnHeader()));
@ -125,6 +130,16 @@ partial class FormSettings
this.textBox2LeechName = new System.Windows.Forms.TextBox();
this.textBoxAvoidWords = new System.Windows.Forms.TextBox();
this.button4 = new System.Windows.Forms.Button();
this.checkBoxFastChaos = new System.Windows.Forms.CheckBox();
this.buttonOverlaySettings = new System.Windows.Forms.Button();
this.buttonReload = new System.Windows.Forms.Button();
this.button2 = new System.Windows.Forms.Button();
this.button5 = new System.Windows.Forms.Button();
this.checkBoxBaalLeechFightMobs = new System.Windows.Forms.CheckBox();
this.button6 = new System.Windows.Forms.Button();
this.buttonApplyShopBot = new System.Windows.Forms.Button();
this.numericUpDownMaxShopCount = new System.Windows.Forms.NumericUpDown();
this.numericUpDownShopTownAct = new System.Windows.Forms.NumericUpDown();
this.panelBaalFeature = new System.Windows.Forms.Panel();
this.groupBox2 = new System.Windows.Forms.GroupBox();
this.listViewBaalLeaveOnMobs = new System.Windows.Forms.ListView();
@ -145,27 +160,27 @@ partial class FormSettings
this.label19 = new System.Windows.Forms.Label();
this.panelChaosFeature = new System.Windows.Forms.Panel();
this.label18 = new System.Windows.Forms.Label();
this.checkBoxFastChaos = new System.Windows.Forms.CheckBox();
this.buttonOverlaySettings = new System.Windows.Forms.Button();
this.buttonReload = new System.Windows.Forms.Button();
this.button2 = new System.Windows.Forms.Button();
this.button5 = new System.Windows.Forms.Button();
this.panelBaalLeech = new System.Windows.Forms.Panel();
this.checkBoxBaalLeechFightMobs = new System.Windows.Forms.CheckBox();
this.label20 = new System.Windows.Forms.Label();
this.button6 = new System.Windows.Forms.Button();
this.panelShopBot = new System.Windows.Forms.Panel();
this.label23 = new System.Windows.Forms.Label();
this.label22 = new System.Windows.Forms.Label();
this.label21 = new System.Windows.Forms.Label();
this.groupBox1.SuspendLayout();
((System.ComponentModel.ISupportInitialize)(this.numericUpDownRunNumber)).BeginInit();
((System.ComponentModel.ISupportInitialize)(this.numericUpDownMaxTime)).BeginInit();
((System.ComponentModel.ISupportInitialize)(this.numericUpDownBaalLeaveMobsCount)).BeginInit();
((System.ComponentModel.ISupportInitialize)(this.numericUpDownBaalMobID)).BeginInit();
((System.ComponentModel.ISupportInitialize)(this.numericUpDownBaalMobCount)).BeginInit();
((System.ComponentModel.ISupportInitialize)(this.numericUpDownMaxShopCount)).BeginInit();
((System.ComponentModel.ISupportInitialize)(this.numericUpDownShopTownAct)).BeginInit();
this.panelBaalFeature.SuspendLayout();
this.groupBox2.SuspendLayout();
this.panelOverlay.SuspendLayout();
this.groupBoxSearch.SuspendLayout();
this.panelChaosFeature.SuspendLayout();
this.panelBaalLeech.SuspendLayout();
this.panelShopBot.SuspendLayout();
this.SuspendLayout();
//
// listViewRunScripts
@ -180,12 +195,12 @@ partial class FormSettings
listViewItem2.StateImageIndex = 0;
listViewItem3.StateImageIndex = 0;
listViewItem4.StateImageIndex = 0;
listViewItem5.Checked = true;
listViewItem5.StateImageIndex = 1;
listViewItem5.StateImageIndex = 0;
listViewItem6.StateImageIndex = 0;
listViewItem7.StateImageIndex = 0;
listViewItem8.StateImageIndex = 0;
listViewItem9.StateImageIndex = 0;
listViewItem9.Checked = true;
listViewItem9.StateImageIndex = 1;
listViewItem10.StateImageIndex = 0;
listViewItem11.StateImageIndex = 0;
listViewItem12.StateImageIndex = 0;
@ -201,6 +216,11 @@ partial class FormSettings
listViewItem22.StateImageIndex = 0;
listViewItem23.StateImageIndex = 0;
listViewItem24.StateImageIndex = 0;
listViewItem25.StateImageIndex = 0;
listViewItem26.StateImageIndex = 0;
listViewItem27.StateImageIndex = 0;
listViewItem28.StateImageIndex = 0;
listViewItem29.StateImageIndex = 0;
this.listViewRunScripts.Items.AddRange(new System.Windows.Forms.ListViewItem[] {
listViewItem1,
listViewItem2,
@ -225,7 +245,12 @@ partial class FormSettings
listViewItem21,
listViewItem22,
listViewItem23,
listViewItem24});
listViewItem24,
listViewItem25,
listViewItem26,
listViewItem27,
listViewItem28,
listViewItem29});
this.listViewRunScripts.Location = new System.Drawing.Point(12, 168);
this.listViewRunScripts.Name = "listViewRunScripts";
this.listViewRunScripts.Size = new System.Drawing.Size(225, 276);
@ -448,11 +473,6 @@ partial class FormSettings
this.listViewRush.FullRowSelect = true;
this.listViewRush.GridLines = true;
this.listViewRush.HideSelection = false;
listViewItem25.StateImageIndex = 0;
listViewItem26.StateImageIndex = 0;
listViewItem27.StateImageIndex = 0;
listViewItem28.StateImageIndex = 0;
listViewItem29.StateImageIndex = 0;
listViewItem30.StateImageIndex = 0;
listViewItem31.StateImageIndex = 0;
listViewItem32.StateImageIndex = 0;
@ -466,12 +486,12 @@ partial class FormSettings
listViewItem40.StateImageIndex = 0;
listViewItem41.StateImageIndex = 0;
listViewItem42.StateImageIndex = 0;
listViewItem43.StateImageIndex = 0;
listViewItem44.StateImageIndex = 0;
listViewItem45.StateImageIndex = 0;
listViewItem46.StateImageIndex = 0;
listViewItem47.StateImageIndex = 0;
this.listViewRush.Items.AddRange(new System.Windows.Forms.ListViewItem[] {
listViewItem25,
listViewItem26,
listViewItem27,
listViewItem28,
listViewItem29,
listViewItem30,
listViewItem31,
listViewItem32,
@ -484,7 +504,12 @@ partial class FormSettings
listViewItem39,
listViewItem40,
listViewItem41,
listViewItem42});
listViewItem42,
listViewItem43,
listViewItem44,
listViewItem45,
listViewItem46,
listViewItem47});
this.listViewRush.Location = new System.Drawing.Point(279, 168);
this.listViewRush.Name = "listViewRush";
this.listViewRush.Size = new System.Drawing.Size(225, 270);
@ -834,6 +859,142 @@ partial class FormSettings
this.button4.UseVisualStyleBackColor = true;
this.button4.Click += new System.EventHandler(this.button4_Click);
//
// checkBoxFastChaos
//
this.checkBoxFastChaos.AutoSize = true;
this.checkBoxFastChaos.Location = new System.Drawing.Point(14, 33);
this.checkBoxFastChaos.Name = "checkBoxFastChaos";
this.checkBoxFastChaos.Size = new System.Drawing.Size(79, 17);
this.checkBoxFastChaos.TabIndex = 12;
this.checkBoxFastChaos.Text = "Fast Chaos";
this.toolTip1.SetToolTip(this.checkBoxFastChaos, "Enable this to perform a Fast Chaos (Only Kill Seals Boss)");
this.checkBoxFastChaos.UseVisualStyleBackColor = true;
//
// buttonOverlaySettings
//
this.buttonOverlaySettings.Image = global::app.Properties.Resources.Application;
this.buttonOverlaySettings.Location = new System.Drawing.Point(172, 595);
this.buttonOverlaySettings.Name = "buttonOverlaySettings";
this.buttonOverlaySettings.Size = new System.Drawing.Size(31, 25);
this.buttonOverlaySettings.TabIndex = 9;
this.toolTip1.SetToolTip(this.buttonOverlaySettings, "Edit Overlay Settings");
this.buttonOverlaySettings.UseVisualStyleBackColor = true;
this.buttonOverlaySettings.Click += new System.EventHandler(this.buttonOverlaySettings_Click);
//
// buttonReload
//
this.buttonReload.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.buttonReload.ForeColor = System.Drawing.SystemColors.ControlText;
this.buttonReload.Image = global::app.Properties.Resources.Load;
this.buttonReload.Location = new System.Drawing.Point(12, 6);
this.buttonReload.Name = "buttonReload";
this.buttonReload.Size = new System.Drawing.Size(34, 29);
this.buttonReload.TabIndex = 17;
this.toolTip1.SetToolTip(this.buttonReload, "Load/Import from a previous Settings File");
this.buttonReload.UseVisualStyleBackColor = true;
this.buttonReload.Click += new System.EventHandler(this.buttonReload_Click);
//
// button2
//
this.button2.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.button2.ForeColor = System.Drawing.SystemColors.ControlText;
this.button2.Image = global::app.Properties.Resources.Save;
this.button2.Location = new System.Drawing.Point(189, 6);
this.button2.Name = "button2";
this.button2.Size = new System.Drawing.Size(48, 29);
this.button2.TabIndex = 13;
this.toolTip1.SetToolTip(this.button2, "Save current Settings");
this.button2.UseVisualStyleBackColor = true;
this.button2.Click += new System.EventHandler(this.button2_Click);
//
// button5
//
this.button5.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.button5.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(0)))), ((int)(((byte)(64)))), ((int)(((byte)(0)))));
this.button5.Location = new System.Drawing.Point(53, 6);
this.button5.Name = "button5";
this.button5.Size = new System.Drawing.Size(131, 29);
this.button5.TabIndex = 29;
this.button5.Text = "Advanced Settings";
this.toolTip1.SetToolTip(this.button5, "Load/Import from a previous Settings File");
this.button5.UseVisualStyleBackColor = true;
this.button5.Click += new System.EventHandler(this.button5_Click);
//
// checkBoxBaalLeechFightMobs
//
this.checkBoxBaalLeechFightMobs.AutoSize = true;
this.checkBoxBaalLeechFightMobs.Location = new System.Drawing.Point(14, 33);
this.checkBoxBaalLeechFightMobs.Name = "checkBoxBaalLeechFightMobs";
this.checkBoxBaalLeechFightMobs.Size = new System.Drawing.Size(78, 17);
this.checkBoxBaalLeechFightMobs.TabIndex = 12;
this.checkBoxBaalLeechFightMobs.Text = "Fight Mobs";
this.toolTip1.SetToolTip(this.checkBoxBaalLeechFightMobs, "Enable this to fight mobs during the leech, if set to false it will fight mobs on" +
"ly nearby the leech spot\r\n");
this.checkBoxBaalLeechFightMobs.UseVisualStyleBackColor = true;
//
// button6
//
this.button6.Location = new System.Drawing.Point(61, 82);
this.button6.Name = "button6";
this.button6.Size = new System.Drawing.Size(75, 23);
this.button6.TabIndex = 12;
this.button6.Text = "Apply";
this.toolTip1.SetToolTip(this.button6, "Apply and Leave this menu");
this.button6.UseVisualStyleBackColor = true;
this.button6.Click += new System.EventHandler(this.button6_Click);
//
// buttonApplyShopBot
//
this.buttonApplyShopBot.Location = new System.Drawing.Point(61, 82);
this.buttonApplyShopBot.Name = "buttonApplyShopBot";
this.buttonApplyShopBot.Size = new System.Drawing.Size(75, 23);
this.buttonApplyShopBot.TabIndex = 12;
this.buttonApplyShopBot.Text = "Apply";
this.toolTip1.SetToolTip(this.buttonApplyShopBot, "Apply and Leave this menu");
this.buttonApplyShopBot.UseVisualStyleBackColor = true;
this.buttonApplyShopBot.Click += new System.EventHandler(this.buttonApplyShopBot_Click);
//
// numericUpDownMaxShopCount
//
this.numericUpDownMaxShopCount.Location = new System.Drawing.Point(107, 33);
this.numericUpDownMaxShopCount.Maximum = new decimal(new int[] {
1000,
0,
0,
0});
this.numericUpDownMaxShopCount.Minimum = new decimal(new int[] {
2,
0,
0,
-2147483648});
this.numericUpDownMaxShopCount.Name = "numericUpDownMaxShopCount";
this.numericUpDownMaxShopCount.Size = new System.Drawing.Size(51, 20);
this.numericUpDownMaxShopCount.TabIndex = 13;
this.toolTip1.SetToolTip(this.numericUpDownMaxShopCount, "Set the Bot go to Shop Count, if at -1 or 0, It will Shop Infinitly");
//
// numericUpDownShopTownAct
//
this.numericUpDownShopTownAct.Location = new System.Drawing.Point(107, 56);
this.numericUpDownShopTownAct.Maximum = new decimal(new int[] {
5,
0,
0,
0});
this.numericUpDownShopTownAct.Minimum = new decimal(new int[] {
1,
0,
0,
0});
this.numericUpDownShopTownAct.Name = "numericUpDownShopTownAct";
this.numericUpDownShopTownAct.Size = new System.Drawing.Size(51, 20);
this.numericUpDownShopTownAct.TabIndex = 15;
this.toolTip1.SetToolTip(this.numericUpDownShopTownAct, "Set the Town act of which of want to shop bot to run for");
this.numericUpDownShopTownAct.Value = new decimal(new int[] {
1,
0,
0,
0});
//
// panelBaalFeature
//
this.panelBaalFeature.Controls.Add(this.groupBox2);
@ -1048,67 +1209,6 @@ partial class FormSettings
this.label18.TabIndex = 12;
this.label18.Text = "Chaos Run Features";
//
// checkBoxFastChaos
//
this.checkBoxFastChaos.AutoSize = true;
this.checkBoxFastChaos.Location = new System.Drawing.Point(14, 33);
this.checkBoxFastChaos.Name = "checkBoxFastChaos";
this.checkBoxFastChaos.Size = new System.Drawing.Size(79, 17);
this.checkBoxFastChaos.TabIndex = 12;
this.checkBoxFastChaos.Text = "Fast Chaos";
this.toolTip1.SetToolTip(this.checkBoxFastChaos, "Enable this to perform a Fast Chaos (Only Kill Seals Boss)");
this.checkBoxFastChaos.UseVisualStyleBackColor = true;
//
// buttonOverlaySettings
//
this.buttonOverlaySettings.Image = global::app.Properties.Resources.Application;
this.buttonOverlaySettings.Location = new System.Drawing.Point(172, 595);
this.buttonOverlaySettings.Name = "buttonOverlaySettings";
this.buttonOverlaySettings.Size = new System.Drawing.Size(31, 25);
this.buttonOverlaySettings.TabIndex = 9;
this.toolTip1.SetToolTip(this.buttonOverlaySettings, "Edit Overlay Settings");
this.buttonOverlaySettings.UseVisualStyleBackColor = true;
this.buttonOverlaySettings.Click += new System.EventHandler(this.buttonOverlaySettings_Click);
//
// buttonReload
//
this.buttonReload.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.buttonReload.ForeColor = System.Drawing.SystemColors.ControlText;
this.buttonReload.Image = global::app.Properties.Resources.Load;
this.buttonReload.Location = new System.Drawing.Point(12, 6);
this.buttonReload.Name = "buttonReload";
this.buttonReload.Size = new System.Drawing.Size(34, 29);
this.buttonReload.TabIndex = 17;
this.toolTip1.SetToolTip(this.buttonReload, "Load/Import from a previous Settings File");
this.buttonReload.UseVisualStyleBackColor = true;
this.buttonReload.Click += new System.EventHandler(this.buttonReload_Click);
//
// button2
//
this.button2.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.button2.ForeColor = System.Drawing.SystemColors.ControlText;
this.button2.Image = global::app.Properties.Resources.Save;
this.button2.Location = new System.Drawing.Point(189, 6);
this.button2.Name = "button2";
this.button2.Size = new System.Drawing.Size(48, 29);
this.button2.TabIndex = 13;
this.toolTip1.SetToolTip(this.button2, "Save current Settings");
this.button2.UseVisualStyleBackColor = true;
this.button2.Click += new System.EventHandler(this.button2_Click);
//
// button5
//
this.button5.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.button5.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(0)))), ((int)(((byte)(64)))), ((int)(((byte)(0)))));
this.button5.Location = new System.Drawing.Point(53, 6);
this.button5.Name = "button5";
this.button5.Size = new System.Drawing.Size(131, 29);
this.button5.TabIndex = 29;
this.button5.Text = "Advanced Settings";
this.toolTip1.SetToolTip(this.button5, "Load/Import from a previous Settings File");
this.button5.UseVisualStyleBackColor = true;
this.button5.Click += new System.EventHandler(this.button5_Click);
//
// panelBaalLeech
//
this.panelBaalLeech.Controls.Add(this.checkBoxBaalLeechFightMobs);
@ -1120,18 +1220,6 @@ partial class FormSettings
this.panelBaalLeech.TabIndex = 23;
this.panelBaalLeech.Visible = false;
//
// checkBoxBaalLeechFightMobs
//
this.checkBoxBaalLeechFightMobs.AutoSize = true;
this.checkBoxBaalLeechFightMobs.Location = new System.Drawing.Point(14, 33);
this.checkBoxBaalLeechFightMobs.Name = "checkBoxBaalLeechFightMobs";
this.checkBoxBaalLeechFightMobs.Size = new System.Drawing.Size(78, 17);
this.checkBoxBaalLeechFightMobs.TabIndex = 12;
this.checkBoxBaalLeechFightMobs.Text = "Fight Mobs";
this.toolTip1.SetToolTip(this.checkBoxBaalLeechFightMobs, "Enable this to fight mobs during the leech, if set to false it will fight mobs on" +
"ly nearby the leech spot\r\n");
this.checkBoxBaalLeechFightMobs.UseVisualStyleBackColor = true;
//
// label20
//
this.label20.AutoSize = true;
@ -1143,23 +1231,56 @@ partial class FormSettings
this.label20.TabIndex = 12;
this.label20.Text = "Baal Leech Run Features";
//
// button6
// panelShopBot
//
this.button6.Location = new System.Drawing.Point(61, 82);
this.button6.Name = "button6";
this.button6.Size = new System.Drawing.Size(75, 23);
this.button6.TabIndex = 12;
this.button6.Text = "Apply";
this.toolTip1.SetToolTip(this.button6, "Apply and Leave this menu");
this.button6.UseVisualStyleBackColor = true;
this.button6.Click += new System.EventHandler(this.button6_Click);
this.panelShopBot.Controls.Add(this.numericUpDownShopTownAct);
this.panelShopBot.Controls.Add(this.label23);
this.panelShopBot.Controls.Add(this.numericUpDownMaxShopCount);
this.panelShopBot.Controls.Add(this.label22);
this.panelShopBot.Controls.Add(this.label21);
this.panelShopBot.Controls.Add(this.buttonApplyShopBot);
this.panelShopBot.Location = new System.Drawing.Point(732, 12);
this.panelShopBot.Name = "panelShopBot";
this.panelShopBot.Size = new System.Drawing.Size(203, 114);
this.panelShopBot.TabIndex = 24;
this.panelShopBot.Visible = false;
//
// label23
//
this.label23.AutoSize = true;
this.label23.Location = new System.Drawing.Point(14, 59);
this.label23.Name = "label23";
this.label23.Size = new System.Drawing.Size(56, 13);
this.label23.TabIndex = 14;
this.label23.Text = "Town Act:";
//
// label22
//
this.label22.AutoSize = true;
this.label22.Location = new System.Drawing.Point(14, 36);
this.label22.Name = "label22";
this.label22.Size = new System.Drawing.Size(89, 13);
this.label22.TabIndex = 12;
this.label22.Text = "Max Shop Count:";
//
// label21
//
this.label21.AutoSize = true;
this.label21.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.label21.ForeColor = System.Drawing.Color.Blue;
this.label21.Location = new System.Drawing.Point(34, 11);
this.label21.Name = "label21";
this.label21.Size = new System.Drawing.Size(135, 13);
this.label21.TabIndex = 12;
this.label21.Text = "ShopBot Run Features";
//
// 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(250, 691);
this.ClientSize = new System.Drawing.Size(251, 691);
this.Controls.Add(this.panelShopBot);
this.Controls.Add(this.panelBaalLeech);
this.Controls.Add(this.button5);
this.Controls.Add(this.panelChaosFeature);
@ -1203,6 +1324,8 @@ partial class FormSettings
((System.ComponentModel.ISupportInitialize)(this.numericUpDownBaalLeaveMobsCount)).EndInit();
((System.ComponentModel.ISupportInitialize)(this.numericUpDownBaalMobID)).EndInit();
((System.ComponentModel.ISupportInitialize)(this.numericUpDownBaalMobCount)).EndInit();
((System.ComponentModel.ISupportInitialize)(this.numericUpDownMaxShopCount)).EndInit();
((System.ComponentModel.ISupportInitialize)(this.numericUpDownShopTownAct)).EndInit();
this.panelBaalFeature.ResumeLayout(false);
this.panelBaalFeature.PerformLayout();
this.groupBox2.ResumeLayout(false);
@ -1215,6 +1338,8 @@ partial class FormSettings
this.panelChaosFeature.PerformLayout();
this.panelBaalLeech.ResumeLayout(false);
this.panelBaalLeech.PerformLayout();
this.panelShopBot.ResumeLayout(false);
this.panelShopBot.PerformLayout();
this.ResumeLayout(false);
this.PerformLayout();
@ -1305,4 +1430,11 @@ partial class FormSettings
private System.Windows.Forms.CheckBox checkBoxBaalLeechFightMobs;
private System.Windows.Forms.Label label20;
private System.Windows.Forms.Button button6;
private System.Windows.Forms.Panel panelShopBot;
private System.Windows.Forms.Label label21;
private System.Windows.Forms.Button buttonApplyShopBot;
private System.Windows.Forms.NumericUpDown numericUpDownShopTownAct;
private System.Windows.Forms.Label label23;
private System.Windows.Forms.NumericUpDown numericUpDownMaxShopCount;
private System.Windows.Forms.Label label22;
}

View File

@ -41,6 +41,9 @@ public partial class FormSettings : Form
panelBaalLeech.Visible = false;
panelBaalLeech.Location = new System.Drawing.Point(23, 197);
panelShopBot.Visible = false;
panelShopBot.Location = new System.Drawing.Point(23, 197);
LoadSettings();
}
@ -62,11 +65,16 @@ public partial class FormSettings : Form
listViewRunScripts.Items[CurrI++].Checked = CharConfig.RunMapHackOnly;
listViewRunScripts.Items[CurrI++].Checked = CharConfig.RunItemGrabScriptOnly;
listViewRunScripts.Items[CurrI++].Checked = CharConfig.RunMapHackPickitOnly;
listViewRunScripts.Items[CurrI++].Checked = CharConfig.RunShopBotScript;
listViewRunScripts.Items[CurrI++].Checked = CharConfig.RunMausoleumScript;
listViewRunScripts.Items[CurrI++].Checked = CharConfig.RunCryptScript;
listViewRunScripts.Items[CurrI++].Checked = CharConfig.RunPitScript;
listViewRunScripts.Items[CurrI++].Checked = CharConfig.RunCowsScript;
listViewRunScripts.Items[CurrI++].Checked = CharConfig.RunCountessScript;
listViewRunScripts.Items[CurrI++].Checked = CharConfig.RunAndarielScript;
listViewRunScripts.Items[CurrI++].Checked = CharConfig.RunSummonerScript;
listViewRunScripts.Items[CurrI++].Checked = CharConfig.RunDurielScript;
listViewRunScripts.Items[CurrI++].Checked = CharConfig.RunArachnidScript;
listViewRunScripts.Items[CurrI++].Checked = CharConfig.RunLowerKurastScript;
listViewRunScripts.Items[CurrI++].Checked = CharConfig.RunA3SewersScript;
listViewRunScripts.Items[CurrI++].Checked = CharConfig.RunUpperKurastScript;
@ -115,6 +123,7 @@ public partial class FormSettings : Form
comboBoxDifficulty.SelectedIndex = CharConfig.GameDifficulty;
if (Form1_0.CurrentGameNumber <= 0) Form1_0.CurrentGameNumber = 1;
numericUpDownRunNumber.Value = Form1_0.CurrentGameNumber;
//###################
@ -151,6 +160,10 @@ public partial class FormSettings : Form
checkBoxOverlayShowMH.Checked = Form1_0.overlayForm.ShowMapHackShowLines;
checkBoxOverlayShowUnitsCount.Checked = Form1_0.overlayForm.ShowUnitsScanCount;
//###################
//SHOP BOT
numericUpDownMaxShopCount.Value = Form1_0.ShopBot_0.MaxShopCount;
numericUpDownShopTownAct.Value = Form1_0.ShopBot_0.ShopBotTownAct;
//###################
SetCreateGameGroupbox();
SetRushMenu();
@ -229,6 +242,12 @@ public partial class FormSettings : Form
groupBox1.Visible = true;
groupBoxSearch.Visible = false;
}
if (comboBoxLobby.SelectedIndex == 4)
{
groupBox1.Visible = true;
groupBoxSearch.Visible = false;
}
}
public void SaveSettings()
@ -248,11 +267,16 @@ public partial class FormSettings : Form
CharConfig.RunMapHackOnly = listViewRunScripts.Items[CurrI++].Checked;
CharConfig.RunItemGrabScriptOnly = listViewRunScripts.Items[CurrI++].Checked;
CharConfig.RunMapHackPickitOnly = listViewRunScripts.Items[CurrI++].Checked;
CharConfig.RunShopBotScript = listViewRunScripts.Items[CurrI++].Checked;
CharConfig.RunMausoleumScript = listViewRunScripts.Items[CurrI++].Checked;
CharConfig.RunCryptScript = listViewRunScripts.Items[CurrI++].Checked;
CharConfig.RunPitScript = listViewRunScripts.Items[CurrI++].Checked;
CharConfig.RunCowsScript = listViewRunScripts.Items[CurrI++].Checked;
CharConfig.RunCountessScript = listViewRunScripts.Items[CurrI++].Checked;
CharConfig.RunAndarielScript = listViewRunScripts.Items[CurrI++].Checked;
CharConfig.RunSummonerScript = listViewRunScripts.Items[CurrI++].Checked;
CharConfig.RunDurielScript = listViewRunScripts.Items[CurrI++].Checked;
CharConfig.RunArachnidScript = listViewRunScripts.Items[CurrI++].Checked;
CharConfig.RunLowerKurastScript = listViewRunScripts.Items[CurrI++].Checked;
CharConfig.RunA3SewersScript = listViewRunScripts.Items[CurrI++].Checked;
CharConfig.RunUpperKurastScript = listViewRunScripts.Items[CurrI++].Checked;
@ -361,6 +385,12 @@ public partial class FormSettings : Form
else if (textBoxAvoidWords.Text != "") CharConfig.BaalSearchAvoidWords.Add(textBoxAvoidWords.Text);
}
CharConfig.SearchLeecherName = textBox2LeechName.Text;
//###################
//SHOP BOT
Form1_0.ShopBot_0.MaxShopCount = int.Parse(numericUpDownMaxShopCount.Value.ToString());
Form1_0.ShopBot_0.ShopBotTownAct = int.Parse(numericUpDownShopTownAct.Value.ToString());
//###################
}
private void button1_Click(object sender, EventArgs e)
@ -421,6 +451,10 @@ public partial class FormSettings : Form
{
panelChaosFeature.Visible = true;
}
else if (listViewRunScripts.SelectedItems[0].Text == "ShopBot")
{
panelShopBot.Visible = true;
}
else if (listViewRunScripts.SelectedItems[0].Text == "Maphack ONLY (no script running)")
{
panelOverlay.Visible = true;
@ -493,4 +527,9 @@ public partial class FormSettings : Form
{
panelBaalLeech.Visible = false;
}
private void buttonApplyShopBot_Click(object sender, EventArgs e)
{
panelShopBot.Visible = false;
}
}

View File

@ -310,7 +310,8 @@ public class Battle
Form1_0.KeyMouse_0.PressKey(CharConfig.KeySwapWeapon);
Form1_0.WaitDelay(15);
Form1_0.KeyMouse_0.PressKey(CharConfig.KeySkillBattleOrder);
//Form1_0.KeyMouse_0.PressKey(CharConfig.KeySkillBattleOrder);
Form1_0.KeyMouse_0.PressKey(CharConfig.KeySkillBattleCommand);
Form1_0.WaitDelay(10);
/*Form1_0.KeyMouse_0.MouseClicc(1025, 1025);
Form1_0.WaitDelay(5);
@ -319,11 +320,13 @@ public class Battle
Form1_0.PlayerScan_0.GetPositions();
//press W again to switch weapon again
if (Form1_0.PlayerScan_0.RightSkill != Enums.Skill.BattleOrders)
//if (Form1_0.PlayerScan_0.RightSkill != Enums.Skill.BattleOrders)
if (Form1_0.PlayerScan_0.RightSkill != Enums.Skill.BattleCommand)
{
Form1_0.KeyMouse_0.PressKey(CharConfig.KeySwapWeapon);
Form1_0.WaitDelay(15);
Form1_0.KeyMouse_0.PressKey(CharConfig.KeySkillBattleOrder);
//Form1_0.KeyMouse_0.PressKey(CharConfig.KeySkillBattleOrder);
Form1_0.KeyMouse_0.PressKey(CharConfig.KeySkillBattleCommand);
Form1_0.WaitDelay(10);
/*Form1_0.KeyMouse_0.MouseClicc(1025, 1025);
Form1_0.WaitDelay(5);
@ -336,7 +339,8 @@ public class Battle
Form1_0.WaitDelay(35);
//select battle command
Form1_0.KeyMouse_0.PressKey(CharConfig.KeySkillBattleCommand);
//Form1_0.KeyMouse_0.PressKey(CharConfig.KeySkillBattleCommand);
Form1_0.KeyMouse_0.PressKey(CharConfig.KeySkillBattleOrder);
Form1_0.WaitDelay(10);
/*Form1_0.KeyMouse_0.MouseClicc(1025, 1025);
Form1_0.WaitDelay(5);

View File

@ -47,7 +47,7 @@ public class Gamble
int ThisStartCount = Form1_0.ItemsStruc_0.ItemsInInventory;
string GambleThisItem = CharConfig.GambleItems[GambleType];
if (Form1_0.ItemsStruc_0.GetShopItem(GambleThisItem, true))
if (Form1_0.ItemsStruc_0.GetShopItem(GambleThisItem))
{
Dictionary<string, int> itemScreenPos = Form1_0.Shop_0.ConvertShopLocToScreenPos(Form1_0.ItemsStruc_0.itemx, Form1_0.ItemsStruc_0.itemy);
Form1_0.KeyMouse_0.MouseCliccRight(itemScreenPos["x"], itemScreenPos["y"]);

View File

@ -17,6 +17,7 @@ public class KeyMouse
public int ProcessingDelay = 1;
private const int WH_KEYBOARD_LL = 13;
private const int WH_MOUSE_LL = 14;
public LowLevelKeyboardProc proc;
public IntPtr hookID = IntPtr.Zero;
@ -31,8 +32,27 @@ public class KeyMouse
public const int WM_KEYDOWN = 256;
public const int WM_KEYUP = 257;
[StructLayout(LayoutKind.Sequential)]
private struct POINT
{
public int x;
public int y;
}
[StructLayout(LayoutKind.Sequential)]
private struct MSLLHOOKSTRUCT
{
public POINT pt;
public uint mouseData;
public uint flags;
public uint time;
public IntPtr dwExtraInfo;
}
//###############################################
//###############################################
private delegate IntPtr LowLevelMouseProc(int nCode, IntPtr wParam, IntPtr lParam);
public delegate IntPtr LowLevelKeyboardProc(int nCode, IntPtr wParam, IntPtr lParam);
[DllImport("User32.dll")]
static extern Int32 SendMessage(int hWnd, int Msg, int wParam, IntPtr lParam);
@ -51,24 +71,57 @@ public class KeyMouse
[return: MarshalAs(UnmanagedType.Bool)]
private static extern bool SetCursorPos(int x, int y);
[DllImport("user32.dll", CharSet = CharSet.Auto, SetLastError = true)]
private static extern IntPtr SetWindowsHookEx(int idHook,
LowLevelKeyboardProc lpfn, IntPtr hMod, uint dwThreadId);
private static extern IntPtr SetWindowsHookEx(int idHook, LowLevelKeyboardProc lpfn, IntPtr hMod, uint dwThreadId);
[DllImport("user32.dll", CharSet = CharSet.Auto, SetLastError = true)]
[return: MarshalAs(UnmanagedType.Bool)]
public static extern bool UnhookWindowsHookEx(IntPtr hhk);
[DllImport("user32.dll", CharSet = CharSet.Auto, SetLastError = true)]
private static extern IntPtr CallNextHookEx(IntPtr hhk, int nCode,
IntPtr wParam, IntPtr lParam);
private static extern IntPtr CallNextHookEx(IntPtr hhk, int nCode, IntPtr wParam, IntPtr lParam);
[DllImport("kernel32.dll", CharSet = CharSet.Auto, SetLastError = true)]
private static extern IntPtr GetModuleHandle(string lpModuleName);
[DllImport("user32.dll", CharSet = CharSet.Auto, SetLastError = true)]
private static extern IntPtr SetWindowsHookEx(int idHook, LowLevelMouseProc lpfn, IntPtr hMod, uint dwThreadId);
[DllImport("user32.dll", SetLastError = true)]
private static extern uint GetWindowThreadProcessId(IntPtr hWnd, out uint processId);
[DllImport("user32.dll")]
private static extern IntPtr GetForegroundWindow();
InputSimulator sim;
/*[DllImport("kernel32.dll", SetLastError = true)]
static extern IntPtr OpenProcess(uint processAccess, bool bInheritHandle, int processId);
[DllImport("kernel32.dll", SetLastError = true)]
static extern IntPtr GetProcAddress(IntPtr hModule, string procName);
[DllImport("kernel32.dll", SetLastError = true)]
static extern IntPtr VirtualAllocEx(IntPtr hProcess, IntPtr lpAddress, uint dwSize, uint flAllocationType, uint flProtect);
[DllImport("kernel32.dll", SetLastError = true)]
static extern bool WriteProcessMemory(IntPtr hProcess, IntPtr lpBaseAddress, byte[] buffer, uint size, out int lpNumberOfBytesWritten);
[DllImport("kernel32.dll")]
static extern IntPtr CreateRemoteThread(IntPtr hProcess, IntPtr lpThreadAttributes, uint dwStackSize, IntPtr lpStartAddress, IntPtr lpParameter, uint dwCreationFlags, out IntPtr lpThreadId);
[DllImport("kernel32.dll")]
static extern bool CloseHandle(IntPtr hObject);
const uint PROCESS_CREATE_THREAD = 0x0002;
const uint PROCESS_QUERY_INFORMATION = 0x0400;
const uint PROCESS_VM_OPERATION = 0x0008;
const uint PROCESS_VM_WRITE = 0x0020;
const uint PROCESS_VM_READ = 0x0010;
const uint MEM_COMMIT = 0x1000;
const uint MEM_RESERVE = 0x2000;
const uint PAGE_READWRITE = 0x04;*/
//###############################################
//###############################################
@ -77,8 +130,72 @@ public class KeyMouse
Form1_0 = form1_1;
sim = new InputSimulator();
// Get the process ID of the target process
/*Process targetProcess = Process.GetProcessesByName("D2R")[0];
int processId = targetProcess.Id;
// Open the target process
IntPtr processHandle = OpenProcess(PROCESS_CREATE_THREAD | PROCESS_QUERY_INFORMATION | PROCESS_VM_OPERATION | PROCESS_VM_WRITE | PROCESS_VM_READ, false, processId);
// Get the address of the SetCursorPos function
IntPtr setCursorPosAddr = GetProcAddress(GetModuleHandle("user32.dll"), "SetCursorPos");
// Allocate memory in the target process for the buffer
IntPtr remoteBuffer = VirtualAllocEx(processHandle, IntPtr.Zero, 4096, MEM_RESERVE | MEM_COMMIT, PAGE_READWRITE);
// Write the code to change the mouse position to the buffer
byte[] buffer = WriteMousePositionChangeCode(1, 100); // Example: Move mouse to (100, 100)
int bytesWritten;
WriteProcessMemory(processHandle, remoteBuffer, buffer, (uint)buffer.Length, out bytesWritten);
// Create a remote thread to execute the code
IntPtr threadId;
IntPtr threadHandle = CreateRemoteThread(processHandle, IntPtr.Zero, 0, setCursorPosAddr, remoteBuffer, 0, out threadId);
// Clean up
CloseHandle(threadHandle);
CloseHandle(processHandle);*/
}
/*static byte[] WriteMousePositionChangeCode(int x, int y)
{
// Example code to change mouse position to (x, y)
byte[] code = new byte[]
{
0x68, (byte)x, (byte)(x >> 8), (byte)(x >> 16), (byte)(x >> 24), // push x
0x68, (byte)y, (byte)(y >> 8), (byte)(y >> 16), (byte)(y >> 24), // push y
0xC3 // ret
};
return code;
}*/
/*private static IntPtr MouseHookCallback(int nCode, IntPtr wParam, IntPtr lParam)
{
if (nCode >= 0 && wParam == (IntPtr)WM_LBUTTONDOWN)
{
// Extract mouse coordinates from the hook event
MSLLHOOKSTRUCT hookStruct = (MSLLHOOKSTRUCT)Marshal.PtrToStructure(lParam, typeof(MSLLHOOKSTRUCT));
int x = hookStruct.pt.x;
int y = hookStruct.pt.y;
// Check if the mouse click is within the target process window
IntPtr windowHandle = GetForegroundWindow();
uint processId;
GetWindowThreadProcessId(windowHandle, out processId);
if (processId == targetProcessId)
{
// Perform your custom mouse actions here
// For example, send mouse clicks or move the mouse
// SimulateMouseClick(x, y);
// SimulateMouseMove(x, y);
}
}
return CallNextHookEx(hookID, nCode, wParam, lParam);
}*/
private static IntPtr CreateLParam(int LoWord, int HiWord)
{
return (IntPtr)((HiWord << 16) | (LoWord & 0xffff));
@ -172,6 +289,7 @@ public class KeyMouse
{
PostMessage((int)Form1_0.hWnd, WM_SYSKEYUP, (ushort)ThisK, (IntPtr)0);
SendMessage((int)Form1_0.hWnd, WM_SYSKEYUP, (ushort)ThisK, (IntPtr)0);
sim.Keyboard.KeyUp((WindowsInput.Native.VirtualKeyCode)ThisK);
}
public void SendCTRL_CLICK(int ThX, int ThY)
@ -339,7 +457,14 @@ public class KeyMouse
}
}
public delegate IntPtr LowLevelKeyboardProc(int nCode, IntPtr wParam, IntPtr lParam);
private static IntPtr SetHookMouse(LowLevelMouseProc proc)
{
using (Process curProcess = Process.GetCurrentProcess())
using (ProcessModule curModule = curProcess.MainModule)
{
return SetWindowsHookEx(WH_MOUSE_LL, proc, GetModuleHandle(curModule.ModuleName), 0);
}
}
public IntPtr HookCallback(int nCode, IntPtr wParam, IntPtr lParam)
{

View File

@ -289,6 +289,7 @@ public class Mover
//######
//moving location is way to far away something might be wrong!
Form1_0.KeyMouse_0.ReleaseKey(CharConfig.KeyForceMovement);
if (!IsPositionNearOf(ThisX, ThisY, 300)) return false;
if (ThisX == 0 && ThisY == 0) return false;
//######
@ -297,12 +298,14 @@ public class Mover
if (IsPositionNearOf(ThisX, ThisY, MoveAcceptOffset))
{
Form1_0.overlayForm.ResetMoveToLocation();
Form1_0.KeyMouse_0.ReleaseKey(CharConfig.KeyForceMovement);
return true;
}
if (!Form1_0.GameStruc_0.IsInGame() || !Form1_0.Running)
{
Form1_0.overlayForm.ResetMoveToLocation();
Form1_0.KeyMouse_0.ReleaseKey(CharConfig.KeyForceMovement);
return false;
}

View File

@ -4,6 +4,7 @@ using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using static Enums;
public class Shop
{
@ -69,7 +70,7 @@ public class Shop
return false;
}
public bool PlaceItem(int PosX, int PosY)
public bool PlaceItem(int PosX, int PosY, bool ForceBadDetection = false)
{
int Tryy = 0;
Form1_0.ItemsStruc_0.GetItems(false);
@ -79,6 +80,12 @@ public class Shop
Form1_0.WaitDelay(10);
Form1_0.ItemsStruc_0.GetItems(false); //get inventory again
Tryy++;
if (Tryy == 5 && ForceBadDetection)
{
Form1_0.ItemsStruc_0.GetBadItemsOnCursor();
Tryy = 10;
}
}
if (Tryy >= 15)
{
@ -215,6 +222,22 @@ public class Shop
if (Form1_0.InventoryStruc_0.InventoryHasStashItem[i] == 0
&& Form1_0.InventoryStruc_0.InventoryHasUnidItem[i] == 0)
{
//################
//GET ITEM SOLD INFOS
string SoldTxt = "";
Color ThisCol = Color.Black;
Dictionary<string, int> itemXYPos = Form1_0.InventoryStruc_0.ConvertIndexToXY(i);
if (Form1_0.ItemsStruc_0.GetSpecificItem(0, Form1_0.InventoryStruc_0.InventoryItemNames[i], itemXYPos["x"], itemXYPos["y"], Form1_0.PlayerScan_0.unitId, 0, true))
{
SoldTxt = "Sold Item:" + Form1_0.ItemsStruc_0.ItemNAAME + " (ID:" + Form1_0.ItemsStruc_0.txtFileNo + ")" + Form1_0.ItemsAlert_0.GetItemTypeText() + " && " + Form1_0.ItemsStruc_0.GetQualityTextString() + " && " + Form1_0.ItemsStruc_0.GetAllFlagsFromItem() + " && " + Form1_0.ItemsStruc_0.GetAllValuesFromStats() + Form1_0.ItemsStruc_0.GetItemsStashInfosTxt();
ThisCol = Form1_0.ItemsStruc_0.GetColorFromQuality((int)Form1_0.ItemsStruc_0.itemQuality);
if (Form1_0.ItemsAlert_0.ShouldKeepItem())
{
continue;
}
}
//################
Dictionary<string, int> itemScreenPos = Form1_0.InventoryStruc_0.ConvertIndexToXY(i);
itemScreenPos = Form1_0.InventoryStruc_0.ConvertInventoryLocToScreenPos(itemScreenPos["x"], itemScreenPos["y"]);
@ -246,6 +269,7 @@ public class Shop
}
else
{
if (SoldTxt != "") Form1_0.method_1_SoldItems(SoldTxt, ThisCol);
break;
}
}
@ -566,5 +590,11 @@ public class Shop
if (HasTownPortal) ShopForTomeOfPortal = false;
}
//ShopBot
if (CharConfig.RunShopBotScript && !Form1_0.ShopBot_0.ScriptDone && Form1_0.ShopBot_0.CurrentStep > 0)
{
Form1_0.ItemsStruc_0.ShopBotGetPurchaseItems();
}
}
}

View File

@ -15,6 +15,7 @@ public class Stash
public int RunningScriptCount = 0;
public bool MakingCowPortal = false;
public int DeposingGoldCount = 0;
public void SetForm1(Form1 form1_1)
{
@ -43,6 +44,21 @@ public class Stash
if ((CharConfig.InventoryDontCheckItem[i] == 0 && Form1_0.InventoryStruc_0.InventoryHasStashItem[i] >= 1)
|| (MakingCowPortal && Form1_0.InventoryStruc_0.InventoryItemNames[i] == "Tome of Town Portal"))
{
//################
//GET ITEM (UNIQUE GC, GHEED, TORCH, ANNI)
bool IsUniqueSpecial = false;
Dictionary<string, int> itemXYPos = Form1_0.InventoryStruc_0.ConvertIndexToXY(i);
if (Form1_0.ItemsStruc_0.GetSpecificItem(0, Form1_0.InventoryStruc_0.InventoryItemNames[i], itemXYPos["x"], itemXYPos["y"], Form1_0.PlayerScan_0.unitId, 0))
{
if ((Form1_0.ItemsStruc_0.ItemNAAME == "Small Charm"
|| Form1_0.ItemsStruc_0.ItemNAAME == "Large Charm"
|| Form1_0.ItemsStruc_0.ItemNAAME == "Grand Charm")
&& Form1_0.ItemsStruc_0.itemQuality == 7) //Unique
{
IsUniqueSpecial = true;
}
}
//################
Form1_0.SetGameStatus("TOWN-STASH-ITEM:" + Form1_0.InventoryStruc_0.InventoryItemNames[i]);
Form1_0.method_1_Items("Stashed: " + Form1_0.InventoryStruc_0.InventoryItemNames[i], Form1_0.ItemsStruc_0.GetColorFromQuality(Form1_0.InventoryStruc_0.InventoryItemQuality[i]));
@ -50,6 +66,11 @@ public class Stash
itemScreenPos = Form1_0.InventoryStruc_0.ConvertInventoryLocToScreenPos(itemScreenPos["x"], itemScreenPos["y"]);
int TryStashCount = 0;
if (IsUniqueSpecial)
{
TryStashCount = 1;
Form1_0.KeyMouse_0.MouseClicc(340, 200); //clic shared stash1
}
while (true)
{
int Tries = 0;
@ -147,7 +168,12 @@ public class Stash
if (!Form1_0.UIScan_0.leftMenu && !Form1_0.UIScan_0.rightMenu) return;
//deposit gold
Form1_0.KeyMouse_0.MouseClicc(200, 200); //clic stash1
if (DeposingGoldCount == 0) Form1_0.KeyMouse_0.MouseClicc(200, 200); //clic stash1
if (DeposingGoldCount == 1) Form1_0.KeyMouse_0.MouseClicc(340, 200); //clic shared stash1
if (DeposingGoldCount == 2) Form1_0.KeyMouse_0.MouseClicc(450, 200); //clic shared stash2
if (DeposingGoldCount == 3) Form1_0.KeyMouse_0.MouseClicc(600, 200); //clic shared stash3
DeposingGoldCount++;
if (DeposingGoldCount > 3) DeposingGoldCount = 0;
if (Form1_0.PlayerScan_0.PlayerGoldInventory > 0)
{

View File

@ -83,7 +83,6 @@ public class Town
public void RunTownScript()
{
Form1_0.ItemsStruc_0.TriesToPickItemCount = 0;
//Console.WriteLine("Fast town: " + FastTowning);
if (!ShouldBeInTown())
{
@ -1099,7 +1098,7 @@ public class Town
Form1_0.UIScan_0.CloseUIMenu("npcInteract");
Form1_0.UIScan_0.CloseUIMenu("npcShop");
Form1_0.Shop_0.PlaceItem(Form1_0.CenterX, Form1_0.CenterY);
Form1_0.Shop_0.PlaceItem(Form1_0.CenterX, Form1_0.CenterY, true);
}
}
}

View File

@ -61,6 +61,11 @@ RunFrozensteinScript=false
RunTerrorZonesScript=false
RunItemGrabScriptOnly=false
ClearAfterBoss=false
RunShopBotScript=false
RunMausoleumScript=false
RunCryptScript=false
RunArachnidScript=false
RunPitScript=false
//#######################################
//NOT IN GAME SCRIPT (SEARCH GAMES OR CREATE A NEW GAME)

View File

@ -376,7 +376,7 @@ public static class EnumsMobsNPC
NecroMage = 364,
Griswold = 365,
compellingorb = 366,
tyrael2 = 367,
Tyrael = 367,
youngdiablo = 368,
atrap7 = 369,
spiritmummy = 370,

View File

@ -143,6 +143,8 @@ public class GameStruc
Form1_0.SetGameStatus("LOADING GAME");
Form1_0.WaitDelay(CharConfig.CreateGameWaitDelay);
//###############
/*GetAllGamesNames();
SelectGame(0, false);

View File

@ -31,12 +31,224 @@ public class InventoryStruc
public bool HasIDTome = false;
public bool DisabledSpecialItems = false;
public void SetForm1(Form1 form1_1)
{
Form1_0 = form1_1;
}
public void CheckInventorySpecialUniqueItems()
{
if (DisabledSpecialItems) return;
//#######
string ThisNamee = "SmallCharm";
int ThisIndex = 2;
bool PickingAnni = false;
while (Form1_0.ItemsAlert_0.PickItemsNormal_ByName.ContainsKey(ThisNamee))
{
//Console.WriteLine(Form1_0.ItemsStruc_0.ItemNAAME + ":" + ThisNamee);
if (Form1_0.ItemsAlert_0.PickItemsNormal_ByName[ThisNamee])
{
if (Form1_0.ItemsAlert_0.PickItemsNormal_ByName_Quality.ContainsKey(ThisNamee))
{
if (Form1_0.ItemsAlert_0.PickItemsNormal_ByName_Quality[ThisNamee] == 7) PickingAnni = true;
}
break;
}
ThisNamee = "SmallCharm" + ThisIndex;
ThisIndex++;
}
ThisNamee = "LargeCharm";
ThisIndex = 2;
bool PickingTorch = false;
while (Form1_0.ItemsAlert_0.PickItemsNormal_ByName.ContainsKey(ThisNamee))
{
if (Form1_0.ItemsAlert_0.PickItemsNormal_ByName[ThisNamee])
{
if (Form1_0.ItemsAlert_0.PickItemsNormal_ByName_Quality.ContainsKey(ThisNamee))
{
if (Form1_0.ItemsAlert_0.PickItemsNormal_ByName_Quality[ThisNamee] == 7) PickingTorch = true;
}
break;
}
ThisNamee = "LargeCharm" + ThisIndex;
ThisIndex++;
}
ThisNamee = "GrandCharm";
ThisIndex = 2;
bool PickingGC = false;
while (Form1_0.ItemsAlert_0.PickItemsNormal_ByName.ContainsKey(ThisNamee))
{
if (Form1_0.ItemsAlert_0.PickItemsNormal_ByName[ThisNamee])
{
if (Form1_0.ItemsAlert_0.PickItemsNormal_ByName_Quality.ContainsKey(ThisNamee))
{
if (Form1_0.ItemsAlert_0.PickItemsNormal_ByName_Quality[ThisNamee] == 7) PickingGC = true;
}
break;
}
ThisNamee = "GrandCharm" + ThisIndex;
ThisIndex++;
}
//#######
if (PickingAnni || PickingTorch || PickingGC)
{
Form1_0.ItemsStruc_0.GetItems(false);
//Check inside Inventory
for (int i = 0; i < 40; i++)
{
if (CharConfig.InventoryDontCheckItem[i] == 1)
{
//################
//GET ITEM (UNIQUE GC, GHEED, TORCH, ANNI)
Dictionary<string, int> itemXYPos = Form1_0.InventoryStruc_0.ConvertIndexToXY(i);
if (Form1_0.ItemsStruc_0.GetSpecificItem(0, "", itemXYPos["x"], itemXYPos["y"], Form1_0.PlayerScan_0.unitId, 0))
{
if (Form1_0.ItemsStruc_0.ItemNAAME == "Small Charm" && Form1_0.ItemsStruc_0.itemQuality == 7)
{
Form1_0.method_1("Cannot Pick Anni since you have one in your inventory, disabling Anni from pickit!", Color.OrangeRed);
ThisNamee = "SmallCharm";
ThisIndex = 2;
while (Form1_0.ItemsAlert_0.PickItemsNormal_ByName.ContainsKey(ThisNamee))
{
if (Form1_0.ItemsAlert_0.PickItemsNormal_ByName[ThisNamee])
{
if (Form1_0.ItemsAlert_0.PickItemsNormal_ByName_Quality.ContainsKey(ThisNamee))
{
if (Form1_0.ItemsAlert_0.PickItemsNormal_ByName_Quality[ThisNamee] == 7) Form1_0.ItemsAlert_0.PickItemsNormal_ByName[ThisNamee] = false;
}
}
ThisNamee = "SmallCharm" + ThisIndex;
ThisIndex++;
}
}
else if (Form1_0.ItemsStruc_0.ItemNAAME == "Large Charm" && Form1_0.ItemsStruc_0.itemQuality == 7)
{
Form1_0.method_1("Cannot Pick Torch since you have one in your inventory, disabling Torch from pickit!", Color.OrangeRed);
ThisNamee = "LargeCharm";
ThisIndex = 2;
while (Form1_0.ItemsAlert_0.PickItemsNormal_ByName.ContainsKey(ThisNamee))
{
if (Form1_0.ItemsAlert_0.PickItemsNormal_ByName[ThisNamee])
{
if (Form1_0.ItemsAlert_0.PickItemsNormal_ByName_Quality.ContainsKey(ThisNamee))
{
if (Form1_0.ItemsAlert_0.PickItemsNormal_ByName_Quality[ThisNamee] == 7) Form1_0.ItemsAlert_0.PickItemsNormal_ByName[ThisNamee] = false;
}
}
ThisNamee = "LargeCharm" + ThisIndex;
ThisIndex++;
}
}
else if (Form1_0.ItemsStruc_0.ItemNAAME == "Grand Charm" && Form1_0.ItemsStruc_0.itemQuality == 7)
{
Form1_0.method_1("Cannot Pick Unique GC's since you have one in your inventory, disabling Unique GC's from pickit!", Color.OrangeRed);
ThisNamee = "GrandCharm";
ThisIndex = 2;
while (Form1_0.ItemsAlert_0.PickItemsNormal_ByName.ContainsKey(ThisNamee))
{
if (Form1_0.ItemsAlert_0.PickItemsNormal_ByName[ThisNamee])
{
if (Form1_0.ItemsAlert_0.PickItemsNormal_ByName_Quality.ContainsKey(ThisNamee))
{
if (Form1_0.ItemsAlert_0.PickItemsNormal_ByName_Quality[ThisNamee] == 7) Form1_0.ItemsAlert_0.PickItemsNormal_ByName[ThisNamee] = false;
}
}
ThisNamee = "GrandCharm" + ThisIndex;
ThisIndex++;
}
}
}
//################
}
}
//Check inside stash
for (int i = 0; i < 100; i++)
{
if (Form1_0.StashStruc_0.Stash1_ItemTxtNoList[i] >= 603 && Form1_0.StashStruc_0.Stash1_ItemTxtNoList[i] <= 605)
{
//################
//GET ITEM (UNIQUE GC, GHEED, TORCH, ANNI)
Dictionary<string, int> itemXYPos = Form1_0.InventoryStruc_0.ConvertIndexToXY(i);
if (Form1_0.ItemsStruc_0.GetSpecificItem(0, "", itemXYPos["x"], itemXYPos["y"], Form1_0.PlayerScan_0.unitId, 4))
{
if (Form1_0.ItemsStruc_0.ItemNAAME == "Small Charm" && Form1_0.ItemsStruc_0.itemQuality == 7)
{
Form1_0.method_1("Cannot Pick Anni since you have one in your normal stash, disabling Anni from pickit!", Color.OrangeRed);
ThisNamee = "SmallCharm";
ThisIndex = 2;
while (Form1_0.ItemsAlert_0.PickItemsNormal_ByName.ContainsKey(ThisNamee))
{
if (Form1_0.ItemsAlert_0.PickItemsNormal_ByName[ThisNamee])
{
if (Form1_0.ItemsAlert_0.PickItemsNormal_ByName_Quality.ContainsKey(ThisNamee))
{
if (Form1_0.ItemsAlert_0.PickItemsNormal_ByName_Quality[ThisNamee] == 7) Form1_0.ItemsAlert_0.PickItemsNormal_ByName[ThisNamee] = false;
}
}
ThisNamee = "SmallCharm" + ThisIndex;
ThisIndex++;
}
}
else if (Form1_0.ItemsStruc_0.ItemNAAME == "Large Charm" && Form1_0.ItemsStruc_0.itemQuality == 7)
{
Form1_0.method_1("Cannot Pick Torch since you have one in your normal stash, disabling Torch from pickit!", Color.OrangeRed);
ThisNamee = "LargeCharm";
ThisIndex = 2;
while (Form1_0.ItemsAlert_0.PickItemsNormal_ByName.ContainsKey(ThisNamee))
{
if (Form1_0.ItemsAlert_0.PickItemsNormal_ByName[ThisNamee])
{
if (Form1_0.ItemsAlert_0.PickItemsNormal_ByName_Quality.ContainsKey(ThisNamee))
{
if (Form1_0.ItemsAlert_0.PickItemsNormal_ByName_Quality[ThisNamee] == 7) Form1_0.ItemsAlert_0.PickItemsNormal_ByName[ThisNamee] = false;
}
}
ThisNamee = "LargeCharm" + ThisIndex;
ThisIndex++;
}
}
else if (Form1_0.ItemsStruc_0.ItemNAAME == "Grand Charm" && Form1_0.ItemsStruc_0.itemQuality == 7)
{
Form1_0.method_1("Cannot Pick Unique GC's since you have one in your normal stash, disabling Unique GC's from pickit!", Color.OrangeRed);
ThisNamee = "GrandCharm";
ThisIndex = 2;
while (Form1_0.ItemsAlert_0.PickItemsNormal_ByName.ContainsKey(ThisNamee))
{
if (Form1_0.ItemsAlert_0.PickItemsNormal_ByName[ThisNamee])
{
if (Form1_0.ItemsAlert_0.PickItemsNormal_ByName_Quality.ContainsKey(ThisNamee))
{
if (Form1_0.ItemsAlert_0.PickItemsNormal_ByName_Quality[ThisNamee] == 7) Form1_0.ItemsAlert_0.PickItemsNormal_ByName[ThisNamee] = false;
}
}
ThisNamee = "GrandCharm" + ThisIndex;
ThisIndex++;
}
}
}
//################
}
}
}
DisabledSpecialItems = true;
}
public void UseTP()
{
if (HUDItems_tpscrolls_locx != -1 && HUDItems_tpscrolls_locy != -1)
@ -229,6 +441,7 @@ public class InventoryStruc
public void DumpBadItemsOnGround()
{
//return;
//#########################################
//reset trying to pick item if inventory is free of spots, meaning he try to grab while a mobs is in the way
bool HasItemItemInInventory = false;
@ -263,6 +476,61 @@ public class InventoryStruc
Form1_0.ItemsStruc_0.GetBadItemsOnCursor();
//Form1_0.ItemsStruc_0.GetItems(false);
//#######################################################
//#######################################################
//MANUAL ID THE ITEMS WITH TOME ID
bool HasTownID = HasInventoryItemName("Tome of Identify");
if (HasTownID && HUDItems_idscrolls > 0)
{
int tries2 = 0;
while (Form1_0.InventoryStruc_0.HasUnidItemInInventory() && tries2 < 2)
{
//Form1_0.SetGameStatus("INVENTORY-ID ITEMS");
Form1_0.SetProcessingTime();
if (!Form1_0.Running || !Form1_0.GameStruc_0.IsInGame())
{
break;
}
bool IdentifiedItem = false;
for (int i = 0; i < 40; i++)
{
if (Form1_0.InventoryStruc_0.InventoryItemNames[i] == "Tome of Identify")
{
Dictionary<string, int> itemScreenPos = Form1_0.InventoryStruc_0.ConvertIndexToXY(i);
itemScreenPos = Form1_0.InventoryStruc_0.ConvertInventoryLocToScreenPos(itemScreenPos["x"], itemScreenPos["y"]);
Form1_0.KeyMouse_0.MouseCliccRight(itemScreenPos["x"], itemScreenPos["y"]);
Form1_0.WaitDelay(20);
for (int k = 0; k < 40; k++)
{
if (Form1_0.InventoryStruc_0.InventoryHasUnidItem[k] == 1 && CharConfig.InventoryDontCheckItem[i] == 0)
{
itemScreenPos = Form1_0.InventoryStruc_0.ConvertIndexToXY(k);
itemScreenPos = Form1_0.InventoryStruc_0.ConvertInventoryLocToScreenPos(itemScreenPos["x"], itemScreenPos["y"]);
Form1_0.KeyMouse_0.MouseClicc(itemScreenPos["x"], itemScreenPos["y"]);
Form1_0.WaitDelay(100);
Form1_0.Shop_0.PlaceItem(itemScreenPos["x"], itemScreenPos["y"]);
IdentifiedItem = true;
Form1_0.ItemsStruc_0.GetItems(false); //get inventory again
break;
}
}
break;
}
}
Form1_0.ItemsStruc_0.GetItems(false); //get inventory
if (!IdentifiedItem) tries2++;
else tries2 = 0;
}
Form1_0.ItemsStruc_0.GetItems(false); //get inventory
}
//#######################################################
//#######################################################
//place all bad items on ground
for (int i = 0; i < 40; i++)
{

View File

@ -164,6 +164,8 @@ public class ItemsAlert
public void RemoveNotPickingItems()
{
return;
//Remove all the items that are disabled in the Pickit to improve Pickit performance
List<string> KeysToRemove = new List<string>();
foreach (var ThisDir in PickItemsRunesKeyGems)
@ -313,7 +315,7 @@ public class ItemsAlert
}
}
return SameStats;
if (SameStats) return true;
}
}
else
@ -386,7 +388,7 @@ public class ItemsAlert
}
}
return SameStats;
if (SameStats) return true;
}
}
else

View File

@ -250,7 +250,7 @@ public class ItemsStruc
}
}
public bool GetShopItem(string ShopItemName, bool GetGambleShopItem = false)
public bool GetShopItem(string ShopItemName)
{
try
{
@ -276,8 +276,7 @@ public class ItemsStruc
{
if (dwOwnerId != Form1_0.PlayerScan_0.unitId)
{
if ((GetGambleShopItem && equiploc == 0)
|| (!GetGambleShopItem && equiploc == 3))
if (equiploc <= 3)
{
if (ItemNAAME == ShopItemName)
{
@ -291,7 +290,7 @@ public class ItemsStruc
}
catch
{
Form1_0.method_1("Couldn't 'GetShopItem()'", Color.Red);
Form1_0.method_1("Couldn't 'GetShopItem()'", Color.OrangeRed);
}
return false;
@ -535,7 +534,7 @@ public class ItemsStruc
AllItemsIncube.Add("ID:" + txtFileNo + "(" + ItemNAAME + ") at:" + itemx + ", " + itemy + " - In Cube - " + Form1_0.ItemsAlert_0.GetItemTypeText() + " && " + GetQualityTextString() + " && " + GetAllFlagsFromItem() + " && " + GetAllValuesFromStats() + GetItemsStashInfosTxt());
}
}
else if (dwOwnerId != Form1_0.PlayerScan_0.unitId && equiploc == 3)
else if (dwOwnerId != Form1_0.PlayerScan_0.unitId && equiploc <= 3)
{
//Shop Items
if (DebuggingItems)
@ -543,14 +542,14 @@ public class ItemsStruc
AllItemsInShop.Add("ID:" + txtFileNo + "(" + ItemNAAME + ") at:" + itemx + ", " + itemy + " - In Shop - " + Form1_0.ItemsAlert_0.GetItemTypeText() + " && " + GetQualityTextString() + " && " + GetAllFlagsFromItem() + " && " + GetAllValuesFromStats() + GetItemsStashInfosTxt());
}
}
else if (dwOwnerId != Form1_0.PlayerScan_0.unitId && equiploc == 0)
/*else if (dwOwnerId != Form1_0.PlayerScan_0.unitId && equiploc == 0)
{
//Shop Gamble Items
if (DebuggingItems)
{
AllItemsInShop.Add("ID:" + txtFileNo + "(" + ItemNAAME + ") at:" + itemx + ", " + itemy + " - In Shop(Gamble) - " + Form1_0.ItemsAlert_0.GetItemTypeText() + " && " + GetQualityTextString() + " && " + GetAllFlagsFromItem() + " && " + GetAllValuesFromStats() + GetItemsStashInfosTxt());
}
}
}*/
else
{
AllItemsOthers.Add("ID:" + txtFileNo + "(" + ItemNAAME + ") at:" + itemx + ", " + itemy + " - Others - EquipLocation:" + equiploc + " - SelfOwner:" + (dwOwnerId == Form1_0.PlayerScan_0.unitId) + " - " + Form1_0.ItemsAlert_0.GetItemTypeText() + " && " + GetQualityTextString() + " && " + GetAllFlagsFromItem() + " && " + GetAllValuesFromStats() + GetItemsStashInfosTxt());
@ -575,12 +574,12 @@ public class ItemsStruc
AllItemsEquipped.Add("ID:" + txtFileNo + "(" + ItemNAAME + ") at:" + itemx + ", " + itemy + " - Equipped - " + Form1_0.ItemsAlert_0.GetItemTypeText() + " && " + GetQualityTextString() + " && " + GetAllFlagsFromItem() + " && " + GetAllValuesFromStats() + GetItemsStashInfosTxt());
}
if (ItemNAAME == "Crusader Gauntlets")
/*if (ItemNAAME == "Crusader Gauntlets")
{
string SavePathh = Form1_0.ThisEndPath + "DumpItempUnitDataStruc";
File.Create(SavePathh).Dispose();
File.WriteAllBytes(SavePathh, pUnitData);
}
}*/
}
else
{
@ -763,7 +762,145 @@ public class ItemsStruc
}
catch
{
Form1_0.method_1("Couldn't 'GetItems()'", Color.Red);
Form1_0.method_1("Couldn't 'GetItems()'", Color.OrangeRed);
}
return false;
}
public bool GetSpecificItem(int ItemLocation, string ItemName, int PositionX, int PositionY, uint dwOwnerId, int Thisequiploc, bool InventoryItem = true)
{
try
{
if (!Form1_0.GameStruc_0.IsInGame()) return false;
//dead leave game
if (Form1_0.PlayerScan_0.PlayerDead || Form1_0.Potions_0.ForceLeave)
{
Form1_0.Potions_0.ForceLeave = true;
Form1_0.BaalLeech_0.SearchSameGamesAsLastOne = false;
Form1_0.LeaveGame(false);
Form1_0.IncreaseDeadCount();
return false;
}
Form1_0.PatternsScan_0.scanForUnitsPointer("item");
foreach (var ThisCurrentPointer in Form1_0.PatternsScan_0.AllItemsPointers)
{
ItemPointerLocation = ThisCurrentPointer.Key;
if (ItemPointerLocation > 0)
{
itemdatastruc = new byte[144];
Form1_0.Mem_0.ReadRawMemory(ItemPointerLocation, ref itemdatastruc, 144);
ItemsScanned++;
txtFileNo = BitConverter.ToUInt32(itemdatastruc, 4);
uint ItemID = BitConverter.ToUInt32(itemdatastruc, 8);
ItemNAAME = Form1_0.ItemsNames_0.getItemBaseName(txtFileNo);
GetUnitData();
GetUnitPathData();
GetStatsAddr();
//Form1_0.method_1("ItemType: " + BitConverter.ToUInt32(itemdatastruc, 0).ToString() + ", TxtFileNo: " + BitConverter.ToUInt32(itemdatastruc, 4).ToString() + ", Name: " + ItemNAAME + ", Location: " + GetItemLocation(itemdatastruc[0x0C]));
//; itemLoc - 0 in inventory, 1 equipped, 2 in belt, 3 on ground, 4 cursor, 5 dropping, 6 socketed
if (itemdatastruc[0x0C] == ItemLocation)
{
bool CanGo = true;
if (itemdatastruc[0x0C] == 0)
{
if (dwOwnerId != 0 && dwOwnerId == Form1_0.PlayerScan_0.unitId && Thisequiploc == equiploc)
{
if (!InventoryItem) CanGo = false;
}
}
if (InventoryItem && dwOwnerId != Form1_0.PlayerScan_0.unitId) CanGo = false;
if (Thisequiploc != equiploc) CanGo = false;
if (((ItemName != "" && ItemNAAME == ItemName) || ItemName == "") && CanGo)
{
if (itemx == PositionX && itemy == PositionY)
{
Console.WriteLine(Form1_0.ItemsStruc_0.ItemNAAME);
return true;
}
}
}
}
}
return false;
}
catch
{
Form1_0.method_1("Couldn't 'GetSpecificItem()'", Color.OrangeRed);
}
return false;
}
public bool ShopBotGetPurchaseItems()
{
try
{
if (!Form1_0.GameStruc_0.IsInGame()) return false;
//dead leave game
if (Form1_0.PlayerScan_0.PlayerDead || Form1_0.Potions_0.ForceLeave)
{
Form1_0.Potions_0.ForceLeave = true;
Form1_0.BaalLeech_0.SearchSameGamesAsLastOne = false;
Form1_0.LeaveGame(false);
Form1_0.IncreaseDeadCount();
return false;
}
Form1_0.PatternsScan_0.scanForUnitsPointer("item");
foreach (var ThisCurrentPointer in Form1_0.PatternsScan_0.AllItemsPointers)
{
ItemPointerLocation = ThisCurrentPointer.Key;
if (ItemPointerLocation > 0)
{
itemdatastruc = new byte[144];
Form1_0.Mem_0.ReadRawMemory(ItemPointerLocation, ref itemdatastruc, 144);
ItemsScanned++;
txtFileNo = BitConverter.ToUInt32(itemdatastruc, 4);
uint ItemID = BitConverter.ToUInt32(itemdatastruc, 8);
ItemNAAME = Form1_0.ItemsNames_0.getItemBaseName(txtFileNo);
GetUnitData();
GetUnitPathData();
GetStatsAddr();
//Form1_0.method_1("ItemType: " + BitConverter.ToUInt32(itemdatastruc, 0).ToString() + ", TxtFileNo: " + BitConverter.ToUInt32(itemdatastruc, 4).ToString() + ", Name: " + ItemNAAME + ", Location: " + GetItemLocation(itemdatastruc[0x0C]));
//; itemLoc - 0 in inventory, 1 equipped, 2 in belt, 3 on ground, 4 cursor, 5 dropping, 6 socketed
if (itemdatastruc[0x0C] == 0)
{
if (dwOwnerId != Form1_0.PlayerScan_0.unitId && equiploc <= 3)
{
//if (Form1_0.ItemsAlert_0.ShouldPickItem(true))
if (Form1_0.ItemsAlert_0.ShouldPickItem(false))
{
if (equiploc == 0) Form1_0.KeyMouse_0.MouseClicc(220, 200); //clic shop1
if (equiploc == 1) Form1_0.KeyMouse_0.MouseClicc(350, 200); //clic shop2
if (equiploc == 2) Form1_0.KeyMouse_0.MouseClicc(475, 200); //clic shop3
if (equiploc == 3) Form1_0.KeyMouse_0.MouseClicc(600, 200); //clic shop4
Form1_0.WaitDelay(15);
Dictionary<string, int> itemScreenPos = Form1_0.Shop_0.ConvertShopLocToScreenPos(Form1_0.ItemsStruc_0.itemx, Form1_0.ItemsStruc_0.itemy);
Form1_0.KeyMouse_0.MouseCliccRight(itemScreenPos["x"], itemScreenPos["y"]);
Form1_0.WaitDelay(15);
Form1_0.Town_0.Towning = true;
}
}
}
}
}
return false;
}
catch
{
Form1_0.method_1("Couldn't 'ShopBotGetPurchaseItems()'", Color.OrangeRed);
}
return false;
}
@ -903,7 +1040,7 @@ public class ItemsStruc
}
catch
{
Form1_0.method_1("Couldn't 'PickThisItem()'", Color.Red);
Form1_0.method_1("Couldn't 'PickThisItem()'", Color.OrangeRed);
}
return false;
@ -1034,7 +1171,7 @@ public class ItemsStruc
}
catch
{
Form1_0.method_1("Couldn't 'GrabItemsForGold()'", Color.Red);
Form1_0.method_1("Couldn't 'GrabItemsForGold()'", Color.OrangeRed);
}
return false;

View File

@ -684,6 +684,87 @@ public class MapAreaStruc
cg[94, 28] = false;
}
// Frigid
if (area == Enums.Area.FrigidHighlands)
{
cg[285, 731] = false;
cg[286, 731] = false;
cg[287, 731] = false;
cg[288, 731] = false;
cg[289, 731] = false;
cg[290, 731] = false;
cg[291, 731] = false;
cg[292, 731] = false;
cg[293, 731] = false;
cg[294, 731] = false;
cg[295, 731] = false;
cg[296, 731] = false;
cg[297, 731] = false;
cg[298, 731] = false;
cg[299, 731] = false;
//cg[300, 731] = false;
cg[301, 731] = false;
cg[302, 731] = false;
cg[303, 731] = false;
cg[304, 731] = false;
cg[305, 731] = false;
cg[306, 731] = false;
cg[307, 731] = false;
cg[308, 731] = false;
cg[309, 731] = false;
cg[310, 731] = false;
cg[311, 731] = false;
cg[312, 731] = false;
cg[313, 731] = false;
cg[314, 731] = false;
cg[315, 731] = false;
cg[316, 731] = false;
cg[317, 731] = false;
cg[318, 731] = false;
cg[319, 731] = false;
//cg[320, 731] = false;
cg[285, 723] = false;
cg[285, 724] = false;
cg[285, 725] = false;
cg[285, 726] = false;
cg[285, 727] = false;
cg[285, 728] = false;
cg[285, 729] = false;
cg[270, 722] = false;
cg[271, 722] = false;
cg[272, 722] = false;
cg[273, 722] = false;
cg[274, 722] = false;
cg[275, 722] = false;
cg[276, 722] = false;
cg[277, 722] = false;
cg[278, 722] = false;
cg[279, 722] = false;
cg[280, 722] = false;
cg[281, 722] = false;
cg[282, 722] = false;
cg[283, 722] = false;
cg[284, 722] = false;
cg[285, 722] = false;
cg[270, 719] = false;
cg[270, 720] = false;
cg[265, 718] = false;
cg[266, 718] = false;
cg[267, 718] = false;
cg[268, 718] = false;
cg[269, 718] = false;
cg[270, 718] = false;
cg[265, 714] = false;
cg[265, 715] = false;
cg[265, 716] = false;
}
//dump data to txt file
/*string ColisionMapTxt = "";
for (int i = 0; i < cg.GetLength(0); i++)

View File

@ -126,7 +126,7 @@ public class MercStruc
}
catch
{
Form1_0.method_1("Couldn't 'GetMercInfos()'", Color.Red);
Form1_0.method_1("Couldn't 'GetMercInfos()'", Color.OrangeRed);
}
Form1_0.Grid_SetInfos("Merc", "Not alive/detected");

View File

@ -167,32 +167,34 @@ public class MobsStruc
Form1_0.Mem_0.ReadRawMemory(MobsPointerLocation + 0x88, ref CurrentPointerBytes, CurrentPointerBytes.Length);
long pStatsListExPtr = BitConverter.ToInt64(CurrentPointerBytes, 0);
MobsStatesAll = Form1_0.PlayerScan_0.GetStates(pStatsListExPtr);
bool isPlayerMinion = false;
if (getPlayerMinion((int)txtFileNo2) != "") isPlayerMinion = true;
else isPlayerMinion = ((Form1_0.Mem_0.ReadUInt32((IntPtr)(pStatsListExPtr + 0xAC8 + 0xc)) & 31) == 1); //is a revive
if ((Form1_0.NPCStruc_0.HideNPC((int)txtFileNo2) == 0
&& Form1_0.NPCStruc_0.getTownNPC((int)txtFileNo2) == ""
&& !isPlayerMinion
&& !Form1_0.PlayerScan_0.HasState(EnumsStates.State.Revive, MobsStatesAll)
&& !DebuggingMobs)
|| DebuggingMobs)
//&& IsThisMobInBound())
if ((Form1_0.NPCStruc_0.HideNPC((int)txtFileNo2) == 0 && !DebuggingMobs) || DebuggingMobs)
//&& !ShouldBeIgnored(txtFileNo2))
{
GetUnitPathDataAll();
GetStatsAddrAll();
MobsHPAll = GetHPFromStatsAll();
if (xPosFinalAll != 0 && yPosFinalAll != 0)
if (Form1_0.NPCStruc_0.getTownNPC((int)txtFileNo2) == "")
{
if (MobsHPAll != 0)
bool isPlayerMinion = false;
if (getPlayerMinion((int)txtFileNo2) != "") isPlayerMinion = true;
else isPlayerMinion = ((Form1_0.Mem_0.ReadUInt32((IntPtr)(pStatsListExPtr + 0xAC8 + 0xc)) & 31) == 1); //is a revive
if (!isPlayerMinion)
{
if (ThisMobID == 0 || (ThisMobID > 0 && ThisMobID == txtFileNo2))
MobsStatesAll = Form1_0.PlayerScan_0.GetStates(pStatsListExPtr);
if (!Form1_0.PlayerScan_0.HasState(EnumsStates.State.Revive, MobsStatesAll))
{
Count++;
GetUnitPathDataAll();
GetStatsAddrAll();
MobsHPAll = GetHPFromStatsAll();
if (xPosFinalAll != 0 && yPosFinalAll != 0)
{
if (MobsHPAll != 0)
{
if (ThisMobID == 0 || (ThisMobID > 0 && ThisMobID == txtFileNo2))
{
Count++;
}
}
}
}
}
}
@ -202,7 +204,7 @@ public class MobsStruc
}
catch
{
Form1_0.method_1("Couldn't 'GetMobsCount()'", Color.Red);
Form1_0.method_1("Couldn't 'GetMobsCount()'", Color.OrangeRed);
}
return Count;
@ -246,40 +248,43 @@ public class MobsStruc
Form1_0.Mem_0.ReadRawMemory(MobsPointerLocation + 0x88, ref CurrentPointerBytes, CurrentPointerBytes.Length);
long pStatsListExPtr = BitConverter.ToInt64(CurrentPointerBytes, 0);
MobsStatesAll = Form1_0.PlayerScan_0.GetStates(pStatsListExPtr);
bool isPlayerMinion = false;
if (getPlayerMinion((int)txtFileNo2) != "") isPlayerMinion = true;
else isPlayerMinion = ((Form1_0.Mem_0.ReadUInt32((IntPtr)(pStatsListExPtr + 0xAC8 + 0xc)) & 31) == 1); //is a revive
if ((Form1_0.NPCStruc_0.HideNPC((int)txtFileNo2) == 0
&& Form1_0.NPCStruc_0.getTownNPC((int)txtFileNo2) == ""
&& !isPlayerMinion
&& !Form1_0.PlayerScan_0.HasState(EnumsStates.State.Revive, MobsStatesAll)
&& !DebuggingMobs)
|| DebuggingMobs)
//&& IsThisMobInBound())
if ((Form1_0.NPCStruc_0.HideNPC((int)txtFileNo2) == 0 && !DebuggingMobs) || DebuggingMobs)
//&& !ShouldBeIgnored(txtFileNo2))
{
GetUnitPathDataAll();
GetStatsAddrAll();
MobsHPAll = GetHPFromStatsAll();
if (DebuggingMobs)
if (Form1_0.NPCStruc_0.getTownNPC((int)txtFileNo2) == "")
{
if ((xPosFinalAll != 0 && yPosFinalAll != 0 && Form1_0.checkBoxShowOnlyValidMobs.Checked) || !Form1_0.checkBoxShowOnlyValidMobs.Checked)
{
Form1_0.AppendTextDebugMobs("ID:" + txtFileNo2 + "(" + (EnumsMobsNPC.MonsterType)((int)txtFileNo2) + ") at:" + xPosFinalAll + ", " + yPosFinalAll + " - HP:" + MobsHPAll + ", Type:" + ((Enums.MonsterType) GetMonsterType(flag)) + Environment.NewLine);
}
}
bool isPlayerMinion = false;
if (getPlayerMinion((int)txtFileNo2) != "") isPlayerMinion = true;
else isPlayerMinion = ((Form1_0.Mem_0.ReadUInt32((IntPtr)(pStatsListExPtr + 0xAC8 + 0xc)) & 31) == 1); //is a revive
if (xPosFinalAll != 0 && yPosFinalAll != 0)
{
if (MobsHPAll != 0)
if (!isPlayerMinion)
{
monsterPositions2.Add(new int[2] { (int)xPosFinalAll, (int)yPosFinalAll });
monsterIDs.Add((int)txtFileNo2);
monsterTypes.Add(GetMonsterType(flag));
MobsStatesAll = Form1_0.PlayerScan_0.GetStates(pStatsListExPtr);
if (!Form1_0.PlayerScan_0.HasState(EnumsStates.State.Revive, MobsStatesAll))
{
GetUnitPathDataAll();
GetStatsAddrAll();
MobsHPAll = GetHPFromStatsAll();
if (DebuggingMobs)
{
if ((xPosFinalAll != 0 && yPosFinalAll != 0 && Form1_0.checkBoxShowOnlyValidMobs.Checked) || !Form1_0.checkBoxShowOnlyValidMobs.Checked)
{
Form1_0.AppendTextDebugMobs("ID:" + txtFileNo2 + "(" + (EnumsMobsNPC.MonsterType)((int)txtFileNo2) + ") at:" + xPosFinalAll + ", " + yPosFinalAll + " - HP:" + MobsHPAll + ", Type:" + ((Enums.MonsterType)GetMonsterType(flag)) + Environment.NewLine);
}
}
if (xPosFinalAll != 0 && yPosFinalAll != 0)
{
if (MobsHPAll != 0)
{
monsterPositions2.Add(new int[2] { (int)xPosFinalAll, (int)yPosFinalAll });
monsterIDs.Add((int)txtFileNo2);
monsterTypes.Add(GetMonsterType(flag));
}
}
}
}
}
}
@ -288,7 +293,7 @@ public class MobsStruc
}
catch
{
Form1_0.method_1("Couldn't 'GetAllMobsNearby()'", Color.Red);
Form1_0.method_1("Couldn't 'GetAllMobsNearby()'", Color.OrangeRed);
}
return monsterPositions2;
@ -410,7 +415,7 @@ public class MobsStruc
}
catch
{
Form1_0.method_1("Couldn't get Mob HP from Stats!", Color.Red);
Form1_0.method_1("Couldn't get Mob HP from Stats!", Color.OrangeRed);
}
return 0; // or some other default value
}
@ -450,7 +455,8 @@ public class MobsStruc
}
//Set Fast Chaos Only Super Uniques
if (Form1_0.Chaos_0.FastChaos && MobType == "" && MobName == ""
if ((Form1_0.Chaos_0.FastChaos || Form1_0.Chaos_0.FastChaosPopingSeals)
&& MobType == "" && MobName == ""
&& (Enums.Area)Form1_0.PlayerScan_0.levelNo == Enums.Area.ChaosSanctuary)
{
MobType = "getSuperUniqueName";
@ -475,165 +481,168 @@ public class MobsStruc
Form1_0.Mem_0.ReadRawMemory(MobsPointerLocation + 0x88, ref CurrentPointerBytes, CurrentPointerBytes.Length);
long pStatsListExPtr = BitConverter.ToInt64(CurrentPointerBytes, 0);
MobsStates = Form1_0.PlayerScan_0.GetStates(pStatsListExPtr);
bool isPlayerMinion = false;
if (getPlayerMinion((int)txtFileNo) != "") isPlayerMinion = true;
else isPlayerMinion = ((Form1_0.Mem_0.ReadUInt32((IntPtr)(pStatsListExPtr + 0xAC8 + 0xc)) & 31) == 1); //is a revive
//Console.WriteLine("found near mob " + txtFileNo + " at: " + xPosFinal + ", " + yPosFinal);
if (Form1_0.NPCStruc_0.HideNPC((int)txtFileNo) == 0
&& Form1_0.NPCStruc_0.getTownNPC((int)txtFileNo) == ""
&& !isPlayerMinion
&& !Form1_0.PlayerScan_0.HasState(EnumsStates.State.Revive, MobsStates))
//&& !ShouldBeIgnored(txtFileNo))
if ((Form1_0.NPCStruc_0.HideNPC((int)txtFileNo) == 0 && !DebuggingMobs) || DebuggingMobs)
//&& !ShouldBeIgnored(txtFileNo2))
{
GetUnitPathData();
GetStatsAddr();
int MobHPBuffer = GetHPFromStats();
CurrentPointerBytes = new byte[8];
Form1_0.Mem_0.ReadRawMemory(MobsPointerLocation + 0x10, ref CurrentPointerBytes, CurrentPointerBytes.Length);
long unitDataPtr = BitConverter.ToInt64(CurrentPointerBytes, 0);
byte flag = Form1_0.Mem_0.ReadByteRaw((IntPtr)(unitDataPtr + 0x1A));
/*if (MobType == "getBossName"
&& (Enums.MonsterType)GetMonsterType(flag) != Enums.MonsterType.Champion)
if (Form1_0.NPCStruc_0.getTownNPC((int)txtFileNo) == "")
{
continue;
}
bool isPlayerMinion = false;
if (getPlayerMinion((int)txtFileNo) != "") isPlayerMinion = true;
else isPlayerMinion = ((Form1_0.Mem_0.ReadUInt32((IntPtr)(pStatsListExPtr + 0xAC8 + 0xc)) & 31) == 1); //is a revive
if (MobType == "getSuperUniqueName"
&& (Enums.MonsterType)GetMonsterType(flag) != Enums.MonsterType.Champion
&& (Enums.MonsterType)GetMonsterType(flag) != Enums.MonsterType.SuperUnique)
{
continue;
}*/
if ((MobType == "getUniqueName" || MobType == "getSuperUniqueName" || MobType == "getBossName")
&& (Enums.MonsterType)GetMonsterType(flag) != Enums.MonsterType.Champion
&& (Enums.MonsterType)GetMonsterType(flag) != Enums.MonsterType.SuperUnique
&& (Enums.MonsterType)GetMonsterType(flag) != Enums.MonsterType.Unique)
{
continue;
}
//Avoid Immunes
if (CharConfig.AvoidColdImmune
|| CharConfig.AvoidFireImmune
|| CharConfig.AvoidLightImmune
|| CharConfig.AvoidPoisonImmune
|| CharConfig.AvoidMagicImmune)
{
if (IsImmune(Enums.StatResist.ColdImmune) && CharConfig.AvoidColdImmune
|| IsImmune(Enums.StatResist.FireImmune) && CharConfig.AvoidFireImmune
|| IsImmune(Enums.StatResist.LightImmune) && CharConfig.AvoidLightImmune
|| IsImmune(Enums.StatResist.PoisonImmune) && CharConfig.AvoidPoisonImmune
|| IsImmune(Enums.StatResist.MagicImmune) && CharConfig.AvoidMagicImmune)
if (!isPlayerMinion)
{
//Form1_0.method_1(MobName + ", isImmune", Color.Red);
if (MobType != "getBossName" && MobType != "getSuperUniqueName") continue; //go to next mobs
}
}
bool IsMobInBound = true;
if (MobType != "getBossName" && MobType != "getSuperUniqueName") IsMobInBound = IsThisMobInBound();
//Form1_0.method_1(MobName + ", isInBound: " + IsMobInBound + ", HP Buffer: " + MobHPBuffer, Color.Red);
//Console.WriteLine("found near mob " + txtFileNo + " at: " + xPosFinal + ", " + yPosFinal + " HP:" + MobHPBuffer);
if ((MobHPBuffer > 0 || (MobHPBuffer == 0 && MobName != ""))
&& (xPosFinal != 0 && yPosFinal != 0)//)
&& IsMobInBound)
{
if (CharConfig.LeaveDiabloClone && (EnumsMobsNPC.MonsterType)txtFileNo == EnumsMobsNPC.MonsterType.Diabloclone)
{
Form1_0.method_1("DClone found near, leaving game!", Color.Red);
Form1_0.LeaveGame(false);
Form1_0.WaitDelay(100);
return false;
}
//get nearest mobs in all mobs
if (Nearest)
{
int DiffXPlayer = xPosFinal - Form1_0.PlayerScan_0.xPosFinal;
int DiffYPlayer = yPosFinal - Form1_0.PlayerScan_0.yPosFinal;
if (DiffXPlayer < 0) DiffXPlayer = -DiffXPlayer;
if (DiffYPlayer < 0) DiffYPlayer = -DiffYPlayer;
if (DiffXPlayer <= LastDiffX
&& DiffYPlayer <= LastDiffY
&& DiffXPlayer <= MaxMobDistance
&& DiffYPlayer <= MaxMobDistance)
MobsStates = Form1_0.PlayerScan_0.GetStates(pStatsListExPtr);
if (!Form1_0.PlayerScan_0.HasState(EnumsStates.State.Revive, MobsStates))
{
NearestMobPointer = MobsPointerLocation;
LastDiffX = DiffXPlayer;
LastDiffY = DiffYPlayer;
}
xPosFinal = 0;
yPosFinal = 0;
}
GetUnitPathData();
GetStatsAddr();
int MobHPBuffer = GetHPFromStats();
if (MobType == "") GoodMob = true;
CurrentPointerBytes = new byte[8];
Form1_0.Mem_0.ReadRawMemory(MobsPointerLocation + 0x10, ref CurrentPointerBytes, CurrentPointerBytes.Length);
long unitDataPtr = BitConverter.ToInt64(CurrentPointerBytes, 0);
byte flag = Form1_0.Mem_0.ReadByteRaw((IntPtr)(unitDataPtr + 0x1A));
//get the mobs by name and type
if (MobType == "getBossName")
{
if (getBossName((int)txtFileNo) == MobName)
{
if (!Nearest)
/*if (MobType == "getBossName"
&& (Enums.MonsterType)GetMonsterType(flag) != Enums.MonsterType.Champion)
{
MobsHP = MobHPBuffer;
LastMobsPointerLocation = MobsPointerLocation;
LastMobtxtFileNo = txtFileNo;
LastMobPos.X = xPosFinal;
LastMobPos.Y = yPosFinal;
return true;
continue;
}
else
if (MobType == "getSuperUniqueName"
&& (Enums.MonsterType)GetMonsterType(flag) != Enums.MonsterType.Champion
&& (Enums.MonsterType)GetMonsterType(flag) != Enums.MonsterType.SuperUnique)
{
GoodMob = true;
continue;
}*/
if ((MobType == "getUniqueName" || MobType == "getSuperUniqueName" || MobType == "getBossName")
&& (Enums.MonsterType)GetMonsterType(flag) != Enums.MonsterType.Champion
&& (Enums.MonsterType)GetMonsterType(flag) != Enums.MonsterType.SuperUnique
&& (Enums.MonsterType)GetMonsterType(flag) != Enums.MonsterType.Unique)
{
continue;
}
}
}
if (MobType == "getPlayerMinion")
{
if (getPlayerMinion((int)txtFileNo) == MobName)
{
if (!Nearest)
//Avoid Immunes
if (CharConfig.AvoidColdImmune
|| CharConfig.AvoidFireImmune
|| CharConfig.AvoidLightImmune
|| CharConfig.AvoidPoisonImmune
|| CharConfig.AvoidMagicImmune)
{
MobsHP = MobHPBuffer;
LastMobsPointerLocation = MobsPointerLocation;
LastMobtxtFileNo = txtFileNo;
LastMobPos.X = xPosFinal;
LastMobPos.Y = yPosFinal;
return true;
if (IsImmune(Enums.StatResist.ColdImmune) && CharConfig.AvoidColdImmune
|| IsImmune(Enums.StatResist.FireImmune) && CharConfig.AvoidFireImmune
|| IsImmune(Enums.StatResist.LightImmune) && CharConfig.AvoidLightImmune
|| IsImmune(Enums.StatResist.PoisonImmune) && CharConfig.AvoidPoisonImmune
|| IsImmune(Enums.StatResist.MagicImmune) && CharConfig.AvoidMagicImmune)
{
//Form1_0.method_1(MobName + ", isImmune", Color.Red);
if (MobType != "getBossName" && MobType != "getSuperUniqueName") continue; //go to next mobs
}
}
else
bool IsMobInBound = true;
if (MobType != "getBossName" && MobType != "getSuperUniqueName") IsMobInBound = IsThisMobInBound();
//Form1_0.method_1(MobName + ", isInBound: " + IsMobInBound + ", HP Buffer: " + MobHPBuffer, Color.Red);
//Console.WriteLine("found near mob " + txtFileNo + " at: " + xPosFinal + ", " + yPosFinal + " HP:" + MobHPBuffer);
if ((MobHPBuffer > 0 || (MobHPBuffer == 0 && MobName != ""))
&& (xPosFinal != 0 && yPosFinal != 0)//)
&& IsMobInBound)
{
GoodMob = true;
}
}
}
if (MobType == "getSuperUniqueName" || MobType == "getUniqueName")
{
if ((MobName == "" && getSuperUniqueName((int)txtFileNo) != "") || (MobName != "" && getSuperUniqueName((int)txtFileNo) == MobName))
{
//Console.WriteLine(getSuperUniqueName((int)txtFileNo));
if (!Nearest)
{
MobsHP = MobHPBuffer;
LastMobsPointerLocation = MobsPointerLocation;
LastMobtxtFileNo = txtFileNo;
LastMobPos.X = xPosFinal;
LastMobPos.Y = yPosFinal;
return true;
}
else
{
GoodMob = true;
if (CharConfig.LeaveDiabloClone && (EnumsMobsNPC.MonsterType)txtFileNo == EnumsMobsNPC.MonsterType.Diabloclone)
{
Form1_0.method_1("DClone found near, leaving game!", Color.Red);
Form1_0.LeaveGame(false);
Form1_0.WaitDelay(100);
return false;
}
//get nearest mobs in all mobs
if (Nearest)
{
int DiffXPlayer = xPosFinal - Form1_0.PlayerScan_0.xPosFinal;
int DiffYPlayer = yPosFinal - Form1_0.PlayerScan_0.yPosFinal;
if (DiffXPlayer < 0) DiffXPlayer = -DiffXPlayer;
if (DiffYPlayer < 0) DiffYPlayer = -DiffYPlayer;
if (DiffXPlayer <= LastDiffX
&& DiffYPlayer <= LastDiffY
&& DiffXPlayer <= MaxMobDistance
&& DiffYPlayer <= MaxMobDistance)
{
NearestMobPointer = MobsPointerLocation;
LastDiffX = DiffXPlayer;
LastDiffY = DiffYPlayer;
}
xPosFinal = 0;
yPosFinal = 0;
}
if (MobType == "") GoodMob = true;
//get the mobs by name and type
if (MobType == "getBossName")
{
if (getBossName((int)txtFileNo) == MobName)
{
if (!Nearest)
{
MobsHP = MobHPBuffer;
LastMobsPointerLocation = MobsPointerLocation;
LastMobtxtFileNo = txtFileNo;
LastMobPos.X = xPosFinal;
LastMobPos.Y = yPosFinal;
return true;
}
else
{
GoodMob = true;
}
}
}
if (MobType == "getPlayerMinion")
{
if (getPlayerMinion((int)txtFileNo) == MobName)
{
if (!Nearest)
{
MobsHP = MobHPBuffer;
LastMobsPointerLocation = MobsPointerLocation;
LastMobtxtFileNo = txtFileNo;
LastMobPos.X = xPosFinal;
LastMobPos.Y = yPosFinal;
return true;
}
else
{
GoodMob = true;
}
}
}
if (MobType == "getSuperUniqueName" || MobType == "getUniqueName")
{
if ((MobName == "" && getSuperUniqueName((int)txtFileNo) != "") || (MobName != "" && getSuperUniqueName((int)txtFileNo) == MobName))
{
//Console.WriteLine(getSuperUniqueName((int)txtFileNo));
if (!Nearest)
{
MobsHP = MobHPBuffer;
LastMobsPointerLocation = MobsPointerLocation;
LastMobtxtFileNo = txtFileNo;
LastMobPos.X = xPosFinal;
LastMobPos.Y = yPosFinal;
return true;
}
else
{
GoodMob = true;
}
}
}
}
}
}
@ -670,7 +679,7 @@ public class MobsStruc
}
catch
{
Form1_0.method_1("Couldn't 'GetMobs()'", Color.Red);
Form1_0.method_1("Couldn't 'GetMobs()'", Color.OrangeRed);
}
return false;
@ -791,7 +800,7 @@ public class MobsStruc
}
catch
{
Form1_0.method_1("Couldn't get Mob HP from Stats!", Color.Red);
Form1_0.method_1("Couldn't get Mob HP from Stats!", Color.OrangeRed);
}
return 0; // or some other default value

View File

@ -73,7 +73,7 @@ public class NPCStruc
}
catch
{
Form1_0.method_1("Couldn't 'GetAllNPCNearby()'", Color.Red);
Form1_0.method_1("Couldn't 'GetAllNPCNearby()'", Color.OrangeRed);
}
return npcPositions2;
@ -127,7 +127,7 @@ public class NPCStruc
}
catch
{
Form1_0.method_1("Couldn't 'GetNPC()'", Color.Red);
Form1_0.method_1("Couldn't 'GetNPC()'", Color.OrangeRed);
}
return false;

View File

@ -96,7 +96,7 @@ public class ObjectsStruc
}
catch
{
Form1_0.method_1("Couldn't 'GetAllObjectsNearby()'", Color.Red);
Form1_0.method_1("Couldn't 'GetAllObjectsNearby()'", Color.OrangeRed);
}
return new List<int[]>();
}
@ -268,7 +268,7 @@ public class ObjectsStruc
}
catch
{
Form1_0.method_1("Couldn't 'GetObjects()'", Color.Red);
Form1_0.method_1("Couldn't 'GetObjects()'", Color.OrangeRed);
}
return false;

View File

@ -49,6 +49,8 @@ public class PatternsScan
public long StartIndexItem_V3 = 0x231818140B0;
public int UnitsScanVersion = 1;
public int MaxUnitsIncreaseCount = 5;
public int CurrentUnitsIncreaseCount = 0;
public void SetForm1(Form1 form1_1)
{
@ -582,15 +584,20 @@ public class PatternsScan
//VERSION 1 UNITS SCAN
public void IncreaseV1Scanning()
{
ScanUnitsNumber += 100;
ScanUnitsNegativeOffset += 25;
Form1_0.method_1("Units Scan have increased trying to detect more Units, but glitch may happend too!", Color.OrangeRed);
if (CurrentUnitsIncreaseCount < MaxUnitsIncreaseCount)
{
ScanUnitsNumber += 100;
ScanUnitsNegativeOffset += 25;
Form1_0.method_1("Units Scan have increased trying to detect more Units, but glitch may happend too!", Color.OrangeRed);
CurrentUnitsIncreaseCount++;
}
}
public void ResetV1Scanning()
{
ScanUnitsNumber = 2600;
ScanUnitsNegativeOffset = 150;
CurrentUnitsIncreaseCount = 0;
}
public void scanForUnitsPointerV1(string SearchUnitsType)

View File

@ -711,7 +711,7 @@ public class PlayerScan
}
catch
{
Form1_0.method_1("Couldn't 'scanForPlayer()'", Color.Red);
Form1_0.method_1("Couldn't 'scanForPlayer()'", Color.OrangeRed);
}
}
@ -801,7 +801,7 @@ public class PlayerScan
}
catch
{
Form1_0.method_1("Couldn't 'ScanForOthersPlayers()'", Color.Red);
Form1_0.method_1("Couldn't 'ScanForOthersPlayers()'", Color.OrangeRed);
}
return false;

View File

@ -108,6 +108,11 @@
</ItemGroup>
<ItemGroup>
<Compile Include="Bots\Act3Sewers.cs" />
<Compile Include="Bots\ArachnidLair.cs" />
<Compile Include="Bots\Pit.cs" />
<Compile Include="Bots\Crypt.cs" />
<Compile Include="Bots\Mausoleum.cs" />
<Compile Include="Bots\ShopBot.cs" />
<Compile Include="Bots\Frozenstein.cs" />
<Compile Include="Bots\Rush\AnyaRush.cs" />
<Compile Include="Bots\TerrorZones.cs" />

View File

@ -61,6 +61,11 @@ RunFrozensteinScript=false
RunTerrorZonesScript=false
RunItemGrabScriptOnly=false
ClearAfterBoss=false
RunShopBotScript=false
RunMausoleumScript=false
RunCryptScript=false
RunArachnidScript=false
RunPitScript=false
//#######################################
//NOT IN GAME SCRIPT (SEARCH GAMES OR CREATE A NEW GAME)

Binary file not shown.

Binary file not shown.

View File

@ -1 +1 @@
0d9e997fba28e6b8c8fd081b7e48ee7bf126721731758b7ff8acbbb5adf5c63b
2ae71cce72fade27b0411d421b78102354a654225d53ea8a2e0083b44862b45f

Binary file not shown.

Binary file not shown.