|
嘿COM,/ @+ R X6 H. [( o% P
NEN有点无聊和我开始思考,我写的关于如何得到从GM -喊名字一点时间NEN啧。
3 b& ~$ V1 Y. }9 \9 G5 [6 E后,整个看起来像这样:
, f/ t; O6 t0 o) S) V " G8 `0 r& n( n {/ S1 E
0 I0 v4 X& E0 p! ?. O& F- H! ]+ q
可我第一次补习,所以如果有批评,请说,从而提高自我。& p/ J3 C4 C: |+ f
我不知道我的代码是最优的,肯定有一个更好的解决办法,我还是C ++初学者。
- J$ V' E9 H) M9 y8 V9 ~
! z3 w s, k4 g# w5 r {所以,当你第一次打开了FuncTextCmd.cpp和搜索8 [6 j' z/ J8 w* L; X, t
/ j" v* X! a: p$ H7 O$ `7 g
代码: BOOL TextCmd_System( CScanner& scanner ) 1 X/ W" u# Y# J; R: C3 d+ I- D
在那里,您会发现:8 @4 ~# |( q3 }+ D/ _
代码: { #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; } ; |) ?% P: k5 \
现在我们引入一个新的变量,我只需调用szName的
2 j& ]( G a$ ]8 J7 l* c那么整个事情看起来像这样:+ }- |* K2 Q6 t9 |6 ?
代码: { #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; }
, c, M4 n4 q, W* ~) l+ E# t2 y变量我们也等于“[”拯救我们以后的工作XD2 T2 S U# W- {5 q; R" K% R& A
2 t0 K- a# d B% x然后,我们明确了scanner.GetLastFull测试()源;在g_DPCoreClient.SendSystem(szString)。1 W& j# A8 f9 X. {
. }$ |/ B9 R4 Z( d! E整个事情是这样的:
7 ?2 @' |. l' v7 J5 C" _" @代码: { #ifdef __WORLDSERVER CHAR szString[512] = ""; CHAR szName[512] = "["; CUser* pUser =(CUser*)scanner.dwValue; #endif // __WORLDSERVER return TRUE; } & q* _( S& p$ ^3 @! o
并提出了下列:
1 w9 O7 e+ Q1 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; } 1 N2 h. f1 N8 l' f* r
现在,通用汽车应该喊这样的:
& j6 F! ]0 |# b, i代码: [GM Information][NAME] TEXT
( s. f) `/ a2 r1 w现在,如果你仍然希望出现这种情况,例如有管理员将需要插入她的下列内容:
% O. i4 k) o" m, t" W ]代码: { #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; }
3 I" p4 g- @/ B7 w2 c7 K- }$ A如果你想不仅为管理这一点,你必须始终
. x0 ^* [4 R# m+ l代码: else if(pUser->m_dwAuthorization == AUTHORIZATION) strcat( szName, "Admin][" ); - x# T; ` Q% [: p) x4 |* q
补充。
8 }3 @ Z% P$ q8 {6 o& J$ h; ~! r: B9 E6 n: t
! Y F- M) j* V8 N Y下面是与使用/ SYS解决不同的授权清单:! G# A8 q( y* O5 Q3 M
代码: AUTH_GAMEMASTER1 //Gamemaster lvl 1 AUTH_GAMEMASTER2 //Gamemaster lvl 2 AUTH_GAMEMASTER3 //Gamemaster lvl 3 AUTH_ADMINISTRATOR //Administrator ' z# F; V) [" t
希望你喜欢指导,批评是欢迎的。; @" Y, U1 I& b, [
% V# _& V* ]' p. Y& V1 W
制作所Pumbaaa : M1 X. X. i# G7 a4 z$ x) l
|