Giter VIP home page Giter VIP logo

aash / hbrelog Goto Github PK

View Code? Open in Web Editor NEW

This project forked from bosslandgmbh/hbrelog

5.0 5.0 0.0 23.66 MB

This program is for use with Honorbuddy (an automation tool for World of warcraft). It launches World of Warcraft, logs into the game and then launches Honorbuddy. If Wow or Honorbuddy crashes or disconnects the whole process is repeated.

License: GNU General Public License v3.0

C# 99.96% Batchfile 0.04%

hbrelog's People

Contributors

aash avatar highvoltz avatar ho avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

hbrelog's Issues

Schedule exit/shutdown

I think it would be useful with an option in HBRElog to "shut down HBRelog (and Honorbuddy/WoW) in x minutes" with options to also put the computer to sleep/shutdown. This would be nice in cases where, for example, you want to start a bot before going to bed but don't want it to run all night.

You could combine this functionality with the "quick start" dialog mentioned in #18 so you can quick start a task sequence and choose for how long it should run. You should also be able to select a currently running account/sequence in the main window and set/edit a scheduled exit/shutdown.

Quick mockup:
untitled-1

fast character switch

When starting another HBRelog profile if characters belong to the same account do not restart wow. Just switch character and restart HB.

Error on wow login task

Was able to login on initial char, then fucked up on 2nd one. Restarted, was able to logon on two first chars, then same error. Seems to be the same shit that is happening to HBRelog stabile.
📄 Log file

Checking Realm Status Problem

Hey!
I have problem with the 'Checking Realm Status'. When I check it and try to start, it says 'balala is offline'
It works perfect without it unchecked but I want it if I get dc or if my ISP does something that dc's me for sometimes

Thanks

"Choose your language" pop dialog

I faced with such a problem . After entering the username and password and press Login, a dialog box appears , forcing tick the language selection menu and press the confirm button "Suggest realm", then there is usual boot .
default

HBrelog can't launch wow

hi my wow wont launch cause of this error but sometimes i just stop and start again and it works. But this error occured so often that when my wow shut down it won't manage to reopen it

HB Relog dont skip curent taks if its finifhed and go to another

So using GarrisonBoss theres feature that when GarrisonBoss finish current task (even if theres 60 minutes on this task) its skips this and go for another, it works fine with original hbrelog but not with yours...

[18:56:56.856 D] Exception was thrown in BotBase.Root.Tick
[18:56:56.857 D] Buddy.Coroutines.CoroutineUnhandledException: Exception was thrown by coroutine ---> System.NullReferenceException: Object reference not set to an instance of an object.
at Bots.Professionbuddy.Dynamic.HBRelogApi..ctor()
at GarrisonBoss.GarrisonBoss.get_HBRelog()
at GarrisonBoss.Base.TownHall.HsGiMIjqfYctoEAriwdzeyOTXiVfA.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
at System.Runtime.CompilerServices.TaskAwaiter.ValidateEnd(Task task)
at GarrisonBoss.GarrisonBoss.imiqsqsrbClBhCpyOywKLkOEAVER.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
at CommonBehaviors.Actions.ActionRunCoroutine.94s(%rr!N71 "I6'%^M^s ~Q*.<9 ; KF_{6CPB)Sat<"f^t_\,.MoveNext() --- End of inner exception stack trace --- at Buddy.Coroutines.Coroutine.‪‫‏​‪‌​‍‎‫‏‮​‭‫‌‫‬‎​​‎‪‮(Boolean ) at Buddy.Coroutines.Coroutine.​‪‬‎​‫‏‍‬‫‫‪‎‌‭​‮‎‭‪‮(Boolean ) at Buddy.Coroutines.Coroutine.Resume() at CommonBehaviors.Actions.ActionRunCoroutine.Run(Object context) at Styx.TreeSharp.Action.RunAction(Object context) at Styx.TreeSharp.Action.B@j$B\&Jo@\[/5jnokHbUO\]"@T\,.MoveNext() at Styx.TreeSharp.Composite.Tick(Object context) at Styx.CommonBot.TreeRoot.Ol={KWRnCJ'<&{;][q"CEb!.‮​‏‪​‏​‌‭‭‬‮‪‏​‍‮‪‏‫‫‫‮()
at Styx.CommonBot.TreeRoot.‌‌‎‍‪‬​‮‌‮‍‬‫‌‍‍‪‮‎‌‌‮(Action , String , Boolean )

Honorbuddy is not autostarted. HBRelog starts and kills HB after a while

Honorbuddy is not autostarted (missing /autostart maybe?).

HBRelog starts and kills HB after a while. Does not seem to get that HB is started.

I turned off "check for HB's Reponnsiveness" and added the /autostart as a HB commandline argument. Now the bot is started on boot, but HBRelog still kills it after a little while.

HBRelog runs as Admin.

[08/12/2015 11:22:57] HBRelog Version 1.1.3
[08/12/2015 11:22:57] ******* Settings ********
[08/12/2015 11:22:57] Auto AcceptTosEula: False
[08/12/2015 11:22:57] Auto Start: False
[08/12/2015 11:22:57] Auto Update HB: True
[08/12/2015 11:22:57] Check Hb's Responsiveness: True
[08/12/2015 11:22:57] Check Realm Status: False
[08/12/2015 11:22:57] HB Delay: 3
[08/12/2015 11:22:57] Login Delay: 0
[08/12/2015 11:22:57] Minimize Hb On Startup: False
[08/12/2015 11:22:57] Set GameWindow Title: False
[08/12/2015 11:22:57] Wow Start Delay: 0
[08/12/2015 11:23:03] Garrison: ********* Tasks ***********
[08/12/2015 11:23:03] Garrison: Wait: 60 minutes
[08/12/2015 11:23:03] Garrison: Logon
[08/12/2015 11:23:03] Garrison: Wait: 60 minutes
[08/12/2015 11:23:03] Garrison: Logon
[08/12/2015 11:23:03] Garrison: Wait: 60 minutes
[08/12/2015 11:23:03] Garrison: Logon
[08/12/2015 11:23:03] Garrison: Wait: 60 minutes
[08/12/2015 11:23:03] Garrison: Logon
[08/12/2015 11:23:03] Garrison: Wait: 60 minutes
[08/12/2015 11:23:03] Garrison: Logon
[08/12/2015 11:23:03] Garrison: Wait: 60 minutes
[08/12/2015 11:23:03] Garrison: Logon
[08/12/2015 11:23:03] Garrison: Wait: 60 minutes
[08/12/2015 11:23:03] Garrison: Logon
[08/12/2015 11:23:03] Garrison: Wait: 60 minutes
[08/12/2015 11:23:03] Garrison: ********* End of Task list ***********
[08/12/2015 11:23:03] Garrison: Starting C:\Games\World of Warcraft\Wow.exe
[08/12/2015 11:23:04] Garrison: Waiting for Wow to start
[08/12/2015 11:23:09] Garrison: Wow is ready to login.
[08/12/2015 11:23:13] Garrison: Sending letters to AccountLoginPasswordEdit
[08/12/2015 11:23:15] Garrison: Connecting...
[08/12/2015 11:23:42] Garrison: Login sequence complete
[08/12/2015 11:23:42] Checking for new Honorbuddy update
[08/12/2015 11:23:42] Honorbuddy is up-to-date
[08/12/2015 11:23:43] Garrison: starting C:\Users\opply\Downloads\Honorbuddy 2.5.14236.796\Honorbuddy.exe
[08/12/2015 11:25:43] Garrison: Closing Honorbuddy because it took too long to attach
[08/12/2015 11:25:44] Garrison: Attempting to close Honorbuddy
[08/12/2015 11:25:44] Garrison: Closing Honorbuddy because it took too long to attach
[08/12/2015 11:25:44] Garrison: Successfully closed Honorbuddy gracefully
[08/12/2015 11:25:45] Garrison: starting C:\Users\opply\Downloads\Honorbuddy 2.5.14236.796\Honorbuddy.exe
[08/12/2015 11:27:46] Garrison: Closing Honorbuddy because it took too long to attach
[08/12/2015 11:27:46] Garrison: Attempting to close Honorbuddy
[08/12/2015 11:27:47] Garrison: Closing Honorbuddy because it took too long to attach
[08/12/2015 11:27:47] Garrison: Successfully closed Honorbuddy gracefully
[08/12/2015 11:27:48] Garrison: starting C:\Users\opply\Downloads\Honorbuddy 2.5.14236.796\Honorbuddy.exe
[08/12/2015 11:27:48] Garrison: Attempting to close Honorbuddy

Auto-start per profile

Instead of the auto-start option being global, it should be a setting for each profile so that you can select which profiles should automatically start when HBRelog is launched.

I realize auto-start will currently launch all enabled/selected profiles on startup, but I think it would be cleaner to have this option in the actual profile settings.

Nevermind this, I made an issue detailing my ideas on a bigger scale here: #18.

System.AccessViolationException: Could not read bytes from 00000004 [299]!

[08/25/2015 20:00:18] System.AccessViolationException: Could not read bytes from 00000004 [299]!
w GreyMagic.ExternalProcessReader.ReadBytes(IntPtr address, Int32 count, Boolean isRelative) w d:\Pobrane\HBRelog-master\HBRelog-master\Libs\GreyMagic\ExternalProcessReader.cs:wiersz 126
w GreyMagic.ExternalProcessReader.Read[T](IntPtr address, Boolean isRelative) w d:\Pobrane\HBRelog-master\HBRelog-master\Libs\GreyMagic\ExternalProcessReader.cs:wiersz 195
w HighVoltz.HBRelog.WoW.Lua.LuaTable..ctor(ExternalProcessReader memory, IntPtr address) w d:\Pobrane\HBRelog-master\HBRelog-master\WoW\Lua\LuaTable.cs:wiersz 19
w HighVoltz.HBRelog.WoW.Lua.LuaTValue.get_Table() w d:\Pobrane\HBRelog-master\HBRelog-master\WoW\Lua\LuaTValue.cs:wiersz 47
w HighVoltz.HBRelog.WoW.FrameXml.UIObject.d__2.MoveNext() w d:\Pobrane\HBRelog-master\HBRelog-master\WoW\FrameXml\UIObject.cs:wiersz 168
w System.Linq.Enumerable.d__11.MoveNext() w System.Linq.Enumerable.WhereEnumerableIterator1.MoveNext()
w System.Collections.Generic.List1..ctor(IEnumerable1 collection)
w System.Linq.Enumerable.ToList[TSource](IEnumerable`1 source)
w HighVoltz.HBRelog.WoW.States.LoginWowState.HandleAccountSelectionDialog() w d:\Pobrane\HBRelog-master\HBRelog-master\WoW\States\LoginWowState.cs:wiersz 314
w HighVoltz.HBRelog.WoW.States.LoginWowState.Run() w d:\Pobrane\HBRelog-master\HBRelog-master\WoW\States\LoginWowState.cs:wiersz 91
w HighVoltz.HBRelog.FiniteStateMachine.FiniteStateMachine.Engine.Pulse() w d:\Pobrane\HBRelog-master\HBRelog-master\FiniteStateMachine\Engine.cs:wiersz 41
w HighVoltz.HBRelog.WoW.WowManager.Pulse() w d:\Pobrane\HBRelog-master\HBRelog-master\WoW\WowManager.cs:wiersz 317
w HighVoltz.HBRelog.TaskManager.Pulse() w d:\Pobrane\HBRelog-master\HBRelog-master\TaskManager.cs:wiersz 62
w HighVoltz.HBRelog.HbRelogManager.DoWork() w d:\Pobrane\HBRelog-master\HBRelog-master\HBRelogManager.cs:wiersz 125

Task "Change HB Profile" doesn't change Botbase

Defining a botbase to change to in the "Change HB Profile" task doesn't seem to work. When the task runs and HBRelog closes and re-opens Honorbuddy, the botbase isn't changed. Seems like a bug!

Task to exit Honorbuddy/HBRelog/WoW

Hello again!

I think it would be nice with a task that will (gracefully) log out of WoW, exit the client and then shut down Honorbuddy/HBRelog. This, together with #14 would allow for on-demand scheduling and exiting of profiles. This again could, for example, be used with computer startup/shutdown scripts to fully automate scheduled botting.

Improved functionality/task management/scheduling

This is how I think the layout/workflow of HBRelog should be. Note that this is quite a change to how HBRelog works, so I completely understand if this is outside your scope.

Essentially, the relogger should be composed of three sections: Main window/Account manager, task manager and scheduler.

Main window/Account manager

  • This is where you create relogger profiles. This is where you define your Battle.net accounts, as well as other profile-specific miscellaneous settings.
  • The main window should have a "quick start" feature where you can select an account and input realm/character, botbase and HB profile. This should be useful for when you just want to run a single profile and not necessarily a task sequence.

This is how I imagine the main window should look:

Start | Pause | Stop | Create | Edit | Delete

Account Task Sequence Status
[email protected] Daily Chores Step 2 of 6: Draenor-Charone: Tanaan Dailies
[email protected] Fishing Step 1 of 1: Dunemaul-Kungen: Fishing
[email protected]
  • Each account has its' own task sequences (see below)
  • The "Task Sequence" tab should be a drop-down menu containing each task sequence created for the specified account. You select the task sequence you want to run and hit "Start" to start the bot.

Task manager

  • This is where you create task sequences for the profiles to run. Task sequences are defined per profile.
  • A task sequence consists of one or several tasks that is run in sequence.
  • In each task, you define which character and realm, which Honorbuddy botbase/profile to run and a maximum time the task is allowed to take before moving on to the next task in the sequence.
  • Here is an example of a multi-character task sequence:
Step Task Realm Character Botbase Profile Max time
1 Garrison Draenor Charone GarrisonBoss 30m
2 Tanaan Dailies Draenor Charone Questing Bots/TanaanDailies.xml 90m
3 Lumber Draenor Charone GatherBuddy Bots/GatherLumber.xml 45m
4 Idle 10m
5 Garrison Stormscale Chartwo GarrisonBoss 30m
6 Tanaan Dailies Stormscale Chartwo Questing Bots/TanaanDailies.xml 90m
  • When a task is defined for another character than the one currently logged on, the relogger automatically logs out, switches realm if needed, and logs onto the new character.
  • If a task requires that Honorbuddy be shut down (i.e. for switching botbases), it should do so without exiting WoW, i.e. reusing the same client whenever possible.
  • There should be a choice whether to stop the HBRelog profile when it reaches the end of the sequence, or loop and start from the top again.
  • You should be able to set maximum time per task, but also a total max time per task sequence. This way, you can have the last task of a daily task sequence be "fish/grind/something" and it will do so until the max time is reached. In other words, whichever max time is reached first ("task max time" or "task sequence max time") is the one that counts.

Scheduler

  • The scheduler is a list of task sequences that should run on a specified time.
  • You should be able to, per profile, schedule certain task sequences to run at certain times. This way, you can keep the relogger running in the background 24/7 and it will automatically start a task sequence when scheduled. This will be very useful for daily chores like garrison/shipyard, daily quests and weekly chores like mount farming or LFR.
  • You should be able to schedule a task sequence to run at:
    • Exact times like XX:YY
    • Every x hour starting at XX:YY
    • Specific days of week, for example Mon-Fri or only Sundays.
  • There should also be an option for whether to logout/exit from WoW or remain idle in-game when a task sequence is done.
  • A built-in scheduler might not even be needed if you'd rather leave this up to an external scheduling tool, like Windows Scheduler, as long as there are command-line parameters to define which task-sequence should run, i.e.:
    C:\HBRelog\HBRelog.exe /Account:[email protected] /TaskSequence:DailyChores

Whew, this became longer and more detailed than I intended. Again, if this is way too much or if you have different ideas, please let me know! I'm not a programmer so this might be a lot of work, I don't know. In any case, I hope my suggestion is helpful!

Check for error dialogs and close them

From: BosslandGmbH#4

Every once in awhile, wow will get a dialog that direct 3d or something could start, and then hangs the entire hbrelog process until i close the dialog. Would be nice if that got closed.

http://screencast.com/t/xDsz2d4iSFh

The error is this: https://us.battle.net/support/en/article/world-of-warcraft-was-unable-to-start-up-3d-acceleration

World of Warcraft was unable to start up 3D acceleration. Please make sure DirectX 9.0 is installed and your video drivers are up-to-date.

Its a modal window. I have no idea how to reproduce it.

And no logs to send. Nothing is happening, its just "Waiting for wow to start"

HBRelog not closing HonorBuddy correctly

When switching characters (HBRelog closes WoW.exe, closes Honorbuddy.exe), it's not closing Honorbuddy.exe correctly (does the kill command instead of close main window). This causes large delays when switching characters because HonorBuddy servers don't release the key for a few minutes to be used in another session (Max number of session reached, I only have 1 key).

I looked over the code, and I can duplicate this using my own simple Process finder that attempts to call CloseMainWindow. For whatever reason, it takes two calls to CloseMainWindow() for HonorBuddy to close. I do not know why. I may look into this for a little longer and attempt to make a pull request.

I am running on Windows 10. I am 100% sure I'm running HBRelog in administrator mode.

In-game monitoring/alerting

I know there are existing Honorbuddy plugins that can monitor your character or the chat and alert you on important events. However, I don't find most of them good enough and I think this is something HBRelog is perfect for. There's already a Helper plugin for HBRelog and I assume this could be extended to provide simple monitoring and alerting.

Some ideas of what it could monitor:

  • Whispers (especially GM whispers!)
  • Keywords (like character name or other defined words)
  • Party invites
  • Deaths (especially from PvP combat)
  • Repeated targetting by other players
  • Being followed by other players for a period of time
  • Crashes/disconnects

How it could alert you:

  • E-mail (smtp)
  • Push services (Pushbullet, PushAlot, Prowl, NotifyMyAndroid etc.)
  • Google Talk (Suggested by @madmaximka)

I guess this could also be extended to simple reporting functions, like sending a notification once every X hours (or on profile finished, level up etc.) with a summary of what has been done (gold/experience gained etc.).

Let me know what you think!

Launch specific HBRelog profiles from command-line

It would be great if there was a command-line parameter to auto-start one or more specific HBRelog profiles from the command-line.
This way, it would make it easier to schedule specific tasks or series of tasks through e.g. Windows Task Scheduler.

Copy-pase from #15.
I think it would be nice with a task that will (gracefully) log out of WoW, exit the client and then shut down Honorbuddy/HBRelog.

Change Random Minutes of Idle/Wait Task

Hello,

in my opinion it is better to make the random minutes not negative.

Example (Currently HbRelog):
A Wait Task:
Minutes: 120
Random Minutes: 120

that would mean, that you run for a minimum of 0 minutes your task and a maximum of 240 minutes.

If you wanna run for at least 90 minutes you have to think about calculate it and place as random minutes 30mins.

much better would be that:

minutes: 90 (minimum minutes)
random Minutes: 120 (positive random minutes)

so it will run for a minimum of 90 minutes and a maximum of 210 minutes.

Thank you

Problem with botbase selection and starting bot.

Hey, thanks for sharing this.

WoW login seemed fine now, but for me it logs into game and starts honorbuddy, but does not switch to the specified botbase and start the bot.

[EDIT]
I see in the log that it specifies botbase to HB on boot (/botname="Garrisonboss")
Might be a bug in the newest HB?

Checking for WoW Window Style to be WS_POPUP preventing from launching WoW.exe

The change made in commit c9e8cb4 where it checks for the window style to not be WS_POPUP... I think this is invalid. I run my game in windowed mode (is that WS_POPUP?). I removed this check when I built it and it continues to work for me. So I think this is an invalid method for looking for some kind of error popup.

With the codebase as it is with this check, it will not launch WoW.exe for me.

Remote control

A remote control interface would be super helpful, not sure how hard it is to implement something like that, though.

I'm thinking a web portal or a iOS/Android app where you can start/stop/pause bots, check status' like run time, maybe even chat.
Imagine if a player or GM contacts you and accuses you of botting, you would instantly get a notification on your phone and would be able to respond to them and convince them you're innocent ;)

I'm just brainstorming here, but I think something like this would be very nice to have.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.