嘿COM,
# e$ ?* x$ A Y' S* Y4 DNEN有点无聊和我开始思考,我写的关于如何得到从GM -喊名字一点时间NEN啧。
4 i# v( O- E. Z8 A$ R6 S9 \后,整个看起来像这样:5 u) j) Z$ [. s2 O) g0 M! N
+ L- | N9 U2 E0 `# n" ~- V7 L$ U6 m
可我第一次补习,所以如果有批评,请说,从而提高自我。
. l& A; ?$ Q7 }+ a我不知道我的代码是最优的,肯定有一个更好的解决办法,我还是C ++初学者。0 T5 f/ C+ C1 N8 E1 L
+ J0 _& J5 ~+ ?( a
所以,当你第一次打开了FuncTextCmd.cpp和搜索
5 w+ G; r! X. F4 f; u$ ]* J
* y8 _) f# i7 f0 E, p代码: BOOL TextCmd_System( CScanner& scanner )
* I3 \6 {- c+ |% E" J* c在那里,您会发现:
9 p# q3 u& N5 ~代码: { #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; }
0 c* h2 T/ K) W3 M; u现在我们引入一个新的变量,我只需调用szName的
: g. R! e4 U9 h# \0 i$ E Z9 G, v& _那么整个事情看起来像这样:
: M1 t' F" l, g( w- c% o8 s R3 Z代码: { #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; } ( K: L1 p' N/ j$ Q% A- L+ J* o- n
变量我们也等于“[”拯救我们以后的工作XD" _" {. f& s8 X
& j- Q+ ?; I5 d' {6 i! _然后,我们明确了scanner.GetLastFull测试()源;在g_DPCoreClient.SendSystem(szString)。8 N' Q6 O( L+ Q; Z# F
! E4 b3 }0 P' @ r o2 j* U9 _$ W$ b
整个事情是这样的:/ Y$ }( R) K4 i4 V9 f$ c
代码: { #ifdef __WORLDSERVER CHAR szString[512] = ""; CHAR szName[512] = "["; CUser* pUser =(CUser*)scanner.dwValue; #endif // __WORLDSERVER return TRUE; } 2 L/ a% r6 M+ R q: r3 r' j9 d! P" r
并提出了下列:
2 Z: K+ P( y8 Q; L2 }# e; c代码: { #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; }
6 G& Z! g# }2 p J( K1 c5 {现在,通用汽车应该喊这样的:) p! n5 S0 x7 L, w* x
代码: [GM Information][NAME] TEXT ; i7 @( R! o: i5 T) N' S
现在,如果你仍然希望出现这种情况,例如有管理员将需要插入她的下列内容:; h9 g7 H8 a" G9 g x+ G! P' 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; }
+ I" x$ |1 `0 ^# B/ {- X6 m2 w如果你想不仅为管理这一点,你必须始终; s) `2 ]8 e9 l4 u. T/ i
代码: else if(pUser->m_dwAuthorization == AUTHORIZATION) strcat( szName, "Admin][" ); - G6 m5 O* s+ G, z! e; @* Z" Y
补充。
* {/ p8 w t" j( c6 u" j; u
8 s( }" x$ n' r/ r8 r. W% q( |/ v+ T9 [0 L6 G
下面是与使用/ SYS解决不同的授权清单:4 \* _( K5 `8 d% @
代码: AUTH_GAMEMASTER1 //Gamemaster lvl 1 AUTH_GAMEMASTER2 //Gamemaster lvl 2 AUTH_GAMEMASTER3 //Gamemaster lvl 3 AUTH_ADMINISTRATOR //Administrator
* o5 u4 {/ A+ a3 y6 f/ t希望你喜欢指导,批评是欢迎的。. g3 |0 Q8 ^* f' @4 `+ |' p
- A' m! p2 V& Q! ?
制作所Pumbaaa ; j+ A+ Q7 {8 ]
|