?? linecommand.cpp
字號:
case LC_BBS_OFF:
{
ChatMgr.SetActiveBBS(false);
::AddCurrentStatusMessage(FONT_COLOR_SOLID_YELLOW, lan->OutputMessage(0, 514));
break;
}
//<< 031021 kyo
case LC_RAID_START:
{ //< CSD-040310
#ifdef _DEBUG
CallServer(CMD_MONSTER_RAID_START);
#endif
break;
} //> CSD-040310
case LC_RAID_END:
{ //< CSD-040310
#ifdef _DEBUG
CallServer(CMD_MONSTER_RAID_END);
#endif
break;
} //> CSD-040310
}
return 1;
}
lc = &LC[++c];
}
return 0;
}
void SendTotalMapConnections( void )
{
// t_packet p;
// p.h.header.type = CMD_TOTAL_MAP_CONNECTIONS;
// p.h.header.size = 0;
// QueuePacket( &p, 1 );
}
void SendTotalConnections( void )
{
// t_packet p;
// p.h.header.type = CMD_TOTAL_CONNECTIONS;
// p.h.header.size = 0;
// QueuePacket( &p, 1 );
}
void RecvTotalMapConnections( int no )
{
AddCurrentStatusMessage( 255,255,255, lan->OutputMessage(3,53), no );//010215 lsw
}
void RecvTotalConnections( int no )
{
AddCurrentStatusMessage( 255,170,170, lan->OutputMessage(3,54), no );//010215 lsw
}
void LC_SendInputParty( char *name ) // 0929 YGI
{
LPCHARACTER target = ExistHe( name );
if( !target ) return;
for( int i=0; i<6; i++ )
{
if( !SCharacterData.party[i].m_Name[0] ) break;
}
if( i == 6 ) return;
SetMouseCh( target );
SendInputParty( PARTY, i, &mouse_ch);
memset( &mouse_ch, 0, sizeof( CharacterParty ) );
}
void SendTameCommand(int command, char* s)
{ //< CSD-031106
char* tok = strtok(s, " ");
if (tok == NULL)
{
switch (command)
{
case LC_TAME_STOP:
{
AddCurrentStatusMessage(100, 100, 255, lan->OutputMessage(3, 55));
break;
}
case LC_TAME_ATTACK:
{
AddCurrentStatusMessage(100, 100, 255, lan->OutputMessage(3, 56));
break;
}
case LC_TAME_FOLLOWME:
{
AddCurrentStatusMessage(100, 100, 255, lan->OutputMessage(3, 57));
break;
}
case LC_TAME_NAME:
{
AddCurrentStatusMessage(100, 100, 255, lan->OutputMessage(3, 58));
break;
}
}
return;
}
char mybaby[FILENAME_MAX];
strcpy(mybaby, tok);
tok = strtok(NULL, " \n");
char toname[FILENAME_MAX];
if (tok == NULL)
{
toname[0] = 0;
}
else
{
strcpy(toname, tok);
}
if (toname[0] == 0)
{
switch (command)
{
/*
case LC_TAME_ATTACK:
{
AddCurrentStatusMessage(100, 100, 255, lan->OutputMessage(3, 59));
return;
}
*/
case LC_TAME_NAME:
{
AddCurrentStatusMessage(100, 100, 255, lan->OutputMessage(3, 60));
return;
}
}
}
t_packet p;
p.h.header.type = CMD_TAME_COMMAND;
p.u.tame_command.cmd = command;
mybaby[19] = 0;
EatRearWhiteChar(mybaby);
strcpy(p.u.tame_command.mybaby, mybaby);
EatRearWhiteChar( toname );
toname[19] = 0;
strcpy(p.u.tame_command.toname, toname);
p.h.header.size= sizeof(t_tame_command);
QueuePacket(&p, 1);
} //> CSD-031106
void RecvTameCommandResult( int result )
{
switch( result )
{
case TAME_FAIL_CHANGE_NAME : AddCurrentStatusMessage( 214,100,122, lan->OutputMessage(3,74)); break;//010215 lsw
case TAME_NO_CHAR : AddCurrentStatusMessage( 214,100,122,lan->OutputMessage(3,75) ); break;
case TAME_NO_NAME_CHAR : AddCurrentStatusMessage( 214,100,122, lan->OutputMessage(3,76)); break;
case TAME_FOLLOW : AddCurrentStatusMessage( 114,100,122, lan->OutputMessage(3,77)); break;
case TAME_STOP : AddCurrentStatusMessage( 114,100,122, lan->OutputMessage(3,78)); break;
case TAME_ATTACK : AddCurrentStatusMessage( 114,100,122, lan->OutputMessage(3,79)); break;
case TAME_SUCCESS_CHANGE_NAME : AddCurrentStatusMessage( 114,100,122, lan->OutputMessage(3,80)); break;//010215 lsw
}
}
void RecvTameNameChange( t_tame_name_change *p )
{
LPCHARACTER ch = FindCharacter( &g_CharacterList, p->id);
if( ch == NULL ) return;
strcpy( ch->name, p->name );
}
void RecvHostName( tame_host_name *p )
{
LPCHARACTER ch = FindCharacter( &g_CharacterList, p->id);
if( ch == NULL ) return;
strcpy( ch->HostName, p->hostname );
}
// Tamming 場..
void RecvHostEnd( tame_end *p )
{
LPCHARACTER ch = FindCharacter( &g_CharacterList, p->id);
if( ch == NULL ) return;
ch->HostName[0] = 0;
}
void SendBBS( char *bbs)
{
t_packet p;
int len;
if( bbs == NULL ) return;
len = strlen( bbs );
if( len == 0 ) return;
if( len >= MAX_PATH-1 ) return;
p.h.header.type = CMD_BBS;
strcpy( p.u.server_bbs.bbs, bbs );
p.h.header.size = sizeof( t_server_bbs ) - MAX_PATH + len;
QueuePacket( &p, 1 );
}
void SendBBSAll( char *bbs)
{
t_packet p;
int len;
if( bbs == NULL ) return;
len = strlen( bbs );
if( len == 0 ) return;
if( len >= MAX_MSG-1 ) return;
p.h.header.type = CMD_SV_SEND_MESSAGE_ALL;
strcpy( p.u.kein.default_msg, bbs );
p.h.header.size = len;
QueuePacket( &p, 1 );
}
////////////// 0810 lhs 涅膠飄儈 檔框富 //////////////
void RecvBbs_quest( char *bbs )
{
AddCurrentStatusMessage( 200,200,0, lan->OutputMessage(3,132) );//010215 lsw
AddCurrentStatusMessage( 255,255,0, bbs );
}
////////////////////////////////////////////////////////////////////////////////
// CSmallTipCount member functions
CSmallTipCount g_SmallTipCount;
int LoadSmallTipsPage()
{
FILE *fp;
fp = Fopen( "./data/small_tips.txt", "rt" );
if( !fp ) return 0;
char str[512];
while( fgets( str, 512, fp ) )
{
if( str[0] == ':' ) break;
char *token;
token = strtok( str, "\t\n" );
if( !token ) continue;
int number = atoi( token );
if( !number ) continue;
token = strtok( NULL, "\t\n" );
if( !token ) continue;
while( token )
{
g_SmallTipCount.AddData( number, token );
token = strtok( NULL, "\t\n" );
}
}
fclose( fp );
return 1;
}
int CSmallTipCount::AddData( int number, char *str )
{
CSmallTipCount* target = this;
while( target->next ) target = target->next;
if( m_nPage == 0 )
{
strncpy( m_szKey, str, 49 ); // 020925 YGI
m_szKey[49] = 0; // 020925 YGI
m_nPage = number;
return 1;
}
else
{
target->next = new CSmallTipCount;
strcpy( target->next->m_szKey, str );
target->next->m_nPage = number;
return 1;
}
}
int CSmallTipCount::GetPage( char *key )
{
if( !m_nPage ) return 0;
CSmallTipCount *target = this;
while( target )
{
if( strcmp( target->m_szKey, key ) == 0 ) return target->m_nPage;
target = target->next;
}
return 0;
}
////////////////////////////////////////////////////////////////////////////////
void CallViewSmallTips( char *txt )
{
if( IsDead( Hero ) ) return;
char *token = strtok( txt, " \t\n" );
if( !token ) token = txt;
else
{
token = strtok( NULL, " \t\n" );
if( !token ) token = txt;
}
static first = true;
if( first )
{
LoadSmallTipsPage();
first = false;
}
int t = 0;
if( *token )
t = g_SmallTipCount.GetPage( EatRearWhiteChar( token ) );
CloseAllMenu();
SMenu[MN_SMALL_TIPS].key = t;
bSmallTips = true;
}
CTextCmd *g_lpTextCmd;
CEmotionCmd *g_lpEmotionCmd;
void SendLcEmotion( char *txt )
{
return;
}
///////////////////////////////////////////////////////////////
// CTextCmd member fuction
void CTextCmd::AddText(char *txt)
{
if( !m_txt )
{
m_txt = new char[strlen(txt)+1];
strcpy( m_txt, txt );
return;
}
for( CTextCmd *temp=this; temp->next; temp=temp->next ) ;
CTextCmd *data;
data = new CTextCmd;
data->m_txt = new char[strlen(txt)+1];
strcpy( data->m_txt, txt );
temp->next = data;
return;
}
char *CTextCmd::GetLastText()
{
for( CTextCmd *temp=this; temp->next; temp=temp->next ) ;
return temp->m_txt;
}
char *CTextCmd::GetFirstText()
{
return m_txt;
}
///////////////////////////////////////////////////////////////
// CEmotionCmd member function
void CEmotionCmd::AddCmd( char *cmd )
{
if( !m_Cmd )
{
m_Cmd = new char[strlen(cmd)+1];
strcpy( m_Cmd, cmd );
return;
}
for( CEmotionCmd *temp=this; temp->next; temp=temp->next ) ;
CEmotionCmd *data;
data = new CEmotionCmd;
data->m_Cmd = new char[strlen(cmd)+1];
strcpy( data->m_Cmd, cmd );
temp->next = data;
return;
}
int CEmotionCmd::GetCmd( char *txt )
{
CEmotionCmd *temp = this;
int count = 0;
while( temp )
{
if( strcmp( temp->m_Cmd, txt ) == 0 )
return count;
count ++;
temp = temp->next;
}
return -1;
}
///////////////////////////////////////////////////////////////
int LoadEmotionCmd( CEmotionCmd *lpEmotionCmd )
{
FILE *fp;
fp = Fopen( "./data/emotion.txt", "rt" );
if( !fp ) return 0;
char temp[256];
while( fgets( temp, 256, fp ) )
{
if( temp[0] == ';' ) continue;
lpEmotionCmd->AddCmd( EatRearWhiteChar(temp) );
}
fclose( fp );
return 1;
}
void SendExitGuild()
{
if (!CheckGuildCode(Hero->GetGuildCode()))
{ //< CSD-030324
return;
} //> CSD-030324
if( CheckGuildMaster( Hero ) ) return; // 辨付綽 竅瘤 給竅霸..
CallServer( CMD_EXIT_GUILD_SELF );
}
void ViewNk( char *name )
{
EatRearWhiteChar( name );
name = EatRearWhiteChar( name );
LPCHARACTER target = ExistHe( name );
if( !target ) target = Hero;
Kein_PutMessage( KM_INFO, "[%s] Vysues NK:%3d", target->name, IsNK( target, N_VYSEUS ));
Kein_PutMessage( KM_INFO, "[%s] Zypern NK:%3d", target->name, IsNK( target, N_ZYPERN ));
Kein_PutMessage( KM_INFO, "[%s] Yilse NK:%3d", target->name, IsNK( target, N_YILSE ));
}
extern int IsDead( LPCHARACTER ch );
void RecvGuildChatData( t_packet *p )
{
if( IsDead( Hero ) ) return;
static first = 1;
if( first && !g_Menu_Variable.m_bGuildChatOn )
{
// 辨靛盔撈 皋矯瘤甫 焊陳嚼聰促. 辨靛 盲潑 疙飛絹甫 撈儈竅技夸 /#, /辨靛盲潑難扁, /辨靛盲潑摻扁
Kein_PutMessage( KM_INFO, kein_GetMenuString( 70 ) );
first = 0;
}
char *name = p->u.kein.guild_chat.name;
char *msg = p->u.kein.guild_chat.msg;
ChatMgr.AddString( name, msg, CHATTYPE_GUILD );//021001 lsw
}
void CheckShowMeDual()
{
if( EquipItemAttr[WT_NECK].item_no == 10175 )
{
CallServer( CMD_SHOW_ME_DUAL_CHAR );
}
else
{
CItem *item = ItemUnit( 10175 );
if( item )
Kein_PutMessage( KM_FAIL, kein_GetMenuString( 78 ), item->GetItemHanName() );
}
}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -