天行健 君子当自强而不息

Controlling Players and Characters(28)

 

Building the Master Character List

You create and use a master character list (MCL) much like you use the master
item list (MIL) to define objects in your game. Before using them in your game,
you need to design every character, complete with appearance (3-D mesh) and
functionality (abilities and attributes). This character information is stored in the
sCharDef structure.

The MCL is stored just as the MIL, as a sequential data file (see Figure 16.12).

Whenever a character is needed within the game, the MCL is referenced; each
character is assigned a number that tells which character to use. As a character is
needed, you load the specific data structure.

Now take a look at the sCharDef structure:

typedef struct sCharDef         // character definition
{
    
// misc data
    char    name[32];
    
long    class_index;        // class index of character
    long    money;
    
float   speed;              // movement speed
    long    magic_spell[2];     // bit flags to mark known spells
    long    mesh_index;         // mesh/anim index to load

    // abilities
    long    agility;
    
long    attack;
    
long    defense;
    
long    resistance;         // magic resistance ability
    long    mental;
    
long    to_hit;             // chance to hit

    // attributes
    long    health_points;      // number of health points (maximum)
    long    mana_points;        // number of mana points (maximum)
    long    level;              // experience level
    long    exp;                // experience points

    // inventory
    char    item_filename[MAX_PATH];    // char ics filename
    long    weapon;
    
long    armor;
    
long    shield;
    
long    accessory;

    
// droppping item data
    long    drop_chance;        // % of dropping item when killed
    long    drop_item;          // item index to drop when killed

    // attack/magic chances and effects
    float   attack_range;
    
float   charge_rate;        // countdown rate to attack
    long    to_attack;          // percent to attack
    long    to_magic;           // percent to use magic
    long    effect_chance;      // chance of attack effect occuring
    long    effects;            // bit flags of attack effects
} sCharDef;

Just like the master item list, the MCL stores only minimal information about a
character. Because multiple characters of the same type can exist in the game
world at one time (for example, ten instances of a Goblin character), the
per-instance data is kept separate. This per-instance data includes the coordinates
of the characters, their current health and mana points, and so on.

Although the structure is well commented, a few things might not make immediate
sense. In addition to the abilities and attributes that you’ve already read about, you
have the miscellaneous, inventory, dropping item, and attack/magic chances and
effects. Table 16.6 describes what these variables do for the character definition.

Configuring a single character definition is as simple as filling in the blanks, but
when it comes to defining 100 characters, things can quickly become complicated.
What you need is an MCL Editor.

 

The MCL Editor

You’re probably used to these editors by now, and this one is just as easy to use as
other editors. If you haven’t done so already, go ahead and run the MCLEdit application.

Following snap shows the MCL Editor dialog box.

The MCL Editor can handle up to
256 characters—each numbered from 0 to 255. Each character is shown in the list
box. To work with the MCL Editor, follow these steps:

1. Double-clicking a character in the list or clicking the New button brings up
the Modify Character dialog box.

2. In the Modify Character dialog box, enter the appropriate character information
in each field. You can alter a character’s Name, Class, Health Points,
Mana Points, Level, Experience, Money, ability values, known Spells, and
Mesh information.

3. Once you finish filling in a character’s information in the Modify Character
dialog box, click OK. You’ll return to the Master Character List Editor dialog
box.

4. Click the Save button to bring up the Save MCL File dialog box.

5. Enter a filename and click the Save button to write the MCL file to disk.

6. To Load a file, click the Load button (in the Master Character List Editor
dialog box), enter a filename, and click OK.

You’ve read about each bit of the character definition. Now, it’s time to enter that
information into the appropriate places. When it comes to spells, highlight the
spell number you want the character to know automatically. Those spell numbers
relate directly to your MSL, so you might want to run the MSL Editor and MCL
Editor side by side to compare the information.


posted on 2007-12-03 21:54 lovedday 阅读(205) 评论(0)  编辑 收藏 引用


只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理


公告

导航

统计

常用链接

随笔分类(178)

3D游戏编程相关链接

搜索

最新评论