嘿COM," h3 ?, U/ `! X5 D$ X# f- Q
NEN有点无聊和我开始思考,我写的关于如何得到从GM -喊名字一点时间NEN啧。7 t) f! ]& X/ \& b; B/ b U# i3 H' ?
后,整个看起来像这样:" q! W i( N- |9 j# l
7 c6 O3 k$ R6 U5 y& ~; h( Q3 f5 N* @' b" m, q% w0 K
可我第一次补习,所以如果有批评,请说,从而提高自我。! X& J, J8 {, x/ f3 c
我不知道我的代码是最优的,肯定有一个更好的解决办法,我还是C ++初学者。$ w/ V0 T) w: Q6 e$ A. ^
+ \& Y7 p% x+ o+ u) l' n1 x$ M所以,当你第一次打开了FuncTextCmd.cpp和搜索! }4 t6 r2 w6 |1 W
% h. m- Y: a U9 m& ]' [- c2 y代码: BOOL TextCmd_System( CScanner& scanner )
8 |9 ?3 P; V7 M+ A+ \$ W) g: u4 e在那里,您会发现:
, i$ k( Q6 _: B3 i3 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; }
+ ~; d( O4 g, n# L6 V0 h. l% u现在我们引入一个新的变量,我只需调用szName的0 P; ?( l' L1 g
那么整个事情看起来像这样:
$ z0 ~' K& k2 d0 l: 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; }
( I( C- k. m2 J) P5 u! C+ j变量我们也等于“[”拯救我们以后的工作XD# a% g8 e; d- I8 U7 \
9 f& ~" m" t4 R( T @4 e' u
然后,我们明确了scanner.GetLastFull测试()源;在g_DPCoreClient.SendSystem(szString)。
; N6 x4 w3 q7 Q1 I$ _! Q$ _: U0 p- S: w! p4 F" T1 T! s; _* K: ~
整个事情是这样的:6 k8 c4 g& y% q# X- \
代码: { #ifdef __WORLDSERVER CHAR szString[512] = ""; CHAR szName[512] = "["; CUser* pUser =(CUser*)scanner.dwValue; #endif // __WORLDSERVER return TRUE; }
- ~# Q7 g( T9 T3 r. c2 P k& w并提出了下列:2 t) z3 t+ i% U
代码: { #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; }
9 J+ }+ v3 f. F9 u, G) V现在,通用汽车应该喊这样的:
: c5 H1 p. t$ L' O代码: [GM Information][NAME] TEXT
1 K: ~5 Z" E+ U o现在,如果你仍然希望出现这种情况,例如有管理员将需要插入她的下列内容:
7 b+ o4 T) i/ t0 D/ t$ |. J代码: { #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; }
! `. G8 R/ r% t如果你想不仅为管理这一点,你必须始终
4 j& q6 |/ X* ]1 m) |1 f8 Z代码: else if(pUser->m_dwAuthorization == AUTHORIZATION) strcat( szName, "Admin][" );
3 ?9 l0 Y# I: `# J2 M K补充。
. N- |& V# A2 w- j
$ U* l$ J! H% e& g4 `5 T/ r$ R0 M* B& }/ O/ y
下面是与使用/ SYS解决不同的授权清单:& D+ h! `. B& Y4 Z, ?
代码: AUTH_GAMEMASTER1 //Gamemaster lvl 1 AUTH_GAMEMASTER2 //Gamemaster lvl 2 AUTH_GAMEMASTER3 //Gamemaster lvl 3 AUTH_ADMINISTRATOR //Administrator
j0 q R5 C/ a" z! P' p& L! C希望你喜欢指导,批评是欢迎的。+ m( R8 u, x' K4 A1 |( S& q- @
4 E; K" \- N/ `) e$ o' Z$ ?& h制作所Pumbaaa
% h5 n7 M. X& f2 L( U6 e! Z7 v$ f3 v |