What's new
  • Visit Rebornbuddy
  • Visit Panda Profiles
  • Visit LLamamMagic
  • Visit Resources
  • Visit Downloads
  • Visit Portal
RebornBuddy Forums

Register a free account today to become a member! Once signed in, you'll be able to participate on this site by adding your own topics and posts, as well as connect with other members through your own private inbox!

RebornBuddyCN r586

hi mastahg, I seem to have encountered a mysterious bug, i use a System.Timers.Timer instance and subscribed its elapsed event to repeatedly trigger some functions outside the main behaviour tree, like this
Code:
            System.Timers.Timer t = new System.Timers.Timer(100);
            t.Elapsed += (sender, e) =>
            {
                RaptureAtkUnitManager.Update();
                GameObjectManager.Update();
                DirectorManager.Update();
                if (GameObjectManager.GameObjects.Any(i=>i.Type == GameObjectType.Pc && !i.IsVisible) && !NowLoading.IsVisible)
                {
                    //...
                }
            };
            t.Start();
It functions well, but I found that calling the elapsed function frequently has a certain chance of causing the game to close directly, without any error or exception in RB's log or a crash dialogbox from the game. A 100ms Timer may cause the game close randomly in a few hours, and a 1ms Timer will close the game in less than a minute.
I'm not sure what goes wrong, should I use some other method to refresh Managers for plugins?
 
hi mastahg, I seem to have encountered a mysterious bug, i use a System.Timers.Timer instance and subscribed its elapsed event to repeatedly trigger some functions outside the main behaviour tree, like this
Code:
            System.Timers.Timer t = new System.Timers.Timer(100);
            t.Elapsed += (sender, e) =>
            {
                RaptureAtkUnitManager.Update();
                GameObjectManager.Update();
                DirectorManager.Update();
                if (GameObjectManager.GameObjects.Any(i=>i.Type == GameObjectType.Pc && !i.IsVisible) && !NowLoading.IsVisible)
                {
                    //...
                }
            };
            t.Start();
It functions well, but I found that calling the elapsed function frequently has a certain chance of causing the game to close directly, without any error or exception in RB's log or a crash dialogbox from the game. A 100ms Timer may cause the game close randomly in a few hours, and a 1ms Timer will close the game in less than a minute.
I'm not sure what goes wrong, should I use some other method to refresh Managers for plugins?

Running anything on an external thread is highly unsupported. You can get away with it in certain instances if you know how the internals work and only call functions that read data and are unlikely to invoke game function calls. Try refactoring your code to run in the pulse handler for plugins.
 
if player didn't unlocked flight on Coerthas Western Highlands, NavGraph will still guide player through ishgard. but theres a obstacle we can't pass
upload_2021-1-18_2-44-45.webp


it will stuck there and triggers anti-stuck to jump strafe all day long, and was immediately identified as a bot.


[18:41:58.144 V] [Poi.Clear] Reason: Current behavior changed to GetTo: LineNumber: 3148, XYZ: <503.3494, 217.9515, 760.4639>, ZoneId: 397, IsDone: False, HighPriority: True, InCombat: False, QuestId: 0, StepId: 0, PostCombatDelay: 0, QuestName: null, IsDoneCache: False, Behavior: null, .
[18:41:58.144 D] Removed all hooks from [ProfileOrderBehavior_Hook]
[18:41:58.144 D] Replaced hook [HighPriorityProfileOrderBehavior_Hook] 5fb05a2a-f373-4641-a4b1-4f7c073c3fef
[18:41:58.390 V] [NavGraph] LocalResults
[18:41:58.390 V] [NavGraph] 5866171 | <-188.0654, 14.72722, -58.01309> ==> <-188.7119, 14.78094, -58.3877> | CanNav:True PathLength:0.7490784
[18:41:58.390 V] [NavGraph] 5866239 | <-188.0654, 14.72722, -58.01309> ==> <-153.6506, 31.2521, -142.5388> | CanNav:True PathLength:167.1587
[18:41:58.390 V] [NavGraph] 5866243 | <-188.0654, 14.72722, -58.01309> ==> <-57.21729, 20.77625, -97.48738> | CanNav:True PathLength:159.4816
[18:41:58.390 V] [NavGraph] 5866255 | <-188.0654, 14.72722, -58.01309> ==> <156.2872, -19.95889, 54.68155> | CanNav:True PathLength:415.734
[18:41:58.390 V] [NavGraph] 5866260 | <-188.0654, 14.72722, -58.01309> ==> <53.021, 29.92871, -81.33281> | CanNav:True PathLength:315.2598
[18:41:58.390 V] [NavGraph] 70 | <-188.0654, 14.72722, -58.01309> ==> <-60.45592, 11.17874, 47.49885> | CanNav:True PathLength:203.9295
[18:41:58.390 V] [NavGraph] 80 | <-188.0654, 14.72722, -58.01309> ==> <45.8162, 24.57011, 1.003245> | CanNav:True PathLength:276.7879
[18:41:58.390 V] [NavGraph] 81 | <-188.0654, 14.72722, -58.01309> ==> <-111.4158, 16.15517, -27.05248> | CanNav:True PathLength:100.9542
[18:41:58.390 V] [NavGraph] 82 | <-188.0654, 14.72722, -58.01309> ==> <49.43034, -11.14312, 66.71724> | CanNav:True PathLength:300.9105
[18:41:58.606 V] [NavGraph] RemoteResults
[18:41:58.606 V] [NavGraph] 5851119 | <-824.3948, 119.3592, -641.2344> ==> <503.3494, 217.9515, 760.4639> | CanNav:True PathLength:2431.598
[18:41:58.606 V] [NavGraph] 5865554 | <-153.8598, 221.0829, 689.848> ==> <503.3494, 217.9515, 760.4639> | CanNav:False PathLength:0
[18:41:58.606 V] [NavGraph] 5866135 | <458.8927, 130.7996, -895.8274> ==> <503.3494, 217.9515, 760.4639> | CanNav:False PathLength:0
[18:41:58.606 V] [NavGraph] 5866171 | <471.4639, 224.0866, 872.8911> ==> <503.3494, 217.9515, 760.4639> | CanNav:True PathLength:130.6758
[18:41:58.606 V] [NavGraph] 5071 | <478.3815, 217.9469, 712.0289> ==> <503.3494, 217.9515, 760.4639> | CanNav:True PathLength:78.11279
[18:41:58.607 N] [NavGraph] Path from <-188.0654, 14.72722, -58.01309> 伊修加德基础层(418) to <503.3494, 217.9515, 760.4639> 库尔札斯西部高地(397) found:
[18:41:58.607 N] [NavGraph] Move to <-188.7119, 14.78094, -58.3877> on 伊修加德基础层(418) which leads to <471.4639, 224.0866, 872.8911> on 库尔札斯西部高地(397)
[18:41:58.607 N] [NavGraph] Move to <503.3494, 217.9515, 760.4639> on 库尔札斯西部高地(397)
[18:41:58.607 N] [NavGraph] EndPath
 
Last edited:
and CNBooster v1.3 seems not working... i put it under the same path of launcher exe and run booster, it still warns me "the process is already opened“.
upload_2021-1-18_5-3-59.webp
 
and CNBooster v1.3 seems not working... i put it under the same path of launcher exe and run booster, it still warns me "the process is already opened“.
View attachment 232446

Thanks for the report on the navgraph issue.

As for the booster, you cannot have multiple copies of the launcher open at a time. Login then run the booster and repeat.
 
Looking into the navgraph issue more, I think it's most likely a profile issue. Navgraph makes a best attempt to get you where you need to go, but if the profile tries to take you somewhere early, then that's a profile problem. It'd require a lot of internal work to add checks for those connections.
 
hi mastahg,Since yesterday, RB will disappear directly, and it is very slow to open RB again. What is the situation
 
管理员您好,请问中文版客户端在哪里购买和下载。
 
Last edited:
It's the same with me and my friends

[16:48:19.788 N] Session has expired
[16:48:19.788 N] Stopping the bot. Reason:Session has expired
[16:48:19.839 D] CurrentBot.Stop()
[16:48:19.839 D] TreeHooks.Instance.ClearAll()
[16:48:19.839 N] Clearing all hooks.
[16:48:19.839 D] Replaced hook [PreCombatBuff] 9ab10b41-1ada-49a4-9376-ddbccde28971
[16:48:19.839 D] Replaced hook [Heal] 6c7ea7a9-649a-44a3-ab43-ac2dfb0c5e6c
[16:48:19.839 D] Replaced hook [Pull] 1a04a305-785b-476c-ab89-96c3ea5cdcea
[16:48:19.839 D] Replaced hook [CombatBuff] 08035636-bd99-4a04-a6bc-0a01f23ca39a
[16:48:19.839 D] Replaced hook [Combat] 32dbbcad-b8fd-41d1-a613-9a65cae9dbec
[16:48:19.839 D] Replaced hook [Rest] 26ad653c-ed36-489c-996b-a17dae87c345
[16:48:19.839 D] Inserted new hook [TreeStart @0] 4e2beba2-1aff-45ec-bd57-591515f3b00e
[16:48:19.839 D] Navigator.Clear()
[16:48:19.839 D] OnStop event
[16:48:19.839 D] OnStop Event Invoking
[16:48:19.839 N] Bot Thread Ended.
 
Where can I download the task script suitable for Chinese client? I downloaded y2krazy with SVN, but it's not easy to use. (machine translation, please forgive me)
 
Please try your best to deal with it, I can't find what you need, everything is normal after the start of operation, all of a sudden the session expired, and then the RB disappeared, now this problem is very serious in China

[14:51:09.636 D] DoAction Spell 16497 0x4000BBA3
[14:51:10.905 N] Session has expired
[14:51:10.905 N] Stopping the bot. Reason:Session has expired
[14:51:10.947 D] CurrentBot.Stop()
[14:51:10.948 D] TreeHooks.Instance.ClearAll()
[14:51:10.948 N] Clearing all hooks.
[14:51:10.948 D] Replaced hook [PreCombatBuff] 46e34cf7-a9d4-4d6c-84bd-b02be6f94f47
[14:51:10.948 D] Replaced hook [Heal] 4b49b041-caab-49ea-8e36-f7b9033f4759
[14:51:10.950 D] Replaced hook [Pull] 825cab83-b673-4c93-9ad3-66c3a862a058
[14:51:10.950 D] Replaced hook [CombatBuff] abba6d5b-b232-42a9-9243-1ac41ed50876
[14:51:10.950 D] Replaced hook [Combat] 5a8ad3f6-feb7-444b-b82d-91e532cf402e
[14:51:10.950 D] Replaced hook [Rest] 860128fe-2813-47a6-acfd-2bd7c9306585
[14:51:10.950 D] Navigator.Clear()
[14:51:10.950 D] OnStop event
[14:51:10.950 D] OnStop Event Invoking
[14:51:10.950 N] Bot Thread Ended.
 
Please try your best to deal with it, I can't find what you need, everything is normal after the start of operation, all of a sudden the session expired, and then the RB disappeared, now this problem is very serious in China

[14:51:09.636 D] DoAction Spell 16497 0x4000BBA3
[14:51:10.905 N] Session has expired
[14:51:10.905 N] Stopping the bot. Reason:Session has expired
[14:51:10.947 D] CurrentBot.Stop()
[14:51:10.948 D] TreeHooks.Instance.ClearAll()
[14:51:10.948 N] Clearing all hooks.
[14:51:10.948 D] Replaced hook [PreCombatBuff] 46e34cf7-a9d4-4d6c-84bd-b02be6f94f47
[14:51:10.948 D] Replaced hook [Heal] 4b49b041-caab-49ea-8e36-f7b9033f4759
[14:51:10.950 D] Replaced hook [Pull] 825cab83-b673-4c93-9ad3-66c3a862a058
[14:51:10.950 D] Replaced hook [CombatBuff] abba6d5b-b232-42a9-9243-1ac41ed50876
[14:51:10.950 D] Replaced hook [Combat] 5a8ad3f6-feb7-444b-b82d-91e532cf402e
[14:51:10.950 D] Replaced hook [Rest] 860128fe-2813-47a6-acfd-2bd7c9306585
[14:51:10.950 D] Navigator.Clear()
[14:51:10.950 D] OnStop event
[14:51:10.950 D] OnStop Event Invoking
[14:51:10.950 N] Bot Thread Ended.
I need full logs. Partial logs do nothing to help me with this issue.
 
Just stop calling it?

You do not want to try anything in parallel/on another thread unless you have a deep understanding of the bot. Everything inside the main loop runs inside a framelock, and if you have multiple threads trying to call functions that call internal game functions the locks will cause a big drop in performance.

Sorry mastahg, I thought about this problem again today. If a Coroutine.Wait is running, then every ticks before the Wait() ends will continue executing from the coroutine line without judging its previous conditions.

I ran this test code in the codechunk of orderbot
Code:
                if (!MovementManager.IsMoving)
                {
                    Logging.Write("coroutine wait started" + DateTime.Now);
                    if (await Coroutine.Wait(10000, () => (Core.Me.StatusFlags & StatusFlags.WeaponOut) != 0))
                    {
                        Logging.Write("weapons out " + DateTime.Now);
                    }
                    else
                    {
                        Logging.Write("waited 10000 no weapons out " + DateTime.Now);
                    }
                    Logging.Write("Coroutine wait ends "+DateTime.Now);
                }
                Logging.Write("all ends " + DateTime.Now);
After the "start coroutine wait" line is printed in the log, even if I control my character to start moving, the whole Coroutine.Wait will continues to wait until I pull out my weapon or wait 10 seconds. It seems there's no way I can stop calling it after it started waiting...
Is it possible to make a Coroutine stops immediately when an external condition changes?
 
Last edited:
Sorry mastahg, I thought about this problem again today. If a Coroutine.Wait is running, then every ticks before the Wait() ends will continue executing from the coroutine line without judging its previous conditions.

I ran this test code in the codechunk of orderbot
Code:
                if (!MovementManager.IsMoving)
                {
                    Logging.Write("coroutine wait started" + DateTime.Now);
                    if (await Coroutine.Wait(10000, () => (Core.Me.StatusFlags & StatusFlags.WeaponOut) != 0))
                    {
                        Logging.Write("weapons out " + DateTime.Now);
                    }
                    else
                    {
                        Logging.Write("waited 10000 no weapons out " + DateTime.Now);
                    }
                    Logging.Write("Coroutine wait ends "+DateTime.Now);
                }
                Logging.Write("all ends " + DateTime.Now);
After the "start coroutine wait" line is printed in the log, even if I control my character to start moving, the whole Coroutine.Wait will continues to wait until I pull out my weapon or wait 10 seconds. It seems there's no way I can stop calling it after it started waiting...
Is it possible to make a Coroutine stops immediately when an external condition changes?

That is how coroutines work. When you call a coroutine it continues from where it last left off, so when you call coroutine.wait the next iteration the only thing that will be checked is the contents of the wait. You could add || abortearly or something to the wait conditional, but you probably should try and think about changing how you are approaching w/e it is you are working on. Wait is typically used for short periods when waiting for very specific conditions to occur.
 
Back
Top