|
嘿COM,2 i) s7 z3 F. K: a( f) U& W& `
NEN有点无聊和我开始思考,我写的关于如何得到从GM -喊名字一点时间NEN啧。: Z: Z# t2 \! k: h$ i
后,整个看起来像这样:
/ F2 P0 B6 r0 i4 O
% a- [& I; F2 A9 n/ n
2 P1 `. w5 w( [9 E3 e0 P) b3 z可我第一次补习,所以如果有批评,请说,从而提高自我。
; i( R8 E. V t8 x) x8 [我不知道我的代码是最优的,肯定有一个更好的解决办法,我还是C ++初学者。
" L' t" @1 j2 W2 J4 S' R/ W4 e/ N4 L0 Z$ N3 f
所以,当你第一次打开了FuncTextCmd.cpp和搜索
- H! @0 M _. e7 y t7 _; k8 A# b. a
代码: BOOL TextCmd_System( CScanner& scanner ) u3 U6 v) k! x8 K
在那里,您会发现:. Y% v0 W I. b
代码: { #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& V! w) j( s0 H% `6 [现在我们引入一个新的变量,我只需调用szName的
2 \# _8 B: h% e5 o8 W8 ~那么整个事情看起来像这样:
6 E6 d* _6 B( k6 Q3 j代码: { #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; }
' @7 Y' M. K$ ^. S: W变量我们也等于“[”拯救我们以后的工作XD5 Y- L* d1 u/ o' |, i/ E$ v& j
( J$ z; {6 s( l# o! C
然后,我们明确了scanner.GetLastFull测试()源;在g_DPCoreClient.SendSystem(szString)。; g8 z6 D; b" T% E
* Y6 k& Z( o* ]. W
整个事情是这样的: ~" b d" Z: z' N b9 t
代码: { #ifdef __WORLDSERVER CHAR szString[512] = ""; CHAR szName[512] = "["; CUser* pUser =(CUser*)scanner.dwValue; #endif // __WORLDSERVER return TRUE; } 8 L! m7 S: M7 ~& G( j% V% ?1 F& B
并提出了下列:
6 ^* v& ? H" b2 k$ f1 Y3 _; @6 A代码: { #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; } ) B. S% |3 ]* F, r- u
现在,通用汽车应该喊这样的: i$ N+ r/ y/ S) m1 S
代码: [GM Information][NAME] TEXT . d; S; {0 {7 m, m) s" _
现在,如果你仍然希望出现这种情况,例如有管理员将需要插入她的下列内容:. q( |# ]8 ^& Z N
代码: { #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; }
* X4 `1 P, g; c如果你想不仅为管理这一点,你必须始终
# g/ n& v. P* f+ ^# U. h3 [代码: else if(pUser->m_dwAuthorization == AUTHORIZATION) strcat( szName, "Admin][" );
# R0 [3 b$ Q8 G3 ?" W2 [3 C补充。% ^6 E% n) F9 K7 V# B8 Q
* g. c! \3 i" S4 v$ ^$ k
* Y" j! j. Z" H5 i, w9 m7 q下面是与使用/ SYS解决不同的授权清单:1 E) g7 O4 _1 S- s) b) x1 ?
代码: AUTH_GAMEMASTER1 //Gamemaster lvl 1 AUTH_GAMEMASTER2 //Gamemaster lvl 2 AUTH_GAMEMASTER3 //Gamemaster lvl 3 AUTH_ADMINISTRATOR //Administrator
) ?* D1 i7 S5 O希望你喜欢指导,批评是欢迎的。' g4 ~, ~6 h: U: o# u
" H# ]# G( M- n. _" Q8 i7 f制作所Pumbaaa 8 j0 R: X* u" K1 d2 C
|