|
嘿COM,! q& } Q+ ~( H# w }
NEN有点无聊和我开始思考,我写的关于如何得到从GM -喊名字一点时间NEN啧。
( a2 s% X1 A" @; }; b9 ^后,整个看起来像这样:4 W) t8 [+ K7 J* Q& O. b3 }: {* |
6 r9 [( v) b4 n! v& s$ l4 g, o/ {: k8 z# v. v; n: E6 z
可我第一次补习,所以如果有批评,请说,从而提高自我。' e( f4 x/ N' O8 R' c }, T
我不知道我的代码是最优的,肯定有一个更好的解决办法,我还是C ++初学者。; k+ ?, p& p$ y% t4 Z5 b8 A
" P% K9 C8 e. z# Q& J
所以,当你第一次打开了FuncTextCmd.cpp和搜索+ k, M1 K* R( \$ v, l% j- b
, A; l, m7 k F4 s' a
代码: BOOL TextCmd_System( CScanner& scanner ) ; _5 U O+ a4 r$ G8 {; o
在那里,您会发现:
& E0 C0 B4 ~! C6 P- J8 n5 s代码: { #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; } ' x7 i) n3 G2 w" s1 H3 {& @
现在我们引入一个新的变量,我只需调用szName的
" h, n6 H3 h, l5 [( s- n% E4 S那么整个事情看起来像这样:
4 G1 h/ z' X% Z: 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; }
2 E5 K0 ^4 K$ a4 r! m5 M变量我们也等于“[”拯救我们以后的工作XD$ ^7 F* R4 |! S* D0 }
1 X! B. Q# Z, Z6 `" Q) c然后,我们明确了scanner.GetLastFull测试()源;在g_DPCoreClient.SendSystem(szString)。
( x" M; j1 e8 M( R( O' T3 V6 m M- J5 P5 [9 _1 @
整个事情是这样的:
( W! G/ T* U1 H+ P I1 @5 s代码: { #ifdef __WORLDSERVER CHAR szString[512] = ""; CHAR szName[512] = "["; CUser* pUser =(CUser*)scanner.dwValue; #endif // __WORLDSERVER return TRUE; }
( L# ?7 C0 ]- i" @0 g并提出了下列:( K/ i8 W. O/ L4 y3 B$ C8 P, d& }; B' 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; }
- c2 n& a' P% Y, ]5 b- p) B# B现在,通用汽车应该喊这样的:
3 G) ^9 {6 ]( N5 C6 i1 Q) @, f代码: [GM Information][NAME] TEXT
( @: t \( X! u4 Y* Y7 r) }) z现在,如果你仍然希望出现这种情况,例如有管理员将需要插入她的下列内容:4 v; T K3 j( l) d7 S
代码: { #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; }
$ M A4 b. i" @5 q% u. k1 }如果你想不仅为管理这一点,你必须始终
) X8 Q0 T* U# j( i6 j8 v代码: else if(pUser->m_dwAuthorization == AUTHORIZATION) strcat( szName, "Admin][" );
0 a' r# u5 `! s- z补充。( h5 c, h8 ^* {) Z$ q
& v& D0 V( Q9 f" ]: k; [1 V* {. B
下面是与使用/ SYS解决不同的授权清单:
% v0 e4 c r1 c0 M3 Z代码: AUTH_GAMEMASTER1 //Gamemaster lvl 1 AUTH_GAMEMASTER2 //Gamemaster lvl 2 AUTH_GAMEMASTER3 //Gamemaster lvl 3 AUTH_ADMINISTRATOR //Administrator . p W* J& Y& n6 a. s' C2 m. x
希望你喜欢指导,批评是欢迎的。2 Y: @( u. `! A1 ^' _
( r9 T- b$ f' u2 v/ N
制作所Pumbaaa $ ?8 m6 R \# F, Y0 e0 F O" U$ j
|