Ich will euch heute mal zeigen wie man eigene NPC Dialoge via WorldDialog.dll + WorldDialog.txt Addet in paar einfach Schritten, damit es auch 100% jeder Kapiert.
Als erstes brauchen wie folgende daten:
- WorldDialog.txt
- character.txt.txt
- character.inc
- WorldDialog.dll (Besser: Source)
- Mathe Kenntnisse
So dann fangen wir mal an
Als erstes öffnen wir mal die "character.inc" dann sieht das am anfang so aus:
PHP Code:
//이 파일 수정 시에 절대 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
PHP Code:
MaFi_TUT_CRASY
{
setting
{
SetOutput( false );
AddMenu( MMI_DIALOG );
SetImage
(
IDS_CHARACTER_INC_000864
);
m_szDialog= "MaFl_Herold.txt";
}
SetName
(
IDS_CHARACTER_INC_000865
);
}
Wichtig ist im moment nur:
Name = "MaFi_TUT_CRASY"
Figur = "IDS_CHARACTER_INC_000864" (könnt z.b. auch ihn als Aibatt hin haun)
IG Name = "IDS_CHARACTER_INC_000865"
als nächstes addet ihr in der "Character.txt.txt" folgendes ganz unten:
PHP Code:
IDS_CHARACTER_INC_000864 Crasy Tut NPC!
IDS_CHARACTER_INC_000865 char_Bill.tga
Und zwar öffnet ihr nun mal die Source, btw nicht nur ihrgend eine Source sondern die "WorldDialog71.sln" diese findet ihr im Ordner "WORLDDIALOG" in der Source, wenn ihr dies getan habt öffnet ihr an der seite (bei mir rechts) die 2 dateien "NpcScript.cpp" und die dazugehörende ".h" datei, als erstes kommen wir zu der "NpcScript.cpp" datei wenn ihr die offen habt steht am anfang erstmal nur sowas:
PHP Code:
#include "stdafx.h"
#include "NpcScript.h"
/////////////////////////////////////////////////////////////////////////////
// extern functions
/////////////////////////////////////////////////////////////////////////////
extern void InitFunctions();
extern PFN GetFunction( const char* szFunction );
/////////////////////////////////////////////////////////////////////////////
// global variable
usw..
Geht nun in dieser datei ans ende bis zu "//Script End" addet vor dem "//Script End" folgenden code:
PHP Code:
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();
}
PHP Code:
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();
PHP Code:
Hallo, mein Name ist: Crasy
Wie lautet dein Name?
Okay, jetzt geht ihr auf den text "Hallo, mein Name ist: Crasy" oder einfach euern 1. Text, wenn ihr das habt macht ihr mal "STRG + G" dann bekomt ihr eine Zeile angezeigt, in meinem Fall sind das die "1251" und "1252", jetzt gehen wir mit diesen 2 zeilen wieder zurück zu unserer "NpcScript.cpp" und da seht ihr, das ich 2x "Say( ZEILE)" addet habe, diese ersetzt ihr nun durch:
PHP Code:
Say(1251) und Say(1252)
Hier noch paar Codes, für die, die nicht auf den lw text stehen:
PHP Code:
#b = Ihr schreibt Fett
#FarbCode = Farbig schreiben, format: Hex
#i = Euer Text ist unterstrichen
PHP Code:
SetScriptTimer( 15 );
zu
SetScriptTimer( 10 );
Wer Probleme o. Fragen hat, kann die hier o. per PN stellen.
Ich werde bald auch ein Tut schreiben wo wir "Speak, AddKey" behandeln, bin im moment zu Müde dafür
Öhm ja, hier noch Credits:
Found + Geschrieben von: Crasy 100%
Wachhalten + Unterhaltung: Cross, danke auch dafür
So, das wars erstmal bis später.
Mfg euer Crasy