嘿COM,
{, c- w3 F. A- I8 ~8 k1 S' b( L4 HNEN有点无聊和我开始思考,我写的关于如何得到从GM -喊名字一点时间NEN啧。
# Z y2 c: k P2 r3 r0 y* B后,整个看起来像这样:6 p2 { v3 a+ I8 b
# _- y: r' e9 _6 h" _) O) y
. s5 p% n$ D9 P. i' }可我第一次补习,所以如果有批评,请说,从而提高自我。
, p. `: N# E. g+ ]9 I3 c3 u我不知道我的代码是最优的,肯定有一个更好的解决办法,我还是C ++初学者。
" Y+ m) \ j( Y' o5 {
9 W6 f! X4 L) H2 j3 B: M4 v* A所以,当你第一次打开了FuncTextCmd.cpp和搜索2 ?. x2 }$ J+ v& m. i, Y
8 Y& t" L2 k% ]) W& ]' {
代码: BOOL TextCmd_System( CScanner& scanner )
6 {# V0 w& v2 e/ D2 z; j5 v1 x! [' u! B在那里,您会发现:8 o f2 [7 _/ I z
代码: { #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; } . H2 k5 T2 U: z# q. b a* i
现在我们引入一个新的变量,我只需调用szName的
( z: A- D) H9 `6 h那么整个事情看起来像这样:2 o! ^ l$ {$ 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; }
( h2 K# Y, B" H8 T6 W$ ]变量我们也等于“[”拯救我们以后的工作XD% c {' b% K- r* m1 v$ F5 z
7 S! o8 {" N$ o5 r/ \( [. ]) [9 X然后,我们明确了scanner.GetLastFull测试()源;在g_DPCoreClient.SendSystem(szString)。
4 D$ R! S6 f. F, f
/ m% F T# k3 a6 t" {整个事情是这样的:
/ A) r5 n; g4 g. ]1 T9 i代码: { #ifdef __WORLDSERVER CHAR szString[512] = ""; CHAR szName[512] = "["; CUser* pUser =(CUser*)scanner.dwValue; #endif // __WORLDSERVER return TRUE; }
8 [" w- L( \. f0 c; A6 e并提出了下列:& V7 C8 l- t0 }. 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; } / K8 ^* {; [; t& g
现在,通用汽车应该喊这样的:
$ [" c9 x( ~) H! C5 q; h代码: [GM Information][NAME] TEXT
; J% j6 a2 G2 l) Q5 h# J现在,如果你仍然希望出现这种情况,例如有管理员将需要插入她的下列内容:
) W# r d4 ^. e7 P8 [2 ?# x3 I2 b代码: { #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; } 2 W5 F$ c8 @% a [7 h& a
如果你想不仅为管理这一点,你必须始终# |; h" K3 j Y+ @8 j
代码: else if(pUser->m_dwAuthorization == AUTHORIZATION) strcat( szName, "Admin][" );
& P8 j2 d3 T7 M9 F; m0 ]补充。
: ^9 ~! A9 {+ t+ ~9 e/ t6 B9 u
4 H0 k0 ]* M- o# |* P# Q0 P
$ f# [4 f6 |! g$ ^下面是与使用/ SYS解决不同的授权清单:" G6 a6 Q. z& M4 R9 l& p3 |$ p
代码: AUTH_GAMEMASTER1 //Gamemaster lvl 1 AUTH_GAMEMASTER2 //Gamemaster lvl 2 AUTH_GAMEMASTER3 //Gamemaster lvl 3 AUTH_ADMINISTRATOR //Administrator
7 B4 u+ Y: g9 M, k- g希望你喜欢指导,批评是欢迎的。
! C# _+ w' V; h4 ^" \9 ~- c8 i
6 t, t Y) J/ Q: O6 [制作所Pumbaaa
7 T$ s* C# }" n( L |