Skip to content

Commit 72a32e3

Browse files
committed
Fix crash when WoW window not found, Add random delays, fix spelling, fix bulgarian
You will now notice that in the settings screen there are a couple more boxes, this is because the bot now expects you to put in a range, instead of a single hard coded value Fixed the unhandled exception caused by WoW Window pointer being a "new IntPtr()" Fixed a lot of english spellin gmistakes in Readme, and in English.xml Fixed some bulgarian layout issues
1 parent 0cc62a9 commit 72a32e3

File tree

13 files changed

+376
-150
lines changed

13 files changed

+376
-150
lines changed

UltimateFishBot/App.config

Lines changed: 26 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -10,20 +10,20 @@
1010
</startup>
1111
<userSettings>
1212
<UltimateFishBot.Properties.Settings>
13-
<setting name="ScanningSteps" serializeAs="String">
14-
<value>10</value>
13+
<setting name="ScanningStepsLow" serializeAs="String">
14+
<value>15</value>
1515
</setting>
16-
<setting name="ScanningDelay" serializeAs="String">
17-
<value>30</value>
16+
<setting name="ScanningDelayLow" serializeAs="String">
17+
<value>23</value>
1818
</setting>
1919
<setting name="ScanningRetries" serializeAs="String">
2020
<value>2</value>
2121
</setting>
22-
<setting name="CastingDelay" serializeAs="String">
22+
<setting name="CastingDelayLow" serializeAs="String">
2323
<value>1500</value>
2424
</setting>
25-
<setting name="LootingDelay" serializeAs="String">
26-
<value>3000</value>
25+
<setting name="LootingDelayLow" serializeAs="String">
26+
<value>2600</value>
2727
</setting>
2828
<setting name="SplashLimit" serializeAs="String">
2929
<value>15</value>
@@ -79,11 +79,11 @@
7979
<setting name="ShiftLoot" serializeAs="String">
8080
<value>False</value>
8181
</setting>
82-
<setting name="FishWait" serializeAs="String">
83-
<value>22000</value>
82+
<setting name="FishWaitLow" serializeAs="String">
83+
<value>21500</value>
8484
</setting>
8585
<setting name="AudioDevice" serializeAs="String">
86-
<value/>
86+
<value />
8787
</setting>
8888
<setting name="AutoBait" serializeAs="String">
8989
<value>False</value>
@@ -161,11 +161,26 @@
161161
<value>False</value>
162162
</setting>
163163
<setting name="CursorCaptureHotKey" serializeAs="String">
164-
<value>Ctrl+Shift+C</value>
164+
<value>Alt+Shift+C</value>
165165
</setting>
166166
<setting name="RightClickCast" serializeAs="String">
167167
<value>False</value>
168168
</setting>
169+
<setting name="CastingDelayHigh" serializeAs="String">
170+
<value>1800</value>
171+
</setting>
172+
<setting name="LootingDelayHigh" serializeAs="String">
173+
<value>3000</value>
174+
</setting>
175+
<setting name="FishWaitHigh" serializeAs="String">
176+
<value>22200</value>
177+
</setting>
178+
<setting name="ScanningDelayHigh" serializeAs="String">
179+
<value>32</value>
180+
</setting>
181+
<setting name="ScanningStepsHigh" serializeAs="String">
182+
<value>30</value>
183+
</setting>
169184
</UltimateFishBot.Properties.Settings>
170185
</userSettings>
171186
</configuration>

UltimateFishBot/Classes/BodyParts/Eyes.cs

Lines changed: 11 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,9 @@ class Eyes
2424
private Bitmap background;
2525
private Rectangle wowRectangle;
2626

27+
private int a_ScanningSteps = 0;
28+
private int a_ScanningDelay = 0;
29+
2730
public Eyes(IntPtr wowWindow) {
2831
SetWow(wowWindow);
2932
bobberPosDict = new Dictionary<Win32.Point, int>();
@@ -43,7 +46,6 @@ public void SetWow(IntPtr wowWindow) {
4346
public void updateBackground() {
4447
background = new Grayscale(0.3725, 0.6154, 0.0121).Apply(Win32.CaptureWindow(Wow));
4548
background = new Pixellate().Apply(background);
46-
4749
}
4850

4951
public async Task<Win32.Point> LookForBobber(CancellationToken cancellationToken)
@@ -84,11 +86,13 @@ public void updateBackground() {
8486
}
8587
}
8688
}
87-
if (bobberPos.x == 0 && bobberPos.y == 0) {
89+
if (bobberPos.x == 0 && bobberPos.y == 0) {
90+
Random rnd = new Random();
91+
a_ScanningSteps = rnd.Next(Properties.Settings.Default.ScanningStepsLow, Properties.Settings.Default.ScanningStepsHigh);
8892
if (Properties.Settings.Default.AlternativeRoute) {
89-
bobberPos = await LookForBobberSpiralImpl(scanArea, bobberPos, Properties.Settings.Default.ScanningSteps, Properties.Settings.Default.ScanningRetries, cancellationToken);
93+
bobberPos = await LookForBobberSpiralImpl(scanArea, bobberPos, a_ScanningSteps, Properties.Settings.Default.ScanningRetries, cancellationToken);
9094
} else {
91-
bobberPos = await LookForBobberImpl(scanArea, bobberPos, Properties.Settings.Default.ScanningSteps, Properties.Settings.Default.ScanningRetries, cancellationToken);
95+
bobberPos = await LookForBobberImpl(scanArea, bobberPos, a_ScanningSteps, Properties.Settings.Default.ScanningRetries, cancellationToken);
9296
}
9397
}
9498
if (bobberPos.x != 0 && bobberPos.y != 0) {
@@ -247,7 +251,9 @@ private async Task<bool> MoveMouseAndCheckCursor(int x, int y, CancellationToken
247251
Win32.MoveMouse(x, y);
248252

249253
// Pause (give the OS a chance to change the cursor)
250-
await Task.Delay(mpy*Properties.Settings.Default.ScanningDelay, cancellationToken);
254+
Random rnd = new Random();
255+
a_ScanningDelay = rnd.Next(Properties.Settings.Default.ScanningDelayLow, Properties.Settings.Default.ScanningDelayHigh);
256+
await Task.Delay(mpy*a_ScanningDelay, cancellationToken);
251257

252258
Win32.CursorInfo actualCursor = Win32.GetCurrentCursor();
253259

UltimateFishBot/Classes/BodyParts/Hands.cs

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,9 @@ class Hands
1515
private IntPtr Wow;
1616
private Random rand;
1717

18+
private int a_CastingDelay = 0;
19+
private int a_LootingDelay = 0;
20+
1821
public Hands()
1922
{
2023
m_baitIndex = 0;
@@ -56,14 +59,18 @@ public async Task Cast(CancellationToken token)
5659
Win32.SendKey(Properties.Settings.Default.FishKey);
5760
Log.Information("Sent key: " + Properties.Settings.Default.FishKey);
5861
}
59-
await Task.Delay(new Random().Next(0,Properties.Settings.Default.CastingDelay), token);
62+
Random rnd = new Random();
63+
a_CastingDelay = rnd.Next(Properties.Settings.Default.CastingDelayLow, Properties.Settings.Default.CastingDelayHigh);
64+
await Task.Delay(a_CastingDelay, token);
6065
}
6166

6267
public async Task Loot()
6368
{
6469
Win32.SendMouseClick(this.Wow);
6570
Log.Information("Send Loot.");
66-
await Task.Delay(new Random().Next(0,Properties.Settings.Default.LootingDelay));
71+
Random rnd = new Random();
72+
a_LootingDelay = rnd.Next(Properties.Settings.Default.LootingDelayLow, Properties.Settings.Default.LootingDelayHigh);
73+
await Task.Delay(a_LootingDelay);
6774
}
6875

6976
public void ResetBaitIndex()

UltimateFishBot/Classes/Manager.cs

Lines changed: 17 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -62,11 +62,22 @@ public enum NeededAction
6262
private const int SECOND = 1000;
6363
private const int MINUTE = 60 * SECOND;
6464

65+
/// average
66+
private int a_FishWait = 0;
67+
68+
6569
public Manager(IManagerEventHandler managerEventHandler, IProgress<string> progressHandle)
6670
{
6771
m_managerEventHandler = managerEventHandler;
6872
IntPtr WowWindowPointer = Helpers.Win32.FindWowWindow();
69-
73+
DialogResult result = DialogResult.Cancel;
74+
while (WowWindowPointer == new IntPtr())
75+
{
76+
result = MessageBox.Show("Could not find the the WoW process. Please make sure the game is running.", "Error - WoW not open", MessageBoxButtons.RetryCancel, MessageBoxIcon.Error);
77+
if (result == DialogResult.Cancel)
78+
Environment.Exit(1);
79+
WowWindowPointer = Helpers.Win32.FindWowWindow();
80+
}
7081
m_eyes = new Eyes(WowWindowPointer);
7182
m_hands = new Hands(WowWindowPointer);
7283
m_ears = new Ears();
@@ -292,17 +303,19 @@ private async Task Fish(CancellationToken cancellationToken)
292303
"manager",
293304
"LABEL_WAITING",
294305
msecs / SECOND,
295-
Properties.Settings.Default.FishWait / SECOND));
306+
a_FishWait / SECOND));
296307
}
297308
});
298309
var uiUpdateTask = Task.Run(
299310
async () => await UpdateUIWhileWaitingToHearFish(progress, uiUpdateCancelToken),
300311
uiUpdateCancelToken);
301312

313+
Random rnd = new Random();
314+
a_FishWait = rnd.Next(Properties.Settings.Default.FishWaitLow, Properties.Settings.Default.FishWaitHigh);
302315
bool fishHeard = await m_ears.Listen(
303-
Properties.Settings.Default.FishWait,
316+
a_FishWait,
304317
cancellationToken);
305-
//Log.Information("Ear result: "+fishHeard.ToString());
318+
//Log.Information("Ear result: "+a_FishWait.ToString());
306319

307320
uiUpdateCancelTokenSource.Cancel();
308321
try {

UltimateFishBot/Forms/frmMain.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -47,10 +47,10 @@ private async void frmMain_Load(object sender, EventArgs e)
4747
btnClose.Text = Translate.GetTranslate("frmMain", "BUTTON_EXIT");
4848
btnAbout.Text = Translate.GetTranslate("frmMain", "BUTTON_ABOUT");
4949
lblStatus.Text = Translate.GetTranslate("frmMain", "LABEL_STOPPED");
50-
this.Text = "UltimateFishBot - v " + System.Reflection.Assembly.GetExecutingAssembly().GetName().Version.ToString();
50+
//this.Text = "UltimateFishBot - v " + System.Reflection.Assembly.GetExecutingAssembly().GetName().Version.ToString();
5151
/* Hide ? */
5252
Random r = new Random();
53-
this.Text = this.Text + r.Next(1000, 1000000).ToString();
53+
this.Text = r.Next(1000, 1000000).ToString();
5454
this.Text = this.Text.GetHashCode().ToString();
5555

5656

0 commit comments

Comments
 (0)