|
嘿COM,
" U8 r3 W. Q3 t, l3 [( GNEN有点无聊和我开始思考,我写的关于如何得到从GM -喊名字一点时间NEN啧。
7 m2 ^. b, p4 J* }+ _, c$ d后,整个看起来像这样:! A7 B7 R- h8 K" b) q" o2 s% r" E
5 Y" w; }; I+ }5 X% r" D
1 w: ?6 U( J7 T. E- k4 x; p
可我第一次补习,所以如果有批评,请说,从而提高自我。
; q/ V9 R$ z# c( Z5 @我不知道我的代码是最优的,肯定有一个更好的解决办法,我还是C ++初学者。0 ^/ C* I! _3 L L$ F4 \
) m: Q- \# B( d4 v9 x4 `
所以,当你第一次打开了FuncTextCmd.cpp和搜索. U+ x5 d# j. A5 ?9 h+ J D
; B5 v4 B% c' k; I. C3 u代码: BOOL TextCmd_System( CScanner& scanner ) 6 ^8 r+ y1 d$ T- K, E- N
在那里,您会发现:* P# V5 b( `2 c. Y5 e2 q! B
代码: { #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; } - X, L; b/ Y- I5 E5 q
现在我们引入一个新的变量,我只需调用szName的
2 `8 v+ U9 `8 m9 H那么整个事情看起来像这样:
$ C) r8 [8 u5 s% G0 I0 K代码: { #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; }
3 [. w3 p5 Z# N3 F- J$ k( r* p变量我们也等于“[”拯救我们以后的工作XD, k& p1 J0 f: w! R3 L5 W
% i5 \; U& p. p; ^3 e0 d& x
然后,我们明确了scanner.GetLastFull测试()源;在g_DPCoreClient.SendSystem(szString)。$ V% u% f, ?) a" i
) ?) Y0 g0 Y4 t$ x+ U整个事情是这样的:: k/ E4 |8 m+ ^# @; z: b( f2 V
代码: { #ifdef __WORLDSERVER CHAR szString[512] = ""; CHAR szName[512] = "["; CUser* pUser =(CUser*)scanner.dwValue; #endif // __WORLDSERVER return TRUE; } : P3 F; H+ }5 G' P1 {$ D) L$ u, R
并提出了下列:
7 i' u& z& c& }$ l代码: { #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; }
: h' [' L3 v. M& V% k0 `现在,通用汽车应该喊这样的:
: H" Y& ^' {2 x7 o5 Z5 Y; _& S代码: [GM Information][NAME] TEXT
+ K, f9 {; q0 U; T$ }8 h现在,如果你仍然希望出现这种情况,例如有管理员将需要插入她的下列内容:% {6 X7 C- r# a# v$ u' T4 n
代码: { #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; } 6 N m' W r5 P8 N. U
如果你想不仅为管理这一点,你必须始终0 s! M+ ~. k) S# [+ L
代码: else if(pUser->m_dwAuthorization == AUTHORIZATION) strcat( szName, "Admin][" );
, e" l7 r ?( I+ d, `1 b6 b补充。
7 e6 x2 x2 o; B/ e- x4 Y1 K% z
q# ]+ @' T6 D6 x; u3 s5 `
3 {- P2 Q+ f3 K0 [& X下面是与使用/ SYS解决不同的授权清单:, E; {0 t* F5 l/ V! Y
代码: AUTH_GAMEMASTER1 //Gamemaster lvl 1 AUTH_GAMEMASTER2 //Gamemaster lvl 2 AUTH_GAMEMASTER3 //Gamemaster lvl 3 AUTH_ADMINISTRATOR //Administrator & k+ B! Z4 y. ~
希望你喜欢指导,批评是欢迎的。
. I- E. J5 l" i# i5 F
# B+ A. L8 j6 \( ]% ]& r制作所Pumbaaa ) G3 d. x' O9 G0 c: w% ?, R
|