Jump to content

Leaderboard

Popular Content

Showing content with the highest reputation since 09/11/10 in all areas

  1. Well, I have banned few proxies on my servers. Just thought to share with other admins so they can also pre-ban cheaters, trouble makers, etc. Regular players don't use proxies so they wouldn't be banned on your servers. How to use: Just copy paste in your shrubbot.cfg above [command] block. [subnetban] subnet = 199.255.209.* reason = Try More1 made = 01/01/15 09:38:03 expires = 0 banner = console [subnetban] subnet = 199.255.210.* reason = Try More2 made = 01/01/15 09:38:03 expires = 0 banner = console [subnetban] subnet = 173.234.216.* reason = Try More3 made = 01/01/15 09:38:03 expires = 0 banner = console [subnetban] subnet = 173.208.*.* reason = Try More4 made = 01/01/15 09:38:03 expires = 0 banner = console [subnetban] subnet = 69.57.161.* reason = Try More5 made = 01/01/15 09:38:03 expires = 0 banner = console [subnetban] subnet = 184.75.208.* reason = Try More6 made = 01/01/15 09:38:03 expires = 0 banner = console [subnetban] subnet = 184.75.209.* reason = Try More7 made = 01/01/15 09:38:03 expires = 0 banner = console [subnetban] subnet = 184.75.212.* reason = Try More8 made = 01/01/15 09:38:03 expires = 0 banner = console [subnetban] subnet = 184.75.220.* reason = Try More9 made = 01/01/15 09:38:03 expires = 0 banner = console [subnetban] subnet = 184.75.221.* reason = Try More10 made = 01/01/15 09:38:03 expires = 0 banner = console [subnetban] subnet = 184.75.222.* reason = Try More11 made = 01/01/15 09:38:03 expires = 0 banner = console [subnetban] subnet = 184.75.223.* reason = Try More12 made = 01/01/15 09:38:03 expires = 0 banner = console [subnetban] subnet = 173.234.217.* reason = Try More13 made = 01/01/15 09:38:03 expires = 0 banner = console [subnetban] subnet = 173.234.218.* reason = Try More14 made = 01/01/15 09:38:03 expires = 0 banner = console [subnetban] subnet = 173.234.219.* reason = Try More15 made = 01/01/15 09:38:03 expires = 0 banner = console [subnetban] subnet = 198.136.63*.* reason = Try More16 made = 01/01/15 09:38:03 expires = 0 banner = console [subnetban] subnet = 198.136.62*.* reason = Try More17 made = 01/01/15 09:38:03 expires = 0 banner = console [subnetban] subnet = 173.198.19*.* reason = Try More18 made = 01/01/15 09:38:03 expires = 0 banner = console [subnetban] subnet = 173.198.20*.* reason = Try More19 made = 01/01/15 09:38:03 expires = 0 banner = console [subnetban] subnet = 173.198.21*.* reason = Try More20 made = 01/01/15 09:38:03 expires = 0 banner = console [subnetban] subnet = 173.198.22*.* reason = Try More21 made = 01/01/15 09:38:03 expires = 0 banner = console [subnetban] subnet = 173.198.23*.* reason = Try More22 made = 01/01/15 09:38:03 expires = 0 banner = console [subnetban] subnet = 173.198.24*.* reason = Try More23 made = 01/01/15 09:38:03 expires = 0 banner = console [subnetban] subnet = 173.198.25*.* reason = Try More24 made = 01/01/15 09:38:03 expires = 0 banner = console [subnetban] subnet = 67.231.25*.* reason = Try More25 made = 01/01/15 09:38:03 expires = 0 banner = console [subnetban] subnet = 67.231.24*.* reason = Try More26 made = 01/01/15 09:38:03 expires = 0 banner = console [subnetban] subnet = 199.114.22*.* reason = Try More27 made = 01/01/15 09:38:03 expires = 0 banner = console [subnetban] subnet = 199.114.23*.* reason = Try More28 made = 01/01/15 09:38:03 expires = 0 banner = console [subnetban] subnet = 89.233.104.* reason = Try More29 made = 01/01/15 09:38:03 expires = 0 banner = console [subnetban] subnet = 216.119.14*.* reason = Try More30 made = 01/01/15 09:38:03 expires = 0 banner = console [subnetban] subnet = 216.119.15*.* reason = Try More31 made = 01/01/15 09:38:03 expires = 0 banner = console [subnetban] subnet = 50.7.1.* reason = Try More32 made = 01/01/15 09:38:03 expires = 0 banner = console [subnetban] subnet = 74.122.19*.* reason = Try More34 made = 01/01/15 09:38:03 expires = 0 banner = console [subnetban] subnet = 68.232.191.* reason = Try More35 made = 01/01/15 09:38:03 expires = 0 banner = console [subnetban] subnet = 68.232.190.* reason = Try More36 made = 01/01/15 09:38:03 expires = 0 banner = console [subnetban] subnet = 68.232.18*.* reason = Try More37 made = 01/01/15 09:38:03 expires = 0 banner = console [subnetban] subnet = 68.232.17*.* reason = Try More38 made = 01/01/15 09:38:03 expires = 0 banner = console [subnetban] subnet = 68.232.16*.* reason = Try More39 made = 01/01/15 09:38:03 expires = 0 banner = console [subnetban] subnet = 109.201.152.* reason = Try More40 made = 01/01/15 09:38:03 expires = 0 banner = console [subnetban] subnet = 192.210.143.* reason = Try More41 made = 01/01/15 09:38:03 expires = 0 banner = console [subnetban] subnet = 192.210.4*.* reason = Try More42 made = 01/01/15 09:38:03 expires = 0 banner = console [subnetban] subnet = 192.210.5*.* reason = Try More43 made = 01/01/15 09:38:03 expires = 0 banner = console [subnetban] subnet = 192.210.6*.* reason = Try More44 made = 01/01/15 09:38:03 expires = 0 banner = console [subnetban] subnet = 173.231.1.* reason = Try More45 made = 01/01/15 09:38:03 expires = 0 banner = console [subnetban] subnet = 173.231.2.* reason = Try More46 made = 01/01/15 09:38:03 expires = 0 banner = console [subnetban] subnet = 173.231.3.* reason = Try More47 made = 01/01/15 09:38:03 expires = 0 banner = console [subnetban] subnet = 173.231.4.* reason = Try More48 made = 01/01/15 09:38:03 expires = 0 banner = console [subnetban] subnet = 173.231.5.* reason = Try More49 made = 01/01/15 09:38:03 expires = 0 banner = console [subnetban] subnet = 173.231.6.* reason = Try More50 made = 01/01/15 09:38:03 expires = 0 banner = console [subnetban] subnet = 173.231.7.* reason = Try More51 made = 01/01/15 09:38:03 expires = 0 banner = console [subnetban] subnet = 173.231.8.* reason = Try More52 made = 01/01/15 09:38:03 expires = 0 banner = console [subnetban] subnet = 173.231.9.* reason = Try More53 made = 01/01/15 09:38:03 expires = 0 banner = console [subnetban] subnet = 173.231.10.* reason = Try More54 made = 01/01/15 09:38:03 expires = 0 banner = console [subnetban] subnet = 173.231.11.* reason = Try More55 made = 01/01/15 09:38:03 expires = 0 banner = console [subnetban] subnet = 173.231.12.* reason = Try More56 made = 01/01/15 09:38:03 expires = 0 banner = console [subnetban] subnet = 67.213.218.* reason = Try More57 made = 01/01/15 09:38:03 expires = 0 banner = console [subnetban] subnet = 162.253.128.* reason = Try More58 made = 01/01/15 09:38:03 expires = 0 banner = console [subnetban] subnet = 162.253.129.* reason = Try More59 made = 01/01/15 09:38:03 expires = 0 banner = console [subnetban] subnet = 162.253.130.* reason = Try More60 made = 01/01/15 09:38:03 expires = 0 banner = console [subnetban] subnet = 162.253.131.* reason = Try More61 made = 01/01/15 09:38:03 expires = 0 banner = console [subnetban] subnet = 46.16.32.* reason = Try More62 made = 01/01/15 09:38:03 expires = 0 banner = console [subnetban] subnet = 46.16.33.* reason = Try More63 made = 01/01/15 09:38:03 expires = 0 banner = console [subnetban] subnet = 46.16.34.* reason = Try More64 made = 01/01/15 09:38:03 expires = 0 banner = console [subnetban] subnet = 46.16.35.* reason = Try More65 made = 01/01/15 09:38:03 expires = 0 banner = console [subnetban] subnet = 89.233.105.* reason = Try More66 made = 01/01/15 09:38:03 expires = 0 banner = console [subnetban] subnet = 89.233.106.* reason = Try More67 made = 01/01/15 09:38:03 expires = 0 banner = console [subnetban] subnet = 89.233.107.* reason = Try More68 made = 01/01/15 09:38:03 expires = 0 banner = console [subnetban] subnet = 89.233.108.* reason = Try More69 made = 01/01/15 09:38:03 expires = 0 banner = console [subnetban] subnet = 89.233.109.* reason = Try More70 made = 01/01/15 09:38:03 expires = 0 banner = console [subnetban] subnet = 89.233.110.* reason = Try More71 made = 01/01/15 09:38:03 expires = 0 banner = console [subnetban] subnet = 89.233.111.* reason = Try More72 made = 01/01/15 09:38:03 expires = 0 banner = console [subnetban] subnet = 8.33.136.* reason = Try More73 made = 01/01/15 09:38:03 expires = 0 banner = console [subnetban] subnet = 95.141.20.* reason = Try More74 made = 07/01/15 09:38:03 expires = 0 banner = console [subnetban] subnet = 79.141.16*.* reason = Try More75 made = 07/01/15 09:39:03 expires = 0 banner = console [subnetban] subnet = 93.190.14*.* reason = Try More76 made = 07/01/15 09:39:03 expires = 0 banner = console [subnetban] subnet = 5.254.9*.* reason = Try More77 made = 07/01/15 09:39:03 expires = 0 banner = console [subnetban] subnet = 5.101.14*.* reason = Try More78 made = 07/01/15 09:39:03 expires = 0 banner = console [subnetban] subnet = 84.19.16*.* reason = Try More79 made = 07/02/15 09:39:03 expires = 0 banner = console [subnetban] subnet = 185.31.15*.* reason = Try More80 made = 07/02/15 09:39:03 expires = 0 banner = console [subnetban] subnet = 188.13*.*.* reason = Try More81 made = 07/07/15 09:39:03 expires = 0 banner = console [subnetban] subnet = 151.236.5.* reason = Try More82 made = 07/07/15 09:39:03 expires = 0 banner = console [subnetban] subnet = 87.236.19*.* reason = Try More83 made = 07/07/15 09:39:03 expires = 0 banner = console [subnetban] subnet = 46.246.*.* reason = Try More84 made = 07/07/15 09:39:03 expires = 0 banner = console [subnetban] subnet = 176.9.1*.* reason = Try More85 made = 07/10/15 09:39:03 expires = 0 banner = console [subnetban] subnet = 46.19.139.* reason = Try More86 made = 08/10/15 09:39:03 expires = 0 banner = console
    7 points
  2. I managed to makeshift my way to lua 5.0 compatibility, in a separate branch of LESM 2.7.5 Basically was able to get ingame and do commands with no errors now. Haven't tested all the features, but I don't think I will run into anything too surprising now, possibily a few things that will not be fully functional. But I am pretty excited for the future
    7 points
  3. Purple

    ET Server Series!

    I've started on a basic ET server configuration series for people. I will continue to update this topic with more and more videos (p.s sorry for the low quality videos going to use something else for recording <3) $part 1 https://www.youtube.com/watch?v=ewwoq1ZUo-Y&feature=youtu.be
    6 points
  4. Playernames without colorcodes would definitely improve readability of admin and cheat logs.
    5 points
  5. This is a great idea. I can provide a simple example of a shrubbot command working with LUA - we have a bunch of working scripts that use this method. You can use this if you want. For the purposes of this example, the command is mycommand. It will be executed when the uses enters !mycommand in the console, assuming that player has been assigned level 2 or higher shrubbot level. 1. Create your command in the shrubbot file. Open your shrubbot.cfg file (in silent\database directory) and add the following block: [command] command = mycommand exec = mycommand [i] desc = Does something cool for people over level 2 syntax = levels = 2 3 4 5 2. Create a LUA file in your silent directory on the server. Call it mycommand.lua (or whatever name you want to give it). Begin with the following stub: function et_ConsoleCommand(command) -- if the user types !mycommand in the console if et.trap_Argv(0) == "mycommand" then -- Do your custom processing here return 1 -- Tells silEnT that this method handled this command end return 0 -- Tells silEnT that this file did not handle this command end 3. Update your server config to load the LUA file. Add or modify the following server var (lua_modules): set lua_modules "mycommand.lua" 4. Restart your server. Assuming you are shrubbot level 2 or higher, !mycommand will execute and do cool stuff.
    4 points
  6. Like solar and Dragonji already pointed out, ETPro sourcecode is not available. But I will add as a representative of the silEnT mod team, that even if ETPro source code would be available, there would be no motivation for the silEnT mod team to add features to it. If we would do anything with it, we would just look for things we could use to improve our mod.
    4 points
  7. heh, you just assume Petty arguments aside, I can share it here for you or anyone else who wants to do custom sounds this way. The advantage of this is that you can restrict certain sounds by shrubbot level. We use this as a small benefit for regulars, vip regulars and members. In full disclosure, another member of IoW wrote these scripts, so I can't really help you if things aren't working or this is poorly written or wrong or causes your server to crash. Use at your own risk! All I know is, it works... First you need formatting.lua. I think it was supposed to be a general purpose utility script that is shared by other scripts. function makeDisplayString(text, color, length, alignment) -- Initialize display string local displayString -- Get the display length of the text local textDisplayLength = displayLength(text) -- If the text display length fits in the desired display length if textDisplayLength <= length then -- Create enough padding to make the text the correct length for display local padding = "" for i = 1, length - textDisplayLength do padding = padding .. ' ' end -- If alignment is set to centered if alignment == "center" and string.len(padding) >= 2 then -- Find the middle of the padding and put each half on one side of the string local paddingSplitPoint = math.floor(string.len(padding) / 2) displayString = string.sub(padding, 1, paddingSplitPoint) .. text .. string.sub(padding, paddingSplitPoint + 1) -- Otherwise, if alignment was set to right elseif alignment == "right" then -- Put the padding at the beginning of the string displayString = padding .. text else -- Otherwise add the padding to the end of the string (left aligned) displayString = text .. padding end -- If the text is too big to fit in the desired display length else -- If the display length was specified as a very low number (so can't display the text properly) if length <= 3 then -- Fill the display length with dots displayString = "" for i = 1, length do displayString = displayString .. '.' end -- Otherwise, the display length has enough space to show part of the text else -- Create a table to hold parts of the text (chunks beginning with a color code [if possible]) local textTable = {} -- Split up the text into color coded pieces until there is no more text local moreText = true while moreText do -- Try to find the first occurence of a color code local firstColorCodeLocation = string.find(text, "%^[^%^]") -- Initialize text part local textPart -- If there are no color codes in the text if not firstColorCodeLocation then -- Set the text part to the entire text and specify that there is no more text to add textPart = text moreText = false -- Otherwise, a color code was found else -- If the first color code is not at the beginning of the text if firstColorCodeLocation > 1 then -- Set the text part to the text leading up to the first color code textPart = string.sub(text, 1, firstColorCodeLocation - 1) -- Otherwise, the first color code is at the beginning of the text else -- Attempt to find the second color code local secondColorCodeLocation = string.find(text, "%^[^%^]", firstColorCodeLocation + 2) -- If the second color code is found if secondColorCodeLocation then -- Set the text part to be the text leading up to the second color code (including the first one) textPart = string.sub(text, 1, secondColorCodeLocation - 1) else -- Otherwise, set the text part to the entire remaining text and specify that there is no more text to add textPart = text moreText = false end end -- After determining a text part for the table remove that part from the text text = string.sub(text, string.len(textPart) + 1) end -- Add the text part to the table table.insert(textTable, textPart) end -- Set the amount of text needed to fill the desired display length (not including the ellipses) local displayTextNeeded = length - 3 -- Initialize the display string that will hold the display text displayString = "" -- While more text is needed while displayTextNeeded > 0 do -- Get the next text part from the table and remove the table entry for it local nextTextPart = textTable[1] table.remove(textTable, 1) -- If the text part begins with a color code if string.find(nextTextPart, "%^[^%^]") then -- Get the amount of text needed from the text part (or as much as possible) and update the text needed nextTextPart = string.sub(nextTextPart, 1, displayTextNeeded + 2) displayTextNeeded = displayTextNeeded - (string.len(nextTextPart) - 2) -- Otherwise, there is no color code in the text part else -- Get the amount of text needed from the text part (or as much as possible) and update the text needed nextTextPart = string.sub(nextTextPart, 1, displayTextNeeded) displayTextNeeded = displayTextNeeded - string.len(nextTextPart) end -- Add the text part to the display string displayString = displayString .. nextTextPart end -- Now that no more text is needed, add ellipses to show that it didn't fit displayString = displayString .. colorString("...", color) end end displayString = colorString(displayString, color) -- return the formatted string return displayString end function colorString(text, color) if color then -- If text does not begin with a color code if string.find(text, "%^[^%^]") ~= 1 then -- Add the color code to the beginning of the text text = '^' .. color .. text end end -- Return text with color code return text end function displayLength(text) -- Initialize the display length to the full length of the text local textDisplayLength = string.len(text) -- Loop through each color code for colorCode in string.gmatch(text, "%^[^%^]") do -- Subtract the color code characters from the display length textDisplayLength = textDisplayLength - string.len(colorCode) end return textDisplayLength end function makeLine(character, length) -- Initialize the line string local line = "" -- Add characters until the string is as long as specified for i = 1, length do line = line .. character end -- Return the print line return line end function trim(s, side) -- Initialize the number of spaces removed to 0 local i = 0 -- If the right side was not specified if side ~= 'r' then -- While there are spaces at the beginning of the string while string.find(s, "^%s") do -- Remove the first space and increment counter s = string.gsub(s, "^%s", "") i = i + 1 end end -- If the left side was not specified if side ~= 'l' then -- While there are spaces at the end of the string while string.find(s, "%s$") do -- Remove the last space and increment counter s = string.gsub(s, "%s$", "") i = i + 1 end end -- Return the trimmed string and the amount of spaces removed return s, i end function printETLine(clientNum, text) -- Print the specified text into the specified client's console if clientNum ~= "[i]" then et.trap_SendServerCommand(clientNum, 'print "' .. text .. '\n"') else et.G_Print( text ) end end function printMessage(clientNum, text, messageType) -- Print the specified text into the specified client's console if clientNum ~= "[i]" then et.trap_SendServerCommand(clientNum, messageType .. ' "' .. text .. '"') else et.G_Print( text ) end end Then playsound.lua contains the command implementation require("formatting") -- Initialize a table to hold all possible sounds soundTable = {} -- Initialize a table to hold all players playsound cvar values playsoundCvarTable = {} function et_InitGame(levelTime, randomSeed, restart) -- Read sounds into soundTable local configFile, length = et.trap_FS_FOpenFile("playsound.cfg", et.FS_READ) -- If there were no errors opening the file if length ~= -1 then -- Read data from config file and close it local soundData = et.trap_FS_Read(configFile, length) et.trap_FS_FCloseFile(configFile) -- For each sound block in config file for soundBlock in string.gmatch(soundData, "[%w%-_]+[%s\n\r]+%b{}") do -- Get the sound command name local sound = string.match(soundBlock, "[%w%-_]+") -- Initialize parameter table for the sound command local soundParameterTable = {} -- Get level required from the sound block soundParameterTable["level"] = tonumber(string.sub(string.match(soundBlock, "level:[%d_]+"), 7)) -- Get a list of sound filenames from the sound block local soundFilenameList = {} for soundFilenameLine in string.gmatch(soundBlock, "sound:[%w%-_]+.wav") do local soundFilename = string.sub(soundFilenameLine, 7) table.insert(soundFilenameList, soundFilename) end soundParameterTable["sounds"] = soundFilenameList -- Add the sound parameters to the sound table soundTable[string.lower(sound)] = soundParameterTable end end end function et_CvarValue(clientNum, cvar, value) -- Add the cvar value to the script cvar table playsoundCvarTable[clientNum][cvar] = value end function et_ClientConnect(clientNum, firstTime, isBot) -- Querry server to get cvar value et.G_QueryClientCvar(clientNum, "playsound_method") -- Initialize the playsound_method cvar to nil since we do not know the value yet local clientCvarValueTable = {} -- Add client to the cvar table playsoundCvarTable[clientNum] = clientCvarValueTable -- Return nil to indicate that the player was not rejected by this function return nil end function et_ClientDisconnect(clientNum) -- Remove the player from the playsound cvar table playsoundCvarTable[clientNum] = nil end function et_ConsoleCommand(command) -- If client executed play command from console if string.lower(et.trap_Argv(0)) == "play" then -- If there were at least 3 parameters (including command name) if et.trap_Argc() >= 3 then -- Get client's admin level local clientNum=0 local clientLevel=0 if et.trap_Argv(1) == "[i]" then -- When CONSOLE executes this command, there is no clientNum. So we force the value to 50 -- Avoids a server crash, which is always good clientLevel = 50 else clientNum = et.trap_Argv(1) clientLevel = et.G_shrubbot_level(clientNum) end -- Get sound client passed as a parameter local sound = et.trap_Argv(2) -- Get the parameter table for the requested sound local soundParameterTable = soundTable[string.lower(sound)] -- If the sound exists if soundParameterTable then -- Get the level required to play the sound local level = soundParameterTable["level"] -- If the client has high enough level if clientLevel >= level then -- Choose a random sound from the parameters local soundFilename = soundParameterTable["sounds"][math.random(# soundParameterTable["sounds"])] -- -- Play the sound -- local soundPath = "sound/playsound/" .. soundFilename -- -- et.trap_SendConsoleCommand(et.EXEC_NOW, soundCommand) -- et.G_globalSound(soundPath) -- Loop through the clients and play sound based on their cvar playsound_method for slot, clientCvarValueTable in pairs(playsoundCvarTable) do local playsoundMethod = clientCvarValueTable["playsound_method"] or "sound" if playsoundMethod == "sound" then -- Play the sound for the client local soundPath = "sound/playsound/" .. soundFilename local soundIndex = et.G_SoundIndex(soundPath) et.G_ClientSound(slot, soundIndex) end if playsoundMethod == "text" then local soundText = soundParameterTable["text"] -- Send message to the client showing the text version of the sound command printETLine(slot, soundText) printETLine(slot, "test") end end else -- Otherwise warn client that they do not have high enough level printETLine(clientNum, "^oplay: ^7Permission denied") end else -- Otherwise inform client that the sound doesn't exist printETLine(clientNum, "^oplay: ^7The sound you specified does not exist") end else -- Otherwise inform client that they need to specify a sound name printETLine(clientNum, "^oplay: ^7You must specify a sound name") end -- Return 1 to indicate that the command was handled by this function return 1 end if string.lower(et.trap_Argv(0)) == "listsounds" then -- Initialize display variables local columnSeparator = " " local lineCharacter = '-' local borderColor = '9' local textColor = 'f' local columnWidth = 12 local numberColumns = 6 -- Get client's admin level local clientNum=0 local clientLevel=0 if et.trap_Argv(1) == "[i]" then -- When CONSOLE executes this command, there is no clientNum. So we force the value to 50 -- Avoids a server crash, which is always good clientLevel = 50 else clientNum = et.trap_Argv(1) clientLevel = et.G_shrubbot_level(clientNum) end -- Create a table to hold sounds available to the client local playerSoundTable = {} -- For each sound in the sound table for sound, parameterTable in pairs(soundTable) do -- If the client has high enough level if clientLevel >= parameterTable['level'] then -- Add sound to player sound table table.insert(playerSoundTable, sound) end end -- Sort player sound table in alphebetical order table.sort(playerSoundTable) -- Get number of characters that would be removed from the trimmed separator local trimmedSeparator, charactersRemoved = trim(columnSeparator) -- Determine line length based on number of columns, column width, and the separator display length local lineLength = (columnWidth * numberColumns) + (displayLength(columnSeparator) * (numberColumns + 1)) - charactersRemoved -- Print a line to act as the top border of the chart -- printETLine(clientNum, colorString(makeLine(lineCharacter, lineLength), borderColor)) -- While there are sounds in the player sound table while # playerSoundTable > 0 do -- Initialize line holding sound names local soundsLine = colorString(trim(columnSeparator, 'l'), borderColor) -- For each column for i = 1, numberColumns do -- Add the sound from the beginning of the list soundsLine = soundsLine .. makeDisplayString(playerSoundTable[1] or '', textColor, columnWidth, "left") -- If this is not the last column if i < numberColumns then -- Add a separator (column border) soundsLine = soundsLine .. colorString(columnSeparator, borderColor) else -- Otherwise add a separator with the right side trimmed soundsLine = soundsLine .. colorString(trim(columnSeparator, 'r'), borderColor) end -- Remove first sound from the beginning of the table table.remove(playerSoundTable, 1) end -- Print the sound line followed by a border line printETLine(clientNum, soundsLine) -- printETLine(clientNum, colorString(makeLine(lineCharacter, lineLength), borderColor)) end -- Return 1 to indicate that the command was handled by this function return 1 end -- Return 0 to pass any command for standard et processing return 0 end There is some stuff in here about having clients opt out of the sounds, but I don't think it was ever finished nor does it work AFAIK. But take them as-is if you like. Next, the format of the playsound.cfg file is this: wewin { level:1 sound:the_game.wav } ... So you've got the command (as in !play wewin), the minimum shrubbot level required to use the sound (note all higher levels can use it), then the sound file name itself. The sound file must be in 'sound/playsound/' in your pk3 file, or else you can change the path coded in the playsound.lua file. But this way, you can just edit playsound.cfg to add your sounds, the command string and level required to run it. No end to the amount of sounds you can have. Next, define the commands in your shrubbot.cfg file: [command] command = ^bplay exec = play [i] [1] desc = Play a sound syntax = levels = 0 1 2 3 4 5 [command] command = ^blistsounds exec = listsounds [i] desc = List all sounds syntax = levels = 0 1 2 3 4 5 Finally, be sure to include the LUA scripts in your et config files: set lua_modules "playsound.lua"
    4 points
  8. clan DIABOLIK

    BACKUPS

    Thanks a lot @all for your support, nice from you I'm afraid it is the case, they just propose to make a new command for another VPS, I learn here the term 'foolish' ... This stupid company is: http://qualityserv.fr/ I remember when I was at http://dediserverhosting.com/ it was zero problem ! I found the courage, now I tune a @home server to get the same settings as the original one, g_mode+g_weapons+g_misc make 90% of the server; cool ! In few days, a good BACKUP and will upload on another VPS Bye all !
    4 points
  9. MINIMAL_LEVEL_TOEXECUTE = 20 -- minimal level to execute this command SHUFFLE_COMMAND = "!shuffle" -- shuffle command SHUFFLE_AFTERTIME = 5*60 -- 5min Client = { } function et_InitGame( levelTime, randomSeed, restart ) maxclients = et.trap_Cvar_Get( "sv_maxclients" ) end function et_ClientCommand( num, cmd ) local arg0 = string.lower(cmd) local arg1 = string.lower(et.trap_Argv(1)) if et.G_shrubbot_level( num ) >= MINIMAL_LEVEL_TOEXECUTE and arg0 == SHUFFLE_COMMAND or arg1 == SHUFFLE_COMMAND then StartTime = os.time() for i = 0, maxclients - 1 do local team = et.gentity_get(i, "sess.sessionTeam") if team ~= 3 then Client[i] = team end end return true -- let execute it end if arg0 == "team" and StartTime ~= nil then if arg1 == "b" then if os.time() >= (StartTime + SHUFFLE_AFTERTIME) and Client[num] == 1 then return false end elseif arg1 == "r" then if os.time() >= (StartTime + SHUFFLE_AFTERTIME) and Client[num] == 2 then return false end end end end It is just concept but it should works, in this case they won't be able to change to ->spec-> another team too
    4 points
  10. "Pay what you want for epic games on Origin. Support charity." https://www.humblebundle.com/ 8 triumphant games. Pay what you want and get the terrifying sci-fi horror third person shooter Dead Space 3; the original bone-chilling horror shooter Dead Space; the intense action-packed supersoldier shooter Crysis 2 Maximum Edition; the high speed open-world crash happy racer Burnout Paradise: The Ultimate Box; the authentic modern warfare sim Medal of Honor; and the first person parkour thrill ride Mirror's Edge. Pay over the average and receive the beloved life sim The Sims 3 (along with two expansion packs in The Sims 3 Starter Pack) and the unrivaled military shooter Battlefield 3. Fire it up on Origin. Buying the Humble Origin Bundle gets you the games to play on Windows through Origin (system requirements here), with The Sims 3 also available on Mac! Electronic Arts has also provided Steam keys for some of the games (full list here)! Pay what you want. On their own, all these mind-blowing titles would cost about $215, but we're letting you name your price! Pay any price to get soundtracks for The Sims 3 and Battlefield 3. A purchase of $1 or more gets you Origin* keys for all the games, and you can also get Steam keys for Dead Space, Crysis 2 Maximum Edition, Burnout Paradise: The Ultimate Box, Medal of Honor, and Mirror's Edge! Beat the average to also get The Sims 3, two expansion packs in The Sims 3 Starter Pack, and Battlefield 3. This offer ends on 28.08.2013 (if I am correct )
    4 points
  11. File Name: Spec Command File Submitter: Arcane File Submitted: 03 Apr 2013 File Category: LUA Spec Command lua script which works as a shrubbot command. An alternative for the console command "follow". To install: You need to unzip the file and extract the spec.lua file Upload this file into the silent folder on server (/serverip/silent) In server.cfg cvar: lua_modules "spec.lua" In shrubbot.cfg add the shrubbot command information from inside Readme.txt Click here to download this file
    4 points
  12. I'm writing this post to bring attention since the documentation is not well written around the subject. Since GUIDs are not trustable at all. Not PB GUIDs or silEnT GUIDs. We included admin level protection system into the 0.5.0 version of the mod. This system effectively limits all benefits from GUID spoofing into gaining XP of the spoofed players. Even private messages are not possible without proper authentication with the server. The system uses 2 cvars: g_adminProtection : bitmask 1 Log succesfull authentications to the cheat log 2 Log admin spoofing attempts to the cheat log 4 Report admins waiting for confirmation on their level to the admin chat g_protectMinLevel : integer The minimum level of the protected admins. To use the system, set the g_adminProtection to 7. This will enable all logging so you can see who authenticates to what level and if the authentication is succesfull or not. Set the g_protectMinLevel to the lowest level you want to protect. Don't set this to too low because it causes little overhead and also the credentials need to be given using online commands on the server. When the silEnT notices there is an admin connecting to the server who has protected admin level but no credentials, it will report this admin to the admin chat. When this happens, the admin needs to be confirmed with !confirm command by someone who is able to identify the player identity. This only needs to done once for each admin. In the following connections, the silEnT is able to handle the authentications silently itself. From now on, if someone spoofs the GUID of an admin, he will face the authentication procedure. The silEnT will inform into the admin chat that the player has lost his authentication and !setlevel is required. Do not do the !setlevel unless you know this one is genuinly the correct admin. Also, the !confirm command cannot be used anymore for the reason that the !confirm command can be given to less high admins without risks. If the player spoofing the GUID attempts to spoof the credentials, again the admin chat and cheat log is reported with the spoof attempt. Important thing to know is that the !confirm command and !setlevel commands do not give credentials during the warmup period. Also, authentication does not operate during warmup but player needs to wait until the end of warmup before he gains access to his admin level. If you do !confrim or !setlevel during the warmup and the player is later on reported to not have yet been confirmed, just do the !confirm again. I hope this information helps and brings some light to the subject. Feel free to ask questions in this thread and I we will answer those.
    4 points
  13. We proudly announce the silEnT Enemy Territory mod 0.3.0. We worked hard for it to become what it is in 0.3.0 version. We made many things server side as well as client side. To cut the story short, here are the top things in 0.3.0 release: new database versionhardware based identificationnew game type: Team Death Matchshrubbot improvementsnew landmine notificationsnew ppsh modelweapon banks display Traditionally, here is the change log (0.3.0): Added: weapon banks shown during weapon change - incorporated into HUD editor (introduced new client cvars for this: cg_wbShowDuration, cg_wbOrientation, cg_wbWideSlots)Fixed: defect with following FT (killed player was picked when he/she was the FT leader - but next FT member should be picked)Improved the database performance.Added new command !baninfo.Removed cg_damageKick client cvar.Reworked cg_hitSounds client cvar. Now a new option play only headshots is availableAdded: New server cvar g_punkbuster. Server that don't have punkbuster enbaled can still force clients enabling punkbuster for them to have GUIDs. This does not guarantee that every player will have a GUID but if the player has it, it will be sent to the server.Added: warmup countdown (last 3 seconds). Can be turned off by setting cg_showCountDown client cvar to "0"Added: g_classWeapons server cvar. Enables weapons per class (so far only PPSh is handled)Changed: allied tripmine beam color changed to blueAdded: Muted players can't call votes.Added: New command !readadmins.Added: separate meaning of death for shoving to death (enemy killing and team killing supported)Added: new type of revealed landmines notifications (cg_landmineNotifyType client cvar and g_landmineNotifyType server cvar provided for this)Added new command !resetpls that reset individual player stats leaving XP save untouched. There has been some cases when the stats have bugged and this is an easy command for admins to correct such stats.Players can customise the announcements and even disable them if they like.Added possibility for First Blood sound for server admins.Fixed headshots from proned players.Added: silEnT mod icon displayed on loading screenAdded: new PPSH weapon model and enhanced the weapon overall (sounds)Fixed: follow Fire Team bug with spec not switching outside of FT for "FT first" option.Fixed: spectator follow bug: SPACE + RMB caused wrong behavior.pmove_fixed is now recognised by the server if the players set it. Added new shrubbot flag '/' that will disables private messages from levels or individual players. Fixed !useredit add command. Before the command checked only valid command flags were added. Now it accepts any flags.Added kills/deaths/spree counters hud display managed by cg_killsDisplay cvar.Added: predefined HUDs can be now chosen from the HUD configuration menuAdded: new predefined HUDs: etpro, etpro2 (thanks to Dragon)Fixed: in chat after every map players' pings are very weird (http://mygamingtalk....c/437-big-ping/)Added: new game type: Team Death Match (easy to be configured server side and client side)Added: when alternate HUD is chosen with compass in the lower part of the screen the compass slides out to bottom. The 0.3.0 is no longer provided as download. Use 0.3.1 instead.
    4 points
  14. I have just moved commands stuckstart, stucknext, saveplayerpos, saveusepoint, warpanybot, warptogoaloffset, cleargoalflags from et to global_scripts so that they can be used both in ET and RTCW.
    3 points
  15. palota

    Wiki pages

    Omni-bot wiki has been moved to https://mygamingtalk.com/wiki/OMNIBOT_-_Enemy_Territory_Modification
    3 points
  16. Enemy Territory If you use ET:Legacy, it is very easy because it automatically downloads and installs Omni-bot. You can also download ZIP package from the GitHub. You can extract it to any folder and then set omnibot_path cvar. Most users need to download only one file omni-bot_0_90_ET.zip, which contains binaries, scripts and waypoints. File omni-bot_0_90_ET_waypoint_mod.zip is the omnibot mod which can be used to create waypoints and goals. If you just want to play the game, it's better to install another mod (legacy, silEnT, n!tmod, Jaymod, NoQuarter, etpub, ...). The latest development version is available in the SVN repository. You can use TortoiseSVN to checkout http://svn.assembla.com/svn/omnibot/Enemy-Territory/0.8/ If it asks for login credentials, you can enter anything (for example username: x, password: x). Return to Castle Wolfenstein Download file omni-bot_0_90_RTCW.zip from GitHub. It contains scripts, waypoints and binaries. It is compatible with the latest version of iortcw.
    3 points
  17. Great work as always, but just one question. What is the point of making external library modules without releasing an API?
    3 points
  18. Beck, We figured this out. It isn't very difficult, it just isn't documented anywhere. 1.Create a .pk3 file - in this case; we'll call it IOW.pk3 2.Within the PK3 create a the folders: gfx\loading 3. Within that loading subfolder, place your modified image for the loading screen. It's basically just a 1024x1024 TGA (saved at 24 or 32 bit only). The image file needs to be called: camp_map.tga 4. Add this PK3 to silent folder on the server. If that isn't clear enough, you can do this: /connect etforever.com If you connect to our server, you will download ~ETF.pk3 which contains the custom loading screen (saved to your silent folder). You can then extract that file and modify the tga within it for IOW. Once done, rename the ~ETF.pk3 to whatever you want, place it in your servers' silent folder, and it should be good to go. This loading screen change will only be effective on your server: which is good, it's not invasive on the core files of the game. Hope this helps: post back if you have any issues. -FDM
    3 points
  19. Unfortunately this is a sad testament of the state of the ET community. It has been visible for a long time around here too. To make matters even worse, ET client game is one huge CVE with no realistic way to protect players. Only thing I can think of is if a project like ET Legacy client would start checking the binaries it loads to prevent proxying the mods, or at least giving the users an option to allow it case by case. However, I don't believe it will ever happen and there is the political element too, which is always present in the GPL projects.
    3 points
  20. You can minimize the game with no problem on ET Legacy.
    3 points
  21. Currently I have had a lot of people ask is there a way to just not include all the features, as there are way too many for what they need. I have answered this question usually with: Everything can be toggled on and off some where. Whether that be Config.json or disabling commands in Commands.json. There are very few things that are not configurable, or at least able to disable. And if there was ever something I missed (Sometimes I do miss some features because I am so used to them being enabled) just to ask me and I can probably make it able to disable / enable. However recently a proposed idea would be to make a drag and drop features into a folder like LESM/plugins/ This would also allow people to use my Lua as a sort of API to make their own plugins which I find really cool. It sounds good, and I really kind of like the idea of it, I just don't know how to approach the idea yet, if it is possible (for me) to do.. This however proposes a problem, instead of having to configure one thing you would then have to configure each individual plugin. It would also require a sort of rewrite of the entire code, which would probably take some time. So what do you think should be done? Should I just continue what I am doing?
    3 points
  22. Sorry for shit quality but yeah, https://youtu.be/iZXQNaxuchs
    3 points
  23. twiti

    multi config server

    silent mod ofc you have to play with g_mapConfigs and g_mapScriptDirectory and custom commands thx to silent mod guys example: i'd like to setup a tj mod via shrubbot: [command] command = tj exec = set lua_modules "nextmap.lua autopromo.lua TJmod.lua adrenaline.lua" ; set g_mapConfigs "tj_cfg"; restart; desc = ^7!^3tj^7 - turn ^3TRICKJUMP MODE ^1on syntax = levels = 11 [command] command = tjoff exec = set lua_modules "nextmap.lua autopromo.lua" ; set g_mapConfigs "mapconfigs"; restart; desc = ^7!^3tjoff^7 - turn ^3TRICKJUMP MODE ^1off syntax = levels = 11 well, do NOT set lua modules via your server.cfg, and you can find the above lua modules searching via google it's just a sample, have fun
    3 points
  24. Zelly

    !levedit

    1. Open FTP 2. Navigate to and edit shrubbot.cfg 3. Save/Upload 4. Open ET/RCON 5. !readconfig vs: 1. !levedit 1 add w Point is not having to do the shrubbot.cfg we already have commands to add remove edit players flags/greetings and stuff, when we used to not have to. Also you may not want to give your admins access to your whole server but you would want to give them access still to the levedit. Anyways plenty of reasons, it simply would be useful.
    3 points
  25. Purple

    Help-with-fun-settings

    I looked into this and I don't think it can be done via lua? The only way I can think off was latching the player weapon, but in order to latch the panzer the class would need to be soldier. So I don't think I can do that part, although i did update the lua script and will post it in the downloads sections has a bit more settings and features pre-done in the lua so users won't need to change anything in their server configuration files.
    3 points
  26. For silEnT mod, the mod built admin level protection (http://mygamingtalk.com/wiki/Silent_Mod_Server_Cvar#g_adminProtection) works both reliably and with less inconvenience than this.
    3 points
  27. Purple

    Automove

    Always see some sort of automove talk on here, so here is a simple automove that works well and i have been using on my server for months, modified quiet a bit to be usable by anyone. -- automove redone. function et_InitGame(levelTime,randomSeed,restart) et.RegisterModname("^1D^0Ri Team Balance") players = { } players[0] = 0 --all players[1] = 0 --axis players[2] = 0 --allies players[3] = 0 --spectators end function et_Obituary(client, killer, death) axiskilled = 0 allieskilled = 0 count2 = 0 player_name2 = GetPlayerName(client) local game_state = tonumber(et.trap_Cvar_Get("gamestate")) local player_team = et.gentity_get(client, "sess.SessionTeam") if game_state ~= 1 and game_state ~= 2 then players[0] = 0 --all players[1] = 0 --axis players[2] = 0 --allies players[3] = 0 --spectators for i = 0, tonumber(et.trap_Cvar_Get("sv_maxclients")) -1, 1 do local teamnumber = tonumber(et.gentity_get(i,"sess.sessionTeam")) if et.gentity_get(i,"pers.connected") == 2 then players[0] = players[0] + 1 players[teamnumber] = players[teamnumber] + 1 end end if (( (players[1] - players[2]) > 1 and player_team == 1 ) or ( (players[2] - players[1]) > 1 and player_team == 2 )) then if player_team == 1 then axiskilled = 1 else allieskilled = 1 end et.trap_SendServerCommand(-1, "chat \"^3Automoving " .. player_name2 .. " ^3as teams were uneven... \"") end end return nil end function et_RunFrame() if axiskilled == 1 then delayaxis() elseif allieskilled == 1 then delayallies() end end function delayaxis() count2 = count2 + 1 if count2 >= 5 then --every 5 deaths move the next player that dies et.trap_SendConsoleCommand( et.EXEC_APPEND, "putteam " .. player_name2 .. " b") count2 = 0 axiskilled = 0 end end function delayallies() count2 = count2 + 1 if count2 >= 5 then--every 5 deaths move the next player that dies et.trap_SendConsoleCommand( et.EXEC_APPEND, "putteam " .. player_name2 .. " r") count2 = 0 allieskilled = 0 end end function GetPlayerName(client) return et.Q_CleanStr(et.gentity_get(client, "pers.netname")) end function et_ShutdownGame(restart) end
    3 points
  28. The texture the wire of tripmine uses is in models \ weapons2 \ tripmine \ wire_blue.tga in silent-0.8.2.pk3 You can extract wire_blue.tga and modify it to your liking, change eg blue for a more discreet gray. Never modify the texture of wire_blue.tga in silent-0.8.2.pk3 Create a small pk3 and name it as you like but add a "z_" at the begginig of the name,pk3 (eg. z_name.pk3); within the pk3 create the folder structure models \ weapons2 \ tripmine \ wire_blue.tga where wire_blue.tga will now be your version. Climb this small pk3 the silent folder on your server. It is true that it is visible to kilometers .. Can you get a sample in http://www.clantnt.com/servidor/silent/z_tripmine.pk3,............................. (is a sample) Regards.
    3 points
  29. Hello everyone! I have been working on a project with pure lua that enhances current ET servers. I have been working on it alone for a few years and just recently invited purple to come help me out. A short description of some of the many features that it has: It is very configurable, if something isn't already configurable it would be very easy to make it configurable. It includes over 60 custom commands. Has a mail system. It has an option to register a profile to see all your stats over time. (Also used for a bunch of other stuff) There is a lot in the project and it is constantly changing, so for more up to date information you can view the wiki on bitbucket: https://bitbucket.org/zelly/lua-enhanced-server-mod/wiki/Home The wiki has a feature list, command list, information about the keys, how to report bugs, how to join development and more. I am always open to ideas to improve my project so please take a look. Here is the home page if you want to take a look around the project: https://bitbucket.org/zelly/lua-enhanced-server-mod/overview
    3 points
  30. I think that it would be reasonable to reverse the order of popups in the HUDs where popups area is located at the top of the screen. Pic related:
    3 points
  31. I finally decided to add a section for creating custom commands. The information has been scattered around and I thought it will make it easier if all of it is in one place. http://mygamingtalk.com/wiki/index.php/Silent_Creating_Custom_Commands Please comment improvements and if you can provide clean short examples for the last two methods, that would be appreciated.
    3 points
  32. Hi, I was thinking if its maybe possible that when you turn on panzerwar, all players are moved into soldier class? Becuase from what it is now, you can join medic class and play panzer and then u go to 156hp or so and then direct hit doesnt kill you, and also another thing if youve been hit you are healing yourself with that 3hp's every second and so on. So I think it would be cooler that when panzerwar gets turned on we all get moved to soldier class. I hope thats possible. Same goes for sniperwar i guess! Thanks!
    3 points
  33. The problem your probably running into is flak jacket, ( 50% less explosive damage for people who have flak jacket ) And most servers let that skill carry over to other classes too not just engineers, I have come to just disable flak jacket altogether as I don't think people should be just launched 50 feet when a grenade hits them directly. To toggle it for every class when level 4 engy is reached look here: http://mygamingtalk.com/wiki/index.php/Silent_Mod_Server_Cvar#g_skills and if you want to disable it altogether, which admittedly is a bit extreme: http://mygamingtalk.com/wiki/index.php/Silent_Mod_Server_Cvar#skill_engineer
    3 points
  34. Also, keep in mind forcecvars are saved in configstrings so it's better to keep the number of forced cvars as low as possible.
    3 points
  35. You could make a custom command that sends you a private message. As an alternative.
    3 points
  36. @beck if you download our pk3 file either from our silent server (abcsilent.abcclan.org) or from here and have a look inside it you will see how it is done. Else pm me. @Larrywall Yes it is possible have a look inside our pk3 file to see. Briefly you need to edit wm_quickmessageAlt.menu If you look through this above you should see where the edits are. Then you need to edit the wm_allies_chat.voice and the wm_axis_chat.voice This above was added in at the end of the existing file. More info. If you look at this line QM_MENU_ITEM( "1. ^7Monty Python", exec "VoiceChat Monty"; close wm_ABC_Sounds, "1", 1 ) [name shown in menu], exec"VoiceChat [name of voicechat] So when this is selected off quick chat it will play from wm_allies_chat.voice So different people will hear a different message. Good luck if you followed that.
    3 points
  37. Antichrist

    Thank you!

    The new changes to the SilentAC system are amazing, and take even more work off admins, giving us more play time. It is MUCH appreciated! Silent has by far exceeded every expectation I've ever had from a mod. I've played EtPub for years, and when Silent was going to release ETPub, I was a little nervous at first, but It has done nothing but good things for our servers. I've always been a creature of habit, and hate changes to what I'm used to, but I actually get excited when I hear about a new Silent release. All the features and changes I see are always an improvement over the previous release. Thank you all, keep up the great work!!
    3 points
  38. BECK

    avatars

    If you do it, I like the idea of providing a standard pack of ones to choose from and allowing admins to supplement, even allow certain shrubbot levels access to certain images etc.... Otherwise -- gonna be a lot of penises running around the map LOL.
    3 points
  39. Sol

    ETEng release 0.3

    New version of ETEng 0.3 is released. (4e530ad65164f40a584c30cc4bea76a2) (c08a3c14a92cc922955dd1c17e5375c9) md5sum Added: sv_protocolcheck {0,1}: 0-Server doesn't check clients protocols, 1-Server allows only one protocol of sv_protocol. Added: sv_protocol {82,84}: 82- 2.55 Protocol, 84 - 2.6b Protocol, This is shown in getinfo. Added: sv_protect {0,1}: 0-Server doesn't check clients userinfo. 1-Server check clients for fake clients (q3fill exploit). Added: sv_maxreqs {n}: N-getstatus Request per sv_reqtime. Added: sv_reqtime {ms}: ms: ( default 1000 = 1s ) Time per sv_maxreqs request. Added: sv_maxclientsip {n}: Maximum number of connections allowed from one particular IP. Added: sv_rconfilter {0,1}: 0-Server doesn't check the client IP when using rcon. 1-Server filters the source rcon cmds. Added: sv_rcon1 - sv_rcon5 {IP}: Works if sv_rconfilter is enabled. Example: sv_rcon1 "83.0.0.1" IP Mask is also supported Ex: sv_rcon1 "83.0.0.*" Added: Win32 Support Fixed: wwwdl, getstatus exploit. Fixed: Invalid .PK3 files referenced error. ETENG 0.3 Download
    3 points
  40. So helpfull from you dempa! Please keep the trolling out from this forum. Yes I have seen your trolls at the FA forum. If you could have taken a little moment to think, we could have instructed you to do your own changes against ETPub. We could have then reviewed them and seen if they are any worth. Even give the possibility to join our team if you had shown us that you can do good additions without messing up the code. However, even if you would have the skills, which I doubt based on the crap you talk so much, you have no such chance anymore because of your personality.
    3 points
  41. The silEnT Mod Team presents the new 0.4.0 version of silEnT Mod for Enemy Territory. Download Special thanks for Krauersaut for building the Mac OS X client and crapshoot from the omni-bot team for his help and co-operation New main features in silEnT 0.4.0 are: New User Interface with 2 themes. Themes can be switched with "ui_theme" cvar {1,2} Widescreen support. New front end user interface for private message system. 3rd person view for knife throw animations. db improvements. Enhanced Hardware Based Identification system. g_identOptions 16. The server will automatically create a new ban for a player that is circumventing old ban and the client identification catches it. Subnet ban feature to replace pb_sv_banmask. Performance enhancements. Ban numbers are printed in the outputs of !userinfo, !userlist and !usersearch commands, if the player is banned. Miscellaneous added features: Added: tripmines markers on the command map. Added: new tripmine wire shaders. Added: tripmines can be now spotted by coverts to be marked on the command map. Added: Possibility for server admins to enable Jaymod style double jumping This is controlled with g_misc flag 32. Added: hint for tripmine placement (hint is displayed when tripmine can be attached to the pointed place) Added: new cvar: cg_themedCMap {0,1}, which activates/deactivates themed command map frame Added: New shrubbot flag '#'. Players or levels with this flag are not allowed to call votes. Voting is automatically denied from players without PB GUIDs. Do note, it does not require the punkbuster to be enabled on the server for a player to have a PB GUID. Added: new private message which allows to select players from the list or just type the name in Added: Possiblity to mute only global chat sounds with cg_noVoiceChats 2. Also added into the menu. Traditionally, the changelog: Version 0.4.0 Added: different power bolt colors for fops to show arty/airstrikes availability (http://mygamingtalk....ops-air-strike/) Added: tripmines can be tripped by movers (doors etc.) when they cross the wire Added: ui_themedCursor client cvar to disable/enable themed cursor. For those who don't like the new themed mouse cursors. Reworked: new tripmine model, new tripmine icons Fixed: narrow screens (aspect ratio where the width is smaller then in 4:3 aspect ratio) were stretching some visuals Fixed: the map voting during intermission accepted mouse presses under the map list Fixed: landmines and tripmines were positioned wrong in the command map Fixed: throwing knives in air Fixed: map and player list scroller: http://mygamingtalk....if-you-drag-it/ Fixed: tripmines do not disappear from command map after being destructed (tripped, not shot) Fixed: bans no longer write NO_GUID to the guid field in the shrubbot.cfg. Renamed: g_settings renamed to g_banners. That is what it is only for so the change is to clarify the purpose. Removed: /rcon ban. This command was causing issues because of the similar name to !ban. Also, there was no unban method. Version 0.4.0rc1 Added: new UI with 2 themes. Themes can be switched with "ui_theme" cvar {1,2} Added: tripmines markers on the command map. Added: new tripmine wire shaders. Added: tripmines can be now spotted by coverts to be marked on the command map. Added: g_identOptions flag 16. The server will automatically create a new ban for a player that is circumventing old ban and the client identification catches him. Added: Ban numbers are printed in the outputs of !userinfo, !userlist and !usersearch commands, if the player is banned. Added: Possibility for server admins to enable Jaymod style double jumping This is controlled with g_misc flag 32. Added: hint for tripmine placement (hint is displayed when tripmine can be attached to the pointed place) Added: new cvar: cg_themedCMap {0,1}, which activates/deactivates themed command map frame Added: New shrubbot flag '#'. Players or levels with this flag are not allowed to call votes. Voting is automatically denied from players without PB GUIDs. Do note, it does not require the punkbuster to be enabled on the server for a player to have a PB GUID. Added: new private message which allows to select players from the list or just type the name in Added: 3rd person view knife throw animations Added: Possiblity to mute only global chat sounds with cg_noVoiceChats 2. Also added into the menu. Fixed: Aspect ratios with widescreen monitors. Fixed: Empty player name in adminchat report when a player who got just kicked based on client identification reconnects instantly. Fixed: throw knife bug during leaning (http://mygamingtalk....e-71-knife-bug/) Fixed: The shortcut with custom commands now gives the client number always correctly. Fixed: Soldier with secondary SMG was able to keep the SMG when switching classes. Can be troublesome if switching to covert. Fixed: weapon banks shown when knife is thrown: http://mygamingtalk....throwing-knife/ Fixed: xp not shown in limbo menu before joining the team: http://mygamingtalk....ed-into-a-team/ Fixed: it was possible to still write inside edit box after tabbing out to non edit box Removed: g_bot_minPlayers. The omnibot librarys MinBots and MaxBots settings cover this feature better. Fixed: thrown knive dissapears on destructible: http://mygamingtalk....ives-disappear/ Fixed: watermark bug: http://mygamingtalk....-watermark-bug/ Fixed: latched class in fire team not shown: http://mygamingtalk....n-notification/ Fixed: http://mygamingtalk....lose-limbomenu/ Fixed: !nextmap & callvote nextmap, don't work with g_gametype 6 Fixed: fast reload animations for weapons: http://mygamingtalk....2-speed-reload/ Download Click here to view the article
    3 points
  42. Here is the silEnT Enemy Territory mod 0.3.1. It's the patch release which fixes some issues with the mod: Bug fixes.Added: g_votedMuteLength which controls the lengths of the voted mutes. Default is 3 hours.Reworked: The tripmine shaders. Visually still defaults to the old look.Some code cleanup and minor optimizations.Binaries compiled with optimization settings. The silEnT mod team. The download is no longer provided. Please use 0.3.3 instead.
    3 points
  43. silEnT mod version 0.8.2 is out! Download Change log: Version 0.8.2 Added: g_goatSound server cvar to enable/disable goat sounds on knife kills. Added: enemy team objective carry indicator (http://mygamingtalk....reen-indicator/). Use g_misc flag 1024 to enable it on the server and cg_objcarry client cvar to enable it in the HUD. Fixed: Players carrying objectives are now shown correctly. Fixed: !useredit was not able to set level higher than 99 when executed as rcon. !setlevel was working correctly. Fixed: The name of the disguised covert op was not drawn to spectators. Fixed: The class icon in the crosshair player name to be the current class instead of the latched class. Fixed: wm_sayPlayerClass now announces the latched class correctly, even when using class swithcer. Fixed: If map voting was enabled but g_mapVoteFlags 4 was not enabled. It was possible to issue multiple votes by hand using /mapvote command. Fixed: debriefing screen buttons didn't handle highlight theme parameter properly. Fixed: The output of finger command didn't show warnings if there were more than 2 in total. Fixed: UI crash in menu (http://mygamingtalk....rashes-in-menu/) Fixed: Minor bug with g_maxPanzerSuicides introduced in 0.8.0. If panzer suicides were disallowed completely, the player was not informed about it. Fixed: g_muteRename allowed to change the name when player used /reconnect (http://mygamingtalk....g-g-muterename/) Fixed: When unmuting/muting during intermission/warmup, the mute wasn't saved. Fixed: cg_effectDistance was affecting the played sounds. Fixed: g_classWeapons not working for class command (http://mygamingtalk....-fully-working/) Fixed: class command not handling secondary weapon parameter properly, it didn't influence the limbo menu, e.g. /class s 3 2 wouldn't select akimbo pistols or SMG as secondary in limbo. Fixed: switching problem with double SMG (http://mygamingtalk....aving-two-smgs/) Improved: If player is completely dead in the game, the scoreboard shows the player's latched class to other team members. Improved: UI tabbing to edit field makes it focused. Improved: limbo weapons menu for soldier class. Improved: sort order of the map vote menu map list. Download Enjoy! silEnT mod team Click here to view the article
    2 points
  44. LOL! cool well why not makining if that.. I am redoing the originals first, a shotgun or trenchgun is also made, need to fiddle with animation.. (something that stinks) And yes we have talked about bringing in a few weapons... But first I wanna redo the ones ingame allready.. Hopefully I can make them better some are made : http://www.thewolfteam.org/index.php/topic,72.0.html (couldnt post jpg it seemed) And now working on the carabine EDIT: Found a pic of my trenchgun too:
    2 points
  45. Jhonny/Shinobi

    !pistolwars ?

    Hello, There is currently panzerwar, sniperwar and riflewar . . . so I was wondering if a !pistolwar could be also added to the next edition of the silentmod ? With kind regards. EDIT: Also could !knifewar be added aswell ?
    2 points
  46. Pretty old and hate the bump the topic, but there are multiple ways of making custom commands either by lua or by shrubbot. I could make some tutorials for users here soon, but for the meantime i'm a bit busy if you have any suggestions of things you'd like to see feel free to send me a pm.
    2 points
  47. This is caused by an incorrect attempt to fix the issue of players disconnecting if they haven't connected through by the end of the warmup. The issue is that the engine is calling ClientBEgin on them, while they still haven't supplied the server their true info. This disconnect can happen only on the first connect to the server. Not between maps. Warmup time may reduce the issue as more players get through before the warmup ends. But it is not a real fix. I don't know if the incorrect fix attempt can cause the problem to escalate in the form of the freeze.
    2 points
  48. gaoesa

    Lags/warps

    * First, be sure that the getstatus exploit is properly removed from the threats. * Take a look at the cpu and memory consumption with top command. If the problem is recent, i.e. there wasn't problems before with same player amounts and same settings, the issue may be external. E.g. the getstatus exploiting, the ET300 which I suspect you are using. 3 MB user.db is not a really big yet and should not cause problems. It is too early to make promises but the networking has been investigated again and it is possible that improvements will be made to the next version.
    2 points
  49. =EMP=Avery13

    Commands

    I know this is something that jaymod has had for a long time now, and I don't want it to sound like silent is turning into jaymod, but it helps. Can we get it to when typing in commands, you only have to type in part of the command instead of the whole thing? It took me a few tries before I remembered to type in !putteam all the way out. I was typing !put. And also commands like !listplayers. People are getting confused with !list or just a simple !li. Is it possible? Do you guys like it, or are you trying to stay away from it?
    2 points
  50. jaie

    Minimum map time limit

    When I played nitmod for the first time, I initially thought it was a bug because the map wasn't ending lol, but eventually I realised that it was a team death match. Which is where I got the idea to have the map continuing after the objective is destroyed/completed, cause I don't really like the idea of stopping people do the map goals because it often ends up with them being able to do it at an earlier point of the match, but the defending team winning because of the limit. But I'm not sure if its possible to combine these ideas, because I think they just changed the map goals to team deaths. (I know very little about modding.) To avoid the confusing of it being a bug, if a count down timer in red was placed next to the map objective timer. So that the countdown timer could make it more obvious when the map would finish and would look less like a bug. Also would it be possible to 'limit the limit' to 15 minutes, so that any value above 15 minutes would mean that the map would finish normally. I could see someone miss typing it and end up with 150 minutes lol.
    2 points
×
×
  • Create New...