Open jzy-chitong56 opened 2 months ago
use old we make map , use REF run the map
if GetBJMaxPlayers() < 20 then
call DisplayTimedTextToPlayer(Player(0),0,0,15,"0")
else
call DisplayTimedTextToPlayer(Player(0),0,0,15,"1")
endif
if JASS_MAX_ARRAY_SIZE > 8192 then
call DisplayTimedTextToPlayer(Player(0),0,0,15,"a")
else
call DisplayTimedTextToPlayer(Player(0),0,0,15,"b")
endif
AMAI always requires maps to use latest patch data for that version. Custom maps that haven't overridden that will possibly have issues. I can't remember if its actually possible to load an old common.j as is usually loaded from the main war3 MPQ itself.
If GetBJMaxPlayers is supposed to be more than 20 then this condition is incorrect? "GetPlayerController(Player(12)) != MAP_CONTROL_CREEP"
Or is it the skillfix that needs changing so its only activated for the same condition rather than array?
native GetBJMaxPlayers only can run 1.29+ or 1.32+ but old WE make map can run 1.29+ when the map run on 1.29+ and use REF AMAI-- must use REF AMAI , not use class TFT AMAI , and Not related to latest patch version, will have bug like I siad
REF AMAI the GetBJMaxPlayers is native
Can you attach the example map?
231.zip
use 1.28 WE make , but use GetBJMaxPlayers()
so old war3 cannot run
when you run on 1.29+ war3 , the GetBJMaxPlayers() will tell you < 20
This is also the case when other old WE make maps using REF AMAI
You provide an installer that the player will install, and the player only knows his version of Warcraft 3, but he doesn't know which version of the map is made with WE
see war3map.j
Ok, so yes native returns less players (presumably 1.29 hardcoded player counts within the blizzard.j and then they fixed the native later) but they shouldn't be using the REF AMAI anyway on that version as thats designed for 1.36.
So probrably another reason not to install on 1.29. But TFT version should in theory behave as it overrides the native. I don't think this is easily fixable without overriding the native in REF to always be 24 players.
In the map package I provide, I will use different WE to save the map separately according to the version, and delete the custom settings of the map as I need to swipe the W3C item icon
When players install it themselves, it becomes difficult to handle as they may not necessarily read the instructions or need to handle the map themselves
A sad phenomenon is that if they believe that a certain version of AMAI has greater difficulty in AI, they only recognize that version, even if that version has many bugs
So when this situation affects the difficulty, it is difficult to convince players to use the new version, which is very unfriendly to developers
Not much can be done in AMAI though, its an issue with the maps themselves, someone on hive done some hacks to make maps that worth in both cases https://www.hiveworkshop.com/threads/success-hybrid-12-24-player-map-backwards-compatible-1-24-1-28-5-1-31.339722/ but has to be applied on the maps themselves.
Try to check the game status of player 24, determine if the map belongs to the old editor's creation, then copy the neutral player variable, and finally add neutral player judgment in all places where this function is used
Because the old version has accumulated a lot of maps for a long time, I will also directly add the classic version of the map to the REF map package, and these maps cannot be ignored
even if run on 1.29+ , if the map make by old WE(1.00~1.28.x) , then the map max player still is 16 , but the api on 1.29+ will return 24 (maybe you can test) , then
IsPlayerEnemy
andally
will checkNEUTRAL PLAYER
but player not know make the map 's WE ver , so If there is a problem, it is difficult to locate it
This means that using the upper limit of the array to determine may also be inaccurate