嘿COM,
9 s0 o* A3 N' A% R$ B' A$ _( oNEN有点无聊和我开始思考,我写的关于如何得到从GM -喊名字一点时间NEN啧。* g d, j* ^$ d5 Z8 d
后,整个看起来像这样:' K c4 O% P) l0 {4 _
0 q% h! A. D9 m$ L. s( W% f; t
可我第一次补习,所以如果有批评,请说,从而提高自我。
" F* }. g2 `, K我不知道我的代码是最优的,肯定有一个更好的解决办法,我还是C ++初学者。6 ]5 l" s0 Z0 U% J# ]* f( W
' Q+ k9 x, f4 g! |: ?& k: d( }所以,当你第一次打开了FuncTextCmd.cpp和搜索$ ~ J" ~- I, [5 F, l: n# \* L
1 T m% J+ _! u$ T
代码: BOOL TextCmd_System( CScanner& scanner ) ( p0 R) w: S7 W$ d" z, A
在那里,您会发现:
. v! d: } C% y6 f. @ n, 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; } , ?% J7 ~) e/ ?
现在我们引入一个新的变量,我只需调用szName的
8 r; `- J2 u8 ~6 D2 \; u0 A( D" m那么整个事情看起来像这样:3 _. f0 v1 [+ c+ \2 i
代码: { #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; } ; r' m6 [" c7 \3 @& c5 e: m
变量我们也等于“[”拯救我们以后的工作XD& ~9 B( k9 Q9 e9 x4 i
1 U# J+ x# y4 V2 X9 P
然后,我们明确了scanner.GetLastFull测试()源;在g_DPCoreClient.SendSystem(szString)。5 Y' w; ?9 g3 X" x; y
0 b* ~7 Q9 B% z; ^" D; Q整个事情是这样的:2 g& I5 |2 ~0 Q$ k: ~
代码: { #ifdef __WORLDSERVER CHAR szString[512] = ""; CHAR szName[512] = "["; CUser* pUser =(CUser*)scanner.dwValue; #endif // __WORLDSERVER return TRUE; }
( g6 W: h8 i& K2 q7 D2 h: m7 A+ x# e并提出了下列: T" \ c) N. f+ s5 B
代码: { #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; }
# K) p' L! |& n: \. \" x- d: M$ d$ Q& k现在,通用汽车应该喊这样的:
0 {" i; G1 d3 y! B" g# L% `+ A5 }代码: [GM Information][NAME] TEXT 2 I2 i* H8 g# v: f2 I) _( A) r
现在,如果你仍然希望出现这种情况,例如有管理员将需要插入她的下列内容:& M/ X" q: p5 Z5 G6 @- S0 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; }
' v& s% y A( l1 y* R如果你想不仅为管理这一点,你必须始终
4 z" H# Q5 [3 r0 o8 U' l- _代码: else if(pUser->m_dwAuthorization == AUTHORIZATION) strcat( szName, "Admin][" ); 1 U2 j R4 [; M0 P7 V* O7 w
补充。; W8 I( e. ?1 P9 I; j
/ n( B3 i# ], P2 K; _+ s$ }- F+ l& z
" ^/ h8 R) }; l3 W% \. n下面是与使用/ SYS解决不同的授权清单:
6 e- b! H5 X2 m9 C. F代码: AUTH_GAMEMASTER1 //Gamemaster lvl 1 AUTH_GAMEMASTER2 //Gamemaster lvl 2 AUTH_GAMEMASTER3 //Gamemaster lvl 3 AUTH_ADMINISTRATOR //Administrator
C& f' V0 \+ O9 r希望你喜欢指导,批评是欢迎的。* |$ a) G8 h( h( G7 x" C) I" l
7 k! o% k$ e- q. A
制作所Pumbaaa
7 ?! q8 g y1 [* y0 n( V6 L |