|
嘿COM,; N$ S M- B" v5 k
NEN有点无聊和我开始思考,我写的关于如何得到从GM -喊名字一点时间NEN啧。
* C0 Y) w% c1 p# f4 x! }后,整个看起来像这样:3 B, U1 o; d: N/ h% p, A
# X2 R" g% M* t+ R6 t
, \* e K1 x) k: e3 c: Y可我第一次补习,所以如果有批评,请说,从而提高自我。% ]3 ^6 @, L( A4 p2 z$ h1 E! ~- m- g
我不知道我的代码是最优的,肯定有一个更好的解决办法,我还是C ++初学者。
# l4 L6 I' l; l2 Z( x! b4 b/ W; X* `8 F' Y. a# ]
所以,当你第一次打开了FuncTextCmd.cpp和搜索( N: n0 e6 `$ a7 l, Y0 ^
0 U: f* t" e. y4 ^3 r
代码: BOOL TextCmd_System( CScanner& scanner ) & s2 L% L0 r: H- |
在那里,您会发现:- [) i" L2 ^# o" Z, 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; } ! g' K- l: ^! X( y2 `' d, M
现在我们引入一个新的变量,我只需调用szName的9 t J: I1 i3 p' z ^
那么整个事情看起来像这样:8 G' _9 M2 U$ m f
代码: { #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; }
& Z2 Z- C* a' c4 A. a0 g变量我们也等于“[”拯救我们以后的工作XD
) A' `$ N' P( v. N
* Z% I! K3 m$ m- i: l然后,我们明确了scanner.GetLastFull测试()源;在g_DPCoreClient.SendSystem(szString)。4 d) B( F( ]5 r: S
( I$ @5 q) M2 M. Q, U1 M) E整个事情是这样的:
K( R i, s* M; u6 h: h代码: { #ifdef __WORLDSERVER CHAR szString[512] = ""; CHAR szName[512] = "["; CUser* pUser =(CUser*)scanner.dwValue; #endif // __WORLDSERVER return TRUE; }
) O" _7 X; M" B1 l0 H) m- |* h并提出了下列:# O1 i3 ?. H& V9 h1 M/ Y
代码: { #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; }
8 Q- k0 _# w) A! P+ K) c" U现在,通用汽车应该喊这样的:1 g; w& ^ C$ D$ ?$ a
代码: [GM Information][NAME] TEXT
+ N( X' A. n3 D" B现在,如果你仍然希望出现这种情况,例如有管理员将需要插入她的下列内容:
5 H5 `6 q; r3 @6 q" F0 a% 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; }
/ j0 V9 W3 s$ E! ?2 n. k* e如果你想不仅为管理这一点,你必须始终/ }- r+ E. v% ]6 B9 ?- K3 q7 c
代码: else if(pUser->m_dwAuthorization == AUTHORIZATION) strcat( szName, "Admin][" );
' R) a, G& p% o$ x, t补充。
* J, k3 B& ^8 z! \- g9 j# w) d+ B i, L: B0 f# }
2 E5 c/ x! X0 A下面是与使用/ SYS解决不同的授权清单:
& Y/ J4 h6 Y5 i+ t5 U2 U0 [代码: AUTH_GAMEMASTER1 //Gamemaster lvl 1 AUTH_GAMEMASTER2 //Gamemaster lvl 2 AUTH_GAMEMASTER3 //Gamemaster lvl 3 AUTH_ADMINISTRATOR //Administrator
8 ^' H0 w, r% v$ y希望你喜欢指导,批评是欢迎的。: M4 r+ i2 r! d7 Q
. S( d' B: t3 ^' Y+ T
制作所Pumbaaa
' l) d X7 b2 F4 i% ^4 v3 u$ P/ l |