|
嘿COM,* v& X6 M" h* N8 f4 e o% s5 x
NEN有点无聊和我开始思考,我写的关于如何得到从GM -喊名字一点时间NEN啧。2 L, {8 ]% q4 u/ c
后,整个看起来像这样: H' }7 @2 I: [; R
7 X: e# Y& Z2 F9 H* q
/ \, E7 }% \, x可我第一次补习,所以如果有批评,请说,从而提高自我。
3 v* c% n e/ x6 C# {我不知道我的代码是最优的,肯定有一个更好的解决办法,我还是C ++初学者。$ s! @% {& E5 {5 g
+ @/ B6 i# r) @所以,当你第一次打开了FuncTextCmd.cpp和搜索
: ?5 U& @( R- O2 J5 l5 F7 G
2 t4 `! u! D4 P- D W3 T. m代码: BOOL TextCmd_System( CScanner& scanner )
' q& @: u. G3 K/ ^在那里,您会发现:
! ~7 w! W4 ^, Z2 ^3 I8 h6 d- I. U7 N' ?代码: { #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; }
% f6 ? `4 ]2 k: a现在我们引入一个新的变量,我只需调用szName的
$ l* l1 S! P1 q7 |- Q那么整个事情看起来像这样:# T% Q" l4 V# R `+ O
代码: { #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/ W$ Z1 b) l8 T9 r变量我们也等于“[”拯救我们以后的工作XD# b0 D( V' k! t! c4 w9 R
4 C @( `% R( v7 D0 T( ~" _! g
然后,我们明确了scanner.GetLastFull测试()源;在g_DPCoreClient.SendSystem(szString)。
+ U* Z7 U9 r6 M1 Z0 T. p. J0 |1 i+ p& f5 H) A/ v* G/ k7 @/ b
整个事情是这样的:9 v# J) K/ U' z* ^5 ]0 f
代码: { #ifdef __WORLDSERVER CHAR szString[512] = ""; CHAR szName[512] = "["; CUser* pUser =(CUser*)scanner.dwValue; #endif // __WORLDSERVER return TRUE; } 9 O* W5 a0 S% Y8 S5 W, f2 t8 l* Q R
并提出了下列:
6 v" e1 R2 T0 r% y7 Q: i0 v代码: { #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; } 4 b R/ e( A t! v. h: g1 z2 Y
现在,通用汽车应该喊这样的:
) Q" i% O% ~& o5 F代码: [GM Information][NAME] TEXT
& }, P; z: v3 J现在,如果你仍然希望出现这种情况,例如有管理员将需要插入她的下列内容:
6 H$ r9 r! m# I }0 f! B ^代码: { #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; }
' N- w% \) j5 _) `如果你想不仅为管理这一点,你必须始终
( R0 d& e/ l" p6 i6 u代码: else if(pUser->m_dwAuthorization == AUTHORIZATION) strcat( szName, "Admin][" );
( T1 R1 q: Z5 h. g- g6 w补充。5 e) c( w" m! o" M3 e* n
5 b# B% N1 h$ A# d( D7 M Z
: c0 O. ^# P6 Z; I d- I# r
下面是与使用/ SYS解决不同的授权清单:9 W5 ^9 r: k v5 `
代码: AUTH_GAMEMASTER1 //Gamemaster lvl 1 AUTH_GAMEMASTER2 //Gamemaster lvl 2 AUTH_GAMEMASTER3 //Gamemaster lvl 3 AUTH_ADMINISTRATOR //Administrator + j7 |- b1 X0 R# L1 X
希望你喜欢指导,批评是欢迎的。$ N. Q) a U; b" C( A
7 f( p/ v! ?6 c9 m% E% Y" V; }制作所Pumbaaa 1 [0 M% t! L* g& b7 L, f- g
|