|
嘿COM,
+ `! r3 \: u8 l$ R; Y: cNEN有点无聊和我开始思考,我写的关于如何得到从GM -喊名字一点时间NEN啧。4 k! o* j1 y+ l1 h) v2 c
后,整个看起来像这样:& Z, O# M. l8 t; s, }* J1 A
) i# T/ y. `5 I
5 |0 ~ p3 t5 |0 [可我第一次补习,所以如果有批评,请说,从而提高自我。# d& N- P( w8 h& t: R1 b! `6 i
我不知道我的代码是最优的,肯定有一个更好的解决办法,我还是C ++初学者。1 R& a# a. `0 V9 d2 z# M
: t9 c( ?6 m, V% l/ T所以,当你第一次打开了FuncTextCmd.cpp和搜索% j* Q) m1 S3 N3 L4 c8 j) P& U7 K
; A# C) r6 b6 T3 G+ ]6 l代码: BOOL TextCmd_System( CScanner& scanner ) . U" Q/ x2 [, p) G% I" d
在那里,您会发现:9 s) P5 y8 W" `
代码: { #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; }
% ?: U5 h" ^; b* S2 n+ z现在我们引入一个新的变量,我只需调用szName的
+ O9 a: Q5 S+ z$ m7 s1 r那么整个事情看起来像这样:' x9 x8 b6 [( ^# h) ~! b
代码: { #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; }
+ s% T' e# Z3 o: r2 D( R+ ~变量我们也等于“[”拯救我们以后的工作XD
3 j2 L" h- X% e! G" K
- \4 y' t; ^$ p7 \. Q) W0 A然后,我们明确了scanner.GetLastFull测试()源;在g_DPCoreClient.SendSystem(szString)。
o; z: Z. p! a
& b/ p L, `" {0 [$ T) o' o整个事情是这样的:
/ g( I& g7 N, ^$ m) [# [代码: { #ifdef __WORLDSERVER CHAR szString[512] = ""; CHAR szName[512] = "["; CUser* pUser =(CUser*)scanner.dwValue; #endif // __WORLDSERVER return TRUE; } $ L0 S2 E6 [' N$ d
并提出了下列:
0 {0 u: R9 O% O, D& L( w( l) Q代码: { #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; } + f) f: _$ T3 y
现在,通用汽车应该喊这样的:6 p& S* n# D E, e
代码: [GM Information][NAME] TEXT
5 O3 U% |. p5 `" `! g& v现在,如果你仍然希望出现这种情况,例如有管理员将需要插入她的下列内容:
, s( s) }( Z3 |+ r" n) [! w7 @代码: { #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; }
* d2 O/ ?5 }, i& l如果你想不仅为管理这一点,你必须始终* ]1 Y' u2 s, Q: h3 x7 D2 \
代码: else if(pUser->m_dwAuthorization == AUTHORIZATION) strcat( szName, "Admin][" );
3 Y$ V* A9 H i, ]7 _1 ^补充。
0 F8 A. s& |# R: a: t% e
( \- b- ?- j% n7 c" b$ x1 ]2 h
2 i' G% Z* U4 W% N# E$ I下面是与使用/ SYS解决不同的授权清单:! [/ y8 n: l4 O0 G- \6 A
代码: AUTH_GAMEMASTER1 //Gamemaster lvl 1 AUTH_GAMEMASTER2 //Gamemaster lvl 2 AUTH_GAMEMASTER3 //Gamemaster lvl 3 AUTH_ADMINISTRATOR //Administrator ' s! t4 Z& Q! {) y* S; k
希望你喜欢指导,批评是欢迎的。
+ _4 v. H; S4 ?) M' C' H7 |
# P, U# E V- f/ M$ H制作所Pumbaaa
4 D+ M' n, b4 d5 j |