-
Posts
18 -
Joined
-
Last visited
Content Type
Forums
Profiles
Events
Gallery
Downloads
Articles
Posts posted by Meva
-
-
refresh
-
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)endunevenDiff = 2max_unevenTime = 45max_unevenDiff = 4axisPlayers = {}alliedPlayers = {}unevenTime = 15function et_RunFrame( levelTime )local numAlliedPlayers = table.getn( alliedPlayers )local numAxisPlayers = table.getn( axisPlayers )if numAlliedPlayers >= numAxisPlayers + max_unevenDiff thenlocal 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 thenlocal 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 thenif unevenTime > 0 thenif tonumber( levelTime ) - unevenTime >= max_unevenTime * 1000 thenlocal 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\"" )endelseunevenTime = tonumber( levelTime )endelseif numAxisPlayers >= numAlliedPlayers + unevenDiff thenif unevenTime > 0 thenif tonumber( levelTime ) - unevenTime >= max_unevenTime * 1000 thenlocal 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\"" )endelseunevenTime = tonumber( levelTime )endelseunevenTime = -1endendfunction et_ClientSpawn( clientNum, revived, teamChange, restoreHealth )if teamChange ~= 0 thenlocal team = tonumber( et.gentity_get( clientNum, "sess.sessionTeam" ) )-- these were the teamnumbers prior to the movelocal numAlliedPlayers = table.getn( alliedPlayers )local numAxisPlayers = table.getn( axisPlayers )if team == 1 thenfor i, num in ipairs( alliedPlayers ) doif num == clientNum thentable.remove( alliedPlayers, i )breakendend-- this should not happen but still check for it to avoid doublesfor i, num in ipairs( axisPlayers ) doif num == clientNum thenreturnendend-- make sure a player who (got) moved when teams were uneven doesn't get moved right backif numAlliedPlayers >= numAxisPlayers + unevenDiff thentable.insert( axisPlayers, 1, clientNum )elsetable.insert( axisPlayers, clientNum )endelseif team == 2 thenfor i, num in ipairs( axisPlayers ) doif num == clientNum thentable.remove( axisPlayers, i )breakendendfor i, num in ipairs( alliedPlayers ) doif num == clientNum thenreturnendendif numAxisPlayers >= numAlliedPlayers + unevenDiff thentable.insert( alliedPlayers, 1, clientNum )elsetable.insert( alliedPlayers, clientNum )endelsefor i, num in ipairs( alliedPlayers ) doif num == clientNum thentable.remove( alliedPlayers, i )returnendendfor i, num in ipairs( axisPlayers ) doif num == clientNum thentable.remove( axisPlayers, i )returnendendendendendfunction et_ClientDisconnect( clientNum )for i, num in ipairs( alliedPlayers ) doif num == clientNum thentable.remove( alliedPlayers, i )returnendendfor i, num in ipairs( axisPlayers ) doif num == clientNum thentable.remove( axisPlayers, i )returnendendend -
maybe now it work:
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 -
Hi guys,
I think that found an bug with map voting. When ends map i'm vote for next, than i go to spectator and i can again vote for this same map.
What do you think about this?
On the server was me and one guy.
Video:
https://www.youtube.com/watch?v=pdzOEVfCEQg&feature=youtu.be
-
ok it work! thank you!
-
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)endunevenDiff = 2max_unevenTime = 15max_unevenDiff = 4axisPlayers = {}alliedPlayers = {}unevenTime = 15function et_RunFrame( levelTime )local numAlliedPlayers = table.getn( alliedPlayers )local numAxisPlayers = table.getn( axisPlayers )if numAlliedPlayers >= numAxisPlayers + max_unevenDiff thenlocal 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 thenlocal 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 thenif unevenTime > 0 thenif tonumber( levelTime ) - unevenTime >= max_unevenTime * 1000 thenlocal 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\"" )endelseunevenTime = tonumber( levelTime )endelseif numAxisPlayers >= numAlliedPlayers + unevenDiff thenif unevenTime > 0 thenif tonumber( levelTime ) - unevenTime >= max_unevenTime * 1000 thenlocal 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\"" )endelseunevenTime = tonumber( levelTime )endelseunevenTime = -1endendfunction et_ClientSpawn( clientNum, revived, teamChange, restoreHealth )if teamChange ~= 0 thenlocal team = tonumber( et.gentity_get( clientNum, "sess.sessionTeam" ) )-- these were the teamnumbers prior to the movelocal numAlliedPlayers = table.getn( alliedPlayers )local numAxisPlayers = table.getn( axisPlayers )if team == 1 thenfor i, num in ipairs( alliedPlayers ) doif num == clientNum thentable.remove( alliedPlayers, i )breakendend-- this should not happen but still check for it to avoid doublesfor i, num in ipairs( axisPlayers ) doif num == clientNum thenreturnendend-- make sure a player who (got) moved when teams were uneven doesn't get moved right backif numAlliedPlayers >= numAxisPlayers + unevenDiff thentable.insert( axisPlayers, 1, clientNum )elsetable.insert( axisPlayers, clientNum )endelseif team == 2 thenfor i, num in ipairs( axisPlayers ) doif num == clientNum thentable.remove( axisPlayers, i )breakendendfor i, num in ipairs( alliedPlayers ) doif num == clientNum thenreturnendendif numAxisPlayers >= numAlliedPlayers + unevenDiff thentable.insert( alliedPlayers, 1, clientNum )elsetable.insert( alliedPlayers, clientNum )endelsefor i, num in ipairs( alliedPlayers ) doif num == clientNum thentable.remove( alliedPlayers, i )returnendendfor i, num in ipairs( axisPlayers ) doif num == clientNum thentable.remove( axisPlayers, i )returnendendendendendfunction et_ClientDisconnect( clientNum )for i, num in ipairs( alliedPlayers ) doif num == clientNum thentable.remove( alliedPlayers, i )returnendendfor i, num in ipairs( axisPlayers ) doif num == clientNum thentable.remove( axisPlayers, i )returnendendendAnd doesn't work :< I'm put on other team but can not hear sound... please help me :<
-
ok i'm fix up my problem
This:
"Nick:", .2, 8, "name", 36, 18,
changed to:
"Nick", .2, 8, "limboname", 36, 28, copyCvar limboname name,
and works
-
OK. thanks guys I'm going to fix this problem
-
I tested our menus, which worked correctly when backspacing.
Sorry, but i think that doesn't understand you. Could you explain it?
-
This is a button under ESC in game main menu. When I click this button, it opens me this generator. I removed the nick but does not accept it and server kicked me.
This is my video.
https://www.youtube.com/watch?v=OcP1ExrU3HI&feature=youtu.be
-
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.
-
I find this in silent 0.8.2. Close Topic please
-
-
Problem solved. Mistake was the host side
-
I delete silent 0.8.1 from my server but still i have on computer
-
ehm... I add sielnt 0.8.2 to silent catalog and to my server FTP www/silent and when i was connecting, have transfer 500-900 kb/s... others players too but they are downoad this many times... and at some point must go to page and downloaded from this site.
-
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 42000set sv_allowDownload 1set sv_wwwDownload 1set sv_wwwDlDisconnected 0set sv_wwwBaseURL "http://XXXXX.XXXX.pukawka.pl"set sv_wwwFallbackURL "http://XXXX.XXXX.pukawka.pl"I download silent 0.8.2 twice...
Not All players but most...
Balance Teams Lua.
in Enemy Territory Modding
Posted
thanks dude i will go test it