|
嘿COM,8 P$ p8 F+ H9 M) ^/ g: H" O/ K. A
NEN有点无聊和我开始思考,我写的关于如何得到从GM -喊名字一点时间NEN啧。& D: N4 V$ K+ ^) `6 h) a- z' \
后,整个看起来像这样:/ a* z# d: \& f W7 D
$ [7 v$ {; i" n( a
0 H' y/ t8 U+ }8 z. X8 y' f ?可我第一次补习,所以如果有批评,请说,从而提高自我。! m* _1 P2 y; Y& I$ H: p4 u
我不知道我的代码是最优的,肯定有一个更好的解决办法,我还是C ++初学者。0 {9 s2 T% G3 _2 B6 C
+ Z* e- }6 N0 E所以,当你第一次打开了FuncTextCmd.cpp和搜索
4 O% D8 }, t. a g2 \$ t( b9 m, [* M7 Z& o7 ~' Y8 S! I, B
代码: BOOL TextCmd_System( CScanner& scanner ) : S/ S& A9 A4 r. H
在那里,您会发现:' E* `: @ u0 l
代码: { #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; }
; ~7 V7 g2 \- I9 R现在我们引入一个新的变量,我只需调用szName的
) W7 Y& E( U- L: c* ] `那么整个事情看起来像这样:
) R7 k# w7 @) Q9 e) 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; }
2 z" N. Y1 ]% ~! r变量我们也等于“[”拯救我们以后的工作XD5 p! l& C* {# b' c0 D' P
0 w* U: d6 L$ R0 ~! A然后,我们明确了scanner.GetLastFull测试()源;在g_DPCoreClient.SendSystem(szString)。
|+ b: ~& D6 l( ~1 z3 [8 t: i8 {% _* ~* \
整个事情是这样的:
: g, y4 I. E2 i( j' U( Z! y! Q9 z9 h代码: { #ifdef __WORLDSERVER CHAR szString[512] = ""; CHAR szName[512] = "["; CUser* pUser =(CUser*)scanner.dwValue; #endif // __WORLDSERVER return TRUE; } 6 O# Z( i" A- m# R
并提出了下列:( j, z9 \7 v( W3 w( D
代码: { #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; } # v- v7 I: i$ A
现在,通用汽车应该喊这样的:3 F0 i% ~$ R& _
代码: [GM Information][NAME] TEXT
5 x! C4 R5 W$ M" V, o现在,如果你仍然希望出现这种情况,例如有管理员将需要插入她的下列内容:$ u7 k {3 P! X1 c: a6 q
代码: { #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; } ) @$ c F4 @6 f/ D
如果你想不仅为管理这一点,你必须始终
3 D6 P: Z' w6 g& D& ~- A9 J* H代码: else if(pUser->m_dwAuthorization == AUTHORIZATION) strcat( szName, "Admin][" ); 3 F" m9 ?9 M7 T" t. R
补充。
, N$ O1 p+ \, @0 i& j* z
+ ]& f5 c6 r9 A5 \8 c Z/ g, ~! h2 [( E* |! H& w" X3 [
下面是与使用/ SYS解决不同的授权清单:. _$ |# S0 T) [, T _
代码: AUTH_GAMEMASTER1 //Gamemaster lvl 1 AUTH_GAMEMASTER2 //Gamemaster lvl 2 AUTH_GAMEMASTER3 //Gamemaster lvl 3 AUTH_ADMINISTRATOR //Administrator 3 F2 J- c5 n9 R7 d( w; }% K: F4 A
希望你喜欢指导,批评是欢迎的。, K$ i# R8 x; G* \- v% @ U! S
) J# _+ v& r C7 m" h
制作所Pumbaaa
: U" @- {7 }; d" c0 `# v9 n |