Jump to content

Meva

Members
  • Posts

    18
  • Joined

  • Last visited

Posts posted by Meva

  1. Hi, everyone!

     

    I have a question about balancing teams with lua. I have this option on server, but can i excluded bots with this balance? Exactly, when on the server play people(2 on axis and 5 on allies) and bots, balance doesn't work, because all players on the server is 12 (6 on allies and 6 on axis with bots). 

     

    This is my lua code:

     

    modname = "balance"

    version = "0.1"
     
    function et_InitGame(levelTime,randomSeed,restart)
    et.RegisterModname(modname .. " " .. version)
    end
     
    unevenDiff = 2
    max_unevenTime = 45
    max_unevenDiff = 4
     
    axisPlayers = {}
    alliedPlayers = {}
    unevenTime = 15
     
    function et_RunFrame( levelTime )
       local numAlliedPlayers = table.getn( alliedPlayers )
       local numAxisPlayers = table.getn( axisPlayers )
       if numAlliedPlayers >= numAxisPlayers + max_unevenDiff then
          local clientNum = alliedPlayers[ numAlliedPlayers ]
          et.trap_SendConsoleCommand( et.EXEC_APPEND, "putteam " .. clientNum .. " r" )
          et.G_globalSound("lua/playermove.wav")
     et.trap_SendServerCommand(-1, "chat \"balancing teams... " .. et.gentity_get( clientNum, "pers.netname" ) .. "^7 moved to ^1AXIS\"" ) 
       elseif numAxisPlayers >= numAlliedPlayers + max_unevenDiff then
          local clientNum = axisPlayers[ numAxisPlayers ]
          et.trap_SendConsoleCommand( et.EXEC_APPEND, "putteam " .. clientNum .. " b" )
          et.G_globalSound("lua/playermove.wav")
     et.trap_SendServerCommand(-1, "chat \"balancing teams... " .. et.gentity_get( clientNum, "pers.netname" ) .. "^7 moved to ^4ALLIES\"" ) 
       elseif numAlliedPlayers >= numAxisPlayers + unevenDiff then
          if unevenTime > 0 then
             if tonumber( levelTime ) - unevenTime >= max_unevenTime * 1000 then
                local clientNum = alliedPlayers[ numAlliedPlayers ]
                et.trap_SendConsoleCommand( et.EXEC_APPEND, "putteam " .. clientNum .. " r" )
                et.G_globalSound("lua/playermove.wav")
    et.trap_SendServerCommand(-1, "chat \"balancing teams... " .. et.gentity_get( clientNum, "pers.netname" ) .. "^7 moved to ^1AXIS\"" ) 
             end
          else
             unevenTime = tonumber( levelTime )
          end
       elseif numAxisPlayers >= numAlliedPlayers + unevenDiff then
          if unevenTime > 0 then
             if tonumber( levelTime ) - unevenTime >= max_unevenTime * 1000 then
                local clientNum = axisPlayers[ numAxisPlayers ]
                et.trap_SendConsoleCommand( et.EXEC_APPEND, "putteam " .. clientNum .. " b" )
                et.G_globalSound("lua/playermove.wav")
    et.trap_SendServerCommand(-1, "chat \"balancing teams... " .. et.gentity_get( clientNum, "pers.netname" ) .. "^7 moved to ^4ALLIES\"" ) 
             end
          else
             unevenTime = tonumber( levelTime )
          end
       else
          unevenTime = -1
       end
    end
     
    function et_ClientSpawn( clientNum, revived, teamChange, restoreHealth )
       if teamChange ~= 0 then
          local team = tonumber( et.gentity_get( clientNum, "sess.sessionTeam" ) )
          -- these were the teamnumbers prior to the move
          local numAlliedPlayers = table.getn( alliedPlayers )
          local numAxisPlayers = table.getn( axisPlayers )
          if team == 1 then
             for i, num in ipairs( alliedPlayers ) do
                if num == clientNum then
                   table.remove( alliedPlayers, i )
                   break
                end
             end
             -- this should not happen but still check for it to avoid doubles
             for i, num in ipairs( axisPlayers ) do
                if num == clientNum then
                   return
                end
             end
             -- make sure a player who (got) moved when teams were uneven doesn't get moved right back
             if numAlliedPlayers >= numAxisPlayers + unevenDiff then
                table.insert( axisPlayers, 1, clientNum )
             else
                table.insert( axisPlayers, clientNum )
             end
          elseif team == 2 then
             for i, num in ipairs( axisPlayers ) do
                if num == clientNum then
                   table.remove( axisPlayers, i )
                   break
                end
             end
             for i, num in ipairs( alliedPlayers ) do
                if num == clientNum then
                   return
                end
             end
             if numAxisPlayers >= numAlliedPlayers + unevenDiff then
                table.insert( alliedPlayers, 1, clientNum )
             else
                table.insert( alliedPlayers, clientNum )
             end
          else
             for i, num in ipairs( alliedPlayers ) do
                if num == clientNum then
                   table.remove( alliedPlayers, i )
                   return
                end
             end
             for i, num in ipairs( axisPlayers ) do
                if num == clientNum then
                   table.remove( axisPlayers, i )
                   return
                end
             end
          end
       end
    end
     
    function et_ClientDisconnect( clientNum )
       for i, num in ipairs( alliedPlayers ) do
          if num == clientNum then
             table.remove( alliedPlayers, i )
             return
          end
       end
       for i, num in ipairs( axisPlayers ) do
          if num == clientNum then
             table.remove( axisPlayers, i )
             return
          end
       end
    end

     

     

     

  2. maybe now it work:

     

     

     

    modname = "balance"
    version = "0.1"

    function et_InitGame(levelTime,randomSeed,restart)
        et.RegisterModname(modname .. " " .. version)
    end

    unevenDiff = 2
    max_unevenTime = 15
    max_unevenDiff = 4

    axisPlayers = {}
    alliedPlayers = {}
    unevenTime = 15

    function et_RunFrame( levelTime )
        local numAlliedPlayers = table.getn( alliedPlayers )
        local numAxisPlayers = table.getn( axisPlayers )
            if numAlliedPlayers >= numAxisPlayers + max_unevenDiff then
                if et.G_shrubbot_level(clientNum) >= 12 then return end
                local clientNum = alliedPlayers[ numAlliedPlayers ]
                et.trap_SendConsoleCommand( et.EXEC_APPEND, "putteam " .. clientNum .. " r" )
                et.trap_SendServerCommand(-1, "chat \"balancing teams... " .. et.gentity_get( clientNum, "pers.netname" ) .. "^7 moved to ^1AXIS\"" )
            elseif numAxisPlayers >= numAlliedPlayers + max_unevenDiff then
                if et.G_shrubbot_level(clientNum) >= 12 then return end
                local clientNum = axisPlayers[ numAxisPlayers ]
                et.trap_SendConsoleCommand( et.EXEC_APPEND, "putteam " .. clientNum .. " b" )
                et.trap_SendServerCommand(-1, "chat \"balancing teams... " .. et.gentity_get( clientNum, "pers.netname" ) .. "^7 moved to ^4ALLIES\"" )
            elseif numAlliedPlayers >= numAxisPlayers + unevenDiff then
            if unevenTime > 0 then
                if tonumber( levelTime ) - unevenTime >= max_unevenTime * 1000 then
                    if et.G_shrubbot_level(clientNum) >= 12 then return end
                    local clientNum = alliedPlayers[ numAlliedPlayers ]
                    et.trap_SendConsoleCommand( et.EXEC_APPEND, "putteam " .. clientNum .. " r" )
                    et.trap_SendServerCommand(-1, "chat \"balancing teams... " .. et.gentity_get( clientNum, "pers.netname" ) .. "^7 moved to ^1AXIS\"" )
                end
            else
                unevenTime = tonumber( levelTime )
            end
            
            elseif numAxisPlayers
    >= numAlliedPlayers + unevenDiff then
                if unevenTime > 0 then
                    if et.G_shrubbot_level(clientNum) >= 12 then return end
                    if tonumber( levelTime ) - unevenTime >= max_unevenTime * 1000 then
                        local clientNum = axisPlayers[ numAxisPlayers ]
                        et.trap_SendConsoleCommand( et.EXEC_APPEND, "putteam " .. clientNum .. " b" )
                        et.trap_SendServerCommand(-1, "chat \"balancing teams... " .. et.gentity_get( clientNum, "pers.netname" ) .. "^7 moved to ^4ALLIES\"" )
                end
                else
                    unevenTime = tonumber( levelTime )
                end
            else
                unevenTime = -1
    end
    end

    function et_ClientSpawn( clientNum, revived, teamChange, restoreHealth )
    if teamChange ~= 0 then
    local team = tonumber( et.gentity_get( clientNum, "sess.sessionTeam" ) )
    -- these were the teamnumbers prior to the move
    local numAlliedPlayers = table.getn( alliedPlayers )
    local numAxisPlayers = table.getn( axisPlayers )
    if team == 1 then
    for i, num in ipairs( alliedPlayers ) do
    if num == clientNum then
    table.remove( alliedPlayers, i )
    break
    end
    end
    -- this should not happen but still check for it to avoid doubles
    for i, num in ipairs( axisPlayers ) do
    if num == clientNum then
    return
    end
    end
    -- make sure a player who (got) moved when teams were uneven doesn't get moved right back
    if numAlliedPlayers >= numAxisPlayers + unevenDiff then
    table.insert( axisPlayers, 1, clientNum )
    else
    table.insert( axisPlayers, clientNum )
    end
    elseif team == 2 then
    for i, num in ipairs( axisPlayers ) do
    if num == clientNum then
    table.remove( axisPlayers, i )
    break
    end
    end
    for i, num in ipairs( alliedPlayers ) do
    if num == clientNum then
    return
    end
    end
    if numAxisPlayers >= numAlliedPlayers + unevenDiff then
    table.insert( alliedPlayers, 1, clientNum )
    else
    table.insert( alliedPlayers, clientNum )
    end
    else
    for i, num in ipairs( alliedPlayers ) do
    if num == clientNum then
    table.remove( alliedPlayers, i )
    return
    end
    end
    for i, num in ipairs( axisPlayers ) do
    if num == clientNum then
    table.remove( axisPlayers, i )
    return
    end
    end
    end
    end
    end

    function et_ClientDisconnect( clientNum )
    for i, num in ipairs( alliedPlayers ) do
    if num == clientNum then
    table.remove( alliedPlayers, i )
    return
    end
    end
    for i, num in ipairs( axisPlayers ) do
    if num == clientNum then
    table.remove( axisPlayers, i )
    return
    end
    end
    end
  3. Hi, guys :)

    I have balance.lua script and it work yes, but I wanted to add sounds "player move to axis/allies". 

     

    modname = "balance"

    version = "0.1"
     
    function et_InitGame(levelTime,randomSeed,restart)
    et.RegisterModname(modname .. " " .. version)
    end
     
    unevenDiff = 2
    max_unevenTime = 15
    max_unevenDiff = 4
     
    axisPlayers = {}
    alliedPlayers = {}
    unevenTime = 15
     
    function et_RunFrame( levelTime )
       local numAlliedPlayers = table.getn( alliedPlayers )
       local numAxisPlayers = table.getn( axisPlayers )
       if numAlliedPlayers >= numAxisPlayers + max_unevenDiff then
          local clientNum = alliedPlayers[ numAlliedPlayers ]
          et.trap_SendConsoleCommand( et.EXEC_APPEND, "putteam " .. clientNum .. " r" )
          et.trap_SendConsoleCommand( et.EXEC_APPEND, "playsound playermove.wav\n" )
          et.trap_SendServerCommand(-1, "chat \"balancing teams... " .. et.gentity_get( clientNum, "pers.netname" ) .. "^7 moved to ^1AXIS\"" ) 
       elseif numAxisPlayers >= numAlliedPlayers + max_unevenDiff then
          local clientNum = axisPlayers[ numAxisPlayers ]
          et.trap_SendConsoleCommand( et.EXEC_APPEND, "putteam " .. clientNum .. " b" )
    et.trap_SendConsoleCommand( et.EXEC_APPEND, "playsound playermove.wav\n" )
     et.trap_SendServerCommand(-1, "chat \"balancing teams... " .. et.gentity_get( clientNum, "pers.netname" ) .. "^7 moved to ^4ALLIES\"" ) 
       elseif numAlliedPlayers >= numAxisPlayers + unevenDiff then
          if unevenTime > 0 then
             if tonumber( levelTime ) - unevenTime >= max_unevenTime * 1000 then
                local clientNum = alliedPlayers[ numAlliedPlayers ]
                et.trap_SendConsoleCommand( et.EXEC_APPEND, "putteam " .. clientNum .. " r" )
    et.trap_SendConsoleCommand( et.EXEC_APPEND, "playsound playermove.wav\n" )
    et.trap_SendServerCommand(-1, "chat \"balancing teams... " .. et.gentity_get( clientNum, "pers.netname" ) .. "^7 moved to ^1AXIS\"" ) 
             end
          else
             unevenTime = tonumber( levelTime )
          end
       elseif numAxisPlayers >= numAlliedPlayers + unevenDiff then
          if unevenTime > 0 then
             if tonumber( levelTime ) - unevenTime >= max_unevenTime * 1000 then
                local clientNum = axisPlayers[ numAxisPlayers ]
                et.trap_SendConsoleCommand( et.EXEC_APPEND, "putteam " .. clientNum .. " b" )
    et.trap_SendConsoleCommand( et.EXEC_APPEND, "playsound playermove.wav\n" )
    et.trap_SendServerCommand(-1, "chat \"balancing teams... " .. et.gentity_get( clientNum, "pers.netname" ) .. "^7 moved to ^4ALLIES\"" ) 
             end
          else
             unevenTime = tonumber( levelTime )
          end
       else
          unevenTime = -1
       end
    end
     
    function et_ClientSpawn( clientNum, revived, teamChange, restoreHealth )
       if teamChange ~= 0 then
          local team = tonumber( et.gentity_get( clientNum, "sess.sessionTeam" ) )
          -- these were the teamnumbers prior to the move
          local numAlliedPlayers = table.getn( alliedPlayers )
          local numAxisPlayers = table.getn( axisPlayers )
          if team == 1 then
             for i, num in ipairs( alliedPlayers ) do
                if num == clientNum then
                   table.remove( alliedPlayers, i )
                   break
                end
             end
             -- this should not happen but still check for it to avoid doubles
             for i, num in ipairs( axisPlayers ) do
                if num == clientNum then
                   return
                end
             end
             -- make sure a player who (got) moved when teams were uneven doesn't get moved right back
             if numAlliedPlayers >= numAxisPlayers + unevenDiff then
                table.insert( axisPlayers, 1, clientNum )
             else
                table.insert( axisPlayers, clientNum )
             end
          elseif team == 2 then
             for i, num in ipairs( axisPlayers ) do
                if num == clientNum then
                   table.remove( axisPlayers, i )
                   break
                end
             end
             for i, num in ipairs( alliedPlayers ) do
                if num == clientNum then
                   return
                end
             end
             if numAxisPlayers >= numAlliedPlayers + unevenDiff then
                table.insert( alliedPlayers, 1, clientNum )
             else
                table.insert( alliedPlayers, clientNum )
             end
          else
             for i, num in ipairs( alliedPlayers ) do
                if num == clientNum then
                   table.remove( alliedPlayers, i )
                   return
                end
             end
             for i, num in ipairs( axisPlayers ) do
                if num == clientNum then
                   table.remove( axisPlayers, i )
                   return
                end
             end
          end
       end
    end
     
    function et_ClientDisconnect( clientNum )
       for i, num in ipairs( alliedPlayers ) do
          if num == clientNum then
             table.remove( alliedPlayers, i )
             return
          end
       end
       for i, num in ipairs( axisPlayers ) do
          if num == clientNum then
             table.remove( axisPlayers, i )
             return
          end
       end
    end

    And doesn't work :< I'm put on other team but can not hear sound... please help me :<

  4. Hi,

    I'm doing on the server nick generator and when i want to change my nick in this generator, (I remove the nick) server kicked me. 

     

    Reason:

    http://up.lamarr.pl/i3/069839ba55b4b3dea06c0f5436f42867.jpg

     

     

    This is problem with the bad server configurations or silent mod?

    Other silent servers which have the nick name generator, had this same problem as me.

  5. Hello,

     

    I add new update on the server and many people have problems with connecting. Exactly, they are connect... suddenly ET.exe are close, and open page with FTP server. Or downloads this silent 0.8.2 many time. 

     

    This is problem with server? Or with players settings?

     

     

    set sv_maxRate 45000

    set sv_dl_maxRate 42000
    set sv_allowDownload 1
    set sv_wwwDownload 1
    set sv_wwwDlDisconnected 0
    set sv_wwwFallbackURL "http://XXXX.XXXX.pukawka.pl"

     

    I download silent 0.8.2 twice...

     

     

    Not All players but most...

×
×
  • Create New...