So, Hallo erstmal an alle, die hier in der Flyff welt ihre Seele verloren haben :)
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:
dort scrollen wir mal ganz runter, und adden einen neuen NPC mit diesem Code:
So, das "MaFi_Herold.txt" könnt ihr erstmal ignorieren, das zeig ich euch in meinem nächsten tut.
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:
Wichtig ist, das die ID hinter "INC_" genau überein stimmt mit der ID in der Character.inc, so nun habt ihr eigentlich schon die Hälfte geschafft, aber zu hauptteil kommen wir erst jetzt.
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:
Das ist für uns aber im moment nicht wichtig.
Geht nun in dieser datei ans ende bis zu "//Script End" addet vor dem "//Script End" folgenden code:
So, dort seht ihr "Say( ZEILE );" dies ist momentan noch nicht wichtig, dazu kommen wir später, nun ist nur wichtig das ihr in der "NpcScript.h" datei folgendes addet ganz unten vor dem "};":
so nun öffnet ihr mal die "WorldDialog.txt" datei und addet ganz unten das, was euer NPC sagen soll, ich nehme nun mal einfach "Hallo, mein Name ist: Crasy" und als 2. adde ich darunter "Wie lautet dein Name?" dann sollte das einfach mal so aussehen:
ihr dürft es nicht hinter einander schreiben!
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:
So, ihr habt es eigentlich geschafft, alles speichern und die WorldDialog Compilen, ihr den Res ordner ziehen und fertig, schon kann euer NPC Reden :)
Hier noch paar Codes, für die, die nicht auf den lw text stehen:
Wer noch, will, das der NPC den text wo ihr wollt öfters Say't dann müsst ihr
ändern, und der NPC ist schneller :)
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 :D
Ö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 :)
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 :D
Ö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 :)