|
嘿COM,* O: F. k. Q, k* r3 i4 x( o# t
NEN有点无聊和我开始思考,我写的关于如何得到从GM -喊名字一点时间NEN啧。
# w: z! O4 l1 O2 {& t( L后,整个看起来像这样:
3 d. C) s; T7 ` A* l
' u. g b- p7 J! s8 q, Z3 ^0 b" w$ B) R6 c/ B! C- G9 H
可我第一次补习,所以如果有批评,请说,从而提高自我。+ c7 v! G0 b; \" c1 o
我不知道我的代码是最优的,肯定有一个更好的解决办法,我还是C ++初学者。
, ]1 {& H. h2 j4 v2 T0 O h) p2 m k
0 @' q1 T# j1 Y0 }% B+ a! B: H所以,当你第一次打开了FuncTextCmd.cpp和搜索
$ c( z( ]: a; E N" I. |3 @4 ^9 H/ z: a* f. D9 |
代码: BOOL TextCmd_System( CScanner& scanner ) 4 t4 _2 }* Y7 e! H0 R2 B; ]
在那里,您会发现:
; J2 r/ N4 Q8 M1 Z p5 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; } 5 @3 G) }6 j* r
现在我们引入一个新的变量,我只需调用szName的
5 q. ]; O4 N4 v K# i- R* x" Z那么整个事情看起来像这样:
0 q4 q9 @" [4 V! I6 G! g代码: { #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; }
# Z& |; x# O/ ~5 b0 t7 _) z( B) ?5 T变量我们也等于“[”拯救我们以后的工作XD
. {% Z# }3 D8 m1 A2 ~9 n; D& V, w
然后,我们明确了scanner.GetLastFull测试()源;在g_DPCoreClient.SendSystem(szString)。' E2 B6 x* ]3 ]1 |! w) u
! u% f* C) V9 f
整个事情是这样的:/ s7 y' b/ l, ~: z/ [2 H5 y5 t
代码: { #ifdef __WORLDSERVER CHAR szString[512] = ""; CHAR szName[512] = "["; CUser* pUser =(CUser*)scanner.dwValue; #endif // __WORLDSERVER return TRUE; } # c% ]1 S) T! C
并提出了下列:! O2 G2 k3 z; Y) s: [' C, I- o
代码: { #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; }
( M7 G' H+ n- K现在,通用汽车应该喊这样的:6 l- a1 O* b/ s5 `1 ?# L
代码: [GM Information][NAME] TEXT ; K- b" [( }2 T6 C+ M+ d0 B y7 |. N
现在,如果你仍然希望出现这种情况,例如有管理员将需要插入她的下列内容:
3 P) [4 X6 o( f* y代码: { #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 [! E6 n0 ^! n7 D" N
如果你想不仅为管理这一点,你必须始终
D4 F# I4 u2 T! Z( Y: ]* V/ c+ I代码: else if(pUser->m_dwAuthorization == AUTHORIZATION) strcat( szName, "Admin][" );
% t# K! C' M* v' q, M3 [7 J; u, ~) s补充。( i& _) q( C: Y8 O" ~. f4 J
3 w) z& Y9 v1 z
! @3 J) v3 |5 Y( B+ i8 N下面是与使用/ SYS解决不同的授权清单:
" E: P. K6 ]# `0 E4 e0 y4 C `代码: AUTH_GAMEMASTER1 //Gamemaster lvl 1 AUTH_GAMEMASTER2 //Gamemaster lvl 2 AUTH_GAMEMASTER3 //Gamemaster lvl 3 AUTH_ADMINISTRATOR //Administrator
' g& A! w; M# S6 G. {" P- Q希望你喜欢指导,批评是欢迎的。) Q D( J1 R& ]1 m* Y. G4 O
5 C- N8 ]( X+ B7 a0 w N
制作所Pumbaaa
* Q2 i2 j/ M* X/ I# W; y% C: g |