|
嘿COM,1 g2 B2 Z1 J4 ^1 P
NEN有点无聊和我开始思考,我写的关于如何得到从GM -喊名字一点时间NEN啧。( M& k3 L# h/ S8 K
后,整个看起来像这样:" X/ \+ U( Z8 e( `" P
8 _6 a$ b! l( I+ U9 x) l
8 v+ {/ M. p5 A4 r- y$ |可我第一次补习,所以如果有批评,请说,从而提高自我。9 r3 t h9 l. |8 e3 o1 e, O1 x- C. U
我不知道我的代码是最优的,肯定有一个更好的解决办法,我还是C ++初学者。
% ^6 N9 l- S H3 E+ d, E! P6 z" B$ A" m1 c4 s
所以,当你第一次打开了FuncTextCmd.cpp和搜索" `. u# f. g) g6 o, U, }6 c2 Q9 s
( m8 s' T- x* D* Q代码: BOOL TextCmd_System( CScanner& scanner ) 2 G1 m* Q7 E1 l# R- r
在那里,您会发现:
! ?( a8 K: m5 ?7 f3 Y代码: { #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; }
$ k( k/ D! s- f现在我们引入一个新的变量,我只需调用szName的
/ u( d) J% A, }2 }" i那么整个事情看起来像这样:4 t" e8 x2 Y3 Y6 ^
代码: { #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; } 8 V& ]$ y" D9 C
变量我们也等于“[”拯救我们以后的工作XD" K6 \# Y, C& Y/ Y! ?
3 _, w( g. ^; B, G+ [6 H' |6 ~. t然后,我们明确了scanner.GetLastFull测试()源;在g_DPCoreClient.SendSystem(szString)。
; r$ M0 h, a3 C) v7 I
. ^* K* v2 {5 h0 ~整个事情是这样的:
; X; Z" @9 Y# ~3 |+ j% E/ g0 ^2 M0 f代码: { #ifdef __WORLDSERVER CHAR szString[512] = ""; CHAR szName[512] = "["; CUser* pUser =(CUser*)scanner.dwValue; #endif // __WORLDSERVER return TRUE; }
/ b. L: t" r; W/ L* r8 a- ~并提出了下列:
9 q& W7 m! i( x+ Y4 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; }
. l S( X$ H! }- y现在,通用汽车应该喊这样的:4 h$ c( n: `# e0 ]
代码: [GM Information][NAME] TEXT
5 N4 n% `7 Q' B6 J( `1 q现在,如果你仍然希望出现这种情况,例如有管理员将需要插入她的下列内容:
k$ O4 M* F! G8 z+ f% 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; }
% N" Y& V' k8 T8 v$ {如果你想不仅为管理这一点,你必须始终7 W0 F1 z% P9 F' _
代码: else if(pUser->m_dwAuthorization == AUTHORIZATION) strcat( szName, "Admin][" );
, r9 o9 o( @$ D a补充。( x3 Z# K( Z- Q! Z
$ i, i* p* [: O- v( J% G' a: @* W
) g) U# n% X m$ e: C) l8 k
下面是与使用/ SYS解决不同的授权清单:+ e) ?: P) W" k
代码: AUTH_GAMEMASTER1 //Gamemaster lvl 1 AUTH_GAMEMASTER2 //Gamemaster lvl 2 AUTH_GAMEMASTER3 //Gamemaster lvl 3 AUTH_ADMINISTRATOR //Administrator 7 O9 B) c# x. L6 |; p0 l7 p M- r
希望你喜欢指导,批评是欢迎的。' K5 G% r; Y, v7 s: ?& m
/ `; A: ~* T+ x! }
制作所Pumbaaa 9 w1 h# j( u" A4 I* `% `, W
|