• You've discovered RedGuides 📕 an EverQuest multi-boxing community 🛡️🧙🗡️. We want you to play several EQ characters at once, come join us and say hello! 👋
  • IS THIS SITE UGLY? Change the look. To dismiss this notice, click the X --->
MQ2EQBC

Plugin - MQ2EQBC (2 Viewers)

possible to bump this line up before compile?
const int CEqbcs::MAX_CLIENTS = 50

maybe 54? or 72?
 
I reinstalled windows 10, but used old mq install and still the CPU utilization 15-17% for no client on it. Not sure why.

I can confirm.

I will look into it tonight. I don't think I implemented anything for escaped characters. It shouldn't be difficult to add support though. There are still a couple bugs I need to fix too.

So, I got delayed a few days, but I added some support for escaped characters. I haven't thoroughly tested it, but if there's a willing volunteer or two, I'll happily post it!

CPU usage is really high, running without anyone connected
 
I think I know why it's high CPU usage... The beta one was built with all the debug info still in there. When I debug it through Visual Studio, I have similar performance issues. I don't know if it's just Visual Studio, or the I/O library I am using that's causing the performance hit. I'll post a new copy (release version instead of debug) shortly. I have been working on a few things. I am still seeing issues with NETBOTS, and haven't really looked into why (been busy with raiding and family stuff).

Edit: Added release version...
 

Attachments

  • EQBCS.exe
    297 KB · Views: 9
Alright so I run a macro to toss my toons into proper channels. This just started happening with the last patch.

This is the macro:

INI:
sub Main
/if (${Select[${Me.Class.ShortName},BRD]})  {
/bccmd channels priv privbrd privmelee
}
/if (${Select[${Me.Class.ShortName},SHD]}) {
/bccmd channels priv privtank privmelee
}
/if (${Select[${Me.Class.ShortName},CLR,DRU,SHM]})  {
/bccmd channels priv privheal
}
/if (${Select[${Me.Class.ShortName},MNK,ROG,BER,RNG,BST]})  {
/bccmd channels priv privmelee
}
/if (${Select[${Me.Class.ShortName},WIZ,MAG,ENC]})  {
/bccmd channels priv privcast
}
/if (${Select[${Me.Class.ShortName},WAR]})  {
/bccmd channels priv privtank
}
/if (${Select[${Me.Class.ShortName},BRD]})  {
/bccmd channels priv privbrd privmelee
}
/return

This is what happens sometimes.

error.png

so that is a bard that for some reason echos to BC. Sometimes it just says HANNELS for the first one. The heck?
 
@Vengen do you get a message when it won't accept anymore clients? I poked the plugin with a stick, but I didn't see where there was a limit defined right off. But it's a rather complex plugin/program to me as I've never delt with networking things at all.
 
Thanks for the post s0rcier, I spent a good bit of time poking EQBCS and MQ2EQBC source files with a stick and found no location that showed a max connection/clients restriction.
 
I think I know why it's high CPU usage... The beta one was built with all the debug info still in there. When I debug it through Visual Studio, I have similar performance issues. I don't know if it's just Visual Studio, or the I/O library I am using that's causing the performance hit. I'll post a new copy (release version instead of debug) shortly. I have been working on a few things. I am still seeing issues with NETBOTS, and haven't really looked into why (been busy with raiding and family stuff).

Edit: Added release version...

This is running beautifully, thank you
 
So i had two EQBCS files in my MQ2, the other was EQBCS2.exe
using EQBCS2.exe lets me go above 50.. so maybe the EQBCS.exe is an older version..
 
Occasionally when using EQBC for long durations It would get hung up. So I started running it in debug mode.
Below is a screenshot of what it looked like when I woke up this morning.

1555082657832.png

Ingame it looked like below

1555082683650.png

I was not doing anything during the time afk. Just simply left my toons logged in standing in pok.

Closing EQBCS.exe and opening it again and reconnecting my toons "fixes" the issue, which leads me to believe it's related to EQBCS and not MQ2EQBC itself.
 
I think I know why it's high CPU usage... The beta one was built with all the debug info still in there. When I debug it through Visual Studio, I have similar performance issues. I don't know if it's just Visual Studio, or the I/O library I am using that's causing the performance hit. I'll post a new copy (release version instead of debug) shortly. I have been working on a few things. I am still seeing issues with NETBOTS, and haven't really looked into why (been busy with raiding and family stuff).

Edit: Added release version...

Could you post the source to one of our version controls pretty please? I'd like to get everyone on the new version
 
Well, there may be an issue with that. I made some more changes to add some additional error checking to the circular I/O buffer. I thought the issue was that the buffer might be getting full then to an inconsistent state because Peek() may have been allowing reads past the end of data marker (as in it was reading invalid data that was already consumed). I also started to add thread synchronization back in, so I can make it multithreaded like it was when I started, but I haven't completed that code. There were too many synchronization issues because the libraries I am using aren't inherently thread-safe. So, if one thread is enumerating the client list to consume data available on a socket, and another socket disconnects while that's happening, and gets deleted, the iterator of the list gets confused, and causes the application to crash (because an element that is being deleted may be in use). Multhreaded communications applications are tons of fun to debug too. I will check the latest revision I posted to VSTS to see if it has the fix for the escaped characters in it. If not, I'll comment out my working changes, and upload the escape character fix.

Edit: I think I got the relevant changes committed. :) Let me know if there are issues.
 
Last edited:
I had hours and hours of frustation with attempting to get EQBC to work on multiple machines. I'd done everything I could think of, port forwarding 2112 on my router, adding manual exceptions to Inbound and Outbound rules in my firewall on every machine attempting to connect. After many hours, I decided to just bring all machines firewalls down and activate them one by one, trying to connect to the PC hosting the eqbc server with every possible combination.

Ultimately, I narrowed it down to the host PC's firewall. I could connect easily with any firewall turned on except the host PC.

At the suggestion of Sicprofundus on Discord, I decided to launch eqbcs.exe and stop the service, then launch eqbcs2.exe because he had informed me that version 2 was more stable. This time, Windows asked to create an excpetion in my firewall. I said yes, and Windows exception configuration did something that mine did not, because suddenly all pc's could connect, with all firewalls up!

I had tried every combination of Local Port set to 2112 or Any, Protocol set to TCP or Any, I had left program set to any... none of those would work.

1556173129953.png

In this screenshot, the top exception is the one that I created. You can't see Local Port, but it is set to 2112 (again, I had tried Any as well).
The bottom two are the TWO exceptions that Windows created when I launched EQBCS2.exe.

For whatever reason, it cured all my ills! I hope this saves someone else the trouble it gave me, and thank you Sicpro for the help!
 
At the suggestion of Sicprofundus on Discord, I decided to launch eqbcs.exe and stop the service, then launch eqbcs2.exe because he had informed me that version 2 was more stable.

Just a btw - it looks like I might be mistaken/misinformed about the more stable part but glad we got it working
 
Your help was honestly invaluable. I'd been fighting with it all day, left my house for a few hours, thought the whole time about how to trouble shoot it, and with your help we had it going within 20 minutes or so.
 
Been running into a lot of issues with eqbc since update on emu.
I am losing connection yet it says connected but none of my connected chars are getting commands.
Sometimes when I send a command it will throw my character straight to the desktop with no error.
kiss commands through eqbc are often crashing my toons to desktop with no error
 
Hey, im trying to connect to my eqbc server remotly. Its kind of working, but i am seeing a invalid or partial login error in the debug and then it closes my remote connection. How would i login via tcp to the server?
 
Make sure you are either using a SSH/VPN tunnel for security (not required, but highly encouraged), and that you have eqbc server listening on a physical interface's IP Address (not 0.0.0.0 or 127.x.x.x).
 
Make sure you are either using a SSH/VPN tunnel for security (not required, but highly encouraged), and that you have eqbc server listening on a physical interface's IP Address (not 0.0.0.0 or 127.x.x.x).
JimBob,I think the connection is working fine.
The issue seems to be that I don't know how to authenticate with EQBCS, just to clarify I'm doing this without the EQBC client, but trying to connect via telnet from a remote comuter.
I'm seeing this in from my EQBC instance: Client::OnAuthenticationTimeout() client failed to authenticate...
Is there any kind of documentation around the API, eg what to pass to authenticate or is it a read the code and try to figure it out situation ?

Thanks

Managed to dig around and foundthe solution needed to send a LOGIN=name; to the server to keep the connection open
 
Last edited:
You could use eqbci instead of telnet.
Yeah but eqbci is windows only right ?
I'm kinda looking into doing something similar but with a web deployment, so you could watch over your bots remotely from any device/anywhere.
 
Yeah but eqbci is windows only right ?
I'm kinda looking into doing something similar but with a web deployment, so you could watch over your bots remotely from any device/anywhere.


we had talk at one point in time about making a eqbcs for droid but I dont think it ever took off
 
We're trying to consolidate all EQBCS versions into this one. Is there anything missing from this version that is present in eqbcs2 and eqbcs-eqmule?
 
We're trying to consolidate all EQBCS versions into this one. Is there anything missing from this version that is present in eqbcs2 and eqbcs-eqmule?
mule has BCZ for broadcast zone? right? that would be super rad. BCA (all), BCG (group), BCR (raid), and BCZ (zone) --- having those would be super handy.

I use eqbcs2 specifically because of the "hang-up" issue that eqbcs has if not put in high priority mode.
 
Last edited:
Thanks for the input Sic, anyone else have a reason they don't use eqbcs.exe?
 
because eqbcs-mule doesn't lag like a mofo for 1 character after an hour or two of playing, so I've used mule's version for the past year without issue

Addendum: I also don't use eqbcs in high priority mode on my laptop specifically because it locks up the system entirely at some random point after starting.
 
Last edited:
Yeah but eqbci is windows only right ?
I'm kinda looking into doing something similar but with a web deployment, so you could watch over your bots remotely from any device/anywhere.
This is maybe a little late, but eqbci is cross platform compatible. I wrote it on Linux with QT. I have an Android apk as well....
 
how do you issue command useitem like //bct toonname //useitem Drunard's Stein I want to be able to use Drunkards stein on my whole team at once

i tried i saw on the other account it said its name twice and the command but it didnt work i typed the same comand the useitem drunkards stein and it worked on his screen but no boxing service came through with that was just a regular command not able to get them to do it all at once, which would be super nice to save on buffs.
 
Last edited:
This will work

INI:
/bcga //useitem drunkard

you can also do

INI:
/bcaa //useitem "Fellowship Registration Insignia"

It will match on the first part of your item, just make sure you don't have something else that starts with the same word, if you do, use the "item" in quotes.
 
how do you issue command useitem like //bct toonname //useitem Drunard's Stein I want to be able to use Drunkards stein on my whole team at once

i tried i saw on the other account it said its name twice and the command but it didnt work i typed the same comand the useitem drunkards stein and it worked on his screen but no boxing service came through with that was just a regular command not able to get them to do it all at once, which would be super nice to save on buffs.

got it to work using /bct (name) //useitem Drunk
 
Plugin - MQ2EQBC

Users who are viewing this thread

Back
Top