|
嘿COM,
9 V; |1 }0 P# c p7 X4 hNEN有点无聊和我开始思考,我写的关于如何得到从GM -喊名字一点时间NEN啧。
' a$ G* |& O6 Y1 o后,整个看起来像这样:
4 L* }2 z, M- a/ w' C ) |4 n3 k3 m" o1 ~+ o7 |8 J2 T5 d
0 |% [. v- Z0 {9 {可我第一次补习,所以如果有批评,请说,从而提高自我。# L* `+ L3 S& @6 x
我不知道我的代码是最优的,肯定有一个更好的解决办法,我还是C ++初学者。
% E6 A5 w$ a( g5 `+ r% a! N1 H/ |6 {8 h- m' l
所以,当你第一次打开了FuncTextCmd.cpp和搜索9 y Z1 J& j5 M2 h0 @8 o
1 Y3 ~5 B7 R# Y' K- f代码: BOOL TextCmd_System( CScanner& scanner )
+ Z; a8 g* n: C% I; z0 v在那里,您会发现:& d2 F; Y; I3 ?& E
代码: { #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; }
9 V2 O4 [* T0 E现在我们引入一个新的变量,我只需调用szName的
0 ~1 d7 u- l% x& m那么整个事情看起来像这样:- I# @% z5 e, j1 W" 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; } + t7 G3 K5 Y; G9 D2 b) s: D
变量我们也等于“[”拯救我们以后的工作XD# z/ s, u4 q; {0 N1 G2 x5 N& \! S
) e% J! N" o% C3 o5 x5 t; ~3 h0 k0 }
然后,我们明确了scanner.GetLastFull测试()源;在g_DPCoreClient.SendSystem(szString)。
% m' L& _- V* o5 ?
; ~& f' O1 I! S' j整个事情是这样的:
; w2 j5 Y) r W/ G2 Q7 ]代码: { #ifdef __WORLDSERVER CHAR szString[512] = ""; CHAR szName[512] = "["; CUser* pUser =(CUser*)scanner.dwValue; #endif // __WORLDSERVER return TRUE; }
' V) a" ?% b2 |; L并提出了下列: m8 y/ K; V$ W- a; O" P, U7 p8 v
代码: { #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; }
# t7 b# c2 w/ X现在,通用汽车应该喊这样的:. n; Y4 M( G# N/ W( j$ d" {/ W) @. X
代码: [GM Information][NAME] TEXT + Q5 Z1 x2 I8 x
现在,如果你仍然希望出现这种情况,例如有管理员将需要插入她的下列内容:
; d/ M! o' @' y3 v1 [代码: { #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; } 7 M! g. \3 M) ]6 c$ ]
如果你想不仅为管理这一点,你必须始终
8 e, ?/ Q' _5 g# {; \$ ?代码: else if(pUser->m_dwAuthorization == AUTHORIZATION) strcat( szName, "Admin][" );
3 y3 ?# c" x5 N v补充。3 i0 r% Q9 ?' t2 X3 t0 D
+ E: c. P# W: I A. e5 i6 F5 y) `
3 `$ G6 R# Q) C下面是与使用/ SYS解决不同的授权清单:
. y2 E: h$ x" e! ]9 K+ H4 ^代码: AUTH_GAMEMASTER1 //Gamemaster lvl 1 AUTH_GAMEMASTER2 //Gamemaster lvl 2 AUTH_GAMEMASTER3 //Gamemaster lvl 3 AUTH_ADMINISTRATOR //Administrator - f& ]6 E9 T8 c9 c( k" D( x( y
希望你喜欢指导,批评是欢迎的。+ v+ u$ K+ R- m" [. t5 X$ e
" a) }; y7 M( z( f: ? ?2 [
制作所Pumbaaa
7 Q& b& U( f; U, C1 i5 H |