Giter Site home page Giter Site logo

valhalla's Introduction

Compiling Instructions

Install docker & docker-compose. Thats it!

Starting the Server

In order to run the channel server you are required to convert a v28 Data.wz (not provided) to Data.nx (NX file format). Note: Make sure to disable re-ordering for items when performing the conversion. This is needed as Wizet did not match index with id. If the order of items is re-ordered based on id then you will end up with mismatched portals.

  • docker-compose up -d && docker-compose logs -f will start the server components in docker containers
  • ctrl+c will stop displaying logs but the servers will be running in the background still
  • To stop everything run docker-compose down
  • To restart a specific container run docker-compose restart <name e.g. login-server>, if a container crashes it will auto restart
  • To stop/start a single container run docker-compose stop/start <name e.g. login-server>
  • To rebuild and start a container incase of source updates run docker-compose build && docker-compose up -d --no-deps <name e.g. channel-server>, it will say that the login-server is being rebuilt, this is because all the servers run off of the same base image

note: curently the logins server tells the client the channel server at a fixed ip address. change this before docker-compose build

note: database data is stored as docker volume

note: make sure to configure the services for your ip addresses and ports in the docker-compose.yaml file

The following is an example of what the docker logs should look like:

Connecting To Your Running Game Server (running in a docker container)

Administrating Your Server

The server sends auditing information to an eleastic search instance running in a docker container. Kibana can be used to view the data.

GM Commands, chat, login/logout events, server transitions, party join/leave, trade transactions, damage received/inflicted, skill used, stat distribution etc are logged.

NPC scripts can be found in the scripts/npc folder. There are some examples in there

GM Commands - prefix of /

  • packet - Send packet to client
  • warp - warp to map
  • notice - send notice message to channel
  • dialogue - send dialogue box message to channel
  • job - change job
  • level - change level
  • spawn - spawn mob at character location
  • killmobs - kill all mobs on map
  • exp - give exp
  • mobrate - modify mob rate
  • exprate - modify exp rate
  • mesorate - modify meso rate
  • droprate - modify drop rate
  • header - change channel header message

Check command/handlers.go for parameters

Roadmap

  • Inventory drop item ask quantity where relevant
  • NPC style window
  • parties
  • guilds
  • Mob respawn system, Mob EXP & Mob party play
  • Monster/player drop items
  • Skills & buffs (incl. item buffs)
  • Reactors
  • World server
  • General refactor

NPC chat display info (use this when scripting NPCs)

NPCs are scripted in anko

Taken from here

  • #b = Blue text.
  • #c[itemid]# Shows how many [itemid] the player has in their inventory.
  • #d = Purple text.
  • #e = Bold text.
  • #f[imagelocation]# - Shows an image inside the .wz files.
  • #g = Green text.
  • #h # - Shows the name of the player.
  • #i[itemid]# - Shows a picture of the item.
  • #k = Black text.
  • #l - Selection close.
  • #m[mapid]# - Shows the name of the map.
  • #n = Normal text (removes bold).
  • #o[mobid]# - Shows the name of the mob.
  • #p[npcid]# - Shows the name of the NPC.
  • #q[skillid]# - Shows the name of the skill.
  • #r = Red text.
  • #s[skillid]# - Shows the image of the skill.
  • #t[itemid]# - Shows the name of the item.
  • #v[itemid]# - Shows a picture of the item.
  • #x - Returns "0%" (need more information on this).
  • #z[itemid]# - Shows the name of the item.
  • #B[%]# - Shows a 'progress' bar.
  • #F[imagelocation]# - Shows an image inside the .wz files.
  • #L[number]# Selection open.
  • \r\n - Moves down a line.
  • \r = Return Carriage
  • \n = New Line
  • \t = Tab (4 spaces)
  • \b = Backwards

Acknowledgements

  • Vana
  • Sunnyboy for providing a list of idbs for which this project would not have started

Screenshots

Valhalla Logo made with DesignEvo

valhalla's People

Contributors

hucaru avatar

Watchers

HoneyCat avatar James Cloos 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.