Code Monkey home page Code Monkey logo

ms-client's Introduction

Branch Status
master Windows Ubuntu MacOS
dev Windows Ubuntu MacOS

ms-client

An ms game client.

Getting started

These instructions will get you a copy of the project up and running on your local machine for development and testing purposes.

Prerequisites

Download and install the following:

  • Git

  • CMake v3.14+ (3.18+ for Windows) - found at https://cmake.org/

  • Ninja v1.9.0+

  • C++ Compiler - needs to support at least the C++20 standard, i.e. MSVC, GCC, Clang

  • Homebrew (MacOS ONLY) - found at https://brew.sh/

  • Visual Studio 2019 (Windows ONLY)

Setup the project

git clone https://github.com/filoper/ms-client.git

Dependencies

Download the required NX files from here https://github.com/HeavenClient/HeavenClient/tree/master#required-files

See install instructions for your platform below.

Windows

Download BASS from https://www.un4seen.com/download.php?bass24 and place inside `ms-client/thirdparty`.

Mac

Download BASS from https://www.un4seen.com and place inside `ms-client/thirdparty`.
brew install lz4
brew install glfw
brew install freetype

Linux

Download BASS from https://www.un4seen.com and place inside `ms-client/thirdparty`.
sudo apt-get install liblz4-dev
sudo apt-get install libglfw3-dev
sudo apt-get install libfreetype-dev

Build

Windows

Start Visual Studio 2019 x64 developer terminal.

cmake -Bbuild -GNinja -DCMAKE_C_COMPILER=cl -DCMAKE_CXX_COMPILER=cl -DCMAKE_BUILD_TYPE=Debug -DCMAKE_INSTALL_PREFIX=c:\msclient-install
cmake --build build --config Debug
cmake --build build --target install --config Debug

Mac or Linux

cmake -Bbuild -GNinja -DCMAKE_INSTALL_PREFIX=./msclient-install
cmake --build build --config Debug
cmake --build build --target install --config Debug

Run

Place all the Nx files in the install location of msclient.

Start your server, probably HeavenMS, then run

./msclient

Acknowledgements

Contributors to

https://github.com/SYJourney/JourneyClient

https://github.com/HeavenClient/HeavenClient

ms-client's People

Contributors

filoper avatar

Stargazers

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

Watchers

 avatar  avatar  avatar  avatar

ms-client's Issues

[BUG] Dropping mesos using key enter

Describe the bug
In the drop mesos amount window, after clicking on the textfield containing drop amount, mesos will drop every time enter is pressed. The player is unable to move until clicking anywhere on the screen.

To Reproduce

  1. Open inventory
  2. Click the meso icon to bring up the drop amount window
  3. Click on the textfield containing drop amount
  4. Press enter repeatedly

Expected behavior
Player should be able to move after pressing enter, and pressing enter more times should not cause additional mesos to drop.

Additional context
Just pressing enter without first clicking on the textfield works as expected.

[FEATURE] Support other language

I try to find Chat in other language, and found Keyboard.cpp is fixed Keytable, so it's possible to add any other language in Chat ?

[BUG] Long text line continues outside chat window

Describe the bug
A long line of text continues outside the chat window.

To Reproduce
Type in chat: @WWW... (as many Ws as possible).

Expected behavior
Text that cannot fit on the same line should continue on a new line and always within chat window's boundary.

Screenshots
bug_long_lines

[BUG] Textfield does not move along with quest window

Describe the bug
The textfield remains stuck when moving the quest window.

To Reproduce

  1. Open questlog
  2. Type something in the textfield
  3. Move window

Expected behavior
Textfield should move along with quest window.

Screenshots
bug_move_window2
bug_move_window

Display issues in other languages

Hello, I successfully compiled the client according to the latest document, but when trying to use other languages, the characters displayed on the client are garbled.

These are my modifications to the client source file:

Graphics/GraphicsGL.h
-        Char chars[256];
+        Char chars[65535];

Graphics/GraphicsGL.cpp
-    for (uint32_t c = 32; c < 256; c++) {
+    for (uint32_t c = 32; c < 65535; c++) {
 
-    for (uint32_t c = 32; c < 256; c++) {
+    for (uint32_t c = 32; c < 65535; c++) {

The server uses HeavenMS and uses UTF-8 encoding:

src/tools/data/input/GenericLittleEndianAccessor.java
     public final String readAsciiString(int n) {
-        char ret[] = new char[n];
+        byte ret[] = new byte[n];
         for (int x = 0; x < n; x++) {
-            ret[x] = (char) readByte();
+            ret[x] = (byte) readByte();
         }
-        return String.valueOf(ret);
+        try {
+            String str = new String(ret, "UTF-8");
+            return str;
+        } catch (Exception e) {
+            System.err.println(e);
+        }
+        return null;
     }

src/tools/data/output/GenericLittleEndianWriter.java
-    private static Charset ASCII = Charset.forName(MapleLanguageType.LANGUAGE_US.getAscii());
+    private static Charset ASCII = Charset.forName("UTF-8");


src/constants/string/CharsetConstants.java
     public enum MapleLanguageType {
-        LANGUAGE_PT_BR(1, "ISO-8859-1"),
-        LANGUAGE_US(2, "US-ASCII");
+        LANGUAGE_PT_BR(1, "UTF-8"),
+        LANGUAGE_US(2, "UTF-8");

When I compile according to the above configuration, all characters appear garbled after entering the game, even if I change other fonts.
3

[BUG] libbass.so: cannot open shared object file: No such file or directory

Describe the bug
When running the application on Kubuntu I get this error:

"error while loading shared libraries: libbass.so: cannot open shared object file: No such file or directory"

libbass.so is in the directory with the executable.

Fix
I copied it to /usr/local/lib/ and then it launched.

Desktop (please complete the following information):
Kubuntu 20.04

P.S:
Just wanted to say thanks for picking this project up and fixing some of the HeavenMS compatibility issues. I had already solved the HWID issues on my own but I discovered your fork shortly after!

[BUG] Player does not appear dead at 0 hp

Describe the bug
Player doesn't appear dead when hp is 0.

To Reproduce
For example: Start 2 msclient instances and use GM command @kill otherplayer.

Expected behavior
Dead player should be turned into a ghost and have a UI window popup to respawn in nearest town.

Screenshots
bug_death

[BUG] Freeze/crash when changing channel a second time

Describe the bug
Changing channel works only once, a second attempt results in the game freezing/crashing.

To Reproduce

  1. Enter game on channel 1.
  2. Change to channel 2.
  3. Change back to channel 1 (crashing here).

Expected behavior
Player should enter channel 1 again.

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.