|
嘿COM,0 E9 H. q0 i+ u0 _, Z
NEN有点无聊和我开始思考,我写的关于如何得到从GM -喊名字一点时间NEN啧。
! P- F. W; m) [! ?& Z5 e9 n后,整个看起来像这样:5 E! B) f7 {5 N/ p
0 X7 h7 I) o$ I5 o
- G* B A5 Q: L4 d* q* P( ^8 h可我第一次补习,所以如果有批评,请说,从而提高自我。
: ^. H+ p, [# L我不知道我的代码是最优的,肯定有一个更好的解决办法,我还是C ++初学者。, S" H0 ~ K# Z; ~$ {
" l N& c* g$ Q9 B N/ ?1 }
所以,当你第一次打开了FuncTextCmd.cpp和搜索
( H8 y( n$ u% `$ ~4 I3 F! f* K c P1 w0 ^) J' q
代码: BOOL TextCmd_System( CScanner& scanner ) 0 V/ Y) H' ^( M# ~" t/ K
在那里,您会发现:% }( X2 d2 S" q% p% Y8 h9 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; } % y) G) n, V; Q3 @& s P! {( I2 |
现在我们引入一个新的变量,我只需调用szName的
& ~9 ?) @% p* M" B那么整个事情看起来像这样:, m9 I n: y- Z& [1 r0 j
代码: { #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; } ' O" `2 H/ F& m. Q" o2 G
变量我们也等于“[”拯救我们以后的工作XD
& b( }* ^ m" F0 t, v0 {3 @8 A+ J: Z
然后,我们明确了scanner.GetLastFull测试()源;在g_DPCoreClient.SendSystem(szString)。9 `- [ O1 q' Z1 N4 d; }
; ^& Q7 z7 H& ^. ?整个事情是这样的:
1 @( M( v& g6 Q' X代码: { #ifdef __WORLDSERVER CHAR szString[512] = ""; CHAR szName[512] = "["; CUser* pUser =(CUser*)scanner.dwValue; #endif // __WORLDSERVER return TRUE; } + P0 J y! z# }; a
并提出了下列:) C* L; P$ E0 |* M+ r3 o, W
代码: { #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; } # L1 Z/ C: B% ^7 ^; D; I8 M
现在,通用汽车应该喊这样的:1 m/ [' s: ]) s8 u' [1 u3 R
代码: [GM Information][NAME] TEXT
2 p% B' N) }7 ~2 ]现在,如果你仍然希望出现这种情况,例如有管理员将需要插入她的下列内容:/ M& ~9 N( Z9 q* k1 f; t* w( R
代码: { #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; } " {: _% w9 J1 q( ^" o8 r" z8 t
如果你想不仅为管理这一点,你必须始终+ f" y' W6 S8 W' ^" n/ r; N
代码: else if(pUser->m_dwAuthorization == AUTHORIZATION) strcat( szName, "Admin][" );
, J! m0 t: s3 m5 C补充。) z3 V" O) P: o P. i. G! y
. H8 ^2 o1 s( p0 C( J& x
. q& }$ E8 f) n" g/ S7 R* t下面是与使用/ SYS解决不同的授权清单:
2 ~, `. g- X% c# P# c" t2 s代码: AUTH_GAMEMASTER1 //Gamemaster lvl 1 AUTH_GAMEMASTER2 //Gamemaster lvl 2 AUTH_GAMEMASTER3 //Gamemaster lvl 3 AUTH_ADMINISTRATOR //Administrator - Z! h1 @1 X3 p" S5 C6 F; s
希望你喜欢指导,批评是欢迎的。4 `5 r% a0 n! [% v
3 o9 `7 {2 Y% x. [- `3 R3 p制作所Pumbaaa
?5 s! [1 N8 U5 L: Z% v! {0 O |