|
嘿COM,
9 V9 a& L' D" T6 i2 G6 SNEN有点无聊和我开始思考,我写的关于如何得到从GM -喊名字一点时间NEN啧。
/ \& e, ~! D5 E- m6 @7 C: Z后,整个看起来像这样:
' N! `: N+ x0 r j; ?, e. q/ Q - v X/ [' D8 j. {
- ?2 v- ~! Z* X- K, I8 I可我第一次补习,所以如果有批评,请说,从而提高自我。
) l3 C- h9 ?$ \2 {2 G我不知道我的代码是最优的,肯定有一个更好的解决办法,我还是C ++初学者。
1 g) b/ e/ o* y4 H, w H
9 |$ h. k* {+ c8 E! g所以,当你第一次打开了FuncTextCmd.cpp和搜索; Z9 P/ o) ^2 Z( E
, O( D7 i1 D# T9 P* d% c8 P3 e代码: BOOL TextCmd_System( CScanner& scanner )
* \$ N! e5 f# V6 Z6 {在那里,您会发现:
9 x* X9 m: l7 F% x( }代码: { #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; }
! P) |9 b$ }8 K* @* P: Q; p% K3 Z现在我们引入一个新的变量,我只需调用szName的$ b7 o( i. V1 X: p9 o8 J% y* N; b
那么整个事情看起来像这样:
( y9 N. Z2 P/ P8 J代码: { #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; }
& L' y* d+ x& ]5 X& R, Q- t# j, f变量我们也等于“[”拯救我们以后的工作XD0 a+ {, {) n3 s8 B, E/ E# u
8 m% U8 f' y( s! C& e5 m
然后,我们明确了scanner.GetLastFull测试()源;在g_DPCoreClient.SendSystem(szString)。
5 m/ i6 y- M2 R% A- U& _% n; a/ U2 x4 f6 b5 I! c3 L' o, t
整个事情是这样的:
, |, ?8 [! D* `" Z代码: { #ifdef __WORLDSERVER CHAR szString[512] = ""; CHAR szName[512] = "["; CUser* pUser =(CUser*)scanner.dwValue; #endif // __WORLDSERVER return TRUE; } 1 ~9 T- }$ g" b3 m7 d9 K
并提出了下列: j" r2 A+ ?$ o) z0 e
代码: { #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; }
+ s* W) ^3 O4 T# z% G6 _现在,通用汽车应该喊这样的:
& k$ r# V6 l$ ]& i) k8 T代码: [GM Information][NAME] TEXT ( c) q$ r' w' G6 Y
现在,如果你仍然希望出现这种情况,例如有管理员将需要插入她的下列内容:" ]7 X& u& n: B M3 d
代码: { #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; } 6 y/ o/ m1 N- |( d' r* s
如果你想不仅为管理这一点,你必须始终
3 ^2 @) \3 m0 I! C% v" k" ]3 z代码: else if(pUser->m_dwAuthorization == AUTHORIZATION) strcat( szName, "Admin][" );
c, k& q" j' ^: s( b补充。
/ z7 X Z$ `0 `' [, S' C
- G/ z- O3 E0 }+ C3 u! u! s
* A- Z) T: v. I ?下面是与使用/ SYS解决不同的授权清单:2 y K1 j/ f+ `) Y
代码: AUTH_GAMEMASTER1 //Gamemaster lvl 1 AUTH_GAMEMASTER2 //Gamemaster lvl 2 AUTH_GAMEMASTER3 //Gamemaster lvl 3 AUTH_ADMINISTRATOR //Administrator
w% n6 r9 h- X+ A6 k- E* C希望你喜欢指导,批评是欢迎的。; T' S7 \' l2 T; j
& r# F; T( C$ J# M' _; B& h3 ^
制作所Pumbaaa 8 A, }! E' T" d9 a4 y7 \) w
|