Compare commits

...

2 Commits

Author SHA1 Message Date
Bouletmarc a4e04f0064 V2.81 2024-04-26 07:35:30 -04:00
Bouletmarc 94eb8a90c3 V2.8 2024-04-26 04:54:40 -04:00
50 changed files with 1711 additions and 937 deletions

View File

@ -167,24 +167,8 @@ namespace app
Form1_0.Battle_0.DoBattleScript(15);
}
if (!Form1_0.ItemsStruc_0.GetItems(true)) Form1_0.WaitDelay(5);
if (!Form1_0.ItemsStruc_0.GetItems(true)) Form1_0.WaitDelay(5);
if (!Form1_0.ItemsStruc_0.GetItems(true)) Form1_0.WaitDelay(5);
if (!Form1_0.ItemsStruc_0.GetItems(true)) Form1_0.WaitDelay(5);
if (!Form1_0.ItemsStruc_0.GetItems(true)) Form1_0.WaitDelay(5);
if (!Form1_0.ItemsStruc_0.GetItems(true)) Form1_0.WaitDelay(5);
if (!Form1_0.ItemsStruc_0.GetItems(true)) Form1_0.WaitDelay(5);
if (!Form1_0.ItemsStruc_0.GetItems(true)) Form1_0.WaitDelay(5);
if (!Form1_0.ItemsStruc_0.GetItems(true)) Form1_0.WaitDelay(5);
if (!Form1_0.ItemsStruc_0.GetItems(true)) Form1_0.WaitDelay(5);
Form1_0.ItemsStruc_0.GrabAllItemsForGold();
Form1_0.Potions_0.CanUseSkillForRegen = true;
Form1_0.Town_0.FastTowning = false;
Form1_0.Town_0.UseLastTP = false;
ScriptDone = true;
if (Form1_0.Battle_0.EndBossBattle()) ScriptDone = true;
return;
//Form1_0.LeaveGame(true);
}
}
else
@ -200,11 +184,8 @@ namespace app
if (Form1_0.MobsStruc_0.GetMobs("getBossName", "Andariel", false, 200, new List<long>())) return; //redetect baal?
Form1_0.Potions_0.CanUseSkillForRegen = true;
Form1_0.Town_0.FastTowning = false;
Form1_0.Town_0.UseLastTP = false;
ScriptDone = true;
if (Form1_0.Battle_0.EndBossBattle()) ScriptDone = true;
return;
//Form1_0.LeaveGame(true);
}
}
}

View File

@ -257,30 +257,29 @@ namespace app
if (CornerClearedIndex == 0)
{
if (LeaveOnMobs()) return;
Form1_0.PathFinding_0.MoveToThisPos(ThroneCorner1Pos, 4, true);
if (Form1_0.PathFinding_0.MoveToThisPos(ThroneCorner1Pos, 4, true)) CornerClearedIndex++;
if (LeaveOnMobs()) return;
CornerClearedIndex++;
}
else if (CornerClearedIndex == 1)
{
if (LeaveOnMobs()) return;
Form1_0.PathFinding_0.MoveToThisPos(ThroneCorner2Pos, 4, true);
if (Form1_0.PathFinding_0.MoveToThisPos(ThroneCorner1Pos, 4, true)) CornerClearedIndex++;
if (LeaveOnMobs()) return;
CornerClearedIndex++;
//CornerClearedIndex++;
}
else if (CornerClearedIndex == 2)
{
if (LeaveOnMobs()) return;
Form1_0.PathFinding_0.MoveToThisPos(ThroneCorner4Pos, 4, true);
if (Form1_0.PathFinding_0.MoveToThisPos(ThroneCorner1Pos, 4, true)) CornerClearedIndex++;
if (LeaveOnMobs()) return;
CornerClearedIndex++;
//CornerClearedIndex++;
}
else if (CornerClearedIndex == 3)
{
if (LeaveOnMobs()) return;
Form1_0.PathFinding_0.MoveToThisPos(ThroneCorner3Pos, 4, true);
if (Form1_0.PathFinding_0.MoveToThisPos(ThroneCorner1Pos, 4, true)) CornerClearedIndex++;
if (LeaveOnMobs()) return;
CornerClearedIndex++;
//CornerClearedIndex++;
}
if (CornerClearedIndex == 4)
{
@ -492,27 +491,7 @@ namespace app
}
else
{
Form1_0.KeyMouse_0.ReleaseKey(System.Windows.Forms.Keys.E);
if (!Form1_0.ItemsStruc_0.GetItems(true)) Form1_0.WaitDelay(5);
if (!Form1_0.ItemsStruc_0.GetItems(true)) Form1_0.WaitDelay(5);
if (!Form1_0.ItemsStruc_0.GetItems(true)) Form1_0.WaitDelay(5);
if (!Form1_0.ItemsStruc_0.GetItems(true)) Form1_0.WaitDelay(5);
if (!Form1_0.ItemsStruc_0.GetItems(true)) Form1_0.WaitDelay(5);
if (!Form1_0.ItemsStruc_0.GetItems(true)) Form1_0.WaitDelay(5);
if (!Form1_0.ItemsStruc_0.GetItems(true)) Form1_0.WaitDelay(5);
if (!Form1_0.ItemsStruc_0.GetItems(true)) Form1_0.WaitDelay(5);
if (!Form1_0.ItemsStruc_0.GetItems(true)) Form1_0.WaitDelay(5);
if (!Form1_0.ItemsStruc_0.GetItems(true)) Form1_0.WaitDelay(5);
//if (!Form1_0.PublicGame) Form1_0.ItemsStruc_0.GrabAllItemsForGold();
Form1_0.ItemsStruc_0.GrabAllItemsForGold();
Form1_0.Battle_0.ClearingArea = false;
Form1_0.Battle_0.DoingBattle = false;
Form1_0.Potions_0.CanUseSkillForRegen = true;
//Form1_0.LeaveGame(true);
Form1_0.Town_0.FastTowning = false;
Form1_0.Town_0.UseLastTP = false;
ScriptDone = true;
if (Form1_0.Battle_0.EndBossBattle()) ScriptDone = true;
}
}
else
@ -575,14 +554,7 @@ namespace app
if (Form1_0.MobsStruc_0.GetMobs("getBossName", "Baal", false, 200, new List<long>())) return; //redetect baal?
//if (!Form1_0.PublicGame) Form1_0.ItemsStruc_0.GrabAllItemsForGold();
Form1_0.ItemsStruc_0.GrabAllItemsForGold();
Form1_0.Battle_0.ClearingArea = false;
Form1_0.Battle_0.DoingBattle = false;
Form1_0.Potions_0.CanUseSkillForRegen = true;
//Form1_0.LeaveGame(true);
Form1_0.Town_0.FastTowning = false;
Form1_0.Town_0.UseLastTP = false;
ScriptDone = true;
if (Form1_0.Battle_0.EndBossBattle()) ScriptDone = true;
}
}
}

View File

@ -502,24 +502,8 @@ namespace app
Form1_0.method_1("Killed Baal Manually!", Color.DarkMagenta);
}
if (!Form1_0.ItemsStruc_0.GetItems(true)) Form1_0.WaitDelay(5);
if (!Form1_0.ItemsStruc_0.GetItems(true)) Form1_0.WaitDelay(5);
if (!Form1_0.ItemsStruc_0.GetItems(true)) Form1_0.WaitDelay(5);
if (!Form1_0.ItemsStruc_0.GetItems(true)) Form1_0.WaitDelay(5);
if (!Form1_0.ItemsStruc_0.GetItems(true)) Form1_0.WaitDelay(5);
if (!Form1_0.ItemsStruc_0.GetItems(true)) Form1_0.WaitDelay(5);
if (!Form1_0.ItemsStruc_0.GetItems(true)) Form1_0.WaitDelay(5);
if (!Form1_0.ItemsStruc_0.GetItems(true)) Form1_0.WaitDelay(5);
if (!Form1_0.ItemsStruc_0.GetItems(true)) Form1_0.WaitDelay(5);
if (!Form1_0.ItemsStruc_0.GetItems(true)) Form1_0.WaitDelay(5);
Form1_0.ItemsStruc_0.GrabAllItemsForGold();
Form1_0.Potions_0.CanUseSkillForRegen = true;
SearchSameGamesAsLastOne = true;
//Form1_0.LeaveGame(true);
Form1_0.Town_0.FastTowning = false;
Form1_0.Town_0.UseLastTP = false;
ScriptDone = true;
//Form1_0.LeaveGame(false);
if (Form1_0.Battle_0.EndBossBattle()) ScriptDone = true;
}
}
else
@ -548,11 +532,7 @@ namespace app
if (Form1_0.MobsStruc_0.GetMobs("getBossName", "Baal", false, 200, new List<long>())) return; //redetect baal?
Form1_0.Potions_0.CanUseSkillForRegen = true;
SearchSameGamesAsLastOne = true;
//Form1_0.LeaveGame(true);
Form1_0.Town_0.FastTowning = false;
Form1_0.Town_0.UseLastTP = false;
ScriptDone = true;
//Form1_0.LeaveGame(false);
if (Form1_0.Battle_0.EndBossBattle()) ScriptDone = true;
}
}
}

View File

@ -474,9 +474,12 @@ namespace app
if (CurrentStep == 8)
{
Form1_0.PathFinding_0.MoveToThisPos(DiabloSpawnPos, 4, true);
Form1_0.Battle_0.CastDefense();
CurrentStep++;
if (Form1_0.PathFinding_0.MoveToThisPos(DiabloSpawnPos, 4, true))
{
//Form1_0.PathFinding_0.MoveToThisPos(DiabloSpawnPos, 4, true);
Form1_0.Battle_0.CastDefense();
CurrentStep++;
}
}
if (CurrentStep == 9)
@ -531,23 +534,8 @@ namespace app
Form1_0.Battle_0.DoBattleScript(15);
}
if (!Form1_0.ItemsStruc_0.GetItems(true)) Form1_0.WaitDelay(5);
if (!Form1_0.ItemsStruc_0.GetItems(true)) Form1_0.WaitDelay(5);
if (!Form1_0.ItemsStruc_0.GetItems(true)) Form1_0.WaitDelay(5);
if (!Form1_0.ItemsStruc_0.GetItems(true)) Form1_0.WaitDelay(5);
if (!Form1_0.ItemsStruc_0.GetItems(true)) Form1_0.WaitDelay(5);
if (!Form1_0.ItemsStruc_0.GetItems(true)) Form1_0.WaitDelay(5);
if (!Form1_0.ItemsStruc_0.GetItems(true)) Form1_0.WaitDelay(5);
if (!Form1_0.ItemsStruc_0.GetItems(true)) Form1_0.WaitDelay(5);
if (!Form1_0.ItemsStruc_0.GetItems(true)) Form1_0.WaitDelay(5);
if (!Form1_0.ItemsStruc_0.GetItems(true)) Form1_0.WaitDelay(5);
Form1_0.ItemsStruc_0.GrabAllItemsForGold();
Form1_0.Potions_0.CanUseSkillForRegen = true;
Form1_0.PathFinding_0.AcceptMoveOffset = BufferPathFindingMoveSize;
Form1_0.Town_0.FastTowning = false;
Form1_0.Town_0.UseLastTP = false;
ScriptDone = true;
if (Form1_0.Battle_0.EndBossBattle()) ScriptDone = true;
return;
//Form1_0.LeaveGame(true);
}
@ -566,9 +554,7 @@ namespace app
Form1_0.Potions_0.CanUseSkillForRegen = true;
Form1_0.PathFinding_0.AcceptMoveOffset = BufferPathFindingMoveSize;
Form1_0.Town_0.FastTowning = false;
Form1_0.Town_0.UseLastTP = false;
ScriptDone = true;
if (Form1_0.Battle_0.EndBossBattle()) ScriptDone = true;
return;
//Form1_0.LeaveGame(true);
}

View File

@ -212,24 +212,8 @@ namespace app
}
else
{
if (!Form1_0.ItemsStruc_0.GetItems(true)) Form1_0.WaitDelay(5);
if (!Form1_0.ItemsStruc_0.GetItems(true)) Form1_0.WaitDelay(5);
if (!Form1_0.ItemsStruc_0.GetItems(true)) Form1_0.WaitDelay(5);
if (!Form1_0.ItemsStruc_0.GetItems(true)) Form1_0.WaitDelay(5);
if (!Form1_0.ItemsStruc_0.GetItems(true)) Form1_0.WaitDelay(5);
if (!Form1_0.ItemsStruc_0.GetItems(true)) Form1_0.WaitDelay(5);
if (!Form1_0.ItemsStruc_0.GetItems(true)) Form1_0.WaitDelay(5);
if (!Form1_0.ItemsStruc_0.GetItems(true)) Form1_0.WaitDelay(5);
if (!Form1_0.ItemsStruc_0.GetItems(true)) Form1_0.WaitDelay(5);
if (!Form1_0.ItemsStruc_0.GetItems(true)) Form1_0.WaitDelay(5);
Form1_0.ItemsStruc_0.GrabAllItemsForGold();
Form1_0.Potions_0.CanUseSkillForRegen = true;
Form1_0.Town_0.FastTowning = false;
Form1_0.Town_0.UseLastTP = false;
ScriptDone = true;
if (Form1_0.Battle_0.EndBossBattle()) ScriptDone = true;
return;
//Form1_0.LeaveGame(true);
}
}
else
@ -242,12 +226,8 @@ namespace app
Form1_0.ItemsStruc_0.GrabAllItemsForGold();
if (Form1_0.MobsStruc_0.GetMobs("getSuperUniqueName", "The Countess", false, 200, new List<long>())) return; //redetect baal?
Form1_0.Potions_0.CanUseSkillForRegen = true;
Form1_0.Town_0.FastTowning = false;
Form1_0.Town_0.UseLastTP = false;
ScriptDone = true;
if (Form1_0.Battle_0.EndBossBattle()) ScriptDone = true;
return;
//Form1_0.LeaveGame(true);
}
}
}

View File

@ -193,24 +193,8 @@ namespace app
}
else
{
if (!Form1_0.ItemsStruc_0.GetItems(true)) Form1_0.WaitDelay(5);
if (!Form1_0.ItemsStruc_0.GetItems(true)) Form1_0.WaitDelay(5);
if (!Form1_0.ItemsStruc_0.GetItems(true)) Form1_0.WaitDelay(5);
if (!Form1_0.ItemsStruc_0.GetItems(true)) Form1_0.WaitDelay(5);
if (!Form1_0.ItemsStruc_0.GetItems(true)) Form1_0.WaitDelay(5);
if (!Form1_0.ItemsStruc_0.GetItems(true)) Form1_0.WaitDelay(5);
if (!Form1_0.ItemsStruc_0.GetItems(true)) Form1_0.WaitDelay(5);
if (!Form1_0.ItemsStruc_0.GetItems(true)) Form1_0.WaitDelay(5);
if (!Form1_0.ItemsStruc_0.GetItems(true)) Form1_0.WaitDelay(5);
if (!Form1_0.ItemsStruc_0.GetItems(true)) Form1_0.WaitDelay(5);
Form1_0.ItemsStruc_0.GrabAllItemsForGold();
Form1_0.Potions_0.CanUseSkillForRegen = true;
Form1_0.Town_0.FastTowning = false;
Form1_0.Town_0.UseLastTP = false;
ScriptDone = true;
if (Form1_0.Battle_0.EndBossBattle()) ScriptDone = true;
return;
//Form1_0.LeaveGame(true);
}
}
else
@ -224,11 +208,8 @@ namespace app
if (Form1_0.MobsStruc_0.GetMobs("getBossName", "Duriel", false, 200, new List<long>())) return; //redetect baal?
Form1_0.Potions_0.CanUseSkillForRegen = true;
Form1_0.Town_0.FastTowning = false;
Form1_0.Town_0.UseLastTP = false;
ScriptDone = true;
if (Form1_0.Battle_0.EndBossBattle()) ScriptDone = true;
return;
//Form1_0.LeaveGame(true);
}
}
}

View File

@ -85,24 +85,8 @@ namespace app
}
else
{
if (!Form1_0.ItemsStruc_0.GetItems(true)) Form1_0.WaitDelay(5);
if (!Form1_0.ItemsStruc_0.GetItems(true)) Form1_0.WaitDelay(5);
if (!Form1_0.ItemsStruc_0.GetItems(true)) Form1_0.WaitDelay(5);
if (!Form1_0.ItemsStruc_0.GetItems(true)) Form1_0.WaitDelay(5);
if (!Form1_0.ItemsStruc_0.GetItems(true)) Form1_0.WaitDelay(5);
if (!Form1_0.ItemsStruc_0.GetItems(true)) Form1_0.WaitDelay(5);
if (!Form1_0.ItemsStruc_0.GetItems(true)) Form1_0.WaitDelay(5);
if (!Form1_0.ItemsStruc_0.GetItems(true)) Form1_0.WaitDelay(5);
if (!Form1_0.ItemsStruc_0.GetItems(true)) Form1_0.WaitDelay(5);
if (!Form1_0.ItemsStruc_0.GetItems(true)) Form1_0.WaitDelay(5);
Form1_0.ItemsStruc_0.GrabAllItemsForGold();
Form1_0.Potions_0.CanUseSkillForRegen = true;
Form1_0.Town_0.UseLastTP = false;
Form1_0.Town_0.FastTowning = false;
ScriptDone = true;
if (Form1_0.Battle_0.EndBossBattle()) ScriptDone = true;
return;
//Form1_0.LeaveGame(true);
}
}
else
@ -116,11 +100,8 @@ namespace app
if (Form1_0.MobsStruc_0.GetMobs("getSuperUniqueName", "Eldritch", false, 200, new List<long>())) return; //redetect baal?
Form1_0.Potions_0.CanUseSkillForRegen = true;
Form1_0.Town_0.UseLastTP = false;
Form1_0.Town_0.FastTowning = false;
ScriptDone = true;
if (Form1_0.Battle_0.EndBossBattle()) ScriptDone = true;
return;
//Form1_0.LeaveGame(true);
}
}
}

View File

@ -123,6 +123,7 @@ namespace app
//JungleMediumChestLeft ####
MapAreaStruc.Position ThisChestPos = Form1_0.MapAreaStruc_0.GetPositionOfObject("object", "GoodChest", (int)Enums.Area.LowerKurast, IgnoredChestList);
int ChestObject = Form1_0.MapAreaStruc_0.CurrentObjectIndex;
int Tryy = 0;
while (ThisChestPos.X != 0 && ThisChestPos.Y != 0 && Tryy < 30)
{
@ -153,10 +154,11 @@ namespace app
Form1_0.Potions_0.CheckIfWeUsePotion();
tryy2++;
}
IgnoredChestList.Add(Form1_0.MapAreaStruc_0.CurrentObjectIndex);
IgnoredChestList.Add(ChestObject);
}
ThisChestPos = Form1_0.MapAreaStruc_0.GetPositionOfObject("object", "GoodChest", (int) Enums.Area.LowerKurast, IgnoredChestList);
ChestObject = Form1_0.MapAreaStruc_0.CurrentObjectIndex;
Tryy++;
}

View File

@ -120,42 +120,32 @@ namespace app
}
else
{
if (!Form1_0.ItemsStruc_0.GetItems(true)) Form1_0.WaitDelay(5);
if (!Form1_0.ItemsStruc_0.GetItems(true)) Form1_0.WaitDelay(5);
if (!Form1_0.ItemsStruc_0.GetItems(true)) Form1_0.WaitDelay(5);
if (!Form1_0.ItemsStruc_0.GetItems(true)) Form1_0.WaitDelay(5);
if (!Form1_0.ItemsStruc_0.GetItems(true)) Form1_0.WaitDelay(5);
if (!Form1_0.ItemsStruc_0.GetItems(true)) Form1_0.WaitDelay(5);
if (!Form1_0.ItemsStruc_0.GetItems(true)) Form1_0.WaitDelay(5);
if (!Form1_0.ItemsStruc_0.GetItems(true)) Form1_0.WaitDelay(5);
if (!Form1_0.ItemsStruc_0.GetItems(true)) Form1_0.WaitDelay(5);
if (!Form1_0.ItemsStruc_0.GetItems(true)) Form1_0.WaitDelay(5);
Form1_0.ItemsStruc_0.GrabAllItemsForGold();
Form1_0.Potions_0.CanUseSkillForRegen = true;
//Position ThisFinalPosition = Form1_0.MapAreaStruc_0.GetPositionOfObject("object", "portal", 102 - 1, new List<int>() { });
//if (Form1_0.Mover_0.MoveToLocation(ThisFinalPosition.X, ThisFinalPosition.Y))
while (Form1_0.PlayerScan_0.levelNo == (int)Enums.Area.DuranceOfHateLevel3)
if (Form1_0.Battle_0.EndBossBattle())
{
Form1_0.ItemsStruc_0.GetItems(true);
if (Form1_0.Mover_0.MoveToLocation(17601, 8070))
//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)
{
Position itemScreenPos = Form1_0.GameStruc_0.World2Screen(Form1_0.PlayerScan_0.xPosFinal, Form1_0.PlayerScan_0.yPosFinal, 17601, 8070);
//Position itemScreenPos = Form1_0.GameStruc_0.World2Screen(Form1_0.PlayerScan_0.xPosFinal, Form1_0.PlayerScan_0.yPosFinal, ThisFinalPosition.X, ThisFinalPosition.Y);
Form1_0.KeyMouse_0.MouseClicc_RealPos(itemScreenPos.X, itemScreenPos.Y - 15);
Form1_0.ItemsStruc_0.GetItems(true);
if (Form1_0.Mover_0.MoveToLocation(17601, 8070))
{
Position itemScreenPos = Form1_0.GameStruc_0.World2Screen(Form1_0.PlayerScan_0.xPosFinal, Form1_0.PlayerScan_0.yPosFinal, 17601, 8070);
//Position itemScreenPos = Form1_0.GameStruc_0.World2Screen(Form1_0.PlayerScan_0.xPosFinal, Form1_0.PlayerScan_0.yPosFinal, ThisFinalPosition.X, ThisFinalPosition.Y);
Form1_0.PlayerScan_0.GetPositions();
Form1_0.KeyMouse_0.MouseClicc_RealPos(itemScreenPos.X, itemScreenPos.Y - 15);
Form1_0.PlayerScan_0.GetPositions();
}
}
Form1_0.WaitDelay(700);
Form1_0.Town_0.FastTowning = false;
Form1_0.Town_0.UseLastTP = false;
ScriptDone = true;
return;
//Form1_0.LeaveGame(true);
}
Form1_0.WaitDelay(700);
Form1_0.Town_0.FastTowning = false;
Form1_0.Town_0.UseLastTP = false;
ScriptDone = true;
return;
//Form1_0.LeaveGame(true);
}
}
else
@ -169,11 +159,8 @@ namespace app
if (Form1_0.MobsStruc_0.GetMobs("getBossName", "Mephisto", false, 200, new List<long>())) return; //redetect baal?
Form1_0.Potions_0.CanUseSkillForRegen = true;
Form1_0.Town_0.FastTowning = false;
Form1_0.Town_0.UseLastTP = false;
ScriptDone = true;
if (Form1_0.Battle_0.EndBossBattle()) ScriptDone = true;
return;
//Form1_0.LeaveGame(true);
}
}
}

View File

@ -109,24 +109,8 @@ namespace app
}
else
{
if (!Form1_0.ItemsStruc_0.GetItems(true)) Form1_0.WaitDelay(5);
if (!Form1_0.ItemsStruc_0.GetItems(true)) Form1_0.WaitDelay(5);
if (!Form1_0.ItemsStruc_0.GetItems(true)) Form1_0.WaitDelay(5);
if (!Form1_0.ItemsStruc_0.GetItems(true)) Form1_0.WaitDelay(5);
if (!Form1_0.ItemsStruc_0.GetItems(true)) Form1_0.WaitDelay(5);
if (!Form1_0.ItemsStruc_0.GetItems(true)) Form1_0.WaitDelay(5);
if (!Form1_0.ItemsStruc_0.GetItems(true)) Form1_0.WaitDelay(5);
if (!Form1_0.ItemsStruc_0.GetItems(true)) Form1_0.WaitDelay(5);
if (!Form1_0.ItemsStruc_0.GetItems(true)) Form1_0.WaitDelay(5);
if (!Form1_0.ItemsStruc_0.GetItems(true)) Form1_0.WaitDelay(5);
Form1_0.ItemsStruc_0.GrabAllItemsForGold();
Form1_0.Potions_0.CanUseSkillForRegen = true;
Form1_0.Town_0.FastTowning = false;
Form1_0.Town_0.UseLastTP = false;
ScriptDone = true;
if (Form1_0.Battle_0.EndBossBattle()) ScriptDone = true;
return;
//Form1_0.LeaveGame(true);
}
}
else
@ -140,11 +124,8 @@ namespace app
if (Form1_0.MobsStruc_0.GetMobs("getSuperUniqueName", "Nihlatak", false, 200, new List<long>())) return; //redetect baal?
Form1_0.Potions_0.CanUseSkillForRegen = true;
Form1_0.Town_0.FastTowning = false;
Form1_0.Town_0.UseLastTP = false;
ScriptDone = true;
if (Form1_0.Battle_0.EndBossBattle()) ScriptDone = true;
return;
//Form1_0.LeaveGame(true);
}
}
}

View File

@ -88,24 +88,8 @@ namespace app
}
else
{
if (!Form1_0.ItemsStruc_0.GetItems(true)) Form1_0.WaitDelay(5);
if (!Form1_0.ItemsStruc_0.GetItems(true)) Form1_0.WaitDelay(5);
if (!Form1_0.ItemsStruc_0.GetItems(true)) Form1_0.WaitDelay(5);
if (!Form1_0.ItemsStruc_0.GetItems(true)) Form1_0.WaitDelay(5);
if (!Form1_0.ItemsStruc_0.GetItems(true)) Form1_0.WaitDelay(5);
if (!Form1_0.ItemsStruc_0.GetItems(true)) Form1_0.WaitDelay(5);
if (!Form1_0.ItemsStruc_0.GetItems(true)) Form1_0.WaitDelay(5);
if (!Form1_0.ItemsStruc_0.GetItems(true)) Form1_0.WaitDelay(5);
if (!Form1_0.ItemsStruc_0.GetItems(true)) Form1_0.WaitDelay(5);
if (!Form1_0.ItemsStruc_0.GetItems(true)) Form1_0.WaitDelay(5);
Form1_0.ItemsStruc_0.GrabAllItemsForGold();
Form1_0.Potions_0.CanUseSkillForRegen = true;
Form1_0.Town_0.FastTowning = false;
Form1_0.Town_0.UseLastTP = false;
ScriptDone = true;
if (Form1_0.Battle_0.EndBossBattle()) ScriptDone = true;
return;
//Form1_0.LeaveGame(true);
}
}
else
@ -119,11 +103,8 @@ namespace app
if (Form1_0.MobsStruc_0.GetMobs("getSuperUniqueName", "Pindleskin", false, 200, new List<long>())) return; //redetect baal?
Form1_0.Potions_0.CanUseSkillForRegen = true;
Form1_0.Town_0.FastTowning = false;
Form1_0.Town_0.UseLastTP = false;
ScriptDone = true;
if (Form1_0.Battle_0.EndBossBattle()) ScriptDone = true;
return;
//Form1_0.LeaveGame(true);
}
}
}

View File

@ -97,24 +97,8 @@ namespace app
}
else
{
if (!Form1_0.ItemsStruc_0.GetItems(true)) Form1_0.WaitDelay(5);
if (!Form1_0.ItemsStruc_0.GetItems(true)) Form1_0.WaitDelay(5);
if (!Form1_0.ItemsStruc_0.GetItems(true)) Form1_0.WaitDelay(5);
if (!Form1_0.ItemsStruc_0.GetItems(true)) Form1_0.WaitDelay(5);
if (!Form1_0.ItemsStruc_0.GetItems(true)) Form1_0.WaitDelay(5);
if (!Form1_0.ItemsStruc_0.GetItems(true)) Form1_0.WaitDelay(5);
if (!Form1_0.ItemsStruc_0.GetItems(true)) Form1_0.WaitDelay(5);
if (!Form1_0.ItemsStruc_0.GetItems(true)) Form1_0.WaitDelay(5);
if (!Form1_0.ItemsStruc_0.GetItems(true)) Form1_0.WaitDelay(5);
if (!Form1_0.ItemsStruc_0.GetItems(true)) Form1_0.WaitDelay(5);
Form1_0.ItemsStruc_0.GrabAllItemsForGold();
Form1_0.Potions_0.CanUseSkillForRegen = true;
Form1_0.Town_0.FastTowning = false;
Form1_0.Town_0.UseLastTP = false;
ScriptDone = true;
if (Form1_0.Battle_0.EndBossBattle()) ScriptDone = true;
return;
//Form1_0.LeaveGame(true);
}
}
else
@ -128,11 +112,8 @@ namespace app
if (Form1_0.MobsStruc_0.GetMobs("getSuperUniqueName", "Shenk", false, 200, new List<long>())) return; //redetect baal?
Form1_0.Potions_0.CanUseSkillForRegen = true;
Form1_0.Town_0.FastTowning = false;
Form1_0.Town_0.UseLastTP = false;
ScriptDone = true;
if (Form1_0.Battle_0.EndBossBattle()) ScriptDone = true;
return;
//Form1_0.LeaveGame(true);
}
}
}

View File

@ -81,24 +81,8 @@ namespace app
}
else
{
if (!Form1_0.ItemsStruc_0.GetItems(true)) Form1_0.WaitDelay(5);
if (!Form1_0.ItemsStruc_0.GetItems(true)) Form1_0.WaitDelay(5);
if (!Form1_0.ItemsStruc_0.GetItems(true)) Form1_0.WaitDelay(5);
if (!Form1_0.ItemsStruc_0.GetItems(true)) Form1_0.WaitDelay(5);
if (!Form1_0.ItemsStruc_0.GetItems(true)) Form1_0.WaitDelay(5);
if (!Form1_0.ItemsStruc_0.GetItems(true)) Form1_0.WaitDelay(5);
if (!Form1_0.ItemsStruc_0.GetItems(true)) Form1_0.WaitDelay(5);
if (!Form1_0.ItemsStruc_0.GetItems(true)) Form1_0.WaitDelay(5);
if (!Form1_0.ItemsStruc_0.GetItems(true)) Form1_0.WaitDelay(5);
if (!Form1_0.ItemsStruc_0.GetItems(true)) Form1_0.WaitDelay(5);
Form1_0.ItemsStruc_0.GrabAllItemsForGold();
Form1_0.Potions_0.CanUseSkillForRegen = true;
Form1_0.Town_0.FastTowning = false;
Form1_0.Town_0.UseLastTP = false;
ScriptDone = true;
if (Form1_0.Battle_0.EndBossBattle()) ScriptDone = true;
return;
//Form1_0.LeaveGame(true);
}
}
else
@ -112,11 +96,8 @@ namespace app
if (Form1_0.MobsStruc_0.GetMobs("getBossName", "Summoner", false, 200, new List<long>())) return; //redetect baal?
Form1_0.Potions_0.CanUseSkillForRegen = true;
Form1_0.Town_0.FastTowning = false;
Form1_0.Town_0.UseLastTP = false;
ScriptDone = true;
if (Form1_0.Battle_0.EndBossBattle()) ScriptDone = true;
return;
//Form1_0.LeaveGame(true);
}
}
}

View File

@ -113,31 +113,13 @@ namespace app
if (Form1_0.MobsStruc_0.GetMobs("getSuperUniqueName", "Council Member", false, 200, new List<long>())) return; //redetect baal?
Form1_0.Potions_0.CanUseSkillForRegen = true;
Form1_0.Town_0.FastTowning = false;
Form1_0.Town_0.UseLastTP = false;
ScriptDone = true;
if (Form1_0.Battle_0.EndBossBattle()) ScriptDone = true;
return;
}
else
{
if (!Form1_0.ItemsStruc_0.GetItems(true)) Form1_0.WaitDelay(5);
if (!Form1_0.ItemsStruc_0.GetItems(true)) Form1_0.WaitDelay(5);
if (!Form1_0.ItemsStruc_0.GetItems(true)) Form1_0.WaitDelay(5);
if (!Form1_0.ItemsStruc_0.GetItems(true)) Form1_0.WaitDelay(5);
if (!Form1_0.ItemsStruc_0.GetItems(true)) Form1_0.WaitDelay(5);
if (!Form1_0.ItemsStruc_0.GetItems(true)) Form1_0.WaitDelay(5);
if (!Form1_0.ItemsStruc_0.GetItems(true)) Form1_0.WaitDelay(5);
if (!Form1_0.ItemsStruc_0.GetItems(true)) Form1_0.WaitDelay(5);
if (!Form1_0.ItemsStruc_0.GetItems(true)) Form1_0.WaitDelay(5);
if (!Form1_0.ItemsStruc_0.GetItems(true)) Form1_0.WaitDelay(5);
Form1_0.ItemsStruc_0.GrabAllItemsForGold();
Form1_0.Potions_0.CanUseSkillForRegen = true;
Form1_0.Town_0.FastTowning = false;
Form1_0.Town_0.UseLastTP = false;
ScriptDone = true;
if (Form1_0.Battle_0.EndBossBattle()) ScriptDone = true;
return;
//Form1_0.LeaveGame(true);
}
}

View File

@ -25,6 +25,9 @@ namespace app
public static System.Windows.Forms.Keys KeySkillDefenseAura = Keys.F6; //defiance
public static System.Windows.Forms.Keys KeySkillCastDefense = Keys.F5; //sacred shield
public static System.Windows.Forms.Keys KeySkillLifeAura = Keys.F3; //prayer
public static System.Windows.Forms.Keys KeySkillBattleOrder = Keys.D5; //BO - BattleOrder
public static System.Windows.Forms.Keys KeySkillBattleCommand = Keys.D6; //BattleCommand
public static System.Windows.Forms.Keys KeySkillBattleCry = Keys.D7; //BattleCry
//#######################################
//BELT AND INVENTORY SETTINGS
@ -59,6 +62,7 @@ namespace app
public static bool IDAtShop = true;
public static bool LeaveDiabloClone = true;
public static bool GambleGold = true;
public static bool UseKeys = true;
//#######################################
//MERC SETTINGS
@ -73,6 +77,7 @@ namespace app
public static bool IsRushing = false;
public static string RunningOnChar = "";
public static string RushLeecherName = "";
public static bool ClearAfterBoss = false;
public static bool ShowOverlay = true;
public static bool RunWPTaker = false;
public static bool RunMapHackOnly = false;
@ -119,6 +124,15 @@ namespace app
public static string GamePass = "33"; //SET GAME PASS, IF USING GAME MAKER
public static int GameDifficulty = 2; //0 = normal, 1 = nighmare, 2 = hell
//#######################################
//AVOID IMMUNE SETTINGS
//#######################################
public static bool AvoidColdImmune = false;
public static bool AvoidFireImmune = false;
public static bool AvoidLightImmune = false;
public static bool AvoidPoisonImmune = false;
public static bool AvoidMagicImmune = false;
//#######################################
//GAME/PC SCREEN SETTINGS
//#######################################

View File

@ -133,6 +133,9 @@ namespace app
if (Splitted[0] == "KeySkillDefenseAura") AllLines[i] = "KeySkillDefenseAura=" + CharConfig.KeySkillDefenseAura;
if (Splitted[0] == "KeySkillCastDefense") AllLines[i] = "KeySkillCastDefense=" + CharConfig.KeySkillCastDefense;
if (Splitted[0] == "KeySkillLifeAura") AllLines[i] = "KeySkillLifeAura=" + CharConfig.KeySkillLifeAura;
if (Splitted[0] == "KeySkillBattleOrder") AllLines[i] = "KeySkillBattleOrder=" + CharConfig.KeySkillBattleOrder;
if (Splitted[0] == "KeySkillBattleCommand") AllLines[i] = "KeySkillBattleCommand=" + CharConfig.KeySkillBattleCommand;
if (Splitted[0] == "KeySkillBattleCry") AllLines[i] = "KeySkillBattleCry=" + CharConfig.KeySkillBattleCry;
if (Splitted[0] == "BeltPotTypeToHave") AllLines[i] = "BeltPotTypeToHave=" + CharConfig.BeltPotTypeToHave[0] + "," + CharConfig.BeltPotTypeToHave[1] + "," + CharConfig.BeltPotTypeToHave[2] + "," + CharConfig.BeltPotTypeToHave[3];
@ -167,6 +170,7 @@ namespace app
if (Splitted[0] == "GrabForGold") AllLines[i] = "GrabForGold=" + CharConfig.GrabForGold;
if (Splitted[0] == "LeaveDiabloClone") AllLines[i] = "LeaveDiabloClone=" + CharConfig.LeaveDiabloClone;
if (Splitted[0] == "GambleGold") AllLines[i] = "GambleGold=" + CharConfig.GambleGold;
if (Splitted[0] == "UseKeys") AllLines[i] = "UseKeys=" + CharConfig.UseKeys;
if (Splitted[0] == "ChickenHP") AllLines[i] = "ChickenHP=" + CharConfig.ChickenHP;
if (Splitted[0] == "TakeHPPotUnder" && !Splitted[0].Contains("MercTakeHPPotUnder")) AllLines[i] = "TakeHPPotUnder=" + CharConfig.TakeHPPotUnder;
if (Splitted[0] == "TakeRVPotUnder") AllLines[i] = "TakeRVPotUnder=" + CharConfig.TakeRVPotUnder;
@ -179,6 +183,12 @@ namespace app
if (Splitted[0] == "UsingMerc") AllLines[i] = "UsingMerc=" + CharConfig.UsingMerc;
if (Splitted[0] == "MercTakeHPPotUnder") AllLines[i] = "MercTakeHPPotUnder=" + CharConfig.MercTakeHPPotUnder;
if (Splitted[0] == "AvoidColdImmune") AllLines[i] = "AvoidColdImmune=" + CharConfig.AvoidColdImmune;
if (Splitted[0] == "AvoidFireImmune") AllLines[i] = "AvoidFireImmune=" + CharConfig.AvoidFireImmune;
if (Splitted[0] == "AvoidLightImmune") AllLines[i] = "AvoidLightImmune=" + CharConfig.AvoidLightImmune;
if (Splitted[0] == "AvoidPoisonImmune") AllLines[i] = "AvoidPoisonImmune=" + CharConfig.AvoidPoisonImmune;
if (Splitted[0] == "AvoidMagicImmune") AllLines[i] = "AvoidMagicImmune=" + CharConfig.AvoidMagicImmune;
}
}
@ -205,6 +215,7 @@ namespace app
if (Splitted[0] == "RushLeecherName") AllLines[i] = "RushLeecherName=" + CharConfig.RushLeecherName;
//#########
//SPECIAL BAAL FEATURES
if (Splitted[0] == "KillBaal") AllLines[i] = "KillBaal=" + Form1_0.Baal_0.KillBaal;
if (Splitted[0] == "LeaveIfMobsIsPresent_ID")
{
@ -227,6 +238,18 @@ namespace app
if (Splitted[0] == "LeaveIfMobsCountIsAbove") AllLines[i] = "LeaveIfMobsCountIsAbove=" + Form1_0.Baal_0.LeaveIfMobsCountIsAbove;
if (Splitted[0] == "SafeHealingStrat") AllLines[i] = "SafeHealingStrat=" + Form1_0.Baal_0.SafeYoloStrat;
//#########
//SPECIAL OVERLAY FEATURES
if (Splitted[0] == "ShowMobs") AllLines[i] = "ShowMobs=" + Form1_0.overlayForm.ShowMobs;
if (Splitted[0] == "ShowWPs") AllLines[i] = "ShowWPs=" +Form1_0.overlayForm.ShowWPs;
if (Splitted[0] == "ShowGoodChests") AllLines[i] = "ShowGoodChests=" +Form1_0.overlayForm.ShowGoodChests;
if (Splitted[0] == "ShowLogs") AllLines[i] = "ShowLogs=" +Form1_0.overlayForm.ShowLogs;
if (Splitted[0] == "ShowBotInfos") AllLines[i] = "ShowBotInfos=" +Form1_0.overlayForm.ShowBotInfos;
if (Splitted[0] == "ShowNPC") AllLines[i] = "ShowNPC=" +Form1_0.overlayForm.ShowNPC;
if (Splitted[0] == "ShowPathFinding") AllLines[i] = "ShowPathFinding=" +Form1_0.overlayForm.ShowPathFinding;
if (Splitted[0] == "ShowExits") AllLines[i] = "ShowExits=" +Form1_0.overlayForm.ShowExits;
if (Splitted[0] == "ShowMapHackShowLines") AllLines[i] = "ShowMapHackShowLines=" +Form1_0.overlayForm.ShowMapHackShowLines;
if (Splitted[0] == "ShowUnitsScanCount") AllLines[i] = "ShowUnitsScanCount=" +Form1_0.overlayForm.ShowUnitsScanCount;
//#########
if (Splitted[0] == "RunMapHackOnly") AllLines[i] = "RunMapHackOnly=" + CharConfig.RunMapHackOnly;
if (Splitted[0] == "RunDarkWoodRush") AllLines[i] = "RunDarkWoodRush=" + CharConfig.RunDarkWoodRush;
@ -271,6 +294,9 @@ namespace app
if (Splitted[0] == "RunChaosSearchGameScript") AllLines[i] = "RunChaosSearchGameScript=" + CharConfig.RunChaosSearchGameScript;
if (Splitted[0] == "RunBaalSearchGameScript") AllLines[i] = "RunBaalSearchGameScript=" + CharConfig.RunBaalSearchGameScript;
if (Splitted[0] == "RunGameMakerScript") AllLines[i] = "RunGameMakerScript=" + CharConfig.RunGameMakerScript;
if (Splitted[0] == "ClearAfterBoss") AllLines[i] = "ClearAfterBoss=" + CharConfig.ClearAfterBoss;
if (Splitted[0] == "GameName") AllLines[i] = "GameName=" + CharConfig.GameName;
if (Splitted[0] == "GameDifficulty") AllLines[i] = "GameDifficulty=" + CharConfig.GameDifficulty;
if (Splitted[0] == "GamePass") AllLines[i] = "GamePass=" + CharConfig.GamePass;
@ -896,7 +922,18 @@ namespace app
Form1_0.Baal_0.SafeYoloStrat = bool.Parse(Params[1].ToLower());
}
//#########
//SPECIAL OVERLAY FEATURES
if (Params[0].Contains("ShowMobs")) Form1_0.overlayForm.ShowMobs = bool.Parse(Params[1].ToLower());
if (Params[0].Contains("ShowWPs")) Form1_0.overlayForm.ShowWPs = bool.Parse(Params[1].ToLower());
if (Params[0].Contains("ShowGoodChests")) Form1_0.overlayForm.ShowGoodChests = bool.Parse(Params[1].ToLower());
if (Params[0].Contains("ShowLogs")) Form1_0.overlayForm.ShowLogs = bool.Parse(Params[1].ToLower());
if (Params[0].Contains("ShowBotInfos")) Form1_0.overlayForm.ShowBotInfos = bool.Parse(Params[1].ToLower());
if (Params[0].Contains("ShowNPC")) Form1_0.overlayForm.ShowNPC = bool.Parse(Params[1].ToLower());
if (Params[0].Contains("ShowPathFinding")) Form1_0.overlayForm.ShowPathFinding = bool.Parse(Params[1].ToLower());
if (Params[0].Contains("ShowExits")) Form1_0.overlayForm.ShowExits = bool.Parse(Params[1].ToLower());
if (Params[0].Contains("ShowMapHackShowLines")) Form1_0.overlayForm.ShowMapHackShowLines = bool.Parse(Params[1].ToLower());
if (Params[0].Contains("ShowUnitsScanCount")) Form1_0.overlayForm.ShowUnitsScanCount = bool.Parse(Params[1].ToLower());
//#########
if (Params[0].Contains("RunMapHackOnly"))
{
@ -1061,6 +1098,10 @@ namespace app
{
CharConfig.RunGameMakerScript = bool.Parse(Params[1].ToLower());
}
if (Params[0].Contains("ClearAfterBoss"))
{
CharConfig.ClearAfterBoss = bool.Parse(Params[1].ToLower());
}
if (Params[0].Contains("GameName"))
{
CharConfig.GameName = Params[1];
@ -1216,6 +1257,18 @@ namespace app
{
Enum.TryParse(Params[1], out CharConfig.KeySkillLifeAura);
}
if (Params[0].Contains("KeySkillBattleOrder"))
{
Enum.TryParse(Params[1], out CharConfig.KeySkillBattleOrder);
}
if (Params[0].Contains("KeySkillBattleCommand"))
{
Enum.TryParse(Params[1], out CharConfig.KeySkillBattleCommand);
}
if (Params[0].Contains("KeySkillBattleCry"))
{
Enum.TryParse(Params[1], out CharConfig.KeySkillBattleCry);
}
//######
if (Params[0].Contains("BeltPotTypeToHave") && Params[1].Contains(","))
{
@ -1298,6 +1351,10 @@ namespace app
{
CharConfig.GambleGold = bool.Parse(Params[1].ToLower());
}
if (Params[0].Contains("UseKeys"))
{
CharConfig.UseKeys = bool.Parse(Params[1].ToLower());
}
if (Params[0].Contains("ChickenHP"))
{
CharConfig.ChickenHP = int.Parse(Params[1]);
@ -1344,7 +1401,26 @@ namespace app
CharConfig.MercTakeHPPotUnder = int.Parse(Params[1]);
}
//#####
if (Params[0].Contains("AvoidColdImmune"))
{
CharConfig.AvoidColdImmune = bool.Parse(Params[1].ToLower());
}
if (Params[0].Contains("AvoidFireImmune"))
{
CharConfig.AvoidFireImmune = bool.Parse(Params[1].ToLower());
}
if (Params[0].Contains("AvoidLightImmune"))
{
CharConfig.AvoidLightImmune = bool.Parse(Params[1].ToLower());
}
if (Params[0].Contains("AvoidPoisonImmune"))
{
CharConfig.AvoidPoisonImmune = bool.Parse(Params[1].ToLower());
}
if (Params[0].Contains("AvoidMagicImmune"))
{
CharConfig.AvoidMagicImmune = bool.Parse(Params[1].ToLower());
}
//#####
}
}

View File

@ -42,7 +42,7 @@ namespace app
public partial class Form1 : Form
{
public string BotVersion = "V2.71";
public string BotVersion = "V2.81";
public string D2_LOD_113C_Path = "";
@ -61,6 +61,7 @@ namespace app
public int hWnd = 0;
public int LoopDone = 0;
public bool CharDied = false;
public bool RestartingBot = false;
public bool PrintedGameTime = false;
public DateTime CheckTime = new DateTime();
@ -783,17 +784,17 @@ namespace app
{
Form1_0.SetGameStatus("NEW GAME STARTED");
//PatternsScan_0.StartIndexItem = long.MaxValue;
PublicGame = (CharConfig.GamePass == "");
if (!PublicGame && CharConfig.IsRushing) PublicGame = true;
if (!PublicGame && !CharConfig.RunGameMakerScript) PublicGame = true;
if (PublicGame) KeyMouse_0.ProcessingDelay = 5;
else KeyMouse_0.ProcessingDelay = 2;
GameStruc_0.AlreadyChickening = false;
//PatternsScan_0.StartIndexItemLast = long.MaxValue;
PatternsScan_0.ScanUnitsNumber = 2600;
//PatternsScan_0.ScanUnitsNumber = 2600;
//PatternsScan_0.ScanUnitsNumber = 2400;
//PatternsScan_0.ScanUnitsNumber = 2048;
PatternsScan_0.StartIndexItem_V2 = long.MaxValue;
PatternsScan_0.StartIndexItemLast_V2 = long.MaxValue;
Town_0.TriedToShopCount = 0;
Town_0.TriedToShopCount2 = 0;
Town_0.TriedToMercCount = 0;
@ -875,6 +876,8 @@ namespace app
GameStruc_0.ChickenTry = 0;
MercStruc_0.MercOwnerID = 0;
ItemsAlert_0.CheckItemNames();
//##############################
MapAreaStruc_0.ScanMapStruc();
}
@ -921,6 +924,7 @@ namespace app
//if (!CharConfig.IsRushing) WaitDelay(400); //wait here because 'loading' menu is not correct
if (!CharConfig.IsRushing) WaitDelay(250); //wait here because 'loading' menu is not correct
if (CharConfig.IsRushing) PlayerScan_0.ScanForLeecher();
if (PatternsScan_0.StartIndexItem_V2 == long.MaxValue) PatternsScan_0.DetectFirstUnitPointer();
Town_0.GetCorpse();
ItemsStruc_0.GetBadItemsOnCursor();
HasPointers = true;
@ -936,6 +940,7 @@ namespace app
//if (!CharConfig.IsRushing) WaitDelay(400); //wait here because 'loading' menu is not correct
if (!CharConfig.IsRushing) WaitDelay(250); //wait here because 'loading' menu is not correct
if (CharConfig.IsRushing) PlayerScan_0.ScanForLeecher();
if (PatternsScan_0.StartIndexItem_V2 == long.MaxValue) PatternsScan_0.DetectFirstUnitPointer();
Town_0.GetCorpse();
ItemsStruc_0.GetBadItemsOnCursor();
HasPointers = true;
@ -983,9 +988,9 @@ namespace app
//Battle_0.CastSkills();
//ItemsStruc_0.GetItems(false);
//ItemsStruc_0.GetItems(true);
//overlayForm.SetAllOverlay();
//Running = false;
//if (!Running) SetStartButtonEnable(true);
//if (Running) LoopTimer.Start();
//return;
@ -1391,8 +1396,18 @@ namespace app
SetProcessingTime();
if (!Running && RestartingBot)
{
StartBot();
RestartingBot = false;
}
if (Running) LoopTimer.Start();
if (!Running) SetStartButtonEnable(true);
if (!Running)
{
method_1("Bot stopped!", Color.DarkGreen);
overlayForm.SetAllOverlay();
}
}
public void GoToNextScript()
@ -1637,6 +1652,7 @@ namespace app
//}
//catch { }
}
public void SetItemsButton(bool Enabledd)
{
//try
@ -1658,6 +1674,7 @@ namespace app
public void StopBot()
{
RestartingBot = false;
SetPlayButtonText("START");
Running = false;
HasPointers = false;
@ -1671,19 +1688,31 @@ namespace app
SetGameStatus("STOPPED");
}
public void StartBot()
{
method_1("Bot started!", Color.DarkGreen);
SetSettingButton(false);
SetPlayButtonText("STOP");
Running = true;
BotJustStarted = true;
Startt();
}
public void button1_Click(object sender, EventArgs e)
{
if (!Running && button1.Enabled)
{
SetStartButtonEnable(false);
SetSettingButton(false);
SetPlayButtonText("STOP");
Running = true;
BotJustStarted = true;
Startt();
method_1("Bot will start!", Color.DarkGreen);
StartBot();
}
else if (!Running && !button1.Enabled)
{
method_1("Bot will reastart!", Color.DarkGreen);
RestartingBot = true;
}
else if (Running)
{
method_1("Bot will stop!", Color.DarkGreen);
StopBot();
}
}

View File

@ -33,6 +33,12 @@
this.label1 = new System.Windows.Forms.Label();
this.comboBoxType = new System.Windows.Forms.ComboBox();
this.groupBox1 = new System.Windows.Forms.GroupBox();
this.textBoxBattleCry = new System.Windows.Forms.TextBox();
this.label27 = new System.Windows.Forms.Label();
this.textBoxBattleCommand = new System.Windows.Forms.TextBox();
this.label26 = new System.Windows.Forms.Label();
this.textBoxBattleOrder = new System.Windows.Forms.TextBox();
this.label25 = new System.Windows.Forms.Label();
this.checkBoxAttachRightHand = new System.Windows.Forms.CheckBox();
this.textBoxLifeSkill = new System.Windows.Forms.TextBox();
this.label8 = new System.Windows.Forms.Label();
@ -62,6 +68,7 @@
this.textBoxCharName = new System.Windows.Forms.TextBox();
this.label14 = new System.Windows.Forms.Label();
this.groupBox3 = new System.Windows.Forms.GroupBox();
this.linkLabel1 = new System.Windows.Forms.LinkLabel();
this.numericUpDownKeyYPos = new System.Windows.Forms.NumericUpDown();
this.numericUpDownKeyXPos = new System.Windows.Forms.NumericUpDown();
this.label21 = new System.Windows.Forms.Label();
@ -85,17 +92,20 @@
this.label22 = new System.Windows.Forms.Label();
this.groupBox4 = new System.Windows.Forms.GroupBox();
this.groupBox5 = new System.Windows.Forms.GroupBox();
this.checkBoxClearAfterBoss = new System.Windows.Forms.CheckBox();
this.comboBoxAvoidImmune = new System.Windows.Forms.ComboBox();
this.label24 = new System.Windows.Forms.Label();
this.checkBoxGamble = new System.Windows.Forms.CheckBox();
this.checkBoxDClone = new System.Windows.Forms.CheckBox();
this.checkBoxIDAtShop = new System.Windows.Forms.CheckBox();
this.toolTip1 = new System.Windows.Forms.ToolTip(this.components);
this.label23 = new System.Windows.Forms.Label();
this.openFileDialog1 = new System.Windows.Forms.OpenFileDialog();
this.linkLabel1 = new System.Windows.Forms.LinkLabel();
this.panelHelpKeys = new System.Windows.Forms.Panel();
this.buttonReload = new System.Windows.Forms.Button();
this.button1 = new System.Windows.Forms.Button();
this.label23 = new System.Windows.Forms.Label();
this.openFileDialog1 = new System.Windows.Forms.OpenFileDialog();
this.panelHelpKeys = new System.Windows.Forms.Panel();
this.button2 = new System.Windows.Forms.Button();
this.checkBoxUseKeys = new System.Windows.Forms.CheckBox();
this.groupBox1.SuspendLayout();
this.groupBox2.SuspendLayout();
this.groupBox3.SuspendLayout();
@ -136,6 +146,12 @@
//
// groupBox1
//
this.groupBox1.Controls.Add(this.textBoxBattleCry);
this.groupBox1.Controls.Add(this.label27);
this.groupBox1.Controls.Add(this.textBoxBattleCommand);
this.groupBox1.Controls.Add(this.label26);
this.groupBox1.Controls.Add(this.textBoxBattleOrder);
this.groupBox1.Controls.Add(this.label25);
this.groupBox1.Controls.Add(this.checkBoxAttachRightHand);
this.groupBox1.Controls.Add(this.textBoxLifeSkill);
this.groupBox1.Controls.Add(this.label8);
@ -153,11 +169,62 @@
this.groupBox1.Controls.Add(this.label2);
this.groupBox1.Location = new System.Drawing.Point(5, 36);
this.groupBox1.Name = "groupBox1";
this.groupBox1.Size = new System.Drawing.Size(171, 207);
this.groupBox1.Size = new System.Drawing.Size(171, 273);
this.groupBox1.TabIndex = 2;
this.groupBox1.TabStop = false;
this.groupBox1.Text = "Skills Shortcuts Keys";
//
// textBoxBattleCry
//
this.textBoxBattleCry.Location = new System.Drawing.Point(123, 244);
this.textBoxBattleCry.Name = "textBoxBattleCry";
this.textBoxBattleCry.Size = new System.Drawing.Size(37, 20);
this.textBoxBattleCry.TabIndex = 23;
this.toolTip1.SetToolTip(this.textBoxBattleCry, "Battle Cry (if using CTA, else set to nothing)");
//
// label27
//
this.label27.AutoSize = true;
this.label27.Location = new System.Drawing.Point(10, 247);
this.label27.Name = "label27";
this.label27.Size = new System.Drawing.Size(77, 13);
this.label27.TabIndex = 22;
this.label27.Text = "Battle Cry Skill:";
//
// textBoxBattleCommand
//
this.textBoxBattleCommand.Location = new System.Drawing.Point(123, 222);
this.textBoxBattleCommand.Name = "textBoxBattleCommand";
this.textBoxBattleCommand.Size = new System.Drawing.Size(37, 20);
this.textBoxBattleCommand.TabIndex = 21;
this.toolTip1.SetToolTip(this.textBoxBattleCommand, "Battle Command (if using CTA, else set to nothing)");
//
// label26
//
this.label26.AutoSize = true;
this.label26.Location = new System.Drawing.Point(10, 225);
this.label26.Name = "label26";
this.label26.Size = new System.Drawing.Size(109, 13);
this.label26.TabIndex = 20;
this.label26.Text = "Battle Command Skill:";
//
// textBoxBattleOrder
//
this.textBoxBattleOrder.Location = new System.Drawing.Point(123, 200);
this.textBoxBattleOrder.Name = "textBoxBattleOrder";
this.textBoxBattleOrder.Size = new System.Drawing.Size(37, 20);
this.textBoxBattleOrder.TabIndex = 19;
this.toolTip1.SetToolTip(this.textBoxBattleOrder, "Battle Orders (BO) (if using CTA, else set to nothing)");
//
// label25
//
this.label25.AutoSize = true;
this.label25.Location = new System.Drawing.Point(10, 203);
this.label25.Name = "label25";
this.label25.Size = new System.Drawing.Size(88, 13);
this.label25.TabIndex = 18;
this.label25.Text = "Battle Order Skill:";
//
// checkBoxAttachRightHand
//
this.checkBoxAttachRightHand.AutoSize = true;
@ -297,9 +364,9 @@
this.groupBox2.Controls.Add(this.comboBoxBelt3);
this.groupBox2.Controls.Add(this.comboBoxBelt2);
this.groupBox2.Controls.Add(this.comboBoxBelt1);
this.groupBox2.Location = new System.Drawing.Point(201, 249);
this.groupBox2.Location = new System.Drawing.Point(182, 245);
this.groupBox2.Name = "groupBox2";
this.groupBox2.Size = new System.Drawing.Size(245, 64);
this.groupBox2.Size = new System.Drawing.Size(284, 64);
this.groupBox2.TabIndex = 3;
this.groupBox2.TabStop = false;
this.groupBox2.Text = "Belt Potions Type";
@ -307,7 +374,7 @@
// label12
//
this.label12.AutoSize = true;
this.label12.Location = new System.Drawing.Point(193, 22);
this.label12.Location = new System.Drawing.Point(214, 20);
this.label12.Name = "label12";
this.label12.Size = new System.Drawing.Size(34, 13);
this.label12.TabIndex = 7;
@ -316,7 +383,7 @@
// label11
//
this.label11.AutoSize = true;
this.label11.Location = new System.Drawing.Point(136, 22);
this.label11.Location = new System.Drawing.Point(157, 20);
this.label11.Name = "label11";
this.label11.Size = new System.Drawing.Size(34, 13);
this.label11.TabIndex = 6;
@ -325,7 +392,7 @@
// label10
//
this.label10.AutoSize = true;
this.label10.Location = new System.Drawing.Point(78, 22);
this.label10.Location = new System.Drawing.Point(99, 20);
this.label10.Name = "label10";
this.label10.Size = new System.Drawing.Size(34, 13);
this.label10.TabIndex = 5;
@ -334,7 +401,7 @@
// label9
//
this.label9.AutoSize = true;
this.label9.Location = new System.Drawing.Point(21, 22);
this.label9.Location = new System.Drawing.Point(42, 20);
this.label9.Name = "label9";
this.label9.Size = new System.Drawing.Size(34, 13);
this.label9.TabIndex = 4;
@ -348,7 +415,7 @@
"Mana",
"RV",
"Full RV"});
this.comboBoxBelt4.Location = new System.Drawing.Point(180, 38);
this.comboBoxBelt4.Location = new System.Drawing.Point(201, 36);
this.comboBoxBelt4.Name = "comboBoxBelt4";
this.comboBoxBelt4.Size = new System.Drawing.Size(58, 21);
this.comboBoxBelt4.TabIndex = 3;
@ -361,7 +428,7 @@
"Mana",
"RV",
"Full RV"});
this.comboBoxBelt3.Location = new System.Drawing.Point(122, 38);
this.comboBoxBelt3.Location = new System.Drawing.Point(143, 36);
this.comboBoxBelt3.Name = "comboBoxBelt3";
this.comboBoxBelt3.Size = new System.Drawing.Size(58, 21);
this.comboBoxBelt3.TabIndex = 2;
@ -374,7 +441,7 @@
"Mana",
"RV",
"Full RV"});
this.comboBoxBelt2.Location = new System.Drawing.Point(64, 38);
this.comboBoxBelt2.Location = new System.Drawing.Point(85, 36);
this.comboBoxBelt2.Name = "comboBoxBelt2";
this.comboBoxBelt2.Size = new System.Drawing.Size(58, 21);
this.comboBoxBelt2.TabIndex = 1;
@ -387,16 +454,16 @@
"Mana",
"RV",
"Full RV"});
this.comboBoxBelt1.Location = new System.Drawing.Point(6, 38);
this.comboBoxBelt1.Location = new System.Drawing.Point(27, 36);
this.comboBoxBelt1.Name = "comboBoxBelt1";
this.comboBoxBelt1.Size = new System.Drawing.Size(58, 21);
this.comboBoxBelt1.TabIndex = 0;
//
// groupBoxInventory
//
this.groupBoxInventory.Location = new System.Drawing.Point(5, 319);
this.groupBoxInventory.Location = new System.Drawing.Point(182, 357);
this.groupBoxInventory.Name = "groupBoxInventory";
this.groupBoxInventory.Size = new System.Drawing.Size(282, 101);
this.groupBoxInventory.Size = new System.Drawing.Size(284, 101);
this.groupBoxInventory.TabIndex = 4;
this.groupBoxInventory.TabStop = false;
this.groupBoxInventory.Text = "Inventory Slots (Checked mean this slot is NOT FREE)";
@ -405,7 +472,7 @@
//
this.label13.AutoSize = true;
this.label13.ForeColor = System.Drawing.Color.Red;
this.label13.Location = new System.Drawing.Point(74, 443);
this.label13.Location = new System.Drawing.Point(252, 481);
this.label13.Name = "label13";
this.label13.Size = new System.Drawing.Size(137, 39);
this.label13.TabIndex = 5;
@ -450,11 +517,23 @@
this.groupBox3.Controls.Add(this.textBoxCharName);
this.groupBox3.Location = new System.Drawing.Point(182, 36);
this.groupBox3.Name = "groupBox3";
this.groupBox3.Size = new System.Drawing.Size(264, 207);
this.groupBox3.Size = new System.Drawing.Size(284, 207);
this.groupBox3.TabIndex = 20;
this.groupBox3.TabStop = false;
this.groupBox3.Text = "Char Parameters";
//
// linkLabel1
//
this.linkLabel1.AutoSize = true;
this.linkLabel1.Location = new System.Drawing.Point(243, 170);
this.linkLabel1.Name = "linkLabel1";
this.linkLabel1.Size = new System.Drawing.Size(13, 13);
this.linkLabel1.TabIndex = 35;
this.linkLabel1.TabStop = true;
this.linkLabel1.Text = "?";
this.toolTip1.SetToolTip(this.linkLabel1, "Help for Keys location");
this.linkLabel1.LinkClicked += new System.Windows.Forms.LinkLabelLinkClickedEventHandler(this.linkLabel1_LinkClicked);
//
// numericUpDownKeyYPos
//
this.numericUpDownKeyYPos.Location = new System.Drawing.Point(207, 167);
@ -601,7 +680,7 @@
// checkBoxGrabGold
//
this.checkBoxGrabGold.AutoSize = true;
this.checkBoxGrabGold.Location = new System.Drawing.Point(6, 51);
this.checkBoxGrabGold.Location = new System.Drawing.Point(13, 51);
this.checkBoxGrabGold.Name = "checkBoxGrabGold";
this.checkBoxGrabGold.Size = new System.Drawing.Size(89, 17);
this.checkBoxGrabGold.TabIndex = 36;
@ -612,7 +691,7 @@
// checkBoxUseBO
//
this.checkBoxUseBO.AutoSize = true;
this.checkBoxUseBO.Location = new System.Drawing.Point(6, 35);
this.checkBoxUseBO.Location = new System.Drawing.Point(13, 35);
this.checkBoxUseBO.Name = "checkBoxUseBO";
this.checkBoxUseBO.Size = new System.Drawing.Size(63, 17);
this.checkBoxUseBO.TabIndex = 35;
@ -623,7 +702,7 @@
// checkBoxUseTeleport
//
this.checkBoxUseTeleport.AutoSize = true;
this.checkBoxUseTeleport.Location = new System.Drawing.Point(6, 19);
this.checkBoxUseTeleport.Location = new System.Drawing.Point(13, 19);
this.checkBoxUseTeleport.Name = "checkBoxUseTeleport";
this.checkBoxUseTeleport.Size = new System.Drawing.Size(87, 17);
this.checkBoxUseTeleport.TabIndex = 18;
@ -633,7 +712,7 @@
// checkBoxUseMerc
//
this.checkBoxUseMerc.AutoSize = true;
this.checkBoxUseMerc.Location = new System.Drawing.Point(46, 16);
this.checkBoxUseMerc.Location = new System.Drawing.Point(10, 16);
this.checkBoxUseMerc.Name = "checkBoxUseMerc";
this.checkBoxUseMerc.Size = new System.Drawing.Size(72, 17);
this.checkBoxUseMerc.TabIndex = 35;
@ -642,15 +721,15 @@
//
// numericUpDownMercTakeHPUnder
//
this.numericUpDownMercTakeHPUnder.Location = new System.Drawing.Point(128, 37);
this.numericUpDownMercTakeHPUnder.Location = new System.Drawing.Point(216, 13);
this.numericUpDownMercTakeHPUnder.Name = "numericUpDownMercTakeHPUnder";
this.numericUpDownMercTakeHPUnder.Size = new System.Drawing.Size(53, 20);
this.numericUpDownMercTakeHPUnder.Size = new System.Drawing.Size(41, 20);
this.numericUpDownMercTakeHPUnder.TabIndex = 36;
//
// label22
//
this.label22.AutoSize = true;
this.label22.Location = new System.Drawing.Point(7, 39);
this.label22.Location = new System.Drawing.Point(99, 17);
this.label22.Name = "label22";
this.label22.Size = new System.Drawing.Size(115, 13);
this.label22.TabIndex = 35;
@ -661,32 +740,71 @@
this.groupBox4.Controls.Add(this.checkBoxUseMerc);
this.groupBox4.Controls.Add(this.numericUpDownMercTakeHPUnder);
this.groupBox4.Controls.Add(this.label22);
this.groupBox4.Location = new System.Drawing.Point(5, 249);
this.groupBox4.Location = new System.Drawing.Point(182, 310);
this.groupBox4.Name = "groupBox4";
this.groupBox4.Size = new System.Drawing.Size(190, 64);
this.groupBox4.Size = new System.Drawing.Size(284, 41);
this.groupBox4.TabIndex = 37;
this.groupBox4.TabStop = false;
this.groupBox4.Text = "Merc Parameters";
//
// groupBox5
//
this.groupBox5.Controls.Add(this.checkBoxUseKeys);
this.groupBox5.Controls.Add(this.checkBoxClearAfterBoss);
this.groupBox5.Controls.Add(this.comboBoxAvoidImmune);
this.groupBox5.Controls.Add(this.label24);
this.groupBox5.Controls.Add(this.checkBoxGamble);
this.groupBox5.Controls.Add(this.checkBoxDClone);
this.groupBox5.Controls.Add(this.checkBoxIDAtShop);
this.groupBox5.Controls.Add(this.checkBoxGrabGold);
this.groupBox5.Controls.Add(this.checkBoxUseTeleport);
this.groupBox5.Controls.Add(this.checkBoxUseBO);
this.groupBox5.Location = new System.Drawing.Point(293, 319);
this.groupBox5.Location = new System.Drawing.Point(5, 315);
this.groupBox5.Name = "groupBox5";
this.groupBox5.Size = new System.Drawing.Size(153, 168);
this.groupBox5.Size = new System.Drawing.Size(171, 201);
this.groupBox5.TabIndex = 5;
this.groupBox5.TabStop = false;
this.groupBox5.Text = "Extras";
//
// checkBoxClearAfterBoss
//
this.checkBoxClearAfterBoss.AutoSize = true;
this.checkBoxClearAfterBoss.Location = new System.Drawing.Point(13, 115);
this.checkBoxClearAfterBoss.Name = "checkBoxClearAfterBoss";
this.checkBoxClearAfterBoss.Size = new System.Drawing.Size(117, 17);
this.checkBoxClearAfterBoss.TabIndex = 42;
this.checkBoxClearAfterBoss.Text = "Clear After Boss Kill";
this.toolTip1.SetToolTip(this.checkBoxClearAfterBoss, "Enable this to clear the area after a Boss is killed");
this.checkBoxClearAfterBoss.UseVisualStyleBackColor = true;
//
// comboBoxAvoidImmune
//
this.comboBoxAvoidImmune.FormattingEnabled = true;
this.comboBoxAvoidImmune.Items.AddRange(new object[] {
"None",
"Cold Immune",
"Fire Immune",
"Light Immune",
"Poison Immune",
"Magic Immune"});
this.comboBoxAvoidImmune.Location = new System.Drawing.Point(13, 174);
this.comboBoxAvoidImmune.Name = "comboBoxAvoidImmune";
this.comboBoxAvoidImmune.Size = new System.Drawing.Size(139, 21);
this.comboBoxAvoidImmune.TabIndex = 41;
//
// label24
//
this.label24.AutoSize = true;
this.label24.Location = new System.Drawing.Point(44, 158);
this.label24.Name = "label24";
this.label24.Size = new System.Drawing.Size(77, 13);
this.label24.TabIndex = 40;
this.label24.Text = "Avoid Immune:";
//
// checkBoxGamble
//
this.checkBoxGamble.AutoSize = true;
this.checkBoxGamble.Location = new System.Drawing.Point(6, 99);
this.checkBoxGamble.Location = new System.Drawing.Point(13, 99);
this.checkBoxGamble.Name = "checkBoxGamble";
this.checkBoxGamble.Size = new System.Drawing.Size(87, 17);
this.checkBoxGamble.TabIndex = 39;
@ -698,7 +816,7 @@
// checkBoxDClone
//
this.checkBoxDClone.AutoSize = true;
this.checkBoxDClone.Location = new System.Drawing.Point(6, 83);
this.checkBoxDClone.Location = new System.Drawing.Point(13, 83);
this.checkBoxDClone.Name = "checkBoxDClone";
this.checkBoxDClone.Size = new System.Drawing.Size(109, 17);
this.checkBoxDClone.TabIndex = 38;
@ -709,7 +827,7 @@
// checkBoxIDAtShop
//
this.checkBoxIDAtShop.AutoSize = true;
this.checkBoxIDAtShop.Location = new System.Drawing.Point(6, 67);
this.checkBoxIDAtShop.Location = new System.Drawing.Point(13, 67);
this.checkBoxIDAtShop.Name = "checkBoxIDAtShop";
this.checkBoxIDAtShop.Size = new System.Drawing.Size(78, 17);
this.checkBoxIDAtShop.TabIndex = 37;
@ -717,45 +835,6 @@
this.toolTip1.SetToolTip(this.checkBoxIDAtShop, "Disabled will ID at Cain");
this.checkBoxIDAtShop.UseVisualStyleBackColor = true;
//
// label23
//
this.label23.AutoSize = true;
this.label23.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.label23.ForeColor = System.Drawing.Color.Red;
this.label23.Location = new System.Drawing.Point(8, 425);
this.label23.Name = "label23";
this.label23.Size = new System.Drawing.Size(277, 13);
this.label23.TabIndex = 39;
this.label23.Text = "Put theses dummy items inside the shared stash";
//
// openFileDialog1
//
this.openFileDialog1.DefaultExt = "*.txt";
this.openFileDialog1.Filter = "\'Char\' Settings|*.txt";
this.openFileDialog1.Title = "Open \'PaladinHammer.txt\' or \'SorceressBlizzard.txt\'";
//
// linkLabel1
//
this.linkLabel1.AutoSize = true;
this.linkLabel1.Location = new System.Drawing.Point(243, 170);
this.linkLabel1.Name = "linkLabel1";
this.linkLabel1.Size = new System.Drawing.Size(13, 13);
this.linkLabel1.TabIndex = 35;
this.linkLabel1.TabStop = true;
this.linkLabel1.Text = "?";
this.toolTip1.SetToolTip(this.linkLabel1, "Help for Keys location");
this.linkLabel1.LinkClicked += new System.Windows.Forms.LinkLabelLinkClickedEventHandler(this.linkLabel1_LinkClicked);
//
// panelHelpKeys
//
this.panelHelpKeys.BackgroundImage = global::app.Properties.Resources.BMBot10;
this.panelHelpKeys.BackgroundImageLayout = System.Windows.Forms.ImageLayout.Stretch;
this.panelHelpKeys.Controls.Add(this.button2);
this.panelHelpKeys.Location = new System.Drawing.Point(4, 248);
this.panelHelpKeys.Name = "panelHelpKeys";
this.panelHelpKeys.Size = new System.Drawing.Size(441, 190);
this.panelHelpKeys.TabIndex = 41;
//
// buttonReload
//
this.buttonReload.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
@ -782,6 +861,34 @@
this.button1.UseVisualStyleBackColor = true;
this.button1.Click += new System.EventHandler(this.button1_Click);
//
// label23
//
this.label23.AutoSize = true;
this.label23.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.label23.ForeColor = System.Drawing.Color.Red;
this.label23.Location = new System.Drawing.Point(186, 463);
this.label23.Name = "label23";
this.label23.Size = new System.Drawing.Size(277, 13);
this.label23.TabIndex = 39;
this.label23.Text = "Put theses dummy items inside the shared stash";
//
// openFileDialog1
//
this.openFileDialog1.DefaultExt = "*.txt";
this.openFileDialog1.Filter = "\'Char\' Settings|*.txt";
this.openFileDialog1.Title = "Open \'PaladinHammer.txt\' or \'SorceressBlizzard.txt\'";
//
// panelHelpKeys
//
this.panelHelpKeys.BackgroundImage = global::app.Properties.Resources.BMBot10;
this.panelHelpKeys.BackgroundImageLayout = System.Windows.Forms.ImageLayout.Stretch;
this.panelHelpKeys.Controls.Add(this.button2);
this.panelHelpKeys.Location = new System.Drawing.Point(472, 248);
this.panelHelpKeys.Name = "panelHelpKeys";
this.panelHelpKeys.Size = new System.Drawing.Size(441, 190);
this.panelHelpKeys.TabIndex = 41;
this.panelHelpKeys.Visible = false;
//
// button2
//
this.button2.Image = global::app.Properties.Resources.Delete;
@ -792,12 +899,25 @@
this.button2.UseVisualStyleBackColor = true;
this.button2.Click += new System.EventHandler(this.button2_Click);
//
// checkBoxUseKeys
//
this.checkBoxUseKeys.AutoSize = true;
this.checkBoxUseKeys.Location = new System.Drawing.Point(13, 131);
this.checkBoxUseKeys.Name = "checkBoxUseKeys";
this.checkBoxUseKeys.Size = new System.Drawing.Size(136, 17);
this.checkBoxUseKeys.TabIndex = 43;
this.checkBoxUseKeys.Text = "Have Keys in Inventory";
this.toolTip1.SetToolTip(this.checkBoxUseKeys, "Enable this if you have Keys in your inventory and want to purchase Keys at Shop " +
" for Chest opening");
this.checkBoxUseKeys.UseVisualStyleBackColor = true;
this.checkBoxUseKeys.CheckedChanged += new System.EventHandler(this.checkBoxUseKeys_CheckedChanged);
//
// FormCharSettings
//
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
this.BackColor = System.Drawing.SystemColors.ControlDark;
this.ClientSize = new System.Drawing.Size(452, 487);
this.ClientSize = new System.Drawing.Size(469, 528);
this.Controls.Add(this.panelHelpKeys);
this.Controls.Add(this.buttonReload);
this.Controls.Add(this.label23);
@ -910,5 +1030,15 @@
private System.Windows.Forms.LinkLabel linkLabel1;
private System.Windows.Forms.Panel panelHelpKeys;
private System.Windows.Forms.Button button2;
private System.Windows.Forms.ComboBox comboBoxAvoidImmune;
private System.Windows.Forms.Label label24;
private System.Windows.Forms.TextBox textBoxBattleCry;
private System.Windows.Forms.Label label27;
private System.Windows.Forms.TextBox textBoxBattleCommand;
private System.Windows.Forms.Label label26;
private System.Windows.Forms.TextBox textBoxBattleOrder;
private System.Windows.Forms.Label label25;
private System.Windows.Forms.CheckBox checkBoxClearAfterBoss;
private System.Windows.Forms.CheckBox checkBoxUseKeys;
}
}

View File

@ -21,6 +21,11 @@ namespace app
Form1_0 = form1_1;
InitializeComponent();
panelHelpKeys.Location = new Point(4, 248);
panelHelpKeys.Visible = false;
comboBoxAvoidImmune.SelectedIndex = 0;
for (int i = 0; i < 40; i++)
{
CheckBox CheckBox_0 = new CheckBox();
@ -35,22 +40,22 @@ namespace app
{
if (i < 10)
{
ThisXPos = groupBoxInventory.Location.X + 5 + (i * 18);
ThisXPos = this.Location.X + 5 + (i * 18);
ThixYPos = 20;
}
if (i >= 10 && i < 20)
{
ThisXPos = groupBoxInventory.Location.X + 5 + ((i - 10) * 18);
ThisXPos = this.Location.X + 5 + ((i - 10) * 18);
ThixYPos = 20 + (18 * 1);
}
if (i >= 20 && i < 30)
{
ThisXPos = groupBoxInventory.Location.X + 5 + ((i - 20) * 18);
ThisXPos = this.Location.X + 5 + ((i - 20) * 18);
ThixYPos = 20 + (18 * 2);
}
if (i >= 30 && i < 40)
{
ThisXPos = groupBoxInventory.Location.X + 5 + ((i - 30) * 18);
ThisXPos = this.Location.X + 5 + ((i - 30) * 18);
ThixYPos = 20 + (18 * 3);
}
@ -74,6 +79,9 @@ namespace app
textBoxDefenseSkill.Text = CharConfig.KeySkillDefenseAura.ToString();
textBoxCastDefenseSkill.Text = CharConfig.KeySkillCastDefense.ToString();
textBoxLifeSkill.Text = CharConfig.KeySkillLifeAura.ToString();
textBoxBattleOrder.Text = CharConfig.KeySkillBattleOrder.ToString();
textBoxBattleCommand.Text = CharConfig.KeySkillBattleCommand.ToString();
textBoxBattleCry.Text = CharConfig.KeySkillBattleCry.ToString();
checkBoxAttachRightHand.Checked = CharConfig.PlayerAttackWithRightHand;
@ -115,6 +123,16 @@ namespace app
if (CharConfig.InventoryDontCheckItem[i] == 1) AvailableSlotList[i].Checked = true;
}
if (CharConfig.AvoidColdImmune) comboBoxAvoidImmune.SelectedIndex = 1;
if (CharConfig.AvoidFireImmune) comboBoxAvoidImmune.SelectedIndex = 2;
if (CharConfig.AvoidLightImmune) comboBoxAvoidImmune.SelectedIndex = 3;
if (CharConfig.AvoidPoisonImmune) comboBoxAvoidImmune.SelectedIndex = 4;
if (CharConfig.AvoidMagicImmune) comboBoxAvoidImmune.SelectedIndex = 5;
checkBoxClearAfterBoss.Checked = CharConfig.ClearAfterBoss;
checkBoxUseKeys.Checked = CharConfig.UseKeys;
SetUsingKeys();
CanReloadSettings = true;
}
@ -130,6 +148,9 @@ namespace app
Enum.TryParse(textBoxDefenseSkill.Text, out CharConfig.KeySkillDefenseAura);
Enum.TryParse(textBoxCastDefenseSkill.Text, out CharConfig.KeySkillCastDefense);
Enum.TryParse(textBoxLifeSkill.Text, out CharConfig.KeySkillLifeAura);
Enum.TryParse(textBoxBattleOrder.Text, out CharConfig.KeySkillBattleOrder);
Enum.TryParse(textBoxBattleCommand.Text, out CharConfig.KeySkillBattleCommand);
Enum.TryParse(textBoxBattleCry.Text, out CharConfig.KeySkillBattleCry);
CharConfig.PlayerAttackWithRightHand = checkBoxAttachRightHand.Checked;
@ -164,6 +185,74 @@ namespace app
if (!AvailableSlotList[i].Checked) CharConfig.InventoryDontCheckItem[i] = 0;
if (AvailableSlotList[i].Checked) CharConfig.InventoryDontCheckItem[i] = 1;
}
if (comboBoxAvoidImmune.SelectedIndex == 0)
{
CharConfig.AvoidColdImmune = false;
CharConfig.AvoidFireImmune = false;
CharConfig.AvoidLightImmune = false;
CharConfig.AvoidPoisonImmune = false;
CharConfig.AvoidMagicImmune = false;
}
else if (comboBoxAvoidImmune.SelectedIndex == 1)
{
CharConfig.AvoidColdImmune = true;
CharConfig.AvoidFireImmune = false;
CharConfig.AvoidLightImmune = false;
CharConfig.AvoidPoisonImmune = false;
CharConfig.AvoidMagicImmune = false;
}
else if (comboBoxAvoidImmune.SelectedIndex == 2)
{
CharConfig.AvoidColdImmune = false;
CharConfig.AvoidFireImmune = true;
CharConfig.AvoidLightImmune = false;
CharConfig.AvoidPoisonImmune = false;
CharConfig.AvoidMagicImmune = false;
}
else if (comboBoxAvoidImmune.SelectedIndex == 3)
{
CharConfig.AvoidColdImmune = false;
CharConfig.AvoidFireImmune = false;
CharConfig.AvoidLightImmune = true;
CharConfig.AvoidPoisonImmune = false;
CharConfig.AvoidMagicImmune = false;
}
else if (comboBoxAvoidImmune.SelectedIndex == 4)
{
CharConfig.AvoidColdImmune = false;
CharConfig.AvoidFireImmune = false;
CharConfig.AvoidLightImmune = false;
CharConfig.AvoidPoisonImmune = true;
CharConfig.AvoidMagicImmune = false;
}
else if (comboBoxAvoidImmune.SelectedIndex == 5)
{
CharConfig.AvoidColdImmune = false;
CharConfig.AvoidFireImmune = false;
CharConfig.AvoidLightImmune = false;
CharConfig.AvoidPoisonImmune = false;
CharConfig.AvoidMagicImmune = true;
}
CharConfig.ClearAfterBoss = checkBoxClearAfterBoss.Checked;
CharConfig.UseKeys = checkBoxUseKeys.Checked;
}
public void SetUsingKeys()
{
if (checkBoxUseKeys.Checked)
{
numericUpDownKeyXPos.Enabled = true;
numericUpDownKeyYPos.Enabled = true;
linkLabel1.Enabled = true;
}
else
{
numericUpDownKeyXPos.Enabled = false;
numericUpDownKeyYPos.Enabled = false;
linkLabel1.Enabled = false;
}
}
private void FormCharSettings_FormClosing(object sender, FormClosingEventArgs e)
@ -224,5 +313,10 @@ namespace app
{
panelHelpKeys.Visible = false;
}
private void checkBoxUseKeys_CheckedChanged(object sender, EventArgs e)
{
SetUsingKeys();
}
}
}

223
FormSettings.Designer.cs generated
View File

@ -104,6 +104,7 @@
this.buttonBaalAddMob = new System.Windows.Forms.Button();
this.buttonBaalClearMob = new System.Windows.Forms.Button();
this.label13 = new System.Windows.Forms.Label();
this.buttonReload = new System.Windows.Forms.Button();
this.panelBaalFeature = new System.Windows.Forms.Panel();
this.groupBox2 = new System.Windows.Forms.GroupBox();
this.listViewBaalLeaveOnMobs = new System.Windows.Forms.ListView();
@ -114,8 +115,21 @@
this.label9 = new System.Windows.Forms.Label();
this.label10 = new System.Windows.Forms.Label();
this.label7 = new System.Windows.Forms.Label();
this.buttonReload = new System.Windows.Forms.Button();
this.openFileDialog1 = new System.Windows.Forms.OpenFileDialog();
this.panelOverlay = new System.Windows.Forms.Panel();
this.button3 = new System.Windows.Forms.Button();
this.label14 = new System.Windows.Forms.Label();
this.checkBoxOverlayShowMobs = new System.Windows.Forms.CheckBox();
this.checkBoxOverlayShowWP = new System.Windows.Forms.CheckBox();
this.checkBoxOverlayShowGoodChest = new System.Windows.Forms.CheckBox();
this.checkBoxOverlayShowLogs = new System.Windows.Forms.CheckBox();
this.checkBoxOverlayShowBotInfos = new System.Windows.Forms.CheckBox();
this.checkBoxOverlayShowUnitsCount = new System.Windows.Forms.CheckBox();
this.checkBoxOverlayShowMH = new System.Windows.Forms.CheckBox();
this.checkBoxOverlayShowExits = new System.Windows.Forms.CheckBox();
this.checkBoxOverlayShowPath = new System.Windows.Forms.CheckBox();
this.checkBoxOverlayShowNPC = new System.Windows.Forms.CheckBox();
this.buttonOverlaySettings = new System.Windows.Forms.Button();
this.groupBox1.SuspendLayout();
((System.ComponentModel.ISupportInitialize)(this.numericUpDownRunNumber)).BeginInit();
((System.ComponentModel.ISupportInitialize)(this.numericUpDownMaxTime)).BeginInit();
@ -124,6 +138,7 @@
((System.ComponentModel.ISupportInitialize)(this.numericUpDownBaalMobCount)).BeginInit();
this.panelBaalFeature.SuspendLayout();
this.groupBox2.SuspendLayout();
this.panelOverlay.SuspendLayout();
this.SuspendLayout();
//
// listViewRunScripts
@ -612,6 +627,19 @@
this.label13.Text = "!";
this.toolTip1.SetToolTip(this.label13, "Double Clic on a Run script to edit it\'s features (if there is any)");
//
// 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 from a previous Settings File");
this.buttonReload.UseVisualStyleBackColor = true;
this.buttonReload.Click += new System.EventHandler(this.buttonReload_Click);
//
// panelBaalFeature
//
this.panelBaalFeature.Controls.Add(this.groupBox2);
@ -717,31 +745,182 @@
this.label7.TabIndex = 0;
this.label7.Text = "Baal Run Features";
//
// 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 from a previous Settings File");
this.buttonReload.UseVisualStyleBackColor = true;
this.buttonReload.Click += new System.EventHandler(this.buttonReload_Click);
//
// openFileDialog1
//
this.openFileDialog1.DefaultExt = "*.txt";
this.openFileDialog1.Filter = "BotSettings|*.txt";
this.openFileDialog1.Title = "Open \'BotSettings.txt\'";
//
// panelOverlay
//
this.panelOverlay.Controls.Add(this.checkBoxOverlayShowUnitsCount);
this.panelOverlay.Controls.Add(this.checkBoxOverlayShowMH);
this.panelOverlay.Controls.Add(this.checkBoxOverlayShowExits);
this.panelOverlay.Controls.Add(this.checkBoxOverlayShowPath);
this.panelOverlay.Controls.Add(this.checkBoxOverlayShowNPC);
this.panelOverlay.Controls.Add(this.checkBoxOverlayShowBotInfos);
this.panelOverlay.Controls.Add(this.checkBoxOverlayShowLogs);
this.panelOverlay.Controls.Add(this.checkBoxOverlayShowGoodChest);
this.panelOverlay.Controls.Add(this.checkBoxOverlayShowWP);
this.panelOverlay.Controls.Add(this.checkBoxOverlayShowMobs);
this.panelOverlay.Controls.Add(this.label14);
this.panelOverlay.Controls.Add(this.button3);
this.panelOverlay.Location = new System.Drawing.Point(523, 12);
this.panelOverlay.Name = "panelOverlay";
this.panelOverlay.Size = new System.Drawing.Size(203, 275);
this.panelOverlay.TabIndex = 18;
//
// button3
//
this.button3.Location = new System.Drawing.Point(61, 246);
this.button3.Name = "button3";
this.button3.Size = new System.Drawing.Size(75, 23);
this.button3.TabIndex = 12;
this.button3.Text = "Apply";
this.toolTip1.SetToolTip(this.button3, "Apply and Leave this menu");
this.button3.UseVisualStyleBackColor = true;
this.button3.Click += new System.EventHandler(this.button3_Click);
//
// label14
//
this.label14.AutoSize = true;
this.label14.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.label14.ForeColor = System.Drawing.Color.Blue;
this.label14.Location = new System.Drawing.Point(50, 11);
this.label14.Name = "label14";
this.label14.Size = new System.Drawing.Size(103, 13);
this.label14.TabIndex = 12;
this.label14.Text = "Overlay Features";
//
// checkBoxOverlayShowMobs
//
this.checkBoxOverlayShowMobs.AutoSize = true;
this.checkBoxOverlayShowMobs.Location = new System.Drawing.Point(14, 33);
this.checkBoxOverlayShowMobs.Name = "checkBoxOverlayShowMobs";
this.checkBoxOverlayShowMobs.Size = new System.Drawing.Size(82, 17);
this.checkBoxOverlayShowMobs.TabIndex = 12;
this.checkBoxOverlayShowMobs.Text = "Show Mobs";
this.toolTip1.SetToolTip(this.checkBoxOverlayShowMobs, "Enable this to Kill Baal");
this.checkBoxOverlayShowMobs.UseVisualStyleBackColor = true;
//
// checkBoxOverlayShowWP
//
this.checkBoxOverlayShowWP.AutoSize = true;
this.checkBoxOverlayShowWP.Location = new System.Drawing.Point(14, 50);
this.checkBoxOverlayShowWP.Name = "checkBoxOverlayShowWP";
this.checkBoxOverlayShowWP.Size = new System.Drawing.Size(79, 17);
this.checkBoxOverlayShowWP.TabIndex = 13;
this.checkBoxOverlayShowWP.Text = "Show WPs";
this.toolTip1.SetToolTip(this.checkBoxOverlayShowWP, "Enable this to Kill Baal");
this.checkBoxOverlayShowWP.UseVisualStyleBackColor = true;
//
// checkBoxOverlayShowGoodChest
//
this.checkBoxOverlayShowGoodChest.AutoSize = true;
this.checkBoxOverlayShowGoodChest.Location = new System.Drawing.Point(14, 67);
this.checkBoxOverlayShowGoodChest.Name = "checkBoxOverlayShowGoodChest";
this.checkBoxOverlayShowGoodChest.Size = new System.Drawing.Size(117, 17);
this.checkBoxOverlayShowGoodChest.TabIndex = 14;
this.checkBoxOverlayShowGoodChest.Text = "Show Good Chests";
this.toolTip1.SetToolTip(this.checkBoxOverlayShowGoodChest, "Enable this to Kill Baal");
this.checkBoxOverlayShowGoodChest.UseVisualStyleBackColor = true;
//
// checkBoxOverlayShowLogs
//
this.checkBoxOverlayShowLogs.AutoSize = true;
this.checkBoxOverlayShowLogs.Location = new System.Drawing.Point(14, 84);
this.checkBoxOverlayShowLogs.Name = "checkBoxOverlayShowLogs";
this.checkBoxOverlayShowLogs.Size = new System.Drawing.Size(79, 17);
this.checkBoxOverlayShowLogs.TabIndex = 15;
this.checkBoxOverlayShowLogs.Text = "Show Logs";
this.toolTip1.SetToolTip(this.checkBoxOverlayShowLogs, "Enable this to Kill Baal");
this.checkBoxOverlayShowLogs.UseVisualStyleBackColor = true;
//
// checkBoxOverlayShowBotInfos
//
this.checkBoxOverlayShowBotInfos.AutoSize = true;
this.checkBoxOverlayShowBotInfos.Location = new System.Drawing.Point(14, 101);
this.checkBoxOverlayShowBotInfos.Name = "checkBoxOverlayShowBotInfos";
this.checkBoxOverlayShowBotInfos.Size = new System.Drawing.Size(132, 17);
this.checkBoxOverlayShowBotInfos.TabIndex = 16;
this.checkBoxOverlayShowBotInfos.Text = "Show Bot Informations";
this.toolTip1.SetToolTip(this.checkBoxOverlayShowBotInfos, "Enable this to Kill Baal");
this.checkBoxOverlayShowBotInfos.UseVisualStyleBackColor = true;
//
// checkBoxOverlayShowUnitsCount
//
this.checkBoxOverlayShowUnitsCount.AutoSize = true;
this.checkBoxOverlayShowUnitsCount.Location = new System.Drawing.Point(14, 186);
this.checkBoxOverlayShowUnitsCount.Name = "checkBoxOverlayShowUnitsCount";
this.checkBoxOverlayShowUnitsCount.Size = new System.Drawing.Size(139, 17);
this.checkBoxOverlayShowUnitsCount.TabIndex = 21;
this.checkBoxOverlayShowUnitsCount.Text = "Show Units Scan Count";
this.toolTip1.SetToolTip(this.checkBoxOverlayShowUnitsCount, "Enable this to Kill Baal");
this.checkBoxOverlayShowUnitsCount.UseVisualStyleBackColor = true;
//
// checkBoxOverlayShowMH
//
this.checkBoxOverlayShowMH.AutoSize = true;
this.checkBoxOverlayShowMH.Location = new System.Drawing.Point(14, 169);
this.checkBoxOverlayShowMH.Name = "checkBoxOverlayShowMH";
this.checkBoxOverlayShowMH.Size = new System.Drawing.Size(179, 17);
this.checkBoxOverlayShowMH.TabIndex = 20;
this.checkBoxOverlayShowMH.Text = "Show Maphack Lines (MH Only)";
this.toolTip1.SetToolTip(this.checkBoxOverlayShowMH, "Enable this to Kill Baal");
this.checkBoxOverlayShowMH.UseVisualStyleBackColor = true;
//
// checkBoxOverlayShowExits
//
this.checkBoxOverlayShowExits.AutoSize = true;
this.checkBoxOverlayShowExits.Location = new System.Drawing.Point(14, 152);
this.checkBoxOverlayShowExits.Name = "checkBoxOverlayShowExits";
this.checkBoxOverlayShowExits.Size = new System.Drawing.Size(78, 17);
this.checkBoxOverlayShowExits.TabIndex = 19;
this.checkBoxOverlayShowExits.Text = "Show Exits";
this.toolTip1.SetToolTip(this.checkBoxOverlayShowExits, "Enable this to Kill Baal");
this.checkBoxOverlayShowExits.UseVisualStyleBackColor = true;
//
// checkBoxOverlayShowPath
//
this.checkBoxOverlayShowPath.AutoSize = true;
this.checkBoxOverlayShowPath.Location = new System.Drawing.Point(14, 135);
this.checkBoxOverlayShowPath.Name = "checkBoxOverlayShowPath";
this.checkBoxOverlayShowPath.Size = new System.Drawing.Size(115, 17);
this.checkBoxOverlayShowPath.TabIndex = 18;
this.checkBoxOverlayShowPath.Text = "Show Path Finding";
this.toolTip1.SetToolTip(this.checkBoxOverlayShowPath, "Enable this to Kill Baal");
this.checkBoxOverlayShowPath.UseVisualStyleBackColor = true;
//
// checkBoxOverlayShowNPC
//
this.checkBoxOverlayShowNPC.AutoSize = true;
this.checkBoxOverlayShowNPC.Location = new System.Drawing.Point(14, 118);
this.checkBoxOverlayShowNPC.Name = "checkBoxOverlayShowNPC";
this.checkBoxOverlayShowNPC.Size = new System.Drawing.Size(85, 17);
this.checkBoxOverlayShowNPC.TabIndex = 17;
this.checkBoxOverlayShowNPC.Text = "Show NPC\'s";
this.toolTip1.SetToolTip(this.checkBoxOverlayShowNPC, "Enable this to Kill Baal");
this.checkBoxOverlayShowNPC.UseVisualStyleBackColor = true;
//
// buttonOverlaySettings
//
this.buttonOverlaySettings.Image = global::app.Properties.Resources.Application;
this.buttonOverlaySettings.Location = new System.Drawing.Point(184, 605);
this.buttonOverlaySettings.Name = "buttonOverlaySettings";
this.buttonOverlaySettings.Size = new System.Drawing.Size(32, 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);
//
// 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(251, 656);
this.Controls.Add(this.buttonOverlaySettings);
this.Controls.Add(this.panelOverlay);
this.Controls.Add(this.buttonReload);
this.Controls.Add(this.label13);
this.Controls.Add(this.panelBaalFeature);
@ -780,6 +959,8 @@
this.panelBaalFeature.PerformLayout();
this.groupBox2.ResumeLayout(false);
this.groupBox2.PerformLayout();
this.panelOverlay.ResumeLayout(false);
this.panelOverlay.PerformLayout();
this.ResumeLayout(false);
this.PerformLayout();
@ -837,5 +1018,19 @@
private System.Windows.Forms.Label label13;
private System.Windows.Forms.Button buttonReload;
private System.Windows.Forms.OpenFileDialog openFileDialog1;
private System.Windows.Forms.Panel panelOverlay;
private System.Windows.Forms.CheckBox checkBoxOverlayShowBotInfos;
private System.Windows.Forms.CheckBox checkBoxOverlayShowLogs;
private System.Windows.Forms.CheckBox checkBoxOverlayShowGoodChest;
private System.Windows.Forms.CheckBox checkBoxOverlayShowWP;
private System.Windows.Forms.CheckBox checkBoxOverlayShowMobs;
private System.Windows.Forms.Label label14;
private System.Windows.Forms.Button button3;
private System.Windows.Forms.CheckBox checkBoxOverlayShowUnitsCount;
private System.Windows.Forms.CheckBox checkBoxOverlayShowMH;
private System.Windows.Forms.CheckBox checkBoxOverlayShowExits;
private System.Windows.Forms.CheckBox checkBoxOverlayShowPath;
private System.Windows.Forms.CheckBox checkBoxOverlayShowNPC;
private System.Windows.Forms.Button buttonOverlaySettings;
}
}

View File

@ -21,6 +21,9 @@ namespace app
panelBaalFeature.Visible = false;
panelBaalFeature.Location = new System.Drawing.Point(23, 197);
panelOverlay.Visible = false;
panelOverlay.Location = new System.Drawing.Point(23, 197);
LoadSettings();
}
@ -87,6 +90,7 @@ namespace app
numericUpDownRunNumber.Value = Form1_0.CurrentGameNumber;
//###################
//SPECIALS BAAL FEATURES
checkBoxKillBaal.Checked = Form1_0.Baal_0.KillBaal;
checkBoxBaalSafeHealing.Checked = Form1_0.Baal_0.SafeYoloStrat;
numericUpDownBaalLeaveMobsCount.Value = Form1_0.Baal_0.LeaveIfMobsCountIsAbove;
@ -100,6 +104,18 @@ namespace app
listViewBaalLeaveOnMobs.Items.Add(item);
}
//###################
//SPECIALS OVERLAY FEATURES
checkBoxOverlayShowMobs.Checked = Form1_0.overlayForm.ShowMobs;
checkBoxOverlayShowWP.Checked = Form1_0.overlayForm.ShowWPs;
checkBoxOverlayShowGoodChest.Checked = Form1_0.overlayForm.ShowGoodChests;
checkBoxOverlayShowLogs.Checked = Form1_0.overlayForm.ShowLogs;
checkBoxOverlayShowBotInfos.Checked = Form1_0.overlayForm.ShowBotInfos;
checkBoxOverlayShowNPC.Checked = Form1_0.overlayForm.ShowNPC;
checkBoxOverlayShowPath.Checked = Form1_0.overlayForm.ShowPathFinding;
checkBoxOverlayShowExits.Checked = Form1_0.overlayForm.ShowExits;
checkBoxOverlayShowMH.Checked = Form1_0.overlayForm.ShowMapHackShowLines;
checkBoxOverlayShowUnitsCount.Checked = Form1_0.overlayForm.ShowUnitsScanCount;
//###################
SetCreateGameGroupbox();
SetRushMenu();
@ -220,6 +236,18 @@ namespace app
Form1_0.Baal_0.LeaveIfMobsIsPresent_Count.Add(int.Parse(listViewBaalLeaveOnMobs.Items[i].SubItems[1].Text));
}
//###################
//SPECIALS OVERLAY FEATURES
Form1_0.overlayForm.ShowMobs = checkBoxOverlayShowMobs.Checked;
Form1_0.overlayForm.ShowWPs = checkBoxOverlayShowWP.Checked;
Form1_0.overlayForm.ShowGoodChests = checkBoxOverlayShowGoodChest.Checked;
Form1_0.overlayForm.ShowLogs = checkBoxOverlayShowLogs.Checked;
Form1_0.overlayForm.ShowBotInfos = checkBoxOverlayShowBotInfos.Checked;
Form1_0.overlayForm.ShowNPC = checkBoxOverlayShowNPC.Checked;
Form1_0.overlayForm.ShowPathFinding = checkBoxOverlayShowPath.Checked;
Form1_0.overlayForm.ShowExits = checkBoxOverlayShowExits.Checked;
Form1_0.overlayForm.ShowMapHackShowLines = checkBoxOverlayShowMH.Checked;
Form1_0.overlayForm.ShowUnitsScanCount = checkBoxOverlayShowUnitsCount.Checked;
//###################
}
private void button1_Click(object sender, EventArgs e)
@ -267,10 +295,13 @@ namespace app
listViewRunScripts.SelectedItems[0].Checked = !listViewRunScripts.SelectedItems[0].Checked;
if (listViewRunScripts.SelectedItems[0].Text == "Baal")
{
Form1_0.Baal_0.KillBaal = checkBoxKillBaal.Checked = Form1_0.Baal_0.KillBaal;
checkBoxKillBaal.Checked = Form1_0.Baal_0.KillBaal;
panelBaalFeature.Visible = true;
}
if (listViewRunScripts.SelectedItems[0].Text == "Maphack ONLY (no script running)")
{
panelOverlay.Visible = true;
}
else
{
MessageBox.Show("No specials features exist for this run!", "Warning", MessageBoxButtons.OK, MessageBoxIcon.Information);
@ -313,5 +344,15 @@ namespace app
Application.DoEvents();
}
}
private void button3_Click(object sender, EventArgs e)
{
panelOverlay.Visible = false;
}
private void buttonOverlaySettings_Click(object sender, EventArgs e)
{
panelOverlay.Visible = true;
}
}
}

View File

@ -11,6 +11,7 @@ using System.Security.Cryptography;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using System.Windows.Forms.VisualStyles;
using static app.MapAreaStruc;
using static System.Diagnostics.DebuggableAttribute;
@ -22,6 +23,23 @@ namespace app
public Form1 Form1_0;
//#######################################
//#######################################
//SETTINGS CONFIGURATION
public bool ShowMobs = true;
public bool ShowWPs = true;
public bool ShowGoodChests = true;
public bool ShowLogs = true;
public bool ShowBotInfos = true;
public bool ShowNPC = true;
public bool ShowPathFinding = true;
public bool ShowExits = true;
public bool ShowMapHackShowLines = true;
public bool ShowUnitsScanCount = false; //false = only on debug menu open
//#######################################
//#######################################
private Pen redPen = new Pen(Color.FromArgb(150, 255, 0, 0), 2);
private Pen yellowPen = new Pen(Color.FromArgb(150, 255, 255, 0), 2);
private Pen greenPen = new Pen(Color.FromArgb(150, 0, 255, 0), 2);
@ -43,6 +61,7 @@ namespace app
public List<System.Drawing.Point> MobsPoints = new List<System.Drawing.Point>();
public List<int> MobsIDs = new List<int>();
public List<int> MobsTypes = new List<int>();
public List<System.Drawing.Point> NPCPoints = new List<System.Drawing.Point>();
public List<int> NPCIDs = new List<int>();
@ -137,19 +156,22 @@ namespace app
CanDisplayOverlay = true;
DateTime StartScanTime = DateTime.Now;
SetAllGoodChestNearby();
if (!Form1_0.MobsStruc_0.DebuggingMobs) SetAllMonsterNearby();
if (Form1_0.MobsStruc_0.DebuggingMobs) SetAllMonsterNearbyDebug();
SetAllNPCNearby();
SetAllWPNearby();
SetAllExitNearby();
if (ShowGoodChests) SetAllGoodChestNearby();
if (ShowMobs)
{
if (!Form1_0.MobsStruc_0.DebuggingMobs) SetAllMonsterNearby();
if (Form1_0.MobsStruc_0.DebuggingMobs) SetAllMonsterNearbyDebug();
}
if (ShowNPC) SetAllNPCNearby();
if (ShowWPs) SetAllWPNearby();
if (ShowExits) SetAllExitNearby();
UpdateOverlay();
TimeSpan UpdatingDisplayTime = DateTime.Now - StartScanTime;
//stop scanning too much lags!! (->> issue fixed!)
if (UpdatingDisplayTime.TotalMilliseconds > 160)
//stop scanning too much lags!!
if (UpdatingDisplayTime.TotalMilliseconds > 180)
{
Form1_0.method_1("Overlay creating too much slowdown, disabling Overlay!", Color.OrangeRed);
ScanningOverlayItems = false;
@ -204,18 +226,18 @@ namespace app
}
//Set duriel tomb exit
Position OrificePos = Form1_0.MapAreaStruc_0.GetAreaOfObject("object", "HoradricOrifice", new List<int>(), 65, 72);
Position OrificePos = Form1_0.MapAreaStruc_0.GetAreaOfObject("object", "HoradricOrifice", new List<int>(), 65, 72, true);
if (OrificePos.X != 0 && OrificePos.Y != 0)
{
//"id":71, "type":"exit", "x":214, "y":25, "isGoodExit":true}
//Form1_0.method_1("Moving to: " + ((Enums.Area)(Form1_0.MapAreaStruc_0.CurrentObjectAreaIndex + 1)), Color.Red);
Position ThisFinalPosition = Form1_0.MapAreaStruc_0.GetPositionOfObject("exit", Form1_0.Town_0.getAreaName((int)Form1_0.MapAreaStruc_0.CurrentObjectAreaIndex + 1), (int)Form1_0.PlayerScan_0.levelNo, new List<int>() { });
Position ThisFinalPosition = Form1_0.MapAreaStruc_0.GetPositionOfObject("exit", Form1_0.Town_0.getAreaName((int)Form1_0.MapAreaStruc_0.CurrentObjectAreaIndex + 1), (int)Form1_0.PlayerScan_0.levelNo, new List<int>() { }, true);
ExitPointDuriel.X = ThisFinalPosition.X;
ExitPointDuriel.Y = ThisFinalPosition.Y;
}
//Set Summoner Pos
Position ThisFinalPositionArcane = Form1_0.MapAreaStruc_0.GetPositionOfObject("npc", "Summoner", (int) Enums.Area.ArcaneSanctuary, new List<int>() { });
Position ThisFinalPositionArcane = Form1_0.MapAreaStruc_0.GetPositionOfObject("npc", "Summoner", (int) Enums.Area.ArcaneSanctuary, new List<int>() { }, true);
ExitPointSummoner.X = ThisFinalPositionArcane.X;
ExitPointSummoner.Y = ThisFinalPositionArcane.Y;
if (ExitPointSummoner.X != 0 && ExitPointSummoner.Y != 0)
@ -229,6 +251,7 @@ namespace app
{
MobsPoints = new List<System.Drawing.Point>();
MobsIDs = new List<int>();
MobsTypes = new List<int>();
try
{
@ -237,6 +260,7 @@ namespace app
{
MobsPoints.Add(new System.Drawing.Point(monsterPositions[i][0], monsterPositions[i][1]));
MobsIDs.Add(Form1_0.MobsStruc_0.monsterIDs[i]);
MobsTypes.Add(Form1_0.MobsStruc_0.monsterTypes[i]);
}
}
catch { }
@ -264,6 +288,7 @@ namespace app
Form1_0.ClearDebugMobs();
MobsPoints = new List<System.Drawing.Point>();
MobsIDs = new List<int>();
MobsTypes = new List<int>();
try
{
@ -272,6 +297,7 @@ namespace app
{
MobsPoints.Add(new System.Drawing.Point(monsterPositions[i][0], monsterPositions[i][1]));
MobsIDs.Add(Form1_0.MobsStruc_0.monsterIDs[i]);
MobsTypes.Add(Form1_0.MobsStruc_0.monsterTypes[i]);
}
}
catch { }
@ -330,293 +356,342 @@ namespace app
{
base.OnPaint(e);
if (CharConfig.ShowOverlay && Form1_0.GameStruc_0.IsInGame())
if (CharConfig.ShowOverlay)
{
e.Graphics.CompositingQuality = CompositingQuality.HighQuality;
e.Graphics.TextRenderingHint = TextRenderingHint.AntiAliasGridFit;
//Print Potions Qty
int Qty1 = 0;
int Qty2 = 0;
int Qty3 = 0;
int Qty4 = 0;
for (int i = 0; i < Form1_0.BeltStruc_0.BeltHaveItems.Length; i++)
{
if ((i == 0 || i == 4 || i == 8 || i == 12) && Form1_0.BeltStruc_0.BeltHaveItems[i] > 0) Qty1++;
if ((i == 1 || i == 5 || i == 9 || i == 13) && Form1_0.BeltStruc_0.BeltHaveItems[i] > 0) Qty2++;
if ((i == 2 || i == 6 || i == 10 || i == 14) && Form1_0.BeltStruc_0.BeltHaveItems[i] > 0) Qty3++;
if ((i == 3 || i == 7 || i == 11 || i == 15) && Form1_0.BeltStruc_0.BeltHaveItems[i] > 0) Qty4++;
}
DrawString(e, Qty1.ToString(), drawFontBold, drawBrushWhite, 1091, 1018, true);
DrawString(e, Qty2.ToString(), drawFontBold, drawBrushWhite, 1091 + 62, 1018, true);
DrawString(e, Qty3.ToString(), drawFontBold, drawBrushWhite, 1091 + (62 * 2), 1018, true);
DrawString(e, Qty4.ToString(), drawFontBold, drawBrushWhite, 1091 + (62 * 3), 1018, true);
//Print HP/Mana
int Percent = (int)((Form1_0.PlayerScan_0.PlayerHP * 100.0) / Form1_0.PlayerScan_0.PlayerMaxHP);
string HPTxt = Form1_0.PlayerScan_0.PlayerHP.ToString() + "/" + Form1_0.PlayerScan_0.PlayerMaxHP.ToString() + " (" + Percent + "%)";
SizeF ThisS2 = e.Graphics.MeasureString(HPTxt, drawFontBold);
FillRectangle(e, drawBrushDark, 560, 960, ThisS2.Width, 22, true);
DrawString(e, HPTxt, drawFontBold, drawBrushRed, 560, 960, true);
int PercentMana = (int)((Form1_0.PlayerScan_0.PlayerMana * 100.0) / Form1_0.PlayerScan_0.PlayerMaxMana);
string ManaTxt = Form1_0.PlayerScan_0.PlayerMana.ToString() + "/" + Form1_0.PlayerScan_0.PlayerMaxMana.ToString() + " (" + PercentMana + "%)";
ThisS2 = e.Graphics.MeasureString(ManaTxt, drawFontBold);
FillRectangle(e, drawBrushDark, 1360 - (ThisS2.Width * ScaleScreenSizeInverted), 960, ThisS2.Width, 22, true);
DrawString(e, ManaTxt, drawFontBold, drawBrushBlue, 1360 - (ThisS2.Width * ScaleScreenSizeInverted), 960, true);
//Print Player Pos
string CordsTxt = Form1_0.PlayerScan_0.xPosFinal.ToString() + ", " + Form1_0.PlayerScan_0.yPosFinal.ToString();
ThisS2 = e.Graphics.MeasureString(CordsTxt, drawFontBold);
//DrawString(e, CordsTxt, drawFontBold, drawBrushWhite, Form1_0.CenterX - (ThisS2.Width / 2), 960);
DrawString(e, CordsTxt, drawFontBold, drawBrushWhite, 990, 960, true);
//Print Infos
DrawString(e, "Mobs:" + MobsPoints.Count, drawFontBold, drawBrushWhite, 790, 960, true);
string MapTxt = "Map Level:" + Form1_0.PlayerScan_0.levelNo;
ThisS2 = e.Graphics.MeasureString(MapTxt, drawFontBold);
DrawString(e, MapTxt, drawFontBold, drawBrushWhite, 1360 - (ThisS2.Width * ScaleScreenSizeInverted), 935, true);
//Print Battle Infos
if (Form1_0.Battle_0.DoingBattle || Form1_0.Battle_0.ClearingArea)
{
string MobsTxt = (EnumsMobsNPC.MonsterType)((int)Form1_0.MobsStruc_0.txtFileNo) + "(" + Form1_0.MobsStruc_0.txtFileNo + "), HP:" + Form1_0.MobsStruc_0.MobsHP + ", Pos:" + Form1_0.MobsStruc_0.xPosFinal + ", " + Form1_0.MobsStruc_0.yPosFinal;
DrawString(e, MobsTxt, drawFontBold, drawBrushWhite, 560, 910, true);
}
//################################################
//################################################
//Print Logs
List<int> ToRemoveIndex = new List<int>();
for (int i = 0; i < LogsTexts.Count; i++) if ((DateTime.Now - LogsTextsTimeSinceSpawned[i]).TotalSeconds >= 15) ToRemoveIndex.Add(i);
for (int i = ToRemoveIndex.Count - 4; i >= 0; i--)
if (ShowLogs)
{
LogsTextsTimeSinceSpawned.RemoveAt(ToRemoveIndex[i]);
LogsTexts.RemoveAt(ToRemoveIndex[i]);
LogsTextColor.RemoveAt(ToRemoveIndex[i]);
}
for (int i = 0; i < LogsTexts.Count; i++)
{
//invert index
int ThisIndexInverted = LogsTexts.Count - 1 - i;
if (LogsTextColor[ThisIndexInverted] == Color.Black) LogsTextColor[ThisIndexInverted] = Color.White;
if (LogsTextColor[ThisIndexInverted] == Color.DarkBlue) LogsTextColor[ThisIndexInverted] = Color.LightBlue;
if (LogsTextColor[ThisIndexInverted] == Color.DarkGreen) LogsTextColor[ThisIndexInverted] = Color.LightGreen;
if (LogsTextColor[ThisIndexInverted] == Color.DarkMagenta || LogsTextColor[ThisIndexInverted] == Color.Magenta) LogsTextColor[ThisIndexInverted] = Color.FromArgb(255, 255, 120, 255);
if (LogsTextColor[ThisIndexInverted] == Color.OrangeRed) LogsTextColor[ThisIndexInverted] = Color.Orange;
if (LogsTextColor[ThisIndexInverted] == Color.Red) LogsTextColor[ThisIndexInverted] = Color.LightPink;
if (LogsTextColor[ThisIndexInverted] == System.Drawing.ColorTranslator.FromHtml("#0005ff")) LogsTextColor[ThisIndexInverted] = Color.LightBlue;
if (LogsTextColor[ThisIndexInverted] == System.Drawing.ColorTranslator.FromHtml("#6a6a6a")) LogsTextColor[ThisIndexInverted] = Color.LightGray;
SolidBrush drawBrushCustom = new SolidBrush(Color.FromArgb(200, LogsTextColor[ThisIndexInverted].R, LogsTextColor[ThisIndexInverted].G, LogsTextColor[ThisIndexInverted].B));
string ThisLogTxt = LogsTexts[ThisIndexInverted];
SizeF ThisS = e.Graphics.MeasureString(ThisLogTxt, drawFontBold10);
//FillRectangle(e, drawBrushDark, 1500, 840 - (i * 20), 410, 20, true);
FillRectangle(e, drawBrushDark, 1890 - (ThisS.Width * ScaleScreenSizeInverted), 840 - (i * 20), ThisS.Width, 20, true);
DrawString(e, ThisLogTxt, drawFontBold10, drawBrushCustom, 1890 - (ThisS.Width * ScaleScreenSizeInverted) + 2, 840 - (i * 20), true);
}
//Print Status
DrawString(e, "Status: " + Form1_0.CurrentStatus, drawFontBold, drawBrushWhite, 560, 935, true);
ThisS2 = e.Graphics.MeasureString(Form1_0.CurrentGameTime, drawFontBold);
//DrawString(e, Form1_0.CurrentGameTime, drawFontBold, drawBrushYellow, Form1_0.CenterX, 935, true);
DrawString(e, Form1_0.CurrentGameTime, drawFontBold, drawBrushYellow, 990, 935, true);
//Print mS Delay
string ThisMSStr = "~" + Form1_0.Average_mS + "(" + Form1_0.mS + ")";
DrawString(e, ThisMSStr, drawFontBold, drawBrushYellow, 1090, 910, true);
//Print FPS Delay
string ThisFPSStr = "~" + Form1_0.Average_FPS.ToString("00") + "Fps(" + Form1_0.FPS.ToString("00") + ")";
DrawString(e, ThisFPSStr, drawFontBold, drawBrushYellow, 1090, 935, true);
string OtherInfosTxt = Form1_0.TotalChickenCount + " ChickensByHP, " + Form1_0.TotalChickenByTimeCount + " ChickensByTime";
ThisS2 = e.Graphics.MeasureString(OtherInfosTxt, drawFontBold);
DrawString(e, OtherInfosTxt, drawFontBold, drawBrushWhite, 1360 - (ThisS2.Width * ScaleScreenSizeInverted), 885, true);
string OtherInfosTxt2 = Form1_0.CurrentGameNumberFullyDone.ToString() + " Done, " + Form1_0.TotalDeadCount + " Dead";
ThisS2 = e.Graphics.MeasureString(OtherInfosTxt2, drawFontBold);
DrawString(e, OtherInfosTxt2, drawFontBold, drawBrushWhite, 1360 - (ThisS2.Width * ScaleScreenSizeInverted), 910, true);
//Print Merc
if (CharConfig.UsingMerc)
{
string ThisMercTxt = "Merc not alive";
if (Form1_0.MercStruc_0.MercAlive)
List<int> ToRemoveIndex = new List<int>();
for (int i = 0; i < LogsTexts.Count; i++) if ((DateTime.Now - LogsTextsTimeSinceSpawned[i]).TotalSeconds >= 15) ToRemoveIndex.Add(i);
for (int i = ToRemoveIndex.Count - 4; i >= 0; i--)
{
int PercentMerc = (int)((Form1_0.MercStruc_0.MercHP * 100.0) / Form1_0.MercStruc_0.MercMaxHP);
ThisMercTxt = "Merc:" + Form1_0.MercStruc_0.MercHP.ToString() + "/" + Form1_0.MercStruc_0.MercMaxHP.ToString() + " (" + PercentMerc + "%)";
LogsTextsTimeSinceSpawned.RemoveAt(ToRemoveIndex[i]);
LogsTexts.RemoveAt(ToRemoveIndex[i]);
LogsTextColor.RemoveAt(ToRemoveIndex[i]);
}
ThisS2 = e.Graphics.MeasureString(ThisMercTxt, drawFontBold);
DrawString(e, ThisMercTxt, drawFontBold, drawBrushGreen, 1360 - (ThisS2.Width * ScaleScreenSizeInverted), 860, true);
}
//Print Units Scanned Count
if (Form1_0.DebugMenuStyle > 0)
{
string UnitsStr = "Units:" + Form1_0.PatternsScan_0.GetUnitsScannedCount().ToString();
DrawString(e, UnitsStr, drawFontBold, drawBrushGreen, 560, 885, true);
}
if (CanDisplayOverlay)
{
for (int i = 0; i < PathFindingPoints.Count - 1; i++)
for (int i = 0; i < LogsTexts.Count; i++)
{
Position itemScreenPosStart = Form1_0.GameStruc_0.World2ScreenDisplay(Form1_0.PlayerScan_0.xPosFinal, Form1_0.PlayerScan_0.yPosFinal, PathFindingPoints[i].X, PathFindingPoints[i].Y);
Position itemScreenPosEnd = Form1_0.GameStruc_0.World2ScreenDisplay(Form1_0.PlayerScan_0.xPosFinal, Form1_0.PlayerScan_0.yPosFinal, PathFindingPoints[i + 1].X, PathFindingPoints[i + 1].Y);
//invert index
int ThisIndexInverted = LogsTexts.Count - 1 - i;
System.Drawing.Point StartPoint = new System.Drawing.Point(itemScreenPosStart.X, itemScreenPosStart.Y);
System.Drawing.Point EndPoint = new System.Drawing.Point(itemScreenPosEnd.X, itemScreenPosEnd.Y);
StartPoint = RescaleThisPoint(StartPoint);
EndPoint = RescaleThisPoint(EndPoint);
if (LogsTextColor[ThisIndexInverted] == Color.Black) LogsTextColor[ThisIndexInverted] = Color.White;
if (LogsTextColor[ThisIndexInverted] == Color.DarkBlue) LogsTextColor[ThisIndexInverted] = Color.LightBlue;
if (LogsTextColor[ThisIndexInverted] == Color.DarkGreen) LogsTextColor[ThisIndexInverted] = Color.LightGreen;
if (LogsTextColor[ThisIndexInverted] == Color.DarkMagenta || LogsTextColor[ThisIndexInverted] == Color.Magenta) LogsTextColor[ThisIndexInverted] = Color.FromArgb(255, 255, 120, 255);
if (LogsTextColor[ThisIndexInverted] == Color.OrangeRed) LogsTextColor[ThisIndexInverted] = Color.Orange;
if (LogsTextColor[ThisIndexInverted] == Color.Red) LogsTextColor[ThisIndexInverted] = Color.LightPink;
if (LogsTextColor[ThisIndexInverted] == System.Drawing.ColorTranslator.FromHtml("#0005ff")) LogsTextColor[ThisIndexInverted] = Color.LightBlue;
if (LogsTextColor[ThisIndexInverted] == System.Drawing.ColorTranslator.FromHtml("#6a6a6a")) LogsTextColor[ThisIndexInverted] = Color.LightGray;
System.Drawing.Point MidPoint = new System.Drawing.Point(Form1_0.CenterX, Form1_0.CenterY);
//Console.WriteLine("line: " + StartPoint.X + ", " + StartPoint.Y + " to " + EndPoint.X + ", " + EndPoint.Y);
if (i == 0) DrawLine(e, redPen, MidPoint, StartPoint, false);
DrawLine(e, redPen, StartPoint, EndPoint, false);
if (i != 0) DrawCrossAtPoint(e, StartPoint, orangePen, false);
SolidBrush drawBrushCustom = new SolidBrush(Color.FromArgb(200, LogsTextColor[ThisIndexInverted].R, LogsTextColor[ThisIndexInverted].G, LogsTextColor[ThisIndexInverted].B));
string ThisLogTxt = LogsTexts[ThisIndexInverted];
SizeF ThisS = e.Graphics.MeasureString(ThisLogTxt, drawFontBold10);
//FillRectangle(e, drawBrushDark, 1500, 840 - (i * 20), 410, 20, true);
FillRectangle(e, drawBrushDark, 1890 - (ThisS.Width * ScaleScreenSizeInverted), 840 - (i * 20), ThisS.Width, 20, true);
DrawString(e, ThisLogTxt, drawFontBold10, drawBrushCustom, 1890 - (ThisS.Width * ScaleScreenSizeInverted) + 2, 840 - (i * 20), true);
}
}
if (MoveToPoint.X != 0 && MoveToPoint.Y != 0)
//################################################
//################################################
if (Form1_0.GameStruc_0.IsInGame())
{
if (ShowBotInfos)
{
Position itemScreenPosStart = Form1_0.GameStruc_0.World2ScreenDisplay(Form1_0.PlayerScan_0.xPosFinal, Form1_0.PlayerScan_0.yPosFinal, MoveToPoint.X, MoveToPoint.Y);
System.Drawing.Point StartPoint = new System.Drawing.Point(itemScreenPosStart.X, itemScreenPosStart.Y);
StartPoint = RescaleThisPoint(StartPoint);
if (PathFindingPoints.Count == 0)
//Print Potions Qty
int Qty1 = 0;
int Qty2 = 0;
int Qty3 = 0;
int Qty4 = 0;
for (int i = 0; i < Form1_0.BeltStruc_0.BeltHaveItems.Length; i++)
{
System.Drawing.Point MidPoint = new System.Drawing.Point(Form1_0.CenterX, Form1_0.CenterY);
DrawLine(e, redPen, MidPoint, StartPoint, false);
if ((i == 0 || i == 4 || i == 8 || i == 12) && Form1_0.BeltStruc_0.BeltHaveItems[i] > 0) Qty1++;
if ((i == 1 || i == 5 || i == 9 || i == 13) && Form1_0.BeltStruc_0.BeltHaveItems[i] > 0) Qty2++;
if ((i == 2 || i == 6 || i == 10 || i == 14) && Form1_0.BeltStruc_0.BeltHaveItems[i] > 0) Qty3++;
if ((i == 3 || i == 7 || i == 11 || i == 15) && Form1_0.BeltStruc_0.BeltHaveItems[i] > 0) Qty4++;
}
DrawCrossAtPoint(e, StartPoint, redPen, false);
}
DrawString(e, Qty1.ToString(), drawFontBold, drawBrushWhite, 1091, 1018, true);
DrawString(e, Qty2.ToString(), drawFontBold, drawBrushWhite, 1091 + 62, 1018, true);
DrawString(e, Qty3.ToString(), drawFontBold, drawBrushWhite, 1091 + (62 * 2), 1018, true);
DrawString(e, Qty4.ToString(), drawFontBold, drawBrushWhite, 1091 + (62 * 3), 1018, true);
for (int i = 0; i < MobsPoints.Count; i++)
{
Position itemScreenPosStart = Form1_0.GameStruc_0.World2ScreenDisplay(Form1_0.PlayerScan_0.xPosFinal, Form1_0.PlayerScan_0.yPosFinal, MobsPoints[i].X, MobsPoints[i].Y);
System.Drawing.Point StartPoint = new System.Drawing.Point(itemScreenPosStart.X, itemScreenPosStart.Y);
StartPoint = RescaleThisPoint(StartPoint);
DrawCrossAtPoint(e, StartPoint, yellowPen, false);
//Print HP/Mana
int Percent = (int)((Form1_0.PlayerScan_0.PlayerHP * 100.0) / Form1_0.PlayerScan_0.PlayerMaxHP);
string HPTxt = Form1_0.PlayerScan_0.PlayerHP.ToString() + "/" + Form1_0.PlayerScan_0.PlayerMaxHP.ToString() + " (" + Percent + "%)";
SizeF ThisS2 = e.Graphics.MeasureString(HPTxt, drawFontBold);
FillRectangle(e, drawBrushDark, 560, 960, ThisS2.Width, 22, true);
DrawString(e, HPTxt, drawFontBold, drawBrushRed, 560, 960, true);
//if (Form1_0.MobsStruc_0.DebuggingMobs)
//{
string ThisTxt = "ID:" + MobsIDs[i].ToString();
SizeF ThisS3 = e.Graphics.MeasureString(ThisTxt, drawFont);
DrawString(e, ThisTxt, drawFont, drawBrushYellow, StartPoint.X - (ThisS3.Width / 2), StartPoint.Y + 9, false);
//}
}
int PercentMana = (int)((Form1_0.PlayerScan_0.PlayerMana * 100.0) / Form1_0.PlayerScan_0.PlayerMaxMana);
string ManaTxt = Form1_0.PlayerScan_0.PlayerMana.ToString() + "/" + Form1_0.PlayerScan_0.PlayerMaxMana.ToString() + " (" + PercentMana + "%)";
ThisS2 = e.Graphics.MeasureString(ManaTxt, drawFontBold);
FillRectangle(e, drawBrushDark, 1360 - (ThisS2.Width * ScaleScreenSizeInverted), 960, ThisS2.Width, 22, true);
DrawString(e, ManaTxt, drawFontBold, drawBrushBlue, 1360 - (ThisS2.Width * ScaleScreenSizeInverted), 960, true);
for (int i = 0; i < NPCPoints.Count; i++)
{
Position itemScreenPosStart = Form1_0.GameStruc_0.World2ScreenDisplay(Form1_0.PlayerScan_0.xPosFinal, Form1_0.PlayerScan_0.yPosFinal, NPCPoints[i].X, NPCPoints[i].Y);
System.Drawing.Point StartPoint = new System.Drawing.Point(itemScreenPosStart.X, itemScreenPosStart.Y);
StartPoint = RescaleThisPoint(StartPoint);
DrawCrossAtPoint(e, StartPoint, purplePen, false);
//Print Player Pos
string CordsTxt = Form1_0.PlayerScan_0.xPosFinal.ToString() + ", " + Form1_0.PlayerScan_0.yPosFinal.ToString();
ThisS2 = e.Graphics.MeasureString(CordsTxt, drawFontBold);
//DrawString(e, CordsTxt, drawFontBold, drawBrushWhite, Form1_0.CenterX - (ThisS2.Width / 2), 960);
DrawString(e, CordsTxt, drawFontBold, drawBrushWhite, 990, 960, true);
//if (Form1_0.MobsStruc_0.DebuggingMobs)
//{
string ThisTxt = "ID:" + NPCIDs[i].ToString();
SizeF ThisS3 = e.Graphics.MeasureString(ThisTxt, drawFont);
DrawString(e, ThisTxt, drawFont, drawBrushWhite, StartPoint.X - (ThisS3.Width / 2), StartPoint.Y + 9, false);
//}
}
//Print Infos
DrawString(e, "Mobs:" + MobsPoints.Count, drawFontBold, drawBrushWhite, 790, 960, true);
string MapTxt = "Map Level:" + Form1_0.PlayerScan_0.levelNo;
ThisS2 = e.Graphics.MeasureString(MapTxt, drawFontBold);
DrawString(e, MapTxt, drawFontBold, drawBrushWhite, 1360 - (ThisS2.Width * ScaleScreenSizeInverted), 935, true);
for (int i = 0; i < GoodChestsPoints.Count; i++)
{
Position itemScreenPosStart = Form1_0.GameStruc_0.World2ScreenDisplay(Form1_0.PlayerScan_0.xPosFinal, Form1_0.PlayerScan_0.yPosFinal, GoodChestsPoints[i].X, GoodChestsPoints[i].Y);
System.Drawing.Point StartPoint = new System.Drawing.Point(itemScreenPosStart.X, itemScreenPosStart.Y);
StartPoint = RescaleThisPoint(StartPoint);
DrawCrossAtPoint(e, StartPoint, greenPen, false);
if (CharConfig.RunMapHackOnly)
//Print Battle Infos
if (Form1_0.Battle_0.DoingBattle || Form1_0.Battle_0.ClearingArea)
{
System.Drawing.Point PlayerPoint = new System.Drawing.Point(Form1_0.CenterX, Form1_0.CenterY);
PlayerPoint = RescaleThisPoint(PlayerPoint);
DrawLine(e, greenPen, StartPoint, PlayerPoint, false);
string MobsTxt = (EnumsMobsNPC.MonsterType)((int)Form1_0.MobsStruc_0.txtFileNo) + "(" + Form1_0.MobsStruc_0.txtFileNo + "), HP:" + Form1_0.MobsStruc_0.MobsHP + ", Pos:" + Form1_0.MobsStruc_0.xPosFinal + ", " + Form1_0.MobsStruc_0.yPosFinal;
DrawString(e, MobsTxt, drawFontBold, drawBrushWhite, 560, 910, true);
}
}
for (int i = 0; i < WPPoints.Count; i++)
{
Position itemScreenPosStart = Form1_0.GameStruc_0.World2ScreenDisplay(Form1_0.PlayerScan_0.xPosFinal, Form1_0.PlayerScan_0.yPosFinal, WPPoints[i].X, WPPoints[i].Y);
System.Drawing.Point StartPoint = new System.Drawing.Point(itemScreenPosStart.X, itemScreenPosStart.Y);
StartPoint = RescaleThisPoint(StartPoint);
DrawCrossAtPoint(e, StartPoint, bluePen, false);
//Print Status
DrawString(e, "Status: " + Form1_0.CurrentStatus, drawFontBold, drawBrushWhite, 560, 935, true);
ThisS2 = e.Graphics.MeasureString(Form1_0.CurrentGameTime, drawFontBold);
//DrawString(e, Form1_0.CurrentGameTime, drawFontBold, drawBrushYellow, Form1_0.CenterX, 935, true);
DrawString(e, Form1_0.CurrentGameTime, drawFontBold, drawBrushYellow, 990, 935, true);
if (CharConfig.RunMapHackOnly)
//Print mS Delay
string ThisMSStr = "~" + Form1_0.Average_mS + "ms(" + Form1_0.mS.Replace("ms", "") + ")";
DrawString(e, ThisMSStr, drawFontBold, drawBrushYellow, 1090, 910, true);
//Print FPS Delay
string ThisFPSStr = "~" + Form1_0.Average_FPS.ToString("00") + "Fps(" + Form1_0.FPS.ToString("00") + ")";
DrawString(e, ThisFPSStr, drawFontBold, drawBrushYellow, 1090, 935, true);
string OtherInfosTxt = Form1_0.TotalChickenCount + " ChickensByHP, " + Form1_0.TotalChickenByTimeCount + " ChickensByTime";
ThisS2 = e.Graphics.MeasureString(OtherInfosTxt, drawFontBold);
DrawString(e, OtherInfosTxt, drawFontBold, drawBrushWhite, 1360 - (ThisS2.Width * ScaleScreenSizeInverted), 885, true);
string OtherInfosTxt2 = Form1_0.CurrentGameNumberFullyDone.ToString() + " Done, " + Form1_0.TotalDeadCount + " Dead";
ThisS2 = e.Graphics.MeasureString(OtherInfosTxt2, drawFontBold);
DrawString(e, OtherInfosTxt2, drawFontBold, drawBrushWhite, 1360 - (ThisS2.Width * ScaleScreenSizeInverted), 910, true);
//Print Merc
if (CharConfig.UsingMerc)
{
System.Drawing.Point PlayerPoint = new System.Drawing.Point(Form1_0.CenterX, Form1_0.CenterY);
PlayerPoint = RescaleThisPoint(PlayerPoint);
DrawLine(e, bluePen, StartPoint, PlayerPoint, false);
}
}
if (CharConfig.RunMapHackOnly)
{
FillRectangle(e, drawBrushDark, 1398, 5, 270, 119, true);
DrawString(e, "Green: Good Chest", drawFontBold10, drawBrushGreen, 1400, 5, true);
DrawString(e, "Blue: Waypoint", drawFontBold10, drawBrushBlue, 1400, 25, true);
DrawString(e, "Red: Next Area Exit", drawFontBold10, drawBrushRed, 1400, 45, true);
DrawString(e, "Yellow: Next Area Exit (Special)", drawFontBold10, drawBrushOrange, 1400, 65, true);
DrawString(e, "Purple: Previous Area Exit", drawFontBold10, drawBrushPurple, 1400, 85, true);
DrawString(e, "Cyan: Previous Area Exit (Special)", drawFontBold10, drawBrushCyan, 1400, 105, true);
}
for (int i = 0; i < ExitPoints.Count; i++)
{
Position itemScreenPosStart = Form1_0.GameStruc_0.World2ScreenDisplay(Form1_0.PlayerScan_0.xPosFinal, Form1_0.PlayerScan_0.yPosFinal, ExitPoints[i].X, ExitPoints[i].Y);
System.Drawing.Point StartPoint = new System.Drawing.Point(itemScreenPosStart.X, itemScreenPosStart.Y);
StartPoint = RescaleThisPoint(StartPoint);
DrawCrossAtPoint(e, StartPoint, cyanPen, false);
if (CharConfig.RunMapHackOnly)
{
System.Drawing.Point PlayerPoint = new System.Drawing.Point(Form1_0.CenterX, Form1_0.CenterY);
PlayerPoint = RescaleThisPoint(PlayerPoint);
if ((Enums.Area)Form1_0.PlayerScan_0.levelNo == Enums.Area.CanyonOfTheMagi
&& ExitPointDuriel.X != 0 && ExitPointDuriel.Y != 0
&& ExitPoints[i].X == ExitPointDuriel.X && ExitPoints[i].Y == ExitPointDuriel.Y)
string ThisMercTxt = "Merc not alive";
if (Form1_0.MercStruc_0.MercAlive)
{
DrawLine(e, redPen, StartPoint, PlayerPoint, false);
int PercentMerc = (int)((Form1_0.MercStruc_0.MercHP * 100.0) / Form1_0.MercStruc_0.MercMaxHP);
ThisMercTxt = "Merc:" + Form1_0.MercStruc_0.MercHP.ToString() + "/" + Form1_0.MercStruc_0.MercMaxHP.ToString() + " (" + PercentMerc + "%)";
}
else if ((Enums.Area)Form1_0.PlayerScan_0.levelNo == Enums.Area.ArcaneSanctuary
&& ExitPointSummoner.X != 0 && ExitPointSummoner.Y != 0
&& ExitPoints[i].X == ExitPointSummoner.X && ExitPoints[i].Y == ExitPointSummoner.Y)
ThisS2 = e.Graphics.MeasureString(ThisMercTxt, drawFontBold);
DrawString(e, ThisMercTxt, drawFontBold, drawBrushGreen, 1360 - (ThisS2.Width * ScaleScreenSizeInverted), 860, true);
}
//Print Units Scanned Count
if (ShowUnitsScanCount || (Form1_0.DebugMenuStyle > 0 && !ShowUnitsScanCount))
{
//Show values of the V2 Units Scan
string UnitsStr = "Units Scan:" + Form1_0.PatternsScan_0.GetUnitsScannedCount(2).ToString();
UnitsStr += " (Items:" + Form1_0.PatternsScan_0.ScannedItemsCount;
UnitsStr += ", Player:" + Form1_0.PatternsScan_0.ScannedPlayerCount;
UnitsStr += ", Objects:" + Form1_0.PatternsScan_0.ScannedObjectsCount;
UnitsStr += ", NPC:" + Form1_0.PatternsScan_0.ScannedNPCCount;
UnitsStr += ")";
DrawString(e, UnitsStr, drawFontBold, drawBrushGreen, 560, 860, true);
//Show values of the V1 Units Scan
/*UnitsStr = "Units Scan V1:" + Form1_0.PatternsScan_0.GetUnitsScannedCount(1).ToString();
UnitsStr += " (Items:" + Form1_0.PatternsScan_0.ScannedItemsCount;
UnitsStr += ", Player:" + Form1_0.PatternsScan_0.ScannedPlayerCount;
UnitsStr += ", Objects:" + Form1_0.PatternsScan_0.ScannedObjectsCount;
UnitsStr += ", NPC:" + Form1_0.PatternsScan_0.ScannedNPCCount;
UnitsStr += ")";
DrawString(e, UnitsStr, drawFontBold, drawBrushGreen, 560, 835, true);*/
}
}
if (CanDisplayOverlay)
{
if (ShowPathFinding)
{
for (int i = 0; i < PathFindingPoints.Count - 1; i++)
{
DrawLine(e, redPen, StartPoint, PlayerPoint, false);
Position itemScreenPosStart = Form1_0.GameStruc_0.World2ScreenDisplay(Form1_0.PlayerScan_0.xPosFinal, Form1_0.PlayerScan_0.yPosFinal, PathFindingPoints[i].X, PathFindingPoints[i].Y);
Position itemScreenPosEnd = Form1_0.GameStruc_0.World2ScreenDisplay(Form1_0.PlayerScan_0.xPosFinal, Form1_0.PlayerScan_0.yPosFinal, PathFindingPoints[i + 1].X, PathFindingPoints[i + 1].Y);
System.Drawing.Point StartPoint = new System.Drawing.Point(itemScreenPosStart.X, itemScreenPosStart.Y);
System.Drawing.Point EndPoint = new System.Drawing.Point(itemScreenPosEnd.X, itemScreenPosEnd.Y);
StartPoint = RescaleThisPoint(StartPoint);
EndPoint = RescaleThisPoint(EndPoint);
System.Drawing.Point MidPoint = new System.Drawing.Point(Form1_0.CenterX, Form1_0.CenterY);
//Console.WriteLine("line: " + StartPoint.X + ", " + StartPoint.Y + " to " + EndPoint.X + ", " + EndPoint.Y);
if (i == 0) DrawLine(e, redPen, MidPoint, StartPoint, false);
DrawLine(e, redPen, StartPoint, EndPoint, false);
if (i != 0) DrawCrossAtPoint(e, StartPoint, orangePen, false);
}
else
if (MoveToPoint.X != 0 && MoveToPoint.Y != 0)
{
if ((Enums.Area)Form1_0.PlayerScan_0.levelNo == Enums.Area.CanyonOfTheMagi)
Position itemScreenPosStart = Form1_0.GameStruc_0.World2ScreenDisplay(Form1_0.PlayerScan_0.xPosFinal, Form1_0.PlayerScan_0.yPosFinal, MoveToPoint.X, MoveToPoint.Y);
System.Drawing.Point StartPoint = new System.Drawing.Point(itemScreenPosStart.X, itemScreenPosStart.Y);
StartPoint = RescaleThisPoint(StartPoint);
if (PathFindingPoints.Count == 0)
{
DrawLine(e, yellowPen, StartPoint, PlayerPoint, false);
System.Drawing.Point MidPoint = new System.Drawing.Point(Form1_0.CenterX, Form1_0.CenterY);
DrawLine(e, redPen, MidPoint, StartPoint, false);
}
else
{
if (ExitIDs[i] > Form1_0.PlayerScan_0.levelNo)
{
DrawCrossAtPoint(e, StartPoint, redPen, false);
}
}
if (ExitIDs[i] == Form1_0.PlayerScan_0.levelNo + 1)
{
DrawLine(e, redPen, StartPoint, PlayerPoint, false);
}
else
{
DrawLine(e, yellowPen, StartPoint, PlayerPoint, false);
}
if (ShowMobs)
{
for (int i = 0; i < MobsPoints.Count; i++)
{
Pen ThisPenMobs = yellowPen;
Brush ThisBrushMobs = drawBrushYellow;
if (MobsTypes[i] == 1 || MobsTypes[i] == 2 || MobsTypes[i] == 3)
{
ThisPenMobs = orangePen;
ThisBrushMobs = drawBrushOrange;
}
Position itemScreenPosStart = Form1_0.GameStruc_0.World2ScreenDisplay(Form1_0.PlayerScan_0.xPosFinal, Form1_0.PlayerScan_0.yPosFinal, MobsPoints[i].X, MobsPoints[i].Y);
System.Drawing.Point StartPoint = new System.Drawing.Point(itemScreenPosStart.X, itemScreenPosStart.Y);
StartPoint = RescaleThisPoint(StartPoint);
DrawCrossAtPoint(e, StartPoint, ThisPenMobs, false);
string ThisTxt = "ID:" + MobsIDs[i].ToString();
SizeF ThisS3 = e.Graphics.MeasureString(ThisTxt, drawFont);
DrawString(e, ThisTxt, drawFont, ThisBrushMobs, StartPoint.X - (ThisS3.Width / 2), StartPoint.Y + 9, false);
}
}
if (ShowNPC)
{
for (int i = 0; i < NPCPoints.Count; i++)
{
Position itemScreenPosStart = Form1_0.GameStruc_0.World2ScreenDisplay(Form1_0.PlayerScan_0.xPosFinal, Form1_0.PlayerScan_0.yPosFinal, NPCPoints[i].X, NPCPoints[i].Y);
System.Drawing.Point StartPoint = new System.Drawing.Point(itemScreenPosStart.X, itemScreenPosStart.Y);
StartPoint = RescaleThisPoint(StartPoint);
DrawCrossAtPoint(e, StartPoint, purplePen, false);
string ThisTxt = "ID:" + NPCIDs[i].ToString();
SizeF ThisS3 = e.Graphics.MeasureString(ThisTxt, drawFont);
DrawString(e, ThisTxt, drawFont, drawBrushWhite, StartPoint.X - (ThisS3.Width / 2), StartPoint.Y + 9, false);
}
}
if (ShowGoodChests)
{
for (int i = 0; i < GoodChestsPoints.Count; i++)
{
Position itemScreenPosStart = Form1_0.GameStruc_0.World2ScreenDisplay(Form1_0.PlayerScan_0.xPosFinal, Form1_0.PlayerScan_0.yPosFinal, GoodChestsPoints[i].X, GoodChestsPoints[i].Y);
System.Drawing.Point StartPoint = new System.Drawing.Point(itemScreenPosStart.X, itemScreenPosStart.Y);
StartPoint = RescaleThisPoint(StartPoint);
DrawCrossAtPoint(e, StartPoint, greenPen, false);
if (CharConfig.RunMapHackOnly && ShowMapHackShowLines)
{
System.Drawing.Point PlayerPoint = new System.Drawing.Point(Form1_0.CenterX, Form1_0.CenterY);
PlayerPoint = RescaleThisPoint(PlayerPoint);
DrawLine(e, greenPen, StartPoint, PlayerPoint, false);
}
}
}
if (ShowWPs)
{
for (int i = 0; i < WPPoints.Count; i++)
{
Position itemScreenPosStart = Form1_0.GameStruc_0.World2ScreenDisplay(Form1_0.PlayerScan_0.xPosFinal, Form1_0.PlayerScan_0.yPosFinal, WPPoints[i].X, WPPoints[i].Y);
System.Drawing.Point StartPoint = new System.Drawing.Point(itemScreenPosStart.X, itemScreenPosStart.Y);
StartPoint = RescaleThisPoint(StartPoint);
DrawCrossAtPoint(e, StartPoint, bluePen, false);
if (CharConfig.RunMapHackOnly && ShowMapHackShowLines)
{
System.Drawing.Point PlayerPoint = new System.Drawing.Point(Form1_0.CenterX, Form1_0.CenterY);
PlayerPoint = RescaleThisPoint(PlayerPoint);
DrawLine(e, bluePen, StartPoint, PlayerPoint, false);
}
}
}
if (CharConfig.RunMapHackOnly && ShowMapHackShowLines)
{
FillRectangle(e, drawBrushDark, 1398, 5, 270, 119, true);
DrawString(e, "Green: Good Chest", drawFontBold10, drawBrushGreen, 1400, 5, true);
DrawString(e, "Blue: Waypoint", drawFontBold10, drawBrushBlue, 1400, 25, true);
DrawString(e, "Red: Next Area Exit", drawFontBold10, drawBrushRed, 1400, 45, true);
DrawString(e, "Yellow: Next Area Exit (Special)", drawFontBold10, drawBrushOrange, 1400, 65, true);
DrawString(e, "Purple: Previous Area Exit", drawFontBold10, drawBrushPurple, 1400, 85, true);
DrawString(e, "Cyan: Previous Area Exit (Special)", drawFontBold10, drawBrushCyan, 1400, 105, true);
}
if (ShowExits)
{
for (int i = 0; i < ExitPoints.Count; i++)
{
Position itemScreenPosStart = Form1_0.GameStruc_0.World2ScreenDisplay(Form1_0.PlayerScan_0.xPosFinal, Form1_0.PlayerScan_0.yPosFinal, ExitPoints[i].X, ExitPoints[i].Y);
System.Drawing.Point StartPoint = new System.Drawing.Point(itemScreenPosStart.X, itemScreenPosStart.Y);
StartPoint = RescaleThisPoint(StartPoint);
DrawCrossAtPoint(e, StartPoint, cyanPen, false);
if (CharConfig.RunMapHackOnly && ShowMapHackShowLines)
{
System.Drawing.Point PlayerPoint = new System.Drawing.Point(Form1_0.CenterX, Form1_0.CenterY);
PlayerPoint = RescaleThisPoint(PlayerPoint);
if ((Enums.Area)Form1_0.PlayerScan_0.levelNo == Enums.Area.CanyonOfTheMagi
&& ExitPointDuriel.X != 0 && ExitPointDuriel.Y != 0
&& ExitPoints[i].X == ExitPointDuriel.X && ExitPoints[i].Y == ExitPointDuriel.Y)
{
DrawLine(e, redPen, StartPoint, PlayerPoint, false);
}
else if ((Enums.Area)Form1_0.PlayerScan_0.levelNo == Enums.Area.ArcaneSanctuary
&& ExitPointSummoner.X != 0 && ExitPointSummoner.Y != 0
&& ExitPoints[i].X == ExitPointSummoner.X && ExitPoints[i].Y == ExitPointSummoner.Y)
{
DrawLine(e, redPen, StartPoint, PlayerPoint, false);
}
else
{
if (ExitIDs[i] == Form1_0.PlayerScan_0.levelNo - 1)
if ((Enums.Area)Form1_0.PlayerScan_0.levelNo == Enums.Area.CanyonOfTheMagi)
{
DrawLine(e, purplePen, StartPoint, PlayerPoint, false);
DrawLine(e, yellowPen, StartPoint, PlayerPoint, false);
}
else
{
DrawLine(e, cyanPen, StartPoint, PlayerPoint, false);
if (ExitIDs[i] > Form1_0.PlayerScan_0.levelNo)
{
if (ExitIDs[i] == Form1_0.PlayerScan_0.levelNo + 1)
{
DrawLine(e, redPen, StartPoint, PlayerPoint, false);
}
else
{
DrawLine(e, yellowPen, StartPoint, PlayerPoint, false);
}
}
else
{
if (ExitIDs[i] == Form1_0.PlayerScan_0.levelNo - 1)
{
DrawLine(e, purplePen, StartPoint, PlayerPoint, false);
}
else
{
DrawLine(e, cyanPen, StartPoint, PlayerPoint, false);
}
}
}
}
}

View File

@ -68,7 +68,7 @@ namespace app
}
}
public void MoveToNextArea(Area ThisID, int AcceptOffset = 4, bool ClearAreaOnMoving = false)
public bool MoveToNextArea(Area ThisID, int AcceptOffset = 4, bool ClearAreaOnMoving = false)
{
Form1_0.PlayerScan_0.GetPositions();
IsMovingToNextArea = true;
@ -89,12 +89,14 @@ namespace app
if (ThisFinalPosition.X == 0 && ThisFinalPosition.Y == 0) ThisFinalPosition = Form1_0.MapAreaStruc_0.GetPositionOfObject("object", Form1_0.Town_0.getAreaName((int)ThisID), (int)ThisID, new List<int>() { }, true);
//Console.WriteLine("Going to Pos: " + ThisFinalPosition.X + ", " + ThisFinalPosition.Y);
Form1_0.PathFinding_0.GetPathFinding(AcceptOffset, ClearAreaOnMoving);
return Form1_0.PathFinding_0.GetPathFinding(AcceptOffset, ClearAreaOnMoving);
}
catch { }
return false;
}
public void MoveToExit(Area ThisID, int AcceptOffset = 4, bool ClearAreaOnMoving = false)
public bool MoveToExit(Area ThisID, int AcceptOffset = 4, bool ClearAreaOnMoving = false)
{
Form1_0.PlayerScan_0.GetPositions();
IsMovingToNextArea = false;
@ -120,12 +122,14 @@ namespace app
TargetOffsetInCollisiongrid = new Position { X = 0, Y = 0 };
//Console.WriteLine("Going to Pos: " + ThisFinalPosition.X + ", " + ThisFinalPosition.Y);
Form1_0.PathFinding_0.GetPathFinding(AcceptOffset, ClearAreaOnMoving);
return Form1_0.PathFinding_0.GetPathFinding(AcceptOffset, ClearAreaOnMoving);
}
catch { }
return false;
}
public void MoveToNPC(string NPCName, int AcceptOffset = 4, bool ClearAreaOnMoving = false)
public bool MoveToNPC(string NPCName, int AcceptOffset = 4, bool ClearAreaOnMoving = false)
{
Form1_0.PlayerScan_0.GetPositions();
IsMovingToNextArea = false;
@ -145,12 +149,14 @@ namespace app
PlayerOffsetInCollisiongrid = new Position { X = 0, Y = 0 };
TargetOffsetInCollisiongrid = new Position { X = 0, Y = 0 };
Form1_0.PathFinding_0.GetPathFinding(AcceptOffset, ClearAreaOnMoving);
return Form1_0.PathFinding_0.GetPathFinding(AcceptOffset, ClearAreaOnMoving);
}
catch { }
return false;
}
public void MoveToObject(string ObjectName, int AcceptOffset = 4, bool ClearAreaOnMoving = false)
public bool MoveToObject(string ObjectName, int AcceptOffset = 4, bool ClearAreaOnMoving = false)
{
Form1_0.PlayerScan_0.GetPositions();
IsMovingToNextArea = false;
@ -170,12 +176,14 @@ namespace app
PlayerOffsetInCollisiongrid = new Position { X = 0, Y = 0 };
TargetOffsetInCollisiongrid = new Position { X = 0, Y = 0 };
Form1_0.PathFinding_0.GetPathFinding(AcceptOffset, ClearAreaOnMoving);
return Form1_0.PathFinding_0.GetPathFinding(AcceptOffset, ClearAreaOnMoving);
}
catch { }
return false;
}
public void MoveToThisPos(Position ThisPositionn, int AcceptOffset = 4, bool ClearAreaOnMoving = false)
public bool MoveToThisPos(Position ThisPositionn, int AcceptOffset = 4, bool ClearAreaOnMoving = false)
{
if (Form1_0.PlayerScan_0.levelNo == 0) Form1_0.PlayerScan_0.GetPositions();
IsMovingToNextArea = false;
@ -195,13 +203,17 @@ namespace app
PlayerOffsetInCollisiongrid = new Position { X = 0, Y = 0 };
TargetOffsetInCollisiongrid = new Position { X = 0, Y = 0 };
GetPathFinding(AcceptOffset, ClearAreaOnMoving);
return GetPathFinding(AcceptOffset, ClearAreaOnMoving);
}
catch { }
return false;
}
public void GetPathFinding(int AcceptOffset = 4, bool ClearAreaOnMoving = false)
public bool GetPathFinding(int AcceptOffset = 4, bool ClearAreaOnMoving = false)
{
bool MovedCorrectly = false;
Point startPos = new Point(Form1_0.PlayerScan_0.xPos - ThisOffsetPosition.X, Form1_0.PlayerScan_0.yPos - ThisOffsetPosition.Y);
Point targetPos = new Point(ThisFinalPosition.X - ThisOffsetPosition.X, ThisFinalPosition.Y - ThisOffsetPosition.Y);
//Point startPos = new Point(115, 579);
@ -228,7 +240,7 @@ namespace app
&& startPos.Y >= (targetPos.Y - Form1_0.Mover_0.MoveAcceptOffset)
&& startPos.Y <= (targetPos.Y + Form1_0.Mover_0.MoveAcceptOffset))
{
return;
return true;
}
}
@ -242,7 +254,7 @@ namespace app
if (targetPos.X <= 0 || targetPos.Y <= 0)
{
Form1_0.method_1("Target pos are bad: " + targetPos.X + ", " + targetPos.Y, Color.OrangeRed);
return;
return false;
}
path = FindPath(startPos, targetPos);
@ -265,7 +277,7 @@ namespace app
Form1_0.method_1("No path found.", Color.Red);
//Form1_0.MapAreaStruc_0.DumpMap();
Form1_0.GoToNextScript();
return;
return false;
}
//################################################
@ -391,12 +403,18 @@ namespace app
//tryyy++;
//}
}
int FinalX = path[path.Count - 1].X + ThisOffsetPosition.X - PlayerOffsetInCollisiongrid.X;
int FinalY = path[path.Count - 1].Y + ThisOffsetPosition.Y - PlayerOffsetInCollisiongrid.Y;
if (Form1_0.Mover_0.IsPositionNearOf(FinalX, FinalY, AcceptOffset)) MovedCorrectly = true;
}
else
{
Form1_0.method_1("No path found.", Color.Red);
Form1_0.GoToNextScript();
}
return MovedCorrectly;
}
public void DetectCloserPathPositions()
@ -815,63 +833,34 @@ namespace app
public Point TeleportPoint = new Point(0, 0);
private bool CanTeleport(Point next)
/*private List<Node> GetNeighbors(Node node, int teleportDistance)
{
/*for (int dx = -TeleportAcceptSize; dx <= TeleportAcceptSize; dx++)
{
for (int dy = -TeleportAcceptSize; dy <= TeleportAcceptSize; dy++)
{
int nx = current.X + dx;
int ny = current.Y + dy;
List<Node> neighbors = new List<Node>();
if (nx >= 0 && nx < ThisCollisionGrid.GetLength(0) && ny >= 0 && ny < ThisCollisionGrid.GetLength(1))
{
double distance = Math.Sqrt(dx * dx + dy * dy);
if (distance <= TeleportAcceptSize && ThisCollisionGrid[nx, ny])
{
TeleportPoint.X = nx;
TeleportPoint.Y = ny;
return true;
}
}
// Assuming a 2D grid, iterate over all nodes and check if they are within the teleport distance
foreach (Node otherNode in allNodes)
{
if (otherNode != node && IsWithinTeleportDistance(node, otherNode, teleportDistance))
{
neighbors.Add(otherNode);
}
}
return false;*/
for (int dir = 0; dir < 8; dir++)
{
for (int i = TeleportAcceptSize - 1; i > 0; i--)
{
int XAdder = 0;
int YAdder = 0;
if (dir == 0) XAdder = i;
if (dir == 1) XAdder = -i;
if (dir == 2) YAdder = i;
if (dir == 3) YAdder = -i;
if (dir == 4) { XAdder = i; YAdder = i; }
if (dir == 5) { XAdder = -i; YAdder = -i; }
if (dir == 6) { XAdder = i; YAdder = -i; }
if (dir == 7) { XAdder = -i; YAdder = i; }
if (ThisCollisionGrid[next.X + XAdder, next.Y + YAdder])
{
// Check if the target point is walkable and within teleportSize range
//return IsWalkable(next) && Math.Abs(next.X - current.X) <= TeleportAcceptSize && Math.Abs(next.Y - current.Y) <= TeleportAcceptSize;
//return IsWalkable(next) && (Math.Abs(next.X - current.X) <= TeleportAcceptSize || Math.Abs(next.Y - current.Y) <= TeleportAcceptSize);
//double distance = Math.Sqrt(Math.Pow(next.X - current.X, 2) + Math.Pow(next.Y - current.Y, 2));
//return IsWalkable(next) && distance <= TeleportAcceptSize;
TeleportPoint.X = next.X + XAdder;
TeleportPoint.Y = next.Y + YAdder;
return true;
//return IsWalkable(next);
}
}
}
return false;
return neighbors;
}
private bool IsWithinTeleportDistance(Node nodeA, Node nodeB, int teleportDistance)
{
int distanceX = Math.Abs(nodeA.x - nodeB.x);
int distanceY = Math.Abs(nodeA.y - nodeB.y);
// Calculate the Euclidean distance between the two nodes
double distance = Math.Sqrt(distanceX * distanceX + distanceY * distanceY);
// Return true if the distance is within the teleport distance limit
return distance <= teleportDistance;
}*/
private bool IsWalkable(Point point)
{
return point.X >= 0 && point.X < ThisCollisionGrid.GetLength(0) && point.Y >= 0 && point.Y < ThisCollisionGrid.GetLength(1) && ThisCollisionGrid[point.X, point.Y];

View File

@ -37,6 +37,40 @@ namespace app
Form1_0 = form1_1;
}
public bool EndBossBattle()
{
Form1_0.KeyMouse_0.ReleaseKey(System.Windows.Forms.Keys.E);
if (!Form1_0.ItemsStruc_0.GetItems(true)) Form1_0.WaitDelay(5);
if (!Form1_0.ItemsStruc_0.GetItems(true)) Form1_0.WaitDelay(5);
if (!Form1_0.ItemsStruc_0.GetItems(true)) Form1_0.WaitDelay(5);
if (!Form1_0.ItemsStruc_0.GetItems(true)) Form1_0.WaitDelay(5);
if (!Form1_0.ItemsStruc_0.GetItems(true)) Form1_0.WaitDelay(5);
if (!Form1_0.ItemsStruc_0.GetItems(true)) Form1_0.WaitDelay(5);
if (!Form1_0.ItemsStruc_0.GetItems(true)) Form1_0.WaitDelay(5);
if (!Form1_0.ItemsStruc_0.GetItems(true)) Form1_0.WaitDelay(5);
if (!Form1_0.ItemsStruc_0.GetItems(true)) Form1_0.WaitDelay(5);
if (!Form1_0.ItemsStruc_0.GetItems(true)) Form1_0.WaitDelay(5);
if (CharConfig.ClearAfterBoss)
{
if (Form1_0.MobsStruc_0.GetMobs("", "", true, 30, new List<long>()))
{
Form1_0.Battle_0.DoBattleScript(30);
return false;
}
}
Form1_0.ItemsStruc_0.GrabAllItemsForGold();
Form1_0.Battle_0.ClearingArea = false;
Form1_0.Battle_0.DoingBattle = false;
Form1_0.Potions_0.CanUseSkillForRegen = true;
Form1_0.Town_0.FastTowning = false;
Form1_0.Town_0.UseLastTP = false;
return true;
}
public int[] FindBestPositionNoMobsArround(int playerX, int playerY, List<int[]> monsterPositions, int maxDisplacement)
{
// Create a list to store all possible positions around the player
@ -245,7 +279,8 @@ namespace app
//no atack pos found??
AttackPosFound = true;
ChoosenAttackLocation++; //return attack pos = 4 (for error)
ReturnPos = new Position { X = 0, Y = 0 };
ReturnPos = new Position { X = ThisAttackPos.X, Y = ThisAttackPos.Y };
//ReturnPos = new Position { X = 0, Y = 0 };
}
}
}
@ -264,12 +299,12 @@ namespace app
Form1_0.KeyMouse_0.PressKey(Keys.W);
Form1_0.WaitDelay(15);
//Form1_0.KeyMouse_0.PressKey(Keys.F4);
//Form1_0.WaitDelay(15);
Form1_0.KeyMouse_0.MouseClicc(1025, 1025);
Form1_0.KeyMouse_0.PressKey(CharConfig.KeySkillBattleOrder);
Form1_0.WaitDelay(10);
/*Form1_0.KeyMouse_0.MouseClicc(1025, 1025);
Form1_0.WaitDelay(5);
Form1_0.KeyMouse_0.MouseClicc(1095, 610);
Form1_0.WaitDelay(5);
Form1_0.WaitDelay(5);*/
Form1_0.PlayerScan_0.GetPositions();
//press W again to switch weapon again
@ -277,12 +312,12 @@ namespace app
{
Form1_0.KeyMouse_0.PressKey(Keys.W);
Form1_0.WaitDelay(15);
//Form1_0.KeyMouse_0.PressKey(Keys.F4);
//Form1_0.WaitDelay(15);
Form1_0.KeyMouse_0.MouseClicc(1025, 1025);
Form1_0.KeyMouse_0.PressKey(CharConfig.KeySkillBattleOrder);
Form1_0.WaitDelay(10);
/*Form1_0.KeyMouse_0.MouseClicc(1025, 1025);
Form1_0.WaitDelay(5);
Form1_0.KeyMouse_0.MouseClicc(1095, 610);
Form1_0.WaitDelay(5);
Form1_0.WaitDelay(5);*/
Form1_0.PlayerScan_0.GetPositions();
}
@ -290,19 +325,23 @@ namespace app
Form1_0.WaitDelay(30);
//select battle command
Form1_0.KeyMouse_0.MouseClicc(1025, 1025);
Form1_0.KeyMouse_0.PressKey(CharConfig.KeySkillBattleCommand);
Form1_0.WaitDelay(10);
/*Form1_0.KeyMouse_0.MouseClicc(1025, 1025);
Form1_0.WaitDelay(5);
Form1_0.KeyMouse_0.MouseClicc(1025, 610);
Form1_0.WaitDelay(5);
Form1_0.WaitDelay(5);*/
Form1_0.KeyMouse_0.MouseCliccRight_RealPos(Form1_0.CenterX, Form1_0.CenterY);
Form1_0.WaitDelay(30); //60 <-
Form1_0.Potions_0.CheckIfWeUsePotion();
//select battle cry
Form1_0.KeyMouse_0.MouseClicc(1025, 1025);
Form1_0.KeyMouse_0.PressKey(CharConfig.KeySkillBattleCry);
Form1_0.WaitDelay(10);
/*Form1_0.KeyMouse_0.MouseClicc(1025, 1025);
Form1_0.WaitDelay(5);
Form1_0.KeyMouse_0.MouseClicc(1165, 610);
Form1_0.WaitDelay(5);
Form1_0.WaitDelay(5);*/
Form1_0.KeyMouse_0.MouseCliccRight_RealPos(Form1_0.CenterX, Form1_0.CenterY);
Form1_0.WaitDelay(60);

View File

@ -35,7 +35,7 @@ namespace app
public void AddCubeItem(int PosX, int PosY)
{
int AtI = ConvertXYToFullCubeIndex(PosX, PosY);
Cube_ItemTxtNoList[AtI] = Form1_0.ItemsStruc_0.txtFileNo;
if (AtI < Cube_ItemTxtNoList.Length) Cube_ItemTxtNoList[AtI] = Form1_0.ItemsStruc_0.txtFileNo;
}
public int ConvertXYToFullCubeIndex(int PosX, int PosY)

View File

@ -310,8 +310,7 @@ namespace app
using (Process curProcess = Process.GetCurrentProcess())
using (ProcessModule curModule = curProcess.MainModule)
{
return SetWindowsHookEx(WH_KEYBOARD_LL, proc,
GetModuleHandle(curModule.ModuleName), 0);
return SetWindowsHookEx(WH_KEYBOARD_LL, proc, GetModuleHandle(curModule.ModuleName), 0);
}
}

View File

@ -74,7 +74,7 @@ namespace app
//fix town act5 stuck near bolder
if (Form1_0.Town_0.GetInTown() && IsPositionNearOf(5093, 5034, 2))
{
MoveToLocationAttack(5098, 5022);
MoveToLocationAttack(5100, 5021);
}
int TryMove = 0;
@ -155,6 +155,8 @@ namespace app
Application.DoEvents();
Form1_0.ItemsStruc_0.AvoidItemsOnGroundPointerList.Clear();
//######
//moving location is way to far away something might be wrong!
if (!IsPositionNearOf(ThisX, ThisY, 300))
@ -217,6 +219,7 @@ namespace app
{
if (!AllowMoveSideWay)
{
Form1_0.ItemsStruc_0.AvoidItemsOnGroundPointerList.Clear();
Form1_0.overlayForm.ResetMoveToLocation();
Form1_0.KeyMouse_0.ReleaseKey(System.Windows.Forms.Keys.E);
return false;
@ -265,6 +268,7 @@ namespace app
}
Form1_0.KeyMouse_0.PressKey(CharConfig.KeySkillDefenseAura);
Form1_0.ItemsStruc_0.AvoidItemsOnGroundPointerList.Clear();
Form1_0.overlayForm.ResetMoveToLocation();
return MovedCorrectly;
}
@ -347,6 +351,7 @@ namespace app
if (Form1_0.PlayerScan_0.levelNo < StartAreaBeforeMoving - 1
|| Form1_0.PlayerScan_0.levelNo > StartAreaBeforeMoving + 1)
{
Form1_0.ItemsStruc_0.AvoidItemsOnGroundPointerList.Clear();
Form1_0.overlayForm.ScanningOverlayItems = true; //try rescanning overlay if there was too much lags
Form1_0.overlayForm.ResetMoveToLocation();
Form1_0.KeyMouse_0.ReleaseKey(System.Windows.Forms.Keys.E);
@ -363,7 +368,7 @@ namespace app
//}
//Form1_0.KeyMouse_0.PressKey(CharConfig.KeySkillDefenseAura);
Form1_0.ItemsStruc_0.AvoidItemsOnGroundPointerList.Clear();
Form1_0.overlayForm.ResetMoveToLocation();
return MovedCorrectly;
}

View File

@ -158,9 +158,12 @@ namespace app
Form1_0.WaitDelay(100);
PlaceItem(itemScreenPos["x"], itemScreenPos["y"]);
IdentifiedItem = true;
if (k == LastItemIdentified)
Form1_0.ItemsStruc_0.GetItems(false); //get inventory again
//#########################
//try selling this bad item
if (k == LastItemIdentified && Form1_0.InventoryStruc_0.InventoryHasStashItem[i] == 0)
{
//try selling this bad item
Form1_0.KeyMouse_0.SendCTRL_CLICK(itemScreenPos["x"], itemScreenPos["y"]);
Form1_0.WaitDelay(5);
Form1_0.ItemsStruc_0.GetItems(false); //get inventory again
@ -171,6 +174,7 @@ namespace app
}
}
LastItemIdentified = k;
//#########################
break;
}
}
@ -184,7 +188,9 @@ namespace app
else tries2 = 0;
}
Form1_0.ItemsStruc_0.GetItems(false); //get inventory
if (Form1_0.InventoryStruc_0.HasUnidItemInInventory()) HasUnidItem = true;
Form1_0.ItemsStruc_0.GetItems(false); //get inventory
}
//sell items
@ -456,40 +462,43 @@ namespace app
}
//buy key
Form1_0.InventoryStruc_0.VerifyKeysInventory();
tries = 0;
StartQty = Form1_0.InventoryStruc_0.HUDItems_keys;
while (Form1_0.InventoryStruc_0.HUDItems_keys <= 8 && tries < 1)
if (CharConfig.UseKeys)
{
Form1_0.SetGameStatus("TOWN-SHOP-BUY KEYS");
if (!Form1_0.Running || !Form1_0.GameStruc_0.IsInGame())
Form1_0.InventoryStruc_0.VerifyKeysInventory();
tries = 0;
StartQty = Form1_0.InventoryStruc_0.HUDItems_keys;
while (Form1_0.InventoryStruc_0.HUDItems_keys <= 8 && tries < 1)
{
break;
}
if (Form1_0.ItemsStruc_0.GetShopItem("Key"))
{
Dictionary<string, int> itemScreenPos = ConvertShopLocToScreenPos(Form1_0.ItemsStruc_0.itemx, Form1_0.ItemsStruc_0.itemy);
Form1_0.KeyMouse_0.SendSHIFT_RIGHTCLICK(itemScreenPos["x"], itemScreenPos["y"]);
//Form1_0.KeyMouse_0.MouseCliccRight(itemScreenPos["x"], itemScreenPos["y"]);
Form1_0.WaitDelay(20);
Form1_0.ItemsStruc_0.GetItems(false); //get inventory
//Buy keys again to fill inventory
/*if (StartQty == 0)
Form1_0.SetGameStatus("TOWN-SHOP-BUY KEYS");
if (!Form1_0.Running || !Form1_0.GameStruc_0.IsInGame())
{
break;
}
if (Form1_0.ItemsStruc_0.GetShopItem("Key"))
{
Dictionary<string, int> itemScreenPos = ConvertShopLocToScreenPos(Form1_0.ItemsStruc_0.itemx, Form1_0.ItemsStruc_0.itemy);
Form1_0.KeyMouse_0.SendSHIFT_RIGHTCLICK(itemScreenPos["x"], itemScreenPos["y"]);
//Form1_0.KeyMouse_0.MouseCliccRight(itemScreenPos["x"], itemScreenPos["y"]);
Form1_0.WaitDelay(20);
Form1_0.ItemsStruc_0.GetItems(false); //get inventory
}*/
}
if (Form1_0.InventoryStruc_0.HUDItems_keys == StartQty)
{
tries++;
//Buy keys again to fill inventory
/*if (StartQty == 0)
{
Form1_0.KeyMouse_0.SendSHIFT_RIGHTCLICK(itemScreenPos["x"], itemScreenPos["y"]);
//Form1_0.KeyMouse_0.MouseCliccRight(itemScreenPos["x"], itemScreenPos["y"]);
Form1_0.WaitDelay(20);
Form1_0.ItemsStruc_0.GetItems(false); //get inventory
}*/
}
if (Form1_0.InventoryStruc_0.HUDItems_keys == StartQty)
{
tries++;
}
StartQty = Form1_0.InventoryStruc_0.HUDItems_keys;
}
StartQty = Form1_0.InventoryStruc_0.HUDItems_keys;
}
//buy tome of portal for cows level

View File

@ -45,6 +45,7 @@ RunEldritchScript=false
RunShenkScript=false
RunNihlatakScript=false
RunItemGrabScriptOnly=false
ClearAfterBoss=false
//#######################################
//NOT IN GAME SCRIPT (SEARCH GAMES OR CREATE A NEW GAME)
@ -63,4 +64,19 @@ KillBaal=true
LeaveIfMobsIsPresent_ID=
LeaveIfMobsIsPresent_Count=
LeaveIfMobsCountIsAbove=0
SafeHealingStrat=false
SafeHealingStrat=false
//#######################################
//SPECIALS OVERLAY FEATURES
//#######################################
ShowMobs=true
ShowWPs=true
ShowGoodChests=true
ShowLogs=true
ShowBotInfos=true
ShowNPC=true
ShowPathFinding=true
ShowExits=true
ShowMapHackShowLines=true
ShowUnitsScanCount=false

View File

@ -19,6 +19,9 @@ KeySkillfastMoveOutsideTown=F7
KeySkillDefenseAura=F6
KeySkillCastDefense=F5
KeySkillLifeAura=F3
KeySkillBattleOrder=D5
KeySkillBattleCommand=D6
KeySkillBattleCry=D7
PlayerAttackWithRightHand=false
@ -62,9 +65,19 @@ GrabForGold=true
IDAtShop=true
LeaveDiabloClone=true
GambleGold=true
UseKeys=true
//#######################################
//MERC SETTINGS
//#######################################
UsingMerc=true
MercTakeHPPotUnder=40
MercTakeHPPotUnder=40
//#######################################
//AVOID IMMUNE SETTINGS
//#######################################
AvoidColdImmune=false
AvoidFireImmune=false
AvoidLightImmune=false
AvoidPoisonImmune=false
AvoidMagicImmune=false

View File

@ -19,6 +19,9 @@ KeySkillfastMoveOutsideTown=F7
KeySkillDefenseAura=F7
KeySkillCastDefense=F5
KeySkillLifeAura=F4
KeySkillBattleOrder=D5
KeySkillBattleCommand=D6
KeySkillBattleCry=D7
PlayerAttackWithRightHand=true
@ -62,9 +65,19 @@ GrabForGold=true
IDAtShop=true
LeaveDiabloClone=true
GambleGold=true
UseKeys=true
//#######################################
//MERC SETTINGS
//#######################################
UsingMerc=false
MercTakeHPPotUnder=40
MercTakeHPPotUnder=40
//#######################################
//AVOID IMMUNE SETTINGS
//#######################################
AvoidColdImmune=false
AvoidFireImmune=false
AvoidLightImmune=false
AvoidPoisonImmune=false
AvoidMagicImmune=false

View File

@ -291,10 +291,10 @@ Perfect Diamond
//[Name] == Shako && [Quality] == unique && [Defense] >= 120 // Harlequin Crest
[Name] == Shako && [Quality] == unique // Harlequin Crest
[Name] == Demonhead && [Quality] == unique // Andariel's Visage
[Name] == Demonhead && [Quality] == unique && [Flag] != ethereal
//[Name] == Demonhead && [Quality] == unique && [Flag] != ethereal
[Name] == BoneVisage && [Quality] == unique && [Flag] != ethereal // Giant Skull
[Name] == SpiredHelm && [Quality] == unique && [Flag] != ethereal// Nightwing's Veil
[Name] == Corona && [Quality] == unique && [Flag] != ethereal // Crown of ages
//[Name] == Corona && [Quality] == unique && [Flag] != ethereal // Crown of ages
[Name] == Corona && [Quality] == unique // Crown of ages
//##### Armor

View File

@ -153,18 +153,36 @@ namespace app
Assassin = 6,
}
public enum NpcFlag
public enum MonsterType
{
None = 0,
SuperUnique = 1 << 1,
Champion = 1 << 2,
Unique = 1 << 3,
Minion = 1 << 4,
Possessed = 1 << 5,
Ghostly = 1 << 6,
Multishot = 1 << 7,
SuperUnique = 1,
Champion = 2,
Unique = 3,
Minion = 4,
Possessed = 5,
Ghostly = 6,
Multishot = 7,
}
public enum StatResist
{
ColdImmune,
FireImmune,
LightImmune,
PoisonImmune,
MagicImmune
}
/*public enum MonsterType
{
None,
SuperUnique,
Champion,
Unique,
Minion
}*/
/** Extra Skills NPC's can have */
public enum NpcEnchant
{

View File

@ -99,10 +99,12 @@ namespace app
public void VerifyKeysInventory()
{
if (!CharConfig.UseKeys) return;
int thisindex = CharConfig.KeysLocationInInventory.Item1 + (CharConfig.KeysLocationInInventory.Item2 * 10);
//if its not a key at the key location, relocate the item
if (InventoryItemNames[thisindex] != "Key")
if (InventoryItemNames[thisindex] != "Key" && InventoryItemNames[thisindex] != "" && InventoryHasItem[thisindex] > 0)
{
//Console.WriteLine("here");
int ThisNewIndex = GetNextFreeSpaceInInventory();
@ -309,7 +311,7 @@ namespace app
InventoryHasUnidItem[FullIndex] = 1;
}
//if (Form1_0.ItemsStruc_0.ItemNAAME == "Flawless Amethyst") Console.WriteLine(Form1_0.ItemsStruc_0.ItemNAAME + ", StashItem:" + InventoryHasStashItem[FullIndex] + ", ItemToID:" + InventoryHasItemToID[FullIndex] + ", UnidItem:" + InventoryHasUnidItem[FullIndex]);
//Console.WriteLine(Form1_0.ItemsStruc_0.ItemNAAME + ", StashItem:" + InventoryHasStashItem[FullIndex] + ", ItemToID:" + InventoryHasItemToID[FullIndex] + ", UnidItem:" + InventoryHasUnidItem[FullIndex]);
}
catch { }
}

View File

@ -49,6 +49,54 @@ namespace app
Form1_0 = form1_1;
}
public void CheckItemNames()
{
foreach (var ThisDir in PickItemsRunesKeyGems)
{
if (ThisDir.Value)
{
bool FoundItemName = false;
string CheckName = ThisDir.Key.Replace(" ", "");
for (int i = 0; i < 659; i++ )
{
if (Form1_0.ItemsNames_0.getItemBaseName(i).Replace(" ", "") == CheckName)
{
FoundItemName = true;
break;
}
}
if (!FoundItemName)
{
Form1_0.method_1("Item '" + ThisDir.Key + "' from the pickit doesn't exist", Color.Red);
}
}
}
foreach (var ThisDir in PickItemsNormal_ByName)
{
if (ThisDir.Value)
{
bool FoundItemName = false;
string CheckName = Regex.Replace(ThisDir.Key, @"[\d-]", string.Empty);
for (int i = 0; i < 659; i++)
{
if (Form1_0.ItemsNames_0.getItemBaseName(i).Replace(" ", "") == CheckName)
{
FoundItemName = true;
break;
}
}
if (!FoundItemName)
{
Form1_0.method_1("Item '" + CheckName + "' from the pickit doesn't exist", Color.Red);
}
}
}
}
public bool ShouldKeepItem()
{
return ShouldPickItem(true);

View File

@ -5467,7 +5467,7 @@ namespace app
case 371:
return "Chaos Armor";
case 372:
return "Ornate Armor";
return "Ornate Plate";
case 373:
return "Mage Plate";
case 374:
@ -6029,17 +6029,17 @@ namespace app
case 652:
return "Mephisto's Brain";
case 653:
return "Token of Absolution";
return "Token Of Absolution";
case 654:
return "Twisted Essence of Suffering";
return "Twisted Essence Of Suffering";
case 655:
return "Charged Essense of Hatred";
return "Charged Essence Of Hatred";
case 656:
return "Burning Essence of Terror";
return "Burning Essence Of Terror";
case 657:
return "Festering Essence of Destruction";
return "Festering Essence Of Destruction";
case 658:
return "Standard of Heroes";
return "Standard Of Heroes";
default:
return "";
}

View File

@ -323,6 +323,20 @@ namespace app
}
}
public string GetItemsStashInfosTxt()
{
string ThisInfos = ", StashItem:";
if (Form1_0.ItemsAlert_0.ShouldKeepItem()) ThisInfos += "true";
else ThisInfos += "false";
ThisInfos += ", ItemToID:";
if (Form1_0.ItemsAlert_0.ShouldPickItem(false)) ThisInfos += "true";
else ThisInfos += "false";
//Console.WriteLine(Form1_0.ItemsStruc_0.ItemNAAME + ", StashItem:" + InventoryHasStashItem[FullIndex] + ", ItemToID:" + InventoryHasItemToID[FullIndex] + ", UnidItem:" + InventoryHasUnidItem[FullIndex]);
return ThisInfos;
}
public bool DebuggingItems = false;
public List<string> AllItemsOnCursor = new List<string>();
@ -423,7 +437,7 @@ namespace app
if (DebuggingItems)
{
AllItemsOnCursor.Add("ID:" + txtFileNo + "(" + ItemNAAME + ") at:" + itemx + ", " + itemy + " - On Cursor - " + Form1_0.ItemsAlert_0.GetItemTypeText() + " && " + GetQualityTextString() + " && " + GetAllFlagsFromItem() + " && " + GetAllValuesFromStats());
AllItemsOnCursor.Add("ID:" + txtFileNo + "(" + ItemNAAME + ") at:" + itemx + ", " + itemy + " - On Cursor - " + Form1_0.ItemsAlert_0.GetItemTypeText() + " && " + GetQualityTextString() + " && " + GetAllFlagsFromItem() + " && " + GetAllValuesFromStats() + GetItemsStashInfosTxt());
}
}
}
@ -444,7 +458,7 @@ namespace app
if (DebuggingItems)
{
AllItemsInInventory.Add("ID:" + txtFileNo + "(" + ItemNAAME + ") at:" + itemx + ", " + itemy + " - In Inventory - " + Form1_0.ItemsAlert_0.GetItemTypeText() + " && " + GetQualityTextString() + " && " + GetAllFlagsFromItem() + " && " + GetAllValuesFromStats());
AllItemsInInventory.Add("ID:" + txtFileNo + "(" + ItemNAAME + ") at:" + itemx + ", " + itemy + " - In Inventory - " + Form1_0.ItemsAlert_0.GetItemTypeText() + " && " + GetQualityTextString() + " && " + GetAllFlagsFromItem() + " && " + GetAllValuesFromStats() + GetItemsStashInfosTxt());
}
}
@ -456,7 +470,7 @@ namespace app
if (DebuggingItems)
{
AllItemsInStash.Add("ID:" + txtFileNo + "(" + ItemNAAME + ") at:" + itemx + ", " + itemy + " - In Stash - " + Form1_0.ItemsAlert_0.GetItemTypeText() + " && " + GetQualityTextString() + " && " + GetAllFlagsFromItem() + " && " + GetAllValuesFromStats());
AllItemsInStash.Add("ID:" + txtFileNo + "(" + ItemNAAME + ") at:" + itemx + ", " + itemy + " - In Stash - " + Form1_0.ItemsAlert_0.GetItemTypeText() + " && " + GetQualityTextString() + " && " + GetAllFlagsFromItem() + " && " + GetAllValuesFromStats() + GetItemsStashInfosTxt());
}
}
if (dwOwnerId != Form1_0.PlayerScan_0.unitId && equiploc == 4)
@ -472,9 +486,9 @@ namespace app
if (dwOwnerId == dwOwnerId_Shared3) StashNum = 4;
Form1_0.StashStruc_0.AddStashItem(itemx, itemy, StashNum);
if (dwOwnerId == dwOwnerId_Shared1 && DebuggingItems) AllItemsInSharedStash1.Add("ID:" + txtFileNo + "(" + ItemNAAME + ") at:" + itemx + ", " + itemy + " - In Shared Stash1 - " + Form1_0.ItemsAlert_0.GetItemTypeText() + " && " + GetQualityTextString() + " && " + GetAllFlagsFromItem() + " && " + GetAllValuesFromStats());
if (dwOwnerId == dwOwnerId_Shared2 && DebuggingItems) AllItemsInSharedStash2.Add("ID:" + txtFileNo + "(" + ItemNAAME + ") at:" + itemx + ", " + itemy + " - In Shared Stash2 - " + Form1_0.ItemsAlert_0.GetItemTypeText() + " && " + GetQualityTextString() + " && " + GetAllFlagsFromItem() + " && " + GetAllValuesFromStats());
if (dwOwnerId == dwOwnerId_Shared3 && DebuggingItems) AllItemsInSharedStash3.Add("ID:" + txtFileNo + "(" + ItemNAAME + ") at:" + itemx + ", " + itemy + " - In Shared Stash3 - " + Form1_0.ItemsAlert_0.GetItemTypeText() + " && " + GetQualityTextString() + " && " + GetAllFlagsFromItem() + " && " + GetAllValuesFromStats());
if (dwOwnerId == dwOwnerId_Shared1 && DebuggingItems) AllItemsInSharedStash1.Add("ID:" + txtFileNo + "(" + ItemNAAME + ") at:" + itemx + ", " + itemy + " - In Shared Stash1 - " + Form1_0.ItemsAlert_0.GetItemTypeText() + " && " + GetQualityTextString() + " && " + GetAllFlagsFromItem() + " && " + GetAllValuesFromStats() + GetItemsStashInfosTxt());
if (dwOwnerId == dwOwnerId_Shared2 && DebuggingItems) AllItemsInSharedStash2.Add("ID:" + txtFileNo + "(" + ItemNAAME + ") at:" + itemx + ", " + itemy + " - In Shared Stash2 - " + Form1_0.ItemsAlert_0.GetItemTypeText() + " && " + GetQualityTextString() + " && " + GetAllFlagsFromItem() + " && " + GetAllValuesFromStats() + GetItemsStashInfosTxt());
if (dwOwnerId == dwOwnerId_Shared3 && DebuggingItems) AllItemsInSharedStash3.Add("ID:" + txtFileNo + "(" + ItemNAAME + ") at:" + itemx + ", " + itemy + " - In Shared Stash3 - " + Form1_0.ItemsAlert_0.GetItemTypeText() + " && " + GetQualityTextString() + " && " + GetAllFlagsFromItem() + " && " + GetAllValuesFromStats() + GetItemsStashInfosTxt());
}
}
if (dwOwnerId == Form1_0.PlayerScan_0.unitId && equiploc == 3)
@ -485,7 +499,7 @@ namespace app
if (DebuggingItems)
{
AllItemsIncube.Add("ID:" + txtFileNo + "(" + ItemNAAME + ") at:" + itemx + ", " + itemy + " - In Cube - " + Form1_0.ItemsAlert_0.GetItemTypeText() + " && " + GetQualityTextString() + " && " + GetAllFlagsFromItem() + " && " + GetAllValuesFromStats());
AllItemsIncube.Add("ID:" + txtFileNo + "(" + ItemNAAME + ") at:" + itemx + ", " + itemy + " - In Cube - " + Form1_0.ItemsAlert_0.GetItemTypeText() + " && " + GetQualityTextString() + " && " + GetAllFlagsFromItem() + " && " + GetAllValuesFromStats() + GetItemsStashInfosTxt());
}
}
}
@ -505,7 +519,7 @@ namespace app
if (DebuggingItems)
{
AllItemsEquipped.Add("ID:" + txtFileNo + "(" + ItemNAAME + ") at:" + itemx + ", " + itemy + " - Equipped - " + Form1_0.ItemsAlert_0.GetItemTypeText() + " && " + GetQualityTextString() + " && " + GetAllFlagsFromItem() + " && " + GetAllValuesFromStats());
AllItemsEquipped.Add("ID:" + txtFileNo + "(" + ItemNAAME + ") at:" + itemx + ", " + itemy + " - Equipped - " + Form1_0.ItemsAlert_0.GetItemTypeText() + " && " + GetQualityTextString() + " && " + GetAllFlagsFromItem() + " && " + GetAllValuesFromStats() + GetItemsStashInfosTxt());
}
}
else
@ -515,8 +529,8 @@ namespace app
//Form1_0.MercStruc_0.MercOwnerID = ItemID;
Form1_0.method_1("owner: " + dwOwnerId.ToString("X") + ", ID: " + ItemID.ToString("X") + ", name: " + ItemNAAME + " - at: " + itemx + "," + itemy + " - " + equiploc, Color.DarkGreen);
}*/
}
}
}
}
if (itemdatastruc[0x0C] == 2)
{
if (dwOwnerId == Form1_0.PlayerScan_0.unitId)
@ -529,7 +543,7 @@ namespace app
if (DebuggingItems)
{
AllItemsInBelt.Add("ID:" + txtFileNo + "(" + ItemNAAME + ") at:" + itemx + ", " + itemy + " - In Belt - " + Form1_0.ItemsAlert_0.GetItemTypeText() + " && " + GetQualityTextString() + " && " + GetAllFlagsFromItem() + " && " + GetAllValuesFromStats());
AllItemsInBelt.Add("ID:" + txtFileNo + "(" + ItemNAAME + ") at:" + itemx + ", " + itemy + " - In Belt - " + Form1_0.ItemsAlert_0.GetItemTypeText() + " && " + GetQualityTextString() + " && " + GetAllFlagsFromItem() + " && " + GetAllValuesFromStats() + GetItemsStashInfosTxt());
}
}
}
@ -541,12 +555,19 @@ namespace app
//Form1_0.method_1_Items("Ground: " + ItemNAAME, GetColorFromQuality((int)itemQuality));
if (DebuggingItems)
{
AllItemsOnGround.Add("ID:" + txtFileNo + "(" + ItemNAAME + ") at:" + itemx + ", " + itemy + " - On Ground/Droping - " + Form1_0.ItemsAlert_0.GetItemTypeText() + " && " + GetQualityTextString() + " && " + GetAllFlagsFromItem() + " && " + GetAllValuesFromStats());
AllItemsOnGround.Add("ID:" + txtFileNo + "(" + ItemNAAME + ") at:" + itemx + ", " + itemy + " - On Ground/Droping - " + Form1_0.ItemsAlert_0.GetItemTypeText() + " && " + GetQualityTextString() + " && " + GetAllFlagsFromItem() + " && " + GetAllValuesFromStats() + GetItemsStashInfosTxt());
}
if (IsIncludedInList(BadItemsOnGroundPointerList, ItemPointerLocation)) continue;
if (IsIncludedInList(AvoidItemsOnGroundPointerList, ItemPointerLocation)) continue;
if (!IsPickingItem) continue;
if (IsIncludedInList(BadItemsOnGroundPointerList, ItemPointerLocation)) continue;
if (IsIncludedInList(AvoidItemsOnGroundPointerList, ItemPointerLocation))
{
if (!IsItemPickingPotion())
{
continue;
//if (!Form1_0.ItemsAlert_0.ShouldPickItem(false)) continue;
}
}
Form1_0.UIScan_0.readUI();
if (Form1_0.UIScan_0.leftMenu || Form1_0.UIScan_0.rightMenu || Form1_0.UIScan_0.fullMenu) continue;
@ -660,6 +681,7 @@ namespace app
{
if (!IsItemPickingPotion() && !IsIncludedInList(AvoidItemsOnGroundPointerList, ItemPointerLocation))
{
//Form1_0.method_1("Added avoid item 'OnGround':" + ItemNAAME, Color.OrangeRed);
AvoidItemsOnGroundPointerList.Add(ItemPointerLocation);
}
}

View File

@ -34,7 +34,7 @@ namespace app
_kooloMapPath = Application.StartupPath + @"\map.exe";
}
public Position GetAreaOfObject(string ObjectType, string ObjectName, List<int> IgnoreTheseIndex, int StartAreaIndexToSearch = 0, int EndAreaIndexToSearch = 1)
public Position GetAreaOfObject(string ObjectType, string ObjectName, List<int> IgnoreTheseIndex, int StartAreaIndexToSearch = 0, int EndAreaIndexToSearch = 1, bool ForOverlay = false)
{
Position ThisPos = new Position();
ThisPos.X = 0;
@ -51,8 +51,8 @@ namespace app
{
//ExitType = "exit" or "exit_area"
CurrentObjectIndex = 0;
CurrentObjectAreaIndex = 0;
if (!ForOverlay) CurrentObjectIndex = 0;
if (!ForOverlay) CurrentObjectAreaIndex = 0;
for (int i = StartAreaIndexToSearch; i < EndAreaIndexToSearch; i++)
{
@ -69,8 +69,8 @@ namespace app
{
ThisPos.X = AllMapData[i].Offset.X + AllMapData[i].Objects[k].X;
ThisPos.Y = AllMapData[i].Offset.Y + AllMapData[i].Objects[k].Y;
CurrentObjectIndex = k;
CurrentObjectAreaIndex = i;
if (!ForOverlay) CurrentObjectIndex = k;
if (!ForOverlay) CurrentObjectAreaIndex = i;
}
}
if (AllMapData[i].Objects[k].Type == "exit_area" && ObjectType == "exit_area")
@ -79,8 +79,8 @@ namespace app
{
ThisPos.X = AllMapData[i].Offset.X + AllMapData[i].Objects[k].X;
ThisPos.Y = AllMapData[i].Offset.Y + AllMapData[i].Objects[k].Y;
CurrentObjectIndex = k;
CurrentObjectAreaIndex = i;
if (!ForOverlay) CurrentObjectIndex = k;
if (!ForOverlay) CurrentObjectAreaIndex = i;
}
}
if (AllMapData[i].Objects[k].Type == "object" && ObjectType == "object")
@ -90,8 +90,8 @@ namespace app
{
ThisPos.X = AllMapData[i].Offset.X + AllMapData[i].Objects[k].X;
ThisPos.Y = AllMapData[i].Offset.Y + AllMapData[i].Objects[k].Y;
CurrentObjectIndex = k;
CurrentObjectAreaIndex = i;
if (!ForOverlay) CurrentObjectIndex = k;
if (!ForOverlay) CurrentObjectAreaIndex = i;
}
}
if (AllMapData[i].Objects[k].Type == "npc" && ObjectType == "npc")
@ -100,8 +100,8 @@ namespace app
{
ThisPos.X = AllMapData[i].Offset.X + AllMapData[i].Objects[k].X;
ThisPos.Y = AllMapData[i].Offset.Y + AllMapData[i].Objects[k].Y;
CurrentObjectIndex = k;
CurrentObjectAreaIndex = i;
if (!ForOverlay) CurrentObjectIndex = k;
if (!ForOverlay) CurrentObjectAreaIndex = i;
}
}
}
@ -115,7 +115,7 @@ namespace app
return ThisPos;
}
public Position GetPositionOfObject(string ObjectType, string ObjectName, int AreaID, List<int> IgnoreTheseIndex, bool IgnoreName = false)
public Position GetPositionOfObject(string ObjectType, string ObjectName, int AreaID, List<int> IgnoreTheseIndex, bool IgnoreName = false, bool ForOverlay = false)
{
Position ThisPos = new Position();
ThisPos.X = 0;
@ -127,8 +127,8 @@ namespace app
{
//ExitType = "exit" or "exit_area"
CurrentObjectIndex = 0;
CurrentObjectAreaIndex = 0;
if (!ForOverlay) CurrentObjectIndex = 0;
if (!ForOverlay) CurrentObjectAreaIndex = 0;
//for (int i = 0; i < AllMapData.Count; i++)
//{
@ -149,8 +149,8 @@ namespace app
{
ThisPos.X = AllMapData[i].Offset.X + AllMapData[i].Objects[k].X;
ThisPos.Y = AllMapData[i].Offset.Y + AllMapData[i].Objects[k].Y;
CurrentObjectIndex = k;
CurrentObjectAreaIndex = i;
if (!ForOverlay) CurrentObjectIndex = k;
if (!ForOverlay) CurrentObjectAreaIndex = i;
}
}
if (AllMapData[i].Objects[k].Type == "exit_area" && ObjectType == "exit_area")
@ -160,8 +160,8 @@ namespace app
{
ThisPos.X = AllMapData[i].Offset.X + AllMapData[i].Objects[k].X;
ThisPos.Y = AllMapData[i].Offset.Y + AllMapData[i].Objects[k].Y;
CurrentObjectIndex = k;
CurrentObjectAreaIndex = i;
if (!ForOverlay) CurrentObjectIndex = k;
if (!ForOverlay) CurrentObjectAreaIndex = i;
}
}
if (AllMapData[i].Objects[k].Type == "object" && ObjectType == "object")
@ -173,8 +173,8 @@ namespace app
{
ThisPos.X = AllMapData[i].Offset.X + AllMapData[i].Objects[k].X;
ThisPos.Y = AllMapData[i].Offset.Y + AllMapData[i].Objects[k].Y;
CurrentObjectIndex = k;
CurrentObjectAreaIndex = i;
if (!ForOverlay) CurrentObjectIndex = k;
if (!ForOverlay) CurrentObjectAreaIndex = i;
}
}
else
@ -184,8 +184,8 @@ namespace app
{
ThisPos.X = AllMapData[i].Offset.X + AllMapData[i].Objects[k].X;
ThisPos.Y = AllMapData[i].Offset.Y + AllMapData[i].Objects[k].Y;
CurrentObjectIndex = k;
CurrentObjectAreaIndex = i;
if (!ForOverlay) CurrentObjectIndex = k;
if (!ForOverlay) CurrentObjectAreaIndex = i;
}
}
}
@ -197,8 +197,8 @@ namespace app
{
ThisPos.X = AllMapData[i].Offset.X + AllMapData[i].Objects[k].X;
ThisPos.Y = AllMapData[i].Offset.Y + AllMapData[i].Objects[k].Y;
CurrentObjectIndex = k;
CurrentObjectAreaIndex = i;
if (!ForOverlay) CurrentObjectIndex = k;
if (!ForOverlay) CurrentObjectAreaIndex = i;
}
}
}

View File

@ -7,6 +7,8 @@ using System.Text;
using System.Threading.Tasks;
using static System.Windows.Forms.AxHost;
using static app.MapAreaStruc;
using static app.EnumsMobsNPC;
using static app.EnumsStates;
namespace app
{
@ -209,6 +211,7 @@ namespace app
}
public List<int> monsterIDs = new List<int>();
public List<int> monsterTypes = new List<int>();
public List<int[]> GetAllMobsNearby()
{
@ -216,6 +219,7 @@ namespace app
List<int[]> monsterPositions2 = new List<int[]>();
monsterIDs = new List<int>();
monsterTypes = new List<int>();
try
{
@ -233,6 +237,12 @@ namespace app
Form1_0.Mem_0.ReadRawMemory(MobsPointerLocation + 4, ref CurrentPointerBytes, CurrentPointerBytes.Length);
uint txtFileNo2 = BitConverter.ToUInt32(CurrentPointerBytes, 0);
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));
//long pStatsListExPtr = BitConverter.ToInt64(mobsdatastruc, 0x88);
CurrentPointerBytes = new byte[8];
Form1_0.Mem_0.ReadRawMemory(MobsPointerLocation + 0x88, ref CurrentPointerBytes, CurrentPointerBytes.Length);
@ -250,8 +260,8 @@ namespace app
&& !Form1_0.PlayerScan_0.HasState(EnumsStates.State.Revive, MobsStatesAll)
&& !DebuggingMobs)
|| DebuggingMobs)
//&& IsThisMobInBound())
//&& !ShouldBeIgnored(txtFileNo2))
//&& IsThisMobInBound())
//&& !ShouldBeIgnored(txtFileNo2))
{
GetUnitPathDataAll();
GetStatsAddrAll();
@ -268,6 +278,7 @@ namespace app
{
monsterPositions2.Add(new int[2] { (int)xPosFinalAll, (int)yPosFinalAll });
monsterIDs.Add((int)txtFileNo2);
monsterTypes.Add(GetMonsterType(flag));
}
}
}
@ -282,6 +293,66 @@ namespace app
return monsterPositions2;
}
public int GetMonsterType(byte typeFlag)
{
switch (typeFlag)
{
case 10:
return (int) Enums.MonsterType.SuperUnique;
case 1 << 2:
return (int)Enums.MonsterType.Champion;
case 1 << 3:
return (int)Enums.MonsterType.Unique;
case 1 << 4:
return (int)Enums.MonsterType.Minion;
case 1 << 5:
return (int)Enums.MonsterType.Possessed;
case 1 << 6:
return (int)Enums.MonsterType.Ghostly;
case 1 << 7:
return (int)Enums.MonsterType.Multishot;
default:
return (int) Enums.MonsterType.None;
}
}
public bool IsImmune(Enums.StatResist resist)
{
if (this.statCount < 100)
{
Form1_0.Mem_0.ReadRawMemory(this.statPtr, ref statBuffer, (int)(this.statCount * 10));
for (int i = 0; i < this.statCount; i++)
{
int offset = i * 8;
short statLayer = BitConverter.ToInt16(statBuffer, offset);
ushort statEnum = BitConverter.ToUInt16(statBuffer, offset + 0x2);
int statValue = BitConverter.ToInt32(statBuffer, offset + 0x4);
if (resist == Enums.StatResist.ColdImmune && (Enums.Attribute) statEnum == Enums.Attribute.ColdResist)
{
return true;
}
if (resist == Enums.StatResist.FireImmune && (Enums.Attribute) statEnum == Enums.Attribute.FireResist)
{
return true;
}
if (resist == Enums.StatResist.LightImmune && (Enums.Attribute) statEnum == Enums.Attribute.LightningResist)
{
return true;
}
if (resist == Enums.StatResist.PoisonImmune && (Enums.Attribute) statEnum == Enums.Attribute.PoisonResist)
{
return true;
}
if (resist == Enums.StatResist.MagicImmune && (Enums.Attribute) statEnum == Enums.Attribute.MagicResist)
{
return true;
}
}
}
return false;
}
public void GetUnitPathDataAll()
{
//pPathPtr = BitConverter.ToInt64(mobsdatastruc, 0x38);
@ -392,6 +463,23 @@ namespace app
GetStatsAddr();
int MobHPBuffer = GetHPFromStats();
//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)
{
continue; //go to next mobs
}
}
//Console.WriteLine("found near mob " + txtFileNo + " at: " + xPosFinal + ", " + yPosFinal + " HP:" + MobHPBuffer);
if ((MobHPBuffer > 0 || (MobHPBuffer == 0 && MobName != ""))
&& (xPosFinal != 0 && yPosFinal != 0)//)

View File

@ -226,6 +226,7 @@ namespace app
{
case 0: return 1; //UNKOWN
case 1: return 1; //Skeleton
case 3: return 1; //UNKOWN
//case 23: return 1; //WarpedFallen
case 149: return 1; //Chicken
case 151: return 1; //Rat

View File

@ -1,4 +1,5 @@
using System;
using System.IO;
using System.Collections.Generic;
using System.Drawing;
using System.Linq;
@ -20,6 +21,8 @@ namespace app
public List<long> AllPlayersPointers = new List<long>();
public List<long> AllNPCPointers = new List<long>();
public List<long> AllPossiblePointers = new List<long>();
public List<long> AllPossibleItemsPointers = new List<long>();
public List<long> AllPossiblePlayerPointers = new List<long>();
public List<long> AllPossibleObjectsPointers = new List<long>();
@ -32,9 +35,13 @@ namespace app
public long StartIndexItem = long.MaxValue;
public long StartIndexItemLast = long.MaxValue;
public int ScanUnitsNumber = 2600;
public int ScanUnitsNumber = 2100;
//public int ScanUnitsNumber = 2048;
public int ScanUnitsNegativeOffset = 0;
public int ScanUnitsNegativeOffset = 30;
public long StartIndexItem_V2 = long.MaxValue;
public long StartIndexItemLast_V2 = long.MaxValue;
public void SetForm1(Form1 form1_1)
@ -248,19 +255,99 @@ namespace app
//DetectFirstUnitPointer();
}
/*public void scanForUnitsPointer(string SearchUnitsType)
//########################################################################################################################################
//########################################################################################################################################
//########################################################################################################################################
//ALL VERSIONS
public void unitPatternScan(long AtPoiinter, string SearchType)
{
UnitPatternScan(SearchUnitsType);
//checkForMissingPointers(SearchUnitsType);
long SearchOffset = 0;
long ThisAddrF = Search(UnitBuffer, ThisCheckbytes, SearchOffset, SearchType);
//while (ThisAddrF >= 0)
if (ThisAddrF >= 0)
{
AddPointerToList(AtPoiinter + ThisAddrF, SearchType);
}
}
public int ScannedItemsCount = 0;
public int ScannedPlayerCount = 0;
public int ScannedObjectsCount = 0;
public int ScannedNPCCount = 0;
public int GetUnitsScannedCount(int ThisVersion)
{
ScannedItemsCount = 0;
ScannedPlayerCount = 0;
ScannedObjectsCount = 0;
ScannedNPCCount = 0;
if (ThisVersion == 1) scanForUnitsPointerV1("item");
int UnitsScannedCount = 0;
long CheckThisI = StartIndexItem;
if (ThisVersion == 2) CheckThisI = StartIndexItem_V2;
CheckThisI -= (0x48 + 0x170) * ScanUnitsNegativeOffset; //offseting in negative here
UnitBuffer = new byte[9];
//string SavePathh = Form1_0.ThisEndPath + "DumpHexUnits";
//File.Create(SavePathh).Dispose();
for (int i = 0; i < ScanUnitsNumber; i++)
{
if ((i % 2) == 1) CheckThisI += 0x48;
else CheckThisI += 0x170;
/*byte[] CurrentUnitBuff = new byte[(0x48 + 0x170)];
Form1_0.Mem_0.ReadRawMemory(CheckThisI, ref CurrentUnitBuff, CurrentUnitBuff.Length);
AppendAllBytes(SavePathh, CurrentUnitBuff);*/
ThisCheckbytes = new byte[] { (byte)UnitType.Item, 0x00, 0x00, 0x00, 0xff, 0xff, 0x00, 0x00 };
Form1_0.Mem_0.ReadRawMemory(CheckThisI, ref UnitBuffer, UnitBuffer.Length);
long SearchOffset = 0;
if (Search(UnitBuffer, ThisCheckbytes, SearchOffset, "item") >= 0) { UnitsScannedCount++; ScannedItemsCount++; }
ThisCheckbytes = new byte[] { (byte)UnitType.Player, 0x00, 0x00, 0x00, 0xff, 0xff, 0x00, 0x00 };
Form1_0.Mem_0.ReadRawMemory(CheckThisI, ref UnitBuffer, UnitBuffer.Length);
SearchOffset = 0;
if (Search(UnitBuffer, ThisCheckbytes, SearchOffset, "player") >= 0) { UnitsScannedCount++; ScannedPlayerCount++; }
ThisCheckbytes = new byte[] { (byte)UnitType.GameObject, 0x00, 0x00, 0x00, 0xff, 0xff, 0x00, 0x00 };
Form1_0.Mem_0.ReadRawMemory(CheckThisI, ref UnitBuffer, UnitBuffer.Length);
SearchOffset = 0;
if (Search(UnitBuffer, ThisCheckbytes, SearchOffset, "objects") >= 0) { UnitsScannedCount++; ScannedObjectsCount++; }
ThisCheckbytes = new byte[] { (byte)UnitType.NPC, 0x00, 0x00, 0x00, 0xff, 0xff, 0x00, 0x00 };
Form1_0.Mem_0.ReadRawMemory(CheckThisI, ref UnitBuffer, UnitBuffer.Length);
SearchOffset = 0;
if (Search(UnitBuffer, ThisCheckbytes, SearchOffset, "NPC") >= 0) { UnitsScannedCount++; ScannedNPCCount++; }
}
return UnitsScannedCount;
}
public static void AppendAllBytes(string path, byte[] bytes)
{
using (var stream = new FileStream(path, FileMode.Append))
{
stream.Write(bytes, 0, bytes.Length);
}
}
//########################################################################################################################################
//########################################################################################################################################
//########################################################################################################################################
//VERSION 2 UNITS SCAN
public void scanForUnitsPointer(string SearchUnitsType)
{
UnitPatternScanV2(SearchUnitsType);
}
public void DetectFirstUnitPointer()
{
long UnitOffset = 0;
//try
//{
UnitOffset = (long)Form1_0.BaseAddress + (long)Form1_0.offsets["unitTable"] + Form1_0.UnitStrucOffset;
long UnitOffset = (long)Form1_0.BaseAddress + (long)Form1_0.offsets["unitTable"] + Form1_0.UnitStrucOffset;
AllPossiblePointers = new List<long>();
for (int i = 0; i < ((128 + 516) * 10); i += 8)
@ -272,19 +359,18 @@ namespace app
//set start index for searching
for (int i = 0; i < AllPossiblePointers.Count; i++)
{
if (AllPossiblePointers[i] < StartIndexItem) StartIndexItem = AllPossiblePointers[i];
if (AllPossiblePointers[i] < StartIndexItem_V2) StartIndexItem_V2 = AllPossiblePointers[i];
}
//(byte)UnitType.Item, 0x00, 0x00, 0x00, 0xff, 0xff, 0x00, 0x00
//1C 00 00 00 0C 00 00 00 21 00 00 00 1D 00 00 00
//04 00 00 00 1F 00 00 00 06 00 00 00 00 00 00 00
if (StartIndexItem == long.MaxValue) return;
if (StartIndexItem_V2 == long.MaxValue) return;
int BadCount = 0;
long CheckThisI = StartIndexItem;
//CheckThisI -= (0x48 + 0x170) * 100; //offseting in negative here
for (int i = 100; i >= 0; i--)
long CheckThisI = StartIndexItem_V2;
for (int i = 250; i >= 0; i--)
{
//if ((i % 2) == 1) CheckThisI -= 0x48;
//else CheckThisI -= 0x170;
@ -299,7 +385,7 @@ namespace app
if (CurrentUnitBuff[6] == 0 && CurrentUnitBuff[7] == 0)
{
BadCount = 0;
StartIndexItem = CheckThisI;
StartIndexItem_V2 = CheckThisI;
}
else
{
@ -308,12 +394,11 @@ namespace app
BadCount++;
if (BadCount >= 3)
{
if (StartIndexItem != LastStartIndexItem)
if (StartIndexItem_V2 != StartIndexItemLast_V2)
{
LastStartIndexItem = StartIndexItem;
StartIndexItemLast_V2 = StartIndexItem_V2;
//ScanUnitsNumber += i;
Form1_0.method_1("Units pointer start at: 0x" + StartIndexItem.ToString("X"), Color.Black);
//Form1_0.method_1("BAD Units pointer start at: 0x" + CheckThisI.ToString("X"), Color.Black);
Form1_0.method_1("Units pointer start at: 0x" + StartIndexItem_V2.ToString("X"), Color.Black);
}
return;
}
@ -324,57 +409,61 @@ namespace app
}
}
}
//}
//catch
//{
// return;
//}
}*/
}
public int GetUnitsScannedCount()
public void UnitPatternScanV2(string SearchUnitsType)
{
int UnitsScannedCount = 0;
long CheckThisI = StartIndexItem;
CheckThisI -= (0x48 + 0x170) * ScanUnitsNegativeOffset; //offseting in negative here
UnitBuffer = new byte[9];
if (StartIndexItem_V2 == long.MaxValue) DetectFirstUnitPointer();
//string SavePathh = Form1_0.ThisEndPath + "DumpHexUnits";
//File.Create(SavePathh).Dispose();
//search
long CheckThisI = StartIndexItem_V2;
UnitBuffer = new byte[9];
CheckThisI -= (0x48 + 0x170) * ScanUnitsNegativeOffset; //offseting in negative here
//Console.WriteLine("Unit start: 0x" + CheckThisI.ToString("X"));
//Console.WriteLine("Unit end: 0x" + (CheckThisI + ((0x48 * ScanUnitsNumber / 2)) + ((0x170 * ScanUnitsNumber / 2))).ToString("X"));
for (int i = 0; i < ScanUnitsNumber; i++)
{
if ((i % 2) == 1) CheckThisI += 0x48;
else CheckThisI += 0x170;
//byte[] CurrentUnitBuff = new byte[(0x48 + 0x170)];
//Form1_0.Mem_0.ReadRawMemory(CheckThisI, ref CurrentUnitBuff, CurrentUnitBuff.Length);
//AppendAllBytes(SavePathh, CurrentUnitBuff);
if (SearchUnitsType == "item")
{
ThisCheckbytes = new byte[] { (byte)UnitType.Item, 0x00, 0x00, 0x00, 0xff, 0xff, 0x00, 0x00 };
Form1_0.Mem_0.ReadRawMemory(CheckThisI, ref UnitBuffer, UnitBuffer.Length);
unitPatternScan(CheckThisI, "item");
}
ThisCheckbytes = new byte[] { (byte)UnitType.Item, 0x00, 0x00, 0x00, 0xff, 0xff, 0x00, 0x00 };
Form1_0.Mem_0.ReadRawMemory(CheckThisI, ref UnitBuffer, UnitBuffer.Length);
long SearchOffset = 0;
if (Search(UnitBuffer, ThisCheckbytes, SearchOffset, "item") >= 0) UnitsScannedCount++;
if (SearchUnitsType == "player")
{
ThisCheckbytes = new byte[] { (byte)UnitType.Player, 0x00, 0x00, 0x00, 0xff, 0xff, 0x00, 0x00 };
Form1_0.Mem_0.ReadRawMemory(CheckThisI, ref UnitBuffer, UnitBuffer.Length);
unitPatternScan(CheckThisI, "player");
}
ThisCheckbytes = new byte[] { (byte)UnitType.Player, 0x00, 0x00, 0x00, 0xff, 0xff, 0x00, 0x00 };
Form1_0.Mem_0.ReadRawMemory(CheckThisI, ref UnitBuffer, UnitBuffer.Length);
SearchOffset = 0;
if (Search(UnitBuffer, ThisCheckbytes, SearchOffset, "item") >= 0) UnitsScannedCount++;
if (SearchUnitsType == "objects")
{
ThisCheckbytes = new byte[] { (byte)UnitType.GameObject, 0x00, 0x00, 0x00, 0xff, 0xff, 0x00, 0x00 };
Form1_0.Mem_0.ReadRawMemory(CheckThisI, ref UnitBuffer, UnitBuffer.Length);
unitPatternScan(CheckThisI, "objects");
}
ThisCheckbytes = new byte[] { (byte)UnitType.GameObject, 0x00, 0x00, 0x00, 0xff, 0xff, 0x00, 0x00 };
Form1_0.Mem_0.ReadRawMemory(CheckThisI, ref UnitBuffer, UnitBuffer.Length);
SearchOffset = 0;
if (Search(UnitBuffer, ThisCheckbytes, SearchOffset, "item") >= 0) UnitsScannedCount++;
ThisCheckbytes = new byte[] { (byte)UnitType.NPC, 0x00, 0x00, 0x00, 0xff, 0xff, 0x00, 0x00 };
Form1_0.Mem_0.ReadRawMemory(CheckThisI, ref UnitBuffer, UnitBuffer.Length);
SearchOffset = 0;
if (Search(UnitBuffer, ThisCheckbytes, SearchOffset, "item") >= 0) UnitsScannedCount++;
if (SearchUnitsType == "NPC")
{
ThisCheckbytes = new byte[] { (byte)UnitType.NPC, 0x00, 0x00, 0x00, 0xff, 0xff, 0x00, 0x00 };
Form1_0.Mem_0.ReadRawMemory(CheckThisI, ref UnitBuffer, UnitBuffer.Length);
unitPatternScan(CheckThisI, "NPC");
}
}
return UnitsScannedCount;
}
public void scanForUnitsPointer(string SearchUnitsType)
//########################################################################################################################################
//########################################################################################################################################
//########################################################################################################################################
//VERSION 1 UNITS SCAN
public void scanForUnitsPointerV1(string SearchUnitsType)
{
long UnitOffset = 0;
try
@ -431,15 +520,12 @@ namespace app
}
}
UnitPatternScan(SearchUnitsType);
UnitPatternScanV1(SearchUnitsType);
checkForMissingPointers(SearchUnitsType);
}
public void UnitPatternScan(string SearchUnitsType)
public void UnitPatternScanV1(string SearchUnitsType)
{
//DetectFirstUnitPointer();
//if (StartIndexItem == long.MaxValue) DetectFirstUnitPointer();
if (SearchUnitsType == "item") AllItemsPointers = new List<long>();
if (SearchUnitsType == "player") AllPlayersPointers = new List<long>();
if (SearchUnitsType == "objects") AllObjectsPointers = new List<long>();
@ -505,8 +591,11 @@ namespace app
//search
long CheckThisI = StartIndexItem;
UnitBuffer = new byte[9];
CheckThisI -= (0x48 + 0x170) * ScanUnitsNegativeOffset; //offseting in negative here
//Console.WriteLine("Unit start: 0x" + CheckThisI.ToString("X"));
//Console.WriteLine("Unit end: 0x" + (CheckThisI + ((0x48 * ScanUnitsNumber / 2)) + ((0x170 * ScanUnitsNumber / 2))).ToString("X"));
for (int i = 0; i < ScanUnitsNumber; i++)
{
if ((i % 2) == 1) CheckThisI += 0x48;
@ -562,18 +651,6 @@ namespace app
}
}
public void unitPatternScan(long AtPoiinter, string SearchType)
{
long SearchOffset = 0;
long ThisAddrF = Search(UnitBuffer, ThisCheckbytes, SearchOffset, SearchType);
//while (ThisAddrF >= 0)
if (ThisAddrF >= 0)
{
AddPointerToList(AtPoiinter + ThisAddrF, SearchType);
}
}
public void AddPointerToList(long TPoiinter, string SearchType)
{
if (SearchType == "item")
@ -652,22 +729,5 @@ namespace app
}
}
}
/*public const long OneKB = 1024;
public const long OneMB = OneKB * OneKB;
public const long OneGB = OneMB * OneKB;
public const long OneTB = OneGB * OneKB;
public string BytesToHumanReadable(long bytes)
{
if (bytes < 0) return "ERROR";
if (bytes < OneKB) return $"{bytes}B";
if (bytes >= OneKB && bytes < OneMB) return $"{bytes / OneKB}KB";
if (bytes >= OneMB && bytes < OneGB) return $"{bytes / OneMB}MB";
if (bytes >= OneGB && bytes < OneTB) return $"{bytes / OneMB}GB";
if (bytes >= OneTB) return $"{bytes / OneTB}";
return "TOO BIG";
}*/
}
}

View File

@ -45,6 +45,7 @@ RunEldritchScript=false
RunShenkScript=false
RunNihlatakScript=false
RunItemGrabScriptOnly=false
ClearAfterBoss=false
//#######################################
//NOT IN GAME SCRIPT (SEARCH GAMES OR CREATE A NEW GAME)
@ -63,4 +64,19 @@ KillBaal=true
LeaveIfMobsIsPresent_ID=
LeaveIfMobsIsPresent_Count=
LeaveIfMobsCountIsAbove=0
SafeHealingStrat=false
SafeHealingStrat=false
//#######################################
//SPECIALS OVERLAY FEATURES
//#######################################
ShowMobs=true
ShowWPs=true
ShowGoodChests=true
ShowLogs=true
ShowBotInfos=true
ShowNPC=true
ShowPathFinding=true
ShowExits=true
ShowMapHackShowLines=true
ShowUnitsScanCount=false

View File

@ -19,6 +19,9 @@ KeySkillfastMoveOutsideTown=F7
KeySkillDefenseAura=F6
KeySkillCastDefense=F5
KeySkillLifeAura=F3
KeySkillBattleOrder=D5
KeySkillBattleCommand=D6
KeySkillBattleCry=D7
PlayerAttackWithRightHand=false
@ -62,9 +65,19 @@ GrabForGold=true
IDAtShop=true
LeaveDiabloClone=true
GambleGold=true
UseKeys=true
//#######################################
//MERC SETTINGS
//#######################################
UsingMerc=true
MercTakeHPPotUnder=40
MercTakeHPPotUnder=40
//#######################################
//AVOID IMMUNE SETTINGS
//#######################################
AvoidColdImmune=false
AvoidFireImmune=false
AvoidLightImmune=false
AvoidPoisonImmune=false
AvoidMagicImmune=false

View File

@ -19,6 +19,9 @@ KeySkillfastMoveOutsideTown=F7
KeySkillDefenseAura=F7
KeySkillCastDefense=F5
KeySkillLifeAura=F4
KeySkillBattleOrder=D5
KeySkillBattleCommand=D6
KeySkillBattleCry=D7
PlayerAttackWithRightHand=true
@ -62,9 +65,19 @@ GrabForGold=true
IDAtShop=true
LeaveDiabloClone=true
GambleGold=true
UseKeys=true
//#######################################
//MERC SETTINGS
//#######################################
UsingMerc=false
MercTakeHPPotUnder=40
MercTakeHPPotUnder=40
//#######################################
//AVOID IMMUNE SETTINGS
//#######################################
AvoidColdImmune=false
AvoidFireImmune=false
AvoidLightImmune=false
AvoidPoisonImmune=false
AvoidMagicImmune=false

View File

@ -291,10 +291,10 @@ Perfect Diamond
//[Name] == Shako && [Quality] == unique && [Defense] >= 120 // Harlequin Crest
[Name] == Shako && [Quality] == unique // Harlequin Crest
[Name] == Demonhead && [Quality] == unique // Andariel's Visage
[Name] == Demonhead && [Quality] == unique && [Flag] != ethereal
//[Name] == Demonhead && [Quality] == unique && [Flag] != ethereal
[Name] == BoneVisage && [Quality] == unique && [Flag] != ethereal // Giant Skull
[Name] == SpiredHelm && [Quality] == unique && [Flag] != ethereal// Nightwing's Veil
[Name] == Corona && [Quality] == unique && [Flag] != ethereal // Crown of ages
//[Name] == Corona && [Quality] == unique && [Flag] != ethereal // Crown of ages
[Name] == Corona && [Quality] == unique // Crown of ages
//##### Armor

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.