Buy Official Merchandise!
Forumwarz is the first "Massively Single-Player" online RPG completely built around Internet culture.

You are currently looking at Flamebate, our community forums. Players can discuss the game here, strategize, and role play as their characters.

You need to be logged in to post and to see the uncensored versions of these forums.

Log in or Learn about Forumwarz

Civil Discussion
Switch to Role-Playing Civil Discussion

Viewing a Post

BirdofPrey

Avatar: 2037 Sun May 10 02:46:48 -0400 2009
10

[Team Shortbus]

Level 10 Troll

I lick her up afterwards (After her great times session too! Yum!)

I never got around to that dwarf fortress (sorry veer!) but here’s some more roguelike ****e!

While starting on Step 1 of my last ‘to-do list’ I ended up getting pretty side-tracked. Since the last update, I’ve re-done my item-handling and inventory code to use STL linked-lists instead of my own linked list functions, though there’s no obvious change in its behavior.

As a complement to the inventory revamp, I tore down my old threadbare Menu system and completely redid it from scratch. It has a ****load more functionality. The first one didn’t even allow scrolling, and only let you choose one item at a time. My new menus are hardcore: They allow multi-page scrolling for long lists, and when you create a menu you can specify whether or not it will allow multiple choices, and multiple choice menus will allow you to select any number of options. That’ll be used for actions like picking up and dropping stuff.

Also, beforehand, every time a menu was made it would bumign keyhandles from scratch like in ADOM, but now when items are bumigned a keyhandle that key stays with it unless it moves or you adjust it manually. This is more similar to a nethack style inventory, and is convenient because if you’re using an item frequently you can simply memorize its keyhandle and use it quickly instead of having to find it in the menu every time. On the other hand, this may necessitate an inventory limit of around 50, but that could be part of the resource-management part of the game.

If all that **** bored you to tears, maybe you’ll find this more interesting. I’ve been planning out my scripting system (haven’t written any of it yet). If things work out, the only things in the game that won’t be able to be customized and scripted will be creature’s actions. (you won’t be able to make a ‘enjoy’ action or whatever, though i suppose you could make it into a skill/spell). It may also be difficult to script your own item clbumes such as potions, scrolls, etc. That might be impossible too. Otherwise everything else should be fair game.

For a demonstration, here’s what Nethack’s “loadstone” would look like as defined by the external file. A loadstone is a rock that is extremely heavy that automatically becomes cursed when it is picked up, and won’t let you drop it as long as it is cursed. The syntax will not be exactly this, but it’ll be close enough:

ROCK <loadstone>{ #First, the 'clbum' of item, followed by the item's unique identifier

#basic item settings - these should be self-explanatory
NAME    "loadstone"
WEIGHT  1000
VALUE   10
COLOR   GRAY

#Flags & special values would go here - These would include things like flammable, rustable, lightsource, etc.
#I actually can't think of any that would apply here so I'll leave it blank

#And here is the script section:

#First, we need to make it autocurse when it picks up. When an item is picked up a 'Take' trigger is
#generated for the item. The trigger checks for a hook in the item code, and if it finds one it executes
#the script it finds there. Here is the 'taken' hook.
Take{
    Execute;  #This command will have the action continue normally until just before reporting it
    set item.cursestatus CURSED;  #curses the item
    Report "As you pick up the rock it latches onto you!"; #report displays the text and generally halts the action
}

#And now the drop script, to specify that a cursed loadstone cannot be dropped.
Drop{
    if (item.cursestatus = CURSED){
        #We don't write 'Execute' here because we don't want the dropping action to go through.
        Report "You can't seem to drop this damn thing!"; #So we just report it and the action fails.
    }
    #If the item is not cursed, no report command is found so the action continues and finishes normally
}

}

So that’s pretty much it! This is a very simple example, and some items and such with complicated rules could have dozens of lines of this fake code to define its behavior. Also the example is slightly incomplete because you’ll notice we didn’t account for which creature is picking up the stone. Obviously if a monster was picking up the rock we wouldn’t want to inform the player that the rock is latching on to him. That’ll all be possible though.

Internet Delay Chat
Have fun playing!
To chat with other players, you must Join Forumwarz or Log In now!