pvpgn / pvpgn-server

Next generation of PvPGN server
https://pvpgn.pro
GNU General Public License v2.0
540 stars 155 forks source link

Ladder is not working. #368

Open StevenFredette opened 5 years ago

StevenFredette commented 5 years ago

I would like to report my experience with the last update i was supplied with since Warcraft 2 was fixed.

  1. Not matter what it seems the game can't create a ladder match with it saying the "user does not have 10 wins yet". Many users have complained about about this issue. I've tried to set many game modes as a ladder type such as FFA, TVB, ETC.

  2. About 90% of the time when i try to double click on my user name. The server ends up kicking me out.

  3. There is also a terrible bot that is making the default max connections kick in. The bots are all blank and don't show a user, ping, game client nothing. So since the 1,000 default limit hits no one can join the server. I'm thinking they are just connections that haven't been killed after they failed or something like that.

  4. I've noticed a lot of public games are hosted without passwords and they are not showing up on the game list.

StevenFredette commented 3 years ago
  1. The ladder does not work at all period for Warcraft II BNE. I tried to use both clients a and b neither of them can host a ladder match or can't they view the ladder at all.

If you click Ladder button in channel the stats are blank and for some reason shows the profile of some random users account. If you host a ladder with 10 or more wins you still get you don't have 10 wins error. If you host iron man you get you don't have 1200 with default client and program to bypass 1200 limit.

Long story short we can't play ladder and haven't for a few years now.

A. Tried both clients of W2BN B. Default bnetd.conf C. Customized bnet.conf D. Wrote a program to modify the client to bypass the 1200 rating. (works for older pvpgn 1.8.5). E. I ran all ladder commands in the /help list. F. I even tried the new feature and added a prefix to the game name for "LDR_". That did record normal games as a ladder game and wrote the stats to the proper fields. It created another issue that sadly lived before i removed it. All other games were reported as "DRAW". My active players have a whole bunch DRAWS LOL! We really don't mind we just thankful people like you all here help us keep our favorite game alive.

  1. This issue was resolved the VPS network i used got an internet upgrade.

  2. This was resolved by configuring a decent firewall.

  3. This was resolved was caused by a mix of Client A and B and Allowing unknown versions.

RElesgoe commented 3 years ago

If you host a ladder with 10 or more wins you still get you don't have 10 wins error.

Is this an error shown in the client or an error you found in the logs?

StevenFredette commented 3 years ago

If you host a ladder with 10 or more wins you still get you don't have 10 wins error.

Is this an error shown in the client or an error you found in the logs?

I thought it was a client error but due to testing more I don't believe so.

The same client and loader was tested on pvpgn 1.8.5 and confirmed working can host ladder without 10 wins or more, can host ironman without 1200 rating, also the ladder button displayed actual ladder stats.

The same client and loader was tested on pvpgn current and none of those options worked at all.

Hosted ladder game: The account hosting has over 300 normal games played. image

Hosted Iron Man image

Ladder List: I even enabled the newer ladder stuff with the prefix in the game name, gamemode as ladder, to count as ladder game. All the ladder files have data in them and newer commands seem to work elo wise. image

RElesgoe commented 3 years ago

Try the latest code from the develop branch.

StevenFredette commented 3 years ago

Try the latest code from the develop branch.

I have tested the newer build. Didn't work with my default account. I enabled debugging and noticed an invalid client error on connecting and it said the client tag. I set the profile attribute BNET\fakeclienttag back to W2BN and reconnected, ran command /ladderactive, Success I could now host a ladder match on my main account.

Bugs:

  1. The ladder tab is still all empty and for some reason when you double click a spot in the ladder. It will open the profile of the first account created.

  2. Really cool now the original icons are displayed in the channel. But now the 2 icons methods no longer work.

I. The icons.conf file didn't seem to take effect anymore. I win botted a fresh account and none of the icons appeared at all for the win amounts. The old school icons are there instead.

II. It might need some type of exclusion when hosting ladder and iron man. If you use BNET\fakeclienttag TAGNAME on that profile. You will get the 10 wins or more error when hosting. Your tag has to be W2BN or you can't host ladder.

Other than that this seems to be a huge step in the right direction.

RElesgoe commented 3 years ago

I enabled debugging and noticed an invalid client error on connecting and it said the client tag.

Can you show me the logs.

I set the profile attribute BNET\fakeclienttag back to W2BN

I recommend not messing with this attribute.

RElesgoe commented 3 years ago

@HarpyWar After commit 11c204a4d76a2e85071daef9a62c4e4110fac156, the user-selected icons feature and custom icons feature is no longer working. Previously, PvPGN was violating protocol by sending just the icon code in the chat statstring, in a field where clients are expecting product codes. After investigating, I have discovered some undocumented quirks with how clients handle icons.

  1. Although an icon code is sent in chat statstrings for WC2 clients, WC2 clients do not use this field. Only StarCraft and WarCraft 3 clients support the icon code field in chat statstrings.
  2. SC and WC3 clients do not search in icons.bni for an icon matching the given icon code, they look in icons_STAR.bni and icons-WAR3.bni, respectively.
  3. icons.bni is used by D1, SC, WC2, and WC3 clients to display product icons (e.g. d2exp) and icons with flags (e.g. gavel).

IMO, PvPGN should drop support for custom icons for WC2 and move these new icons to icons_STAR.bni and icons-WAR3.bni. If support for WC2 is desired, we'd have to mess with setting the appropriate user flags so that WC2 can display icons from icons.bni.

Reference: https://bnetdocs.org/document/18/chat-statstrings

StevenFredette commented 3 years ago

Nice discovery but sad day for Warcraft 2 players. So I gave it a bit and the ladder is still coming blank. The ladder files have id and ladder scores in them.

image

I would like to post my updates. It seems that if you configure the textual output fields in the bnetd.conf. The ladder files now get created in a different directory the same directory the the textual output files.. @RElesgoe

`###############################################################################

war3 ladder textual output

-----------------------------------------------------------------------------

this is for all the guys, that want Warcraft 3 ladder, but don't want their

server to run with MySQL support.

For each ladder (solo, team, ffa, at) a corresponing file is created,

so it's easy to build your ladder pages with them

the following value determines, at which rate, these files are created

set to 0 if you don't want or need these files

war3_ladder_update_secs = 300

jfro's latest ladder is based on XML... so we can switch to XML output of ladder

on demand. Maybe we should set update interval bigger cause XML output version

is much more verbose than the standard output

XML_output_ladder = false

###############################################################################

server status textual output

-----------------------------------------------------------------------------

This is for writing status of the server in an attempt to see number of user

on line actually, and games/chans.

This is store in file var\status\warcraft3.dat as a *.ini format.

Shouldn't be so hard in php to create dynamic website using this content.

the following value determines, at which rate, these files are created

set to 0 if you don't want or need these files

output_update_secs = 1

jfro's latest ladder is based on XML... /so we can switch to XML output of ladder

on demand. Maybe we should set update interval bigger cause XML output version

is much more verbose than the standard output

XML_status_output = false`

image

I also to set the ladderdir file path to ladderdir = var\status in bnetd.conf

and now the log of ladder throwing a fit on load.

Aug 29 02:46:08 [info ] pvpgn::bnetd::LadderList::loadBinary: could not open ladder file "var\ladders/SEXP_AR_LADDER" - maybe ladder still empty (std::ifstream: No such file or directory) Aug 29 02:46:08 [info ] pvpgn::bnetd::LadderList::loadBinary: could not open ladder file "var\ladders/SEXP_CR_LADDER" - maybe ladder still empty (std::ifstream: No such file or directory) Aug 29 02:46:08 [info ] pvpgn::bnetd::LadderList::loadBinary: could not open ladder file "var\ladders/SEXP_AW_LADDER" - maybe ladder still empty (std::ifstream: No such file or directory) Aug 29 02:46:08 [info ] pvpgn::bnetd::LadderList::loadBinary: could not open ladder file "var\ladders/SEXP_CW_LADDER" - maybe ladder still empty (std::ifstream: No such file or directory) Aug 29 02:46:08 [info ] pvpgn::bnetd::LadderList::loadBinary: could not open ladder file "var\ladders/SEXP_AG_LADDER" - maybe ladder still empty (std::ifstream: No such file or directory) Aug 29 02:46:08 [info ] pvpgn::bnetd::LadderList::loadBinary: could not open ladder file "var\ladders/SEXP_CG_LADDER" - maybe ladder still empty (std::ifstream: No such file or directory) Aug 29 02:46:08 [info ] pvpgn::bnetd::LadderList::loadBinary: could not open ladder file "var\ladders/STAR_AR_LADDER" - maybe ladder still empty (std::ifstream: No such file or directory) Aug 29 02:46:08 [info ] pvpgn::bnetd::LadderList::loadBinary: could not open ladder file "var\ladders/STAR_CR_LADDER" - maybe ladder still empty (std::ifstream: No such file or directory) Aug 29 02:46:08 [info ] pvpgn::bnetd::LadderList::loadBinary: could not open ladder file "var\ladders/STAR_AW_LADDER" - maybe ladder still empty (std::ifstream: No such file or directory) Aug 29 02:46:08 [info ] pvpgn::bnetd::LadderList::loadBinary: could not open ladder file "var\ladders/STAR_CW_LADDER" - maybe ladder still empty (std::ifstream: No such file or directory) Aug 29 02:46:08 [info ] pvpgn::bnetd::LadderList::loadBinary: could not open ladder file "var\ladders/STAR_AG_LADDER" - maybe ladder still empty (std::ifstream: No such file or directory) Aug 29 02:46:08 [info ] pvpgn::bnetd::LadderList::loadBinary: could not open ladder file "var\ladders/STAR_CG_LADDER" - maybe ladder still empty (std::ifstream: No such file or directory) Aug 29 02:46:08 [info ] pvpgn::bnetd::LadderList::loadBinary: could not open ladder file "var\ladders/W2BN_AR_LADDER" - maybe ladder still empty (std::ifstream: No such file or directory) Aug 29 02:46:08 [info ] pvpgn::bnetd::LadderList::loadBinary: could not open ladder file "var\ladders/W2BN_CR_LADDER" - maybe ladder still empty (std::ifstream: No such file or directory) Aug 29 02:46:08 [info ] pvpgn::bnetd::LadderList::loadBinary: could not open ladder file "var\ladders/W2BN_AW_LADDER" - maybe ladder still empty (std::ifstream: No such file or directory) Aug 29 02:46:08 [info ] pvpgn::bnetd::LadderList::loadBinary: could not open ladder file "var\ladders/W2BN_CW_LADDER" - maybe ladder still empty (std::ifstream: No such file or directory) Aug 29 02:46:08 [info ] pvpgn::bnetd::LadderList::loadBinary: could not open ladder file "var\ladders/W2BN_AG_LADDER" - maybe ladder still empty (std::ifstream: No such file or directory) Aug 29 02:46:08 [info ] pvpgn::bnetd::LadderList::loadBinary: could not open ladder file "var\ladders/W2BN_CG_LADDER" - maybe ladder still empty (std::ifstream: No such file or directory) Aug 29 02:46:08 [info ] pvpgn::bnetd::LadderList::loadBinary: could not open ladder file "var\ladders/W2BN_ARI_LADDER" - maybe ladder still empty (std::ifstream: No such file or directory) Aug 29 02:46:08 [info ] pvpgn::bnetd::LadderList::loadBinary: could not open ladder file "var\ladders/W2BN_CRI_LADDER" - maybe ladder still empty (std::ifstream: No such file or directory) Aug 29 02:46:08 [info ] pvpgn::bnetd::LadderList::loadBinary: could not open ladder file "var\ladders/W2BN_AWI_LADDER" - maybe ladder still empty (std::ifstream: No such file or directory) Aug 29 02:46:08 [info ] pvpgn::bnetd::LadderList::loadBinary: could not open ladder file "var\ladders/W2BN_CWI_LADDER" - maybe ladder still empty (std::ifstream: No such file or directory) Aug 29 02:46:08 [info ] pvpgn::bnetd::LadderList::loadBinary: could not open ladder file "var\ladders/W2BN_AGI_LADDER" - maybe ladder still empty (std::ifstream: No such file or directory) Aug 29 02:46:08 [info ] pvpgn::bnetd::LadderList::loadBinary: could not open ladder file "var\ladders/W2BN_CGI_LADDER" - maybe ladder still empty (std::ifstream: No such file or directory) Aug 29 02:46:08 [info ] pvpgn::bnetd::LadderList::loadBinary: could not open ladder file "var\ladders/RAL2_SOLO_LADDER" - maybe ladder still empty (std::ifstream: No such file or directory) Aug 29 02:46:08 [info ] pvpgn::bnetd::LadderList::loadBinary: could not open ladder file "var\ladders/TSUN_SOLO_LADDER" - maybe ladder still empty (std::ifstream: No such file or directory) Aug 29 02:46:08 [info ] pvpgn::bnetd::LadderList::loadBinary: could not open ladder file "var\ladders/TSXP_SOLO_LADDER" - maybe ladder still empty (std::ifstream: No such file or directory) Aug 29 02:46:08 [info ] pvpgn::bnetd::LadderList::loadBinary: could not open ladder file "var\ladders/W3XP_SOLO_LADDER" - maybe ladder still empty (std::ifstream: No such file or directory) Aug 29 02:46:08 [info ] pvpgn::bnetd::LadderList::loadBinary: could not open ladder file "var\ladders/WAR3_SOLO_LADDER" - maybe ladder still empty (std::ifstream: No such file or directory) Aug 29 02:46:08 [info ] pvpgn::bnetd::LadderList::loadBinary: could not open ladder file "var\ladders/YURI_SOLO_LADDER" - maybe ladder still empty (std::ifstream: No such file or directory) Aug 29 02:46:08 [info ] pvpgn::bnetd::LadderList::loadBinary: could not open ladder file "var\ladders/W3XP_TEAM_LADDER" - maybe ladder still empty (std::ifstream: No such file or directory) Aug 29 02:46:08 [info ] pvpgn::bnetd::LadderList::loadBinary: could not open ladder file "var\ladders/WAR3_TEAM_LADDER" - maybe ladder still empty (std::ifstream: No such file or directory) Aug 29 02:46:08 [info ] pvpgn::bnetd::LadderList::loadBinary: could not open ladder file "var\ladders/W3XP_FFA_LADDER" - maybe ladder still empty (std::ifstream: No such file or directory) Aug 29 02:46:09 [info ] pvpgn::bnetd::LadderList::loadBinary: could not open ladder file "var\ladders/WAR3_FFA_LADDER" - maybe ladder still empty (std::ifstream: No such file or directory) Aug 29 02:46:09 [info ] pvpgn::bnetd::LadderList::loadBinary: could not open ladder file "var\ladders/W3XP_AT_LADDER" - maybe ladder still empty (std::ifstream: No such file or directory) Aug 29 02:46:09 [info ] pvpgn::bnetd::LadderList::loadBinary: could not open ladder file "var\ladders/WAR3_AT_LADDER" - maybe ladder still empty (std::ifstream: No such file or directory) Aug 29 02:46:09 [info ] pvpgn::bnetd::LadderList::saveBinary: successfully saved var\ladders/SEXP_AR_LADDER Aug 29 02:46:09 [info ] pvpgn::bnetd::LadderList::saveBinary: successfully saved var\ladders/SEXP_CR_LADDER Aug 29 02:46:09 [info ] pvpgn::bnetd::LadderList::saveBinary: successfully saved var\ladders/SEXP_AW_LADDER Aug 29 02:46:09 [info ] pvpgn::bnetd::LadderList::saveBinary: successfully saved var\ladders/SEXP_CW_LADDER Aug 29 02:46:09 [info ] pvpgn::bnetd::LadderList::saveBinary: successfully saved var\ladders/SEXP_AG_LADDER Aug 29 02:46:09 [info ] pvpgn::bnetd::LadderList::saveBinary: successfully saved var\ladders/SEXP_CG_LADDER Aug 29 02:46:09 [info ] pvpgn::bnetd::LadderList::saveBinary: successfully saved var\ladders/STAR_AR_LADDER Aug 29 02:46:09 [info ] pvpgn::bnetd::LadderList::saveBinary: successfully saved var\ladders/STAR_CR_LADDER Aug 29 02:46:09 [info ] pvpgn::bnetd::LadderList::saveBinary: successfully saved var\ladders/STAR_AW_LADDER Aug 29 02:46:09 [info ] pvpgn::bnetd::LadderList::saveBinary: successfully saved var\ladders/STAR_CW_LADDER Aug 29 02:46:09 [info ] pvpgn::bnetd::LadderList::saveBinary: successfully saved var\ladders/STAR_AG_LADDER Aug 29 02:46:09 [info ] pvpgn::bnetd::LadderList::saveBinary: successfully saved var\ladders/STAR_CG_LADDER Aug 29 02:46:09 [info ] pvpgn::bnetd::LadderList::saveBinary: successfully saved var\ladders/W2BN_AR_LADDER Aug 29 02:46:09 [info ] pvpgn::bnetd::LadderList::saveBinary: successfully saved var\ladders/W2BN_CR_LADDER Aug 29 02:46:09 [info ] pvpgn::bnetd::LadderList::saveBinary: successfully saved var\ladders/W2BN_AW_LADDER Aug 29 02:46:09 [info ] pvpgn::bnetd::LadderList::saveBinary: successfully saved var\ladders/W2BN_CW_LADDER Aug 29 02:46:09 [info ] pvpgn::bnetd::LadderList::saveBinary: successfully saved var\ladders/W2BN_AG_LADDER Aug 29 02:46:09 [info ] pvpgn::bnetd::LadderList::saveBinary: successfully saved var\ladders/W2BN_CG_LADDER Aug 29 02:46:09 [info ] pvpgn::bnetd::LadderList::saveBinary: successfully saved var\ladders/W2BN_ARI_LADDER Aug 29 02:46:09 [info ] pvpgn::bnetd::LadderList::saveBinary: successfully saved var\ladders/W2BN_CRI_LADDER Aug 29 02:46:09 [info ] pvpgn::bnetd::LadderList::saveBinary: successfully saved var\ladders/W2BN_AWI_LADDER Aug 29 02:46:09 [info ] pvpgn::bnetd::LadderList::saveBinary: successfully saved var\ladders/W2BN_CWI_LADDER Aug 29 02:46:09 [info ] pvpgn::bnetd::LadderList::saveBinary: successfully saved var\ladders/W2BN_AGI_LADDER Aug 29 02:46:09 [info ] pvpgn::bnetd::LadderList::saveBinary: successfully saved var\ladders/W2BN_CGI_LADDER Aug 29 02:46:09 [info ] pvpgn::bnetd::LadderList::saveBinary: successfully saved var\ladders/RAL2_SOLO_LADDER Aug 29 02:46:09 [info ] pvpgn::bnetd::LadderList::saveBinary: successfully saved var\ladders/TSUN_SOLO_LADDER Aug 29 02:46:09 [info ] pvpgn::bnetd::LadderList::saveBinary: successfully saved var\ladders/TSXP_SOLO_LADDER Aug 29 02:46:09 [info ] pvpgn::bnetd::LadderList::saveBinary: successfully saved var\ladders/W3XP_SOLO_LADDER Aug 29 02:46:09 [info ] pvpgn::bnetd::LadderList::saveBinary: successfully saved var\ladders/WAR3_SOLO_LADDER Aug 29 02:46:09 [info ] pvpgn::bnetd::LadderList::saveBinary: successfully saved var\ladders/YURI_SOLO_LADDER Aug 29 02:46:09 [info ] pvpgn::bnetd::LadderList::saveBinary: successfully saved var\ladders/W3XP_TEAM_LADDER Aug 29 02:46:09 [info ] pvpgn::bnetd::LadderList::saveBinary: successfully saved var\ladders/WAR3_TEAM_LADDER Aug 29 02:46:09 [info ] pvpgn::bnetd::LadderList::saveBinary: successfully saved var\ladders/W3XP_FFA_LADDER Aug 29 02:46:09 [info ] pvpgn::bnetd::LadderList::saveBinary: successfully saved var\ladders/WAR3_FFA_LADDER Aug 29 02:46:09 [info ] pvpgn::bnetd::LadderList::saveBinary: successfully saved var\ladders/W3XP_AT_LADDER Aug 29 02:46:09 [info ] pvpgn::bnetd::LadderList::saveBinary: successfully saved var\ladders/WAR3_AT_LADDER

The ladder files that are in the default ladder folder cant be open with text file seems to be encrypted or corrupted. The ladder files inside the textual output folder seems to be correct.

Hope it helps.

RElesgoe commented 3 years ago

@StevenFredette Let me know if the latest commit solved your problem.

StevenFredette commented 3 years ago

@RElesgoe

WOW! Great work! Your hard work is greatly appreciated.

The issues have been resolved.

Seriously Thank You!

HarpyWar commented 3 years ago

@HarpyWar After commit 11c204a, the user-selected icons feature and custom icons feature is no longer working. Previously, PvPGN was violating protocol by sending just the icon code in the chat statstring, in a field where clients are expecting product codes. After investigating, I have discovered some undocumented quirks with how clients handle icons.

  1. Although an icon code is sent in chat statstrings for WC2 clients, WC2 clients do not use this field. Only StarCraft and WarCraft 3 clients support the icon code field in chat statstrings.
  2. SC and WC3 clients do not search in icons.bni for an icon matching the given icon code, they look in icons_STAR.bni and icons-WAR3.bni, respectively.
  3. icons.bni is used by D1, SC, WC2, and WC3 clients to display product icons (e.g. d2exp) and icons with flags (e.g. gavel).

IMO, PvPGN should drop support for custom icons for WC2 and move these new icons to icons_STAR.bni and icons-WAR3.bni. If support for WC2 is desired, we'd have to mess with setting the appropriate user flags so that WC2 can display icons from icons.bni.

Reference: https://bnetdocs.org/document/18/chat-statstrings

If Warcraft 2 can display custom icons why is it protocol violating? icons.bni is used only by classic games. Are you sure that WC3 get product code images from there? They are not alike.

It looks reasonable to completely remove icons.bni and send to a client icons_STAR.bniinstead. And icons should be supported by pvpgn for all games which can display it. (D1, SC. WC2, WC3).

RElesgoe commented 3 years ago

If Warcraft 2 can display custom icons why is it protocol violating?

Because the first field in the chat statstring is supposed to contain the user's client tag / product code, which clients will use to determine how to appropriately display users in chat channels.

icons.bni is used only by classic games. Are you sure that WC3 get product code images from there? They are not alike.

I was wrong, WC3 doesn't use icons.bni, but it probably has a built-in list of icons similar to how D2 has a built-in list of avatars. These 2 clients still need the first field to contain a valid client tag / product code though.

It looks reasonable to completely remove icons.bni and send to a client icons_STAR.bni instead.

It wouldn't work that way. SC requests both of these files and uses them in different ways.

HarpyWar commented 3 years ago

Well, I see that icons.bni is for product code, icons_STAR.bni is for icons. And WC2 downloads only first file but not the second. But what benefits of using a valid product code on a client side to opposite to refuse custom icons functionality?

It wouldn't work that way. SC requests both of these files and uses them in different ways.

I mean send icons_STAR.bni two times (one as original and second as icons.bni). Because there are duplicate product codes in both bni files, so we can abandon icons.bni.

RElesgoe commented 3 years ago

Because D2 and WC3 uses internal files to display other users who are using different products in chat channels, they'll fail to find a product code matching e.g. BOON. So users won't be displayed properly based on what client they're using. Additionally, bot software will also fail to identify what clients other users are using. image image

Custom icon functionality is still possible, it's just that in icons.bni, icons with an icon code are reserved for product codes. The only possible alternative is to set an icon flag. This is done by:

  1. Adding icons with icon flags to icons.bni.
  2. Sending the appropriate user flags in S>C 0x0F SID_CHATEVENT. (Reference for pre-existing flags: https://bnetdocs.org/document/15/chat-flags)

Lastly, I think we should keep both icons.bni and icons_STAR.bni just to sort of emulate official bnet behavior.

HarpyWar commented 3 years ago

Lastly, I think we should keep both icons.bni and icons_STAR.bni just to sort of emulate official bnet behavior.

May be remove product codes from icons_STAR.bni? Duplicated product codes are confusing what is each of the files for.

Actually the problem that you described applies only on D2, because this game does not support icons which can be downloaded from a server. AFAIR I disabled tag replacement for D2XP and D2DV by that reason. For other games admin can add fake tag in icons.bni for every new icon, which is not a product code..

But yes, use flag instead of tag is more correct. This way tags can be replaced to hex values of flags in icons.conf. WC3 uses UI\Widgets\BattleNet\chaticons\iconindex_exp.txt inside icons-WAR3.bni for icons and flags should be supported there (2-d or 3-d column). But I didn't test this:

BOMB 0x00040000     0x00000000 ui\widgets\battlenet\chaticons\bomb.tga

Anyway it would be preferred if you didn't break icon tags until make a working replacement with flags. Currently icons does not work properly neither master or develop branch.

RElesgoe commented 3 years ago

Actually the problem that you described applies only on D2, because this game does not support icons which can be downloaded from a server.

It also applies to WC3, it has a built-in list of icons just like D2 does for avatars. This is why it displays the following icon when it encounters a non-product code in the first field in the chat statstring: image

WC3 uses UI\Widgets\BattleNet\chaticons\iconindex_exp.txt inside icons-WAR3.bni for icons and flags should be supported there (2-d or 3-d column). But I didn't test this:

The icons feature currently works for WC3, so we don't need to worry about setting icon flags for that game.

RElesgoe commented 3 years ago

For other games admin can add fake tag in icons.bni for every new icon, which is not a product code..

The issue is that in order to get D1, WC2, and SC to display icons that 1) are located in icons.bni and 2) have an icon code instead of an icon flag, the icon code must be sent in the first field of the chat statstring. However, WC3 and D2 will fail to display a product icon/avatar.