嘿COM,
( N4 c. M5 v8 a+ q9 m; zNEN有点无聊和我开始思考,我写的关于如何得到从GM -喊名字一点时间NEN啧。
; B' k7 T4 Y: l# J( d后,整个看起来像这样:
; S) G1 L% |* i& A( |- G 9 w d+ o2 ^7 ?4 {3 ~8 t
) m& q& @8 [# c j( S* Y, Q! L( J( W
可我第一次补习,所以如果有批评,请说,从而提高自我。3 h: w, m0 B1 r% `1 j6 Y0 t
我不知道我的代码是最优的,肯定有一个更好的解决办法,我还是C ++初学者。
" F( t7 q' H' Q6 {8 l! F, w! d. _* A0 O0 |5 \8 I2 l1 m* F
所以,当你第一次打开了FuncTextCmd.cpp和搜索
4 X d( \8 P2 l/ G# R5 b/ C# @) I/ E' X8 G. Y
代码: BOOL TextCmd_System( CScanner& scanner ) 3 r+ a3 _5 H' T$ i- n# y* L% R
在那里,您会发现:, r1 V) e8 ?! M
代码: { #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; } ! R8 @2 E1 ~; `9 m) b& ~5 m3 M
现在我们引入一个新的变量,我只需调用szName的0 _( {( q7 S1 [9 p2 R
那么整个事情看起来像这样:
# w2 y; R4 E2 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; }
5 _- T. A( S. L. |变量我们也等于“[”拯救我们以后的工作XD
! V1 [3 C* D/ k, `0 Y8 P6 L& t1 |& c: u" J/ ~& g# U
然后,我们明确了scanner.GetLastFull测试()源;在g_DPCoreClient.SendSystem(szString)。$ v, n! U6 z: N) u; ^/ D& m
2 C4 C4 p7 r& ~- c9 v7 z整个事情是这样的:5 }6 @$ S/ q1 T$ C
代码: { #ifdef __WORLDSERVER CHAR szString[512] = ""; CHAR szName[512] = "["; CUser* pUser =(CUser*)scanner.dwValue; #endif // __WORLDSERVER return TRUE; } ; s- q$ y/ \) K# J2 ?
并提出了下列:+ k8 K) L* R# f& g
代码: { #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; } ; w! e4 Y, e* T6 Q2 E
现在,通用汽车应该喊这样的:. C( @/ O' M+ G5 W
代码: [GM Information][NAME] TEXT / h% g% `9 j+ p6 r
现在,如果你仍然希望出现这种情况,例如有管理员将需要插入她的下列内容:8 v' ?5 J9 c8 g$ V" N8 `; H+ G
代码: { #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; } & Q+ T5 {- }# `0 k3 s4 D# C5 f
如果你想不仅为管理这一点,你必须始终7 H2 l" K& n5 k0 ?" N3 L
代码: else if(pUser->m_dwAuthorization == AUTHORIZATION) strcat( szName, "Admin][" );
6 D- Z2 e$ [- ^# Z补充。
1 C5 I. i# M1 X0 {5 I8 X: l
5 w; G! r' T! V i; p9 B* H5 W5 ^. ]- v2 C% ]6 V
下面是与使用/ SYS解决不同的授权清单:
& l4 i5 O2 Z. _2 @0 b8 }+ D; ?# Z代码: AUTH_GAMEMASTER1 //Gamemaster lvl 1 AUTH_GAMEMASTER2 //Gamemaster lvl 2 AUTH_GAMEMASTER3 //Gamemaster lvl 3 AUTH_ADMINISTRATOR //Administrator
" ~6 r/ I5 ]" y. L' I# d( C希望你喜欢指导,批评是欢迎的。
0 g+ B& ?" |$ X% @; P( e6 f3 m C$ ^- @5 k; H/ i
制作所Pumbaaa
0 |4 c K5 ]' p8 P$ L |