Skip to content

Instantly share code, notes, and snippets.

@NeKzor
Last active February 22, 2020 12:31
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
Star You must be signed in to star a gist
Save NeKzor/434d86b8f95ab9a83eacd43065d4ce35 to your computer and use it in GitHub Desktop.
Data dump for Klooger.
sp:
00 884
01 578
02 1
03 790
04 109
05 522
06 801
07 0
08 597
09 95
10 704
11 570
12 0
13 728
14 61
15 529
16 823
17 0
18 612
19 128
20 639
21 613
22 0
23 865
24 0
25 607
26 741
27 0
28 612
29 176
30 662
31 599
32 0
33 792
34 64
35 499
36 759
37 1
38 563
39 108
40 708
41 642
42 2
43 774
44 104
45 505
46 815
47 0
48 633
49 0
50 870
51 590
52 0
53 774
54 103
55 505
56 894
57 0
58 630
59 104
60 671
61 591
62 0
63 760
64 52
65 554
66 819
67 0
68 602
69 143
70 648
71 597
72 0
73 798
74 1
75 607
76 840
77 0
78 657
79 146
80 653
81 688
82 0
83 748
84 49
85 568
86 782
87 0
88 667
89 77
90 677
91 651
92 1
93 821
94 91
95 509
96 763
97 0
98 619
99 1
mp:
00 420
01 433
02 0
03 480
04 81
05 407
06 467
07 0
08 439
09 59
10 429
11 462
12 0
13 478
14 28
15 509
16 422
17 0
18 477
19 40
20 441
21 457
22 0
23 442
24 10
25 454
26 475
27 0
28 454
29 73
30 385
31 470
32 0
33 513
34 38
35 396
36 482
37 0
38 411
39 34
40 444
41 433
42 0
43 468
44 45
45 417
46 467
47 2
48 461
49 13
50 468
51 466
52 0
53 448
54 53
55 402
56 444
57 0
58 410
59 58
60 440
61 475
62 0
63 461
64 14
65 458
66 415
67 0
68 448
69 42
70 435
71 439
72 0
73 446
74 2
75 454
76 439
77 0
78 407
79 53
80 426
81 505
82 0
83 432
84 54
85 398
86 437
87 0
88 440
89 20
90 423
91 472
92 0
93 420
94 43
95 405
96 498
97 0
98 446
99 4
very unlikely:
[id][date] player : chamber : cs (prev rank -> post rank)
[32432][2013-10-05 02:08:05] Betsruner : Catapults : 24 (null -> 8)
[16607][2014-04-11 10:08:03] saturdays are for the boys : Bridge Catch : 99 (null -> 18)
[46304][2014-10-05 13:39:04] オタキワク(Otakiwaku) : Cooperative Bridges : 24 (null -> 20)
[13443][2015-01-07 11:49:03] Adeich : Bridge Fling : 49 (3 -> 1)
[14808][2015-01-07 11:49:03] follon : Bridge Fling : 49 (3 -> 1)
[19904][2015-07-06 17:29:03] AJ : Crazier Box : 24 (5 -> 3)
[13665][2015-12-03 06:44:05] Holocene : Stop the Box : 74 (16 -> 16)
[24889][2015-12-04 22:37:04] US Cobra : Ceiling Catapult : 99 (35 -> 18)
[13171][2016-08-10 01:49:13] bägek : Cooperative Funnels : 49 (null -> null)
[29340][2016-08-10 01:49:13] .duck : Cooperative Funnels : 49 (null -> null)
[56425][2016-10-16 06:36:10] Skizzie : Cooperative Polarity : 49 (30 -> 30)
[56597][2016-10-18 12:44:08] felkelorebel : Multifling : 74 (32 -> 31)
[58300][2016-12-02 16:30:14] LamboLord24 : Wall Repulsion : 49 (127 -> 55)
[62085][2017-02-21 13:30:23] Stream Sniper 3000 : Catapult Catch : 24 (101 -> 101)
[66678][2017-05-01 14:14:11] Moist Potato : Vertical Flings : 47 (116 -> 114)
[66679][2017-05-01 14:14:11] Samuel ☮ : Vertical Flings : 47 (116 -> 114)
[67818][2017-05-23 18:00:19] dafatman922 : Catapults : 49 (68 -> 51)
[68415][2017-05-30 00:28:09] Bdiggles : Catapult Catch : 24 (59 -> 49)
[69187][2017-06-07 00:54:10] Bdiggles : Turret Walls : 49 (128 -> 49)
[72014][2017-07-09 21:16:10] Can't Even : Turret Walls : 49 (null -> 50)
[75169][2017-08-29 09:18:10] aspect : Escape : 92 (103 -> 96)
[75448][2017-09-02 14:20:14] Dacciox : Catapult Catch : 74 (107 -> 79)
[79266][2018-01-21 06:03:06] Led_Astray : Cooperative Bridges : 49 (65 -> 53)
[79268][2018-01-21 07:03:10] Difgy ツ : Cooperative Bridges : 49 (57 -> 53)
[79406][2018-01-25 13:55:59] Mauzega : Test : 37 (null -> 120)
[81012][2018-03-29 00:03:14] NukeExplosions : Ceiling Button : 42 (null -> 194)
[81485][2018-04-13 17:16:21] Xinera : Double Bounce : 24 (80 -> 39)
[82337][2018-05-15 08:03:37] Led_Astray : Turret Warehouse : 99 (64 -> 50)
[82336][2018-05-15 08:03:37] Difgy ツ : Turret Warehouse : 99 (64 -> 50)
[82932][2018-05-26 06:30:41] [SH] Lukkyz : Doors : 24 (null -> 130)
[82931][2018-05-26 06:30:41] Babyfurz : Doors : 24 (null -> 130)
[84786][2018-07-18 02:25:12] eXpo : Vault Entrance : 99 (null -> 114)
[86911][2018-09-24 18:03:35] Betsruner : Bridge Swap : 24 (6 -> 6)
[93896][2019-03-01 16:40:55] JonVis : Portal Carousel : 02 (122 -> 108)
[97289][2019-06-05 20:58:25] BigMitch128 : Secret Panel : 42 (null -> 42)
[98917][2019-07-14 09:03:21] Pincellox : Lasers : 49 (null -> 151)
[98916][2019-07-14 09:03:21] glenr0nimus : Lasers : 49 (null -> 151)
[104643][2019-11-28 00:50:27] zMg : Cooperative Bridges : 24 (null -> 64)
const simulateTimer = () => {
const tickrate = 59.999999;
const accuracy = 1 / tickrate;
for (let time = 0.0; time <= 0.20; time += accuracy) {
process.stdout.write(Math.floor((time - Math.floor(time)) * 100.0) + ', ');
}
};
if (process.argv[2]) {
return simulateTimer();
}
const isSinglePlayer = (id) => {
return [
'47741',
'47825',
'47828',
'47829',
'45467',
'46362',
'47831',
'47833',
'47835',
'47837',
'47840',
'47841',
'47844',
'47845',
'47848',
'47849',
'47854',
'47856',
'47858',
'47861',
'52642',
'52660',
'52662',
'52663',
'52665',
'52667',
'52671',
'52687',
'52689',
'52691',
'52777',
'52694',
'52711',
'52714',
'52715',
'52717',
'52735',
'52738',
'52740',
'49341',
'49343',
'49345',
'49347',
'49349',
'49351',
'52757',
'52759',
'48287',
].find(x => x === id) === undefined;
};
const entries = JSON.parse(require('fs').readFileSync('cache.json', 'utf-8')).data;
const sp = [];
const mp = [];
for (let entry of entries) {
if (entry.banned === '1') continue;
if (entry.time_gained === null) continue;
const item = {
ms: entry.score % 100,
id: entry.id,
};
if (isSinglePlayer(entry.mapid)) {
sp.push(item);
} else {
mp.push(item);
}
}
const spFrequency = sp
.map((x) => x.ms)
.reduce((count, item) => {
count[item] = (count[item] || 0) + 1;
return count;
}, {});
const mpFrequency = mp
.map((x) => x.ms)
.reduce((count, item) => {
count[item] = (count[item] || 0) + 1;
return count;
}, {});
const print = ({ player_name, id, score, pre_rank, post_rank, time_gained, chamberName }) => {
console.log(`[${id}][${time_gained}] ${player_name} : ${chamberName} : ${(score % 100).toString().padStart(2, '0')} (${pre_rank} -> ${post_rank})`);
};
const sus = 10;
let veryUnlikely = [];
console.log('sp:');
for (let i = 0; i < 100; ++i) {
console.log(i.toString().padStart(2, '0') + '\t' + (spFrequency[i] || 0));
if (spFrequency[i] < sus || spFrequency[i] === undefined) {
sp.filter(x => x.ms === i).forEach(x => veryUnlikely.push(entries.find(y => y.id === x.id)));
}
}
console.log('\nmp:');
for (let i = 0; i < 100; ++i) {
console.log(i.toString().padStart(2, '0') + '\t' + (mpFrequency[i] || 0));
if (mpFrequency[i] < sus || spFrequency[i] === undefined) {
mp.filter(x => x.ms === i).forEach(x => veryUnlikely.push(entries.find(y => y.id === x.id)));
}
}
console.log('\nvery unlikely:\n[id][date] player : chamber : cs (prev rank -> post rank)');
veryUnlikely.sort((a, b) => a.time_gained.localeCompare(b.time_gained)).forEach(x => print(x));
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment