Valhalla Legends Forums Archive | Battle.net Bot Development | Problem when I log on W3

AuthorMessageTime
ChR0NiC
When I log on W3.....it shows myself 2 times in the channel, does anyone know what might be causing this or if they have had the same problem, how to fix it....It also sometimes adds the operator twice but only when it shows myself in the channel twice.....This is with VB
I can resolve the issue by doing /resign......but I would perfer it to be fixed instead of always doing /resign....Thx
January 11, 2004, 11:28 PM
UserLoser.
Sometimes on War3 you get statstring updates, which will be sent in SID_CHATEVENT (0x0f) with event id 0x01.. Your parsing needs to be fixed to show stat updates on users... (ex: search your userlist for the user, if it already exists then dont add them to the list, just display a stats update)
January 12, 2004, 12:14 AM
ChR0NiC
Heh, good ol UserLoser always first to reply, and usually most efficient reply too ;D
January 12, 2004, 12:34 AM
Soul Taker
[quote author=UserLoser. link=board=17;threadid=4690;start=0#msg39320 date=1073866497]
Sometimes on War3 you get statstring updates, which will be sent in SID_CHATEVENT (0x0f) with event id 0x01.. Your parsing needs to be fixed to show stat updates on users... (ex: search your userlist for the user, if it already exists then dont add them to the list, just display a stats update)
[/quote]
Just my alternate method since at one time duplicate users happened a lot: I have a boolean, and when I join a channel, I set it to false. Then, as i get the list of users in the channel, if the boolean is false I add them to the list. When I see my own name in that list of users, I set the boolean to true, as you will always be last (well, odds are, anyway). Then when i recieve the EID_USER event and that boolean is true, I treat it as a statstring update.
January 12, 2004, 8:00 AM
Skywing
[quote author=Soul Taker link=board=17;threadid=4690;start=0#msg39371 date=1073894423]
[quote author=UserLoser. link=board=17;threadid=4690;start=0#msg39320 date=1073866497]
Sometimes on War3 you get statstring updates, which will be sent in SID_CHATEVENT (0x0f) with event id 0x01.. Your parsing needs to be fixed to show stat updates on users... (ex: search your userlist for the user, if it already exists then dont add them to the list, just display a stats update)
[/quote]
Just my alternate method since at one time duplicate users happened a lot: I have a boolean, and when I join a channel, I set it to false. Then, as i get the list of users in the channel, if the boolean is false I add them to the list. When I see my own name in that list of users, I set the boolean to true, as you will always be last (well, odds are, anyway). Then when i recieve the EID_USER event and that boolean is true, I treat it as a statstring update.
[/quote]
Remember that you can receive various chat events from users before you have finished receiving the channel list (I've received a talk from somebody before I was told that they were in the channel, for instance -- this could just as easily apply to a join/leave/inchannel notification). Additionally, the server fairly often sends stats updates for incoming users before sending the join notification to you, so you need to handle that too.
January 12, 2004, 12:55 PM
Soul Taker
[quote author=Skywing link=board=17;threadid=4690;start=0#msg39378 date=1073912113]
[quote author=Soul Taker link=board=17;threadid=4690;start=0#msg39371 date=1073894423]
[quote author=UserLoser. link=board=17;threadid=4690;start=0#msg39320 date=1073866497]
Sometimes on War3 you get statstring updates, which will be sent in SID_CHATEVENT (0x0f) with event id 0x01.. Your parsing needs to be fixed to show stat updates on users... (ex: search your userlist for the user, if it already exists then dont add them to the list, just display a stats update)
[/quote]
Just my alternate method since at one time duplicate users happened a lot: I have a boolean, and when I join a channel, I set it to false. Then, as i get the list of users in the channel, if the boolean is false I add them to the list. When I see my own name in that list of users, I set the boolean to true, as you will always be last (well, odds are, anyway). Then when i recieve the EID_USER event and that boolean is true, I treat it as a statstring update.
[/quote]
Remember that you can receive various chat events from users before you have finished receiving the channel list (I've received a talk from somebody before I was told that they were in the channel, for instance -- this could just as easily apply to a join/leave/inchannel notification). Additionally, the server fairly often sends stats updates for incoming users before sending the join notification to you, so you need to handle that too.
[/quote]
Yes, well, I don't see how not having the person displayed in the user list until an instant after I get a chat event from them will cause any problems with my system. And since it doesn't rely on checking if the user is already in the list, stat updates before join notifications are handled fine. In fact, since I have a 1/4 second delay before parsing join notifications (for filtering purposes), I see it happen all the time.
January 12, 2004, 6:17 PM
Gangz
Also remember bots see ops as a double join. 1 is it joining and 1 is it joining as ops. I had the same problem for a while too
January 13, 2004, 1:27 AM
UserLoser.
[quote author=Gangz link=board=17;threadid=4690;start=0#msg39444 date=1073957261]
Also remember bots see ops as a double join. 1 is it joining and 1 is it joining as ops. I had the same problem for a while too
[/quote]

Sometimes on you will get statstring and/or flag updates when a user joins a channel, which will be sent in SID_CHATEVENT (0x0f) with event id 0x09.. Your parsing needs to be fixed to show stat updates on users... (ex: search your userlist for the user, if it already exists then dont add them to the list, just display a stats update)
January 13, 2004, 1:31 AM
Newby
You forgot User, some people cannot read!
January 13, 2004, 1:51 AM
Skywing
[quote author=Soul Taker link=board=17;threadid=4690;start=0#msg39406 date=1073931473]
[quote author=Skywing link=board=17;threadid=4690;start=0#msg39378 date=1073912113]
[quote author=Soul Taker link=board=17;threadid=4690;start=0#msg39371 date=1073894423]
[quote author=UserLoser. link=board=17;threadid=4690;start=0#msg39320 date=1073866497]
Sometimes on War3 you get statstring updates, which will be sent in SID_CHATEVENT (0x0f) with event id 0x01.. Your parsing needs to be fixed to show stat updates on users... (ex: search your userlist for the user, if it already exists then dont add them to the list, just display a stats update)
[/quote]
Just my alternate method since at one time duplicate users happened a lot: I have a boolean, and when I join a channel, I set it to false. Then, as i get the list of users in the channel, if the boolean is false I add them to the list. When I see my own name in that list of users, I set the boolean to true, as you will always be last (well, odds are, anyway). Then when i recieve the EID_USER event and that boolean is true, I treat it as a statstring update.
[/quote]
Remember that you can receive various chat events from users before you have finished receiving the channel list (I've received a talk from somebody before I was told that they were in the channel, for instance -- this could just as easily apply to a join/leave/inchannel notification). Additionally, the server fairly often sends stats updates for incoming users before sending the join notification to you, so you need to handle that too.
[/quote]
Yes, well, I don't see how not having the person displayed in the user list until an instant after I get a chat event from them will cause any problems with my system. And since it doesn't rely on checking if the user is already in the list, stat updates before join notifications are handled fine. In fact, since I have a 1/4 second delay before parsing join notifications (for filtering purposes), I see it happen all the time.
[/quote]
It would matter if you didn't treat event 2 specially, which you didn't specify...
January 13, 2004, 1:11 PM
UserLoser.
[quote author=Skywing link=board=17;threadid=4690;start=0#msg39471 date=1073999506]
[quote author=Soul Taker link=board=17;threadid=4690;start=0#msg39406 date=1073931473]
[quote author=Skywing link=board=17;threadid=4690;start=0#msg39378 date=1073912113]
[quote author=Soul Taker link=board=17;threadid=4690;start=0#msg39371 date=1073894423]
[quote author=UserLoser. link=board=17;threadid=4690;start=0#msg39320 date=1073866497]
Sometimes on War3 you get statstring updates, which will be sent in SID_CHATEVENT (0x0f) with event id 0x01.. Your parsing needs to be fixed to show stat updates on users... (ex: search your userlist for the user, if it already exists then dont add them to the list, just display a stats update)
[/quote]
Just my alternate method since at one time duplicate users happened a lot: I have a boolean, and when I join a channel, I set it to false. Then, as i get the list of users in the channel, if the boolean is false I add them to the list. When I see my own name in that list of users, I set the boolean to true, as you will always be last (well, odds are, anyway). Then when i recieve the EID_USER event and that boolean is true, I treat it as a statstring update.
[/quote]
Remember that you can receive various chat events from users before you have finished receiving the channel list (I've received a talk from somebody before I was told that they were in the channel, for instance -- this could just as easily apply to a join/leave/inchannel notification). Additionally, the server fairly often sends stats updates for incoming users before sending the join notification to you, so you need to handle that too.
[/quote]
Yes, well, I don't see how not having the person displayed in the user list until an instant after I get a chat event from them will cause any problems with my system. And since it doesn't rely on checking if the user is already in the list, stat updates before join notifications are handled fine. In fact, since I have a 1/4 second delay before parsing join notifications (for filtering purposes), I see it happen all the time.
[/quote]
It would matter if you didn't treat event 2 specially, which you didn't specify...
[/quote]

Didn't really think that I'd need to treat it specially because users don't join channels with the flags of an operator
January 13, 2004, 11:46 PM
Myndfyr
It varies for me; when I enter Op [vL], I get the user as having entered with ops -- I know this because my bot puts [vL] up at the top right away. When I enter a Warcraft III channel, it enters as a regular user, and then the server sends a flags update.

That's how it works, consistently, for me.
January 14, 2004, 12:43 AM
Skywing
[quote author=UserLoser. link=board=17;threadid=4690;start=0#msg39499 date=1074037611]
Didn't really think that I'd need to treat it specially because users don't join channels with the flags of an operator
[/quote]
I don't see how what flags the user is joining with makes any difference. Besides, you're wrong anyway, that happens with server splits. You need to be able to recognize receiving event 1 and then event 2 as a stat change similar to how you need to recognize receiving event 1 and then another event 1 as a stat change [for the same user]. Then, you also need to handle "real" duplicate users (though these are fairly rare now, I've still encountered them recently). Typically, you would check stuff like the username case and the user's ping to help make your guess more accurate.
January 14, 2004, 12:44 AM
ChR0NiC
um...........Thanks I guess.......*puzzle* ::)
January 20, 2004, 12:19 AM

Search