Giter VIP home page Giter VIP logo

rockmud's Introduction

rockmud's People

Contributors

jayfett avatar moreoutput avatar unbantwin 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  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  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

rockmud's Issues

Inventory omits equipped items

When a user equips an item, it is removed from inventory. This seems a little strange. Instead, it would be nice if the item remained in inventory, but it also showed where the item was equipped. Users would still be prevented from dropping equipped items.

Refine regen

Works but the values are wonky -- die too quickly.

refine bash

should work as shield bash (when theres a shield) along with giving better damage messages; easy task just leverage combat.js functions.

Current Health going above maximum

In character.js manaRegen function around line 494:

target.chp += total;

should be:

target.cmana += total;

Same function around line 487:

conMod = World.dice.roll(1, 2) - 1;

should be :

intMod = World.dice.roll(1, 2) - 1;

"Get all" crashes server in rooms with more than one item.

Missing error handler on socket.
TypeError: Cannot read property 'refId' of undefined
at Room.removeItem (D:\code\RockMUD\src\rooms.js:217:38)
at Cmd.get (D:\code\RockMUD\src\commands.js:613:12)
at parseCmd (D:\code\RockMUD\server.js:86:32)
at Socket. (D:\code\RockMUD\server.js:129:9)
at emitOne (events.js:90:13)
at Socket.emit (events.js:182:7)
at Socket.onevent (D:\code\RockMUD\node_modules\socket.io\lib\socket.js:335:8)
at Socket.onpacket (D:\code\RockMUD\node_modules\socket.io\lib\socket.js:295:12)
at Client.ondecoded (D:\code\RockMUD\node_modules\socket.io\lib\client.js:193:14)
at Decoder.Emitter.emit (D:\code\RockMUD\node_modules\component-emitter\index.js:134:20)

json admin command

A versatile 'json' command that allows admin users to get a pretty readout within the browser of a game objects JSON structure.

Character data format

The character data format uses the eq field to hold equipped items. The locations in this object are nested into groups, for example:

{
        "eq": {
                "head": [
                    {
                        "name": "Head",
                        "item": null
                    },
                    {
                        "name": "Necklace 1",
                        "item": null
                    }
                ]
        }
}

This makes it rather difficult to locate equipped items in the list, since it requires a nested loop.

As an alternative, the slot category could be indicated within the location itself:

{
        "eq": [
                    {
                        "name": "Head",
                        "item": null,
                        "slot": "head"
                    },
                    {
                        "name": "Necklace 1",
                        "item": null,
                        "slot": "head"
                    }
        ]
}

This would make it much easier to find items in the equipped list, since iterating through the nested arrays wouldn't be required. For output, the flat array could simply be sorted using the slot value. To equip, find the first location in the flat array with the matching slot and write into it, or if none exist, fail. Unequipping would be an equally simple loop through the list, merely comparing with the item.

Placement of Health / Magic / Movement outside the box

I'd love to see that the health / magic / movement bar isn't in the text but outside the side of the screen so you can see your stats dropping down.

Now it just adds to the backlog which is already filling when you're idling in a room

Select a help file strategy

JSON? Seems easiest but I am considering a markdown parser or something like that due to JSON file formatting issues (new line).

Server crashes when creating a new player

undefined:1
undefined
^
SyntaxError: Unexpected token u
at Object.parse (native)
at \Development\RockMUD\src\world.js:192:19
at fs.js:263:20
at FSReqWrap.oncomplete (fs.js:95:15)

Regenerating objects

I'd like to see an ability for the server to regenerate tools / etc in the rooms

Think like a Blacksmith, being able to buy things from him and when the tools aren't available, have a timer run that restores the tools over time.

That way a user will have to come back to get tools instead of being stuck

TypeError: Cannot read property 'playersInRoom' of undefined

When I start up the server and get logged in, the server crashes and throws this error.

Missing error handler on `socket`.
TypeError: Cannot read property 'playersInRoom' of undefined
    at C:\Users\treyw\Documents\NodeProjects\RockMUD\src\character.js:109:14
    at Character.hashPassword (C:\Users\treyw\Documents\NodeProjects\RockMUD\src\character.js:81:9)
    at Socket.<anonymous> (C:\Users\treyw\Documents\NodeProjects\RockMUD\src\character.js:100:14)
    at emitOne (events.js:77:13)
    at Socket.emit (events.js:169:7)
    at Socket.onevent (C:\Users\treyw\Documents\NodeProjects\RockMUD\node_modules\socket.io\lib\socket.js:335:8)
    at Socket.onpacket (C:\Users\treyw\Documents\NodeProjects\RockMUD\node_modules\socket.io\lib\socket.js:295:12)
    at Client.ondecoded (C:\Users\treyw\Documents\NodeProjects\RockMUD\node_modules\socket.io\lib\client.js:193:14)
    at Decoder.Emitter.emit (C:\Users\treyw\Documents\NodeProjects\RockMUD\node_modules\socket.io\node_modules\socket.io-parser\node_modules\component-emitter\index.js:134:20)
    at Decoder.add (C:\Users\treyw\Documents\NodeProjects\RockMUD\node_modules\socket.io\node_modules\socket.io-parser\index.js:247:12)
C:\Users\treyw\Documents\NodeProjects\RockMUD\server.js:175
                                for (j; j < roomObj.playersInRoom.length; j += 1) {
                                                   ^

TypeError: Cannot read property 'playersInRoom' of undefined
    at Socket.<anonymous> (C:\Users\treyw\Documents\NodeProjects\RockMUD\server.js:175:24)
    at emitOne (events.js:77:13)
    at Socket.emit (events.js:169:7)
    at Socket.emit (C:\Users\treyw\Documents\NodeProjects\RockMUD\node_modules\socket.io\lib\socket.js:128:10)
    at Socket.onclose (C:\Users\treyw\Documents\NodeProjects\RockMUD\node_modules\socket.io\lib\socket.js:425:8)
    at Client.onclose (C:\Users\treyw\Documents\NodeProjects\RockMUD\node_modules\socket.io\lib\client.js:232:24)
    at Client.onerror (C:\Users\treyw\Documents\NodeProjects\RockMUD\node_modules\socket.io\lib\client.js:213:8)
    at Client.ondata (C:\Users\treyw\Documents\NodeProjects\RockMUD\node_modules\socket.io\lib\client.js:177:10)
    at emitOne (events.js:77:13)
    at Socket.emit (events.js:169:7)

JS Templating?

I know the project currently has no Javascript templating, but it seems like a simple template system would be useful for things like the display of score or output of specific types of messages, like help.

It might also be nice to have a template-based form to use for editing/creating new objects in the game, rather than having to memorize an arcane object-creation syntax or execute 50 commands to create and then modify a single object. This way, you could use a command like create weapon and a form could appear (build from a template). Upon "submitting" the form, a command would send all of the form fields to a more complete create weapon ... command that actually creates the weapon.

Rooms not changing

It seems that whatever way you go, the room doesn't change. RoomId stays the same

Container Items

get sword sack (cmd, item, item2). Do not support 'from'.

scrolls, staves, spellbooks

Scrolls are 1-off casts that use up the scroll but take no mana.
Staffs can hold a number of spell charges and take little mana.
Spellbooks hold 'special' spells and do take mana.

effectively read, recite, and brandish commands.

Getting items of the same type

get 1.dagger and get 2.dagger
kill 2.boar and kill 1.boar

Note '1.' is implied when nothing is passed; the 'top' most item is assumed. Basically as it works now.

Break out Rooms from Areas

Please break the rooms out of the areas, when editing or adding to the Area code now, the server goes into a reboot, kicking all the users offline

Or add an ability to load the rooms dynamically so the server doesn't have to be rebooted

Opening the gate results in crash

Missing error handler on socket.
TypeError: Cannot read property 'door' of null
at D:\Development\GitHub\RockMUD\src\commands.js:174:16
at Room.checkExit (D:\Development\GitHub\RockMUD\src\rooms.js:134:10)
at D:\Development\GitHub\RockMUD\src\commands.js:173:9
at D:\Development\GitHub\RockMUD\src\world.js:467:12
at D:\Development\GitHub\RockMUD\src\world.js:433:11
at World.checkArea (D:\Development\GitHub\RockMUD\src\world.js:514:11)
at World.loadArea (D:\Development\GitHub\RockMUD\src\world.js:431:8)
at World.getRoomObject (D:\Development\GitHub\RockMUD\src\world.js:464:8)
at Cmd.open (D:\Development\GitHub\RockMUD\src\commands.js:172:9)
at parseCmd (D:\Development\GitHub\RockMUD\server.js:86:32)

remove item enhancements

Character.js needs expanded to allow for remove specific functions based on item type (removeWeapon() / removeLight()); this way we can easily adjust for item specific removals and make item type specific events.

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.