Compare commits
2 Commits
b600e62c8c
...
a4e04f0064
Author | SHA1 | Date |
---|---|---|
Bouletmarc | a4e04f0064 | |
Bouletmarc | 94eb8a90c3 |
|
@ -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);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
46
Bots/Baal.cs
46
Bots/Baal.cs
|
@ -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;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -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;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -474,10 +474,13 @@ namespace app
|
|||
|
||||
if (CurrentStep == 8)
|
||||
{
|
||||
Form1_0.PathFinding_0.MoveToThisPos(DiabloSpawnPos, 4, true);
|
||||
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);
|
||||
}
|
||||
|
|
|
@ -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);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -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);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -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);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -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++;
|
||||
}
|
||||
|
|
|
@ -120,19 +120,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;
|
||||
|
||||
if (Form1_0.Battle_0.EndBossBattle())
|
||||
{
|
||||
//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)
|
||||
|
@ -158,6 +147,7 @@ namespace app
|
|||
//Form1_0.LeaveGame(true);
|
||||
}
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
Form1_0.method_1("Mephisto not detected!", Color.Red);
|
||||
|
@ -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);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -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);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -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);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -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);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -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);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -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);
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -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
|
||||
//#######################################
|
||||
|
|
|
@ -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());
|
||||
}
|
||||
//#####
|
||||
}
|
||||
}
|
||||
|
|
49
Form1.cs
49
Form1.cs
|
@ -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 button1_Click(object sender, EventArgs e)
|
||||
public void StartBot()
|
||||
{
|
||||
if (!Running && button1.Enabled)
|
||||
{
|
||||
SetStartButtonEnable(false);
|
||||
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)
|
||||
{
|
||||
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();
|
||||
}
|
||||
}
|
||||
|
|
|
@ -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;
|
||||
}
|
||||
}
|
|
@ -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();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -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;
|
||||
}
|
||||
}
|
|
@ -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;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
189
OverlayForm.cs
189
OverlayForm.cs
|
@ -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 (ShowGoodChests) SetAllGoodChestNearby();
|
||||
if (ShowMobs)
|
||||
{
|
||||
if (!Form1_0.MobsStruc_0.DebuggingMobs) SetAllMonsterNearby();
|
||||
if (Form1_0.MobsStruc_0.DebuggingMobs) SetAllMonsterNearbyDebug();
|
||||
SetAllNPCNearby();
|
||||
SetAllWPNearby();
|
||||
SetAllExitNearby();
|
||||
}
|
||||
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,11 +356,53 @@ 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 Logs
|
||||
if (ShowLogs)
|
||||
{
|
||||
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--)
|
||||
{
|
||||
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);
|
||||
}
|
||||
}
|
||||
|
||||
//################################################
|
||||
//################################################
|
||||
if (Form1_0.GameStruc_0.IsInGame())
|
||||
{
|
||||
if (ShowBotInfos)
|
||||
{
|
||||
//Print Potions Qty
|
||||
int Qty1 = 0;
|
||||
int Qty2 = 0;
|
||||
|
@ -384,37 +452,6 @@ namespace app
|
|||
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--)
|
||||
{
|
||||
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);
|
||||
|
@ -422,7 +459,7 @@ namespace app
|
|||
DrawString(e, Form1_0.CurrentGameTime, drawFontBold, drawBrushYellow, 990, 935, true);
|
||||
|
||||
//Print mS Delay
|
||||
string ThisMSStr = "~" + Form1_0.Average_mS + "(" + Form1_0.mS + ")";
|
||||
string ThisMSStr = "~" + Form1_0.Average_mS + "ms(" + Form1_0.mS.Replace("ms", "") + ")";
|
||||
DrawString(e, ThisMSStr, drawFontBold, drawBrushYellow, 1090, 910, true);
|
||||
|
||||
//Print FPS Delay
|
||||
|
@ -452,13 +489,31 @@ namespace app
|
|||
}
|
||||
|
||||
//Print Units Scanned Count
|
||||
if (Form1_0.DebugMenuStyle > 0)
|
||||
if (ShowUnitsScanCount || (Form1_0.DebugMenuStyle > 0 && !ShowUnitsScanCount))
|
||||
{
|
||||
string UnitsStr = "Units:" + Form1_0.PatternsScan_0.GetUnitsScannedCount().ToString();
|
||||
DrawString(e, UnitsStr, drawFontBold, drawBrushGreen, 560, 885, true);
|
||||
//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++)
|
||||
{
|
||||
|
@ -492,22 +547,33 @@ namespace app
|
|||
}
|
||||
DrawCrossAtPoint(e, StartPoint, redPen, 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, yellowPen, false);
|
||||
DrawCrossAtPoint(e, StartPoint, ThisPenMobs, false);
|
||||
|
||||
//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);
|
||||
//}
|
||||
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);
|
||||
|
@ -515,14 +581,14 @@ namespace app
|
|||
StartPoint = RescaleThisPoint(StartPoint);
|
||||
DrawCrossAtPoint(e, StartPoint, purplePen, false);
|
||||
|
||||
//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);
|
||||
//}
|
||||
}
|
||||
}
|
||||
|
||||
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);
|
||||
|
@ -530,14 +596,17 @@ namespace app
|
|||
StartPoint = RescaleThisPoint(StartPoint);
|
||||
DrawCrossAtPoint(e, StartPoint, greenPen, false);
|
||||
|
||||
if (CharConfig.RunMapHackOnly)
|
||||
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);
|
||||
|
@ -545,15 +614,17 @@ namespace app
|
|||
StartPoint = RescaleThisPoint(StartPoint);
|
||||
DrawCrossAtPoint(e, StartPoint, bluePen, false);
|
||||
|
||||
if (CharConfig.RunMapHackOnly)
|
||||
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)
|
||||
|
||||
if (CharConfig.RunMapHackOnly && ShowMapHackShowLines)
|
||||
{
|
||||
FillRectangle(e, drawBrushDark, 1398, 5, 270, 119, true);
|
||||
DrawString(e, "Green: Good Chest", drawFontBold10, drawBrushGreen, 1400, 5, true);
|
||||
|
@ -564,6 +635,8 @@ namespace app
|
|||
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);
|
||||
|
@ -571,7 +644,7 @@ namespace app
|
|||
StartPoint = RescaleThisPoint(StartPoint);
|
||||
DrawCrossAtPoint(e, StartPoint, cyanPen, false);
|
||||
|
||||
if (CharConfig.RunMapHackOnly)
|
||||
if (CharConfig.RunMapHackOnly && ShowMapHackShowLines)
|
||||
{
|
||||
System.Drawing.Point PlayerPoint = new System.Drawing.Point(Form1_0.CenterX, Form1_0.CenterY);
|
||||
PlayerPoint = RescaleThisPoint(PlayerPoint);
|
||||
|
@ -626,6 +699,8 @@ namespace app
|
|||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public void DrawString(PaintEventArgs e, string ThisTxt, Font ThisFont, Brush ThisBrush, float PosX, float PosY, bool FixPos)
|
||||
{
|
||||
|
|
107
PathFinding.cs
107
PathFinding.cs
|
@ -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,62 +833,33 @@ 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))
|
||||
// Assuming a 2D grid, iterate over all nodes and check if they are within the teleport distance
|
||||
foreach (Node otherNode in allNodes)
|
||||
{
|
||||
double distance = Math.Sqrt(dx * dx + dy * dy);
|
||||
if (distance <= TeleportAcceptSize && ThisCollisionGrid[nx, ny])
|
||||
if (otherNode != node && IsWithinTeleportDistance(node, otherNode, teleportDistance))
|
||||
{
|
||||
TeleportPoint.X = nx;
|
||||
TeleportPoint.Y = ny;
|
||||
return true;
|
||||
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; }
|
||||
return neighbors;
|
||||
}
|
||||
|
||||
if (ThisCollisionGrid[next.X + XAdder, next.Y + YAdder])
|
||||
private bool IsWithinTeleportDistance(Node nodeA, Node nodeB, int teleportDistance)
|
||||
{
|
||||
// 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);
|
||||
int distanceX = Math.Abs(nodeA.x - nodeB.x);
|
||||
int distanceY = Math.Abs(nodeA.y - nodeB.y);
|
||||
|
||||
//double distance = Math.Sqrt(Math.Pow(next.X - current.X, 2) + Math.Pow(next.Y - current.Y, 2));
|
||||
//return IsWalkable(next) && distance <= TeleportAcceptSize;
|
||||
// Calculate the Euclidean distance between the two nodes
|
||||
double distance = Math.Sqrt(distanceX * distanceX + distanceY * distanceY);
|
||||
|
||||
TeleportPoint.X = next.X + XAdder;
|
||||
TeleportPoint.Y = next.Y + YAdder;
|
||||
return true;
|
||||
//return IsWalkable(next);
|
||||
}
|
||||
}
|
||||
}
|
||||
return false;
|
||||
}
|
||||
// Return true if the distance is within the teleport distance limit
|
||||
return distance <= teleportDistance;
|
||||
}*/
|
||||
|
||||
private bool IsWalkable(Point point)
|
||||
{
|
||||
|
|
|
@ -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);
|
||||
|
||||
|
|
|
@ -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)
|
||||
|
|
|
@ -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);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -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;
|
||||
}
|
||||
|
|
|
@ -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)
|
||||
{
|
||||
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,6 +462,8 @@ namespace app
|
|||
}
|
||||
|
||||
//buy key
|
||||
if (CharConfig.UseKeys)
|
||||
{
|
||||
Form1_0.InventoryStruc_0.VerifyKeysInventory();
|
||||
tries = 0;
|
||||
StartQty = Form1_0.InventoryStruc_0.HUDItems_keys;
|
||||
|
@ -491,6 +499,7 @@ namespace app
|
|||
}
|
||||
StartQty = Form1_0.InventoryStruc_0.HUDItems_keys;
|
||||
}
|
||||
}
|
||||
|
||||
//buy tome of portal for cows level
|
||||
if (ShopForTomeOfPortal)
|
||||
|
|
|
@ -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)
|
||||
|
@ -64,3 +65,18 @@ LeaveIfMobsIsPresent_ID=
|
|||
LeaveIfMobsIsPresent_Count=
|
||||
LeaveIfMobsCountIsAbove=0
|
||||
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
|
||||
|
|
|
@ -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
|
||||
|
||||
//#######################################
|
||||
//AVOID IMMUNE SETTINGS
|
||||
//#######################################
|
||||
AvoidColdImmune=false
|
||||
AvoidFireImmune=false
|
||||
AvoidLightImmune=false
|
||||
AvoidPoisonImmune=false
|
||||
AvoidMagicImmune=false
|
|
@ -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
|
||||
|
||||
//#######################################
|
||||
//AVOID IMMUNE SETTINGS
|
||||
//#######################################
|
||||
AvoidColdImmune=false
|
||||
AvoidFireImmune=false
|
||||
AvoidLightImmune=false
|
||||
AvoidPoisonImmune=false
|
||||
AvoidMagicImmune=false
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
{
|
||||
|
|
|
@ -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 { }
|
||||
}
|
||||
|
|
|
@ -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);
|
||||
|
|
|
@ -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 "";
|
||||
}
|
||||
|
|
|
@ -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
|
||||
|
@ -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);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -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;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -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);
|
||||
|
@ -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)//)
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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);
|
||||
long SearchOffset = 0;
|
||||
if (Search(UnitBuffer, ThisCheckbytes, SearchOffset, "item") >= 0) UnitsScannedCount++;
|
||||
unitPatternScan(CheckThisI, "item");
|
||||
}
|
||||
|
||||
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);
|
||||
SearchOffset = 0;
|
||||
if (Search(UnitBuffer, ThisCheckbytes, SearchOffset, "item") >= 0) UnitsScannedCount++;
|
||||
unitPatternScan(CheckThisI, "player");
|
||||
}
|
||||
|
||||
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);
|
||||
SearchOffset = 0;
|
||||
if (Search(UnitBuffer, ThisCheckbytes, SearchOffset, "item") >= 0) UnitsScannedCount++;
|
||||
unitPatternScan(CheckThisI, "objects");
|
||||
}
|
||||
|
||||
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);
|
||||
SearchOffset = 0;
|
||||
if (Search(UnitBuffer, ThisCheckbytes, SearchOffset, "item") >= 0) UnitsScannedCount++;
|
||||
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";
|
||||
}*/
|
||||
}
|
||||
}
|
||||
|
|
|
@ -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)
|
||||
|
@ -64,3 +65,18 @@ LeaveIfMobsIsPresent_ID=
|
|||
LeaveIfMobsIsPresent_Count=
|
||||
LeaveIfMobsCountIsAbove=0
|
||||
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
|
||||
|
|
|
@ -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
|
||||
|
||||
//#######################################
|
||||
//AVOID IMMUNE SETTINGS
|
||||
//#######################################
|
||||
AvoidColdImmune=false
|
||||
AvoidFireImmune=false
|
||||
AvoidLightImmune=false
|
||||
AvoidPoisonImmune=false
|
||||
AvoidMagicImmune=false
|
|
@ -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
|
||||
|
||||
//#######################################
|
||||
//AVOID IMMUNE SETTINGS
|
||||
//#######################################
|
||||
AvoidColdImmune=false
|
||||
AvoidFireImmune=false
|
||||
AvoidLightImmune=false
|
||||
AvoidPoisonImmune=false
|
||||
AvoidMagicImmune=false
|
|
@ -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.
Binary file not shown.
Loading…
Reference in New Issue