|
嘿COM,
B o4 R2 N5 t% ] pNEN有点无聊和我开始思考,我写的关于如何得到从GM -喊名字一点时间NEN啧。
! f ^& s8 Y) V* M后,整个看起来像这样:
9 y& y$ j8 g/ F/ M! \0 h- i ' s2 H( p' d3 g
& i! T' K+ }$ O# s8 i
可我第一次补习,所以如果有批评,请说,从而提高自我。# t+ ]7 c. V5 \
我不知道我的代码是最优的,肯定有一个更好的解决办法,我还是C ++初学者。
: z0 l: w- k; l* D- n5 j* _
5 M: K- M, C; T! C( [' U6 C所以,当你第一次打开了FuncTextCmd.cpp和搜索. V; d1 ~6 e) z& @) a8 o$ x
" H8 H: l# A0 _代码: BOOL TextCmd_System( CScanner& scanner ) $ P+ U6 }0 O: ?$ C6 K, E/ z2 m
在那里,您会发现:
) j' V* @( ^ j# w, o代码: { #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 Z% w) D& m; S' l5 c6 _
现在我们引入一个新的变量,我只需调用szName的
6 e* k2 \5 C" j那么整个事情看起来像这样:' }$ o: c2 N3 u# a* c
代码: { #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; } 3 W( r+ n" X, u; F- h4 I
变量我们也等于“[”拯救我们以后的工作XD! l p3 c* _1 f3 G C
6 O. d( p+ E" ^; ` {然后,我们明确了scanner.GetLastFull测试()源;在g_DPCoreClient.SendSystem(szString)。- ~% t3 L v* Z' ^( J
9 g1 n: \0 t- O整个事情是这样的:4 `0 h8 v, r& w O% a8 o2 b, {
代码: { #ifdef __WORLDSERVER CHAR szString[512] = ""; CHAR szName[512] = "["; CUser* pUser =(CUser*)scanner.dwValue; #endif // __WORLDSERVER return TRUE; }
# c% k+ }8 h( P5 c% L- p5 U1 m$ J8 D" ~并提出了下列:
+ ]2 Q( V) T( [3 I' k1 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; } 0 H$ U; V4 u& H L' d) S
现在,通用汽车应该喊这样的:
: J% Q3 n; [8 k! j# ?6 n1 x代码: [GM Information][NAME] TEXT " ^6 i2 L1 g% O9 X) V6 N2 Z
现在,如果你仍然希望出现这种情况,例如有管理员将需要插入她的下列内容:( M& o7 g' c. t' q6 B, T
代码: { #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; } + K# y% ]! V2 `6 R8 o6 E
如果你想不仅为管理这一点,你必须始终
8 l9 r: w5 r! [8 `, H- |2 n代码: else if(pUser->m_dwAuthorization == AUTHORIZATION) strcat( szName, "Admin][" ); 6 {# {1 e w) k! T$ y1 X
补充。$ _3 r9 }. q# J) F. B1 t7 `- u! Y
5 i! u3 Y3 B, w- p& r, x u* b; e& e% \6 m& u3 R6 @$ f4 c
下面是与使用/ SYS解决不同的授权清单:
( t: S8 |& p9 {' s2 ]% I' u$ e代码: AUTH_GAMEMASTER1 //Gamemaster lvl 1 AUTH_GAMEMASTER2 //Gamemaster lvl 2 AUTH_GAMEMASTER3 //Gamemaster lvl 3 AUTH_ADMINISTRATOR //Administrator 3 m1 _" B6 ?: ~: i7 d d c
希望你喜欢指导,批评是欢迎的。
: |- b) w5 e: \, l4 p. a3 a& K+ B/ | L0 y
制作所Pumbaaa
8 ~" ~$ l1 u8 v, X |