|
嘿COM,+ s$ i1 [1 Y, ]; s' F. l( ~
NEN有点无聊和我开始思考,我写的关于如何得到从GM -喊名字一点时间NEN啧。
" {: v8 k/ I: u8 ]- C! I4 ?+ p' B" v后,整个看起来像这样:: Q o! Z- _+ v: O5 }* N
1 w: j7 l9 m) \8 h- y2 E
+ |( C# l9 I/ y; h' w5 `
可我第一次补习,所以如果有批评,请说,从而提高自我。
1 R7 F! w' Y1 G9 w我不知道我的代码是最优的,肯定有一个更好的解决办法,我还是C ++初学者。
- v# h% K2 y2 R9 B) H) v2 N2 g) U! l
o) p$ Q8 @; p- M5 \6 x所以,当你第一次打开了FuncTextCmd.cpp和搜索
( z) a4 J. @2 G* Z
7 i3 `' f0 N; W' ~; N% B/ c* ^代码: BOOL TextCmd_System( CScanner& scanner )
& C& I8 U' G. r8 |2 P8 G: U# ?( \在那里,您会发现:
6 J, E6 g1 v& a, e代码: { #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; }
. i( ?& u6 e9 @1 ~现在我们引入一个新的变量,我只需调用szName的
& i: h6 W+ p+ Q# p$ w0 R" j那么整个事情看起来像这样:
9 O% S D7 A0 j1 K. ^: Q1 E代码: { #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; } 0 R8 m2 @" r! R% l
变量我们也等于“[”拯救我们以后的工作XD
+ J( ~3 r" ~6 y7 g. z6 V) X3 I2 C0 @/ r1 J8 b5 @$ ^0 W r
然后,我们明确了scanner.GetLastFull测试()源;在g_DPCoreClient.SendSystem(szString)。. E2 ^# a! b9 \' r0 J
0 w' {! U$ f; V, v( N4 f+ T. y
整个事情是这样的:6 _8 X3 ?! l2 G
代码: { #ifdef __WORLDSERVER CHAR szString[512] = ""; CHAR szName[512] = "["; CUser* pUser =(CUser*)scanner.dwValue; #endif // __WORLDSERVER return TRUE; } ; Y! D3 T0 ]% P% L9 m
并提出了下列:
( U: e% l: @, `, o代码: { #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; }
: y. Y2 ^! V. c$ @现在,通用汽车应该喊这样的:
1 ~1 ]9 F9 } h代码: [GM Information][NAME] TEXT ! `, U; @8 ^0 _! ]6 |6 b) ?. X
现在,如果你仍然希望出现这种情况,例如有管理员将需要插入她的下列内容:
. `& C7 D1 i1 X3 _: y# j代码: { #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 q$ R f7 b+ n$ O$ I9 G
如果你想不仅为管理这一点,你必须始终5 ?" C/ P2 J6 w4 R4 O4 r) C- w
代码: else if(pUser->m_dwAuthorization == AUTHORIZATION) strcat( szName, "Admin][" ); 4 J( Q0 f: a" G' i) b
补充。
7 _7 b; ^) b5 M' i5 Q( p% U V7 U2 [
5 {) s6 a/ c2 O7 R7 S" k2 @% K下面是与使用/ SYS解决不同的授权清单:
( l* S& ?! O9 v& j1 g4 L+ P代码: AUTH_GAMEMASTER1 //Gamemaster lvl 1 AUTH_GAMEMASTER2 //Gamemaster lvl 2 AUTH_GAMEMASTER3 //Gamemaster lvl 3 AUTH_ADMINISTRATOR //Administrator / I. L- H) D' @" L7 h# `! V( {* C
希望你喜欢指导,批评是欢迎的。3 j) t3 T7 K# ^( G3 k
) V/ T1 ~" Q! L5 C& D) T制作所Pumbaaa 0 c O# K" ^$ F4 p7 Y) [. a
|