| 嘿COM,0 X  S1 R- c3 Z6 s% h) KNEN有点无聊和我开始思考,我写的关于如何得到从GM -喊名字一点时间NEN啧。* ~9 }5 a* c) v
 后,整个看起来像这样:
 1 c! Y9 h1 h/ E7 b- w9 F4 c/ F/ K
 5 F" p3 M, o. P: _% I% K( e
 # N" x* P$ P% F可我第一次补习,所以如果有批评,请说,从而提高自我。
 * }* S  L! x; ]  z5 O1 s% f* y我不知道我的代码是最优的,肯定有一个更好的解决办法,我还是C ++初学者。
 # r6 C6 c$ k6 v) N! K3 d3 i5 s  M2 j4 `
 所以,当你第一次打开了FuncTextCmd.cpp和搜索- `4 M/ q; C. ^+ e" v
 ) X7 j! }& ]/ U" ^
 代码:
 BOOL TextCmd_System( CScanner& scanner ) * ^. W# H, @% r2 u. P
 在那里,您会发现:% Y' ^2 f" @5 w7 k* A2 Q代码:
   { #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; } 5 t( G  F3 t8 _3 g6 i
 现在我们引入一个新的变量,我只需调用szName的( g. Z5 P% C4 w; X. ]& h那么整个事情看起来像这样:) x; j: E+ N( Z. C
 代码:
   { #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; } ( V  i9 S6 p! h- x9 l. u
 变量我们也等于“[”拯救我们以后的工作XD$ m: M+ g0 J. T; K7 A7 e" [9 u! G: _
 / z. k3 v/ b; ^7 {然后,我们明确了scanner.GetLastFull测试()源;在g_DPCoreClient.SendSystem(szString)。
 2 m0 I, Z  j% |
 + i( [6 \) n* l# v整个事情是这样的:
 , ?5 K! C; Z- V3 y7 p代码:
 { #ifdef __WORLDSERVER         CHAR szString[512] = "";            CHAR szName[512] = "[";           CUser* pUser   =(CUser*)scanner.dwValue;       #endif  // __WORLDSERVER         return TRUE; }% [) n& t: S6 i* {2 g6 P 
 并提出了下列:* r8 B" b1 t. 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; } / i$ X, G5 k- Q$ B. Q1 \
 现在,通用汽车应该喊这样的:4 _. @$ u, m* P9 _8 g2 ~代码:
 [GM Information][NAME] TEXT 0 h6 v. i" C6 E" f) n
 现在,如果你仍然希望出现这种情况,例如有管理员将需要插入她的下列内容:3 v5 o: F3 c& Z. |' t代码:
 { #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; } + W' P! r/ r; L# R. V2 R0 i
 如果你想不仅为管理这一点,你必须始终2 F0 V2 S7 q1 s/ L' x" r  D4 k4 K代码:
         else if(pUser->m_dwAuthorization == AUTHORIZATION)                strcat( szName, "Admin][" );4 T. C) h! g/ \$ d6 A: L- u6 s$ |- j& [ 
 补充。@" s; |$ b1 A+ x- P. _4 Q! ?. |7 n% T; z5 z
 
 # Q+ O( L4 ]8 j- s/ r# p/ q& a; v. t下面是与使用/ SYS解决不同的授权清单:: Z5 D; M. O, K$ U) R
 代码:
 AUTH_GAMEMASTER1    //Gamemaster lvl 1 AUTH_GAMEMASTER2    //Gamemaster lvl 2 AUTH_GAMEMASTER3    //Gamemaster lvl 3 AUTH_ADMINISTRATOR  //Administrator+ n) v2 v2 c% L; G; d# _* P  V 
 希望你喜欢指导,批评是欢迎的。' H2 `8 t5 F1 M; u' p* C0 e( p0 ^7 d/ H. j; L9 r( g( M2 J9 z6 C2 O3 N/ l% O( h
 制作所Pumbaaa
 
 |