ImportBot Posted April 23, 2016 Author Share Posted April 23, 2016 Originally Posted by s1ngular1ty*: Actually he could but i dont know if it would work. Apperantly, im not good enough to code such a hardcore code. Give every player vars example, for 30 mins., set on spawn, loadout codes to check if MAV is being used and start/restart counter everytime its true. Stop counter on death. plus maybe on every death check how many kills he has and at some point use some arithmetics to calculate his kill/MAV use ratio or something. Just an idea really, but practicaly, i wouldnt be able to do all that lol It can't be done. You can't tell what someone has in their kit when they spawn in InsaneLimits. * Restored post. It could be that the author is no longer active. Link to comment
ImportBot Posted April 24, 2016 Author Share Posted April 24, 2016 Originally Posted by BuRockK*: It can't be done. You can't tell what someone has in their kit when they spawn in InsaneLimits.Oh yea, forgot he meant in IL..i was thinking of this in proconrulz (not that all can be done in that either) But what if proconrulz makes a var depending on the "spawn with kit" and have IL check that var onSpawn (i read somewhere you could call vars from other plugins? not sure maybe it was another plugin) ? * Restored post. It could be that the author is no longer active. Link to comment
ImportBot Posted April 24, 2016 Author Share Posted April 24, 2016 Originally Posted by s1ngular1ty*: Oh yea, forgot he meant in IL..i was thinking of this in proconrulz (not that all can be done in that either) But what if proconrulz makes a var depending on the "spawn with kit" and have IL check that var onSpawn (i read somewhere you could call vars from other plugins? not sure maybe it was another plugin) ? You can't do it unless you write your own plugin. And even then you can't do it easily. * Restored post. It could be that the author is no longer active. Link to comment
ImportBot Posted April 24, 2016 Author Share Posted April 24, 2016 Originally Posted by BuRockK*: Someone pls tell me how to set a limit for the usage of a command in game.. i didnt understand how to use "double Activations(String PlayerName);" method. How can i check how many times a player used the command? * Restored post. It could be that the author is no longer active. Link to comment
ImportBot Posted April 24, 2016 Author Share Posted April 24, 2016 Originally Posted by s1ngular1ty*: Someone pls tell me how to set a limit for the usage of a command in game.. i didnt understand how to use "double Activations(String PlayerName);" method. How can i check how many times a player used the command?As an Expression limit.Activations(player.Name) > 2This returns true or false As code if (limit.Activations(player.Name) > 2) { //Do Something } double Activations(string PlayerName) is a function of the limit object that returns a double (number) that is the number of times a limit has been activated by a player. It requires a string input that is the player's name you want to check. This can only be used in the 2nd check. The limit object is not available in the 1st check. Example of it used in a limit myrcon.net/...insane-limits-examples#entry18419 * Restored post. It could be that the author is no longer active. Link to comment
ImportBot Posted April 24, 2016 Author Share Posted April 24, 2016 Originally Posted by BuRockK*: in that knife limit it says "double count = limit.Activations(player.Name);" as i understand it doubles the number set in variable "count" ? * Restored post. It could be that the author is no longer active. Link to comment
ImportBot Posted April 24, 2016 Author Share Posted April 24, 2016 Originally Posted by DelilerClan*: Double is an 8-byte numeric type. It is used to store large and small values. It also stores fractional values such as 1.5 and negative values such as -1.5. Count is just the name of the variable(double). * Restored post. It could be that the author is no longer active. Link to comment
ImportBot Posted April 24, 2016 Author Share Posted April 24, 2016 Originally Posted by BuRockK*: Double is an 8-byte numeric type. It is used to store large and small values. It also stores fractional values such as 1.5 and negative values such as -1.5. Count is just the name of the variable(double). So im guessing the way double was used in that code was not for numbers with decimals as limit.Activations(playerName) wouldnt have any. Simply used just in case the "count" var would be high? (probably be 64 at max) With these infos you guys given me i did managed to put usage limit on one of my limits and even warnings with every use. But i couldnt test this because IL excludes admins from kick/bans i think this didnt work although test msg above it did show up in chat: Code: if (limit.Activations(player.Name) > 3) { plugin.SendPlayerMessage(player.Name, "test msg"); plugin.EABanPlayerWithMessage(EABanType.EA_GUID, EABanDuration.Temporary, "player.Name", 15, "banned for using @admin more than 3 times in a round. TempBan 15.min."); } * Restored post. It could be that the author is no longer active. Link to comment
ImportBot Posted April 25, 2016 Author Share Posted April 25, 2016 Originally Posted by s1ngular1ty*: So im guessing the way double was used in that code was not for numbers with decimals as limit.Activations(playerName) wouldnt have any. Simply used just in case the "count" var would be high? (probably be 64 at max) With these infos you guys given me i did managed to put usage limit on one of my limits and even warnings with every use. But i couldnt test this because IL excludes admins from kick/bans i think this didnt work although test msg above it did show up in chat: Code: if (limit.Activations(player.Name) > 3) { plugin.SendPlayerMessage(player.Name, "test msg"); plugin.EABanPlayerWithMessage(EABanType.EA_GUID, EABanDuration.Temporary, "player.Name", 15, "banned for using @admin more than 3 times in a round. TempBan 15.min."); } Watch C# videos on youtube please. double limit.Activations(string playerName) is a method that returns a double which is a number. Double is a format for a number. It doesn't matter if the result will have decimals or not. That is irrelevant. They used a double as the return type because it can get larger than an integer (int). You can't pick the return type you want to use because you have to match what the method is returning otherwise your code won't compile because C# is a STRONGLY TYPED language. Double, int, string, etc. are all variable types. You can't store a double into an int in C# without casting (converting) the result. Therefore the variable you use to accept the output of limit.Activations(string playerName) has to be a double unless you cast it to an int somehow. This won't always work because a double can hold larger numbers than an int. This is why C# prevents you from mismatching types without explicitly telling it how to convert one to the other in your code. Because it knows the conversions don't always work. In this code: double count = limit.Activations(player.Name); They are declaring that the variable count is of TYPE double. Then they are setting count equal to the output of limit.Activations(player.Name) which will be a double. Therefore the code complies. You can do this: var count = limit.Activations(player.Name); "var" means C# will infer what TYPE of variable count needs to be based on what TYPE of result the method returns. So C# will automatically set var to a TYPE of double because it knows the method returns a double TYPE. When you do : (limit.Activations(player.Name) > 3) You aren't storing the return value of the method anywhere so you don't need a variable like count. This is called an EXPRESSION like I said earlier. It compares the output of the method to the number 3 and returns a true or false bool (boolean) value indicating if the expression is true or false. You could do the same thing this way: double count = limit.Activations(player.Name); if(count > 3) { // code here } You just aren't understanding how C# works. Which is why I told you to watch some introductory videos on youtube. You must know how C# works to program limits in InsaneLimits unless you want to do it by trial and error which takes way longer. * Restored post. It could be that the author is no longer active. Link to comment
ImportBot Posted April 25, 2016 Author Share Posted April 25, 2016 Originally Posted by BuRockK*: Watch C# videos on youtube please. When you do : (limit.Activations(player.Name) > 3) You aren't storing the return value of the method anywhere so you don't need a variable like count. This is called an EXPRESSION like I said earlier. It compares the output of the method to the number 3 and returns a true or false bool (boolean) value indicating if the expression is true or false. Yes and this code should work (partially works). But I still didnt get why eaban part dont work: Code: if (limit.Activations(player.Name) > 3) { plugin.SendPlayerMessage(player.Name, "test msg"); // This works. In game, player gets this msg in chat window when player uses the command more than 3 times in a round plugin.EABanPlayerWithMessage(EABanType.EA_GUID, EABanDuration.Temporary, "player.Name", 15, "banned for using @admin more than 3 times in a round. TempBan 15.min."); // But this doesnt work at all. Maybe its because im admin and it dont work on admins in IL by default_ }Im gonna start taking C# course in couple of weeks or a week at minimum. This will clear alotta things up for me * Restored post. It could be that the author is no longer active. Link to comment
ImportBot Posted April 25, 2016 Author Share Posted April 25, 2016 Originally Posted by s1ngular1ty*: Yes and this code should work (partially works). But I still didnt get why eaban part dont work: Code: if (limit.Activations(player.Name) > 3) { plugin.SendPlayerMessage(player.Name, "test msg"); // This works. In game, player gets this msg in chat window when player uses the command more than 3 times in a round plugin.EABanPlayerWithMessage(EABanType.EA_GUID, EABanDuration.Temporary, "player.Name", 15, "banned for using @admin more than 3 times in a round. TempBan 15.min."); // But this doesnt work at all. Maybe its because im admin and it dont work on admins in IL by default_ }Im gonna start taking C# course in couple of weeks or a week at minimum. This will clear alotta things up for meRemove the quotes from player.Name. Also your message is way too long. They won't see it all. * Restored post. It could be that the author is no longer active. Link to comment
ImportBot Posted April 26, 2016 Author Share Posted April 26, 2016 Originally Posted by BuRockK*: Remove the quotes from player.Name. Also your message is way too long. They won't see it all.Oh, i was using the format based on the examples i saw in Details of plugin /* * Examples: * * KickPlayerWithMessage(""micovery"" , ""Kicked you for team-killing!""); * EABanPlayerWithMessage(EABanType.EA_GUID, EABanDuration.Temporary, ""micovery"", 10, ""You are banned for 10 minutes!""); * PBBanPlayerWithMessage(PBBanDuration.Permanent, ""micovery"", 0, ""You are banned forever!""); * ServerCommand(""admin.listPlayers"", ""all""); */ I didnt think player.Name replacing with an actual player name was gonna make difference when i saw the quotes. This is why i need to take a C# course soon * Restored post. It could be that the author is no longer active. Link to comment
ImportBot Posted April 27, 2016 Author Share Posted April 27, 2016 Originally Posted by windorose*: Hi I'm looking to have Insane Limits log all player who activate a limit and give positive or negative rep points on ADKATS DB(depending on the limit that has been activated). And it possible to activate or desactivate a limits depanding on map or on mod (one of them). thank you * Restored post. It could be that the author is no longer active. Link to comment
ImportBot Posted April 27, 2016 Author Share Posted April 27, 2016 Originally Posted by BuRockK*: Hello, can someone tell me out to convert a TimeSpan to a more readable version like just a number that is set either it is a number for "minutes" or for "seconds? ive made this TimeSpan and the limit is working just the way i wanted overall. but i cannot output the TimeSpan number as a plain number without the dots for example: it would normally output 00.00.05.00.00 (00 day:00 hours:05 minutes:00 seconds:00 miliseconds) but i need the output as "5" instead.. Heres where my problem accurs: Code: TimeSpan usedelayAdminLimit = new TimeSpan(0, 0, 5, 0, 0);Code: double usenumindelay = limit.Activations(player.Name, usedelayAdminLimit); if (usenumindelay > 1) { plugin.SendPlayerMessage(player.Name, plugin.R("You can only use this command every usedelayAdminLimit mins."));In the message to player, "usedelayAdminLimit" shows as plain text. Probably because its a TimeSpan var? * Restored post. It could be that the author is no longer active. Link to comment
ImportBot Posted April 29, 2016 Author Share Posted April 29, 2016 Originally Posted by BuRockK*: Hello, can someone tell me out to convert a TimeSpan to a more readable version like just a number that is set either it is a number for "minutes" or for "seconds? ive made this TimeSpan and the limit is working just the way i wanted overall. but i cannot output the TimeSpan number as a plain number without the dots for example: it would normally output 00.00.05.00.00 (00 day:00 hours:05 minutes:00 seconds:00 miliseconds) but i need the output as "5" instead.. Heres where my problem accurs: Code: TimeSpan usedelayAdminLimit = new TimeSpan(0, 0, 5, 0, 0);Code: double usenumindelay = limit.Activations(player.Name, usedelayAdminLimit); if (usenumindelay > 1) { plugin.SendPlayerMessage(player.Name, plugin.R("You can only use this command every usedelayAdminLimit mins."));In the message to player, "usedelayAdminLimit" shows as plain text. Probably because its a TimeSpan var?I found the way to convert TimeSpan to output a plain number ie: 5 mins. instead of 0:0:5:0:0 with TimeSpan.totalMinutes but i still couldnt find a way to send a msg to player with an int variable in the message. example.. this works: plugin.SendPlayerYell(p.Name, plugin.R("player.Name requested ADMIN"), 12); but this doesnt: plugin.SendPlayerMessage(player.Name, plugin.R("You can only use this command every totalmins mins.")); totalmins is basicly "usedelayAdminLimit.TotalMinutes" * Restored post. It could be that the author is no longer active. Link to comment
ImportBot Posted April 30, 2016 Author Share Posted April 30, 2016 Originally Posted by LCARSx64*: I found the way to convert TimeSpan to output a plain number ie: 5 mins. instead of 0:0:5:0:0 with TimeSpan.totalMinutes but i still couldnt find a way to send a msg to player with an int variable in the message. example.. this works: plugin.SendPlayerYell(p.Name, plugin.R("player.Name requested ADMIN"), 12); but this doesnt: plugin.SendPlayerMessage(player.Name, plugin.R("You can only use this command every totalmins mins.")); totalmins is basicly "usedelayAdminLimit.TotalMinutes" This should give you the result you want:Code: TimeSpan usedelayAdminLimit = new TimeSpan(0, 0, 5, 0, 0); double usenumindelay = limit.Activations(player.Name, usedelayAdminLimit); if (usenumindelay > 1) plugin.SendPlayerMessage(player.Name, "You can only use this command every " + usedelayAdminLimit.ToString(@"%m") + " mins."); * Restored post. It could be that the author is no longer active. Link to comment
ImportBot Posted April 30, 2016 Author Share Posted April 30, 2016 Originally Posted by BuRockK*: This should give you the result you want: Code: TimeSpan usedelayAdminLimit = new TimeSpan(0, 0, 5, 0, 0); double usenumindelay = limit.Activations(player.Name, usedelayAdminLimit); if (usenumindelay > 1) plugin.SendPlayerMessage(player.Name, "You can only use this command every " + usedelayAdminLimit.ToString(@"%m") + " mins."); It says "No overload for method 'ToString' takes '1' arguments" * Restored post. It could be that the author is no longer active. Link to comment
ImportBot Posted April 30, 2016 Author Share Posted April 30, 2016 Originally Posted by s1ngular1ty*: It says "No overload for method 'ToString' takes '1' arguments"Make these 2 changes Code: TimeSpan usedelayAdminLimit = new TimeSpan(0, 5, 0); double usenumindelay = limit.Activations(player.Name, usedelayAdminLimit); if (usenumindelay > 1) plugin.SendPlayerMessage(player.Name, "You can only use this command every " + usedelayAdminLimit.Minutes.ToString() + " mins."); * Restored post. It could be that the author is no longer active. Link to comment
ImportBot Posted April 30, 2016 Author Share Posted April 30, 2016 Originally Posted by BuRockK*: Make these 2 changes Code: TimeSpan usedelayAdminLimit = new TimeSpan(0, 5, 0); double usenumindelay = limit.Activations(player.Name, usedelayAdminLimit); if (usenumindelay > 1) plugin.SendPlayerMessage(player.Name, "You can only use this command every " + usedelayAdminLimit.Minutes.ToString() + " mins."); Thanks this worked. So now i know how to use variables in msgs.. lol One thing i didnt understand though, what you did in TimeSpan was to discard miliseconds? how can i define which time specification i can discard? * Restored post. It could be that the author is no longer active. Link to comment
ImportBot Posted April 30, 2016 Author Share Posted April 30, 2016 Originally Posted by s1ngular1ty*: Thanks this worked. So now i know how to use variables in msgs.. lol One thing i didnt understand though, what you did in TimeSpan was to discard miliseconds? how can i define which time specification i can discard? The TimeSpan structure has an overloaded constructor. This means it has several ways of specifying a time span when you initialize it. To see the different options, you can either read Microsoft's documentation or download Visual Studio and test it with simple command line programs. Then you can see all the different constructor options because Intellisense will show you. Microsoft's documentation: https://msdn.microsoft.com/en-us/lib...vs.110%29.aspx Look at Constructors section. * Restored post. It could be that the author is no longer active. Link to comment
ImportBot Posted April 30, 2016 Author Share Posted April 30, 2016 Originally Posted by BuRockK*: The TimeSpan structure has an overloaded constructor. This means it has several ways of specifying a time span when you initialize it. To see the different options, you can either read Microsoft's documentation or download Visual Studio and test it with simple command line programs. Then you can see all the different constructor options because Intellisense will show you. Microsoft's documentation: https://msdn.microsoft.com/en-us/lib...vs.110%29.aspx Look at Constructors section. Okay i will Got one more question, i use 2 different limits and they both have commands that start with "[@!]Admin". Example, one is "!Admin" or "@admin" and the other limits command is "!adminlist" or "@adminlist" I think i managed to work this around by using "if (Regex.Match(player.LastChat, @"^\s*[@!]admin[ ]*").Success) {" in the limit that uses !admin command to ensure it doesnt get mixed up with !adminlist. Would this be a better way for every limit you create to be sure no conflicts happen in the future? * Restored post. It could be that the author is no longer active. Link to comment
ImportBot Posted May 11, 2016 Author Share Posted May 11, 2016 Originally Posted by Hodor*: Guys, why i got error? Code: [02:14:09 98] [Insane Limits] Thread(settings): ERROR: 3 errors compiling Expression [02:14:09 98] [Insane Limits] Thread(settings): ERROR: (CS1525, line: 53, column: 12): Unexpected symbol `else' [02:14:09 99] [Insane Limits] Thread(settings): ERROR: (CS1525, line: 57, column: 12): Unexpected symbol `else' [02:14:09 99] [Insane Limits] Thread(settings): ERROR: (CS1525, line: 61, column: 12): Unexpected symbol `else'Code: double count = limit.ActivationsTotal(player.Name); if (count > 1) return false; String CC = player.CountryCode; if (CC.Equals("ru")) plugin.SendPlayerYell(player.Name, plugin.R ("\nWelcome %p_n%"),10); else plugin.SendPlayerMessage(plugin.R("Welcome %p_n%")); else if (CC.Equals("at")) plugin.SendPlayerYell(plugin.R("Willkommen %p_n%")); else plugin.SendPlayerMessage(plugin.R("Willkommen %p_n%")); else if(CC.Equals("fr")) plugin.SendPlayerYell(plugin.R("Bienvenue %p_n%")); else plugin.SendPlayerMessage(plugin.R("Bienvenue %p_n%")); else if (CC.Equals("it")) plugin.SendPlayerYell(plugin.R("Benvenuto %p_n%")); else plugin.SendPlayerMessage(plugin.R("Benvenuto %p_n%")); return false; * Restored post. It could be that the author is no longer active. Link to comment
ImportBot Posted May 11, 2016 Author Share Posted May 11, 2016 Originally Posted by BuRockK*: Guys, why i got error? Code: [02:14:09 98] [Insane Limits] Thread(settings): ERROR: 3 errors compiling Expression [02:14:09 98] [Insane Limits] Thread(settings): ERROR: (CS1525, line: 53, column: 12): Unexpected symbol `else' [02:14:09 99] [Insane Limits] Thread(settings): ERROR: (CS1525, line: 57, column: 12): Unexpected symbol `else' [02:14:09 99] [Insane Limits] Thread(settings): ERROR: (CS1525, line: 61, column: 12): Unexpected symbol `else'Code: double count = limit.ActivationsTotal(player.Name); if (count > 1) return false; String CC = player.CountryCode; if (CC.Equals("ru")) plugin.SendPlayerYell(player.Name, plugin.R ("\nWelcome %p_n%"),10); else plugin.SendPlayerMessage(plugin.R("Welcome %p_n%")); else if (CC.Equals("at")) plugin.SendPlayerYell(plugin.R("Willkommen %p_n%")); else plugin.SendPlayerMessage(plugin.R("Willkommen %p_n%")); else if(CC.Equals("fr")) plugin.SendPlayerYell(plugin.R("Bienvenue %p_n%")); else plugin.SendPlayerMessage(plugin.R("Bienvenue %p_n%")); else if (CC.Equals("it")) plugin.SendPlayerYell(plugin.R("Benvenuto %p_n%")); else plugin.SendPlayerMessage(plugin.R("Benvenuto %p_n%")); return false; try brackets { } Code: if (CC.Equals("ru")) { plugin.SendPlayerYell(player.Name, plugin.R ("\nWelcome %p_n%"),10); else { plugin.SendPlayerMessage(plugin.R("Welcome %p_n%")); } } * Restored post. It could be that the author is no longer active. Link to comment
ImportBot Posted May 11, 2016 Author Share Posted May 11, 2016 Originally Posted by Hodor*: try brackets { } Code: if (CC.Equals("ru")) { plugin.SendPlayerYell(player.Name, plugin.R ("\nWelcome %p_n%"),10); else { plugin.SendPlayerMessage(plugin.R("Welcome %p_n%")); } } Still Code: [16:06:57 64] [Insane Limits] Thread(settings): ERROR: (CS1525, line: 51, column: 16): Unexpected symbol `else' * Restored post. It could be that the author is no longer active. Link to comment
ImportBot Posted May 11, 2016 Author Share Posted May 11, 2016 Originally Posted by BuRockK*: Still Code: [16:06:57 64] [Insane Limits] Thread(settings): ERROR: (CS1525, line: 51, column: 16): Unexpected symbol `else' Im not sure when you want the "SendPlayerMessage" to trigger instead of "SendPlayerYell". * Restored post. It could be that the author is no longer active. Link to comment
ImportBot Posted May 11, 2016 Author Share Posted May 11, 2016 Originally Posted by Hodor*: Im not sure when you want the "SendPlayerMessage" to trigger instead of "SendPlayerYell".SendPlayerMessage its like admin.say and SendPlayerYell its like admin.yell, so i want both messages for say and yell to player, not global. * Restored post. It could be that the author is no longer active. Link to comment
ImportBot Posted May 11, 2016 Author Share Posted May 11, 2016 Originally Posted by BuRockK*: SendPlayerMessage its like admin.say and SendPlayerYell its like admin.yell, so i want both messages for say and yell to player, not global.Okay you dont need "else" if you want both to be sent. just use both commands Example for players from Russia(RU): Code: if (CC.Equals("ru")) { plugin.SendPlayerYell(player.Name, plugin.R ("\nWelcome %p_n%"),10); plugin.SendPlayerMessage(plugin.R("Welcome %p_n%")); } * Restored post. It could be that the author is no longer active. Link to comment
ImportBot Posted May 11, 2016 Author Share Posted May 11, 2016 Originally Posted by Hodor*: Thanks, no error. One more thing, how to make a delay between messages Say and Yell? Like 5 sec Code: double count = limit.ActivationsTotal(player.Name); if (count > 1) return false; String CC = player.CountryCode; if (CC.Equals("ru")) { plugin.SendPlayerYell(player.Name, plugin.R ("\nWelcome to our server %p_n%"),10); plugin.SendPlayerYell(player.Name, plugin.R ("\nPlease dont forget to read our rules %p_n%"),10); plugin.SendPlayerYell(player.Name, plugin.R ("\nGood luck have fun %p_n%"),10); plugin.SendPlayerMessage(player.Name, plugin.R("Welcome %p_n%")); plugin.SendPlayerMessage(player.Name, plugin.R("Please dont forget to read our rules %p_n%")); plugin.SendPlayerMessage(player.Name, plugin.R("Good luck have fun %p_n%")); } return false; * Restored post. It could be that the author is no longer active. Link to comment
ImportBot Posted May 11, 2016 Author Share Posted May 11, 2016 Originally Posted by BuRockK*: Thanks, no error. One more thing, how to make a delay between messages? Like 5 sec Code: double count = limit.ActivationsTotal(player.Name); if (count > 1) return false; String CC = player.CountryCode; if (CC.Equals("ru")) { plugin.SendPlayerYell(player.Name, plugin.R ("\nWelcome to our server %p_n%"),10); plugin.SendPlayerYell(player.Name, plugin.R ("\nPlease dont forget to read our rules %p_n%"),10); plugin.SendPlayerYell(player.Name, plugin.R ("\nGood luck have fun %p_n%"),10); plugin.SendPlayerMessage(player.Name, plugin.R("Welcome %p_n%")); plugin.SendPlayerMessage(player.Name, plugin.R("Please dont forget to read our rules %p_n%")); plugin.SendPlayerMessage(player.Name, plugin.R("Good luck have fun %p_n%")); } return false; You can set delay in SendPlayerMessage command with this prefix: plugin.SendPlayerMessage(player.Name, message, seconds); For yell msgs you would need to set TimeSpan variables. Unfortunitely, im not very familiar with those. * Restored post. It could be that the author is no longer active. Link to comment
ImportBot Posted May 12, 2016 Author Share Posted May 12, 2016 Originally Posted by Hodor*: You can set delay in SendPlayerMessage command with this prefix: plugin.SendPlayerMessage(player.Name, message, seconds); For yell msgs you would need to set TimeSpan variables. Unfortunitely, im not very familiar with those. Me too.. So i still need a help and waiting it * 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.