Managing a stable of characters in an RPG is a complicated process. My limited experience with MMORPGs indicates that it can be more efficient to build more than one character at a time. At least it is more interesting. In the two MMORPGs that I’ve tried I’ve built several characters to try to learn more about the game and the character classes. In 2Moons I’m currently running six characters. This is efficient since as they level up all the interesting loot is saved for the other characters and one higher level character can finance a lower level character’s purchase of expensive items.
But, the downside of doing this is you have to keep track of all the loot that each character has and what they need. In Guild Wars this was easy because there is an account-wide storage facility where all the loot is kept. But with 2Moons, each character has a separate stash, or storage locker, so you have to remember what’s in each one to avoid wasting time with items that you already have collected.
I’ve started to build an Open Office database to store this data for my 2Moons characters. I’ve got the data scheme designed and some reports done, but at this point I need Forms to fill out the various data. The data is in Normal Form and I’m not sure how to build a form to allow entry of the data. First let’s review the data design and the queries.
This is the character table.
This is the armor table.
The details are not important unless you are a 2Moons player. There are too many types of armor to have a table for that. Instead of a Armor Name Table, we just list the armor name. Each armor type has 5 matching pieces. Some intermediate armor types only have one or two parts, but we ignore that detail. This table allows us to keep the status of each bit of armor that we need and which pieces we have.
But the interesting case is the stones case. For the collection of stones, there are only a few types so that there is a table of stone names. And we want a report of the number of stones kept by each character.
This is in fully normal form, just a list of the character id, stone type id, and the number of stones.
Here is a query that gets the list for a report:
So that is clear enough.
But what about the forms to fill out the data. So far I’ve been filling out the data manually by editing the tables. This is ok for the characters, but for the Armor, Weapons and Stones, this is not convienent since the numbers of the character records and stone types have to be entered manually.
I’d like to have a form for the Armor that allows the Character to be set with a pull-down, and a Stones form that allows the Character and Stone Type to be set from pull-down lists.
Can someone show me an example of this?
Here is the Open Office Database file: 2moons_characters_example
Thanks to VooBase on the OpenOffice.org Forums for suggestions and pointers to using a listbox to solve the problem. I have solved the problem and the forms work just fine.
Here are the forms to modify the Armor, Weapons and Stones held by each of the characters. The characters entries can be made or modified by using any of these forms. The list of stone types has to be modified manually by editing the table at this point, but adding a form to do this is trivial.
[All the data in the database is correct- these are my 2Moons characters. But the account names have been modified obviously, for security reasons. See you in game if you like. ]
Here is the Armor Form:
By selecting any field in the character field above, you can scan through the characters and modify any fields you like. By selecting the subform below, you can add or modify entries in the armor table. Note that the character field is a list, so you can pull-down from the available characters. This allows you to move armor among characters. Note that the armor is sorted by the highest level first, which is normally the most interesting armor.
Here is the Weapons form with the character list pulled down:
This form works the same as the Armor form.
Here is the Stones Form. This form has two pulldown lists, one for character and one for stones type:
And here is the Stone_ID column open showing the settings:
The Wizard does not work in the Spreadsheet format of the subform. But I was able to create a field in the form using the wizard and then copied the settings from the List Control to the column to get it to work. The character_ID column control settings are identical to the separate control. I wrote the Select statement for the Stone_ID column by example from the Character_ID field. I have no idea what the bound field means.
The other issue I ran into is how to add the label for the entire form above the fields. To solve this problem, I changed the anchor point for all the controls to Page and then moved them down. Then created a label, anchored it to the page, moved it and set the font to size 24.
Each time you save the form, you need to go to the database dialog and save it all too. If something crashes without you doing this, you will lose all your work, as I did. BTW, this was built with Open Office 2.4.
Here is the updated example:2moons_characters_example2
Enjoy, if this application helps you with 2Moons or in any other way, I’d prefer an acknowledgment and a note saying how it helped. DISCLAIMER: Like all software you find, your use of this is at your own risk. If there are bugs, I’ll help if I can.
Cheers, and see you online.