|
嘿COM,
7 h1 o% k- H! f0 H9 }& INEN有点无聊和我开始思考,我写的关于如何得到从GM -喊名字一点时间NEN啧。
+ M! I( K& H6 }# q0 e6 `后,整个看起来像这样:- t3 r& T9 Q$ y1 K0 U8 P
/ i2 t% S; m" _2 u9 W, A) X: m
2 U! Z% ?1 ^8 J+ K可我第一次补习,所以如果有批评,请说,从而提高自我。! e& Z6 K# R5 a" G
我不知道我的代码是最优的,肯定有一个更好的解决办法,我还是C ++初学者。
4 C N) ?) M Q/ }1 P- Z8 |+ O& _5 e0 N. G5 w" p+ d
所以,当你第一次打开了FuncTextCmd.cpp和搜索
$ v, l3 K) ]! ~: o- F$ t/ M4 N. ^6 R# x4 G4 T
代码: BOOL TextCmd_System( CScanner& scanner )
1 o) L1 k0 N8 ?在那里,您会发现:
7 C& E! w( c0 w! U代码: { #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; } & k$ U3 m5 c$ r3 R$ u- V
现在我们引入一个新的变量,我只需调用szName的
, e8 @% T2 t/ n% K7 J2 r那么整个事情看起来像这样:+ @2 L5 _1 n2 ^
代码: { #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; } 8 X Y; ?: u6 ] t
变量我们也等于“[”拯救我们以后的工作XD
; } H; w+ B2 N. V- t+ F
! t' x. q$ w1 w然后,我们明确了scanner.GetLastFull测试()源;在g_DPCoreClient.SendSystem(szString)。
3 L: u, P' h! W2 H$ V$ P" e9 W8 y! G( Z0 o0 T- C, b
整个事情是这样的:
6 U9 M9 J/ P: l+ J& a# b* N代码: { #ifdef __WORLDSERVER CHAR szString[512] = ""; CHAR szName[512] = "["; CUser* pUser =(CUser*)scanner.dwValue; #endif // __WORLDSERVER return TRUE; } E# t' S- V& Y: l5 m G- B4 @
并提出了下列:
2 Y8 a4 Q2 T; B/ k代码: { #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; } 2 C& W0 v5 s% n4 g6 f
现在,通用汽车应该喊这样的:
- t; N6 b+ P; @; c/ P+ L% ~代码: [GM Information][NAME] TEXT
0 ]& l0 |: W! A- m: `4 q& t现在,如果你仍然希望出现这种情况,例如有管理员将需要插入她的下列内容:
7 s" a! }3 i3 _; L! ~代码: { #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; }
) b) U6 C, ~8 i, w& m8 e0 u如果你想不仅为管理这一点,你必须始终! S# ^- k; Z4 |9 s& O4 R. c- O
代码: else if(pUser->m_dwAuthorization == AUTHORIZATION) strcat( szName, "Admin][" );
0 T* _4 V1 C: x7 Y: |+ g补充。
+ |9 Y& S. D9 P9 {( q
3 \8 \& ^( c- Y7 O" ~
2 `8 y8 h$ v J/ F下面是与使用/ SYS解决不同的授权清单:
# o0 s! ]. a' E6 P+ D. Y9 H8 O6 R代码: AUTH_GAMEMASTER1 //Gamemaster lvl 1 AUTH_GAMEMASTER2 //Gamemaster lvl 2 AUTH_GAMEMASTER3 //Gamemaster lvl 3 AUTH_ADMINISTRATOR //Administrator 5 I {8 t! \/ ^2 K+ b
希望你喜欢指导,批评是欢迎的。5 a( C" V6 W: N2 L7 s
+ k- D! H6 T- M( l0 n
制作所Pumbaaa ' ~: J+ E+ ^8 M2 b" I- S* {3 K' Y
|