|
嘿COM,
4 ]" F- K) @, {, f) ?. H8 WNEN有点无聊和我开始思考,我写的关于如何得到从GM -喊名字一点时间NEN啧。6 E# P8 t. `# u9 a3 E' y0 C( {8 b
后,整个看起来像这样:
! S; z1 y) H7 O
3 E j3 R" v& i4 b2 I! W# D" z' o5 m" ]: v' x5 A
可我第一次补习,所以如果有批评,请说,从而提高自我。" U+ }# X, E! y9 ]: ?
我不知道我的代码是最优的,肯定有一个更好的解决办法,我还是C ++初学者。1 b- f" Y8 X5 c( n/ n2 ]' l
5 R# I2 K$ w9 | Z$ M8 {所以,当你第一次打开了FuncTextCmd.cpp和搜索; ]4 _0 K% {! e7 F! T4 D6 q
F: Z4 g( Z; N" P8 ^代码: BOOL TextCmd_System( CScanner& scanner ) . Q! i; o* n5 o2 F* u
在那里,您会发现:
& ?2 r% i i( L7 ]+ r代码: { #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; }
* v* G. w/ ^0 l% d现在我们引入一个新的变量,我只需调用szName的
* X3 h& D+ D1 y那么整个事情看起来像这样:) c/ y! j+ V ^0 z4 ^. @( d: ~
代码: { #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; }
% ?( p% y1 d" ^& p. c变量我们也等于“[”拯救我们以后的工作XD
. H& ^& |7 D, S
; @4 H2 l5 p) |然后,我们明确了scanner.GetLastFull测试()源;在g_DPCoreClient.SendSystem(szString)。
) M- u; m2 c1 v _2 }9 a" H/ r; I! H0 Q% U/ @% V) K
整个事情是这样的:
$ k- N) z2 v8 u6 a3 C代码: { #ifdef __WORLDSERVER CHAR szString[512] = ""; CHAR szName[512] = "["; CUser* pUser =(CUser*)scanner.dwValue; #endif // __WORLDSERVER return TRUE; }
9 s5 X8 z( o3 a, ?并提出了下列:
1 T9 M7 i8 t; E代码: { #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; }
( r/ }9 ~7 v/ K; m% f i/ P现在,通用汽车应该喊这样的:1 L$ f7 h {( @2 U
代码: [GM Information][NAME] TEXT 2 ]% g- E a& f& m, W' b6 S
现在,如果你仍然希望出现这种情况,例如有管理员将需要插入她的下列内容:
: o: [/ Q5 g9 Z代码: { #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; }
) T0 V9 i- k4 A, W/ v g3 d- o/ O* |如果你想不仅为管理这一点,你必须始终0 \/ R Q" K: \' L) V& W! N
代码: else if(pUser->m_dwAuthorization == AUTHORIZATION) strcat( szName, "Admin][" );
: ]6 H) R j( o3 k. b7 O |补充。
1 j% K: _' W% J& E
! G7 o: i$ c6 L0 Y( u
7 Z$ L0 s I' s& V" v( |$ a% m$ j下面是与使用/ SYS解决不同的授权清单:
! R+ b! P$ v9 ?- q代码: AUTH_GAMEMASTER1 //Gamemaster lvl 1 AUTH_GAMEMASTER2 //Gamemaster lvl 2 AUTH_GAMEMASTER3 //Gamemaster lvl 3 AUTH_ADMINISTRATOR //Administrator
3 `5 {; r7 q3 Y+ U/ |9 c希望你喜欢指导,批评是欢迎的。3 m6 P6 B2 J# i7 @
! \8 p1 |8 l) o' N: m5 ~; G
制作所Pumbaaa
0 F. ?/ C, u) e) k1 _2 _4 k |