|
嘿COM,9 X% `3 [0 E }/ H: L
NEN有点无聊和我开始思考,我写的关于如何得到从GM -喊名字一点时间NEN啧。
" L8 ]+ e: X) H/ g" e V, B后,整个看起来像这样:
0 t# s3 T) v! N; h$ r3 [ ! w, B6 P& r/ D
; `6 J4 p- p9 S- `
可我第一次补习,所以如果有批评,请说,从而提高自我。
# G' C3 ]/ H6 ?) B7 P: R1 T$ V我不知道我的代码是最优的,肯定有一个更好的解决办法,我还是C ++初学者。3 [2 n7 M: c9 T9 a2 a& _
, {0 i7 \4 p( l/ m' L所以,当你第一次打开了FuncTextCmd.cpp和搜索
6 C: S$ i% N1 W# i, ?# ?4 R6 |; F8 s; M7 q6 s( f
代码: BOOL TextCmd_System( CScanner& scanner ) ' e3 k8 f) M. N# t% }0 E
在那里,您会发现:
# \. Q( h2 K& Y+ l% q$ p8 Q代码: { #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; } " a9 H h. d7 `/ G6 A9 T1 A- m
现在我们引入一个新的变量,我只需调用szName的
2 u! s; G7 z, n. e1 g0 M那么整个事情看起来像这样:
% y' t V: g; ` Q代码: { #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; } : j1 j6 q1 Q# i4 D) ~6 i5 d
变量我们也等于“[”拯救我们以后的工作XD" ^2 p, c I) w+ S
+ Y& q3 w* n( p& @2 F! m. H然后,我们明确了scanner.GetLastFull测试()源;在g_DPCoreClient.SendSystem(szString)。2 S6 k' z# w# W6 \ R9 I _7 V7 _7 y
" L* [! H5 F. b整个事情是这样的:
7 q( h9 a8 M& f, n代码: { #ifdef __WORLDSERVER CHAR szString[512] = ""; CHAR szName[512] = "["; CUser* pUser =(CUser*)scanner.dwValue; #endif // __WORLDSERVER return TRUE; } & A- c( T7 l* b/ }" r
并提出了下列:* \) g+ F) ~' b5 _2 ]2 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; }
1 l6 X# j6 P1 N' K现在,通用汽车应该喊这样的:- Z a- b D/ [2 x0 }
代码: [GM Information][NAME] TEXT
, E0 j& M- h1 P- F% u; T5 D( r7 }4 R4 _现在,如果你仍然希望出现这种情况,例如有管理员将需要插入她的下列内容:
x& i* |% d: \/ D4 n代码: { #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 o5 V/ Z2 o8 M+ Q如果你想不仅为管理这一点,你必须始终
( w, c& O; O6 t* X8 W9 k代码: else if(pUser->m_dwAuthorization == AUTHORIZATION) strcat( szName, "Admin][" );
9 [6 K' E& x- C) k# d! P7 Y补充。" G+ b) Z3 C+ h; {
: q5 C9 W& a% T1 K( K
; N1 O { {) E7 f0 ?' m2 [# r* ~
下面是与使用/ SYS解决不同的授权清单:2 w/ N7 [9 ], ~* |
代码: AUTH_GAMEMASTER1 //Gamemaster lvl 1 AUTH_GAMEMASTER2 //Gamemaster lvl 2 AUTH_GAMEMASTER3 //Gamemaster lvl 3 AUTH_ADMINISTRATOR //Administrator
' R) M: u( {! b k8 X, N* H6 T希望你喜欢指导,批评是欢迎的。2 A3 u# ^$ g4 e( |/ c, Q9 s
9 J9 C* w4 ]1 I* R. M$ B, j
制作所Pumbaaa ) [' \ j. E! c: T
|