黎席斯之神
2级·斗气风暴
2级·斗气风暴
  • UID1122
  • 注册日期2011-09-01
  • 最后登录2013-12-13
  • 粉丝3
  • 关注0
  • 发帖数76
  • QQ
  • 铜币57枚
  • 威望0点
  • 银元65个
阅读:2140回复:3

关于该怎么增加自创NPC对话内容和选项?

楼主#
更多 发布于:2011-11-12 20:47

WorldDialog.txt
这个文件是所有NPC所发言的

但是一定有某一个文件调用这个文档里的数据的!

这样一个NPC的发言的那段话在第几行系统怎么知道的??




我自己创建了一个NPC  想建立他该怎么发言,,, 和有几个选项! 我该如何?

望高手指点!
shevechco
4级·生命之泉
4级·生命之泉
  • UID17
  • 注册日期2011-05-19
  • 最后登录2018-03-28
  • 粉丝4
  • 关注0
  • 发帖数308
  • QQ
  • 铜币274枚
  • 威望0点
  • 银元433个
沙发#
发布于:2011-11-12 21:18
WorldDialog.dll  必须要源码才能添加这样的对话
黎席斯之神
2级·斗气风暴
2级·斗气风暴
  • UID1122
  • 注册日期2011-09-01
  • 最后登录2013-12-13
  • 粉丝3
  • 关注0
  • 发帖数76
  • QQ
  • 铜币57枚
  • 威望0点
  • 银元65个
板凳#
发布于:2011-11-12 23:46
高手做个教程吧= =
shevechco
4级·生命之泉
4级·生命之泉
  • UID17
  • 注册日期2011-05-19
  • 最后登录2018-03-28
  • 粉丝4
  • 关注0
  • 发帖数308
  • QQ
  • 铜币274枚
  • 威望0点
  • 银元433个
地板#
发布于:2011-11-13 18:31
黎席斯之神 发表于 2011-11-12 23:46
高手做个教程吧= =


这里有个教程,外语翻译过来的,你自己揣摩下吧,我感觉加这个没用的对话没必要,官方升级后,你还得腾出位置给新的对话。


失去了,所以首先在这里给大家问好的飞飞她的灵魂世界
我要你展示如何自己时代通过WorldDialog.dll+在几个简单的步骤WorldDialog.txt Addet今天全国对话,以确保它100%都得到了它。
首先做如下数据:
- WorldDialog.txt
- Character.txt.txt
- Character.inc
- WorldDialog.dll(更好:源)
- 数学技能
所以后来我们就开始

首先,我们打开了“character.inc”,然后在开始看起来像这样:
PHP代码:
//이 파일 수정 시에 절대 EditPlus를 사용하시지 마십시요.
//유니코드 부분에 충돌이 있습니다.
//메모장을 사용하여 주십시요.
/*
국가별 NPC 출력 설정 방법
SetLang( 국가 디파인 )
SetLang( 국가 디파인, 국가 서브 디파인 )
SetOutput( truth )
setLang으로 국가 설정. SetOutput으로 설정된 국가에만 NPC를 출력 할지(ture), 출력 안할지(false) 설정.
기본값은 truth임
*/
/*
국가별 MMI 출력 설정 방법
AddMenuLang( LANG_KOR, 0, MMI_XXXX )
가운데 0은 SUB LANG
여러국가에서 나와야 하는경우엔 여러개 써야함
AddVendorSlotLang
    설명    : AddVendorSlot( 0, IDS_CHARACTER_INC_000022 );의 확장입니다.
    사용법    : AddVendorSlotLang( LANG_JAP, 0, 0, IDS_CHARACTER_INC_000022 );
    // 뒤 2개 인자는 AddVendorSlot과 동일 하고 앞의 두개는
    // 국가 디파인, 국가 서브 디파인입니다.
... usw  
我们完全滚动下来,并ADDEN与此代码的新NPC:
PHP代码:
MaFi_TUT_CRASY
{
    setting
    {
        SetOutput( false );
        AddMenu( MMI_DIALOG );
        SetImage
        (            
            IDS_CHARACTER_INC_000864
        );
        m_szDialog= \"MaFl_Herold.txt\";
    }
    SetName
    (
        IDS_CHARACTER_INC_000865
    );
}  
所以,这“MaFi_Herold.txt”你可以忽略第一个,这我在我的指点下你。
它是目前重要的是:
名称=“MaFi_TUT_CRASY”
图=“IDS_CHARACTER_INC_000864”(例如,你也可以追溯到Aibatt Haun说道他)
IG名称=“IDS_CHARACTER_INC_000865”
addet她下面最底层的“Character.txt.txt”下:
PHP代码:
IDS_CHARACTER_INC_000864    Crasy Tut NPC!
IDS_CHARACTER_INC_000865    char_Bill.tga  
重要的是背后的“Inc_”ID匹配完全匹配在Character.inc ID,所以现在你究竟做了前半程,但即使我们有些人现在才。
它恰好是开源的,顺便说一句ihrgend不仅是源,但“WorldDialog71.sln”这是它打开文件夹“世界对话”的来源,如果你做了他们的这一页(在我的右边) 2文件“NpcScript.cpp”和相关的“。h”的文件,首先我们来到了“NpcScript.cpp”文件,如果你有只用类似的开头打开:
PHP代码:
#include \"stdafx.h\"
#include \"NpcScript.h\"
/////////////////////////////////////////////////////////////////////////////
// extern functions
/////////////////////////////////////////////////////////////////////////////
extern        void InitFunctions();
extern        PFN GetFunction( const char* szFunction );
/////////////////////////////////////////////////////////////////////////////
// global variable
usw..  
这对于我们,但目前并不重要。
现在就去这个以“//结束脚本”前的“//结束脚本”下面的代码addet文件的末尾:
PHP代码:
void CNpcScript::mafl_Crasy_0()
{
    Speak( NpcId(), 1267 );
    SetScriptTimer( 15 );
}
void CNpcScript::mafl_Crasy_1()
{
}
void CNpcScript::mafl_Crasy_2()
{
    AddKey( 9 );
    AddKey( 10 );
}
void CNpcScript::mafl_Crasy_3()
{
}
void CNpcScript::mafl_Crasy_4()
{
    Say( ZEILE );
}
void CNpcScript::mafl_Crasy_5()
{
            
}
void CNpcScript::mafl_Crasy_6()
{
}
void CNpcScript::mafl_Crasy_7()
{
}
void CNpcScript::mafl_Crasy_8()
{
}
void CNpcScript::mafl_Crasy_9()
{
    Say( ZEILE );
}
void CNpcScript::mafl_Crasy_10()
{
    Speak( NpcId(), 1268 );
    Exit();
}  
所以,你看“说(ROW),”这不是在重要的时刻,我们将在以后,现在,它是在“NpcScript.h”唯一重要的文件在以下addet底前\"};\":
PHP代码:
    void mafl_Crasy_0();
    void mafl_Crasy_1();
    void mafl_Crasy_2();
    void mafl_Crasy_3();
    void mafl_Crasy_4();
    void mafl_Crasy_5();
    void mafl_Crasy_6();
    void mafl_Crasy_7();
    void mafl_Crasy_8();
    void mafl_Crasy_9();
    void mafl_Crasy_10();  
所以现在它打开了“WorldDialog.txt”文件和addet了什么是说你的NPC的底部,我需要时间现在是简单的“你好,我的名字是:Crasy”,第二我阿迪包括“你叫什么名字?”那么此时应该简单地看是这样的:
PHP代码:
你好,我的名字是:Crasy
你叫什么名字?
你不能把它写在一排!
好了,现在她的文字“你好,我的名字是:Crasy”或干脆第一euern文本,如果你没有它使得即使按“Ctrl+ G”,那么她在我的情况bekomt行表示,这些都是“1251”和“1252”,现在我们一起去这两行回到我们的“NpcScript.cpp “正如你看到的,我2X”我说(ROW)addet“,你现在取代它们:
PHP代码:
Say(1251) und Say(1252)
因此,你实际上已经成功地保存所有的世界和对话编译,吸引她的res文件夹,并做了,你已经可以说全国人民代表大会
这里是为那些谁没有一些文字上的DR代码:
PHP代码:
#b = Ihr schreibt Fett
#FarbCode = Farbig schreiben, format: Hex
#i = Euer Text ist unterstrichen
这些谁仍然希望全国人大您要Say\'t文字往往则需要
PHP代码:
SetScriptTimer( 15 );
zu
SetScriptTimer( 10 );  

变化和全国人民代表大会快
如果你有问题或疑问,可通过下午在这里提供O.。
我会很快写了难道我们对待“说吧,AddKey”此刻“米太累了它
嗯,是的,仍然学分:
+发现撰文:Crasy100%
保持活着+娱乐:十字架,也感谢您
嗯,这是第一次了以后。
制造你的Crasy
游客

返回顶部