Giter VIP home page Giter VIP logo

fivedchessdatainterface's Introduction

5D Chess With Multiverse Time Travel Data Interface

An unofficial C# (.Net Standard 2.0) library providing runtime memory-access to 5D Chess With Multiverse Time Travel.

Disclaimer

While it should be stable for the most part, this library may still cause crashes/desyncs or other unexpected/unwanted behaviour, hence why the developers of this project cannot be held liable for any damage caused.

Important notes

While reading data is always possible without errors, writing data may cause stability issues.

The modification of multiplayer game data is possible, if both players make the same changes at roughly the same time, otherwise a desync is likely.

As a side note, cheating will never be possible, because of how the game is structured: All moves are checked clientside and invalid moves are simply discarded, meaning if you moved a rook diagonally, it would not move at all on the other player's screen. Ontop of that, the goal of this project is not to create cheats for the game, instead it is aimed to support creating useful tools, such as a chess clock that automatically switches when a player submits their moves.

Example of using the library

The main object that is being used is the DataInterface object. Creating works as follows:

  • You can create it using the 'new'-keyword, passing a System.Diagnostics.Process object, which will link the DataInterface object to that process.
  • It's also possible to have the library automatically resolve the Game-process, but only if only if there is exactly one 5D Chess With Multiverse Time Travel process is running:
    • Call DataInterface.CreateAutomatically(), which will either return an instance if everything worked, or throw an exception.
    • Call DataInterface.TryCreateAutomatically(), which returns true on success, and passes back the created DataInterface object via an out parameter. Optionally it can also return the number of running game-processes, which will be 1 if true is returned.

Once you have acquired a DataInterface object, you can call its non-static methods, currently allowing you to read:

  • The number of chessboards that exist currently: DataInterface.GetChessBoardAmount()
  • (Not implemented yet) A list of all chessboard of the current game: DataInterface.GetChessBoards()
  • The size of all chessboard: DataInterface.GetChessBoardSize()
  • The current player's turn: DataInterface.GetCurrentPlayersTurn()

fivedchessdatainterface's People

Contributors

awkinley avatar crazypenguin0111 avatar crazypenguin0111smurf avatar dependabot[bot] avatar ghxx avatar narik-tech avatar penteract avatar sanoy1997 avatar sanoy97 avatar tedav avatar thedoczek avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

fivedchessdatainterface's Issues

Add support for randomized variants in the json variants file

Users would select a variant, and if it supports randomization, the two players would agree on a seed, and enter that on both sides, and then the variant would be randomized according to the given randomization groups. Those randomization groups are just a mask of numbers that states what piece-positions may be swapped. If the mask spans multiple boards, the swapping is to be applied the same on both boards. Swapmasks would be run in-order of their numbering.

This is the replacement issue for the pr #68

Linux support

Add memory edit functions for linux, if supported.
Also investigate if the memory offsets are the same.

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.