Giter Site home page Giter Site logo

wowpin / dumserver Goto Github PK

View Code? Open in Web Editor NEW
62.0 11.0 13.0 3.6 MB

A modern MU* engine re-imagined, actively developed and properly tracked.

License: MIT License

Python 3.38% Shell 0.07% JavaScript 90.26% CSS 5.22% Less 0.82% EJS 0.26%
mud mud-server mud-game-server mud-engine python python3 telnet-server multi-user-dungeon

dumserver's People

Contributors

wowpin 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  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

dumserver's Issues

Server crash when logging with newly created player

What whatever mysterious reason, freshly cloned server (running on Raspberry Pi 3 with Raspbian) crashes when logging in with freshly created new player.

Need to replicate this and try to understand further.

Developer Tools

It would be awesome if we had some user friendly front-end for designing the game world.

E.g. I want to add 2 new monsters in this room here. Lemme click this button instead of manually modifying JSONs.

Password hashing logic causing server server crash on @quit

When invoking @quit command, the .player file corresponding to player who invoked it gets deleted and server crashes @ChrisByrd14

Following trace log has been captured:

26/11/2019 07:42:06 [info] Client ID: 0 has disconnected (wowpin)
26/11/2019 07:42:06 [info] Player disconnected, saving state
Traceback (most recent call last):
File "dumserver.py", line 822, in
saveState(players[id], playersDB)
File "/var/www/webdav/dumserver/functions.py", line 138, in saveState
savePlayer(player, masterDB)
File "/var/www/webdav/dumserver/functions.py", line 125, in savePlayer
newPlayer[key] = hash_password(player[key])
File "/var/www/webdav/dumserver/password.py", line 28, in hash_password
_hash = hashlib.pbkdf2_hmac('sha512', pwd.encode('utf-8'), salt, 100000)
AttributeError: 'int' object has no attribute 'encode'

Looks like an issue in player state saving procedure, gotta read through that commit again when I'm less tired.

Combat with NPC does not persist in certain scenario

Scenario:

  1. Attack NPC
  2. Leave area (target is lost, fight where player is the aggressor is removed)
  3. Return to the area (at this point NPC's aggro has not expired yet, it resumes attacking the player)
  4. Re-target NPC
  5. Re-attack NPC

Result:
Players hits the NPC once, then ceases to attack, fight gets deleted.

Duplicate NPC fight retaliation

It appears that NPCs retaliate fights with the same player multiple times (e.g. after player has left and returned to the room before aggro expired).

Need to look at the retaliation logic and make sure it doesn't happen if NPC fight with the same target already is in progress.

Not handling the "#" character in user password.

Including a hash signe (#) in your password will break the server on next server boot :)

Due to the fact I'm using a commentjson module, hash is interpreted as beginning of a comment. Same is likely to happen if one includes a double slash (//) in user password.

Players can get disconnected due to inactivity during ongoing fights

In a scenario where a player is in a fight, but hasn't typed a command in a while, it is possible for him to get disconnected due to hitting the idle timer. This leads to a server crash while processing combat actions of a non-existent player.

Combat actions must reset idle timer.

Issue with targetting NPC in crowded room

Scenario:
0. Server reboot

  1. Move Player A into a room with NPC in it.
  2. Move Player B to the same room
  3. Move player C to the same room
  4. Player A targets the NPC

Result:
"You cannot see anywhere"

WFTF?

Random server crashes

I cannot exactly pinpoint the exact moment those crashes occur - I have a feeling they coincide with multiple user logons.

Need to setup some method of capturing python tracebacks.

NPC Conversation + Quest System

A system with trackable objectives is needed along with some implementation of conversation trees.

Currently little practical idea of how to implement this, although I have spent very little time thinking about it.

Console Spam

Whenever I log in with my character I get this spammed to console. Whether using raw telnet or Mudlet

c3RhdHVzcGFuZWwChris;1;Small Bathroom;100;100;0;100;0;[None]

Also when using raw telnet (putty) I get ghost spaces every few seconds and also the layout is all messed up.

Webclient Redesign

What I would REALLY like is a webclient where I can show health bars, exp bars, ASCII map etc in various sections...

Server crash on NPC death after leaving area.

Server crashes on NPC death during following scenario:

  1. target NPC

  2. attack NPC

  3. go to adjacent room
    (at this point player looses target, however fight remains active - also a bug)

  4. return to a room
    (at this point fight continues)

  5. NPC dies and crashes the server with a following trace:

    File "dumserver.py", line 582, in
    if players[pid]['target'][4] != None and players[pid]['target'][4] == nid:
    TypeError: 'NoneType' object is not subscriptable

Crash on NPC respawn

Silly bug causing server crashes on NPC respawn. Problematic line commented out, will look into it later.

Ps. Thanks to trace tracking, I know it was caused by LiquidBeef, thanks for your help finding this dude!

Robust help system

Rather than listing every available command via the 'help' command, it would be nice to have a UNIX style MAN system.

Penny for your thought.

Combat announcements

It would be good to announce start of combat to others in the room. Makes sense, people around you would see the brawl.

No password security

No password security measures have been implemented. Do not provide any real passwords when creating user accounts.

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.