Jump to content

Geo

Members
  • Posts

    70
  • Joined

  • Last visited

  • Days Won

    6

Posts posted by Geo

  1. Dans le server cfg (silent.cfg)

     

    set lua_modules "autopromo.lua rspree.lua botdetectv3.lua"

     

     

    You have to leave a space between each script, you were adding a . inbetween each script. That is assuming this was your problem (I only know a little french) and that there are no errors in the actual scripts themselves.

  2. Yes, Ineed I already asked about this feature before. In my opinion it would be good to add to lua new function like et.ForceCvar( clientnum, cvar, value ) just to force target client's cvar.

     

    That would suit my purpose fine, and better to give me a way to change specific client's cvars instead of forcing every connected players. I hope that this will be added at some point.

  3. Whilst I was working on a script I came up with a particular idea that I think would be quite useful to have available for server administrators.

     

    Is it possible to unlock cvars (mainly one's to aid with cheat detection r_shownormals and cg_thirdperson eg) for targeted clients? This could be a new permission flag to coincide with shrubbot, or for use with rcon maybe (if either of those are even possible).

     

    It would be useful to be able to use these types of cvars for spectating players suspected of wh for example, it would save time in some cases if a demo was unnecessary (I would usually take a demo for solid proof and use of timestamp etc) but it would allow coherent judgements to be made from spectator position. I could see security issues especially if someone had unauthorised rcon access but I still think it's a worthwhile idea. Thanks.

  4. Subnet bans should be displayed in shrubbot.cfg alongside normal bans.

     

    Shrubbot.cfg is the file that holds all the level definitions, custom commands, bans, warns and subnetbans for the server shrubbot. These configuration settings are hand editable. If the shrubbot.cfg file does not exists when !ban or!setlevel is used, a new one with default settings is created. The settings in the shrubbot.cfg are divided into following data blocks.

     
  5. I've seen this lots on Jaymod but never in silEnT.. I guess it's a console exploit rather than a MOD bug.. But maybe the silEnT team can prevent any 'says' from being printed if the client is in connecting status.

     

    That's a good idea, or something that limits the amount of msgs within a time period to prevent any spam perhaps.

  6. Created a script that works and accounts for use of /team and !putteam cmds. However it's quite buggy and I don't really like it, so i've stopped working on it. Thought i'd upload something that works to an extent anyway.

     

    function et_ClientConnect(clientNum, firstTime, isBot)
                  if isBot == 1 then return end
                  local team = et.gentity_get(clientNum, "sess.sessionTeam")
                                 if team == 3 then 
                            et.gentity_set(clientNum, "sess.shoutcaster", 1)
    			et.gentity_set(clientNum, "sess.spec_invite", 3)
    			return true
    		end
    	end	
    
    
    function et_ClientCommand( clientNum, command)
    		if command == "team" and et.trap_Argv(1) ~= "s" then
    			et.gentity_set(clientNum, "sess.shoutcaster", 0)
                            et.gentity_set(clientNum, "sess.spec_invite", 0)
    			return true
    		elseif command == "team" and et.trap_Argv(1) == "s" then
    			et.gentity_set(clientNum, "sess.shoutcaster", 1)
    			et.gentity_set(clientNum, "sess.spec_invite", 3)
    			return true
    		end
    	
           end
    
    
    function et_ClientCommand( clientNum, command)
    	if command ~= "say" then
                    return
            end
    
    		local targetClientNum = et.ClientNumberFromString(et.trap_Argv(2))
    
    if et.trap_Argv(1) == "!putteam" and targetClientNum ~= nil and et.trap_Argv(3) == "s" then
    			et.gentity_set(targetClientNum, "sess.shoutcaster", 1)
    			et.gentity_set(targetClientNum, "sess.spec_invite", 3)
    			return true
                            end
    if et.trap_Argv(1) == "!putteam" and targetClientNum ~= nil and et.trap_Argv(3) ~= "s" then
    			et.gentity_set(targetClientNum, "sess.shoutcaster", 0)
    			et.gentity_set(targetClientNum, "sess.spec_invite", 0)
    			return true
                            end
    		end
     
  7. Getting !putteam to work from spec to a team is the only problem now. I tried what Sol suggested but I can't seem to make the client either be shoutcaster when !putteam name/slot s is done or remove shoutcaster when !putteam name/slot r/b is done. Any ideas?

  8. I was trying it like this for example: (in mapconfigs/default.cfg)

     

    [players 11-*]
    set g_excludedMaps ":fragmaze_fixed:"
    [players 5-*]
    set g_excludedMaps ":te_valhalla:"
    [players 0-15]
    set g_excludedMaps ":venice:"
    [/players]
    
    set g_excludedMaps ":oasis:fueldump:battery:railgun:"
    

     

    I had the maps with limitations at the top and underneath the maps I want to permanently exclude. The problem is, it only executes the second g_excludedmaps and none of the map with limited amounts of players work. The [players] blocks are not working for me. Have I made an obvious error or something? Thanks

  9. Ok thanks for clarifying. Is there a way to change shoutcaster status if the client uses !putteam (like team) to move clients? I did try a similar way but I assumed I would need to get the targetClientNum as et.trap_Argv(1) and the team as (2). (like !putteam name/slot r/b/s) but this didn't work.

  10. I managed to fix the bot problem but in a different way. I tested the et.ClientBegin callback but this is executed only once per map, and I mainly wanted clients to become shoutcaster automatically as soon as they connect. This is why I used et.ClientConnect instead. Also, this allowed me to use the local isBot value and add a line of code to exclude bots if isBot returns 1. The script works when clients connect, they can join a team and become shoutcaster once they become a spectator. However, the problem now is use of the !putteam command. I tried to look for clients executing this command but it didn't work, so if any help can be offered it would be useful. I'd like for when clients use the command to join a team it removes shoutcaster, and when they become a spectator they become shoutcaster (same behaviour as "team..." command). 

     

    This is the code:

     

    function et_ClientConnect(clientNum, firstTime, isBot)
                  if isBot == 1 then return end
                  local team = et.gentity_get(clientNum, "sess.sessionTeam")
                                 if team == 3 then 
                            et.gentity_set(clientNum, "sess.shoutcaster", 1)
    			et.gentity_set(clientNum, "sess.spec_invite", 3)
    			return true
    		elseif team == 0 then
    			et.gentity_set(clientNum, "sess.shoutcaster", 0)
    			return true
    		end
    	end	
    
    
    function et_ClientCommand( clientNum, command)
    		if command == "team" and et.trap_Argv(1) ~= "s" then
    			et.gentity_set(clientNum, "sess.shoutcaster", 0)
    			return true
    		elseif command == "team" and et.trap_Argv(1) == "s" then
    			et.gentity_set(clientNum, "sess.shoutcaster", 1)
    			et.gentity_set(clientNum, "sess.spec_invite", 3)
    			return true
    		end
    	
           end
    
    

     

    A couple of other things worth mentioning are that when I am running this script, the inactivity detection does not seem to work, I was afk for over 10 minutes and still remained in a team. This worked fine without the script being loaded. Perhaps it is using something similar to !putteam? I must note that !putteam works when the client is in a team, but it doesn't work from spec (as it won't let you !putteam a client into a team as you're shoutcaster). Also, Gaoesa you mentioned checking for whether sess.referee is at 0 before setting sess.spec_invite to 0, I was wondering why this is needed? Thankyou.

  11. I took the advice from these replies and wrote a new script. Sol - your script worked perfectly but I also wanted clients to become shoutcaster when they connect. Therefore I had to add in two new functions at the beginning of the script. Code:

     

    function et_ClientConnect( clientNum, firstTime, isBot)
    	local connect = et.gentity_get(clientNum, "pers.connected")
    		if connect == 2 then return end
    
    	local team = et.gentity_get(clientNum, "sess.sessionTeam")
    		if team == 3 then 
    			et.gentity_set(clientNum, "sess.shoutcaster", 1)
    			et.gentity_set(clientNum, "sess.spec_invite", 3)
    			return true
    		elseif team == 0 then
    			et.gentity_set(clientNum, "sess.shoutcaster", 0)
    			return true
    		end
    	end			
    	
    
    function et_ClientCommand( clientNum, command)
    		if command == "team" and et.trap_Argv(1) ~= "s" then
    			et.gentity_set(clientNum, "sess.shoutcaster", 0)
    			return true
    		elseif command == "team" and et.trap_Argv(1) == "s" then
    			et.gentity_set(clientNum, "sess.shoutcaster", 1)
    			et.gentity_set(clientNum, "sess.spec_invite", 3)
    			return true
    		end
    	
           end
    		
    	
    
    		
    

     

    I had to use sess.sessionTeam in order to log people in when they connected, but I had the problem then of clients being refused to join a team. Therefore, I used the "0" (not on a team) value which I assumed included limbo status and this worked fine for the purpose. From then on the next function allowed people to become SC in spec and rejoin a team. The problem now is bots become shoutcasters and cannot join teams, whereupon more bots join until the server is full. I guessed that this was because it was detecting that no bots were playing so automatically more joined in an attempt to play (no idea if that is correct). I don't know if using sess.sessionTeam value 0 is an effective way but I couldn't get anything else to work. If someone has any improvements, or mainly to solve my bot issue, it would be appreciated. I tried a function isBot using the ps.ping == 0 but this returned an error in the log. It was something like tried to call local isBot (number value) which I don't understand. Thanks!

  12. I've read the wiki and understand we can exclude maps unless they have a certain amount of people playing. I wanted to exclude fragmaze_fixed from the map voting list if there are 10 or more people playing. I see I can do it like this:

     

    [players 0-15]
    set g_excludedMaps ":mlb_temple:"
    [players 16-*]
    set g_excludedMaps ":adlernest:"
    [/players]

    will exclude map MLB Temple if the player amount is less or equal to 15 and exclude map Adlernest if the player amount is 16 or more. The player amount counting is controlled with g_playerCounting server cvar.

     

    When I put this in the server.cfg (not entirely sure if this is right as it didn't work in the mapconfigs) it worked but caused a problem. It cancelled out the g_excludedmaps cvar and executed its functions, but then the next map the g_excludedmaps cvar worked and the [players] block didn't. How I can I get these functions to both execute?

     

    The [players] block were put underneath the excludedmaps cvar in server.cfg. Just something i'd like to get working as a test. Thanks. 

  13. The reason why manipulating directly is so that the change would take effect before the actual client team command is handled. The team command is sent from the client only when they press ok button from the limbo panel or use it directly from the console.

     

    You probably don't need to call http://mygamingtalk.com/wiki/index.php/Silent_Lua#ClientUserinfoChanged after manipulating the status as the team command execution will do it. But otherwise this is needed.

     

    This is what I was wondering, thanks for clarifying this. I will test this soon and see what happens :)

  14. I'm working on a script to promote spectators automatically to shoutcaster status. The idea is when a client connects, they instantly become a shoutcaster, thus enjoying the additional features that SC allows in comparison to a spectator. I'm now doubting whether this is actually possible, but I'll explain what I was thinking.

     

    So here is the code:

     

     

     
    function et_ClientConnect( clientNum, firstTime, isBot) local 
    connect = et.gentity_get(clientNum, "pers.connected") if connect == 2 
    then return 
    end  
              
    local team = et.gentity_get(clientNum, "sess.sessionTeam") if 
    isBot(clientNum) then return end if team == 3 then   
    et.trap_SendConsoleCommand( et.EXEC_APPEND, "makesc 
    "..clientNum.."\n") return   end
    
     
    if isBot(clientNum) then return end if team == "" then   
    et.trap_SendConsoleCommand( et.EXEC_APPEND, "removesc 
    "..clientNum.."\n") return   end 
    
    function isBot(clientNum)   if et.gentity_get(clientNum,"ps.ping") == 0 
    then   return true   endend
     

     

    The script works as in it detects when a client is connected, and makes them a shoutcaster, however this doesn't happen if they have to reconnect to download a map for example.

    The main issue: I can't log them out of SC so that they can join a team. I originally was going to use "removesc" to take away their elevated status once they joined either b/r. However, they can't actually join a team so it's pointless trying to look for when they join a team. Is there a way to log them out as they are choosing a team (ie - limbo, looking for a /team cvar etc) or is this just impossible currently.

     

    If so, an idea I would like to request is Shoutcaster automatically logging the client out when they join a team. They log in, it is normal in spec but once a team is chosen they are logged out and have a normal status as per usual. Thanks for reading.

     

  15. There's one more question I have about this - can I add the date and time of when a client executes a command. E.G in the log 2013-04-05: 01:13:00 so I can check the log and see what time the specific command was executed. I tried to do this but I couldn't get it to work.

  16. 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

  17. Sorry to revive this but didn't see any point in creating a new topic. I have created a spec.lua that is a little rough around the edges currently but it is unfinished. It works fine but there are a couple of issues I would like help with.

    Firstly, here is the code:

     

    function et_ClientCommand(clientNum, command)
       if et.trap_Argv(0) == "spec" then
          if et.trap_Argc() == 2 then
             local targetClientNum = et.ClientNumberFromString(et.trap_Argv(1))
                             et.trap_SendConsoleCommand( et.EXEC_APPEND, "putteam" ..clientNum.. "s")
               et.gentity_set(clientNum, "sess.spectatorState", 2)   
                             et.gentity_set(clientNum, "sess.spectatorClient", targetClientNum)
                               
                    else
             et.trap_SendServerCommand(clientNum, "print \"Error: Need two parameters!\"")
          end
          return 1
       end
       return 0
    end
     

     

    Line 5, Console command does not seem to be working. When I am a spectator I can spec anyone using name/slot, but when I join I team I can't spec anybody at all. I am not put into spec and it does nothing - where have I gone wrong in putting MYSELF (clientNum?) into spec. The following fields (spectatorState and spectatorClient) work fine from here.

     

    The other issue is that the script does not return values for non-existent client numbers/names (11 slots listed eg, /spec 12 - this will spec the first available slot of the players on r/b). I was hoping to solve this by using the shortcut [1?] when I attempt to convert this to a custom command (!spec). Would this be sufficient or can I do this in the lua, if so, how?

     

    Finally, I still do not understand how to get the spec.lua to run by executing a custom command. For example:

     

    [command]

    command = example

    exec = ???? Can someone give an EXAMPLE of what I need to put here to run spec.lua - is it "lua spec [1?]" ?

    desc = blablala

    syntax =

    levels = 5

     

    Thanks.

  18. Hello everybody, this topic is to represent the .WAR|Clan. and our silEnT server.

     


    .WAR|Clan.

     

    The clan/server is active since 2008 and our primary focus within the game is completion of the map
    objectives. We are a small, strong community and all share a passion for Wolfenstein: Enemy Territory.
    You can find more information about us by clicking on the links provided in the forums section.

     


    .WAR|Server.

     

    The basic information about our server is displayed below:

    IP: 213.108.31.45:27010
    Host: YCN-Hosting
    Server Location: UK, London
    Slots: 26
    Mod: silEnT Mod 0.6.3
    Version: ET 3.00
    Gametype: Map voting system
    XP Save: Forever

    Double Jump: Off
    PunkBuster: Off
    Adrenaline: Off
    Friendly Fire: Off
    Heavy Weapon Limitations: On (Panzerfaust)

    Our server is accessible from all ET versions (2.55, 2.56, 2.60, 2.6b)

     


    .WAR|Forums.

     

    You can visit our forums using this link:
    http://www.warclan.forumj.net

    Our rules can be found here:
    http://warclan.forumj.net/t599-server-forums-rules

     

     

    We hope to see you on the server!

     

    http://www.gametracker.com/server_info/213.108.31.45:27010/

  19. Ah okay thanks for the clarification. About the g_logprint, would there be a way to print the GUID of player that uses a console command (say if they did /players for a random example) to the log?

×
×
  • Create New...