Logical

GP Developer
  • Content Count

    792
  • Joined

  • Last visited

  • Days Won

    13

Logical last won the day on December 7 2020

Logical had the most liked content!

Community Reputation

363 Excellent

2 Followers

About Logical

Extra Info

  • Location
    Upstate New York

Recent Profile Visitors

2,009 profile views
  1. I mean, you could stream the game from your computer to your device, but the controls at your disposal will be few are far between making the game not very playable. In terms of porting CSS to mobile, could it be done, yes, will it be done, no. Valve won't spend their time to port an almost 16yo game to multiple mobile devices and as far as I am aware they are the only people allowed to do it due to licensing issues, access to source and its license, and of course the actual source code to the game.
  2. Logical

    Macrodox Guide

    As many of you are aware, our CS:S servers use a modified version of an anti-scripting plugin called Macrodox, in this, I hope to try and explain what Macrodox is, how it works, what causes someone to be flagged, types of bans, and how to read and compare Macrodox statistics. While this is aimed mostly at moderators and above, I believe it is good for everyone to understand to an extent what the plugin is. __________________________________________ What is Macrodox As I said it is an anti-scripting plugin that uses jump information to detect abnormalities relative to the client. In similar terms, for every jump/series of jumps you make, the plugin will process them and check if they follow any commonalities with behavior seen in common scripts. The information the plugin process from your jumps is the perfect jump rate, average # of +jump per -jump, and velocity. __________________________________________ What Causes Someone to Be Flagged The way someone is flagged by Macrodox is if their jumps match up with the aforementioned script like behavior. It is important to understand, however, being flagged or even banned by Macrodox does NOT mean the client was cheating. No anti-cheat system is perfect, and Macrodox is far from it, it is surprisingly difficult to detect when jumps are caused by 3rd party software and when it is just caused by someone getting lucky. __________________________________________ Types of Macrodox Bans There are 3 different types of Macrodox bans: pat1, hax1, and hax2. I don't expect anyone to understand the code, I just put it there for those interested in the specifics Note: The code shown is from the original unedited Macrodox plugin and not representative of the code on the server, my descriptions are of what is on the server. https://forums.alliedmods.net/showthread.php?p=1678026 pat1 bans are caused by a few different things, to get pat1 banned one must obtain >15 average jumps for a counter to go up, should you not hit 15 the counter will go down. Once that counter hits 15 you will be banned. The most common reason for getting pat1 banned is hyper scrolling, but macros will also trigger this. if (afAvgJumps[client] > 15.0) { if ((aiPatternhits[client] > 0) && (aiJumps[client] == aiPattern[client])) { aiPatternhits[client]++; if ((aiPatternhits[client] > 15) && (!bBanFlagged[client])) { BanDelayed(client, "pat1"); bBanFlagged[client] = true; } } else if ((aiPatternhits[client] > 0) && (aiJumps[client] != aiPattern[client])) { aiPatternhits[client] -= 2; } else { aiPattern[client] = aiJumps[client]; aiPatternhits[client] = 2; } } hax1 bans are almost never false positives, in our version of Macrodox ever time you hit <1.1 average jumps you trigger a counter, very much like how pat1 works, if you are able to get >350 velocity with a perf rate >=0.35 that counter will start to go up each jump. When that counter hits 20 you will be banned for hax1. else if((afAvgJumps[client] <1.1) && (!bBanFlagged[client])) { bSurfCheck[client] = true; if (aiIgnoreCount[client]) { aiIgnoreCount[client]--; } if (speed > 350 && aiIgnoreCount[client] == 0) { aiAutojumps[client]++; if (aiAutojumps[client] >= 20) { BanDelayed(client, "hax1"); } } else if (aiAutojumps[client]) { aiAutojumps[client]--; } } The final ban type is hax2, when you hit >=0.94 perf you will be banned. This is the simplest type of ban. if (afAvgPerfJumps[client] >= 0.94 && !bBanFlagged[client]) { BanDelayed(client, "hax2"); } __________________________________________ Macrodox Statistics When a player is banned or when you manually ask the plugin you will be given a string of information regarding the client's jumps. This is what it looks like when you use mdx_stats: 0 log-ical<4><[U:1:215587975]><> Avg: 6.940210/723.385620 Perf: 0.611370 bhop_bfur 9262.716796 1725.671386 512.031250 Last: 7 8 8 7 8 8 7 5 9 6 6 5 9 3 7 10 8 8 6 8 7 7 6 7 6 6 7 7 6 7 Let's break each section down 0 log-ical<4><[U:1:215587975]><> Avg: 6.940210/723.385620 Perf: 0.611370 bhop_bfur 9262.716796 1725.671386 512.031250 Last: 7 8 8 7 8 8 7 5 9 6 6 5 9 3 7 10 8 8 6 8 7 7 6 7 6 6 7 7 6 7 The first things in the log are the clients identifiers, the clients name then their SteamID3. These are just so you can tell who's stats you're looking at, they don't serve any other purpose. 0 log-ical<4><[U:1:215587975]><> Avg: 6.940210/723.385620 Perf: 0.611370 bhop_bfur 9262.716796 1725.671386 512.031250 Last: 7 8 8 7 8 8 7 5 9 6 6 5 9 3 7 10 8 8 6 8 7 7 6 7 6 6 7 7 6 7 Next is these two numbers, they are your jump statistic averages, The first number is the average +jumps and the 2nd number is the average velocity. 0 log-ical<4><[U:1:215587975]><> Avg: 6.940210/723.385620 Perf: 0.611370 bhop_bfur 9262.716796 1725.671386 512.031250 Last: 7 8 8 7 8 8 7 5 9 6 6 5 9 3 7 10 8 8 6 8 7 7 6 7 6 6 7 7 6 7 Then there is the perfect jump rate, this is a percentage, so 61.1370% of my jumps were perfect. 0 log-ical<4><[U:1:215587975]><> Avg: 6.940210/723.385620 Perf: 0.611370 bhop_bfur 9262.716796 1725.671386 512.031250 Last: 7 8 8 7 8 8 7 5 9 6 6 5 9 3 7 10 8 8 6 8 7 7 6 7 6 6 7 7 6 7 This shows the map and the client's position on the map. typing cl_showpos 1 in the console will allow you to see your location and speed, along with your eye angles. You can use this to your advantage in the case you want to see where the client was on the map when they got banned. This has no real purpose when using the mdx_stats command. 0 log-ical<4><[U:1:215587975]><> Avg: 6.940210/723.385620 Perf: 0.611370 bhop_bfur 9262.716796 1725.671386 512.031250 Last: 7 8 8 7 8 8 7 5 9 6 6 5 9 3 7 10 8 8 6 8 7 7 6 7 6 6 7 7 6 7 These show the client's +jump pattern. For every -jump this is how many +jumps were executed. When a client is banned, their mdx_stats in macrodox.log look a bit different: L 1/4/2021 - 17:12:33: [macrodox.smx] log-ical Avg: 5.889660/787.507019 Perf: 0.941324 ba_jail_electric_razor 88.148674 2267.983154 64.224426 Last: 7 6 5 5 7 5 4 7 6 4 6 5 5 8 6 6 5 7 6 5 9 6 6 6 4 7 7 8 5 6 hax2 Here it provides you with a tad bit more information. Most notable the things highlighted in green. It will show you the time and date the player was banned and the type of ban the client received. Also, a good thing to note for admins, the location mentioned is where the client was flagged, use this to your advantage if you want to know under what conditions the client was under. __________________________________________ Is This Person Cheating? Here I'll list a few different mdx_stats and explain how each one shows someone is using a 3rd party program and when they are not. These are stats of a client using 3rd part software thanks amr: log-ical<4><[U:1:215587975]><> Avg: 1.362531/439.909759 Perf: 0.903099 bhop_bfur -1485.163085 796.353393 -539.000000 Last: 1 2 1 1 2 4 1 1 2 1 2 1 1 1 1 1 2 1 1 1 1 1 1 1 1 1 2 2 1 1 Here the things highlighted in red should be the red flags. The jumps being so low means that the client is probably using a spacebar to jump, but the major discrepancy is that they have extremely high perf, when bhopping using a spacebar anything this high is a clear sign of a cheater. Not to mention the average velocity is also too high for spacebar. log-ical<4><[U:1:215587975]><> Avg: 22.864912/837.838088 Perf: 0.348786 bhop_bfur 5911.254394 -3586.626464 3780.766601 Last: 15 20 23 22 25 21 31 27 31 16 24 17 21 23 8 30 26 25 22 28 9 20 23 17 16 24 29 27 27 34 Here we can see these +jumps are too high to be possible without a hyper scroll or macro. Using a normal scroll wheel you'd see jumps around 1-12. Having jumps in the 20s even 30s can not be done using a normal scroll wheel. These stats are legit: log-ical<4><[U:1:215587975]><> Avg: 0.228767/329.837768 Perf: 0.299970 bhop_bfur 11808.139648 1772.442016 512.031250 Last: 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 In case you ever see stats like this, the 0's don't mean they are breaking the game or something, the 0 just means a jump hasn't been recorded yet, this could be because they just joined the server or their stats got refreshed somehow. The only other time you'd see 0 is if the client was using autohop on a bhop server. 0 log-ical<4><[U:1:215587975]><> Avg: 6.940210/450.385620 Perf: 0.411370 bhop_bfur 9262.716796 1725.671386 512.031250 Last: 7 8 8 7 8 8 7 5 9 6 6 5 9 3 7 10 8 8 6 8 7 7 6 7 6 6 7 7 6 7 The velocity and perf are within reason and the +jumps fall in a reasonable range. __________________________________________ If you have any questions just message me
  3. It's crazy to see how much things change in just 2 years, all the different people and servers, here's to another! It felt like just yesterday we were celebrating 1 year.
  4. To make this work on every single map, nevertheless to even make it work in general would be a lot of work. I'm not even sure if it would work as a special day.
  5. You mean like make the warden immune to the flashbang effect?
  6. To change the flashbangs spawned on the map you'd need to decompile, remove the flashes, then recompile, it'll take a lot of time. For mcrate I could make it so there's a timer for the flashes, but then that would skew the whole randomness aspect and a lot of the rewards would need to be tweaked, still a lot of work.
  7. This would mess a lot of stuff up; there is just so much stuff that would need to be changed and redone for this to work even somewhat correctly. For example - the easiest way to fix this would to make it so every time a client throws a flash its crates a timer that prevents the client from throwing the flash again until that timer is up, simple enough, but a player would pretty much only have 1 flash a round, therefore, there would be no noticeable change. So then we would need to expand that timer to affect all players, the problem with that is it would break lrs, break special days, possibly just break everything because of SourceTM problems; the only way that would prevent those things from breaking would be completely rewriting half of the plugins and incorporate an include file which would allow the plugins to communicate with each other -- and even after that, I'm sure something else would break because let's be honest we're talking about the Source engine here. I understand your frustration with the flashbangs and the blinding, but the best thing to do is try your best to turn away from them.
  8. Welp, the big man said it himself. Guess I'm gone because I don't have a mullet. Bye, everyone.