|
嘿COM,- H3 ^* Z* p4 `6 x Z: j& i
NEN有点无聊和我开始思考,我写的关于如何得到从GM -喊名字一点时间NEN啧。
9 v" p- t# p9 G, K1 D7 ~$ n$ o0 }! D后,整个看起来像这样:) F- Y7 x$ _, H8 T
6 f+ p8 X- T: o$ j& B$ e8 I
/ @( J }7 a* o7 c可我第一次补习,所以如果有批评,请说,从而提高自我。
' X# M0 V! X6 X1 D7 L, [' { n6 Q我不知道我的代码是最优的,肯定有一个更好的解决办法,我还是C ++初学者。
$ c# _8 \3 p5 l; A9 n4 R+ i" b2 B9 E# u
所以,当你第一次打开了FuncTextCmd.cpp和搜索& |- j8 t( ?/ B# m
+ m/ o' i: i& h9 y( w代码: BOOL TextCmd_System( CScanner& scanner )
, K4 F" \5 X" e5 s在那里,您会发现:! l; s Z+ i) `) 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; }
6 T: f1 n+ Q) M; c现在我们引入一个新的变量,我只需调用szName的' { o* W/ q$ S& Q* Q* R7 m2 ^
那么整个事情看起来像这样:% X8 ^: r$ T" \3 K( n: T* p
代码: { #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; } & j; w; ^7 k; b/ s e, h$ n# {
变量我们也等于“[”拯救我们以后的工作XD; N# s" }$ i3 @! I7 t0 K' d
8 X) v: Y9 V$ T m; q0 K
然后,我们明确了scanner.GetLastFull测试()源;在g_DPCoreClient.SendSystem(szString)。( |+ \7 j/ |3 Y! D) e6 h8 Q9 `5 q
3 t" m8 c* t7 _5 o$ ~/ `/ B
整个事情是这样的:
! B5 K8 i# C3 C4 y/ `6 D代码: { #ifdef __WORLDSERVER CHAR szString[512] = ""; CHAR szName[512] = "["; CUser* pUser =(CUser*)scanner.dwValue; #endif // __WORLDSERVER return TRUE; }
0 @: m! [0 F. @4 [9 Z, d并提出了下列:1 `/ j* B W2 P" S3 t
代码: { #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; }
! [0 H: ]1 J$ E. |9 r现在,通用汽车应该喊这样的:
& v; R$ C8 Z% q, v9 ^7 z代码: [GM Information][NAME] TEXT * d) F' f3 s' A- q7 y% w
现在,如果你仍然希望出现这种情况,例如有管理员将需要插入她的下列内容:$ I) V. L0 D1 q' O( j+ |/ E0 K
代码: { #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; }
' I/ p# K! ~* k如果你想不仅为管理这一点,你必须始终2 h* V$ {$ S0 L5 C+ A1 \# }2 J
代码: else if(pUser->m_dwAuthorization == AUTHORIZATION) strcat( szName, "Admin][" ); / g) _: N7 I5 F& E$ y8 C. r0 [
补充。& y% t2 f( O/ y" [; s, t* `
8 c" I2 r. r4 N. U& U2 R
- _ A5 G: @- k) {1 ?2 Y; F下面是与使用/ SYS解决不同的授权清单:; w+ c& L& i6 C" r2 t
代码: AUTH_GAMEMASTER1 //Gamemaster lvl 1 AUTH_GAMEMASTER2 //Gamemaster lvl 2 AUTH_GAMEMASTER3 //Gamemaster lvl 3 AUTH_ADMINISTRATOR //Administrator
2 \" O& O* G0 t0 O2 f" \希望你喜欢指导,批评是欢迎的。+ k4 I' f- ^# Z6 [
& |5 }6 }6 }' A# @6 q
制作所Pumbaaa
8 o; @/ P- C6 G/ R0 T. [3 m6 S: w |