嘿COM,* D7 ?3 ?1 s" s- D# ]
NEN有点无聊和我开始思考,我写的关于如何得到从GM -喊名字一点时间NEN啧。- `: A# k: A) x. u# G+ G
后,整个看起来像这样: [2 ?/ B9 r1 o Z
9 F" d- g! o4 R9 h/ V. a! c7 R
5 Z: _; q+ v( y, |5 W# H可我第一次补习,所以如果有批评,请说,从而提高自我。$ H% ?' g" }/ z% m" x
我不知道我的代码是最优的,肯定有一个更好的解决办法,我还是C ++初学者。
' i7 t) C0 e9 X: }0 l# @3 w$ S! K' J: t* @/ t" I# }
所以,当你第一次打开了FuncTextCmd.cpp和搜索, r- M0 g; v) }4 o+ X) k' Y
+ t# y4 R8 ^- w+ }( t代码: BOOL TextCmd_System( CScanner& scanner ) - w: J7 u- {7 ~7 ?3 }+ F: e
在那里,您会发现:
) Y0 t; w9 F) u3 f% t代码: { #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; }
$ n4 U$ k1 X. X2 ?现在我们引入一个新的变量,我只需调用szName的
6 K! c, @* p4 D7 n, d! s" X那么整个事情看起来像这样:( O7 W0 ^/ ?* [$ J7 T: n2 l
代码: { #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; }
! Z, M* C; x) U H% ~: `5 L变量我们也等于“[”拯救我们以后的工作XD
! Y5 k$ L4 w* [; n: t9 d- S
; [' |/ F( k8 n5 c( |9 t3 l& B然后,我们明确了scanner.GetLastFull测试()源;在g_DPCoreClient.SendSystem(szString)。
# |- V; k; d9 z; j' s$ l) T% g0 b: S/ r O5 ^: F# V
整个事情是这样的:( x5 S* M+ j/ F! X1 c- X3 c" c' O
代码: { #ifdef __WORLDSERVER CHAR szString[512] = ""; CHAR szName[512] = "["; CUser* pUser =(CUser*)scanner.dwValue; #endif // __WORLDSERVER return TRUE; }
' p9 d2 y0 o3 p4 s1 u. r, {并提出了下列:
7 Z6 r5 _9 `6 U9 n0 T7 S代码: { #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; }
Q$ X6 N) x! r8 n现在,通用汽车应该喊这样的:
3 y; U: e" ^9 D$ E" _- D' `代码: [GM Information][NAME] TEXT ! G" g, r- e9 F6 B0 T$ M7 u) \3 y
现在,如果你仍然希望出现这种情况,例如有管理员将需要插入她的下列内容:/ }1 D( ^# \# `1 a' V
代码: { #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; } / C) A, n+ y8 {4 X4 Z) m
如果你想不仅为管理这一点,你必须始终! O* f, v* r s# a w: b; ]
代码: else if(pUser->m_dwAuthorization == AUTHORIZATION) strcat( szName, "Admin][" );
1 W; g4 K) ^+ o+ G4 O, A) T- m补充。+ s7 E' t3 u! L" C3 d
4 y0 F+ v6 [! u- ~, |8 v8 _! R, s
下面是与使用/ SYS解决不同的授权清单:
* f u3 H* u. [8 R) F代码: AUTH_GAMEMASTER1 //Gamemaster lvl 1 AUTH_GAMEMASTER2 //Gamemaster lvl 2 AUTH_GAMEMASTER3 //Gamemaster lvl 3 AUTH_ADMINISTRATOR //Administrator
! {) {' s% `6 V& K% b希望你喜欢指导,批评是欢迎的。
0 g* v. R; E# `3 _ q% c; g
) n; |! w7 u9 X2 e0 D制作所Pumbaaa 0 M# L% j7 C. n5 k8 j
|