• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>

            天行健 君子當(dāng)自強而不息

            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 閱讀(221) 評論(0)  編輯 收藏 引用


            只有注冊用戶登錄后才能發(fā)表評論。
            網(wǎng)站導(dǎo)航: 博客園   IT新聞   BlogJava   博問   Chat2DB   管理


            公告

            導(dǎo)航

            統(tǒng)計

            常用鏈接

            隨筆分類(178)

            3D游戲編程相關(guān)鏈接

            搜索

            最新評論

            亚洲精品无码久久不卡| 久久久久亚洲AV无码网站| 久久精品国产99国产精偷| MM131亚洲国产美女久久| 国产精品欧美亚洲韩国日本久久| 四虎国产精品免费久久久| 无码8090精品久久一区| 久久综合给合久久国产免费| 久久久久免费精品国产| 久久久久亚洲av成人网人人软件| 亚洲色大成网站WWW久久九九| 久久精品国产99久久久| 日日狠狠久久偷偷色综合免费| 久久久无码精品亚洲日韩京东传媒| 久久国产精品无码HDAV| 久久人人爽人人澡人人高潮AV| 久久久久无码精品国产| 伊人久久大香线蕉AV一区二区| 久久99国产综合精品女同| 久久99国产精品成人欧美| 久久人人妻人人爽人人爽| 色天使久久综合网天天| 久久精品国产亚洲一区二区| 伊色综合久久之综合久久| 99精品伊人久久久大香线蕉| 亚洲国产精品无码久久一线| 一本大道久久香蕉成人网| 国产精品欧美久久久久天天影视 | 99国产精品久久| 日韩亚洲国产综合久久久| 99久久精品国产综合一区| 精品久久久久久无码中文字幕一区| 久久久午夜精品福利内容| 久久中文字幕无码专区| 青草影院天堂男人久久| 久久久久夜夜夜精品国产| 久久久av波多野一区二区| 麻豆一区二区99久久久久| 99久久夜色精品国产网站 | 国产午夜精品久久久久免费视| 精品久久久久久久久免费影院|