|
嘿COM,: l3 ^# d; o5 `; f' b
NEN有点无聊和我开始思考,我写的关于如何得到从GM -喊名字一点时间NEN啧。- J- O( G! }7 I7 c+ J. s
后,整个看起来像这样:9 @% o% ?9 o6 H- |' z3 c; D. q, b; H/ H
+ T% P$ H8 z6 Q* Q. T3 K
4 k! J% h2 a. e* l5 c3 t' T
可我第一次补习,所以如果有批评,请说,从而提高自我。
% D$ o' D {8 O我不知道我的代码是最优的,肯定有一个更好的解决办法,我还是C ++初学者。2 F& L# P! }6 `+ x9 w0 l
! C. z3 k3 C5 x0 k- \
所以,当你第一次打开了FuncTextCmd.cpp和搜索; Y1 |+ v2 _- P4 M
7 x7 Y0 M. r8 Q. W8 y! k- c代码: BOOL TextCmd_System( CScanner& scanner )
/ m' |. j l3 M' l; F! c1 u& @$ h1 S在那里,您会发现:7 E O7 I) C% D" X8 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; } ( y5 i; }+ `$ v/ v' n5 N
现在我们引入一个新的变量,我只需调用szName的4 `( i: K4 y7 Y: e6 ]6 |
那么整个事情看起来像这样:! T5 g/ r: Y% N3 _
代码: { #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; }
6 U3 s; O) ~" v2 V变量我们也等于“[”拯救我们以后的工作XD y- M# D2 `9 q. p% E
1 W# r" | A' N s4 q/ L
然后,我们明确了scanner.GetLastFull测试()源;在g_DPCoreClient.SendSystem(szString)。. |6 G% d; ]. G. ~" {
; K3 c$ B5 [# E, r6 K整个事情是这样的:
6 J+ ^4 k5 f- o' l. U代码: { #ifdef __WORLDSERVER CHAR szString[512] = ""; CHAR szName[512] = "["; CUser* pUser =(CUser*)scanner.dwValue; #endif // __WORLDSERVER return TRUE; }
" f/ v P0 k$ s$ r/ @3 @* l2 W并提出了下列:
2 H, T9 x# J6 r A% [代码: { #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; } 6 y- d0 W; |' S( q9 r$ Z' `7 b
现在,通用汽车应该喊这样的:( ~) h& Q, l& y4 ^
代码: [GM Information][NAME] TEXT ; i) I- y- ~: ^* I
现在,如果你仍然希望出现这种情况,例如有管理员将需要插入她的下列内容:4 C" m! i8 o4 U/ ~( K" C
代码: { #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; } + b# u( c r* h4 ~# m E
如果你想不仅为管理这一点,你必须始终2 `- a0 N0 ?' f* ~& A" r
代码: else if(pUser->m_dwAuthorization == AUTHORIZATION) strcat( szName, "Admin][" ); 3 L, I9 q) _3 J7 y0 x
补充。
* S6 `( y8 O9 u5 P( V3 f& O/ Q% w$ N
. F7 f. y8 Q: S; y6 @下面是与使用/ SYS解决不同的授权清单:
. O2 g' b3 g0 F) A代码: AUTH_GAMEMASTER1 //Gamemaster lvl 1 AUTH_GAMEMASTER2 //Gamemaster lvl 2 AUTH_GAMEMASTER3 //Gamemaster lvl 3 AUTH_ADMINISTRATOR //Administrator ) t' C$ o' I( ]9 Z: b9 R
希望你喜欢指导,批评是欢迎的。8 X3 o- W' {1 r
. ?! R6 I0 D5 p4 R制作所Pumbaaa
* R7 {, U$ v) V- E1 h7 t% X/ d |