嘿COM,0 B& j. r% C# v
NEN有点无聊和我开始思考,我写的关于如何得到从GM -喊名字一点时间NEN啧。
+ y$ i+ H2 B, R3 z9 u后,整个看起来像这样:
4 H0 k/ Q6 \/ V( F0 A , T$ b0 F) i3 \) _# C
4 N8 ?; }& S. b
可我第一次补习,所以如果有批评,请说,从而提高自我。
8 I$ F6 D0 B6 H7 `2 j* f: @* b我不知道我的代码是最优的,肯定有一个更好的解决办法,我还是C ++初学者。
" {0 K% g* S) o
/ g- f3 y+ r5 \( X所以,当你第一次打开了FuncTextCmd.cpp和搜索
! M% d" s9 l2 ` w* m- ~
: }" _) d0 O% ~! R& r# \代码: BOOL TextCmd_System( CScanner& scanner )
+ N% a5 `( g5 y; N2 _在那里,您会发现:) u. S7 [) U' h4 X& G1 w
代码: { #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; } - l+ W$ @) s! c7 u# m2 f Q( d
现在我们引入一个新的变量,我只需调用szName的5 X5 n; t# t0 p! @
那么整个事情看起来像这样:# u$ ~# ?+ r f$ _4 u1 q$ f9 `) }
代码: { #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; }
) ~* U4 ~- D9 v( \变量我们也等于“[”拯救我们以后的工作XD; x- Z& H9 `0 x- U7 ~5 @4 h1 L% `
$ N% L! ]$ Q- o" O n
然后,我们明确了scanner.GetLastFull测试()源;在g_DPCoreClient.SendSystem(szString)。
$ k) w$ M* i% w1 Z" H1 w, V/ G C( u, t; n) _
整个事情是这样的:! h! \. @$ i0 O7 j
代码: { #ifdef __WORLDSERVER CHAR szString[512] = ""; CHAR szName[512] = "["; CUser* pUser =(CUser*)scanner.dwValue; #endif // __WORLDSERVER return TRUE; }
7 u8 S3 [, u$ i并提出了下列:
) B* W8 [5 b8 m/ J- z1 t( d6 i9 t% G代码: { #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 w/ u: S- |2 S- R- G7 |
现在,通用汽车应该喊这样的:
* v" Z; o2 |( f% G) p4 p" {代码: [GM Information][NAME] TEXT . a5 A( z: I! k$ \0 @% K4 i
现在,如果你仍然希望出现这种情况,例如有管理员将需要插入她的下列内容:
# K/ @4 t5 a/ R( 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; }
/ \/ o% K- G3 M# O4 [如果你想不仅为管理这一点,你必须始终5 e( |$ r- H3 i. ~
代码: else if(pUser->m_dwAuthorization == AUTHORIZATION) strcat( szName, "Admin][" ); . U" K9 D/ k2 m9 @/ L' w8 {
补充。3 X4 u$ g6 g- O$ {! w1 x
* S: p* n$ c! x' E+ o- M- h$ G" H2 N; H+ s! A
下面是与使用/ SYS解决不同的授权清单:" y& C$ [+ Y2 \# l% W6 Y% @
代码: AUTH_GAMEMASTER1 //Gamemaster lvl 1 AUTH_GAMEMASTER2 //Gamemaster lvl 2 AUTH_GAMEMASTER3 //Gamemaster lvl 3 AUTH_ADMINISTRATOR //Administrator 8 h A2 }' R4 ?
希望你喜欢指导,批评是欢迎的。
' `/ E1 }9 A! O$ k9 H1 D0 v- Q+ v7 c5 u4 U; ^" d! o0 F
制作所Pumbaaa N! a O2 D& M B* N$ n8 F/ _
|