A blog to follow the development stages of the different programs I am currently in the process of writing.

Monday, April 14, 2008

My Setup

This is less as a post for anyone reading this and more a post for me keeping track of my web development setup.


Firefox Add-ons:
Web Developer Toolbar
Firebug
FirePHP
FireFTP
Long Titles
Talkback (Default)
DOM Inspector (Default)

Editors:
Eclipse w/PDT (when it isn't being stupid)
Dreamweaver 8 (when it isn't being stupid)
XML Notepad 2007
Vim

General Tools:
WAMP Server
Heidi SQL
Regex Tester
Console 2
AutoHotkey
Citrus Alarm Clock

Sanity Aids:
Last.FM - Online Radio

Tuesday, July 24, 2007

More! MORE! Updates Ahoy!

Almost too many updates to list but I'll give it a shot. The biggest one is colour, glorious colour.
Here's a preview of the new login screen with colour. That is just a small bit of the colour implementation since I put it anywhere that a highlight was feasible.


If you noticed above, you can now save and load your character from save files. This was a gigantic pain, I had to hack the crap out of the player description to get it to save to file without crashing and then un-hack, as it were, to read it from file unchanged.

Here's what the save files look like and a preview of them being loaded.



shawn
100
8
0
A-weak-human
0
0

A quick explanation of what that is:
first line is obiously the character name, second line is health %,
third is the player's strength, followed by the Room # the player
quit at. The fourth is another obvious one, the description. The final
two are booleans for isNPC and hasScript which are currently unused
at this point.


One of the other big things that I added was a file-based scripting system.
Each mob can have a script file associated with it .msf. Currently
the only command supported is send which (big leap here) sends a say command
to the screen upon a certain action.

Preview of script file:
2 send Gaaarrrrrrrr!
1 send Hello
0 send DIE!

The preceding number sets when this action happens 0 is upon attack, 1 is upon entrance of the room and 2 is upon death. I'll add multi-word argument support and more supported commands later.


Here's a list of the minor updates I've made
  • all arguments to applicable commands, ie. wear all, get all.
  • an eat command which restores health if you eat an eatable item
  • redesigned equipment command
  • get, and drop commands


I still have a lot of plans for this:
Extending the scripting system, better system for (N)PC, room, item, creation, more item types, experience/levelling system, skills, spells, etc. inf. The list goes on and on, too much work and not enough time.

If you want to test the game or you want the source here you are(both are .rar so you need WinRAR):
Source
Game

Have Fun!

Labels:

Saturday, July 14, 2007

More commands for Arena2.0

A few more updates on Arena2.0:

  • I've got the look command fixed so it no longer crashes when it hasn't found a target.
  • I've added the get and inventory commands, here's a quick look. I've also added in a tiny bit of the combat system, though it's just barely an "attack" type command.

Labels:

Monday, July 9, 2007

Arena2.0

I've restarted an old project with a completely new direction. My original Arena game was a map-based game where you wandered around an arena killing monsters. In this iteration it's more MUD-esque, it is room-based instead of map-based. It currently has support for rooms, mobiles(both NPCs and players), I have the look, score, and a small portion of the combat system in. The look command is giving me some trouble as it crashes the game when it doesn't find a target, aside from that nasty bug it's going well so far.

Here's a little look:
Login Screen







Some commands in action

Labels:

Sunday, April 15, 2007

Sheathe/Draw SMAUG Snippet

After much frustration and fiddling I finally got my Sheath/Draw code to work for SMAUG. I'll post it here because you need a lot of the hardcoded stuff for it to work.

void do_sheath( CHAR_DATA * ch, char *argument )
{

OBJ_DATA *w_weapon;
OBJ_DATA *w_sheath;
if( ( w_weapon = get_obj_wear( ch, argument ) ) == NULL )

{
send_to_char( "Sheath what?\r\n", ch );
return;
}
if( ( w_sheath = get_eq_char(ch, WEAR_SHEATH ) ) == NULL )

{
send_to_char("\nYou must have something to put the weapon into.\r\n", ch);
return;
}
else
{


separate_obj(w_weapon);
obj_from_char( w_weapon );
w_weapon = obj_to_obj( w_weapon, w_sheath );

ch_printf(ch, "You dextrously slide %s into %s", w_weapon->short_descr,
w_sheath->short_descr);
return;
}
}

void do_draw( CHAR_DATA * ch, char *argument )
{

OBJ_DATA *w_weapon;
OBJ_DATA *w_sheath;

if( argument == '\0' )

{
send_to_char( "Draw what?\r\n", ch );
return;
}
if( ( w_sheath = get_eq_char(ch, WEAR_SHEATH ) ) == NULL )

{
send_to_char("\nYou don't even have a sheath to draw from.\r\n", ch);
return;
}
else
{


w_weapon = get_obj_list( ch, argument, w_sheath->first_content);
if( !w_weapon )

{
act( AT_PLAIN, "There is no $T sheathed.", ch, NULL, argument,
TO_CHAR );

return;
}
// get_obj( ch, w_weapon, w_sheath );
obj_from_obj( w_weapon );
obj_to_char( w_weapon, ch );
equip_char( ch, w_weapon, WEAR_WIELD );

ch_printf(ch, "You quickly draw %s from %s", w_weapon->short_descr,
w_sheath->short_descr);

return;
}
}




Feel free to ask questions or comment here or send me and email.

Labels:

Thursday, April 5, 2007

Created Dev-Blog

[Update] I've got the first bid at $5
[Note] After the 18th I will take the auction public to E-Bay/MissionFish

I'll use this so for all of you that are at all remotely interested can follow my development states on different programs. Until I find a new project you can find my completed projects Here [programs.html].

Once I get enough requests or lack thereof I will put the site's shirt up for auction.
Here's a quick preview image of the front.

Labels: , ,