嘿COM,! w2 p7 z/ b5 B7 \
NEN有点无聊和我开始思考,我写的关于如何得到从GM -喊名字一点时间NEN啧。
( ~3 @/ `# Q( S+ t: W# j后,整个看起来像这样:
. J' G& E3 l. j : ]+ E( _ \1 J! [
: Y' z( T2 J) g可我第一次补习,所以如果有批评,请说,从而提高自我。- _' I7 a7 J( C( Z5 h& X
我不知道我的代码是最优的,肯定有一个更好的解决办法,我还是C ++初学者。) I y) r2 f6 F; W9 n# [
0 p/ W Y4 g, l; U" F
所以,当你第一次打开了FuncTextCmd.cpp和搜索9 D$ X! l2 Y" \
3 ]6 |, S& L# w+ h# n" M代码: BOOL TextCmd_System( CScanner& scanner )
% v: K' k/ K5 f- i在那里,您会发现:
/ ?5 x# y6 D' i( i" d代码: { #ifdef __WORLDSERVER CHAR szString[512] = ""; CUser* pUser =(CUser*)scanner.dwValue; scanner.GetLastFull(); if( strlen( scanner.token ) >= 512 ) return TRUE; strcpy( szString, scanner.token ); StringTrimRight( szString ); g_DPCoreClient.SendSystem( szString ); #endif // __WORLDSERVER return TRUE; }
& |( j& |( Q* S6 h$ Z现在我们引入一个新的变量,我只需调用szName的# V3 r. Q/ ?( G0 c1 j
那么整个事情看起来像这样:
8 |" f$ C9 H7 R7 W, g& P. s/ z代码: { #ifdef __WORLDSERVER CHAR szString[512] = ""; CHARszName[512] = "["; CUser* pUser =(CUser*)scanner.dwValue; scanner.GetLastFull(); if( strlen( scanner.token ) >= 512 ) return TRUE; strcpy( szString, scanner.token ); StringTrimRight( szString ); g_DPCoreClient.SendSystem( szString ); #endif // __WORLDSERVER return TRUE; } 4 U A7 h( J8 c4 U; A- i
变量我们也等于“[”拯救我们以后的工作XD* T' A. M. N: O/ o p
( R) q/ G0 b4 e! C& o
然后,我们明确了scanner.GetLastFull测试()源;在g_DPCoreClient.SendSystem(szString)。$ ? M9 l3 X* M
7 D5 z) L1 [$ N# v9 H$ D) Q+ J
整个事情是这样的:
w$ |+ }8 S) y' Y代码: { #ifdef __WORLDSERVER CHAR szString[512] = ""; CHAR szName[512] = "["; CUser* pUser =(CUser*)scanner.dwValue; #endif // __WORLDSERVER return TRUE; }
: E3 z4 g# S) G9 C' n并提出了下列:& _) w( _6 [1 ?. x8 n) N) H3 c
代码: { #ifdef __WORLDSERVER CHAR szString[512] = ""; CHAR szName[512] = "["; CUser* pUser =(CUser*)scanner.dwValue; strcat( szName, pUser->GetName()); strcat( szName, "]: "); scanner.GetLastFull(); if( strlen( scanner.token ) >= 512 ) return TRUE; strcpy( szString, scanner.token ); StringTrimRight( szString ); strcat( szName, szString ); g_DPCoreClient.SendSystem( szName ); #endif // __WORLDSERVER return TRUE; }
, p9 }( A3 L& f9 S' ^9 t/ N现在,通用汽车应该喊这样的:6 d: g/ u, L$ b* M+ t
代码: [GM Information][NAME] TEXT $ i" ?) h6 ^" r
现在,如果你仍然希望出现这种情况,例如有管理员将需要插入她的下列内容:
2 N6 f6 @% f5 F$ J/ s* {, q' x代码: { #ifdef __WORLDSERVER CHAR szString[512] = ""; CHAR szName[512] = "["; CUser* pUser =(CUser*)scanner.dwValue; //FüR ADMIN if(pUser->m_dwAuthorization ==AUTH_ADMINISTRATOR) strcat( szName,"Admin][" ); strcat( szName, "TestGM][" ); strcat( szName, pUser->GetName()); strcat( szName, "]: "); scanner.GetLastFull(); if( strlen( scanner.token ) >= 512 ) return TRUE; strcpy( szString, scanner.token ); StringTrimRight( szString ); strcat( szName, szString ); g_DPCoreClient.SendSystem( szName ); #endif // __WORLDSERVER return TRUE; }
0 j: X8 z$ n9 A6 j6 ~; m' E8 e如果你想不仅为管理这一点,你必须始终# J! \; }( r6 I$ E% y
代码: else if(pUser->m_dwAuthorization == AUTHORIZATION) strcat( szName, "Admin][" );
* q" ] k+ B3 U) G9 B补充。. j: C5 S) M0 S# l0 I
5 X7 H& q$ c% y8 V \! N% \/ o, y* b: |7 P1 B7 o
下面是与使用/ SYS解决不同的授权清单:' N+ e' Z/ v% g1 L( u
代码: AUTH_GAMEMASTER1 //Gamemaster lvl 1 AUTH_GAMEMASTER2 //Gamemaster lvl 2 AUTH_GAMEMASTER3 //Gamemaster lvl 3 AUTH_ADMINISTRATOR //Administrator
7 D) z( ~+ X' ~4 i+ Q希望你喜欢指导,批评是欢迎的。
% s& _# m. W, b5 B& T% A1 a3 X, [0 ~
制作所Pumbaaa 6 Z! C$ b( ]5 O6 M' n$ h/ W
|