Mit diesem edit könnt ihr die texte für NPC menüs direkt via character.inc vergeben
Beispiel:
AddMenu2(MMI_TRADE , "Handel Mich an!");
dann hat dieser NPC anstatt Handel , handel mich an
oder bei menüs wo ihr garnichts eingetragen habt in textclient.inc und somit ????? oder error ingame erscheint gleich das passende dazu(deswegen hab ich es bei mir gemacht)
so könnt ihr euhc das lästige eintragen der define textclient.inc und .txt.txt sparen und das raussuche nder passenden id
project.h
unter
Code:
BOOL m_abMoverMenu[ MAX_MOVER_MENU ];
das
Code:
#ifdef __TEXT_MENU
BOOL m_abMoverMenu2[ MAX_MOVER_MENU ];
CString m_abMoverMenuText[ MAX_MOVER_MENU ];
#endif
project.cpp
unter
Code:
else if( script.Token == "AddMenuLang" )
{
script.GetToken(); // (
int nLang = script.GetNumber();
script.GetToken(); // ,
int nSubLang = script.GetNumber();
script.GetToken(); // ,
int nMMI = script.GetNumber();
script.GetToken(); // )
if( ::GetLanguage() == nLang && ::GetSubLanguage() == nSubLang )
lpCharacter->m_abMoverMenu[ nMMI ] = TRUE;
}
das
Code:
#ifdef __TEXT_MENU
else
if(script.Token == "AddMenu2" )
{
script.GetToken(); // (
int nMMI = script.GetNumber();
script.GetToken(); //text name
CString menutext = script.Token;
script.GetToken(); // )
#if __VER >= 8 //__CSC_VER8_4
if( ( GetLanguage() != LANG_TWN && GetLanguage() != LANG_HK ) || ( nMMI != MMI_BEAUTYSHOP && nMMI != MMI_BEAUTYSHOP_SKIN ) )
#else
if( GetLanguage() != LANG_TWN || nMMI != MMI_BEAUTYSHOP )
#endif //__CSC_VER8_4
lpCharacter->m_abMoverMenu[ nMMI ] = TRUE;
lpCharacter->m_abMoverMenu2[ nMMI ] = TRUE;
lpCharacter->m_abMoverMenuText[ nMMI ] = menutext;
}
#endif
unter
Code:
void CHARACTER::Clear()
{
m_nStructure = -1;
m_nEquipNum = 0;
m_dwHairMesh = 0;
m_dwHairColor = 0;
m_dwHeadMesh = 0;
m_dwMoverIdx = 0;
m_dwMusicId = 0;
ZeroMemory( m_szKey, sizeof( m_szKey ) );
ZeroMemory( m_szChar, sizeof( m_szChar ) );
ZeroMemory( m_szDialog, sizeof( m_szDialog ) );
ZeroMemory( m_szDlgQuest, sizeof( m_szDlgQuest ) );
ZeroMemory( m_abMoverMenu, sizeof( m_abMoverMenu ) );
das
Code:
#ifdef __TEXT_MENU
ZeroMemory( m_abMoverMenu2, sizeof( m_abMoverMenu2 ) );
#endif
wndworld.cpp
unter
Code:
if( 1 < nCount )
{
for( int i = 0; i < MAX_MOVER_MENU; i++ )
{
if( i == MMI_QUEST )
{
// ÀÌ Ä³¸¯ÅÍ¿¡°Ô Äù½ºÆ®°¡ ÀÖ³ª?
// Äù½ºÆ®prop¸¦ µÚÁ®¼* µ¿ÀÏ À̸§ÀÇ propÀÌ ÀÖ´ÂÁö È®ÀÎ.
// È®ÀÎ µÇ¾úÀ¸¸é ÀÏ´Ü Äù½ºÆ®´Â Á¸ÀçÇÏ´Â °Í.
// prop¿¡¼* ÇØ´ç ij¸¯ÅÍ¿¡ ÇØ´çÇÏ´Â Äù½ºÆ®¸¦ ¼öÁýÇÑ´Ù.
// ¼öÁýÀÌ ¿Ï·áµÇ¸é, ³»±â¼öÇàÇÑ Äù½ºÆ® °¹¼ö¿Í ºñ±³ÇÑ´Ù.
// ³»°¡ ÇØ´ç ij¸¯ÅÍ¿¡ ÇØ´çÇÏ´Â Äù½ºÆ®º¸´Ù ÀûÀº °¹¼öÀÌ¸é ´õ ÇÒ ¼ö ÀÖÀ¸¹Ç·Î
// Äù½ºÆ® ¸Þ´º Ȱ¼ºÈ*.
}
if( lpCharacter->m_abMoverMenu[ i ] )
{
das
Code:
#ifdef __TEXT_MENU
if( lpCharacter->m_abMoverMenu2[ i ] == FALSE )
{
#endif
unter
Code:
if( i == MMI_GUILDBANKING )
{
CGuild* pGuild = g_pPlayer->GetGuild();
if( pGuild && g_eLocal.GetState( ENABLE_GUILD_INVENTORY ) )
m_wndMenuMover.AppendMenu( 0, i, prj.GetText( TID_MMI_DIALOG + i ) );
bView = TRUE;
}
#ifdef __JEFF_11_4
else if( i == MMI_ARENA_ENTER )
{
if( g_pPlayer )
m_wndMenuMover.AppendMenu( 0, i, prj.GetText( TID_MMI_DIALOG + i ) );
bView = TRUE;
}
#endif // __JEFF_11_4
else
{
m_wndMenuMover.AppendMenu( 0, i, prj.GetText( TID_MMI_DIALOG + i ) );
bView = TRUE;
}
das
Code:
#ifdef __TEXT_MENU
}
else
{
if( i == MMI_GUILDBANKING )
{
CGuild* pGuild = g_pPlayer->GetGuild();
if( pGuild && g_eLocal.GetState( ENABLE_GUILD_INVENTORY ) )
m_wndMenuMover.AppendMenu( 0, i, lpCharacter->m_abMoverMenuText[i] );
bView = TRUE;
}
#ifdef __JEFF_11_4
else if( i == MMI_ARENA_ENTER )
{
if( g_pPlayer )
m_wndMenuMover.AppendMenu( 0, i, lpCharacter->m_abMoverMenuText[i] );
bView = TRUE;
}
#endif // __JEFF_11_4
else
{
m_wndMenuMover.AppendMenu( 0, i, lpCharacter->m_abMoverMenuText[i] );
bView = TRUE;
}
}
#endif
P.S. für Mentus & Co die meinen unnötig: Es ist für leute die kb haben die scheiß resource arbeit mit textclient zu machen und für die die das mit der ID für textclient nicht kapieren oder mal nen paar NPC's individuelle texte verpassen wollen.