|
嘿COM,' q0 q/ e1 Y' X$ {
NEN有点无聊和我开始思考,我写的关于如何得到从GM -喊名字一点时间NEN啧。
/ I8 J) \" e. J$ K后,整个看起来像这样:2 F) _# p. X& b1 [! P
7 f) b9 d. h: D& D# _* Z( N1 b
: b4 K4 }1 [& l+ }* x% O5 z) S
可我第一次补习,所以如果有批评,请说,从而提高自我。
* z: x: R" a8 D; T8 t我不知道我的代码是最优的,肯定有一个更好的解决办法,我还是C ++初学者。
T- m3 M' K0 x$ y; T6 G1 f3 I! Y3 W/ p6 B9 N
所以,当你第一次打开了FuncTextCmd.cpp和搜索* h1 S) K& k1 P1 g4 S6 a
/ | D _: _' J
代码: BOOL TextCmd_System( CScanner& scanner )
- k! v& w5 ~2 l, X4 z在那里,您会发现:
( R6 f+ \# E8 g, [) M1 `* 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; }
4 K* l# J+ C e6 @9 ` s现在我们引入一个新的变量,我只需调用szName的+ s1 C, b t' b/ Z# A8 X1 f
那么整个事情看起来像这样:
4 B/ B5 t% c4 S; @# z; `代码: { #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; } . g ^$ n3 Z2 q( A0 q
变量我们也等于“[”拯救我们以后的工作XD
5 A9 e! ^5 v* j* P4 j( n$ L# T" q2 Z- C- I$ S! P. }
然后,我们明确了scanner.GetLastFull测试()源;在g_DPCoreClient.SendSystem(szString)。3 I: s+ ?) E. c! P2 w7 Z3 w7 s, D
' ~7 L2 q; x/ A
整个事情是这样的:
) [8 T) W7 i$ U( t" h* p代码: { #ifdef __WORLDSERVER CHAR szString[512] = ""; CHAR szName[512] = "["; CUser* pUser =(CUser*)scanner.dwValue; #endif // __WORLDSERVER return TRUE; }
* J/ e, X5 A. @7 l, T并提出了下列:
) l3 A7 A1 c( C% P: @- e) ]6 }2 ^代码: { #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; }
! |& h3 A7 X% E. l. c现在,通用汽车应该喊这样的:
; ] J- a5 y0 p# b% W" p代码: [GM Information][NAME] TEXT
# z4 j4 h* x' `6 x2 a. a现在,如果你仍然希望出现这种情况,例如有管理员将需要插入她的下列内容:
1 _6 g' O" Z4 s2 D$ @6 b5 W+ f代码: { #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; } ' v- z8 i' Q6 `
如果你想不仅为管理这一点,你必须始终# \8 j1 t: x1 P
代码: else if(pUser->m_dwAuthorization == AUTHORIZATION) strcat( szName, "Admin][" );
4 \* j e% h( K9 k) Y1 D补充。0 y1 Y* C' x& u' o
?! i7 j: i6 P- Y' M$ ^+ ~& U$ w, z& P1 S
下面是与使用/ SYS解决不同的授权清单:
) z2 e o) s [# o, z h代码: AUTH_GAMEMASTER1 //Gamemaster lvl 1 AUTH_GAMEMASTER2 //Gamemaster lvl 2 AUTH_GAMEMASTER3 //Gamemaster lvl 3 AUTH_ADMINISTRATOR //Administrator
$ e: J2 p# |8 ]3 d5 m2 t* r希望你喜欢指导,批评是欢迎的。4 @. y, ] F% W, n* m% D
+ I6 O: P s* p制作所Pumbaaa
' B7 ~+ X( @/ q |