ImportBot Posted December 7, 2014 Share Posted December 7, 2014 Originally Posted by PapaCharlie9*: PC9, This is an edit of post #2178 with new punishments added... appears there was a little confusion, as I do not know how to use multiple quotes ...yet... Thanks for "knife only" server code you did do. Will save it for future use. ""...This Code would be for BF3 GunMaster with a little SQDM and Scavenger played also ..."" _gp? PapaCharlie9, if you have some time Had a thought for a new twist for GunMaster, make it a little harder and perhaps more interesting...(might work with other modes as well)... I run and maintain -WalkInDead- GunMaster server. Would be able to give you what ever access to it you might need. Not sure if this can be done with an Insane Limit or better as a stand alone plug-in. In time I might be able to figure out how to code it, but do not think I would do it justice. Main thought: Anytime a player is killed by a knife, would need to get a knife kill before getting a kill with any other weapon... Explanation: When player is killed by a knife, he would be added to an 'IT' list. Player would be given a YELL warning "You are 'IT'... You must get Knife Kill..." Player would remain on 'IT' list until he got a Knife Kill... If 'IT' player kills with any other weapon punishments would be ... 1st non knife kill would be admin killed with Yell warning message "You are 'IT'...knife kill needed" 2nd non knife kill would be admin killed with Yell warning "You are 'IT'...knife kill needed or be kicked" 3rd non knife kill would be round banned with message stating "You were 'IT'...knife kill was needed" When 'IT' player gets knife kill, he would be removed from 'IT' list with Yell "You are Free to Kill with All Weapons" At end of Round 'IT' list would be reset... Not sure what would be best way for this to be enabled , by vote or by admin in game... My thinking is by admin in game, so it can be shut off again if needed... The biggest draw back is this might turn server into a knife only server, but I am sure there will be players still trying to win with all weapons... _gp? For the admin command, I'm going to assume that a custom list of player names is okay. The alternative is to use Procon accounts, but that's more code and might not be what you wanted anyway. Create a custom list, call it gm_admins, Enabled, CaseInsensitive. Add all the admins that can control the mode as player names separated by commas. This will require two limits. Limit 1 This is for the admin commands. !gameon - enables the you're it mode. !gameoff - disables the you're it mode !game - reports the current state of the game mode Create a new limit to evaluate OnAnyChat, call it "Game of Tag Command". Set first_check to this Code: Code: String key = "GameOfTag"; String msg = null; if (Regex.Match(player.LastChat, @"^!gameon", RegexOptions.IgnoreCase).Success) { if (!plugin.isInList(player.Name, "gm_admins")) { plugin.SendPlayerMessage(player.Name, "You do not have permission to use that command!"); return false; } plugin.RoundData.setBool(key, true); msg = "Game of tag enabled!"; plugin.SendPlayerMessage(player.Name, msg); plugin.ConsoleWrite(msg + " by " + player.Name); } else if (Regex.Match(player.LastChat, @"^!gameoff", RegexOptions.IgnoreCase).Success) { if (!plugin.isInList(player.Name, "gm_admins")) { plugin.SendPlayerMessage(player.Name, "You do not have permission to use that command!"); return false; } plugin.RoundData.setBool(key, false); msg = "Game of tag disabled!"; plugin.SendPlayerMessage(player.Name, msg); plugin.ConsoleWrite(msg + " by " + player.Name); } else if (Regex.Match(player.LastChat, @"^!game", RegexOptions.IgnoreCase).Success) { if (!plugin.isInList(player.Name, "gm_admins")) { plugin.SendPlayerMessage(player.Name, "You do not have permission to use that command!"); return false; } bool enabled = false; if (plugin.RoundData.issetBool(key)) enabled = plugin.RoundData.getBool(key); plugin.SendPlayerMessage(player.Name, "Game of tag is " + ((enabled) _ "enabled!" : "disabled!")); } return false; Limit 2 This handles the It player and warnings. Create a limit to evaluate OnKill, call it "Game of Tag". Set first_check to this Expression: Code: (true)Set second_check to this Code: Code: String key = "GameOfTag"; String msg = null; // Check if mode is enabled bool enabled = false; if (plugin.RoundData.issetBool(key)) enabled = plugin.RoundData.getBool(key); if (!enabled) return false; // Check if a knife kill bool knifeKill = (kill.Weapon == "Melee"); // If victim not IT and knife kill, make IT // If killer is IT and knife kill, make not IT // If killer is IT and NOT knife kill, warn/kick if (!victim.RoundData.issetInt(key) && knifeKill) { // Victim is now IT! msg = "YOU ARE 'IT'! Your next kill MUST be a knife kill!"; plugin.SendPlayerMessage(victim.Name, msg); plugin.SendPlayerYell(victim.Name, msg, 20); plugin.ConsoleWrite(victim.Name + ": " + msg); victim.RoundData.setInt(key, 0); } if (killer.RoundData.issetInt(key) && knifeKill) { // Killer is now NOT IT! msg = "NICE KNIFE KILL! You are free to kill with all weapons!"; plugin.SendPlayerMessage(killer.Name, msg); plugin.SendPlayerYell(killer.Name, msg, 20); plugin.ConsoleWrite(killer.Name + ": " + msg); killer.RoundData.unsetInt(key); } if (killer.RoundData.issetInt(key) && !knifeKill) { // Killer is IT and did not make a knife kill int warnings = killer.RoundData.getInt(key); warnings = warnings + 1; killer.RoundData.setInt(key, warnings); if (warnings == 1) { msg = "You are 'IT' ... Your next kill MUST be a knife kill!"; plugin.SendPlayerMessage(killer.Name, msg); plugin.SendPlayerYell(killer.Name, msg, 20); } else if (warnings == 2) { msg = "You are 'IT' ... Your next kill MUST be a knife kill OR BE KICKED!"; plugin.SendPlayerMessage(killer.Name, msg); plugin.SendPlayerYell(killer.Name, msg, 20); } else if (warnings == 3) { msg = "FINAL WARNING ... Your next kill MUST be a knife kill OR BE KICKED!"; plugin.SendPlayerMessage(killer.Name, msg); plugin.SendPlayerYell(killer.Name, msg, 20); } else if (warnings > 3) { msg = "for ignoring warnings: you were 'IT'... knife kill was needed"; plugin.ConsoleWrite("Kicked " + killer.Name + " " + msg); plugin.EABanPlayerWithMessage(EABanType.Name, EABanDuration.Round, killer.Name, 0, msg); } return false; } return false; * Restored post. It could be that the author is no longer active. Link to comment
ImportBot Posted December 8, 2014 Author Share Posted December 8, 2014 Originally Posted by _gp_*: PC9, trust you enjoyed your holiday... thx for the quick response on this when you had time. will be trying this out as soon as my server is mostly regulars and understand what is happening... _gp? * Restored post. It could be that the author is no longer active. Link to comment
ImportBot Posted December 8, 2014 Author Share Posted December 8, 2014 Originally Posted by _gp_*: this POST not NEEDED quoted IN next * Restored post. It could be that the author is no longer active. Link to comment
ImportBot Posted December 9, 2014 Author Share Posted December 9, 2014 Originally Posted by _gp_*: PC9, I did add one quick line to the code for limit 1: added this line to the top, to remind me of commands. Code: //Commands !gameon !gameoff !gameAll compiled with no errors while installing Limits for some reason after installing the 2 limits and enabling in game, I could enable limit, but it did not appear to work. Switched to virtual mode and could see it was trying to work. """Restarted Layer, enabled in game, and is working as intended..."""" I might make a few change to penalty adding a kill to verbal warning, verbal warning only, may not be getting players attention... want to run it as is for a few days before making any big changes to it, have to let players adapt to the ""new"" of this... 1 other question: Is there a Limit as to how many limits Insane Limits can handle? I am now running 25 limits in insane limits at the moment along with 13 plugins on procon layer.. I do not see any adverse affects with Insane limits or with procon itself or while using ingame admin commands... Thx again _gp? PC9, here are a the first code changes I have made, so far ( butchering your code as best I can)... What I have found I needed and have changed Limit 2 ... 1) Limit 2 original code, IT was only activating on Knife take down, not slash kill. solution: found and swiped your regex code for all knife kills from "Melee/Knife Death Shame Random" Limit 2)Limit 2 original code only used Warnings, felt Kill player every time was needed when getting gun kill while IT and add more warning kills before kicked.. solution: added extra warnings, also added code to kill IT player when needed. Killing player after 5 secs and made Yell warning 30 seconds, so it bleeds over into next Spawn. changed last punish from round ban a "0" Time ban LIMIT 2 rev _gp? Code: String key = "GameOfTag"; String msg = null; // Check if mode is enabled bool enabled = false; if (plugin.RoundData.issetBool(key)) enabled = plugin.RoundData.getBool(key); if (!enabled) return false; // Check if a knife kill bool knifeKill = Regex.Match(kill.Weapon, "(Melee|Knife)").Success; // If victim not IT and knife kill, make IT // If killer is IT and knife kill, make not IT // If killer is IT and NOT knife kill, warn/kick if (!victim.RoundData.issetInt(key) && knifeKill) { // Victim is now IT! msg = "YOU ARE 'IT'! Your next kill MUST be a knife kill!"; plugin.SendPlayerMessage(victim.Name, msg); plugin.SendPlayerYell(victim.Name, msg, 30); plugin.ConsoleWrite(victim.Name + ": " + msg); victim.RoundData.setInt(key, 0); } if (killer.RoundData.issetInt(key) && knifeKill) { // Killer is now NOT IT! msg = "NICE KNIFE KILL! You are free to kill with all weapons!"; plugin.SendPlayerMessage(killer.Name, msg); plugin.SendPlayerYell(killer.Name, msg, 30); plugin.ConsoleWrite(killer.Name + ": " + msg); killer.RoundData.unsetInt(key); } if (killer.RoundData.issetInt(key) && !knifeKill) { // Killer is IT and did not make a knife kill int warnings = killer.RoundData.getInt(key); warnings = warnings + 1; killer.RoundData.setInt(key, warnings); if (warnings == 1) { msg = "You are 'IT' ... Your next kill MUST be a knife kill!"; plugin.SendPlayerMessage(killer.Name, msg); plugin.SendPlayerYell(killer.Name, msg, 30); //plugin.KillPlayer(killer.Name, 5); } else if (warnings >= 2 && warnings <=4) { msg = "You are 'IT' ... Your next kill MUST be a knife kill OR BE KILLED!"; plugin.SendPlayerMessage(killer.Name, msg); plugin.SendPlayerYell(killer.Name, msg, 30); plugin.KillPlayer(killer.Name, 5); } else if (warnings > 4) { msg = "for ignoring warnings: you were 'IT'... knife kill was needed"; plugin.ConsoleWrite("Kicked " + killer.Name + " " + msg); //plugin.EABanPlayerWithMessage(EABanType.Name, EABanDuration.Round, killer.Name, 0, msg); plugin.EABanPlayerWithMessage(EABanType.EA_GUID, EABanDuration.Temporary, killer.Name, 0, msg); } return false; } return false;when you have the time, I think a 3rd Limit would help IT player be aware of needing a Knife Kill... OnSpawn : chat and yell warnings for IT player. Yell warning to last 30 secs or so.. Thx _gp? * Restored post. It could be that the author is no longer active. Link to comment
ImportBot Posted December 10, 2014 Author Share Posted December 10, 2014 Originally Posted by _gp_*: PC9, Made another Limit for this, so players can get rules, it is going cause allot of spam in chat until Players get used to TAG... Player can get TAG Rules by typing: !tag or !TAG or !Tag Player is Limited to 2 requests. make a new Limit: name Tag_Rules evaluate OnAnyChat first_check Expression Code: player.LastChat.StartsWith("!Tag")||player.LastChat.StartsWith("!tag")||player.LastChat.StartsWith("!TAG")second check Code Code: // Edit rules here List<String> Rules = new List<String>(); Rules.Add("----- TAG RULES -----"); //Rules.Add(" Tag is Simple"); Rules.Add(" If you are Knife killed, you are IT"); Rules.Add(" If you are IT, you need a knife kill."); Rules.Add("If you get a Gun Kill while IT, you will be auto killed."); Rules.Add("After Knife Kill while IT, you are free to Gun Kill."); // Try not to add more Rules.Add because it won't fit in the chat box. if(limit.Activations(player.Name) <= 2) foreach(string Rule in Rules) plugin.SendGlobalMessage(Rule); return false;I guess I am still inspired by all your hard work pc9 thx again _gp? * Restored post. It could be that the author is no longer active. Link to comment
ImportBot Posted December 11, 2014 Author Share Posted December 11, 2014 Originally Posted by PapaCharlie9*: I guess I am still inspired by all your hard work pc9 thx again _gp? That's what I like to see! But keep in mind that if you do a kill player, they can't see the Yell! * Restored post. It could be that the author is no longer active. Link to comment
ImportBot Posted December 11, 2014 Author Share Posted December 11, 2014 Originally Posted by _gp_*: That's what I like to see! But keep in mind that if you do a kill player, they can't see the Yell! also, the new IT player can not see yell when first killed by knife, but the yell is set to 30, so the YELL bleeds over into their next spawn... ... the only minor issue I see is when an IT player is killed by another player while being IT, his next spawn there is no reminder. As I mentioned in post #4, I do need another OnSpawn Limit, for IT players so IT player gets another message and yell. (I do get to verbose, instead of getting to the point.) It is beyond my grasp, at the moment as to how to carry variables over, not knowing which ones to carry over from limit to limit. thx _gp? * Restored post. It could be that the author is no longer active. Link to comment
ImportBot Posted December 12, 2014 Author Share Posted December 12, 2014 Originally Posted by PapaCharlie9*: also, the new IT player can not see yell when first killed by knife, but the yell is set to 30, so the YELL bleeds over into their next spawn... ... the only minor issue I see is when an IT player is killed by another player while being IT, his next spawn there is no reminder. As I mentioned in post #4, I do need another OnSpawn Limit, for IT players so IT player gets another message and yell. (I do get to verbose, instead of getting to the point.) It is beyond my grasp, at the moment as to how to carry variables over, not knowing which ones to carry over from limit to limit. thx _gp? Yeah, sorry, missed that request. It's an easy one, though. Create a limit to evaluate OnSpawn, call it "You are IT reminder". Set first_check to this Code: Code: String key = "GameOfTag"; String msg = null; // Check if mode is enabled bool enabled = false; if (plugin.RoundData.issetBool(key)) enabled = plugin.RoundData.getBool(key); if (!enabled) return false; if (player.RoundData.issetInt(key)) { msg = "YOU ARE 'IT'! Your next kill MUST be a knife kill!"; plugin.SendPlayerMessage(player.Name, msg); plugin.SendPlayerYell(player.Name, msg, 30); } return false; * Restored post. It could be that the author is no longer active. Link to comment
ImportBot Posted December 13, 2014 Author Share Posted December 13, 2014 Originally Posted by _gp_*: Yeah, sorry, missed that request. It's an easy one, though. Create a limit to evaluate OnSpawn, call it "You are IT reminder". Set first_check to this Code: Code: String key = "GameOfTag"; String msg = null; // Check if mode is enabled bool enabled = false; if (plugin.RoundData.issetBool(key)) enabled = plugin.RoundData.getBool(key); if (!enabled) return false; if (player.RoundData.issetInt(key)) { msg = "YOU ARE 'IT'! Your next kill MUST be a knife kill!"; plugin.SendPlayerMessage(player.Name, msg); plugin.SendPlayerYell(player.Name, msg, 30); } return false; thats an easy one he says , easy for you to say. I believe you just showed me how to carry some variables over from limit to limit .. "Thank You" I will install this limit now and finish hacking oops I mean recoding limit 2 and get that posted shortly. btw do you still bf3? can add you to list so you can turn this on so you can see it in action... I am getting some regulars asking to turn it on, also...overall most are liking this, but there is a language barrier at times. thx _gp? * Restored post. It could be that the author is no longer active. Link to comment
ImportBot Posted December 13, 2014 Author Share Posted December 13, 2014 Originally Posted by _gp_*: thats an easy one he says , easy for you to say. I believe you just showed me how to carry some variables over from limit to limit .. "Thank You" I will install this limit now and finish hacking oops I mean recoding limit 2 and get that posted shortly. btw do you still bf3? can add you to list so you can turn this on so you can see it in action... I am getting some regulars asking to turn it on, also...overall most are liking this, but there is a language barrier at times. thx _gp? think I meant redoing Limit 1 wanted rules to show in chat when this limit was ENABLED recoded to the following: LIMIT 1 rev _gp_, Code: //Commands !gameon !gameoff !game String key = "GameOfTag"; String msg = null; if (Regex.Match(player.LastChat, @"^!gameon", RegexOptions.IgnoreCase).Success) { if (!plugin.isInList(player.Name, "gm_admins")) { plugin.SendPlayerMessage(player.Name, "You do not have permission to use that command!"); return false; } plugin.RoundData.setBool(key, true); msg = "Game of tag enabled!"; plugin.SendPlayerMessage(player.Name, msg); plugin.ConsoleWrite(msg + " by " + player.Name); plugin.ServerCommand("admin.say", msg, "0"); List<String> Rules = new List<String>(); Rules.Add("----- TAG RULES -----"); Rules.Add(" If you are Knife killed, you are IT"); Rules.Add(" If you are IT, you need a knife kill."); Rules.Add("If you get a Gun Kill while IT, you will be auto killed."); Rules.Add("After Knife Kill while IT, you are free to Gun Kill."); foreach(string Rule in Rules) plugin.SendGlobalMessage(Rule); } else if (Regex.Match(player.LastChat, @"^!gameoff", RegexOptions.IgnoreCase).Success) { if (!plugin.isInList(player.Name, "gm_admins")) { plugin.SendPlayerMessage(player.Name, "You do not have permission to use that command!"); return false; } plugin.RoundData.setBool(key, false); msg = "Game of tag disabled!"; plugin.SendPlayerMessage(player.Name, msg); plugin.ConsoleWrite(msg + " by " + player.Name); } else if (Regex.Match(player.LastChat, @"^!game", RegexOptions.IgnoreCase).Success) { if (!plugin.isInList(player.Name, "gm_admins")) { plugin.SendPlayerMessage(player.Name, "You do not have permission to use that command!"); return false; } bool enabled = false; if (plugin.RoundData.issetBool(key)) enabled = plugin.RoundData.getBool(key); plugin.SendPlayerMessage(player.Name, "Game of tag is " + ((enabled) _ "enabled!" : "disabled!")); plugin.ServerCommand("admin.yell", "Game of tag is " + ((enabled) _ "enabled!" : "disabled!"), "20"); } return false;>>>working on trying to get TAG rules announced anytime !game is used by an admin when TAG is already enabled... all I manage to do so far when I add similar code Lines 16-26 to the !game function Line 52 is cause my Procon Layer to Crash and Restart... thx _gp? * Restored post. It could be that the author is no longer active. Link to comment
ImportBot Posted December 15, 2014 Author Share Posted December 15, 2014 Originally Posted by _gp_*: PC9, reference post #10 I am finding that anytime I add code to the function "!ingame" which checks if TAG is on, I can turn TAG on, then if I check with !game my procon layer restarts. I do not to want post the code, as others might use it in error. thx, _gp? * Restored post. It could be that the author is no longer active. Link to comment
ImportBot Posted December 15, 2014 Author Share Posted December 15, 2014 Originally Posted by _gp_*: PC9, reference post #10 I am finding that anytime I add code to the function "!ingame" which checks if TAG is on, I can turn TAG on, then if I check with !game my procon layer restarts. I do not to want post the code, as others might use it in error. thx, _gp? This is a rework of Limit 2 added a variable at Line 6, at beginning of code to be set for number of IT gunkills allowed before Kick. At the moment w =10, someday I hope to set it to 4 or so, once people understand TAG better.. Code: //rework _gp_ 12152014 String key = "GameOfTag"; String msg = null; int w = 0; //set number of gunkills allowed when it before kick w = 10; // Check if mode is enabled bool enabled = false; if (plugin.RoundData.issetBool(key)) enabled = plugin.RoundData.getBool(key); if (!enabled) return false; // Check if a knife kill bool knifeKill = Regex.Match(kill.Weapon, "(Melee|Knife)").Success; // If victim not IT and knife kill, make IT // If killer is IT and knife kill, make not IT // If killer is IT and NOT knife kill, warn/kick if (!victim.RoundData.issetInt(key) && knifeKill) { // Victim is now IT! msg = "YOU ARE 'IT'! Your next kill MUST be a knife kill!"; plugin.SendPlayerMessage(victim.Name, msg); plugin.SendPlayerYell(victim.Name, msg, 30); plugin.ConsoleWrite(victim.Name + ": " + msg); victim.RoundData.setInt(key, 0); } if (killer.RoundData.issetInt(key) && knifeKill) { // Killer is now NOT IT! msg = "NICE KNIFE KILL! You are free to kill with all weapons!"; plugin.SendPlayerMessage(killer.Name, msg); plugin.SendPlayerYell(killer.Name, msg, 30); plugin.ConsoleWrite(killer.Name + ": " + msg); killer.RoundData.unsetInt(key); } if (killer.RoundData.issetInt(key) && !knifeKill) { // Killer is IT and did not make a knife kill int warnings = killer.RoundData.getInt(key); warnings = warnings + 1; killer.RoundData.setInt(key, warnings); if (warnings == 1) { msg = "You are 'IT' ... Your next kill MUST be a knife kill!"; plugin.SendPlayerMessage(killer.Name, msg); plugin.SendPlayerYell(killer.Name, msg, 30); //plugin.KillPlayer(killer.Name, 0); } else if (warnings >= 2 && warnings <= w) { msg = "You are 'IT' ... Your next kill MUST be a knife kill OR BE KILLED!"; plugin.SendPlayerMessage(killer.Name, msg); plugin.SendPlayerYell(killer.Name, msg, 30); plugin.KillPlayer(killer.Name, 0); } else if (warnings > w) { msg = "for ignoring warnings: you were 'IT'... knife kill was needed"; plugin.ConsoleWrite("Kicked " + killer.Name + " " + msg); //plugin.EABanPlayerWithMessage(EABanType.Name, EABanDuration.Round, killer.Name, 0, msg); plugin.EABanPlayerWithMessage(EABanType.EA_GUID, EABanDuration.Temporary, killer.Name, 0, msg); } return false; } return false; [/code}//rework _gp_ 12152014 String key = "GameOfTag"; String msg = null; int w = 0; //set number of gunkills allowed when it before kick w = 10; // Check if mode is enabled bool enabled = false; if (plugin.RoundData.issetBool(key)) enabled = plugin.RoundData.getBool(key); if (!enabled) return false; // Check if a knife kill bool knifeKill = Regex.Match(kill.Weapon, "(Melee|Knife)").Success; // If victim not IT and knife kill, make IT // If killer is IT and knife kill, make not IT // If killer is IT and NOT knife kill, warn/kick if (!victim.RoundData.issetInt(key) && knifeKill) { // Victim is now IT! msg = "YOU ARE 'IT'! Your next kill MUST be a knife kill!"; plugin.SendPlayerMessage(victim.Name, msg); plugin.SendPlayerYell(victim.Name, msg, 30); plugin.ConsoleWrite(victim.Name + ": " + msg); victim.RoundData.setInt(key, 0); } if (killer.RoundData.issetInt(key) && knifeKill) { // Killer is now NOT IT! msg = "NICE KNIFE KILL! You are free to kill with all weapons!"; plugin.SendPlayerMessage(killer.Name, msg); plugin.SendPlayerYell(killer.Name, msg, 30); plugin.ConsoleWrite(killer.Name + ": " + msg); killer.RoundData.unsetInt(key); } if (killer.RoundData.issetInt(key) && !knifeKill) { // Killer is IT and did not make a knife kill int warnings = killer.RoundData.getInt(key); warnings = warnings + 1; killer.RoundData.setInt(key, warnings); if (warnings == 1) { msg = "You are 'IT' ... Your next kill MUST be a knife kill!"; plugin.SendPlayerMessage(killer.Name, msg); plugin.SendPlayerYell(killer.Name, msg, 30); //plugin.KillPlayer(killer.Name, 0); } else if (warnings >= 2 && warnings <= w) { msg = "You are 'IT' ... Your next kill MUST be a knife kill OR BE KILLED!"; plugin.SendPlayerMessage(killer.Name, msg); plugin.SendPlayerYell(killer.Name, msg, 30); plugin.KillPlayer(killer.Name, 0); } else if (warnings > w) { msg = "for ignoring warnings: you were 'IT'... knife kill was needed"; plugin.ConsoleWrite("Kicked " + killer.Name + " " + msg); //plugin.EABanPlayerWithMessage(EABanType.Name, EABanDuration.Round, killer.Name, 0, msg); plugin.EABanPlayerWithMessage(EABanType.EA_GUID, EABanDuration.Temporary, killer.Name, 0, msg); } return false; } return false; * Restored post. It could be that the author is no longer active. Link to comment
ImportBot Posted December 15, 2014 Author Share Posted December 15, 2014 Originally Posted by _gp_*: A New Limit for TAG this Limit turns TAG on a random bassis at beginning of a round. TAG is fun and a nice change of pace, but not want to play it every time. LIMIT 5 name TAG_Rnd_On_Off first check expression set to (true) 2nd check code Code: //TAG_Rnd_On_Off 12152014 String key = "GameOfTag"; String msg = null; Random rnd = new Random(); int TagOnOff = rnd.Next(9); //change number here at moment it is 4 Tag should be played less than half the time if(TagOnOff <= 4) { plugin.RoundData.setBool(key, true); msg = "Game of tag is enabled"; plugin.ServerCommand("admin.say", msg, "20"); plugin.ServerCommand("admin.yell", msg, "20"); List<String> Rules = new List<String>(); Rules.Add("----- TAG RULES -----"); Rules.Add(" If you are Knife killed, you are IT"); Rules.Add(" If you are IT, you need a knife kill."); Rules.Add("If you get a Gun Kill while IT, you will be auto killed."); Rules.Add("After Knife Kill while IT, you are free to Gun Kill."); foreach(string Rule in Rules) plugin.SendGlobalMessage(Rule); } else { plugin.RoundData.setBool(key, false); msg = "Game of tag is disabled"; plugin.ServerCommand("admin.say", msg, "20"); plugin.ServerCommand("admin.yell", msg, "20"); } return false;thx, _gp? * Restored post. It could be that the author is no longer active. Link to comment
ImportBot Posted December 16, 2014 Author Share Posted December 16, 2014 Originally Posted by PapaCharlie9*: If you make the KillPlayer delay longer than 0, they can see the Yell. Like make it 5 seconds. Code: plugin.SendPlayerMessage(killer.Name, msg); plugin.SendPlayerYell(killer.Name, msg, 30); plugin.KillPlayer(killer.Name, 5); * Restored post. It could be that the author is no longer active. Link to comment
ImportBot Posted December 17, 2014 Author Share Posted December 17, 2014 Originally Posted by _gp_*: If you make the KillPlayer delay longer than 0, they can see the Yell. Like make it 5 seconds. Code: plugin.SendPlayerMessage(killer.Name, msg); plugin.SendPlayerYell(killer.Name, msg, 30); plugin.KillPlayer(killer.Name, 5); I had it set for 5 seconds at first, players started questioning the delayed admin kill, not realizing admin kill was for IT gunkill. With the addition of the You Are IT Reminder LIMIT, player better know they are IT thx _gp? * Restored post. It could be that the author is no longer active. Link to comment
ImportBot Posted December 22, 2014 Author Share Posted December 22, 2014 Originally Posted by _gp_*: A New Limit for TAG this Limit turns TAG on a random bassis at beginning of a round. TAG is fun and a nice change of pace, but not want to play it every time. LIMIT 5 name TAG_Rnd_On_Off first check expression set to (true) 2nd check code Code: //TAG_Rnd_On_Off 12152014 String key = "GameOfTag"; String msg = null; Random rnd = new Random(); int TagOnOff = rnd.Next(9); //change number here at moment it is 4 Tag should be played less than half the time if(TagOnOff <= 4) { plugin.RoundData.setBool(key, true); msg = "Game of tag is enabled"; plugin.ServerCommand("admin.say", msg, "20"); plugin.ServerCommand("admin.yell", msg, "20"); List<String> Rules = new List<String>(); Rules.Add("----- TAG RULES -----"); Rules.Add(" If you are Knife killed, you are IT"); Rules.Add(" If you are IT, you need a knife kill."); Rules.Add("If you get a Gun Kill while IT, you will be auto killed."); Rules.Add("After Knife Kill while IT, you are free to Gun Kill."); foreach(string Rule in Rules) plugin.SendGlobalMessage(Rule); } else { plugin.RoundData.setBool(key, false); msg = "Game of tag is disabled"; plugin.ServerCommand("admin.say", msg, "20"); plugin.ServerCommand("admin.yell", msg, "20"); } return false;thx, _gp? I changed this by setting first expression from (true) to Code: (server.PlayerCount >= 12 )finding it is better to have minimum number of players before tag is started. thx _gp? * Restored post. It could be that the author is no longer active. Link to comment
ImportBot Posted December 22, 2014 Author Share Posted December 22, 2014 Originally Posted by _gp_*: PapaCharlie9, I changed LIMIT 5 so that TAG is only enabled if there is more than 12 players in server as noted in post #16. Thinking on Limiting TAG to only the smaller CQ maps or just CQ GM maps along with the minimum of 12 players. Is there an easier way than calling each map name and mode with an || ? Also I can not find the correct map names, thought there was a post that had a complete list of map names? thx for your time as always. _gp? * Restored post. It could be that the author is no longer active. Link to comment
ImportBot Posted December 22, 2014 Author Share Posted December 22, 2014 Originally Posted by PapaCharlie9*: PapaCharlie9, I changed LIMIT 5 so that TAG is only enabled if there is more than 12 players in server as noted in post #16. Thinking on Limiting TAG to only the smaller CQ maps or just CQ GM maps along with the minimum of 12 players. Is there an easier way than calling each map name and mode with an || ? Also I can not find the correct map names, thought there was a post that had a complete list of map names? thx for your time as always. _gp? What do you mean by smaller CQ maps? Do you mean the Conquest Small mode as a whole, or only specific maps? If you just meant the modes, make first_check be this: Code: (server.Gamemode == "ConquestSmall0" || server.Gamemode == "GunMaster0")There is also ConquestAssaultSmall0 and ConquestAssaultSmall1, not sure if you care about those though. * Restored post. It could be that the author is no longer active. Link to comment
ImportBot Posted December 23, 2014 Author Share Posted December 23, 2014 Originally Posted by _gp_*: What do you mean by smaller CQ maps? Do you mean the Conquest Small mode as a whole, or only specific maps? If you just meant the modes, make first_check be this: Code: (server.Gamemode == "ConquestSmall0" || server.Gamemode == "GunMaster0")There is also ConquestAssaultSmall0 and ConquestAssaultSmall1, not sure if you care about those though.PC9, excuse me for a moment or 2 while I laugh at myself. I tend to forget there are other maps and modes, I have been hosting GM maps exclusively since the release of CloseQuarters(CQ) and added AfterMath(AM) when that was released. I myself played SQDM only at the end of BF2 and played SQDM only when BC2 came out. BF3 had been no Vehicle SQDM for the most part until GM came out. Anyways, the laughing moment has passed ... -WalkInDead- is a HC GunMaster prefered server, runs 3 different malplists, based on the number of players. The server starts out with a maplist of GM CloseQuarter(CQ) maps adding the larger AfterMath(AM) maps including Scavenger as the server fills. CQ SQDM maps are dispersed through out the maplists, being used to break up the teams. I do not use the Multi-Balancer Unstacker as I feel that SQDM is a more suttle way. (I do wish that Swamp Flys Seeder Balancer balanced idlers in SQDM also) I am slowly whittling down as to where and when TAG will start up on its own, still leaving the option for gm_admins to turn it off/on. Think at this phase the code you gave (server.Gamemode == "GunMaster0") will suffice along with the minimum players needed. In time I may reduce it down to just the CQ GM maps, but think TAG works well with all GM maps. so for LIMIT 5 the correct syntax in the first expression to check map is GM and minimum players of 12 would be Code: (server.Gamemode == "GunMaster0" && server.PlayerCount >= 12 )sorry for any confusion earlier thx again _gp? * Restored post. It could be that the author is no longer active. Link to comment
ImportBot Posted December 25, 2014 Author Share Posted December 25, 2014 Originally Posted by PapaCharlie9*: You get players to stick around through an SQDM mode change? That is simply amazing. Every time we tried to mix SQDM, or even Rush for that matter, into a Conquest rotation, everyone would leave. I dunno, maybe GM players have a different mindset. Whatever, kudos for the unique rotation. If I didn't hate GM so much I might play on your server! I love SQDM, Infantry Only. * Restored post. It could be that the author is no longer active. Link to comment
ImportBot Posted December 25, 2014 Author Share Posted December 25, 2014 Originally Posted by OLDREDHACKSAW*: Good Morning Peoples. Regarding conquest mode. Having god knows how many conquest wins on my stats, and the fact I love playing large vehicle maps, playing conquest for the more hardened player, feels like a repeat? A few years ago, I joined the Brothers of Warfare Clan (Bow), and we currently run a knife only server and are running some of the most efficient code i have ever seen. When I repost the code, I'll do my best to recognize all the authors I abused Anyways I cant find a multi kill announcer, that I wish to activate only after (3 or more kills, & Player doing killing finally dies). P.S. Stay cool * Restored post. It could be that the author is no longer active. Link to comment
ImportBot Posted December 25, 2014 Author Share Posted December 25, 2014 Originally Posted by _gp_*: You get players to stick around through an SQDM mode change? That is simply amazing. Every time we tried to mix SQDM, or even Rush for that matter, into a Conquest rotation, everyone would leave. I dunno, maybe GM players have a different mindset. Whatever, kudos for the unique rotation. If I didn't hate GM so much I might play on your server! I love SQDM, Infantry Only.PapaCharlie9, it is almost surprising, that there are times, running a SQDM map will fill the server when running GM will not. If you like we can set up, a time to play. I am usually up late here, which would be early morning for you, I can set up a maplist running more CQ SQDM maps and have you as VIP or Admin so your vote would count as 3 in Vote Map plug in. Never know HC GM might grow on you Thx _gp? * Restored post. It could be that the author is no longer active. Link to comment
ImportBot Posted December 28, 2014 Author Share Posted December 28, 2014 Originally Posted by _gp_*: Good Morning Peoples. Regarding conquest mode. Having god knows how many conquest wins on my stats, and the fact I love playing large vehicle maps, playing conquest for the more hardened player, feels like a repeat? A few years ago, I joined the Brothers of Warfare Clan (Bow), and we currently run a knife only server and are running some of the most efficient code i have ever seen. When I repost the code, I'll do my best to recognize all the authors I abused Anyways I cant find a multi kill announcer, that I wish to activate only after (3 or more kills, & Player doing killing finally dies). P.S. Stay cool There is a LIMIT that was done, sounds close to what you might be looking for: UT Style Kill-Spree Messages think you will find it over in : myrcon.net/.../insane-limits-requests thx _gp? * Restored post. It could be that the author is no longer active. Link to comment
ImportBot Posted January 2, 2015 Author Share Posted January 2, 2015 Originally Posted by _gp_*: PC9, Made another Limit for this, so players can get rules, it is going cause allot of spam in chat until Players get used to TAG... Player can get TAG Rules by typing: !tag or !TAG or !Tag Player is Limited to 2 requests. make a new Limit: name Tag_Rules evaluate OnAnyChat first_check Expression Code: player.LastChat.StartsWith("!Tag")||player.LastChat.StartsWith("!tag")||player.LastChat.StartsWith("!TAG")second check Code Code: // Edit rules here List<String> Rules = new List<String>(); Rules.Add("----- TAG RULES -----"); //Rules.Add(" Tag is Simple"); Rules.Add(" If you are Knife killed, you are IT"); Rules.Add(" If you are IT, you need a knife kill."); Rules.Add("If you get a Gun Kill while IT, you will be auto killed."); Rules.Add("After Knife Kill while IT, you are free to Gun Kill."); // Try not to add more Rules.Add because it won't fit in the chat box. if(limit.Activations(player.Name) <= 2) foreach(string Rule in Rules) plugin.SendGlobalMessage(Rule); return false;I guess I am still inspired by all your hard work pc9 thx again _gp? I reworked this LIMIT for TAG rules, added Spanish !SpTag and Portugese !PTag to rules name: Tag_Rules_Multi set 1st to: expression Code: player.LastChat.StartsWith("!Tag")||player.LastChat.StartsWith("!tag")||player.LastChat.StartsWith("!TAG")||player.LastChat.StartsWith("!SpTag")||player.LastChat.StartsWith("!Sptag")||player.LastChat.StartsWith("!SpTAG")||player.LastChat.StartsWith("!PTag")||player.LastChat.StartsWith("!Ptag")||player.LastChat.StartsWith("!PTAG")set 2nd to: code Code: //rev _gp_ 01022015 added Spanish and Portugese if (player.LastChat.StartsWith("!Tag")||player.LastChat.StartsWith("!tag")||player.LastChat.StartsWith("!TAG")) { //English // Edit rules here List<String> Rules = new List<String>(); Rules.Add("----- TAG RULES -----"); //Rules.Add(" Tag is Simple"); Rules.Add(" If you are Knife killed, you are IT"); Rules.Add(" If you are IT, you need a knife kill."); Rules.Add("If you get a Gun Kill while IT, you will be auto killed."); Rules.Add("After Knife Kill while IT, you are free to Gun Kill."); // Try not to add more Rules.Add because it won't fit in the chat box. if(limit.Activations(player.Name) <= 2) foreach(string Rule in Rules) plugin.SendGlobalMessage(Rule); return false; } else if (player.LastChat.StartsWith("!SpTag")||player.LastChat.StartsWith("!Sptag")||player.LastChat.StartsWith("!SpTAG")) { //Spanish // Edit rules here List<String> Rules = new List<String>(); Rules.Add("----- TAG RULES -----"); //Rules.Add("TAG es simple"); Rules.Add("Si te matan con un cuchillo, entonces usted es el IT."); Rules.Add("Si usted es el IT, tienes que matar con un cuchillo."); Rules.Add("Si matas con una arma de fuego mientras eres el IT, usted va a morir ."); Rules.Add("Despues de matar con un cuchillo, usted es libre de usar cualquier arma."); // Try not to add more Rules.Add because it won't fit in the chat box. if(limit.Activations(player.Name) <= 2) foreach(string Rule in Rules) plugin.SendGlobalMessage(Rule); return false; } else if (player.LastChat.StartsWith("!PTag")||player.LastChat.StartsWith("!Ptag")||player.LastChat.StartsWith("!PTAG")) { //Portugese // Edit rules here List<String> Rules = new List<String>(); Rules.Add("----- TAG RULES -----"); //Rules.Add("TAG e simples"); Rules.Add("se voce for morto com uma faca, então voce e o IT."); Rules.Add("Se voce e o IT, voce precisa matar alguem com a faca."); Rules.Add("Se voce matar com uma arma de fogo enquanto voce e o IT, voce morrere ."); Rules.Add("Apos matar alguem com a faca, voce este livre para usar qualquer arma."); // Try not to add more Rules.Add because it won't fit in the chat box. if(limit.Activations(player.Name) <= 2) foreach(string Rule in Rules) plugin.SendGlobalMessage(Rule); return false; } return false;Looks like I may need to learn a little Regex. You can't make me, you can not make me, Skipper!!! Regex for the first expression, as it is getting a little messy doing it the way I have, to make it work. also would like to add German !GTag and perhaps Polish !_Tag but can not have accented letters as will not show in chat window and each rule needs to be as few words as possible to fit 4 rules into chat window. thx _gp? * Restored post. It could be that the author is no longer active. Link to comment
ImportBot Posted January 3, 2015 Author Share Posted January 3, 2015 Originally Posted by PapaCharlie9*: Looks like I may need to learn a little Regex. You can't make me, you can not make me, Skipper!!! Regex for the first expression, as it is getting a little messy doing it the way I have, to make it work. _gp? It's not that bad. Use http://regexpal.com to test. * Restored post. It could be that the author is no longer active. Link to comment
ImportBot Posted January 3, 2015 Author Share Posted January 3, 2015 Originally Posted by _gp_*: "Not that bad" he says PapaCharlie9, I do have another thought, for a new LIMIT that would be related to TAG. Would be stand alone from the GAME of TAG and would work in conjunction if TAG was enabled. LIMIT 6 name: IT_at_Start eval: OnRoundStart first check: expression Code: //this might be player count only, might be fun all modes (server.Gamemode == "GunMaster0" && server.PlayerCount >= 12 )second check: set Start_IT to enabled at random or by admin in list and can be enabled by admin always. //I do not know all the code yet, to set all players IT at start, not sure how players would be seen in Procon if coming from an SQDM map to 2 team map. work: set all players as IT with Say and Yell warnings that they are IT punishment would be admin kills until they got knife kill. I do believe admin kills should be penalty enough, as it would be next to impossible to win match. if the regular Game of Tag was enabled it would fit right in with this, would need to revise the You_Are_IT_Reminder LIMIT for IT at START thx, _gp? * Restored post. It could be that the author is no longer active. Link to comment
ImportBot Posted January 18, 2015 Author Share Posted January 18, 2015 Originally Posted by _gp_*: I feel myself slipping closer and closer to trying to learn 'REGEX' ...... no, no you can not make me skipper ... ... A New Limit for TAG this Limit turns TAG on a random bassis at beginning of a round. TAG is fun and a nice change of pace, but not want to play it every time. LIMIT 5 name TAG_Rnd_On_Off first check expression set to (true) 2nd check code Code: //TAG_Rnd_On_Off 12152014 String key = "GameOfTag"; String msg = null; Random rnd = new Random(); int TagOnOff = rnd.Next(9); //change number here at moment it is 4 Tag should be played less than half the time if(TagOnOff <= 4) { plugin.RoundData.setBool(key, true); msg = "Game of tag is enabled"; plugin.ServerCommand("admin.say", msg, "20"); plugin.ServerCommand("admin.yell", msg, "20"); List<String> Rules = new List<String>(); Rules.Add("----- TAG RULES -----"); Rules.Add(" If you are Knife killed, you are IT"); Rules.Add(" If you are IT, you need a knife kill."); Rules.Add("If you get a Gun Kill while IT, you will be auto killed."); Rules.Add("After Knife Kill while IT, you are free to Gun Kill."); foreach(string Rule in Rules) plugin.SendGlobalMessage(Rule); } else { plugin.RoundData.setBool(key, false); msg = "Game of tag is disabled"; plugin.ServerCommand("admin.say", msg, "20"); plugin.ServerCommand("admin.yell", msg, "20"); } return false;thx, _gp? Since starting to use TAG on WalkInDead have come to realize it works best on the smaller, Close Quarter maps. So I have modified this LIMIT... (i feel REGEX creeping up on me)... to allow only Close Quarter GunMaster along with 1 Aftermath Map, Epie Center (aka: Shakey)... all I did is modify the first check Expression. First Check : Expression Code: (server.MapFileName== "XP2_Skybar")&&(server.Gamemode == "GunMaster0")||(server.MapFileName== "XP2_Office")&&(server.Gamemode == "GunMaster0")||(server.MapFileName== "XP2_Palace")&&(server.Gamemode == "GunMaster0")||(server.MapFileName== "XP2_Factory")&&(server.Gamemode == "GunMaster0")||(server.MapFileName== "XP4_Quake")&&(server.Gamemode == "GunMaster0")been testing this today, it appears to be working.TAG can still be turned on at anytime by an admin on the admin list. thx _gp? * Restored post. It could be that the author is no longer active. Link to comment
ImportBot Posted January 18, 2015 Author Share Posted January 18, 2015 Originally Posted by PapaCharlie9*: First Check : Expression Code: (server.MapFileName== "XP2_Skybar")&&(server.Gamemode == "GunMaster0")||(server.MapFileName== "XP2_Office")&&(server.Gamemode == "GunMaster0")||(server.MapFileName== "XP2_Palace")&&(server.Gamemode == "GunMaster0")||(server.MapFileName== "XP2_Factory")&&(server.Gamemode == "GunMaster0")||(server.MapFileName== "XP4_Quake")&&(server.Gamemode == "GunMaster0") That's the right idea, but it would be safer to write it like this: Code: ( (server.MapFileName== "XP2_Skybar" && server.Gamemode == "GunMaster0") ||(server.MapFileName== "XP2_Office" && server.Gamemode == "GunMaster0") ||(server.MapFileName== "XP2_Palace" && server.Gamemode == "GunMaster0") ||(server.MapFileName== "XP2_Factory" && server.Gamemode == "GunMaster0") ||(server.MapFileName== "XP4_Quake" && server.Gamemode == "GunMaster0") )Then the grouping is clearer and less error prone. Your original relies on operator precedence to get the pairing correct. This version groups by parentheses, which I personally think is clearer. Now that it is written that way, a simplification becomes clearer. As long as one part of the && statement is always the same, as it is in this case, you can "refactor" by using boolean algebra. Boolean algebra follows the distributive property, so this is equivalent: Code: ( (server.Gamemode == "GunMaster0") && ( server.MapFileName== "XP2_Skybar" || server.MapFileName== "XP2_Office" || server.MapFileName== "XP2_Palace" || server.MapFileName== "XP2_Factory" || server.MapFileName== "XP4_Quake" ) )Less writing, same result. Now if you need to add a different mode, you can just tack on a pair like you already had before, like this: Code: ... ) ||(server.MapFileName=="MP_001" && server.Gamemode == "Domination0") * Restored post. It could be that the author is no longer active. Link to comment
ImportBot Posted January 19, 2015 Author Share Posted January 19, 2015 Originally Posted by _gp_*: That's the right idea, but it would be safer to write it like this: Code: ( (server.MapFileName== "XP2_Skybar" && server.Gamemode == "GunMaster0") ||(server.MapFileName== "XP2_Office" && server.Gamemode == "GunMaster0") ||(server.MapFileName== "XP2_Palace" && server.Gamemode == "GunMaster0") ||(server.MapFileName== "XP2_Factory" && server.Gamemode == "GunMaster0") ||(server.MapFileName== "XP4_Quake" && server.Gamemode == "GunMaster0") )Then the grouping is clearer and less error prone. Your original relies on operator precedence to get the pairing correct. This version groups by parentheses, which I personally think is clearer. Now that it is written that way, a simplification becomes clearer. As long as one part of the && statement is always the same, as it is in this case, you can "refactor" by using boolean algebra. Boolean algebra follows the distributive property, so this is equivalent: Code: ( (server.Gamemode == "GunMaster0") && ( server.MapFileName== "XP2_Skybar" || server.MapFileName== "XP2_Office" || server.MapFileName== "XP2_Palace" || server.MapFileName== "XP2_Factory" || server.MapFileName== "XP4_Quake" ) )Less writing, same result. Now if you need to add a different mode, you can just tack on a pair like you already had before, like this: Code: ... ) ||(server.MapFileName=="MP_001" && server.Gamemode == "Domination0") thank you PC9. think I had started out trying your last version, but was trying to be to simple, to where code would compile but not work correctly. Also was at a I am 'tired' point just wanting to get expression to work. 'K.I.S.S.' is a much better approach, always. Will get this installed, now... thx _gp? * Restored post. It could be that the author is no longer active. Link to comment
ImportBot Posted January 20, 2015 Author Share Posted January 20, 2015 Originally Posted by _gp_*: PC9, This is a start to making LIMIT 6, which was to be, every player IT at Start of round. I added this code to LIMIT 5, to see if it would work and it does compile. Code: //make all players IT if TAG ebabled and rnd <= 2 if(TagOnOff <= 2) { List<PlayerInfoInterface> all = new List<PlayerInfoInterface>(); all.AddRange(team1.players); all.AddRange(team2.players); all.AddRange(team3.players); all.AddRange(team4.players); foreach (PlayerInfoInterface p in all) { msg = "YOU ARE 'IT'! You MUST get a knife kill!"; plugin.SendPlayerMessage(p.Name, msg); plugin.SendPlayerYell(p.Name, msg, 30); //plugin.ConsoleWrite(p.Name + ": " + msg); p.RoundData.setInt(key, 0); } }So what LIMIT 5 looks like now, it does compile, just not sure it will work. Code: //TAG_Rnd_On_Off 12152014 //added IT for ALL at start 01192015 String key = "GameOfTag"; String msg = null; Random rnd = new Random(); int TagOnOff = rnd.Next(9); if(TagOnOff <= 4) { plugin.RoundData.setBool(key, true); msg = "Game of tag is enabled"; plugin.ServerCommand("admin.say", msg, "20"); plugin.ServerCommand("admin.yell", msg, "20"); List<String> Rules = new List<String>(); Rules.Add("----- TAG RULES -----"); Rules.Add(" If you are Knife killed, you are IT"); Rules.Add(" If you are IT, you need a knife kill."); Rules.Add("If you get a Gun Kill while IT, you will be auto killed."); Rules.Add("After Knife Kill while IT, you are free to Gun Kill."); foreach(string Rule in Rules) plugin.SendGlobalMessage(Rule); //make all players IT if TAG ebabled and rnd <= 2 if(TagOnOff <= 2) { List<PlayerInfoInterface> all = new List<PlayerInfoInterface>(); all.AddRange(team1.players); all.AddRange(team2.players); all.AddRange(team3.players); all.AddRange(team4.players); foreach (PlayerInfoInterface p in all) { msg = "YOU ARE 'IT'! You MUST get a knife kill!"; plugin.SendPlayerMessage(p.Name, msg); plugin.SendPlayerYell(p.Name, msg, 30); //plugin.ConsoleWrite(p.Name + ": " + msg); p.RoundData.setInt(key, 0); } } } else if(TagOnOff >= 5) { plugin.RoundData.setBool(key, false); msg = "Game of tag is disabled"; plugin.ServerCommand("admin.say", msg, "20"); plugin.ServerCommand("admin.yell", msg, "20"); } return false;Will test it later today thx, _gp? * Restored post. It could be that the author is no longer active. Link to comment
Recommended Posts
Archived
This topic is now archived and is closed to further replies.