|
嘿COM,0 p- U0 @& D) Y" B0 a' R) J
NEN有点无聊和我开始思考,我写的关于如何得到从GM -喊名字一点时间NEN啧。
% m5 Y, z! s) u后,整个看起来像这样:/ [2 x2 ?) N6 H5 z7 `3 A
( @0 L g- L/ E5 e: `
9 A: P _ r' ^3 H7 [7 @) a1 w可我第一次补习,所以如果有批评,请说,从而提高自我。
# U; `) A5 g2 |/ o' c我不知道我的代码是最优的,肯定有一个更好的解决办法,我还是C ++初学者。
3 }% r2 N! M$ `6 @2 t1 ?& h
, B5 x/ P- a) a所以,当你第一次打开了FuncTextCmd.cpp和搜索! Z. o( n U0 x& U- S" L9 ]; R. b' h
5 t; s& Z0 q3 w2 |* w. g代码: BOOL TextCmd_System( CScanner& scanner ) 6 U. _0 y7 K0 q
在那里,您会发现:* L- t- _( |9 O( U4 I. b4 g. v9 U( `5 D
代码: { #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; } ! L6 M' J4 n2 ]/ f7 Y4 s
现在我们引入一个新的变量,我只需调用szName的
) {+ i. @& g' z那么整个事情看起来像这样:
2 I9 n& r' I5 \0 ^代码: { #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; }
+ p& e5 I5 Z3 p# x2 x0 ?$ r变量我们也等于“[”拯救我们以后的工作XD% D6 n7 t; [- `' @1 N* ^2 }
; d9 t/ N9 ], O& f然后,我们明确了scanner.GetLastFull测试()源;在g_DPCoreClient.SendSystem(szString)。
. P1 ]: Q/ [7 x/ B
+ Y) i9 f) R# e3 O0 }6 [" w, O整个事情是这样的:7 T8 @6 a6 u2 `+ L, J2 d- Q
代码: { #ifdef __WORLDSERVER CHAR szString[512] = ""; CHAR szName[512] = "["; CUser* pUser =(CUser*)scanner.dwValue; #endif // __WORLDSERVER return TRUE; } ! U2 }8 ^2 z) k9 U* ~: @2 S
并提出了下列:
/ E8 Q/ \4 x1 o- M* H代码: { #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; } : E; R& _' ?" m2 H2 x. R, a
现在,通用汽车应该喊这样的:
/ Q2 ^7 r5 Q8 S# S代码: [GM Information][NAME] TEXT ; c8 p- j3 I" ^
现在,如果你仍然希望出现这种情况,例如有管理员将需要插入她的下列内容:5 T4 }9 i+ f9 g8 Y! u( Y6 L+ p# {
代码: { #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; } 4 n! {* ^/ A' m8 F$ b( Y, G
如果你想不仅为管理这一点,你必须始终
+ J1 ?5 r0 B' ?; [8 ?( [" n; `代码: else if(pUser->m_dwAuthorization == AUTHORIZATION) strcat( szName, "Admin][" ); 6 H9 d& K! B; z
补充。. O1 {2 V8 T* J
( B# V7 M) H0 o! A1 I) m" i0 e% F# ^
下面是与使用/ SYS解决不同的授权清单:
$ A+ X' Y4 H$ |0 H$ c6 w代码: AUTH_GAMEMASTER1 //Gamemaster lvl 1 AUTH_GAMEMASTER2 //Gamemaster lvl 2 AUTH_GAMEMASTER3 //Gamemaster lvl 3 AUTH_ADMINISTRATOR //Administrator , ~4 c" L$ @8 w; I
希望你喜欢指导,批评是欢迎的。) c7 ], E3 i9 ?: w8 j# Y5 @
% ]0 n& s. A, [制作所Pumbaaa ( c w5 L7 R! V4 t6 o- M% k
|