SmileYzn / CS_PugMod-Archive

CS 1.6 Pickup Game Mod
19 stars 12 forks source link

[Bug] Cvar pug_players causes plugin to add password to empty server #2

Closed 1719calvin closed 9 years ago

1719calvin commented 9 years ago

I extensively tested this to single out this cvar as the cause of the problem. If added to amxx.cfg, the plugin puts a random pass on the server even when it's empty. Also, removing it from amxx.cfg does not remove the problem. The server requires a restart before it's fixed. ( I stopped the process and relaunched it, but a console restart might also work.)

Running updated HLDS beta on linux with amxmodx v 1.8.2. Plugin version 1.1.6

@SmileYzn

SmileYzn commented 9 years ago

Why? Running updated HLDS beta on linux with amxmodx v 1.8.2. Plugin version 1.1.6 This plugins needs amxx 1.8.3-dev and does not touch sv_password convar in any point.

you are using other plugins?

1719calvin commented 9 years ago

It absolutely does touch sv_password. If, say, number of players required to start match is 10, and the max slots on the sv are 12, it will change sv_password to a random value as soon as 10 players have joined. From the code for v1.1.6, this function starting at line 1559.

public CheckFilled() {

    new players = get_playersnum()

    for ( new i = 1 ; i <= gMaxPlayers ; i++ )
    {
        if ( !is_user_connected(i) )
            continue;

        if ( is_user_hltv(i) || is_user_bot(i) )
            players--
    }

    if (players >= get_pcvar_num(cvar_pLeft))
    {
        new rnd = random_num(99, 9999)
        new pass[10]

        num_to_str(rnd, pass, 9)

        set_pcvar_string(cvar_sv_password, pass) 
        client_print(0, print_chat, "%s %L", PREFIX, LANG_PLAYER, "SERVER_PASSWORD_PROTECTED")

        new tokick = players - get_pcvar_num(cvar_pLeft)

        for (new kick; kick<tokick ; kick++)
        {
            new playeract = random(get_pcvar_num(cvar_pLeft))

            while ( !is_user_connected(playeract) || !is_user_bot(playeract) || !is_user_hltv(playeract) )
            {
                playeract = random(get_pcvar_num(cvar_pLeft))
            }

            server_cmd("kick # %d %s %L", get_user_userid(playeract), PREFIX, LANG_PLAYER, "SERVER_FULL")
        }

    }

    return PLUGIN_CONTINUE
}

These are the 3rd party plugins I had added to amxx.cfg. accuracy_fix.amxx admin_spec_esp.amxx invisible_spectator.amxx high_ping_kicker.amxx ad_manager.amxx aimbotdetect.amxx pimpspug.amxx

SmileYzn commented 9 years ago

Again: This is not automix, is my CS PugMod (Originally developed by Rukia).

Omg, se readme.md