8000 GitHub - ooocici/kagami: An attempt to implement a MapleStory server emulator in Go.
[go: up one dir, main page]
More Web Proxy on the site http://driver.im/
Skip to content
/ kagami Public
forked from defaultmagi/kagami

An attempt to implement a MapleStory server emulator in Go.

License

Notifications You must be signed in to change notification settings

ooocici/kagami

 
 

Repository files navigation

An attempt to implement a MapleStory server emulator in Go. This project is still extremely early, so it only does very few things at the moment. Most of this is put together by studying TitanMS, OdinMS and Vana so huge credits to them for figuring packet structures and other stuff out, this is merely a Go implementation.

Support me!

Like my releases? Donate me a coffe!

Paypal: click

Litecoin: LUZm98D1nPhNQBw9QjkSS9XJee9X5hPjw3

Bitcoin: 15Jz8stcnkorzwCbUNk3qQbg2H9eySKXtb or Bitcoin QR Code

Dogecoin: DDaYKDUxib2SnVEk9trG98ajCyu1Hw9zgQ or Dogecoin QR Code

Feature progress

  • Initial handshake with the client - done
  • Packet decryption/encryption - done
  • Login - done (video)
  • MySQL - done
  • World / Channel Selection - done (video)
  • Character selection / creation / deletion and multiple worlds/channels - done (video)
  • Handling Bans - done
  • Getting in game - done
  • Basic in-game sync - WIP (video of portals working)
  • Properly syncing data between login/world/chan - WIP
  • Graceful server shutdown that logs all players off - WIP

Getting started

Make sure that you have git and go installed and run the following commands to acquire all of the requires libraries.

go get github.com/jteeuwen/go-pkg-xmlx 
go get github.com/Francesco149/maplelib
go get github.com/ziutek/mymysql/thrsafe
go get github.com/ziutek/mymysql/autorc
go get github.com/ziutek/mymysql/godrv

You can test these libraries before building kagami if you want. First of all, create the test mysql user and database from your mysql console:

mysql> create database test;
mysql> grant all privileges on test.* to testuser@localhost;
mysql> set password for testuser@localhost = password("TestPasswd9");

Make sure that max_allowed_packet is set to at least 34M in your my.ini/my.cnf, then run the tests for the mymysql library:

go test github.com/ziutek/mymysql/...

Now you can go ahead and test maplelib and other libraries:

go test github.com/jteeuwen/go-pkg-xmlx/...
go test github.com/Francesco149/maplelib/...

Once you've made sure that all of the libraries are working properly, you can obtain the actual server:

go get github.com/Francesco149/kagami

If you want, you can also manually clone the repository anywhere you want by running

git clone https://github.com/Francesco149/kagami.git

Before you run the server you will also need to configure your MySQL database info in kagami/common/consts/consts.go . Don't worry, this is temporary - everything will be moved to config files as soon as I get more things working.

Make sure that your MySQL database is running and make sure that you've created the kagami database by running the query in the kagami.sql file.

NOTE: the database structure will change very often at the current stage of the project and you might end up having to delete and recreate your database after an update.

Running the server

To compile the server, all you have to do is:

go install github.com/Francesco149/kagami/...

And then simply run loginserver, worldserver and as many channels servers as you like in your $GOPATH/bin directory.

Documentation

You can view the documentation as HTML by simply running

godoc -http=":6060"

and visiting

http://localhost:6060/pkg/github.com/Francesco149/kagami/

About

An attempt to implement a MapleStory server emulator in Go.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Go 100.0%
0