嘿COM,+ V! m: W# Q' f" V
NEN有点无聊和我开始思考,我写的关于如何得到从GM -喊名字一点时间NEN啧。& T" o: ?, q( e" D5 {3 I
后,整个看起来像这样:' ], ^; {: n( h, ]6 X# L
; ] v0 M+ {1 n6 i- j$ n
0 F% l8 S; B: N' l. l9 t可我第一次补习,所以如果有批评,请说,从而提高自我。
4 k3 ]0 |8 p. s+ S我不知道我的代码是最优的,肯定有一个更好的解决办法,我还是C ++初学者。
% Y& G9 R' ^, @; k0 l3 M7 A8 K$ X+ r% a% l% V* [# T
所以,当你第一次打开了FuncTextCmd.cpp和搜索" ?1 M" k! j" ~: E5 W7 q
3 H S$ k; ?* B
代码: BOOL TextCmd_System( CScanner& scanner )
% p& R) \9 f3 D9 C在那里,您会发现:* S' Z; w+ l2 U& C' T4 J' W! _
代码: { #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; } 8 ^2 d$ v2 ^4 L& K8 {% a+ e
现在我们引入一个新的变量,我只需调用szName的# q2 S2 u1 U6 S7 ~: c9 n; V/ h9 F3 A7 y
那么整个事情看起来像这样:
6 y$ k, I8 d J" G, L代码: { #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; }
1 R+ E1 t6 E4 v变量我们也等于“[”拯救我们以后的工作XD
5 H% z7 u: L& l# G% K; s4 A4 V4 {# g# t7 K" l
然后,我们明确了scanner.GetLastFull测试()源;在g_DPCoreClient.SendSystem(szString)。, y! d# T9 V0 W& ?3 C
1 {5 |# J' a: D( e1 J& H5 G整个事情是这样的:" O2 r/ i6 N6 `: b' S
代码: { #ifdef __WORLDSERVER CHAR szString[512] = ""; CHAR szName[512] = "["; CUser* pUser =(CUser*)scanner.dwValue; #endif // __WORLDSERVER return TRUE; }
8 t% k- I" T/ I) {并提出了下列:
: F5 |; y% ~$ C代码: { #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; } 1 G+ x3 g% {$ j
现在,通用汽车应该喊这样的:
: y5 _% {8 e' b5 E0 K0 ]7 k$ F& B代码: [GM Information][NAME] TEXT
8 s" W8 l0 o6 ]# h5 ^4 t现在,如果你仍然希望出现这种情况,例如有管理员将需要插入她的下列内容:! W. F1 P1 b' l. H
代码: { #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; }
0 F2 N2 g. {$ ~4 N! E% C8 L如果你想不仅为管理这一点,你必须始终* {2 x9 F' ]5 i
代码: else if(pUser->m_dwAuthorization == AUTHORIZATION) strcat( szName, "Admin][" ); 8 @+ O5 M- {/ F3 Y1 ?
补充。' v7 p M& \! N6 g# C2 v
* @9 k7 z! f4 w" w- l! X
) f; G4 E9 K4 e+ ~4 s5 a3 l) F+ L5 e下面是与使用/ SYS解决不同的授权清单:
2 U, ?# s/ d. q8 I代码: AUTH_GAMEMASTER1 //Gamemaster lvl 1 AUTH_GAMEMASTER2 //Gamemaster lvl 2 AUTH_GAMEMASTER3 //Gamemaster lvl 3 AUTH_ADMINISTRATOR //Administrator $ ^/ Q) [$ T7 F- P
希望你喜欢指导,批评是欢迎的。3 x- r" Y' ]0 k* K0 E
' B ~) Q) P8 N% X! x* a制作所Pumbaaa . C/ w0 l- }" q/ h: j
|