《龍騰世紀:起源》教學:如何在自己的模組產生玩者人物

發佈日期

模組內玩家人物產生教學:

一般剛創立的模組(Module)沒有事件指令碼(Script)來啟動玩家創立人物,要讓玩家可以使用DA內建的創立人物介面,可以使用以下的模組事件指令碼來達到效果。

請先創立一個指令碼,然後在指令碼內輸入以下的指令碼,之後開啟模組屬性(檔案-> 管理模組-> 屬性)將Script 選擇你創立的以下指令碼資源即可

編碼: :
#include "events_h"
#include "global_objects_h"
 
void main()
{
    event ev = GetCurrentEvent();
    int nEventType = GetEventType(ev); //extract event type from current event
    int nEventHandled = FALSE; //keep track of whether the event has been handled
    switch(nEventType)
    {
         case EVENT_TYPE_MODULE_START:
         {
            PreloadCharGen(); //preloads resources needed for character generation
            StartCharGen(GetHero(),0); //initiates character generation
            break;
         }
    }
    if (!nEventHandled) //If this event wasn't handled by this script, let the core script try
    {
        HandleEvent(ev, RESOURCE_script_MODULE_CORE);
    }
}
 
另一個快速的方法跳過人物產生介面
編碼:
    #include "sys_chargen_h"
    #include "utility_h"
 
...
 
        case EVENT_TYPE_MODULE_START:
        {
 
            // skip character generation
            object oHero = GetHero();
            Chargen_InitializeCharacter(oHero);
            Chargen_SelectGender(oHero,GENDER_MALE);
            Chargen_SelectRace(oHero,RACE_HUMAN);
            Chargen_SelectCoreClass(oHero,CLASS_WARRIOR);
            Chargen_SelectBackground(oHero,BACKGROUND_NOBLE);
 
            // give the player some equipment
            object oItem = UT_AddItemToInventory(R"gen_im_arm_cht_lgt_rlr.uti");
            EquipItem(oHero,oItem);
            oItem = UT_AddItemToInventory(R"gen_im_arm_bot_lgt_rlr.uti");
            EquipItem(oHero,oItem);
            oItem = UT_AddItemToInventory(R"gen_im_arm_glv_lgt_rlr.uti");
            EquipItem(oHero,oItem);
            oItem = UT_AddItemToInventory(R"gen_im_arm_shd_sml_wdn.uti");
            EquipItem(oHero,oItem);
            oItem = UT_AddItemToInventory(R"gen_im_wep_mel_lsw_lsw.uti");
            EquipItem(oHero,oItem);
 
            break;
        }
 
另一種方法是建立一個生物範本([b]Template),然後呼叫(LoadItemsFromTemplate) 函式將它複製到玩者人物. [/b]
編碼: :
         case EVENT_TYPE_MODULE_START:
         {
            // skip character generation
            object oHero = GetHero();
            Chargen_InitializeCharacter(oHero);
            Chargen_SelectRace(oHero,RACE_HUMAN);
            Chargen_SelectCoreClass(oHero,CLASS_WARRIOR);
            Chargen_SelectBackground(oHero,BACKGROUND_NOBLE);
 
            LoadItemsFromTemplate(oHero, "gcd_hero.utc", TRUE);
 
            break;
         }
 

若要快速升級, 你可以加入以下的指令碼到上面的任何範例內:

編碼: :


...
 
#include "sys_rewards_h"
const int FORCE_AUTOLEVEL = 2;
 
...
 
         case EVENT_TYPE_MODULE_START:
         {
            object oHero = GetHero();
...
            // Make character level 10
            int nTargetLevel = 10;
            RewardXP(oHero, RW_GetXPNeededForLevel(nTargetLevel), FALSE, FALSE);
            SetAutoLevelUp(oHero, FORCE_AUTOLEVEL);
...
         }
 
一個更復雜的指令碼可能包括其他設定程式碼,例如觸發介紹或是電影通知玩家在遊戲的劇情.


更多相關資訊請關注:龍騰世紀:起源專區

更多相關內容請關注:龍騰世紀:起源專區

標籤:龍騰世紀:起源攻略

相關攻略文章

最新攻略