-
Posts
70 -
Joined
-
Last visited
-
Days Won
6
Content Type
Forums
Profiles
Events
Gallery
Downloads
Articles
Everything posted by Geo
-
Seems like he's having problems with the two files (revivingspree.txt and rspree-records.txt) and the server is crashing at the end of each map as a result. I would advise you not to use the script for now as I don't know why this is happening, never used rspree myself. Pretty sure those spree luas were designed for etpro anyway - I had to change a lot when I tried to use kspree. Supprimer rspree.lua a partir de silent.cfg et puis tester
-
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.
-
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.
-
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.
-
Subnet bans should be displayed in shrubbot.cfg alongside normal bans.
-
That's a good idea, or something that limits the amount of msgs within a time period to prevent any spam perhaps.
-
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
-
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?
-
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
-
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.
-
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.
-
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!
-
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: 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.
-
This is what I was wondering, thanks for clarifying this. I will test this soon and see what happens
-
Thanks, this worked perfectly!
-
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.
-
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.
-
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
-
It worked as a .zip file, thanks I tested it on 2 servers yesterday and it worked flawlessly, but you may want to test it first just in case.
-
Version 1.1
239 downloads
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 -
I've made an updated version of this using the help you provided, also added in a couple of extra features. Would like to share the spec.lua with others but I don't know where to upload the file, for some reason couldn't upload the lua file on that downloads page
-
Thanks for the fast reply. I see where I have gone wrong and appreciate you improving and making my original script function. I look forward to testing it out
-
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: 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.
-
I also use ET 3.00 and silent 0.6.3 with no problems. I also use my own lua and this has no negative effects on the server. Have you tried a different gametype as a test?
-
Thankyou, I managed to get my original script to work but your example is much simpler and a lot easier to understand! Much appreciated.