lk1986
骑士
骑士
  • UID64
  • 注册日期2019-03-04
  • 最后登录2020-08-21
  • 粉丝1
  • 关注0
  • 发帖数81
  • QQ15151515
  • 铜币94枚
  • 威望396点
  • 银元0个
  • 社区居民
  • 原创写手
阅读:785回复:0

新增NPC对话

楼主#
更多 发布于:2019-03-06 09:39
失去了,所以首先在这里给大家问好的飞飞她的灵魂世界

我要你展示如何自己时代通过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”此刻“米太累了它
游客

返回顶部