|
嘿COM,
+ x9 h$ e' ? {5 e @- j! TNEN有点无聊和我开始思考,我写的关于如何得到从GM -喊名字一点时间NEN啧。
* ~# m/ l/ R# m7 r- V' @后,整个看起来像这样:3 u8 p+ N! N2 @0 k" @
( P9 N! u$ I$ j) u
6 `6 {% Z& y- s) O4 y2 U' M可我第一次补习,所以如果有批评,请说,从而提高自我。
! Z8 m4 t7 o1 Y/ h8 D0 j7 q2 a我不知道我的代码是最优的,肯定有一个更好的解决办法,我还是C ++初学者。
- [+ _7 P. }3 {& H4 w1 X
5 i; e0 C* p* `% P7 Q所以,当你第一次打开了FuncTextCmd.cpp和搜索
. K" w, ?. Z# U% }
! Z6 e9 ?+ _7 [5 r) ~9 [6 l代码: BOOL TextCmd_System( CScanner& scanner )
5 E. {: b. ?8 j% q0 F在那里,您会发现:6 w6 Z3 S! L9 ?
代码: { #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; } : B& P. _' s4 o5 T5 C, [
现在我们引入一个新的变量,我只需调用szName的( A, P/ {( V8 Z9 G4 ]- e5 u
那么整个事情看起来像这样:1 Z+ s' m" W. r# y7 l0 x* H
代码: { #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; }
+ M4 {( y! q: ]8 Q5 K& c6 l变量我们也等于“[”拯救我们以后的工作XD- N( N8 T/ F: l0 G
5 K) r6 a$ _% I G, o( O0 ~
然后,我们明确了scanner.GetLastFull测试()源;在g_DPCoreClient.SendSystem(szString)。
* [& ^5 q8 U9 L) b( d6 |6 |3 s# s9 v0 ?
整个事情是这样的:
8 p% w& X4 c, h0 e7 }- a代码: { #ifdef __WORLDSERVER CHAR szString[512] = ""; CHAR szName[512] = "["; CUser* pUser =(CUser*)scanner.dwValue; #endif // __WORLDSERVER return TRUE; } , v; N8 f# I8 p3 x9 P" ]0 _4 s. `
并提出了下列:! Z2 g3 A: I* @
代码: { #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; }
3 c6 K/ f% C; Y现在,通用汽车应该喊这样的:
$ g) Q6 d4 ?! D代码: [GM Information][NAME] TEXT 2 o' q! @- `8 O$ c$ T3 {2 H
现在,如果你仍然希望出现这种情况,例如有管理员将需要插入她的下列内容:
/ P2 u; S* y6 V0 S9 \9 |代码: { #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; }
$ D5 ~" v z/ P( F* M# G: K如果你想不仅为管理这一点,你必须始终
9 N7 @; I8 q+ q: R' X2 f/ P代码: else if(pUser->m_dwAuthorization == AUTHORIZATION) strcat( szName, "Admin][" );
/ t0 ^- S; z% T补充。6 W3 _# _8 r+ Z! g/ ^
8 l4 y/ p" a' T: I) \; {8 @
3 v. C+ k7 d6 s2 U
下面是与使用/ SYS解决不同的授权清单:# @* K( Y& s( V L* z |
代码: AUTH_GAMEMASTER1 //Gamemaster lvl 1 AUTH_GAMEMASTER2 //Gamemaster lvl 2 AUTH_GAMEMASTER3 //Gamemaster lvl 3 AUTH_ADMINISTRATOR //Administrator
6 M3 Q( m: M+ M5 V/ [希望你喜欢指导,批评是欢迎的。/ m0 U% {0 j C/ x. F2 i
! D' U- Z ?# V8 w$ S+ F* q制作所Pumbaaa
$ r8 ]" p" ]; ?) z3 G- \, B2 C |