|
嘿COM,2 P# w7 N* i* h/ ^ I/ j. J
NEN有点无聊和我开始思考,我写的关于如何得到从GM -喊名字一点时间NEN啧。
% {' o0 n* j% Z3 [1 h# M后,整个看起来像这样:& U' s n. f0 g; W/ l# {. }
$ x( C! M {. l0 F5 X- z3 W, O+ g. e+ R3 X+ e, w i0 y6 q- J8 C& d
可我第一次补习,所以如果有批评,请说,从而提高自我。, ]6 t$ }* B. [1 N; _
我不知道我的代码是最优的,肯定有一个更好的解决办法,我还是C ++初学者。
( ]6 g# q3 M: J! R1 `5 x; z+ F9 p c4 q! F3 G2 L3 a
所以,当你第一次打开了FuncTextCmd.cpp和搜索* H# k. X" X. E% N1 G/ j8 A9 ~
9 b" a1 h( ]. i* s1 t! c代码: BOOL TextCmd_System( CScanner& scanner ) . c- U4 X) M8 g# d6 [1 P. V7 j
在那里,您会发现: ^; i4 V% j# i! s. u
代码: { #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; }
d7 d) ]* U4 |5 P$ \现在我们引入一个新的变量,我只需调用szName的
2 f" b! w& h8 h1 a那么整个事情看起来像这样:
$ n$ ~9 u. P. I; S4 p7 |- N代码: { #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; } % |& `+ G! i4 U% q1 B, S# e9 A( W$ d. a
变量我们也等于“[”拯救我们以后的工作XD" }' F. m( j4 g( H6 ^8 S) s! A" J
0 D' g& Q6 i& ]7 [; o' Q然后,我们明确了scanner.GetLastFull测试()源;在g_DPCoreClient.SendSystem(szString)。1 R# u- @2 C# ]7 K/ b n+ E0 W' _
- }, J0 c: G8 g! Y整个事情是这样的:
* O8 s C* B# V% n4 I* Y9 u代码: { #ifdef __WORLDSERVER CHAR szString[512] = ""; CHAR szName[512] = "["; CUser* pUser =(CUser*)scanner.dwValue; #endif // __WORLDSERVER return TRUE; }
$ ?5 w1 o* W$ K) X2 j. Y并提出了下列:
/ O( E) `& u. X! M6 j代码: { #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 m# V& E1 M6 n3 e7 q# u& e现在,通用汽车应该喊这样的:
' O! s* C* U7 n# s( {0 j9 ?7 K代码: [GM Information][NAME] TEXT ! l7 `6 W: u4 `" O" B
现在,如果你仍然希望出现这种情况,例如有管理员将需要插入她的下列内容:
' n$ K; u( b/ v% I$ ~' N$ X代码: { #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; } 2 |0 m- p5 x+ y
如果你想不仅为管理这一点,你必须始终/ |% M, O3 M! n0 E/ g+ y
代码: else if(pUser->m_dwAuthorization == AUTHORIZATION) strcat( szName, "Admin][" ); % J% p5 _1 ]5 U6 J+ ]# ~
补充。1 O8 N7 V, a6 }! Z% f6 f! `
! d$ p5 m$ E$ i3 R
3 k; m1 X3 \+ U0 {- B# u. p下面是与使用/ SYS解决不同的授权清单:
% i- {8 J% B) F代码: AUTH_GAMEMASTER1 //Gamemaster lvl 1 AUTH_GAMEMASTER2 //Gamemaster lvl 2 AUTH_GAMEMASTER3 //Gamemaster lvl 3 AUTH_ADMINISTRATOR //Administrator - `( ~$ }" u' h: b8 ]1 i
希望你喜欢指导,批评是欢迎的。 l# Q: v* v; J2 j# C# E
9 u) H/ {$ Q: ?6 f5 P" [制作所Pumbaaa * ~& X' t+ d/ l5 l2 r- u
|