├── .gitignore ├── LICENSE.md ├── Makefile ├── README.md ├── ai ├── collect_mouse_data.py ├── mouse_data.csv ├── mouse_data_test.csv ├── run.py └── train.py ├── cs_dma.cpp ├── game.cpp ├── game.h ├── includes ├── easywsclient.cpp ├── easywsclient.hpp ├── json.hpp ├── leechcore.h └── vmmdll.h ├── libs ├── info.db ├── leechcore.so ├── leechcore_device_microvmi.so ├── libmemflow_qemu.x86_64.so ├── libmicrovmi.so └── vmm.so ├── offset.h ├── radar ├── react │ ├── .eslintrc.cjs │ ├── .gitignore │ ├── README.md │ ├── index.html │ ├── package-lock.json │ ├── package.json │ ├── postcss.config.js │ ├── public │ │ ├── assets │ │ │ ├── characters │ │ │ │ ├── ctm_diver_varianta.png │ │ │ │ ├── ctm_diver_variantb.png │ │ │ │ ├── ctm_diver_variantc.png │ │ │ │ ├── ctm_fbi.png │ │ │ │ ├── ctm_fbi_varianta.png │ │ │ │ ├── ctm_fbi_variantb.png │ │ │ │ ├── ctm_fbi_variantc.png │ │ │ │ ├── ctm_fbi_variantd.png │ │ │ │ ├── ctm_fbi_variante.png │ │ │ │ ├── ctm_fbi_variantf.png │ │ │ │ ├── ctm_fbi_variantg.png │ │ │ │ ├── ctm_fbi_varianth.png │ │ │ │ ├── ctm_gendarmerie_varianta.png │ │ │ │ ├── ctm_gendarmerie_variantb.png │ │ │ │ ├── ctm_gendarmerie_variantc.png │ │ │ │ ├── ctm_gendarmerie_variantd.png │ │ │ │ ├── ctm_gendarmerie_variante.png │ │ │ │ ├── ctm_heavy.png │ │ │ │ ├── ctm_sas.png │ │ │ │ ├── ctm_sas_variantf.png │ │ │ │ ├── ctm_sas_variantg.png │ │ │ │ ├── ctm_st6.png │ │ │ │ ├── ctm_st6_varianta.png │ │ │ │ ├── ctm_st6_variantb.png │ │ │ │ ├── ctm_st6_variantc.png │ │ │ │ ├── ctm_st6_variantd.png │ │ │ │ ├── ctm_st6_variante.png │ │ │ │ ├── ctm_st6_variantf.png │ │ │ │ ├── ctm_st6_variantg.png │ │ │ │ ├── ctm_st6_varianth.png │ │ │ │ ├── ctm_st6_varianti.png │ │ │ │ ├── ctm_st6_variantj.png │ │ │ │ ├── ctm_st6_variantk.png │ │ │ │ ├── ctm_st6_variantl.png │ │ │ │ ├── ctm_st6_variantm.png │ │ │ │ ├── ctm_st6_variantn.png │ │ │ │ ├── ctm_swat_variante.png │ │ │ │ ├── ctm_swat_variantf.png │ │ │ │ ├── ctm_swat_variantg.png │ │ │ │ ├── ctm_swat_varianth.png │ │ │ │ ├── ctm_swat_varianti.png │ │ │ │ ├── ctm_swat_variantj.png │ │ │ │ ├── ctm_swat_variantk.png │ │ │ │ ├── tm_anarchist.png │ │ │ │ ├── tm_anarchist_varianta.png │ │ │ │ ├── tm_anarchist_variantb.png │ │ │ │ ├── tm_anarchist_variantc.png │ │ │ │ ├── tm_anarchist_variantd.png │ │ │ │ ├── tm_balkan_varianta.png │ │ │ │ ├── tm_balkan_variantb.png │ │ │ │ ├── tm_balkan_variantc.png │ │ │ │ ├── tm_balkan_variantd.png │ │ │ │ ├── tm_balkan_variante.png │ │ │ │ ├── tm_balkan_variantf.png │ │ │ │ ├── tm_balkan_variantg.png │ │ │ │ ├── tm_balkan_varianth.png │ │ │ │ ├── tm_balkan_varianti.png │ │ │ │ ├── tm_balkan_variantj.png │ │ │ │ ├── tm_balkan_variantk.png │ │ │ │ ├── tm_balkan_variantl.png │ │ │ │ ├── tm_jumpsuit_varianta.png │ │ │ │ ├── tm_jumpsuit_variantb.png │ │ │ │ ├── tm_jumpsuit_variantc.png │ │ │ │ ├── tm_jungle_raider_varianta.png │ │ │ │ ├── tm_jungle_raider_variantb.png │ │ │ │ ├── tm_jungle_raider_variantb2.png │ │ │ │ ├── tm_jungle_raider_variantc.png │ │ │ │ ├── tm_jungle_raider_variantd.png │ │ │ │ ├── tm_jungle_raider_variante.png │ │ │ │ ├── tm_jungle_raider_variantf.png │ │ │ │ ├── tm_jungle_raider_variantf2.png │ │ │ │ ├── tm_leet_variantf.png │ │ │ │ ├── tm_leet_variantg.png │ │ │ │ ├── tm_leet_varianth.png │ │ │ │ ├── tm_leet_varianti.png │ │ │ │ ├── tm_leet_variantj.png │ │ │ │ ├── tm_phoenix.png │ │ │ │ ├── tm_phoenix_heavy.png │ │ │ │ ├── tm_phoenix_varianta.png │ │ │ │ ├── tm_phoenix_variantb.png │ │ │ │ ├── tm_phoenix_variantc.png │ │ │ │ ├── tm_phoenix_variantd.png │ │ │ │ ├── tm_phoenix_variantf.png │ │ │ │ ├── tm_phoenix_variantg.png │ │ │ │ ├── tm_phoenix_varianth.png │ │ │ │ ├── tm_phoenix_varianti.png │ │ │ │ ├── tm_professional_varf.png │ │ │ │ ├── tm_professional_varf1.png │ │ │ │ ├── tm_professional_varf2.png │ │ │ │ ├── tm_professional_varf3.png │ │ │ │ ├── tm_professional_varf4.png │ │ │ │ ├── tm_professional_varf5.png │ │ │ │ ├── tm_professional_varg.png │ │ │ │ ├── tm_professional_varh.png │ │ │ │ ├── tm_professional_vari.png │ │ │ │ └── tm_professional_varj.png │ │ │ ├── icons │ │ │ │ ├── ak47.svg │ │ │ │ ├── aug.svg │ │ │ │ ├── awp.svg │ │ │ │ ├── axe.svg │ │ │ │ ├── bayonet.svg │ │ │ │ ├── bizon.svg │ │ │ │ ├── c4.svg │ │ │ │ ├── c4_sml.png │ │ │ │ ├── cz75a.svg │ │ │ │ ├── deagle.svg │ │ │ │ ├── decoy.svg │ │ │ │ ├── defuser.svg │ │ │ │ ├── elite.svg │ │ │ │ ├── famas.svg │ │ │ │ ├── fiveseven.svg │ │ │ │ ├── flashbang.svg │ │ │ │ ├── g3sg1.svg │ │ │ │ ├── galilar.svg │ │ │ │ ├── gauge.svg │ │ │ │ ├── glock.svg │ │ │ │ ├── health.svg │ │ │ │ ├── hegrenade.svg │ │ │ │ ├── hkp2000.svg │ │ │ │ ├── icon-enemy-death_png.png │ │ │ │ ├── incgrenade.svg │ │ │ │ ├── inferno.svg │ │ │ │ ├── kevlar.svg │ │ │ │ ├── kevlar_helmet.svg │ │ │ │ ├── knife.svg │ │ │ │ ├── knife_bowie.svg │ │ │ │ ├── knife_butterfly.svg │ │ │ │ ├── knife_canis.svg │ │ │ │ ├── knife_cord.svg │ │ │ │ ├── knife_css.svg │ │ │ │ ├── knife_falchion.svg │ │ │ │ ├── knife_flip.svg │ │ │ │ ├── knife_gut.svg │ │ │ │ ├── knife_gypsy_jackknife.svg │ │ │ │ ├── knife_karambit.svg │ │ │ │ ├── knife_kukri.svg │ │ │ │ ├── knife_m9_bayonet.svg │ │ │ │ ├── knife_outdoor.svg │ │ │ │ ├── knife_push.svg │ │ │ │ ├── knife_skeleton.svg │ │ │ │ ├── knife_stiletto.svg │ │ │ │ ├── knife_survival_bowie.svg │ │ │ │ ├── knife_t.svg │ │ │ │ ├── knife_tactical.svg │ │ │ │ ├── knife_twinblade.svg │ │ │ │ ├── knife_ursus.svg │ │ │ │ ├── knife_widowmaker.svg │ │ │ │ ├── knifegg.svg │ │ │ │ ├── m249.svg │ │ │ │ ├── m4a1.svg │ │ │ │ ├── m4a1_silencer.svg │ │ │ │ ├── m4a1_silencer_off.svg │ │ │ │ ├── mac10.svg │ │ │ │ ├── mag7.svg │ │ │ │ ├── molotov.svg │ │ │ │ ├── mp5sd.svg │ │ │ │ ├── mp7.svg │ │ │ │ ├── mp9.svg │ │ │ │ ├── negev.svg │ │ │ │ ├── nova.svg │ │ │ │ ├── p2000.svg │ │ │ │ ├── p250.svg │ │ │ │ ├── p90.svg │ │ │ │ ├── revolver.svg │ │ │ │ ├── sawedoff.svg │ │ │ │ ├── scar20.svg │ │ │ │ ├── sg556.svg │ │ │ │ ├── smokegrenade.svg │ │ │ │ ├── snowball.svg │ │ │ │ ├── spray0.svg │ │ │ │ ├── ssg08.svg │ │ │ │ ├── taser.svg │ │ │ │ ├── tec9.svg │ │ │ │ ├── ump45.svg │ │ │ │ ├── usp_silencer.svg │ │ │ │ ├── usp_silencer_off.svg │ │ │ │ └── xm1014.svg │ │ │ └── typefaces │ │ │ │ └── TASAOrbiterVF.woff2 │ │ ├── data │ │ │ ├── cs_italy │ │ │ │ ├── background.png │ │ │ │ ├── data.json │ │ │ │ └── radar.png │ │ │ ├── cs_office │ │ │ │ ├── background.png │ │ │ │ ├── data.json │ │ │ │ └── radar.png │ │ │ ├── de_ancient │ │ │ │ ├── background.png │ │ │ │ ├── data.json │ │ │ │ └── radar.png │ │ │ ├── de_anubis │ │ │ │ ├── background.png │ │ │ │ ├── data.json │ │ │ │ └── radar.png │ │ │ ├── de_dust2 │ │ │ │ ├── background.png │ │ │ │ ├── data.json │ │ │ │ └── radar.png │ │ │ ├── de_inferno │ │ │ │ ├── background.png │ │ │ │ ├── data.json │ │ │ │ └── radar.png │ │ │ ├── de_mills │ │ │ │ ├── background.png │ │ │ │ ├── data.json │ │ │ │ └── radar.png │ │ │ ├── de_mirage │ │ │ │ ├── background.png │ │ │ │ ├── data.json │ │ │ │ ├── de_mirage_radar_psd.psd │ │ │ │ └── radar.png │ │ │ ├── de_nuke │ │ │ │ ├── background.png │ │ │ │ ├── data.json │ │ │ │ └── radar.png │ │ │ ├── de_overpass │ │ │ │ ├── background.png │ │ │ │ ├── data.json │ │ │ │ └── radar.png │ │ │ ├── de_thera │ │ │ │ ├── background.png │ │ │ │ ├── data.json │ │ │ │ └── radar.png │ │ │ └── de_vertigo │ │ │ │ ├── background.png │ │ │ │ ├── data.json │ │ │ │ └── radar.png │ │ └── vite.svg │ ├── src │ │ ├── App.css │ │ ├── App.jsx │ │ ├── Latency │ │ │ └── Latency.jsx │ │ ├── MaskedIcon │ │ │ └── MaskedIcon.jsx │ │ ├── PlayerCard │ │ │ └── PlayerCard.jsx │ │ ├── Radar │ │ │ ├── Bomb.jsx │ │ │ ├── Player.jsx │ │ │ └── Radar.jsx │ │ ├── Utils │ │ │ └── Utils.jsx │ │ ├── assets │ │ │ └── react.svg │ │ └── main.jsx │ ├── tailwind.config.js │ └── vite.config.js └── web_server │ ├── .gitignore │ ├── app.js │ ├── package-lock.json │ └── package.json └── sdk ├── InputManager.cpp ├── InputManager.h ├── Memory.cpp ├── Memory.h ├── pch.h ├── ray_trace.h └── vector.h /.gitignore: -------------------------------------------------------------------------------- 1 | build/libmemflow_qemu.x86_64.so 2 | build/mouse.onnx 3 | build/cs_dma 4 | build/mirage.tri 5 | .vscode 6 | notes.md -------------------------------------------------------------------------------- /LICENSE.md: -------------------------------------------------------------------------------- 1 | https://creativecommons.org/licenses/by-nc-sa/4.0/ 2 | -------------------------------------------------------------------------------- /Makefile: -------------------------------------------------------------------------------- 1 | CXX=g++ 2 | CXXFLAGS=-std=c++2a -I./includes/ -I/usr/local/include/opencv4/ -I./sdk/ -L./libs -l:vmm.so -l:leechcore.so -l:leechcore_device_microvmi.so -L/usr/local/lib -l:libopencv_core.so -l:libopencv_dnn.so -Wno-multichar 3 | LIBS=-lm -Wl,--no-as-needed -ldl -lpthread 4 | 5 | OUTDIR=./build 6 | OBJDIR=$(OUTDIR)/obj 7 | 8 | $(shell mkdir -p $(OBJDIR)) 9 | $(shell cp libs/leechcore.so /usr/lib/) 10 | $(shell cp libs/vmm.so /usr/lib/) 11 | $(shell cp libs/libmicrovmi.so /usr/lib/) 12 | $(shell cp libs/leechcore_device_microvmi.so /usr/lib/) 13 | $(shell cp libs/libmemflow_qemu.x86_64.so $(OUTDIR)/) 14 | 15 | %.o: %.cpp 16 | $(CXX) -c -o $(OBJDIR)/$@ $< $(CXXFLAGS) 17 | 18 | Memory.o: ./sdk/Memory.cpp 19 | $(CXX) -c -o $(OBJDIR)/Memory.o ./sdk/Memory.cpp $(CXXFLAGS) 20 | 21 | InputManager.o: ./sdk/InputManager.cpp 22 | $(CXX) -c -o $(OBJDIR)/InputManager.o ./sdk/InputManager.cpp $(CXXFLAGS) 23 | 24 | EasyWSClient.o: ./includes/easywsclient.cpp 25 | $(CXX) -c -o $(OBJDIR)/EasyWSClient.o ./includes/easywsclient.cpp $(CXXFLAGS) 26 | 27 | cs_dma: cs_dma.o game.o Memory.o InputManager.o EasyWSClient.o 28 | $(CXX) -o $(OUTDIR)/$@ $(OBJDIR)/cs_dma.o $(OBJDIR)/game.o $(OBJDIR)/Memory.o $(OBJDIR)/InputManager.o $(OBJDIR)/EasyWSClient.o $(CXXFLAGS) $(LIBS) 29 | rm -rf ./build/obj/ 30 | 31 | .PHONY: all 32 | all: cs_dma 33 | 34 | .DEFAULT_GOAL := all 35 | 36 | clean: 37 | rm -rf ./build/cs_dma 38 | rm -rf /usr/lib/vmm.so 39 | rm -rf /usr/lib/leechcore.so 40 | rm -rf /usr/lib/leechcore_device_microvmi.so 41 | rm -rf /usr/lib/libmicrovmi.so 42 | rm -rf ./build/libmemflow_qemu.x86_64.so 43 | -------------------------------------------------------------------------------- /ai/mouse_data.csv: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AtomicBool/cs2_kvm_dma/9f3bd3bdd5062312c2ef20b3c315c4d2cf188f49/ai/mouse_data.csv -------------------------------------------------------------------------------- /ai/mouse_data_test.csv: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AtomicBool/cs2_kvm_dma/9f3bd3bdd5062312c2ef20b3c315c4d2cf188f49/ai/mouse_data_test.csv -------------------------------------------------------------------------------- /ai/run.py: -------------------------------------------------------------------------------- 1 | from cv2 import dnn 2 | import numpy as np 3 | import matplotlib.pyplot as plt 4 | 5 | net = dnn.readNetFromONNX("mouse.onnx") 6 | matblob = np.array([[242, 263]]) 7 | net.setInput(matblob) 8 | 9 | print('input = {}'.format(matblob)) 10 | output = net.forward() 11 | print('output = {}'.format(output)) 12 | points = output[0] 13 | 14 | # 将数据分解为x和y坐标 15 | x = points[:, 0].tolist() 16 | y = points[:, 1].tolist() 17 | 18 | # 根据点的索引生成颜色数组 19 | colors = [i for i in range(len(points))] 20 | 21 | # 创建散点图,其中c参数控制每个点的颜色 22 | plt.scatter(x, y, c=colors, cmap='viridis') 23 | 24 | # 添加标题和标签 25 | plt.title('Scatter Plot with Color Gradient') 26 | plt.xlabel('X Axis') 27 | plt.ylabel('Y Axis') 28 | 29 | # 设置坐标轴的刻度 30 | plt.xticks(np.arange(0, 600, 15)) 31 | plt.yticks(np.arange(0, 600, 15)) 32 | 33 | # 显示颜色条 34 | plt.colorbar() 35 | 36 | # 显示图表 37 | plt.show() 38 | -------------------------------------------------------------------------------- /ai/train.py: -------------------------------------------------------------------------------- 1 | import numpy as np 2 | import pandas as pd 3 | import torch 4 | from torch.utils.data import Dataset, DataLoader 5 | import torch.nn as nn 6 | import torch.optim as optim 7 | import onnxruntime 8 | import onnx 9 | 10 | # 读取CSV文件 11 | train_csv_path = 'mouse_data.csv' # 替换为你的CSV文件路径 12 | train_csv = pd.read_csv(train_csv_path, header=None) 13 | test_csv_path = 'mouse_data_test.csv' # 替换为你的CSV文件路径 14 | test_csv = pd.read_csv(test_csv_path, header=None) 15 | 16 | # 提取dx, dy和标签 17 | dx_dy_train = train_csv.iloc[:, 0].apply(lambda x: list(map(int, x.split(',')))) 18 | dx_dy_labels_train = train_csv.apply(lambda row: [list(map(int, row[i].split(','))) for i in range(1,21)], axis=1) #修改 为点数+1 19 | dx_dy_test = test_csv.iloc[:, 0].apply(lambda x: list(map(int, x.split(',')))) 20 | dx_dy_labels_test = test_csv.apply(lambda row: [list(map(int, row[i].split(','))) for i in range(1,21)], axis=1) #修改 21 | 22 | # 转换为PyTorch Tensor 23 | dx_dy_train_tensor = torch.Tensor(dx_dy_train.tolist()) 24 | dx_dy_train_tensor = dx_dy_train_tensor.unsqueeze(1) 25 | labels_train_tensor = torch.Tensor(dx_dy_labels_train.tolist()) 26 | dx_dy_test_tensor = torch.Tensor(dx_dy_test.tolist()) 27 | dx_dy_test_tensor = dx_dy_test_tensor.unsqueeze(1) 28 | labels_test_tensor = torch.Tensor(dx_dy_labels_test.tolist()) 29 | 30 | # 创建自定义Dataset 31 | class CustomDataset(Dataset): 32 | def __init__(self, dx_dy, labels): 33 | self.dx_dy = dx_dy 34 | self.labels = labels 35 | 36 | def __len__(self): 37 | return len(self.dx_dy) 38 | 39 | def __getitem__(self, idx): 40 | return self.dx_dy[idx], self.labels[idx] 41 | 42 | # 创建Dataset和DataLoader 43 | train_dataset = CustomDataset(dx_dy_train_tensor, labels_train_tensor) 44 | test_dataset = CustomDataset(dx_dy_test_tensor, labels_test_tensor) 45 | batch_size = 64 46 | train_dataloader = DataLoader(train_dataset, batch_size=batch_size, shuffle=True) 47 | test_dataloader = DataLoader(test_dataset, batch_size=batch_size, shuffle=True) 48 | 49 | # 定义神经网络模型 50 | class SimpleNet(nn.Module): 51 | def __init__(self): 52 | super(SimpleNet, self).__init__() 53 | self.fc1 = nn.Linear(2, 128) 54 | self.fc2 = nn.Linear(128, 64) 55 | self.fc3 = nn.Linear(64, 40) #模型结构 56 | 57 | def forward(self, input_data): 58 | x = torch.flatten(input_data, start_dim=1) 59 | x = self.fc1(x) 60 | x = nn.ReLU()(x) 61 | x = self.fc2(x) 62 | x = nn.ReLU()(x) 63 | x = self.fc3(x) 64 | return x.view(-1, 20, 2) #输出为 20 * 2 (40) 65 | 66 | # 初始化模型、损失函数和优化器 67 | model = SimpleNet() 68 | criterion = nn.MSELoss() 69 | optimizer = optim.Adam(model.parameters(), lr=0.001) 70 | scheduler = optim.lr_scheduler.StepLR(optimizer, step_size=50, gamma=0.9) 71 | 72 | # 训练模型 73 | epochs = 20000 74 | for epoch in range(epochs): 75 | for batch_dx_dy, batch_labels in train_dataloader: 76 | optimizer.zero_grad() 77 | output = model(batch_dx_dy) 78 | loss = criterion(output, batch_labels) 79 | #print(loss) 80 | loss.backward() 81 | optimizer.step() 82 | scheduler.step() 83 | print('test') 84 | for idx, data in enumerate(test_dataloader): 85 | batch_dx_dy, batch_labels = data 86 | output = model(batch_dx_dy) 87 | loss = criterion(output, batch_labels) 88 | print(loss) 89 | if idx == len(test_dataloader)-1: 90 | print(batch_dx_dy[0]) 91 | print(output[0]) 92 | 93 | model.eval() 94 | onnx_name = 'mouse.onnx' 95 | dummy = torch.randn(1, 1, 2) #输入为1*1*2 96 | torch.onnx.export(model, dummy, onnx_name,verbose=True, input_names=['input'], output_names=['output']) 97 | -------------------------------------------------------------------------------- /game.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include "sdk/Memory.h" 4 | #include "offset.h" 5 | 6 | struct BoneJointData 7 | { 8 | Vector Pos; 9 | float Scale; 10 | char pad[0x10]; 11 | }; 12 | 13 | struct BonePos 14 | { 15 | Vector Pos; 16 | Vector2D ScreenPos; 17 | bool in_screen = false; 18 | }; 19 | 20 | //Pawn 21 | class PlayerPawn 22 | { 23 | public: 24 | uint64_t ptr = 0; 25 | public: 26 | int getHealth(); 27 | int getArmor(); 28 | int getShotsFired(); 29 | Vector2D getViewAngles(); 30 | Vector2D getAimPunch(); 31 | Vector getPos(); 32 | Vector getCameraPos(); 33 | std::vector getBones(); 34 | std::string getModelName(); 35 | }; 36 | 37 | PlayerPawn getLocalPawn(); 38 | 39 | //Controller 40 | class PlayerController 41 | { 42 | public: 43 | uint64_t ptr = 0; 44 | public: 45 | PlayerPawn getPawn(uint64_t EntityListEntry); 46 | int getTeam(); 47 | int getCash(); 48 | e_color getColor(); 49 | std::string getName(); 50 | std::string getSteamID(); 51 | }; 52 | PlayerController getLocalController(); 53 | PlayerController getController(uint64_t EntityListEntry, int i); 54 | 55 | //Weapon 56 | class Weapon 57 | { 58 | public: 59 | uint64_t ptr = 0; 60 | std::string current_weapon; 61 | std::string primary_weapon; 62 | std::string secondary_weapon; 63 | std::set utilities_set{}; 64 | std::set melee_set{}; 65 | 66 | public: 67 | uint64_t getWeaponData(uint64_t weapon_ptr); 68 | std::string getWeaponName(uint64_t weapon_data_ptr); 69 | e_weapon_type getWeaponID(uint64_t weapon_data_ptr); 70 | uint64_t getWeaponFromIndex(uint64_t weapon_ptr, int index); 71 | uint64_t getActiveWeapon(PlayerPawn pawn); 72 | std::pair getWeapons(PlayerPawn pawn); 73 | 74 | void Update(PlayerPawn pawn); 75 | }; 76 | 77 | 78 | //EntityList 79 | uint64_t getControllerByID(int idx); 80 | uint64_t getEntityByClassName(std::string class_name); 81 | 82 | //View 83 | bool WorldToScreen(const Vector& Pos, Vector2D& ToPos, VMatrix Matrix, int width, int height); 84 | void setViewAngles(Vector2D angles); 85 | Vector2D NormalizeAngles(Vector2D angles); 86 | -------------------------------------------------------------------------------- /includes/easywsclient.hpp: -------------------------------------------------------------------------------- 1 | #ifndef EASYWSCLIENT_HPP_20120819_MIOFVASDTNUASZDQPLFD 2 | #define EASYWSCLIENT_HPP_20120819_MIOFVASDTNUASZDQPLFD 3 | 4 | // This code comes from: 5 | // https://github.com/dhbaird/easywsclient 6 | // 7 | // To get the latest version: 8 | // wget https://raw.github.com/dhbaird/easywsclient/master/easywsclient.hpp 9 | // wget https://raw.github.com/dhbaird/easywsclient/master/easywsclient.cpp 10 | 11 | #include 12 | #include 13 | 14 | namespace easywsclient { 15 | 16 | struct Callback_Imp { virtual void operator()(const std::string& message) = 0; }; 17 | struct BytesCallback_Imp { virtual void operator()(const std::vector& message) = 0; }; 18 | 19 | class WebSocket { 20 | public: 21 | typedef WebSocket * pointer; 22 | typedef enum readyStateValues { CLOSING, CLOSED, CONNECTING, OPEN } readyStateValues; 23 | 24 | // Factories: 25 | static pointer create_dummy(); 26 | static pointer from_url(const std::string& url, const std::string& origin = std::string()); 27 | static pointer from_url_no_mask(const std::string& url, const std::string& origin = std::string()); 28 | 29 | // Interfaces: 30 | virtual ~WebSocket() { } 31 | virtual void poll(int timeout = 0) = 0; // timeout in milliseconds 32 | virtual void send(const std::string& message) = 0; 33 | virtual void sendBinary(const std::string& message) = 0; 34 | virtual void sendBinary(const std::vector& message) = 0; 35 | virtual void sendPing() = 0; 36 | virtual void close() = 0; 37 | virtual readyStateValues getReadyState() const = 0; 38 | 39 | template 40 | void dispatch(Callable callable) 41 | // For callbacks that accept a string argument. 42 | { // N.B. this is compatible with both C++11 lambdas, functors and C function pointers 43 | struct _Callback : public Callback_Imp { 44 | Callable& callable; 45 | _Callback(Callable& callable) : callable(callable) { } 46 | void operator()(const std::string& message) { callable(message); } 47 | }; 48 | _Callback callback(callable); 49 | _dispatch(callback); 50 | } 51 | 52 | template 53 | void dispatchBinary(Callable callable) 54 | // For callbacks that accept a std::vector argument. 55 | { // N.B. this is compatible with both C++11 lambdas, functors and C function pointers 56 | struct _Callback : public BytesCallback_Imp { 57 | Callable& callable; 58 | _Callback(Callable& callable) : callable(callable) { } 59 | void operator()(const std::vector& message) { callable(message); } 60 | }; 61 | _Callback callback(callable); 62 | _dispatchBinary(callback); 63 | } 64 | 65 | protected: 66 | virtual void _dispatch(Callback_Imp& callable) = 0; 67 | virtual void _dispatchBinary(BytesCallback_Imp& callable) = 0; 68 | }; 69 | 70 | } // namespace easywsclient 71 | 72 | #endif /* EASYWSCLIENT_HPP_20120819_MIOFVASDTNUASZDQPLFD */ 73 | -------------------------------------------------------------------------------- /libs/info.db: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AtomicBool/cs2_kvm_dma/9f3bd3bdd5062312c2ef20b3c315c4d2cf188f49/libs/info.db -------------------------------------------------------------------------------- /libs/leechcore.so: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AtomicBool/cs2_kvm_dma/9f3bd3bdd5062312c2ef20b3c315c4d2cf188f49/libs/leechcore.so -------------------------------------------------------------------------------- /libs/leechcore_device_microvmi.so: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AtomicBool/cs2_kvm_dma/9f3bd3bdd5062312c2ef20b3c315c4d2cf188f49/libs/leechcore_device_microvmi.so -------------------------------------------------------------------------------- /libs/libmemflow_qemu.x86_64.so: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AtomicBool/cs2_kvm_dma/9f3bd3bdd5062312c2ef20b3c315c4d2cf188f49/libs/libmemflow_qemu.x86_64.so -------------------------------------------------------------------------------- /libs/libmicrovmi.so: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AtomicBool/cs2_kvm_dma/9f3bd3bdd5062312c2ef20b3c315c4d2cf188f49/libs/libmicrovmi.so -------------------------------------------------------------------------------- /libs/vmm.so: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AtomicBool/cs2_kvm_dma/9f3bd3bdd5062312c2ef20b3c315c4d2cf188f49/libs/vmm.so -------------------------------------------------------------------------------- /offset.h: -------------------------------------------------------------------------------- 1 | //https://github.com/a2x/cs2-dumper/blob/main/output/offsets.hpp 2 | #define OFFSET_LOCAL_PAWN 0x1823A08 //dwLocalPlayerPawn 3 | #define OFFSET_LOCAL_CONTROLLER 0x1A0D9A8 //dwLocalPlayerController 4 | #define OFFSET_VIEW_ANGLES 0x1A2D248 //dwViewAngles 5 | #define OFFSET_SENSITIVITY 0x1A1C338 //dwSensitivity 6 | #define OFFSET_VIEW 0x1A1FCD0 //dwViewMatrix 7 | #define OFFSET_ENTITY_LIST 0x19BDd78 //dwEntityList 8 | #define OFFSET_GLOBAL_VARS 0x1817638 //dwGlobalVars 9 | #define OFFSET_MAP_NAME 0x1A41C0 + 0x120 //dwGameTypes + dwGameTypes_mapName 10 | #define OFFSET_C4 0x1A251A8 //dwPlantedC4 11 | 12 | //https://github.com/a2x/cs2-dumper/blob/main/output/client.dll.hpp 13 | #define OFFSET_SHOTS_FIRED 0x22B4 //m_iShotsFired 14 | #define OFFSET_EYE_ANGLE 0x1388 //m_angEyeAngles 15 | #define OFFSET_AIM_PUNCH 0x14CC //m_aimPunchAngle 16 | #define OFFSET_GAME_SCENE_NODE 0x308 //m_pGameSceneNode 17 | #define OFFSET_BONE_ARRAY 0x1f0 //m_modelState + ? 18 | #define OFFSET_CAMERA_POS 0x12D4 //m_vecLastClipCameraPos 19 | #define OFFSET_PLAYER_PAWN 0x7DC //m_hPlayerPawn 20 | #define OFFSET_TEAM_NUM 0x3C3 //m_iTeamNum 21 | #define OFFSET_HEALTH 0x324 //m_iHealth 22 | #define OFFSET_ARMOR 0x22D0 //m_armorvalue 23 | #define OFFSET_WEAPON_SERVICE 0x10F8 //m_pweaponservices 24 | #define OFFSET_ACTIVE_WEAPON 0x58 //m_hactiveweapon 25 | #define OFFSET_SUBCLASS_ID 0x358 //m_nSubclassID 26 | #define OFFSET_WEAPON_NAME 0xC28 //m_szName 27 | #define OFFSET_MWEAPONS 0x40 //m_hmyweapons 28 | #define OFFSET_WEAPON_ID 0x250 //m_weapontype 29 | #define OFFSET_OWNER_ENTITY 0x420 //m_hownerentity 30 | #define OFFSET_ORIGIN 0xD0 //m_vecabsorigin 31 | #define OFFSET_OLD_ORIGIN 0x1274 //m_vOldOrigin 32 | #define OFFSET_NAME 0x740 //m_sSanitizedPlayerName 33 | #define OFFSET_COLOR 0x728 //m_iCompTeammateColor 34 | #define OFFSET_STEAMID 0x6B8 //m_steamID 35 | #define OFFSET_MODEL_STATE 0x170 //m_modelstate 36 | #define OFFSET_MODEL_NAME 0xa8 //m_ModelName 37 | #define OFFSET_MONEY_SERVICE 0x6f0 //m_pingamemoneyservices 38 | #define OFFSET_MONEY_ACCOUNT 0x40 //m_iAccount 39 | #define OFFSET_ITEM_SERVICE 0x1100 //m_pItemServices 40 | #define OFFSET_ITEM_HAS_DEFUSER 0x40 //m_bHasDefuser 41 | #define OFFSET_ITEM_HAS_HELMET 0x41 //m_bHasHelmet 42 | 43 | //c4 44 | #define OFFSET_C4_BLOW_TIME 0xF00 //m_flC4Blow 45 | #define OFFSET_C4_DEFUSED 0xF24 //m_bBombDefused 46 | #define OFFSET_C4_DEFUSING 0xF0C //m_bBeingDefused 47 | #define OFFSET_C4_DEFUSE_TIME 0xF20 //m_fldefusecountdown 48 | 49 | //keyboard 50 | #define VK_F4 0x73 51 | #define VK_XBUTTON1 0x05 52 | #define VK_XBUTTON2 0x06 53 | 54 | //bone 55 | enum BONE: int 56 | { 57 | head=6, 58 | neck_0=5, 59 | spine_1=4, 60 | spine_2=2, 61 | pelvis=0, 62 | arm_upper_L=8, 63 | arm_lower_L=9, 64 | hand_L=10, 65 | arm_upper_R=13, 66 | arm_lower_R=14, 67 | hand_R=15, 68 | leg_upper_L=22, 69 | leg_lower_L=23, 70 | ankle_L=24, 71 | leg_upper_R=25, 72 | leg_lower_R=26, 73 | ankle_R=27, 74 | }; 75 | 76 | enum class e_weapon_type : int 77 | { 78 | knife, 79 | pistol, 80 | submachine_gun, 81 | rifle, 82 | shotgun, 83 | sniper_rifle, 84 | machine_gun, 85 | c4, 86 | taser, 87 | grenade, 88 | equipment = 10 89 | }; 90 | 91 | enum class e_color : int 92 | { 93 | blue, 94 | green, 95 | yellow, 96 | orange, 97 | purple, 98 | white 99 | }; 100 | -------------------------------------------------------------------------------- /radar/react/.eslintrc.cjs: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | root: true, 3 | env: { browser: true, es2020: true }, 4 | extends: [ 5 | 'eslint:recommended', 6 | 'plugin:react/recommended', 7 | 'plugin:react/jsx-runtime', 8 | 'plugin:react-hooks/recommended', 9 | ], 10 | ignorePatterns: ['dist', '.eslintrc.cjs'], 11 | parserOptions: { ecmaVersion: 'latest', sourceType: 'module' }, 12 | settings: { react: { version: '18.2' } }, 13 | plugins: ['react-refresh'], 14 | rules: { 15 | 'react-refresh/only-export-components': [ 16 | 'warn', 17 | { allowConstantExport: true }, 18 | ], 19 | }, 20 | } 21 | -------------------------------------------------------------------------------- /radar/react/.gitignore: -------------------------------------------------------------------------------- 1 | # Logs 2 | logs 3 | *.log 4 | npm-debug.log* 5 | yarn-debug.log* 6 | yarn-error.log* 7 | pnpm-debug.log* 8 | lerna-debug.log* 9 | 10 | node_modules 11 | dist 12 | dist-ssr 13 | *.local 14 | 15 | # Editor directories and files 16 | .vscode/* 17 | !.vscode/extensions.json 18 | .idea 19 | .DS_Store 20 | *.suo 21 | *.ntvs* 22 | *.njsproj 23 | *.sln 24 | *.sw? 25 | -------------------------------------------------------------------------------- /radar/react/README.md: -------------------------------------------------------------------------------- 1 | # React + Vite 2 | 3 | This template provides a minimal setup to get React working in Vite with HMR and some ESLint rules. 4 | 5 | Currently, two official plugins are available: 6 | 7 | - [@vitejs/plugin-react](https://github.com/vitejs/vite-plugin-react/blob/main/packages/plugin-react/README.md) uses [Babel](https://babeljs.io/) for Fast Refresh 8 | - [@vitejs/plugin-react-swc](https://github.com/vitejs/vite-plugin-react-swc) uses [SWC](https://swc.rs/) for Fast Refresh 9 | -------------------------------------------------------------------------------- /radar/react/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | cs2_webradar 8 | 9 | 10 |
11 | 12 | 13 | 14 | -------------------------------------------------------------------------------- /radar/react/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "cs2_webradar", 3 | "private": true, 4 | "version": "0.0.0", 5 | "type": "module", 6 | "scripts": { 7 | "dev": "vite", 8 | "build": "vite build", 9 | "lint": "eslint . --ext js,jsx --report-unused-disable-directives --max-warnings 0", 10 | "preview": "vite preview" 11 | }, 12 | "dependencies": { 13 | "react": "^18.2.0", 14 | "react-dom": "^18.2.0" 15 | }, 16 | "devDependencies": { 17 | "@types/react": "^18.2.15", 18 | "@types/react-dom": "^18.2.7", 19 | "@vitejs/plugin-react": "^4.0.3", 20 | "autoprefixer": "^10.4.16", 21 | "eslint": "^8.45.0", 22 | "eslint-plugin-react": "^7.32.2", 23 | "eslint-plugin-react-hooks": "^4.6.0", 24 | "eslint-plugin-react-refresh": "^0.4.3", 25 | "postcss": "^8.4.31", 26 | "tailwindcss": "^3.3.3", 27 | "vite": "^4.4.5" 28 | } 29 | } 30 | -------------------------------------------------------------------------------- /radar/react/postcss.config.js: -------------------------------------------------------------------------------- 1 | export default { 2 | plugins: { 3 | tailwindcss: {}, 4 | autoprefixer: {}, 5 | }, 6 | } 7 | -------------------------------------------------------------------------------- /radar/react/public/assets/characters/ctm_diver_varianta.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AtomicBool/cs2_kvm_dma/9f3bd3bdd5062312c2ef20b3c315c4d2cf188f49/radar/react/public/assets/characters/ctm_diver_varianta.png -------------------------------------------------------------------------------- /radar/react/public/assets/characters/ctm_diver_variantb.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AtomicBool/cs2_kvm_dma/9f3bd3bdd5062312c2ef20b3c315c4d2cf188f49/radar/react/public/assets/characters/ctm_diver_variantb.png -------------------------------------------------------------------------------- /radar/react/public/assets/characters/ctm_diver_variantc.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AtomicBool/cs2_kvm_dma/9f3bd3bdd5062312c2ef20b3c315c4d2cf188f49/radar/react/public/assets/characters/ctm_diver_variantc.png -------------------------------------------------------------------------------- /radar/react/public/assets/characters/ctm_fbi.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AtomicBool/cs2_kvm_dma/9f3bd3bdd5062312c2ef20b3c315c4d2cf188f49/radar/react/public/assets/characters/ctm_fbi.png -------------------------------------------------------------------------------- /radar/react/public/assets/characters/ctm_fbi_varianta.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AtomicBool/cs2_kvm_dma/9f3bd3bdd5062312c2ef20b3c315c4d2cf188f49/radar/react/public/assets/characters/ctm_fbi_varianta.png -------------------------------------------------------------------------------- /radar/react/public/assets/characters/ctm_fbi_variantb.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AtomicBool/cs2_kvm_dma/9f3bd3bdd5062312c2ef20b3c315c4d2cf188f49/radar/react/public/assets/characters/ctm_fbi_variantb.png -------------------------------------------------------------------------------- /radar/react/public/assets/characters/ctm_fbi_variantc.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AtomicBool/cs2_kvm_dma/9f3bd3bdd5062312c2ef20b3c315c4d2cf188f49/radar/react/public/assets/characters/ctm_fbi_variantc.png -------------------------------------------------------------------------------- /radar/react/public/assets/characters/ctm_fbi_variantd.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AtomicBool/cs2_kvm_dma/9f3bd3bdd5062312c2ef20b3c315c4d2cf188f49/radar/react/public/assets/characters/ctm_fbi_variantd.png -------------------------------------------------------------------------------- /radar/react/public/assets/characters/ctm_fbi_variante.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AtomicBool/cs2_kvm_dma/9f3bd3bdd5062312c2ef20b3c315c4d2cf188f49/radar/react/public/assets/characters/ctm_fbi_variante.png -------------------------------------------------------------------------------- /radar/react/public/assets/characters/ctm_fbi_variantf.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AtomicBool/cs2_kvm_dma/9f3bd3bdd5062312c2ef20b3c315c4d2cf188f49/radar/react/public/assets/characters/ctm_fbi_variantf.png -------------------------------------------------------------------------------- /radar/react/public/assets/characters/ctm_fbi_variantg.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AtomicBool/cs2_kvm_dma/9f3bd3bdd5062312c2ef20b3c315c4d2cf188f49/radar/react/public/assets/characters/ctm_fbi_variantg.png -------------------------------------------------------------------------------- /radar/react/public/assets/characters/ctm_fbi_varianth.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AtomicBool/cs2_kvm_dma/9f3bd3bdd5062312c2ef20b3c315c4d2cf188f49/radar/react/public/assets/characters/ctm_fbi_varianth.png -------------------------------------------------------------------------------- /radar/react/public/assets/characters/ctm_gendarmerie_varianta.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AtomicBool/cs2_kvm_dma/9f3bd3bdd5062312c2ef20b3c315c4d2cf188f49/radar/react/public/assets/characters/ctm_gendarmerie_varianta.png -------------------------------------------------------------------------------- /radar/react/public/assets/characters/ctm_gendarmerie_variantb.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AtomicBool/cs2_kvm_dma/9f3bd3bdd5062312c2ef20b3c315c4d2cf188f49/radar/react/public/assets/characters/ctm_gendarmerie_variantb.png -------------------------------------------------------------------------------- /radar/react/public/assets/characters/ctm_gendarmerie_variantc.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AtomicBool/cs2_kvm_dma/9f3bd3bdd5062312c2ef20b3c315c4d2cf188f49/radar/react/public/assets/characters/ctm_gendarmerie_variantc.png -------------------------------------------------------------------------------- /radar/react/public/assets/characters/ctm_gendarmerie_variantd.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AtomicBool/cs2_kvm_dma/9f3bd3bdd5062312c2ef20b3c315c4d2cf188f49/radar/react/public/assets/characters/ctm_gendarmerie_variantd.png -------------------------------------------------------------------------------- /radar/react/public/assets/characters/ctm_gendarmerie_variante.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AtomicBool/cs2_kvm_dma/9f3bd3bdd5062312c2ef20b3c315c4d2cf188f49/radar/react/public/assets/characters/ctm_gendarmerie_variante.png -------------------------------------------------------------------------------- /radar/react/public/assets/characters/ctm_heavy.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AtomicBool/cs2_kvm_dma/9f3bd3bdd5062312c2ef20b3c315c4d2cf188f49/radar/react/public/assets/characters/ctm_heavy.png -------------------------------------------------------------------------------- /radar/react/public/assets/characters/ctm_sas.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AtomicBool/cs2_kvm_dma/9f3bd3bdd5062312c2ef20b3c315c4d2cf188f49/radar/react/public/assets/characters/ctm_sas.png -------------------------------------------------------------------------------- /radar/react/public/assets/characters/ctm_sas_variantf.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AtomicBool/cs2_kvm_dma/9f3bd3bdd5062312c2ef20b3c315c4d2cf188f49/radar/react/public/assets/characters/ctm_sas_variantf.png -------------------------------------------------------------------------------- /radar/react/public/assets/characters/ctm_sas_variantg.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AtomicBool/cs2_kvm_dma/9f3bd3bdd5062312c2ef20b3c315c4d2cf188f49/radar/react/public/assets/characters/ctm_sas_variantg.png -------------------------------------------------------------------------------- /radar/react/public/assets/characters/ctm_st6.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AtomicBool/cs2_kvm_dma/9f3bd3bdd5062312c2ef20b3c315c4d2cf188f49/radar/react/public/assets/characters/ctm_st6.png -------------------------------------------------------------------------------- /radar/react/public/assets/characters/ctm_st6_varianta.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AtomicBool/cs2_kvm_dma/9f3bd3bdd5062312c2ef20b3c315c4d2cf188f49/radar/react/public/assets/characters/ctm_st6_varianta.png -------------------------------------------------------------------------------- /radar/react/public/assets/characters/ctm_st6_variantb.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AtomicBool/cs2_kvm_dma/9f3bd3bdd5062312c2ef20b3c315c4d2cf188f49/radar/react/public/assets/characters/ctm_st6_variantb.png -------------------------------------------------------------------------------- /radar/react/public/assets/characters/ctm_st6_variantc.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AtomicBool/cs2_kvm_dma/9f3bd3bdd5062312c2ef20b3c315c4d2cf188f49/radar/react/public/assets/characters/ctm_st6_variantc.png -------------------------------------------------------------------------------- /radar/react/public/assets/characters/ctm_st6_variantd.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AtomicBool/cs2_kvm_dma/9f3bd3bdd5062312c2ef20b3c315c4d2cf188f49/radar/react/public/assets/characters/ctm_st6_variantd.png -------------------------------------------------------------------------------- /radar/react/public/assets/characters/ctm_st6_variante.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AtomicBool/cs2_kvm_dma/9f3bd3bdd5062312c2ef20b3c315c4d2cf188f49/radar/react/public/assets/characters/ctm_st6_variante.png -------------------------------------------------------------------------------- /radar/react/public/assets/characters/ctm_st6_variantf.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AtomicBool/cs2_kvm_dma/9f3bd3bdd5062312c2ef20b3c315c4d2cf188f49/radar/react/public/assets/characters/ctm_st6_variantf.png -------------------------------------------------------------------------------- /radar/react/public/assets/characters/ctm_st6_variantg.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AtomicBool/cs2_kvm_dma/9f3bd3bdd5062312c2ef20b3c315c4d2cf188f49/radar/react/public/assets/characters/ctm_st6_variantg.png -------------------------------------------------------------------------------- /radar/react/public/assets/characters/ctm_st6_varianth.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AtomicBool/cs2_kvm_dma/9f3bd3bdd5062312c2ef20b3c315c4d2cf188f49/radar/react/public/assets/characters/ctm_st6_varianth.png -------------------------------------------------------------------------------- /radar/react/public/assets/characters/ctm_st6_varianti.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AtomicBool/cs2_kvm_dma/9f3bd3bdd5062312c2ef20b3c315c4d2cf188f49/radar/react/public/assets/characters/ctm_st6_varianti.png -------------------------------------------------------------------------------- /radar/react/public/assets/characters/ctm_st6_variantj.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AtomicBool/cs2_kvm_dma/9f3bd3bdd5062312c2ef20b3c315c4d2cf188f49/radar/react/public/assets/characters/ctm_st6_variantj.png -------------------------------------------------------------------------------- /radar/react/public/assets/characters/ctm_st6_variantk.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AtomicBool/cs2_kvm_dma/9f3bd3bdd5062312c2ef20b3c315c4d2cf188f49/radar/react/public/assets/characters/ctm_st6_variantk.png -------------------------------------------------------------------------------- /radar/react/public/assets/characters/ctm_st6_variantl.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AtomicBool/cs2_kvm_dma/9f3bd3bdd5062312c2ef20b3c315c4d2cf188f49/radar/react/public/assets/characters/ctm_st6_variantl.png -------------------------------------------------------------------------------- /radar/react/public/assets/characters/ctm_st6_variantm.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AtomicBool/cs2_kvm_dma/9f3bd3bdd5062312c2ef20b3c315c4d2cf188f49/radar/react/public/assets/characters/ctm_st6_variantm.png -------------------------------------------------------------------------------- /radar/react/public/assets/characters/ctm_st6_variantn.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AtomicBool/cs2_kvm_dma/9f3bd3bdd5062312c2ef20b3c315c4d2cf188f49/radar/react/public/assets/characters/ctm_st6_variantn.png -------------------------------------------------------------------------------- /radar/react/public/assets/characters/ctm_swat_variante.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AtomicBool/cs2_kvm_dma/9f3bd3bdd5062312c2ef20b3c315c4d2cf188f49/radar/react/public/assets/characters/ctm_swat_variante.png -------------------------------------------------------------------------------- /radar/react/public/assets/characters/ctm_swat_variantf.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AtomicBool/cs2_kvm_dma/9f3bd3bdd5062312c2ef20b3c315c4d2cf188f49/radar/react/public/assets/characters/ctm_swat_variantf.png -------------------------------------------------------------------------------- /radar/react/public/assets/characters/ctm_swat_variantg.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AtomicBool/cs2_kvm_dma/9f3bd3bdd5062312c2ef20b3c315c4d2cf188f49/radar/react/public/assets/characters/ctm_swat_variantg.png -------------------------------------------------------------------------------- /radar/react/public/assets/characters/ctm_swat_varianth.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AtomicBool/cs2_kvm_dma/9f3bd3bdd5062312c2ef20b3c315c4d2cf188f49/radar/react/public/assets/characters/ctm_swat_varianth.png -------------------------------------------------------------------------------- /radar/react/public/assets/characters/ctm_swat_varianti.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AtomicBool/cs2_kvm_dma/9f3bd3bdd5062312c2ef20b3c315c4d2cf188f49/radar/react/public/assets/characters/ctm_swat_varianti.png -------------------------------------------------------------------------------- /radar/react/public/assets/characters/ctm_swat_variantj.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AtomicBool/cs2_kvm_dma/9f3bd3bdd5062312c2ef20b3c315c4d2cf188f49/radar/react/public/assets/characters/ctm_swat_variantj.png -------------------------------------------------------------------------------- /radar/react/public/assets/characters/ctm_swat_variantk.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AtomicBool/cs2_kvm_dma/9f3bd3bdd5062312c2ef20b3c315c4d2cf188f49/radar/react/public/assets/characters/ctm_swat_variantk.png -------------------------------------------------------------------------------- /radar/react/public/assets/characters/tm_anarchist.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AtomicBool/cs2_kvm_dma/9f3bd3bdd5062312c2ef20b3c315c4d2cf188f49/radar/react/public/assets/characters/tm_anarchist.png -------------------------------------------------------------------------------- /radar/react/public/assets/characters/tm_anarchist_varianta.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AtomicBool/cs2_kvm_dma/9f3bd3bdd5062312c2ef20b3c315c4d2cf188f49/radar/react/public/assets/characters/tm_anarchist_varianta.png -------------------------------------------------------------------------------- /radar/react/public/assets/characters/tm_anarchist_variantb.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AtomicBool/cs2_kvm_dma/9f3bd3bdd5062312c2ef20b3c315c4d2cf188f49/radar/react/public/assets/characters/tm_anarchist_variantb.png -------------------------------------------------------------------------------- /radar/react/public/assets/characters/tm_anarchist_variantc.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AtomicBool/cs2_kvm_dma/9f3bd3bdd5062312c2ef20b3c315c4d2cf188f49/radar/react/public/assets/characters/tm_anarchist_variantc.png -------------------------------------------------------------------------------- /radar/react/public/assets/characters/tm_anarchist_variantd.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AtomicBool/cs2_kvm_dma/9f3bd3bdd5062312c2ef20b3c315c4d2cf188f49/radar/react/public/assets/characters/tm_anarchist_variantd.png -------------------------------------------------------------------------------- /radar/react/public/assets/characters/tm_balkan_varianta.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AtomicBool/cs2_kvm_dma/9f3bd3bdd5062312c2ef20b3c315c4d2cf188f49/radar/react/public/assets/characters/tm_balkan_varianta.png -------------------------------------------------------------------------------- /radar/react/public/assets/characters/tm_balkan_variantb.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AtomicBool/cs2_kvm_dma/9f3bd3bdd5062312c2ef20b3c315c4d2cf188f49/radar/react/public/assets/characters/tm_balkan_variantb.png -------------------------------------------------------------------------------- /radar/react/public/assets/characters/tm_balkan_variantc.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AtomicBool/cs2_kvm_dma/9f3bd3bdd5062312c2ef20b3c315c4d2cf188f49/radar/react/public/assets/characters/tm_balkan_variantc.png -------------------------------------------------------------------------------- /radar/react/public/assets/characters/tm_balkan_variantd.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AtomicBool/cs2_kvm_dma/9f3bd3bdd5062312c2ef20b3c315c4d2cf188f49/radar/react/public/assets/characters/tm_balkan_variantd.png -------------------------------------------------------------------------------- /radar/react/public/assets/characters/tm_balkan_variante.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AtomicBool/cs2_kvm_dma/9f3bd3bdd5062312c2ef20b3c315c4d2cf188f49/radar/react/public/assets/characters/tm_balkan_variante.png -------------------------------------------------------------------------------- /radar/react/public/assets/characters/tm_balkan_variantf.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AtomicBool/cs2_kvm_dma/9f3bd3bdd5062312c2ef20b3c315c4d2cf188f49/radar/react/public/assets/characters/tm_balkan_variantf.png -------------------------------------------------------------------------------- /radar/react/public/assets/characters/tm_balkan_variantg.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AtomicBool/cs2_kvm_dma/9f3bd3bdd5062312c2ef20b3c315c4d2cf188f49/radar/react/public/assets/characters/tm_balkan_variantg.png -------------------------------------------------------------------------------- /radar/react/public/assets/characters/tm_balkan_varianth.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AtomicBool/cs2_kvm_dma/9f3bd3bdd5062312c2ef20b3c315c4d2cf188f49/radar/react/public/assets/characters/tm_balkan_varianth.png -------------------------------------------------------------------------------- /radar/react/public/assets/characters/tm_balkan_varianti.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AtomicBool/cs2_kvm_dma/9f3bd3bdd5062312c2ef20b3c315c4d2cf188f49/radar/react/public/assets/characters/tm_balkan_varianti.png -------------------------------------------------------------------------------- /radar/react/public/assets/characters/tm_balkan_variantj.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AtomicBool/cs2_kvm_dma/9f3bd3bdd5062312c2ef20b3c315c4d2cf188f49/radar/react/public/assets/characters/tm_balkan_variantj.png -------------------------------------------------------------------------------- /radar/react/public/assets/characters/tm_balkan_variantk.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AtomicBool/cs2_kvm_dma/9f3bd3bdd5062312c2ef20b3c315c4d2cf188f49/radar/react/public/assets/characters/tm_balkan_variantk.png -------------------------------------------------------------------------------- /radar/react/public/assets/characters/tm_balkan_variantl.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AtomicBool/cs2_kvm_dma/9f3bd3bdd5062312c2ef20b3c315c4d2cf188f49/radar/react/public/assets/characters/tm_balkan_variantl.png -------------------------------------------------------------------------------- /radar/react/public/assets/characters/tm_jumpsuit_varianta.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AtomicBool/cs2_kvm_dma/9f3bd3bdd5062312c2ef20b3c315c4d2cf188f49/radar/react/public/assets/characters/tm_jumpsuit_varianta.png -------------------------------------------------------------------------------- /radar/react/public/assets/characters/tm_jumpsuit_variantb.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AtomicBool/cs2_kvm_dma/9f3bd3bdd5062312c2ef20b3c315c4d2cf188f49/radar/react/public/assets/characters/tm_jumpsuit_variantb.png -------------------------------------------------------------------------------- /radar/react/public/assets/characters/tm_jumpsuit_variantc.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AtomicBool/cs2_kvm_dma/9f3bd3bdd5062312c2ef20b3c315c4d2cf188f49/radar/react/public/assets/characters/tm_jumpsuit_variantc.png -------------------------------------------------------------------------------- /radar/react/public/assets/characters/tm_jungle_raider_varianta.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AtomicBool/cs2_kvm_dma/9f3bd3bdd5062312c2ef20b3c315c4d2cf188f49/radar/react/public/assets/characters/tm_jungle_raider_varianta.png -------------------------------------------------------------------------------- /radar/react/public/assets/characters/tm_jungle_raider_variantb.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AtomicBool/cs2_kvm_dma/9f3bd3bdd5062312c2ef20b3c315c4d2cf188f49/radar/react/public/assets/characters/tm_jungle_raider_variantb.png -------------------------------------------------------------------------------- /radar/react/public/assets/characters/tm_jungle_raider_variantb2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AtomicBool/cs2_kvm_dma/9f3bd3bdd5062312c2ef20b3c315c4d2cf188f49/radar/react/public/assets/characters/tm_jungle_raider_variantb2.png -------------------------------------------------------------------------------- /radar/react/public/assets/characters/tm_jungle_raider_variantc.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AtomicBool/cs2_kvm_dma/9f3bd3bdd5062312c2ef20b3c315c4d2cf188f49/radar/react/public/assets/characters/tm_jungle_raider_variantc.png -------------------------------------------------------------------------------- /radar/react/public/assets/characters/tm_jungle_raider_variantd.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AtomicBool/cs2_kvm_dma/9f3bd3bdd5062312c2ef20b3c315c4d2cf188f49/radar/react/public/assets/characters/tm_jungle_raider_variantd.png -------------------------------------------------------------------------------- /radar/react/public/assets/characters/tm_jungle_raider_variante.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AtomicBool/cs2_kvm_dma/9f3bd3bdd5062312c2ef20b3c315c4d2cf188f49/radar/react/public/assets/characters/tm_jungle_raider_variante.png -------------------------------------------------------------------------------- /radar/react/public/assets/characters/tm_jungle_raider_variantf.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AtomicBool/cs2_kvm_dma/9f3bd3bdd5062312c2ef20b3c315c4d2cf188f49/radar/react/public/assets/characters/tm_jungle_raider_variantf.png -------------------------------------------------------------------------------- /radar/react/public/assets/characters/tm_jungle_raider_variantf2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AtomicBool/cs2_kvm_dma/9f3bd3bdd5062312c2ef20b3c315c4d2cf188f49/radar/react/public/assets/characters/tm_jungle_raider_variantf2.png -------------------------------------------------------------------------------- /radar/react/public/assets/characters/tm_leet_variantf.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AtomicBool/cs2_kvm_dma/9f3bd3bdd5062312c2ef20b3c315c4d2cf188f49/radar/react/public/assets/characters/tm_leet_variantf.png -------------------------------------------------------------------------------- /radar/react/public/assets/characters/tm_leet_variantg.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AtomicBool/cs2_kvm_dma/9f3bd3bdd5062312c2ef20b3c315c4d2cf188f49/radar/react/public/assets/characters/tm_leet_variantg.png -------------------------------------------------------------------------------- /radar/react/public/assets/characters/tm_leet_varianth.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AtomicBool/cs2_kvm_dma/9f3bd3bdd5062312c2ef20b3c315c4d2cf188f49/radar/react/public/assets/characters/tm_leet_varianth.png -------------------------------------------------------------------------------- /radar/react/public/assets/characters/tm_leet_varianti.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AtomicBool/cs2_kvm_dma/9f3bd3bdd5062312c2ef20b3c315c4d2cf188f49/radar/react/public/assets/characters/tm_leet_varianti.png -------------------------------------------------------------------------------- /radar/react/public/assets/characters/tm_leet_variantj.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AtomicBool/cs2_kvm_dma/9f3bd3bdd5062312c2ef20b3c315c4d2cf188f49/radar/react/public/assets/characters/tm_leet_variantj.png -------------------------------------------------------------------------------- /radar/react/public/assets/characters/tm_phoenix.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AtomicBool/cs2_kvm_dma/9f3bd3bdd5062312c2ef20b3c315c4d2cf188f49/radar/react/public/assets/characters/tm_phoenix.png -------------------------------------------------------------------------------- /radar/react/public/assets/characters/tm_phoenix_heavy.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AtomicBool/cs2_kvm_dma/9f3bd3bdd5062312c2ef20b3c315c4d2cf188f49/radar/react/public/assets/characters/tm_phoenix_heavy.png -------------------------------------------------------------------------------- /radar/react/public/assets/characters/tm_phoenix_varianta.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AtomicBool/cs2_kvm_dma/9f3bd3bdd5062312c2ef20b3c315c4d2cf188f49/radar/react/public/assets/characters/tm_phoenix_varianta.png -------------------------------------------------------------------------------- /radar/react/public/assets/characters/tm_phoenix_variantb.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AtomicBool/cs2_kvm_dma/9f3bd3bdd5062312c2ef20b3c315c4d2cf188f49/radar/react/public/assets/characters/tm_phoenix_variantb.png -------------------------------------------------------------------------------- /radar/react/public/assets/characters/tm_phoenix_variantc.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AtomicBool/cs2_kvm_dma/9f3bd3bdd5062312c2ef20b3c315c4d2cf188f49/radar/react/public/assets/characters/tm_phoenix_variantc.png -------------------------------------------------------------------------------- /radar/react/public/assets/characters/tm_phoenix_variantd.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AtomicBool/cs2_kvm_dma/9f3bd3bdd5062312c2ef20b3c315c4d2cf188f49/radar/react/public/assets/characters/tm_phoenix_variantd.png -------------------------------------------------------------------------------- /radar/react/public/assets/characters/tm_phoenix_variantf.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AtomicBool/cs2_kvm_dma/9f3bd3bdd5062312c2ef20b3c315c4d2cf188f49/radar/react/public/assets/characters/tm_phoenix_variantf.png -------------------------------------------------------------------------------- /radar/react/public/assets/characters/tm_phoenix_variantg.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AtomicBool/cs2_kvm_dma/9f3bd3bdd5062312c2ef20b3c315c4d2cf188f49/radar/react/public/assets/characters/tm_phoenix_variantg.png -------------------------------------------------------------------------------- /radar/react/public/assets/characters/tm_phoenix_varianth.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AtomicBool/cs2_kvm_dma/9f3bd3bdd5062312c2ef20b3c315c4d2cf188f49/radar/react/public/assets/characters/tm_phoenix_varianth.png -------------------------------------------------------------------------------- /radar/react/public/assets/characters/tm_phoenix_varianti.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AtomicBool/cs2_kvm_dma/9f3bd3bdd5062312c2ef20b3c315c4d2cf188f49/radar/react/public/assets/characters/tm_phoenix_varianti.png -------------------------------------------------------------------------------- /radar/react/public/assets/characters/tm_professional_varf.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AtomicBool/cs2_kvm_dma/9f3bd3bdd5062312c2ef20b3c315c4d2cf188f49/radar/react/public/assets/characters/tm_professional_varf.png -------------------------------------------------------------------------------- /radar/react/public/assets/characters/tm_professional_varf1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AtomicBool/cs2_kvm_dma/9f3bd3bdd5062312c2ef20b3c315c4d2cf188f49/radar/react/public/assets/characters/tm_professional_varf1.png -------------------------------------------------------------------------------- /radar/react/public/assets/characters/tm_professional_varf2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AtomicBool/cs2_kvm_dma/9f3bd3bdd5062312c2ef20b3c315c4d2cf188f49/radar/react/public/assets/characters/tm_professional_varf2.png -------------------------------------------------------------------------------- /radar/react/public/assets/characters/tm_professional_varf3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AtomicBool/cs2_kvm_dma/9f3bd3bdd5062312c2ef20b3c315c4d2cf188f49/radar/react/public/assets/characters/tm_professional_varf3.png -------------------------------------------------------------------------------- /radar/react/public/assets/characters/tm_professional_varf4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AtomicBool/cs2_kvm_dma/9f3bd3bdd5062312c2ef20b3c315c4d2cf188f49/radar/react/public/assets/characters/tm_professional_varf4.png -------------------------------------------------------------------------------- /radar/react/public/assets/characters/tm_professional_varf5.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AtomicBool/cs2_kvm_dma/9f3bd3bdd5062312c2ef20b3c315c4d2cf188f49/radar/react/public/assets/characters/tm_professional_varf5.png -------------------------------------------------------------------------------- /radar/react/public/assets/characters/tm_professional_varg.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AtomicBool/cs2_kvm_dma/9f3bd3bdd5062312c2ef20b3c315c4d2cf188f49/radar/react/public/assets/characters/tm_professional_varg.png -------------------------------------------------------------------------------- /radar/react/public/assets/characters/tm_professional_varh.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AtomicBool/cs2_kvm_dma/9f3bd3bdd5062312c2ef20b3c315c4d2cf188f49/radar/react/public/assets/characters/tm_professional_varh.png -------------------------------------------------------------------------------- /radar/react/public/assets/characters/tm_professional_vari.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AtomicBool/cs2_kvm_dma/9f3bd3bdd5062312c2ef20b3c315c4d2cf188f49/radar/react/public/assets/characters/tm_professional_vari.png -------------------------------------------------------------------------------- /radar/react/public/assets/characters/tm_professional_varj.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AtomicBool/cs2_kvm_dma/9f3bd3bdd5062312c2ef20b3c315c4d2cf188f49/radar/react/public/assets/characters/tm_professional_varj.png -------------------------------------------------------------------------------- /radar/react/public/assets/icons/ak47.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 6 | 7 | 8 | 9 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | -------------------------------------------------------------------------------- /radar/react/public/assets/icons/axe.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 6 | 13 | 14 | -------------------------------------------------------------------------------- /radar/react/public/assets/icons/bayonet.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 6 | 7 | 8 | 9 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | -------------------------------------------------------------------------------- /radar/react/public/assets/icons/c4_sml.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AtomicBool/cs2_kvm_dma/9f3bd3bdd5062312c2ef20b3c315c4d2cf188f49/radar/react/public/assets/icons/c4_sml.png -------------------------------------------------------------------------------- /radar/react/public/assets/icons/deagle.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 6 | 7 | 8 | 9 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | -------------------------------------------------------------------------------- /radar/react/public/assets/icons/decoy.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /radar/react/public/assets/icons/defuser.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /radar/react/public/assets/icons/fiveseven.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 6 | 7 | 8 | 9 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | -------------------------------------------------------------------------------- /radar/react/public/assets/icons/flashbang.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /radar/react/public/assets/icons/gauge.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /radar/react/public/assets/icons/glock.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 6 | 7 | 8 | 9 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | -------------------------------------------------------------------------------- /radar/react/public/assets/icons/health.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /radar/react/public/assets/icons/hkp2000.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 6 | 7 | 8 | 31 | 32 | 33 | 34 | -------------------------------------------------------------------------------- /radar/react/public/assets/icons/icon-enemy-death_png.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AtomicBool/cs2_kvm_dma/9f3bd3bdd5062312c2ef20b3c315c4d2cf188f49/radar/react/public/assets/icons/icon-enemy-death_png.png -------------------------------------------------------------------------------- /radar/react/public/assets/icons/inferno.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 6 | 7 | 8 | 29 | 30 | -------------------------------------------------------------------------------- /radar/react/public/assets/icons/kevlar.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 6 | 30 | 31 | -------------------------------------------------------------------------------- /radar/react/public/assets/icons/knife.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 6 | 7 | 8 | 9 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | -------------------------------------------------------------------------------- /radar/react/public/assets/icons/knife_bowie.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 6 | 7 | 8 | 9 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | -------------------------------------------------------------------------------- /radar/react/public/assets/icons/knife_css.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 6 | 7 | 8 | 20 | 21 | -------------------------------------------------------------------------------- /radar/react/public/assets/icons/knife_falchion.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 6 | 7 | 8 | 9 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | -------------------------------------------------------------------------------- /radar/react/public/assets/icons/knife_flip.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 6 | 7 | 8 | 9 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | -------------------------------------------------------------------------------- /radar/react/public/assets/icons/knife_gut.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 6 | 7 | 8 | 9 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | -------------------------------------------------------------------------------- /radar/react/public/assets/icons/knife_gypsy_jackknife.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 6 | 7 | 17 | 18 | 19 | 20 | 21 | -------------------------------------------------------------------------------- /radar/react/public/assets/icons/knife_karambit.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 6 | 7 | 8 | 9 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | -------------------------------------------------------------------------------- /radar/react/public/assets/icons/knife_kukri.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 6 | 7 | 8 | 36 | 37 | -------------------------------------------------------------------------------- /radar/react/public/assets/icons/knife_m9_bayonet.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 6 | 7 | 8 | 9 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | -------------------------------------------------------------------------------- /radar/react/public/assets/icons/knife_outdoor.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 6 | 7 | 28 | 29 | 30 | 31 | 32 | -------------------------------------------------------------------------------- /radar/react/public/assets/icons/knife_skeleton.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 6 | 7 | 8 | 34 | 35 | -------------------------------------------------------------------------------- /radar/react/public/assets/icons/knife_stiletto.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 6 | 7 | 15 | 16 | 17 | 18 | 19 | -------------------------------------------------------------------------------- /radar/react/public/assets/icons/knife_survival_bowie.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 6 | 7 | 8 | 9 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | -------------------------------------------------------------------------------- /radar/react/public/assets/icons/knife_t.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 6 | 7 | 8 | 9 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | -------------------------------------------------------------------------------- /radar/react/public/assets/icons/knife_twinblade.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 6 | 7 | 8 | 33 | 34 | -------------------------------------------------------------------------------- /radar/react/public/assets/icons/knife_widowmaker.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 6 | 7 | 30 | 31 | 32 | 33 | 34 | -------------------------------------------------------------------------------- /radar/react/public/assets/icons/knifegg.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 6 | 7 | 8 | 34 | 35 | 36 | 37 | -------------------------------------------------------------------------------- /radar/react/public/assets/icons/mac10.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 6 | 7 | 8 | 9 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | -------------------------------------------------------------------------------- /radar/react/public/assets/icons/molotov.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /radar/react/public/assets/icons/mp5sd.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 6 | 32 | 33 | -------------------------------------------------------------------------------- /radar/react/public/assets/icons/p2000.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 6 | 7 | 8 | 9 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | -------------------------------------------------------------------------------- /radar/react/public/assets/icons/p90.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 6 | 7 | 8 | 9 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | -------------------------------------------------------------------------------- /radar/react/public/assets/icons/smokegrenade.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /radar/react/public/assets/icons/snowball.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 6 | 7 | 8 | 9 | 24 | 25 | 26 | -------------------------------------------------------------------------------- /radar/react/public/assets/icons/spray0.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | -------------------------------------------------------------------------------- /radar/react/public/assets/icons/taser.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 6 | 7 | 8 | 9 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | -------------------------------------------------------------------------------- /radar/react/public/assets/icons/usp_silencer.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 6 | 7 | 8 | 9 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | -------------------------------------------------------------------------------- /radar/react/public/assets/icons/usp_silencer_off.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 6 | 7 | 8 | 9 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | -------------------------------------------------------------------------------- /radar/react/public/assets/typefaces/TASAOrbiterVF.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AtomicBool/cs2_kvm_dma/9f3bd3bdd5062312c2ef20b3c315c4d2cf188f49/radar/react/public/assets/typefaces/TASAOrbiterVF.woff2 -------------------------------------------------------------------------------- /radar/react/public/data/cs_italy/background.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AtomicBool/cs2_kvm_dma/9f3bd3bdd5062312c2ef20b3c315c4d2cf188f49/radar/react/public/data/cs_italy/background.png -------------------------------------------------------------------------------- /radar/react/public/data/cs_italy/data.json: -------------------------------------------------------------------------------- 1 | { 2 | "x": -2647, 3 | "y": 2592, 4 | "scale": 4.6 5 | } -------------------------------------------------------------------------------- /radar/react/public/data/cs_italy/radar.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AtomicBool/cs2_kvm_dma/9f3bd3bdd5062312c2ef20b3c315c4d2cf188f49/radar/react/public/data/cs_italy/radar.png -------------------------------------------------------------------------------- /radar/react/public/data/cs_office/background.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AtomicBool/cs2_kvm_dma/9f3bd3bdd5062312c2ef20b3c315c4d2cf188f49/radar/react/public/data/cs_office/background.png -------------------------------------------------------------------------------- /radar/react/public/data/cs_office/data.json: -------------------------------------------------------------------------------- 1 | { 2 | "x": -1838, 3 | "y": 1858, 4 | "scale": 4.1 5 | } -------------------------------------------------------------------------------- /radar/react/public/data/cs_office/radar.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AtomicBool/cs2_kvm_dma/9f3bd3bdd5062312c2ef20b3c315c4d2cf188f49/radar/react/public/data/cs_office/radar.png -------------------------------------------------------------------------------- /radar/react/public/data/de_ancient/background.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AtomicBool/cs2_kvm_dma/9f3bd3bdd5062312c2ef20b3c315c4d2cf188f49/radar/react/public/data/de_ancient/background.png -------------------------------------------------------------------------------- /radar/react/public/data/de_ancient/data.json: -------------------------------------------------------------------------------- 1 | 2 | { 3 | "x": -2953, 4 | "y": 2164, 5 | "scale": 5 6 | } -------------------------------------------------------------------------------- /radar/react/public/data/de_ancient/radar.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AtomicBool/cs2_kvm_dma/9f3bd3bdd5062312c2ef20b3c315c4d2cf188f49/radar/react/public/data/de_ancient/radar.png -------------------------------------------------------------------------------- /radar/react/public/data/de_anubis/background.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AtomicBool/cs2_kvm_dma/9f3bd3bdd5062312c2ef20b3c315c4d2cf188f49/radar/react/public/data/de_anubis/background.png -------------------------------------------------------------------------------- /radar/react/public/data/de_anubis/data.json: -------------------------------------------------------------------------------- 1 | 2 | { 3 | "x": -2796, 4 | "y": 3328, 5 | "scale": 5.22 6 | } -------------------------------------------------------------------------------- /radar/react/public/data/de_anubis/radar.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AtomicBool/cs2_kvm_dma/9f3bd3bdd5062312c2ef20b3c315c4d2cf188f49/radar/react/public/data/de_anubis/radar.png -------------------------------------------------------------------------------- /radar/react/public/data/de_dust2/background.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AtomicBool/cs2_kvm_dma/9f3bd3bdd5062312c2ef20b3c315c4d2cf188f49/radar/react/public/data/de_dust2/background.png -------------------------------------------------------------------------------- /radar/react/public/data/de_dust2/data.json: -------------------------------------------------------------------------------- 1 | { 2 | "x": -2476, 3 | "y": 3239, 4 | "scale": 4.4 5 | } -------------------------------------------------------------------------------- /radar/react/public/data/de_dust2/radar.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AtomicBool/cs2_kvm_dma/9f3bd3bdd5062312c2ef20b3c315c4d2cf188f49/radar/react/public/data/de_dust2/radar.png -------------------------------------------------------------------------------- /radar/react/public/data/de_inferno/background.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AtomicBool/cs2_kvm_dma/9f3bd3bdd5062312c2ef20b3c315c4d2cf188f49/radar/react/public/data/de_inferno/background.png -------------------------------------------------------------------------------- /radar/react/public/data/de_inferno/data.json: -------------------------------------------------------------------------------- 1 | { 2 | "x": -2087, 3 | "y": 3870, 4 | "scale": 4.9 5 | } -------------------------------------------------------------------------------- /radar/react/public/data/de_inferno/radar.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AtomicBool/cs2_kvm_dma/9f3bd3bdd5062312c2ef20b3c315c4d2cf188f49/radar/react/public/data/de_inferno/radar.png -------------------------------------------------------------------------------- /radar/react/public/data/de_mills/background.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AtomicBool/cs2_kvm_dma/9f3bd3bdd5062312c2ef20b3c315c4d2cf188f49/radar/react/public/data/de_mills/background.png -------------------------------------------------------------------------------- /radar/react/public/data/de_mills/data.json: -------------------------------------------------------------------------------- 1 | { 2 | "x": -4810, 3 | "y": -320, 4 | "scale": 5.148437 5 | } -------------------------------------------------------------------------------- /radar/react/public/data/de_mills/radar.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AtomicBool/cs2_kvm_dma/9f3bd3bdd5062312c2ef20b3c315c4d2cf188f49/radar/react/public/data/de_mills/radar.png -------------------------------------------------------------------------------- /radar/react/public/data/de_mirage/background.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AtomicBool/cs2_kvm_dma/9f3bd3bdd5062312c2ef20b3c315c4d2cf188f49/radar/react/public/data/de_mirage/background.png -------------------------------------------------------------------------------- /radar/react/public/data/de_mirage/data.json: -------------------------------------------------------------------------------- 1 | { 2 | "x": -3230, 3 | "y": 1713, 4 | "scale": 5.00 5 | } -------------------------------------------------------------------------------- /radar/react/public/data/de_mirage/de_mirage_radar_psd.psd: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AtomicBool/cs2_kvm_dma/9f3bd3bdd5062312c2ef20b3c315c4d2cf188f49/radar/react/public/data/de_mirage/de_mirage_radar_psd.psd -------------------------------------------------------------------------------- /radar/react/public/data/de_mirage/radar.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AtomicBool/cs2_kvm_dma/9f3bd3bdd5062312c2ef20b3c315c4d2cf188f49/radar/react/public/data/de_mirage/radar.png -------------------------------------------------------------------------------- /radar/react/public/data/de_nuke/background.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AtomicBool/cs2_kvm_dma/9f3bd3bdd5062312c2ef20b3c315c4d2cf188f49/radar/react/public/data/de_nuke/background.png -------------------------------------------------------------------------------- /radar/react/public/data/de_nuke/data.json: -------------------------------------------------------------------------------- 1 | { 2 | "x": -3453, 3 | "y": 2887, 4 | "scale": 7 5 | } -------------------------------------------------------------------------------- /radar/react/public/data/de_nuke/radar.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AtomicBool/cs2_kvm_dma/9f3bd3bdd5062312c2ef20b3c315c4d2cf188f49/radar/react/public/data/de_nuke/radar.png -------------------------------------------------------------------------------- /radar/react/public/data/de_overpass/background.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AtomicBool/cs2_kvm_dma/9f3bd3bdd5062312c2ef20b3c315c4d2cf188f49/radar/react/public/data/de_overpass/background.png -------------------------------------------------------------------------------- /radar/react/public/data/de_overpass/data.json: -------------------------------------------------------------------------------- 1 | { 2 | "x": -4831, 3 | "y": 1781, 4 | "scale": 5.2 5 | } -------------------------------------------------------------------------------- /radar/react/public/data/de_overpass/radar.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AtomicBool/cs2_kvm_dma/9f3bd3bdd5062312c2ef20b3c315c4d2cf188f49/radar/react/public/data/de_overpass/radar.png -------------------------------------------------------------------------------- /radar/react/public/data/de_thera/background.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AtomicBool/cs2_kvm_dma/9f3bd3bdd5062312c2ef20b3c315c4d2cf188f49/radar/react/public/data/de_thera/background.png -------------------------------------------------------------------------------- /radar/react/public/data/de_thera/data.json: -------------------------------------------------------------------------------- 1 | { 2 | "x": -85.609764, 3 | "y": 2261.8025, 4 | "scale": 4.846961 5 | } -------------------------------------------------------------------------------- /radar/react/public/data/de_thera/radar.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AtomicBool/cs2_kvm_dma/9f3bd3bdd5062312c2ef20b3c315c4d2cf188f49/radar/react/public/data/de_thera/radar.png -------------------------------------------------------------------------------- /radar/react/public/data/de_vertigo/background.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AtomicBool/cs2_kvm_dma/9f3bd3bdd5062312c2ef20b3c315c4d2cf188f49/radar/react/public/data/de_vertigo/background.png -------------------------------------------------------------------------------- /radar/react/public/data/de_vertigo/data.json: -------------------------------------------------------------------------------- 1 | { 2 | "x": -3168, 3 | "y": 1762, 4 | "scale": 4.0, 5 | "value": 11701 6 | } -------------------------------------------------------------------------------- /radar/react/public/data/de_vertigo/radar.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AtomicBool/cs2_kvm_dma/9f3bd3bdd5062312c2ef20b3c315c4d2cf188f49/radar/react/public/data/de_vertigo/radar.png -------------------------------------------------------------------------------- /radar/react/public/vite.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /radar/react/src/App.css: -------------------------------------------------------------------------------- 1 | @tailwind base; 2 | @tailwind components; 3 | @tailwind utilities; 4 | 5 | @font-face { 6 | font-family: "TASAOrbiter"; 7 | src: url("./assets/typefaces/TASAOrbiterVF.woff2"); 8 | } 9 | 10 | :root { 11 | --text-primary: #b1d0e7; 12 | --text-secondary: #6492b4; 13 | } 14 | 15 | body { 16 | margin: 0; 17 | font-family: "TASAOrbiter"; 18 | color: var(--text-primary); 19 | background-repeat: no-repeat; 20 | background-size: cover; 21 | } -------------------------------------------------------------------------------- /radar/react/src/App.jsx: -------------------------------------------------------------------------------- 1 | import ReactDOM from 'react-dom/client' 2 | import { useEffect, useState } from 'react' 3 | import './App.css' 4 | import { PlayerCard } from "./PlayerCard/PlayerCard"; 5 | import { Radar } from "./Radar/Radar"; 6 | import { getLatency, Latency } from './Latency/Latency'; 7 | import { MaskedIcon } from './MaskedIcon/MaskedIcon'; 8 | 9 | // if you want to share the radar, set this to '0', otherwise let it be '1'. 10 | const USE_LOCALHOST = 0; 11 | 12 | const PUBLIC_IP = "103.71.69.61"; 13 | const PORT = 42051; 14 | 15 | const App = () => { 16 | const [averageLatency, setAverageLatency] = useState(0); 17 | const [playerArray, setPlayerArray] = useState([]); 18 | const [mapData, setMapData] = useState(); 19 | const [localTeam, setLocalTeam] = useState(); 20 | const [bombData, setBombData] = useState(); 21 | 22 | useEffect(() => { 23 | const fetchData = async () => { 24 | let webSocket = null; 25 | let webSocketURL = null; 26 | 27 | if (!webSocket) { 28 | if (USE_LOCALHOST) { 29 | webSocketURL = `ws://localhost:${PORT}/cs2_webradar`; 30 | } else { 31 | webSocketURL = `ws://${PUBLIC_IP}:${PORT}/cs2_webradar`; 32 | } 33 | 34 | if (!webSocketURL) return; 35 | webSocket = new WebSocket(webSocketURL); 36 | } 37 | 38 | webSocket.onopen = async () => { 39 | console.info("connected to the web socket"); 40 | } 41 | 42 | webSocket.onclose = async () => { 43 | console.error("disconnected from the web socket"); 44 | } 45 | 46 | webSocket.onerror = async (error) => { 47 | document.getElementsByClassName("radar_message")[0].textContent = `WebSocket connection to '${webSocketURL}/cs2_webradar' failed`; 48 | console.error(error); 49 | } 50 | 51 | webSocket.onmessage = async (event) => { 52 | setAverageLatency(getLatency()); 53 | 54 | const parsedData = JSON.parse(await event.data.text()); 55 | setPlayerArray(parsedData.m_players); 56 | setLocalTeam(parsedData.m_local_team); 57 | setBombData(parsedData.m_bomb); 58 | 59 | const map = parsedData.m_map; 60 | if (map !== "invalid") { 61 | setMapData({ ...(await (await fetch(`data/${map}/data.json`)).json()), name: map }); 62 | document.body.style.backgroundImage = `url(./data/${map}/background.png)`; 63 | } 64 | }; 65 | }; 66 | 67 | fetchData(); 68 | }, []); 69 | 70 | return ( 71 |
72 | { 73 | (bombData && bombData.m_blow_time > 0 && !bombData.m_is_defused) && ( 74 |
75 |
76 | 0)) && `bg-radar-green` || (bombData.m_blow_time - bombData.m_defuse_time) < 0 && `bg-radar-red` || `bg-radar-secondary`} /> 77 | {`${bombData.m_blow_time.toFixed(1)}s ${bombData.m_is_defusing && `(${bombData.m_defuse_time.toFixed(1)}s)` || ''}`} 78 |
79 |
80 | ) 81 | } 82 | 83 |
84 | 85 | 86 |
    87 | { 88 | playerArray.filter((player) => player.m_team == 2).map((player) => 89 | 90 | ) 91 | } 92 |
93 | 94 | { 95 | playerArray.length > 0 && mapData && ( 96 | 97 | ) || ( 98 |
99 |

Waiting for data

100 |
101 | ) 102 | } 103 | 104 |
    105 | { 106 | playerArray.filter((player) => player.m_team == 3).map((player) => 107 | 108 | ) 109 | } 110 |
111 |
112 |
113 | ) 114 | } 115 | 116 | export default App; 117 | -------------------------------------------------------------------------------- /radar/react/src/Latency/Latency.jsx: -------------------------------------------------------------------------------- 1 | 2 | let latencyData = { 3 | averageCount: 0, 4 | averageSum: 0, 5 | averageTime: 0, 6 | lastTime: new Date().getTime() 7 | } 8 | 9 | export const getLatency = () => { 10 | let currentTime = new Date().getTime(); 11 | let diffInMs = currentTime - latencyData.lastTime; 12 | latencyData.lastTime = currentTime; 13 | 14 | if (latencyData.averageTime == 0) 15 | latencyData.averageTime = diffInMs; 16 | 17 | latencyData.averageCount++; 18 | latencyData.averageSum += diffInMs; 19 | 20 | if (latencyData.averageCount >= 5) { 21 | latencyData.averageTime = latencyData.averageSum / latencyData.averageCount; 22 | 23 | latencyData.averageCount = 0; 24 | latencyData.averageSum = 0; 25 | } 26 | 27 | return latencyData.averageTime; 28 | } 29 | 30 | export const Latency = ({ value }) => { 31 | return ( 32 |
33 | 34 | {value.toFixed(0)}ms 35 |
36 | ) 37 | } -------------------------------------------------------------------------------- /radar/react/src/MaskedIcon/MaskedIcon.jsx: -------------------------------------------------------------------------------- 1 | export const MaskedIcon = ({ path, height, color }) => { 2 | return ( 3 |
4 | 5 |
6 | ) 7 | } -------------------------------------------------------------------------------- /radar/react/src/Radar/Bomb.jsx: -------------------------------------------------------------------------------- 1 | import { useRef } from "react"; 2 | import { getRadarPosition, teamEnum } from "../Utils/Utils"; 3 | 4 | export const Bomb = ({ bombData, mapData, radarImage, localTeam, averageLatency }) => { 5 | const radarPosition = getRadarPosition(mapData, bombData); 6 | 7 | const bombRef = useRef(); 8 | const bombBounding = bombRef.current && bombRef.current.getBoundingClientRect() || { width: 0, height: 0 }; 9 | 10 | const radarImageBounding = radarImage !== undefined && radarImage.getBoundingClientRect() || { width: 0, height: 0 }; 11 | const radarImageTranslation = 12 | { 13 | x: (radarImageBounding.width * radarPosition.x - bombBounding.width * 0.5), 14 | y: (radarImageBounding.height * radarPosition.y - bombBounding.height * 0.5) 15 | }; 16 | 17 | return ( 18 |
28 | ) 29 | } -------------------------------------------------------------------------------- /radar/react/src/Radar/Player.jsx: -------------------------------------------------------------------------------- 1 | import { useRef } from "react"; 2 | import { getRadarPosition, playerColors } from "../Utils/Utils"; 3 | 4 | let playerRotations = []; 5 | const calculatePlayerRotation = (playerData) => { 6 | const playerViewAngle = 270 - playerData.m_eye_angle; 7 | const idx = playerData.m_idx; 8 | 9 | playerRotations[idx] = (playerRotations[idx] || 0) % 360; 10 | playerRotations[idx] += (playerViewAngle - playerRotations[idx] + 540) % 360 - 180; 11 | 12 | return playerRotations[idx]; 13 | } 14 | 15 | export const Player = ({ playerData, mapData, radarImage, localTeam, averageLatency }) => { 16 | const radarPosition = getRadarPosition(mapData, playerData.m_position); 17 | const invalidPosition = radarPosition.x <= 0 && radarPosition.y <= 0; 18 | 19 | const playerRef = useRef(); 20 | const playerBounding = playerRef.current && playerRef.current.getBoundingClientRect() || { width: 0, height: 0 }; 21 | const playerRotation = calculatePlayerRotation(playerData); 22 | 23 | const radarImageBounding = radarImage !== undefined && radarImage.getBoundingClientRect() || { width: 0, height: 0 }; 24 | const radarImageTranslation = 25 | { 26 | x: (radarImageBounding.width * radarPosition.x - playerBounding.width * 0.5), 27 | y: (radarImageBounding.height * radarPosition.y - playerBounding.height * 0.5) 28 | }; 29 | 30 | return ( 31 |
41 | 42 |
47 |
48 | ) 49 | } -------------------------------------------------------------------------------- /radar/react/src/Radar/Radar.jsx: -------------------------------------------------------------------------------- 1 | import { useRef } from "react"; 2 | import { Player } from "./Player"; 3 | import { Bomb } from "./Bomb"; 4 | 5 | export const Radar = ({ playerArray, radarImage, mapData, localTeam, averageLatency, bombData }) => { 6 | const radarImageRef = useRef(); 7 | 8 | return ( 9 |
10 | 11 | 12 | { 13 | playerArray.map((player) => 14 | 15 | ) 16 | } 17 | 18 | { 19 | bombData && 20 | 21 | } 22 |
23 | ) 24 | } -------------------------------------------------------------------------------- /radar/react/src/Utils/Utils.jsx: -------------------------------------------------------------------------------- 1 | export const getRadarPosition = (mapData, entityCoords) => { 2 | if (!entityCoords.x || !entityCoords.y) { 3 | return { x: 0, y: 0 }; 4 | } 5 | 6 | if (!mapData.x || !mapData.y) { 7 | return { x: 0, y: 0 }; 8 | } 9 | 10 | const position = 11 | { 12 | x: (entityCoords.x - mapData.x) / mapData.scale / 1024, 13 | y: (entityCoords.y - mapData.y) / mapData.scale * -1.0 / 1024 14 | }; 15 | 16 | return position; 17 | } 18 | 19 | export const playerColors = [ 20 | // blue 21 | "#84c8ed", 22 | 23 | // green 24 | "#009a7d", 25 | 26 | // yellow 27 | "#eadd40", 28 | 29 | // orange 30 | "#df7d29", 31 | 32 | // purple 33 | "#b72b92", 34 | 35 | // white 36 | "#ffffff" 37 | ]; 38 | 39 | export const teamEnum = { 40 | none: 0, 41 | spectator: 1, 42 | terrorist: 2, 43 | counterTerrorist: 3 44 | } -------------------------------------------------------------------------------- /radar/react/src/assets/react.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /radar/react/src/main.jsx: -------------------------------------------------------------------------------- 1 | import React from 'react' 2 | import ReactDOM from 'react-dom/client' 3 | import App from './App.jsx' 4 | 5 | ReactDOM.createRoot(document.getElementById('root')).render( 6 | 7 | ) -------------------------------------------------------------------------------- /radar/react/tailwind.config.js: -------------------------------------------------------------------------------- 1 | /** @type {import('tailwindcss').Config} */ 2 | export default { 3 | content: [ 4 | "./index.html", 5 | "./src/**/*.{js,ts,jsx,tsx}", 6 | ], 7 | theme: { 8 | extend: { 9 | colors: { 10 | radar: { 11 | "primary": "#b1d0e7", 12 | "secondary": "#6492b4", 13 | "green": "#50904c", 14 | "red": "#c90b0be6" 15 | } 16 | }, 17 | }, 18 | }, 19 | plugins: [], 20 | } 21 | 22 | -------------------------------------------------------------------------------- /radar/react/vite.config.js: -------------------------------------------------------------------------------- 1 | import { defineConfig } from 'vite' 2 | import react from '@vitejs/plugin-react' 3 | 4 | // https://vitejs.dev/config/ 5 | export default defineConfig({ 6 | plugins: [react()], 7 | server: { 8 | host: true, 9 | port: 8080 10 | } 11 | }) 12 | -------------------------------------------------------------------------------- /radar/web_server/.gitignore: -------------------------------------------------------------------------------- 1 | # modules 2 | node_modules -------------------------------------------------------------------------------- /radar/web_server/app.js: -------------------------------------------------------------------------------- 1 | import { WebSocketServer } from "ws"; 2 | import http from "http"; 3 | 4 | console.log("web_server started") 5 | 6 | const port = 8081; 7 | const server = http.createServer(); 8 | const web_socket_server = new WebSocketServer( 9 | { 10 | server: server, path: "/cs2_webradar" 11 | }); 12 | 13 | web_socket_server.on("connection", (web_socket, request) => { 14 | const client_address = request.socket.remoteAddress.replace("::ffff:", ""); 15 | console.info(`${client_address} connected`); 16 | 17 | web_socket.on("message", (message) => { 18 | web_socket_server.clients.forEach((client) => { 19 | client.send(message); 20 | }); 21 | }); 22 | 23 | web_socket.on("close", () => { 24 | console.info(`${client_address} disconnected \n`); 25 | }); 26 | 27 | web_socket.on("error", (error) => { 28 | console.error(error); 29 | }); 30 | }); 31 | 32 | server.listen(port); 33 | console.info(`listening on port '${port}'`); 34 | -------------------------------------------------------------------------------- /radar/web_server/package-lock.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "web_server", 3 | "lockfileVersion": 3, 4 | "requires": true, 5 | "packages": { 6 | "": { 7 | "dependencies": { 8 | "http": "^0.0.1-security", 9 | "ws": "^8.14.2" 10 | } 11 | }, 12 | "node_modules/http": { 13 | "version": "0.0.1-security", 14 | "resolved": "https://registry.npmjs.org/http/-/http-0.0.1-security.tgz", 15 | "integrity": "sha512-RnDvP10Ty9FxqOtPZuxtebw1j4L/WiqNMDtuc1YMH1XQm5TgDRaR1G9u8upL6KD1bXHSp9eSXo/ED+8Q7FAr+g==" 16 | }, 17 | "node_modules/ws": { 18 | "version": "8.17.1", 19 | "resolved": "https://registry.npmjs.org/ws/-/ws-8.17.1.tgz", 20 | "integrity": "sha512-6XQFvXTkbfUOZOKKILFG1PDK2NDQs4azKQl26T0YS5CxqWLgXajbPZ+h4gZekJyRqFU8pvnbAbbs/3TgRPy+GQ==", 21 | "license": "MIT", 22 | "engines": { 23 | "node": ">=10.0.0" 24 | }, 25 | "peerDependencies": { 26 | "bufferutil": "^4.0.1", 27 | "utf-8-validate": ">=5.0.2" 28 | }, 29 | "peerDependenciesMeta": { 30 | "bufferutil": { 31 | "optional": true 32 | }, 33 | "utf-8-validate": { 34 | "optional": true 35 | } 36 | } 37 | } 38 | } 39 | } 40 | -------------------------------------------------------------------------------- /radar/web_server/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "type": "module", 3 | "dependencies": { 4 | "http": "^0.0.1-security", 5 | "ws": "^8.14.2" 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /sdk/InputManager.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | #include "opencv2/opencv.hpp" 3 | #include "pch.h" 4 | 5 | class c_keys 6 | { 7 | private: 8 | uint64_t gafAsyncKeyStateExport = 0; 9 | uint8_t state_bitmap[64] { }; 10 | uint8_t previous_state_bitmap[256 / 8] { }; 11 | uint64_t win32kbase = 0; 12 | 13 | int win_logon_pid = 0; 14 | 15 | std::chrono::time_point start = std::chrono::system_clock::now(); 16 | 17 | public: 18 | c_keys() = default; 19 | 20 | ~c_keys() = default; 21 | 22 | bool InitKeyboard(); 23 | 24 | void UpdateKeys(); 25 | bool IsKeyDown(uint32_t virtual_key_code); 26 | }; 27 | 28 | typedef struct moves{ 29 | int x = 0; 30 | int y = 0; 31 | }; 32 | 33 | class QMP { 34 | public: 35 | QMP(); 36 | 37 | bool Connect(std::string_view address, uint32_t port); 38 | 39 | void Disconnect(); 40 | 41 | bool EnableCommands() const; 42 | 43 | bool MoveMouse(int32_t delta_x, int32_t delta_y) const; 44 | 45 | void SmoothMove(int x, int y); 46 | 47 | bool InitMouseAI(); 48 | 49 | private: 50 | bool connected_; 51 | int socket_; 52 | std::mutex m; 53 | 54 | std::vector getSmoothPoints(moves start, moves control, moves end); 55 | 56 | void moveto(moves to); 57 | 58 | //ai 59 | cv::dnn::Net net; 60 | 61 | std::vector AIForward(int x, int y); 62 | 63 | bool Send(std::string_view message) const; 64 | }; 65 | -------------------------------------------------------------------------------- /sdk/pch.h: -------------------------------------------------------------------------------- 1 | #ifndef PCH_H 2 | #define PCH_H 3 | 4 | // add headers that you want to pre-compile here 5 | #include 6 | #include 7 | #include 8 | #include 9 | #include 10 | #include 11 | #include 12 | #include 13 | #include 14 | #include 15 | #include 16 | #include 17 | #include 18 | 19 | #include 20 | #include 21 | 22 | #include "../includes/json.hpp" 23 | #include "../includes/vmmdll.h" 24 | #include "../includes/easywsclient.hpp" 25 | 26 | #include 27 | #include 28 | #include 29 | #include 30 | #include 31 | 32 | 33 | // credits tni & learn_more (www.unknowncheats.me/forum/3868338-post34.html) 34 | #define INRANGE(x,a,b) (x >= a && x <= b) 35 | #define getBits( x ) (INRANGE(x,'0','9') ? (x - '0') : ((x&(~0x20)) - 'A' + 0xa)) 36 | #define get_byte( x ) (getBits(x[0]) << 4 | getBits(x[1])) 37 | 38 | template 39 | std::vector bytes_to_vec(const std::string& bytes) 40 | { 41 | const auto num_bytes = bytes.size() / 3; 42 | const auto num_elements = num_bytes / sizeof(Ty); 43 | 44 | std::vector vec; 45 | vec.resize(num_elements + 1); 46 | 47 | const char* p1 = bytes.c_str(); 48 | uint8_t* p2 = reinterpret_cast(vec.data()); 49 | while (*p1 != '\0') 50 | { 51 | if (*p1 == ' ') 52 | { 53 | ++p1; 54 | } 55 | else 56 | { 57 | *p2++ = get_byte(p1); 58 | p1 += 2; 59 | } 60 | } 61 | 62 | return vec; 63 | } 64 | 65 | #define DEBUG_INFO 66 | #ifdef DEBUG_INFO 67 | #define LOG(fmt, ...) std::printf(fmt, ##__VA_ARGS__) 68 | #define LOGW(fmt, ...) std::wprintf(fmt, ##__VA_ARGS__) 69 | #else 70 | #define LOG 71 | #define LOGW 72 | #endif 73 | 74 | #define THROW_EXCEPTION 75 | #ifdef THROW_EXCEPTION 76 | #define THROW(fmt, ...) throw std::runtime_error(fmt, ##__VA_ARGS__) 77 | #endif 78 | 79 | #endif //PCH_H --------------------------------------------------------------------------------