|
嘿COM,
2 p! O. {$ k9 C' S& J( BNEN有点无聊和我开始思考,我写的关于如何得到从GM -喊名字一点时间NEN啧。
- H# X3 i( M7 a' j) m) b# Z3 k. E# X后,整个看起来像这样:* X4 J" W" ]% y, T2 N6 ]3 C6 H2 W
0 L3 c. S* Y/ I! Q
! {; I0 K7 B$ w9 [$ b可我第一次补习,所以如果有批评,请说,从而提高自我。
. l. Z, S5 k. {! _$ R我不知道我的代码是最优的,肯定有一个更好的解决办法,我还是C ++初学者。8 u5 S6 W5 Y; {4 |1 ^3 p U4 y3 E
- O _) w: G' } P0 c所以,当你第一次打开了FuncTextCmd.cpp和搜索) E% c7 P. Q0 B$ `% Z; Q
) V$ R9 R# C/ g4 N- R4 I代码: BOOL TextCmd_System( CScanner& scanner ) ' s! }$ |; H3 A8 F: U4 X, g
在那里,您会发现:
! }& D1 k) \" r+ D% O代码: { #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 B' y7 S3 i5 ]9 a' ?现在我们引入一个新的变量,我只需调用szName的( h& l+ U e( d
那么整个事情看起来像这样:1 C( {# M. g1 H& Y" Z: I% _% u3 H# M
代码: { #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; } ( H% @# Y7 A( P `6 s9 _( ?' _
变量我们也等于“[”拯救我们以后的工作XD& j$ e9 b1 W' _ F" W, I3 I( t
5 y9 \1 v+ u8 j3 S$ v% H X/ L然后,我们明确了scanner.GetLastFull测试()源;在g_DPCoreClient.SendSystem(szString)。) X4 e+ t; K% X4 L f1 U% a
0 W4 A/ K5 E- c; R x' a* |7 T- ^
整个事情是这样的:/ R+ F, ?' e) w$ ~5 Q7 e
代码: { #ifdef __WORLDSERVER CHAR szString[512] = ""; CHAR szName[512] = "["; CUser* pUser =(CUser*)scanner.dwValue; #endif // __WORLDSERVER return TRUE; } ( p! B" Z& ?8 U8 U) d
并提出了下列:
1 P* \% T# C7 R/ p代码: { #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; }
( N9 j8 f5 p- O0 v" i7 X2 E' c! g% _现在,通用汽车应该喊这样的:4 K2 e- \& A1 O" e
代码: [GM Information][NAME] TEXT + i' i& @: r' c& u
现在,如果你仍然希望出现这种情况,例如有管理员将需要插入她的下列内容:
- L' i7 z: ^1 C8 V% M5 |* ?3 m代码: { #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; }
) l, \3 e& J$ \- O! o如果你想不仅为管理这一点,你必须始终
W1 L y) j7 ^- j代码: else if(pUser->m_dwAuthorization == AUTHORIZATION) strcat( szName, "Admin][" ); 2 u# ^6 `" i( P3 d& E/ Z; b* Q
补充。
6 X# v5 n! T% c$ a
: ?* E6 C M- G/ s5 h6 @# Y" m
$ y0 t. h5 N8 c3 u/ H* L2 `下面是与使用/ SYS解决不同的授权清单:: i1 H; q$ T+ k
代码: AUTH_GAMEMASTER1 //Gamemaster lvl 1 AUTH_GAMEMASTER2 //Gamemaster lvl 2 AUTH_GAMEMASTER3 //Gamemaster lvl 3 AUTH_ADMINISTRATOR //Administrator @2 `" f4 k& T0 Z
希望你喜欢指导,批评是欢迎的。
- [- o& {. w; V7 r K' r. ^6 i: J; D7 Y' Q. z1 e% @0 c+ m, I; W
制作所Pumbaaa
1 x& O6 j7 s! s; `4 V( j. p$ j |