嘿COM,
0 c0 I: ?: B$ d/ s: LNEN有点无聊和我开始思考,我写的关于如何得到从GM -喊名字一点时间NEN啧。
$ l |8 r3 ~/ b. a+ R后,整个看起来像这样: @8 ^( ~( g4 O( g
; ^6 G5 T( L k. B8 Q& ^( O: H; z2 Q& X$ r" I& w
可我第一次补习,所以如果有批评,请说,从而提高自我。 K1 I8 J2 Q3 E4 S; D& `- k7 ~8 i
我不知道我的代码是最优的,肯定有一个更好的解决办法,我还是C ++初学者。6 R$ h* G) f+ t" E
9 k8 |2 a Q4 f" H3 r7 _ M% R
所以,当你第一次打开了FuncTextCmd.cpp和搜索- P( U7 O( M5 o ^
2 B3 I; U) Z' _5 p; v2 ~
代码: BOOL TextCmd_System( CScanner& scanner ) 6 m0 s" v- T1 {" H" g5 V
在那里,您会发现:
2 G S* o: k9 _. ^: Q. L代码: { #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; } 2 L* H r/ y* j0 c. ^4 Y" ]1 l: `
现在我们引入一个新的变量,我只需调用szName的
5 `0 }& _ D' ?2 z那么整个事情看起来像这样:8 g+ v8 d3 t4 ^- G- \+ N
代码: { #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; }
) N2 M7 A H7 l/ }7 ~+ \变量我们也等于“[”拯救我们以后的工作XD0 X7 o# n7 ^" W! e$ c; H# M
& O* ?9 }# E7 ? Y& d/ S7 C
然后,我们明确了scanner.GetLastFull测试()源;在g_DPCoreClient.SendSystem(szString)。
) v' x$ M, B5 ~( D2 C/ [ T) N! x( E: Z* v( g
整个事情是这样的:
& G- ]8 W6 V) Q2 `* M+ N7 t代码: { #ifdef __WORLDSERVER CHAR szString[512] = ""; CHAR szName[512] = "["; CUser* pUser =(CUser*)scanner.dwValue; #endif // __WORLDSERVER return TRUE; }
5 G1 p$ W% y4 t }* H0 {4 D并提出了下列:
) {" Y2 |1 \8 ~" [4 ?代码: { #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; }
[9 j# K2 h( u1 P5 {% S现在,通用汽车应该喊这样的:
/ a& E" ^1 a# O3 ?) U代码: [GM Information][NAME] TEXT
a+ h2 }# e7 J+ G6 _% ~现在,如果你仍然希望出现这种情况,例如有管理员将需要插入她的下列内容:
5 a' \9 R: K( k" D7 W& ^; Q# u代码: { #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; } + Q9 n& t9 Q/ F
如果你想不仅为管理这一点,你必须始终6 ^2 W: H, {6 h& ?
代码: else if(pUser->m_dwAuthorization == AUTHORIZATION) strcat( szName, "Admin][" ); " y% C6 @1 ?! B V$ N
补充。
+ m x9 _: ]! f7 X
& Q: v9 ~, d; o3 Z' w( _* U1 H$ k
, U) ]) V, D" k6 u下面是与使用/ SYS解决不同的授权清单:
+ O; y% ?) I6 [& s/ u2 ~代码: AUTH_GAMEMASTER1 //Gamemaster lvl 1 AUTH_GAMEMASTER2 //Gamemaster lvl 2 AUTH_GAMEMASTER3 //Gamemaster lvl 3 AUTH_ADMINISTRATOR //Administrator
4 V, j1 G3 e9 A2 \8 b" x希望你喜欢指导,批评是欢迎的。0 n2 ^" @0 v: p* R; w
, } z# v" C3 E6 |% l: Q
制作所Pumbaaa
. D2 A3 r# C* V9 n u8 b |