Silv3rPRO / proshine

A free, open-source and advanced bot for Pokémon Revolution Online.
https://proshine-bot.com/
MIT License
52 stars 69 forks source link

Bot stuck after battles and/on areas/buildings entrances #52

Open dhaern opened 7 years ago

dhaern commented 7 years ago

Stuck on entrances and after battles on entrances:

[20:06:51] Success! You caught Mareep! [20:07:21] Bot stuck, sending resynchronization request. [20:07:32] Bot still stuck, stopping the script. [20:07:32] Bot stopped [20:08:33] System: You are now AFK! [20:09:09] Bot started [20:09:09] Starting new quest: Violet City: Badge Quest [20:09:09] System: You are no longer AFK! [20:09:19] Bot stuck, sending resynchronization request. [20:09:27] Bot paused [20:09:27] Pause Quest: Violet City: Badge Quest [20:09:27] Bot started [20:09:34] Bot paused [20:09:34] Pause Quest: Violet City: Badge Quest [20:09:34] Bot started [20:09:50] Bot stuck, sending resynchronization request.

Stuck after battles:

[*] *** gained * Exp. [*]You found * Pokedollar(s). [*]You have won the battle. [*]Bot stuck, sending resynchronization request. [*]Bot still stuck, stopping the script. [*]Bot stopped

bot stuck happens after battles and battles on entrances a lot.

stuck

Silv3rPRO commented 7 years ago

I am pretty sure this is caused by lag.

The bot sent a re-synchronization request at 18:10:00.
At 18:10:11, 10 seconds later, the bot did not receive any response from the server.

Since the bot could not re-synchronize its position, the safest thing to do is to stop the script.

Are you using a very slow connection, a slow proxy or something like that? Not receiving anything from the server for 10 seconds is not normal.

dhaern commented 7 years ago

I have a medium/fast connection VDSL 30mb/5mb (60-70ms in another mmo titles as WoW), no proxy/VPN connection, my direct IP. and the bug only happens on area/buildings entrances and/or after battles, not always but happens a lot in buildings as Cinnabar mansion. Maybe you could improve too bot behaviour on entrances, I dont know.

Thanks for your support

M1L4 commented 7 years ago

[Map entrance] I can confirm getting the same issue. Sometimes the bot gets stuck on link location - e.g.:

[13:46:17] Position updated: Indigo Plateau (32, 13) [OK] [13:46:20] Path: Maps Remains: 1 Moving To: --> Victory Road Kanto 3F_B [13:46:28] Position updated: Victory Road Kanto 3F (46, 14) [OK] [13:46:31] No action executed: stopping the bot.

I am using proxies. The one regarding this issue seems pretty reliable and fast enough though:

[13:48] Testing Started. Proxy Server Address: xxx Protocol: SOCKS 5 Authentication: NO

[13:48] Starting: Test 1: Connection to the Proxy Server [13:48] IP Address: xxx [13:48] Connection established [13:48] Test passed. [13:48] Starting: Test 2: Connection through the Proxy Server [13:48] Authentication was successful. [13:48] Connection to www.google.com:80 established through the proxy server. [13:48] A default web page was successfuly loaded. [13:48] Test passed. [13:48] Starting: Test 3: Proxy Server latency [13:49] Latency = 26 ms [13:49] Test passed.

Not saying slow connection isn't the case, but it seems unlikely here.

[Battles] Didn't had this problem so far.

M1L4 commented 7 years ago

[Map entrance] I had a bot leveling on "Victory Road Kanot 3F". It got stuck on map entry so much, that I monitored him for a few hours - result: Bot is fine:

It get stuck every time:

[Description] Unfortunatly I can't test that proxy, my testing procedure doesn't work on that one. The latency seems to be a little higher, but getting stuck every time on the same location - Victory Road Kanto 3F (46,14) should be more than only lag/coincidence. Another instance with an unusual high rate of bot stops is the ladder at (56,32) and on top of the Jump Tila at (36,27).

Stuck HotSpots: Victory Road Kanto 3F (56,32) Link Victory Road Kanto 3F (46,14) One Tile below Link Victory Road Kanto 2F (36,27) Jump -- this shouldn't be even possible (

[Observation]

ScrPits commented 7 years ago

happens due to server lag while script already called action... via pc for me > enters pc > calls nurse to heal > nurse has not loaded. fail and stops script. We need a "recall" function that will repeat last action before bot stopped (this way lag wont break the script) mostly seen when using socks that has lagging issue. recall should be a set amount of time to repeat action before failing completely which will then stop the bot

ScrPits commented 7 years ago

Could be a issue with 1: Server (i say this due to random lag issues with server itself) 2: Socks (this i know to be true with alot of random maps... and even when not doing anything but moving via pathfinder and press play again to run) 3: Loading Lag (random issue when loading an takes ages and this cause a fail due to action being to fast?) 4: Player Loading brings lag (noticeable via client as well when enter area it take a moment for everything to load... this moment will extend if any lag happens)

M1L4 commented 7 years ago

[TimeoutDelay ineffective] ScrPits suggestion of increasing the TimeoutDelay variable didn't have any impact - see: https://github.com/M1L4/proshine/pull/2. I tried multiple values the highest being 120.000 (default is 3.000 and debug is 60.000). That particular bot keeps getting stuck on that link tile when entering Victory Road Kanto 3F (for path see bottom)

I still can't imagine it being lag, now even less so:

[Path] Victory Road Kanto 3F - leaving Indigo Plateau - Indigo Plateau Center - and back

M1L4 commented 7 years ago

[Observation] I couldn't verify any importants until now, but I noticed that many of the bots encountering this issue use SOCKS 4A extension proxies. Could there be any connection?

M1L4 commented 7 years ago

I might have found another clue: #102 Old Map kept in Memory