Giter Site home page Giter Site logo

daxxtrias / arma-3-qemu-external-radar Goto Github PK

View Code? Open in Web Editor NEW

This project forked from apex-master/arma-3-qemu-external-radar

0.0 0.0 0.0 148.77 MB

Arma 3 QEMU external radar. Built using memflow, NodeJS, socket.io and Leaflet!

License: MIT License

Shell 0.09% JavaScript 7.83% C++ 55.85% C 1.49% Rust 26.05% CSS 8.24% Makefile 0.10% HTML 0.35%

arma-3-qemu-external-radar's Introduction

Arma-3-QEMU-External-Radar

Arma 3 QEMU external radar. Built using memflow, NodeJS, socket.io and Leaflet!

  • Memory RPM/WPM Client (/arma_dma)
  • Radar and Communication Server (/nodejs)

Main Features

  • Live radar (player coords, player side, player dead, player direction, player in vehicle)
  • Arma 3 Altis map files (jetelain), multi-user browser access for the radar using LAN/VPN.
  • No weapon recoil (not setUnitRecoilCoefficient should bypass most script-based anti-cheats)
  • No weapon sway (not setCustomAimCoef should bypass most script-based anti-cheats)

Demos (Slow old version - File create/delete used in demo below, new communication method (sockets) is much faster):

How it works

Linux Memory RPM/WPM Client
Using Memflow, arma_dma reads the guest machine's memory to search for Arma 3, which upon finding it, reads the game's data and stores it into an array. This array is then converted into JSON format by nlohmann/json and sent over to our NodeJS server through socket.io.

Radar and Communication Server
NodeJS and socket.io receive the JSON data from the Memory RPM/WPM Client (arma_dma). Upon receiving, socket.io emits a signal to the front-end containing player data that is then filtered through the JSON and used to set up custom markers for each player on Leaflet.

Dependencies

Memory RPM/WPM Client (/arma_dma):

Radar and Communication Server (/nodejs):

Building

My setup:
OS: Manjaro 21.3 KDE
Kernel: x86_64 Linux 5.18.19
CPU: i5-12600K
GPU: RTX 3070ti
RAM: 16gb

Memory RPM/WPM Client (/arma_dma):

  1. Navigate to /arma_dma convert .sh scripts to executable
cd arma_dma
sudo chmod +x build.sh
sudo chmod +x depInstall.sh
  1. Compile the source by running the script build.sh or depInstallBuild.sh if on Manjaro/arch. You need to have Rust installed and updated:
sudo ./build.sh
sudo ./depInstallBuild.sh
  1. Navigate to the newly created /build folder and run arma_dma as root:
cd build
sudo ./arma_dma

Radar and Communication Server (/nodejs):

  1. Download and install the required dependencies.
  2. Navigate to /nodejs and run:
npm install
node server.js

To do

  • Implement server and user authentication.
  • Add other Arma 3 maps.
  • Player direction lines.
  • Implement some other way of rendering leaflet markers, instead of deleting all previous markers on the second layer when receiving a signal from socket.io, instead store the players into a structure/database, then update and move the markers.
  • Instead of using PNGs for the player/vehicle icons use SVG or even better render it using JS.
  • Properly implement socket.io-client-cpp bind_events and listeners.

Credits

Related

arma-3-qemu-external-radar's People

Contributors

apex-master avatar austinhs avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.