Kxnrl / Mapchooser-Redux

Mapchooser - Redux
GNU General Public License v3.0
32 stars 10 forks source link

[BUG] Failed to GetMapTimeLeft() without any apparent reason #35

Closed olokos closed 2 years ago

olokos commented 4 years ago

Bug picture

Additionally when used on surf server it generates "null" automatically for each map, which doesn't look right.

Nulls

Other than that, great work, thank you!

Kxnrl commented 4 years ago

null -> the map description defined in mapdata.kv Failed to get timeleft is no problem, it will display on map start?

olokos commented 4 years ago

Well, mapdata is automatically generated, isn't it? It seems to be a bit of a problem, since !timeleft doesn't work and every map is set to 1 hour.

Not sure how much this is a problem on my side and how much is it on the plugins side, really, but with UMC mapchooser I could have my map times based on tiers, !timeleft used to work (probably) and definitely there were no nulls in nominate.

Kxnrl commented 4 years ago

mapdata is automatically generate on each mapstart. did you use mp_maxrounds convar?

Kxnrl commented 4 years ago

easy to check that with change mp_timelimit , if console print failed, write to me.

olokos commented 4 years ago

I haven't used any convars apart from those set as defaults to be honest.

Kxnrl commented 4 years ago

mp convars define in gamemode{your gamemod}_{server?}.cfg by default

olokos commented 4 years ago

I'm more concerned by the GetMapTimeLeft() issue than anything else, really, as this bug is constantly appearing in console. 😄

Kxnrl commented 4 years ago

of course, but tell me about mp_maxrounds and mp_timelimit, I can help you about that. because MCR does not work with round limit mode. just for time limit mode.

Kxnrl commented 4 years ago

when appearing in console, type timeleft and press enter, check the output.

olokos commented 4 years ago

I mean my server has been running for hours without hibernating and it's still on the initial map :( timeleft in console shows a valid time https://prnt.sc/s49rlj But !timeleft does nothing, neither in char nor in server console.

mp_maxrounds 1 mp_timelimit 60

Having that said, umc mapchooser has the awesome ability to manually set the mp_timelimit based on the map tier, which is set manually by hand in its config files.

But umc mapchooser keeps loading from files so !nominate lags server and it actually doesn't add anything automatically, so yeah, I'll leave it to the past. 😄

My server is @ https://kiepownica.pl

Kxnrl commented 4 years ago

may be something broken that.

cheesea3 commented 4 years ago

I mean my server has been running for hours without hibernating and it's still on the initial map :( timeleft in console shows a valid time https://prnt.sc/s49rlj But !timeleft does nothing, neither in char nor in server console.

mp_maxrounds 1 mp_timelimit 60

Having that said, umc mapchooser has the awesome ability to manually set the mp_timelimit based on the map tier, which is set manually by hand in its config files.

But umc mapchooser keeps loading from files so !nominate lags server and it actually doesn't add anything automatically, so yeah, I'll leave it to the past. 😄

My server is @ https://kiepownica.pl

Late, however as aforementioned by @Kxnrl, the plugin is not compatible with RoundLimit and so you should try setting the CONVAR 'mp_maxrounds 1' to 0 in csgo/cfg/server.cfg. In your latest screenshot, it shows that the time left until the next map is dependent on either TimeLimit or MaxRound, whichever comes first.

For an extra step, add mp_ignore_round_win_conditions 1, this allows the mapchooser plugin to change the map without the condition of the round getting in the way.

The plugin is loosely coupled and so if you're having a problem with 'GetMapTimeLeft()' then you should double-check to see if you have 'forcemapend_redux.smx', which is the one that references that Sourcemod function.

My last thoughts are that you might not even have an issue. Either you have rounds and times going concurrently, or the GetMapTimeLeft function is returning as infinite since there are no players for the server to process any frames. The latter would only be the case if you and Mettbrochen were the first ones to connect and the server was empty prior to that error in your console.

Hope this helps, I confirmed the plugin to be working on my dev server with a default configuration in addition to the CONVAR changes I brought up above.

olokos commented 4 years ago

I did use forcemapend_redux.smx, but I guess this mapchooser isn't that compatible, so I've decided to choose another.

Not sure if we should close this issue or not, as this is still a potential enhancement in the future

Kxnrl commented 2 years ago

Fixed at latest version.