創作內容

0 GP

[翻譯][Dragon Age]從頭建立一個新職業

作者:騎士Yu│Dragon Age:Origins│2009-12-03 16:10:21│巴幣:0│人氣:2161
[翻譯][Dragon Age]從頭建立一個新職業
原文http://www.damods.com/forums/index.php?topic=571.0
翻譯者:台灣奇幻遊戲社群網的騎士Yu
代碼打手:台灣奇幻遊戲社群網的企鵝
網址http://www.pcfit.idv.tw/nwn2/
========================================================================
危險危險:  危險:  危險:  危險:  危險危險危險:  危險:  危險:  危險:  危險危險危險:  危險:
========================================================================
如果你不懂C++、腳本和2DA檔,本篇教學將會破壞你的DragonAge遊戲。(譯者注:就是會將你遊戲的內容修改的亂七八糟的意思拉)

如果破壞了,就只能重新安裝DragonAge和Toolset。

最好是能備份你的遊戲核心檔案。

你必須特別小心。
========================================================================
小心:                     小心:    小心: 小心: 小心
========================================================================

===================
NEW CLASSSTARTER KIT
===================


你需要一個套件內含.xls的電子表格,這樣才能製作新職業。點擊下面網址可以下載已製作完成得套件。
(譯者注原作者給的檔案和教學不符  建議完全照教學作)
關於.xls的製作、轉換以及GDA等,此篇教學都有講到,只要你跟者我的腳步。

你仍然需要在toolkit裡編輯腳本並且建立UTC模型。

你仍然需要為你的模組建立GDA檔案。

前往我的文件/bioware/dragonage/addins/modulename

將GDA檔放於我的文件/bioware/dragonage/addins/modulename/core/override目錄裡

http://www.damods.com/forums/index.php?action=downloads;sa=view;down=131


此篇教學是指導如何製作新職業。

請完全遵從此教學的順序,不要跳章節閱讀。
===================
新職業開始套件
===================


------------------------------------
步驟1:你將要編輯的2DA檔案(譯者:能夠在遊戲目錄裡的toolsSource2DA找到)
------------------------------------
(譯者:最好將以下檔案複製一份 統一放在一個目錄這樣比較好修改)
2da_base.xls
abi_base.xls
ALclassname_default.xls (例如 ALshaman_default.xls)複製自ALWizard_default.xls
background.xls
cla_base.xls
guitypes.xls

(譯者在此給wiki介紹不然各位不曉得各個xls的作用
進入後請自行點選你要看的xls)

------------------------------------
步驟2:編輯2DA
------------------------------------

------------------------------------
開啟2da_base.xls
------------------------------------
切換頁面為M2DA_base(可以使用TAB鍵切換)
在最下面空白處添加
ID100000
LabelALShaman_default 
WorksheetALShaman_default

保存你的檔案

------------------------------------
開啟guitypes.xls
------------------------------------
在底部添加:
ID為500  Label為Class: Shaman     StringId為8000000 Ability為5000  ProgressBar為0  CombatTraining為0  SpecialGraphic為1  TintColor為0x9B0F00   Orphanage為0  Flags為0  BlendTree為****

保存你的檔案

------------------------------------
開啟CLA_base.xls
------------------------------------
將以下資料一一填入ID為3的下一列(即ID為3的下一列統統往下移動一列,中間空出的一列放資訊)
4   Shaman   8000000   8000001   ****   8000002   8000003   classico_spirithealer   CLASS_Shaman   2   95   1   100   5   2   2   2   2   2   0   0   0   55   50   1   5   1   3   0.3   4035   ****   1   Shaman   ****

儲存你的檔案
------------------------------------
開啟background.xls
------------------------------------
在backgrounds 頁面:你必須要在Mage和Skill1間插入一個區塊,如圖
在background_defaults頁面裡有多個區域要追加,請看圖
 ID是如何工作?1 = dwarf,4 = shaman,5= noble,設定是很簡單的。

在第12,15,17,19列你要照圖追加我推薦你直接複製然後修改。10==> 12
13 ==> 15
16 ==> 17
18 ==> 19
關於templatestring裡的deault_shaman.utc,是稍後要在toolset裡製作的基本模型。
至於Ability的int是遊戲裡的職業預設能力,以我為例是直接用沒有被使用過的數字。


在chargen_preload頁面,你必須加入一些區塊如圖: 
注意ID的數值必須必須和background_defaults頁面的數值一樣,否則會使遊戲崩潰。

儲存你的檔案


------------------------------------
開啟abi_base.xls
------------------------------------

在ABI_Base頁面將以下內容添加到底部

有多行是重要的東西必須要瞭解

abilitytype- 定義能力類型。近戰,法術,技能等等--->是直接連結到abilitytype.xls

prereqability– 定義有此能力的必須條件。要建立新職業就必須修改已存在的職業。

guitypes - 職業的參考---> 連接到guitypes.xls


在第119列的下一列==> 4034 HIDDEN_DOG下方插入新列並個別輸入以下資訊
5000   HIDDEN_SHAMAN   0   0   380405   330716   hidden         2   0   0   0   0   0   0   0   1   0   0   12   0   0   0   0   3      1.5         0      0   0   0   0   0   0   0   0   0   0      0   0   0   1   7   0   2   33   0   0   0   0


將以下內容一一複製到頁面底部(總共要製作四個新列)
300000   HEROIC_OFFENSE2   380003   379523   367458   379231   spl_ico_heroic_offense   2   1   0   0   0   20   0   5000   0   0   0   500   3   0   3   1   4   spell_singletarget.ncs   5   90215      244   247   0   0   2   0   0   0   0   0      0   90109   128   1   7   0   2   33   0   0   0   0

300001   HEROIC_AURA2   380000   379520   367458   379214   spl_ico_heroic_aura   2   1   0   0   0   30   0   300000   0   4   15   500   3   0   3   1   4   spell_singletarget.ncs   5   90213      244   247   0   0   0   0   0   0   0   0      0   90110   128   1   7   0   2   33   0   0   0   0

300002   HEROIC_DEFENSE2   380001   379521   367458   379256   spl_ico_heroic_defense   2   1   0   0   0   40   0   300001   0   4   20   500   3   0   3   1   4   spell_singletarget.ncs   10   90214      244   247   0   0   2   0   0   0   0   0      0   90111   128   1   7   0   2   33   0   0   0   0

300003   HASTE2      380005   379525   398957   379229   spl_ico_agility      2   0   0   0   0   0   60   300002   0   4   30   500   1   1   18   1   2   spell_modal.ncs   30      90216      244   247   0   0   2   0   0   0   0   0      0   90112   192   1   7   0   2   33   0   0   0   10
-------------------------------------------------
接下來是棘手的問題,請確保接下來都遵從教學,否則你就要和你的模組說再見。

選擇第三列到最後一列(即第三列到最後一列反白)

到DATA(資料)--> SORT BY COLUMN S (guitypes)(行排序依照guitypes以我為例是依欄位S作排序)。現在應該是依照guitype排序完畢。

現在我們要將mage的法術自我們新職業的法術裡分開。

在guitype裡數值介在1~4的,看相對映的prereqability數值,若為0就改成4023
從現在開始特殊能力只有在職業為mage時出現。(這也就意謂者我們要為新職業製作獨立的技能。)
現在已經確保不同職業,技能不會重複。

選擇第三列到最後一列(即第三列到最後一列反白)

到DATA(資料)--> SORT BY COLUMN S (ID)(行排序依照ID以我為例是依欄位A作排序)。
-------------------------------------------------
現在到passive_abilities頁面

在最下方的新列一一填入

9000   HIDDEN_SHAMAN   1   2   4   2   6   1      str+2,mag +2,con +1

儲存你的檔案


------------------------------------
開啟ALShaman_default.xls
------------------------------------
改成如圖
=================================================================================
將2DA檔轉成GDA
=================================================================================

在C:下建立一個叫做2DA的資料夾,在裡面建立一個叫做override的資料夾。

在你的C:2da把以下檔案放進入:

2da_base.xls
abi_base.xls
background.xls
cla_base.xls
guitypes.xls
ALShaman_default.xls

去你的toolset資料夾將ExcelProcessor.exe也放進去我們是靠 ExcelProcessor作轉換
(譯者:以我為例是在遊戲目錄裡的toolsResourceBuildProcessors)

然後我們製作簡單的批次檔來轉換。

開啟記事本,將以下代碼複製貼上去,存檔檔名取為convert.bat並執行convert.bat

C:2DAExcelProcessor.exe2DA_base.xls -outdir=C:2DAoverride 
C:2DAExcelProcessor.exebackground.xls -outdir=C:2DAoverride 
C:2DAExcelProcessor.exeCLA_base.xls -outdir=C:2DAoverride 
C:2DAExcelProcessor.exeALShaman_Default.xls -outdir=C:2DAoverride
C:2DAExcelProcessor.exe guitypes.xls -outdir=C:2DAoverride
C:2DAExcelProcessor.exe ABI_base.xls -outdir=C:2DAoverride 

注意:若系統為Vista或是Windows7,請以管理者執行convert.bat(即RUNAS ADMINISTRATOR)

現在你為你的模組製作GDA檔了。

=================================================================================
在Toolset編輯資料
=================================================================================

建立新模組(Createa new module)如圖

請確認你的STRING數值是介於8,000,0008,300,000
如果不在此範圍,
STRING就不會工作BIOWARE聲明這是SQL的問題
模組建立後,開啟模組選擇heirarchy並檢查singleplayer是否有打勾。
模組建立完畢,現在要將GDA放在適當override區域。

開啟我的文件/bioware/dragonage/addins/modulename

將GDA檔放在我的文件/bioware/dragonage/addins/modulename/core/override資料夾裡面

------------------------------------
編輯2DA_CONSTANTS_H檔案 ==>under _Corescripts(將2DA_CONSTANTS_H作成腳本)
------------------------------------

對2DA_CONSTANTS_H按滑鼠右鍵,選擇CHECKOUT

打開,依照下方代碼尋找區域並修改成一樣:
const int ABILITY_TALENT_HIDDEN_DUELIST = 4030;const int ABILITY_TALENT_HIDDEN_RANGER = 4029;const int ABILITY_TALENT_HIDDEN_REAVER = 4019;const int ABILITY_TALENT_HIDDEN_ROGUE = 4020;const int ABILITY_TALENT_HIDDEN_SHALE = 4033;const int ABILITY_TALENT_HIDDEN_TEMPLAR = 4021;const int ABILITY_TALENT_HIDDEN_WARRIOR = 4022;const int ABILITY_TALENT_HIDDEN_WARRIOR = 5000;const int ABILITY_TALENT_HURLOCK_PROPERTIES = 90080;const int ABILITY_TALENT_INDOMITABLE = 28;



//Class Constantsconst int CLASS_WARRIOR = 1;const int CLASS_WIZARD = 2;const int CLASS_ROGUE = 3;const int CLASS_SHAMAN = 4;const int CLASS_SHAPESHIFTER = 5;const int CLASS_SPIRITHEALER = 6;const int CLASS_CHAMPION = 7;const int CLASS_TEMPLAR = 8;const int CLASS_BERSERKER = 9;const int CLASS_REAVER = 10;const int CLASS_ARCANE_WARRIOR = 11;const int CLASS_ASSASSIN = 12;const int CLASS_BLOOD_MAGE = 13;const int CLASS_BARD = 14;const int CLASS_RANGER = 15;const int CLASS_DUELIST = 16;const int CLASS_SHALE = 17;const int CLASS_DOG = 18;const int CLASS_MONSTER_ANIMAL = 19;
編輯完畢就在頂端按滑鼠右鍵選SAVE然後點選CHECKIN

然後在頂端點擊"EXPORTWITHOUT DEPENDENT RESOURCES"



---------------------------------------------------------------------------
編輯gen00pt_class_race_gend檔案 ==>under _Global ==> plotscripts
---------------------------------------------------------------------------

對gen00pt_class_race_gend按滑鼠右鍵,點擊CHECKOUT

打開,找到區塊並依照下列代碼修改:
            case GEN_CLASS_MAGE:            {                nResult =   ( GetCreatureCoreClass(oListener) == CLASS_WIZARD );                break;            }            case GEN_CLASS_WARRIOR:            {                // DEBUG START                nResult =   ( GetCreatureCoreClass(oListener) == CLASS_WARRIOR );                break;            }            case GEN_CLASS_ROGUE:            {                nResult =   ( GetCreatureCoreClass(oListener) == CLASS_ROGUE );                break;            }            case GEN_CLASS_SHAMAN:            {                nResult =   ( GetCreatureCoreClass(oListener) == CLASS_SHAMAN );                break;            }

編輯完畢就在頂端按滑鼠右鍵選SAVE然後點選CHECKIN

然後在頂端點擊"EXPORTWITHOUT DEPENDENTRESOURCES"


----------------------------------------------------------
編輯sys_chargen_h==> under _Systems ==>_Includes
----------------------------------------------------------

對sys_chargen_h按滑鼠右鍵,選CHECKOUT

打開,找到Startingskills區塊修改成下圖:
    // -------------------------------------------------------------------------    // Starting Skills    // -------------------------------------------------------------------------    if (nClass == CLASS_WARRIOR)    {        _AddAbility(oChar, 100100);    }    else if (nClass == CLASS_ROGUE)    {        _AddAbility(oChar, ABILITY_SKILL_POISON_1);    }    else if (nClass == CLASS_WIZARD)    {        _AddAbility(oChar, ABILITY_SKILL_HERBALISM_1);    }    else if (nClass == CLASS_SHAMAN)    {        _AddAbility(oChar, ABILITY_SKILL_HERBALISM_1);    }}

然後到startingability區域並修改
        // ---------------------------------------------------------------------        // Load the starting ability for the background        // ---------------------------------------------------------------------        int nAbility = GetM2DAInt(TABLE_STARTING_EQUIPMENT,"Ability", nIdx);        _AddAbility(oCreature, nAbility);     }    else    {        string sTemplate = "default_player.utc";        switch (nClass)        {            case CLASS_WARRIOR: sTemplate = "default_warrior.utc";                break;            case CLASS_ROGUE:   sTemplate = "default_rogue.utc";                break;            case CLASS_WIZARD:  sTemplate = "default_wizard.utc";                break;            case CLASS_SHAMAN:  sTemplate = "default_shaman.utc";                break;        }         LoadItemsFromTemplate(oCreature, sTemplate, TRUE);    }}

到"//Undo Class and Race selection" 區域修改
            // Note: This wipes the ability list clear            CharGen_ClearAbilityList(oChar,1);            CharGen_ClearAbilityList(oChar,2);            CharGen_ClearAbilityList(oChar,3);            CharGen_ClearAbilityList(oChar,4);
到 "//enabling proper tactics presets" 修改
            nForClass1 = GetM2DAInt(TABLE_TACTICS_USER_PRESETS, "ValidForClass1", nCurrentRow);            nForClass2 = GetM2DAInt(TABLE_TACTICS_USER_PRESETS, "ValidForClass2", nCurrentRow);            nForClass3 = GetM2DAInt(TABLE_TACTICS_USER_PRESETS, "ValidForClass3", nCurrentRow);            nForClass4 = GetM2DAInt(TABLE_TACTICS_USER_PRESETS, "ValidForClass4", nCurrentRow);            if(nCoreClass == nForClass1 || nCoreClass == nForClass2 || nCoreClass == nForClass3 || nCoreClass == nForClass4)                AddTacticPresetID(oCreature, nCurrentRow);

編輯完畢就在頂端按滑鼠右鍵選SAVE然後點選CHECKIN

然後在頂端點擊"EXPORTWITHOUT DEPENDENT RESOURCES"
----------------------------------------------------------
編輯sys_rewards_h==> under _Systems ==>_Includes
----------------------------------------------------------

對sys_rewards_h按滑鼠右鍵選擇CHECKOUT

開啟並在代碼500附近依下方代碼修改:
const int SPEC_WIZARD_SHAPESHIFTER = 5;const int SPEC_WIZARD_SPIRITHEALER = 6;const int SPEC_WIZARD_ARCANE_WARRIOR = 11;const int SPEC_WIZARD_BLOOD_MAGE     = 13const int SPEC_WARRIOR_CHAMPION = 7;const int SPEC_WARRIOR_TEMPLAR = 8;const int SPEC_WARRIOR_BERSERKER = 9;const int SPEC_WARRIOR_REAVER = 10const int SPEC_ROGUE_ASSASSIN = 12;const int SPEC_ROGUE_BARD = 14;const int SPEC_ROGUE_RANGER   = 15;const int SPEC_ROGUE_DUELIST  = 16;
編輯完畢就在頂端按滑鼠右鍵選SAVE然後點選CHECKIN

然後在頂端點擊"EXPORTWITHOUT DEPENDENTRESOURCES"


----------------------------------------------------------
編輯sys_chargen==> under_Systems
----------------------------------------------------------

對sys_chargen按滑鼠右鍵選CHECKOUT

開啟,改變這一行:

constint MAX_CLASS_INDEX = 4; // Last index of available base classes incla_base.

到specialhandling區塊並修改如下:
// special handling for aluvian                if (nQuickStart == 0 )                {                    Log_Trace(LOG_CHANNEL_CHARACTER,"sys_chargen","Setting default values for player character");                     int nRandClass = abs((GetLowResTimer()%3)+1);                     if(nRandClass == CLASS_ROGUE || nRandClass == CLASS_WARRIOR || nRandClass == CLASS_SHAMAN)                    {                        _RunChargen(RACE_HUMAN, nRandClass, oChar, BACKGROUND_NOBLE );                        WR_SetPlotFlag(PLT_GEN00PT_BACKGROUNDS, GEN_BACK_HUMAN_NOBLE, TRUE);                    }                    else // mage                    {                        _RunChargen(RACE_HUMAN, nRandClass, oChar, BACKGROUND_MAGI );                        WR_SetPlotFlag(PLT_GEN00PT_BACKGROUNDS, GEN_BACK_CIRCLE, TRUE);                    }                      Chargen_SetNumTactics(oChar);                    SetCanLevelUp(oChar,Chargen_HasPointsToSpend(oChar));                     SendEventModuleChargenDone("""");                 }
到tactics區域依下方代碼添加:
                // associate some tactics preset table                int nPresetTable;                if(GetCreatureCoreClass(oChar) == CLASS_WARRIOR)                    nPresetTable = 1// tank                else if(GetCreatureCoreClass(oChar) == CLASS_ROGUE)                    nPresetTable = 2// damage dealer                else if(GetCreatureCoreClass(oChar) == CLASS_SHAMAN)                    nPresetTable = 1// damage dealer                else // mage                    nPresetTable = 5// nuker

編輯完畢就在頂端按滑鼠右鍵選SAVE然後點選CHECKIN

然後在頂端點擊"EXPORTWITHOUT DEPENDENT RESOURCES"

------------------------------------
製作UTC模板(TEMPLATE)檔案
------------------------------------

返回Toolset請跟者下方教學:

點擊"creature"標籤(紅頭圖標)
(譯者:就在右方的PaletteWindow)

展開_Core_Creatures
在展開_DoNOT TOUCH
對default_mage按右鍵選擇duplicate如圖製作:
現在要編輯數值並給予基本武器和裝甲如圖:


Class:Shaman (from dropdown)
Name: Default Male Shaman

編輯完畢就在頂端按滑鼠右鍵選SAVE然後點選CHECKIN
然後在頂端點擊"EXPORTWITHOUT DEPENDENT RESOURCES"
=================================================================================
利用stringeditor
=================================================================================

點擊上方功能列的Tool->Stringeditor

依下方所述一一填入:
Table= module talk base
Owner = module name
TYPE = GUI
8000000 -Shaman
8000001 - Shamans
8000002 - Shamans commune with spiritsto get thier other worldly powers.
8000004 - Shaman
8000005 -Shaman Male Name
8000006 - Shaman Female Name

完成後就關閉Stringeditor


=================================================================================
全部放在一起
=================================================================================

點擊上方功能列的Tool->EXPORT

按"EXPORTWITHOUT DEPENDENT RESOURCES"

按"GENERATEMODULE XML"

按"GENERATEMANIFEST XML"

按"EXPORTTALKTABLE"


=================================================================================
清除垃圾資料(譯者:Toolset的bug)
=================================================================================

不要忽略此部份

到我的文件/bioware/dragonage/packages/core/override/toolset

將此資料夾內的東西複製到

我的文件/bioware/dragonage/addins/modulename/core/override/toolset

應該會有以下檔案:
2da_constant_h.nss
gen00pt_class_race_gend.nss
sys_chargen_h.nss
sys_rewards_h.nss
sys_chargen.nss
sys_chargen.ncs

將我的文件/bioware/dragonage/packages/core/override/toolset裡的東西全部殺掉



=================================================================================
嘗試結果
=================================================================================

開啟你的遊戲並選擇新遊戲

*小心*如果出現任何錯誤訊息都將會損害遊戲本體

點選MALE ==> HUMAN ==> SHAMAN ==>MAGI

你可以看到你的新人物

如果有任何意外發生請從頭依教學檢查是否有錯誤

請確保你沒有遺漏";" 或"{}",如果缺少會摧毀遊戲。

=================================================================================
危險焦點
=================================================================================

我的法術沒有出現在創造人物的視窗裡,求助!!

======>你沒有排序你修改過得ability檔案裡的ID行。如果ID有排序就會出現。
======>你可能沒有賦予新能力給你的新職業"5000" 在prereqability行裡面


當我要點選MALE==> HUMAN ==> SHAMAN ==> MAGI 時,我的新職業沒有出現

======>很顯然你沒有輸出你的default_shaman.utc模型
======>檢查background檔案,確保template是使用default_shaman.utc
======>重新啟動你的電腦
引用網址:https://home.gamer.com.tw/TrackBack.php?sn=628027
All rights reserved. 版權所有,保留一切權利

相關創作

同標籤作品搜尋:|Dragon Age|Toolset|

留言共 1 篇留言


一長串的文字~"~
看了好頭疼 可是又好想試試看~
大大辛苦拉

12-18 21:02

我要留言提醒:您尚未登入,請先登入再留言

喜歡★xmanx 可決定是否刪除您的留言,請勿發表違反站規文字。

追蹤私訊切換新版閱覽

作品資料夾

tyu15826大家
蓋婭薔薇—亞獸之戰已更新,面對911的威脅,貝歐等人開始聚集並團結對抗看更多我要大聲說昨天16:03


face基於日前微軟官方表示 Internet Explorer 不再支援新的網路標準,可能無法使用新的應用程式來呈現網站內容,在瀏覽器支援度及網站安全性的雙重考量下,為了讓巴友們有更好的使用體驗,巴哈姆特即將於 2019年9月2日 停止支援 Internet Explorer 瀏覽器的頁面呈現和功能。
屆時建議您使用下述瀏覽器來瀏覽巴哈姆特:
。Google Chrome(推薦)
。Mozilla Firefox
。Microsoft Edge(Windows10以上的作業系統版本才可使用)

face我們了解您不想看到廣告的心情⋯ 若您願意支持巴哈姆特永續經營,請將 gamer.com.tw 加入廣告阻擋工具的白名單中,謝謝 !【教學】