ImportBot Posted April 25, 2013 Author Share Posted April 25, 2013 Originally Posted by PapaCharlie9*: sorry bwt that charlie admins only in the admin list. also could i have it as yell. messages are fine. thanks What exactly do you mean by admin list? * Restored post. It could be that the author is no longer active. Link to comment
ImportBot Posted April 25, 2013 Author Share Posted April 25, 2013 Originally Posted by PapaCharlie9*: doesnt show.. , but yeah if a clan tag be put so only those with that clan tag can issue the command that would be great and a possible !cancel option to stop the count down The secondMessage delay was probably too short, not enough time for the level to reload. I edited the post. I extended it to 8 seconds. If that is still too short, make it 10*1000 or 15*1000. I also added a test for clan tag and a cancel command, !war cancel. * Restored post. It could be that the author is no longer active. Link to comment
ImportBot Posted April 26, 2013 Author Share Posted April 26, 2013 Originally Posted by IAF-SDS*: What is clan war? I went back a few pages and cannot see what it is used for, unless I just missed it. Is it a sort of clan mode that in intended to put your clan all on one team and the other non-clan players all on the other team so you could have your clan fight the visitors? * Restored post. It could be that the author is no longer active. Link to comment
ImportBot Posted April 26, 2013 Author Share Posted April 26, 2013 Originally Posted by starsky*: What exactly do you mean by admin list?list on insane with players names, as admins. ive managed to do it in this one. was having problems with compiling this seems to work although ive not done the cancel. does check for admin list or admin tags. this seems to be perfect for me. although i did change it to yell. first check to Expression Code: (Regex.Match(player.LastChat, @"^!war", RegexOptions.IgnoreCase).Success)second check to CodeCode: String admins = "admins"; // Name of custom list for admin player names String adminTags = "admin_tags"; // Name of custom list for admin tags String firstMessage = "Live after restart. in {0} seconds ..."; String secondMessage = "live good luck and have fun!"; String tag = player.Tag; if (tag.Length == 0) { Match tm = Regex.Match(player.Name, @"^[=_\-]_([^=_\-]{2,4})[=_\-]"); if (tm.Success) { tag = tm.Groups[1].Value; } else { tag = "no tag"; } } if (!plugin.isInList(player.Name, admins) && !plugin.isInList(tag, adminTags)) return false; ThreadStart restartRound = delegate { int countdown =10; while (countdown > 0) { plugin.ServerCommand("admin.yell",String.Format(firstMessage, countdown)); Thread.Sleep(2000); // 2 second --countdown; } plugin.ServerCommand("mapList.restartRound"); Thread.Sleep(10000); // 10 seconds plugin.ServerCommand("admin.yell",(secondMessage)); }; Thread t = new Thread(restartRound); t.Start(); Thread.Sleep(1); return false; * Restored post. It could be that the author is no longer active. Link to comment
ImportBot Posted April 26, 2013 Author Share Posted April 26, 2013 Originally Posted by HelloKitty*: I would like to know, if it is possible to define a action that yells to all admins on the server without setting up a custom admin list. I want the adminstatus to be checked on its account permissions. Dont wanna have to update the custom list regulary ..... thx in advance. Edit: to be more specific: I want to check "OnJoin" Expression "( player.Kdr > 5.0 || player.Accuracy > 50 || player.Spm > 1150 )" And then yell to all playing admins (that have kick permissions (dont wanna use custom list)) a message and log something to Procon chat. Guess I will have to deal with " bool CheckAccount(String name, out bool canKill, out bool canKick, out bool canBan, out bool canMove, out bool canChangeLevel); ... but real clue to to go on ..." * Restored post. It could be that the author is no longer active. Link to comment
ImportBot Posted April 26, 2013 Author Share Posted April 26, 2013 Originally Posted by starsky*: ive been trying to make a limit to disable limits with commands in game. this one works but has a major 3-5 minutes delay. any ideas why ? thanks in advance. onanychat first check: Expression Code: (Regex.Match(player.LastChat, @"^!setwar", RegexOptions.IgnoreCase).Success)second check: CODE Code: ThreadStart disablelimit = delegate { { if (plugin.setPluginVarValue("limit_2_state","Disabled")) { plugin.ServerCommand("admin.yell",("applied war!")); return; } } }; Thread t = new Thread(disablelimit); t.Start(); Thread.Sleep(1); return false; * Restored post. It could be that the author is no longer active. Link to comment
ImportBot Posted April 27, 2013 Author Share Posted April 27, 2013 Originally Posted by PapaCharlie9*: What is clan war?AKA scrim, clan battle, private match, etc. When two communities go to an unranked server and play a few rounds, clan vs clan. * Restored post. It could be that the author is no longer active. Link to comment
ImportBot Posted April 27, 2013 Author Share Posted April 27, 2013 Originally Posted by PapaCharlie9*: I would like to know, if it is possible to define a action that yells to all admins on the server without setting up a custom admin list. I want the adminstatus to be checked on its account permissions. Dont wanna have to update the custom list regulary ..... thx in advance. Edit: to be more specific: I want to check "OnJoin" Expression "( player.Kdr > 5.0 || player.Accuracy > 50 || player.Spm > 1150 )" And then yell to all playing admins (that have kick permissions (dont wanna use custom list)) a message and log something to Procon chat. Guess I will have to deal with " bool CheckAccount(String name, out bool canKill, out bool canKick, out bool canBan, out bool canMove, out bool canChangeLevel); ... but real clue to to go on ..." NOT TESTED, MAY NOT COMPILE! Note that because of stats fetching delays to Battlelog, the OnJoin limit might not trigger until several seconds or even minutes after the player has already spawned and started playing. Create a limit to evaluate OnJoin, call it "Admin Alert", leave Action set to None. Set first_check to this Expression: Code: ( player.Kdr > 5.0 || player.Accuracy > 50 || player.Spm > 1150 )Set second_check to this Code: Code: // For all players, find admins and yell an alert to them List<PlayerInfoInterface> all = new List<PlayerInfoInterface>(); all.AddRange(team1.players); all.AddRange(team2.players); all.AddRange(team3.players); all.AddRange(team4.players); bool canKill; bool canKick; bool canBan; bool canMove; bool canChangeLevel; foreach (PlayerInfoInterface p in all) { if (plugin.CheckAccount(p.Name, out canKill, out canKick, out canBan, out canMove, out canChangeLevel)) { if (canKill) { // this p.Name is an admin plugin.SendPlayerYell(p.Name, "Alert! " + player.Name + " is a suspect!", 15); } } } return false; * Restored post. It could be that the author is no longer active. Link to comment
ImportBot Posted April 27, 2013 Author Share Posted April 27, 2013 Originally Posted by PapaCharlie9*: list on insane with players names, as admins. ive managed to do it in this one.Looks good, nice job. Thanks for the contribution. * Restored post. It could be that the author is no longer active. Link to comment
ImportBot Posted April 27, 2013 Author Share Posted April 27, 2013 Originally Posted by PapaCharlie9*: ive been trying to make a limit to disable limits with commands in game. this one works but has a major 3-5 minutes delay. any ideas why ? thanks in advance.Don't put it in a thread and there won't be a delay. All the second_check has to be is this: Code: if (plugin.setPluginVarValue("limit_2_state","Disabled")) { plugin.ServerCommand("admin.yell",("applied war!")); return false; } return false; * Restored post. It could be that the author is no longer active. Link to comment
ImportBot Posted April 27, 2013 Author Share Posted April 27, 2013 Originally Posted by IAF-SDS*: Thanks. Papa, I would appreciate a simple limit please that will show my TS3 and Vent info upon a trigger word. I've tried searching for an existing limit, but there are literally hundreds of pages to go thru and I have not found it. I found an auto chat trigger plugin, but it requires loading the plugins in the old loading style and I see issues with it from what others posted (old plugin that was originally meant for BFBC2 I believe). I think a simple limit makes sense for what I want. Example limit: When a player types the word "Vent" or "Ventrilo" in chat (maybe just the word "vent" covers both words, not case sensitive), I want the limit to yell for 15 seconds the following message to just the player who typed the trigger word, and at the same time I want it to send the identical message to chat for all to see: SPEAK with players in game on IAF Ventrilo IP: 8.6.2.152 : 4425 Same thing for when a player types the words "Team Speak", "TeamSpeak", "TeamSpeak3" or "TS3" (maybe just the word "teamspeak" and the phrase "team speak" cover the variations of both words, not case sensitive) in chat, I want the limit to yell for 15 seconds the following message to just the player who typed the trigger word, and at the same time I want it to send the identical message to chat for all to see: SPEAK with players in game on IAF TeamSpeak 3 IP: 216.52.148.11 : 9810 * Restored post. It could be that the author is no longer active. Link to comment
ImportBot Posted April 27, 2013 Author Share Posted April 27, 2013 Originally Posted by starsky*: Don't put it in a thread and there won't be a delay. All the second_check has to be is this: Code: if (plugin.setPluginVarValue("limit_2_state","Disabled")) { plugin.ServerCommand("admin.yell",("applied war!")); return false; } return false; i tried this and the yell still worked. but the disable fuction didnt. gonna have another look at this later. thanks * Restored post. It could be that the author is no longer active. Link to comment
ImportBot Posted April 27, 2013 Author Share Posted April 27, 2013 Originally Posted by HexaCanon*: Thanks. Papa, I would appreciate a simple limit please that will show my TS3 and Vent info upon a trigger word. I've tried searching for an existing limit, but there are literally hundreds of pages to go thru and I have not found it. I found an auto chat trigger plugin, but it requires loading the plugins in the old loading style and I see issues with it from what others posted (old plugin that was originally meant for BFBC2 I believe). I think a simple limit makes sense for what I want. Example limit: When a player types the word "Vent" or "Ventrilo" in chat (maybe just the word "vent" covers both words, not case sensitive), I want the limit to yell for 15 seconds the following message to just the player who typed the trigger word, and at the same time I want it to send the identical message to chat for all to see: SPEAK with players in game on IAF Ventrilo IP: 8.6.2.152 : 4425 Same thing for when a player types the words "Team Speak", "TeamSpeak", "TeamSpeak3" or "TS3" (maybe just the word "teamspeak" and the phrase "team speak" cover the variations of both words, not case sensitive) in chat, I want the limit to yell for 15 seconds the following message to just the player who typed the trigger word, and at the same time I want it to send the identical message to chat for all to see: SPEAK with players in game on IAF TeamSpeak 3 IP: 216.52.148.11 : 9810 ...* * Restored post. It could be that the author is no longer active. Link to comment
ImportBot Posted April 27, 2013 Author Share Posted April 27, 2013 Originally Posted by PapaCharlie9*: ...*Indeed, that is the basic template. To do all the matches in a single limit, just do all the Code in first_check (no second_check) and structure it like this: Code: if ( Regex.Match(player.LastChat, @"(_:^teamspeak|^ts[3]_|\s+teamspeak|\s+ts[3]_)", RegexOptions.IgnoreCase).Success ) { plugin.SendPlayerYell(player.Name, "XXX your TS message here", 15); } // Chat Trigger for "team speak" (two words) info: else if ( Regex.Match(player.LastChat, @"(_:^team[\s+]speak|\s+team[\s+]speak)", RegexOptions.IgnoreCase).Success ) { plugin.SendPlayerYell(player.Name, "XXX your TS message here", 15); } else if ( Regex.Match(player.LastChat, @"(_:^vent|\s+vent)", RegexOptions.IgnoreCase).Success ) { plugin.SendPlayerYell(player.Name, "XXX your Vent message here", 15); } return false;You can add as many else if (Regex.Match lines as you want for different keywords. EDIT: added "team speak" patterns * Restored post. It could be that the author is no longer active. Link to comment
ImportBot Posted April 28, 2013 Author Share Posted April 28, 2013 Originally Posted by IAF-SDS*: Great, thank you. I have a couple questions and fixes please: 1) Is this limit you've given me intended to only trigger if they use @ in front of the words? Do I simply remove the @ symbol to not have it require the @ to trigger? I want it to trigger if they simply type the words shown above ("Vent" and "Ventrilo" / "Team Speak", "TeamSpeak", "TeamSpeak3" or "TS3") without the need to add @ in front for the respective vent/ts3 info to be both yelled to the player who typed it and sent in normal chat to everyone. Please confirm this for me. This is to cover common questions I see, for example: Whats the vent IP address for this server? 2) Since this will be triggered without the requirement to have @ symbol, should I change ^ts[3]? to ^ts3? to avoid other words ending in "ts" (e.g. Whats up) from triggering it? Thanks again Papa. * Restored post. It could be that the author is no longer active. Link to comment
ImportBot Posted April 28, 2013 Author Share Posted April 28, 2013 Originally Posted by HexaCanon*: Great, thank you. I have a couple questions and fixes please: 1) Is this limit you've given me intended to only trigger if they use @ in front of the words? Do I simply remove the @ symbol to not have it require the @ to trigger? I want it to trigger if they simply type the words shown above ("Vent" and "Ventrilo" / "Team Speak", "TeamSpeak", "TeamSpeak3" or "TS3") without the need to add @ in front for the respective vent/ts3 info to be both yelled to the player who typed it and sent in normal chat to everyone. Please confirm this for me. This is to cover common questions I see, for example: Whats the vent IP address for this server? 2) Since this will be triggered without the requirement to have @ symbol, should I change ^ts[3]? to ^ts3? to avoid other words ending in "ts" (e.g. Whats up) from triggering it? Thanks again Papa. 1 - yes remove the @ 2 - yes. referring to the triggers in the original thread. * Restored post. It could be that the author is no longer active. Link to comment
ImportBot Posted April 28, 2013 Author Share Posted April 28, 2013 Originally Posted by PapaCharlie9*: Great, thank you. I have a couple questions and fixes please: 1) Is this limit you've given me intended to only trigger if they use @ in front of the words? Do I simply remove the @ symbol to not have it require the @ to trigger? I want it to trigger if they simply type the words shown above ("Vent" and "Ventrilo" / "Team Speak", "TeamSpeak", "TeamSpeak3" or "TS3") without the need to add @ in front for the respective vent/ts3 info to be both yelled to the player who typed it and sent in normal chat to everyone. Please confirm this for me. This is to cover common questions I see, for example: Whats the vent IP address for this server? 2) Since this will be triggered without the requirement to have @ symbol, should I change ^ts[3]? to ^ts3? to avoid other words ending in "ts" (e.g. Whats up) from triggering it? Thanks again Papa. No and no. The code I provided does what you requested. The @ is before the string, not in the string. It is a special programming code that means that the string should be interpreted literally. As for ts[3], note the ^ in one case and the \s+ in the other. The ^ means that the string must begin with ts[3]. The \s+ means there is one or more whitespace characters before the ts[3]. There is a slight risk of someone typing "tsunami" or similar word triggering the reply, but I think that's acceptable, given what it would cost to fix it. If you absolutely can't tolerate even that small risk, change the line to this: Code: if ( Regex.Match(player.LastChat, @"(_:^teamspeak|^ts[3]_\s+|\s+teamspeak|\s+ts[3]_\s+)", RegexOptions.IgnoreCase).Success ) {Unfortunately, that also means that just "ts" or "ts3" by itself on a chat line will not trigger the reply. That's the cost. * Restored post. It could be that the author is no longer active. Link to comment
ImportBot Posted April 28, 2013 Author Share Posted April 28, 2013 Originally Posted by starsky*: hi guys is there any way to disable the ingame console. for all players default bided to "`" key. have seen alot of server crashes caused by this console _. thanks in advance. * Restored post. It could be that the author is no longer active. Link to comment
ImportBot Posted April 29, 2013 Author Share Posted April 29, 2013 Originally Posted by M4thoTiX*: Hi guys I've written a limit and need ur help: Its triggered "OnRoundEnd" and first check is Code: List<PlayerInfoInterface> players = new List<PlayerInfoInterface>(); players.AddRange(team1.players); players.AddRange(team2.players); Dictionary<String,int> PlayerTimes = new Dictionary<String,int>(); StreamReader sr = new StreamReader("Logs/ActivityLog.txt"); while(sr.ReadLine() != null){ String[] player = sr.ReadLine().Split(' '); PlayerTimes.Add(player[0],int.Parse(player[1])); } sr.Close(); File.Delete("Logs/ActivityLog.txt"); List<String> pl = new List<String>(PlayerTimes.Keys); int Time; foreach(PlayerInfoInterface p in players){ foreach(String pp in pl){ if(p.FullName == pp){ Time = PlayerTimes[pp] + Convert.ToInt32(p.TimeRound); pl.Remove(pp); }else{ Time = Convert.ToInt32(p.TimeRound); } plugin.Log("Logs/ActivityLog.txt",Convert.ToString(Time)); } } foreach(String p in pl){ plugin.Log("Logs/ActivityLog.txt",p + " " + PlayerTimes[p]); }Can u please take a look on my code and tell me why it is not working. Thanks M4thoTiX * Restored post. It could be that the author is no longer active. Link to comment
ImportBot Posted April 29, 2013 Author Share Posted April 29, 2013 Originally Posted by IAF-SDS*: Thank you again Papa. * Restored post. It could be that the author is no longer active. Link to comment
ImportBot Posted April 29, 2013 Author Share Posted April 29, 2013 Originally Posted by Tomgun*: Ive done the following for "noob calling prevention" but can someone edit it to exclude warnings and kick for people with a certain tag please (eg my clans tag) evaluation = OnAnyChat first check Code List bad_words = new List(); bad_words.Add(@".*n+[ -/:-@[-`{-~£]*[3e]+[ -/:-@[-`{-~£]*w+[ -/:-@[-`{-~£]*[bp].*"); bad_words.Add(@".*b+[ -/:-@[-`{-~£]*[o0]{2,}[ -/:-@[-`{-~£]*n.*"); bad_words.Add(@".*n+[ -/:-@[-`{-~£]*[4aiu*]+[ -/:-@[-`{-~£]*b.*"); bad_words.Add(@".*n+[ -/:-@[-`{-~£]*[o0]+[ -/:-@[-`{-~£]*[bp]{2,}.*"); bad_words.Add(@".*n+[ -/:-@[-`{-~£]*[o0u]+[ -/:-@[-`{-~£]*[o0u]+[ -/:-@[-`{-~£]*[bp].*"); bad_words.Add("noob"); String[] chat_words = Regex.Split(player.LastChat, @"\s+"); foreach(String chat_word in chat_words) foreach(String bad_word in bad_words) if (Regex.Match(chat_word, "^"+bad_word+"$", RegexOptions.IgnoreCase).Success) return true; return false; second check Code double count = limit.Activations(player.Name); if (count == 1) plugin.SendSquadMessage(player.TeamId, player.SquadId, plugin.R("%p_n%, this is a NOOB word free zone!!!!")); else if (count == 2) { plugin.KillPlayer(player.Name); plugin.SendSquadMessage(player.TeamId, player.SquadId, plugin.R("%p_n%, this is your %p_x_th% warning, stop saying the word NOOB or your kicked!")); } else if (count == 3) { plugin.KickPlayerWithMessage(player.Name, plugin.R("%p_n%, kicked you for excessive use of the word noob!")); plugin.SendGlobalMessage(plugin.R("%p_n% was kicked for excessive use of the word noob")); } return false; if anyone can help that would be good, cheers Also is it possible to write a limit that can check the accounts and anyone that is wearing our tags but not in the account list they get removed from the server, we are starting to get imposters using our tags and our admins arnt always ingame again cheers.. * Restored post. It could be that the author is no longer active. Link to comment
ImportBot Posted April 29, 2013 Author Share Posted April 29, 2013 Originally Posted by starsky*: is there a way to make a limit to change server name and lock it to a password. by typing something like !lockServer and load a config file for wars ? thanks in advance * Restored post. It could be that the author is no longer active. Link to comment
ImportBot Posted April 29, 2013 Author Share Posted April 29, 2013 Originally Posted by MorpheusX(AUT)*: is there a way to make a limit to change server name and lock it to a password. by typing something like !lockServer and load a config file for wars ? thanks in advance Setting a join-password for the server is not possible without restarting it.In order to be able to set a password, your server must be started as unranked. The ranked/unranked setting can just be altered in the startup.txt file at your GSP's webinterface. * Restored post. It could be that the author is no longer active. Link to comment
ImportBot Posted April 29, 2013 Author Share Posted April 29, 2013 Originally Posted by starsky*: thanks for feedback. is it still possable to set it on the command to load another config e.g hardcore config , softcore config with password set in them. then restart server ? saves loading procon ect. * Restored post. It could be that the author is no longer active. Link to comment
ImportBot Posted April 30, 2013 Author Share Posted April 30, 2013 Originally Posted by PapaCharlie9*: hi guys is there any way to disable the ingame console. for all players default bided to "`" key. have seen alot of server crashes caused by this console _. thanks in advance.Not that I know of, but there shouldn't be any way to crash a server. The ~ console only controls the local copy of BF3 that a player is using to connect to a game server. * Restored post. It could be that the author is no longer active. Link to comment
ImportBot Posted April 30, 2013 Author Share Posted April 30, 2013 Originally Posted by PapaCharlie9*: thanks for feedback. is it still possable to set it on the command to load another config e.g hardcore config , softcore config with password set in them. then restart server ? saves loading procon ect.As already explained, you have to do the password lock/unrank directly through your game server control panel. There's no easy way to make that work. This is why it is a good idea to just set up an unranked server that is always left unranked. That's what we have. It would be possible to change server vars.* and config settings on a temporary basis by a chat command. The command would change the config, set a new maplist, and then run the first map. Write a post and for each different config, fill out the following form: Name of config: Mode: Map list: Number of rounds per map: Chat command: !war xxx Settings: For Settings, you can use Procon's Generate Settings option. Temporary set up Procon with the settings you want, generate the settings, then restore what you had before. Doing this on a empty server is best. For example, suppose you want a command for hardcore TDM for Canals and Kharg. The form would be filled out as follows: Name of config: Hardcore TDM Mode: TDM Map list: MP_017, MP_018 Number of rounds per map: 99 (because you will use in-game admin command to set the next map and run it) Chat command: !war hc Settings: vars.friendlyFire true vars.regenerateHealth true vars.killCam false vars.hud false vars.crossHair false vars.3dSpotting false vars.nameTag false vars.3pCam false vars.soldierHealth 60 vars.onlySquadLeaderSpawn true vars.gameModeCounter 200 * Restored post. It could be that the author is no longer active. Link to comment
ImportBot Posted April 30, 2013 Author Share Posted April 30, 2013 Originally Posted by IAF-SDS*: To do all the matches in a single limit, just do all the Code in first_check (no second_check) and structure it like this: Code: if ( Regex.Match(player.LastChat, @"(_:^teamspeak|^ts[3]_|\s+teamspeak|\s+ts[3]_)", RegexOptions.IgnoreCase).Success ) { plugin.SendPlayerYell(player.Name, "XXX your TS message here", 15); } else if ( Regex.Match(player.LastChat, @"(_:^vent|\s+vent)", RegexOptions.IgnoreCase).Success ) { plugin.SendPlayerYell(player.Name, "XXX your Vent message here", 15); } return false;You can add as many else if (Regex.Match lines as you want for different keywords.I used your first code the way you laid out in post #1094 (quoted above). It works great on all scenarios above (teamspeak[3], ts[3], and vent[rilo] variations), except it won't trigger when I type the words "team speak" with a space in between. It would be complete if you could adjust it to work on "team speak" too please. Thanks again Papa. * Restored post. It could be that the author is no longer active. Link to comment
ImportBot Posted April 30, 2013 Author Share Posted April 30, 2013 Originally Posted by TMiland*: Hello, i had an idea here the other day, not sure if it has been asked before, but here it goes: Is it possible to create a limit, that will save an away message set with f.eks !away [msg], that tells players who write your name in chat that you are away, and that you will respond as soon as you get back? And !back when you are back. I would want the function for a list of my admins, so that the players will want to maybe wait until i get back instead of leaving the server... Hope i make myself clear(I'm Norwegian), if not just ask! * Restored post. It could be that the author is no longer active. Link to comment
ImportBot Posted April 30, 2013 Author Share Posted April 30, 2013 Originally Posted by shadow2k1*: i dont know how huge of an undertaking this is but, is there anyone that can write up some code for a game of "tag" i found this plugin showthread....highlight=hunt* but it doesnt say it will work for bf3 the plugin i linked is basically what im looking for but without the use of a mysql or points essentially i would like to have a random person secretly picked at the start of a round,no one knows who it is. when that player is killed, a yell message apprears saying "john doe killed the billy bob, the profiled target" or something like that. * Restored post. It could be that the author is no longer active. Link to comment
ImportBot Posted April 30, 2013 Author Share Posted April 30, 2013 Originally Posted by PapaCharlie9*: I used your first code the way you laid out in post #1094 (quoted above). It works great on all scenarios above (teamspeak[3], ts[3], and vent[rilo] variations), except it won't trigger when I type the words "team speak" with a space in between. It would be complete if you could adjust it to work on "team speak" too please. Thanks again Papa. Original post #1094 updated to include "team speak" pattern. * 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.