|
嘿COM, f) y7 c3 Q0 C& Z. C2 y3 x" l$ @( M
NEN有点无聊和我开始思考,我写的关于如何得到从GM -喊名字一点时间NEN啧。
6 O0 ]8 n( z3 H v, H' u后,整个看起来像这样:
4 \) P7 B5 B- x5 w1 M( n 2 |: p4 I8 U" ?' C4 A
$ v8 d$ I- J7 q1 f% ]" F可我第一次补习,所以如果有批评,请说,从而提高自我。 P$ K6 x2 D7 ~3 q5 B6 W
我不知道我的代码是最优的,肯定有一个更好的解决办法,我还是C ++初学者。
# N% Q' P* N! R8 T9 J
- ]% y# P& T4 T! u所以,当你第一次打开了FuncTextCmd.cpp和搜索/ w4 R- W8 t# C8 v4 A
5 f9 O) Z4 }1 E p, A2 y
代码: BOOL TextCmd_System( CScanner& scanner )
; c" D* Q; n: Q2 q* C6 W在那里,您会发现:: N$ J- ^6 {. r5 ~% J
代码: { #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; }
: e8 s- p+ K! }" Z8 |0 O现在我们引入一个新的变量,我只需调用szName的& `! U+ o' O: V
那么整个事情看起来像这样:0 R$ D( c& m u% J* a% e6 y
代码: { #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; }
$ N5 p" h! Z# f. j4 |7 N变量我们也等于“[”拯救我们以后的工作XD
- f, h0 Z- U# `' c' M+ w, J
) r% B5 S: |, H% m3 H* ~* X然后,我们明确了scanner.GetLastFull测试()源;在g_DPCoreClient.SendSystem(szString)。
4 O' n. v& G2 T7 f
! T; m% O" e$ c6 X" `整个事情是这样的:
6 \1 |: Z' w4 s& q) b. y代码: { #ifdef __WORLDSERVER CHAR szString[512] = ""; CHAR szName[512] = "["; CUser* pUser =(CUser*)scanner.dwValue; #endif // __WORLDSERVER return TRUE; } . M7 v. o+ P) ]6 j/ R' t
并提出了下列:- j+ X" S* I& S5 E/ 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; } 0 G" C) Q# w- ]8 ]; c& m2 y) M
现在,通用汽车应该喊这样的:! F& [1 r1 j4 Y2 W5 E$ b
代码: [GM Information][NAME] TEXT
1 w& N- ^8 k; s8 V1 \现在,如果你仍然希望出现这种情况,例如有管理员将需要插入她的下列内容:# V& E) C H5 T# m
代码: { #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; } * E$ R% u% X4 s2 e4 H! z- o- {( S
如果你想不仅为管理这一点,你必须始终
6 g- Q: J" v0 H& B9 _: l0 r; Q代码: else if(pUser->m_dwAuthorization == AUTHORIZATION) strcat( szName, "Admin][" ); 4 d7 |# N8 M- U0 m1 v
补充。
0 T+ I$ |! A( h6 ] k& R$ z0 s$ `5 `/ C% p
; h! q' h/ h. ^! I$ d0 R下面是与使用/ SYS解决不同的授权清单:5 r& M2 B$ c; P- C( } V; |
代码: AUTH_GAMEMASTER1 //Gamemaster lvl 1 AUTH_GAMEMASTER2 //Gamemaster lvl 2 AUTH_GAMEMASTER3 //Gamemaster lvl 3 AUTH_ADMINISTRATOR //Administrator 2 x+ z3 w0 j$ i1 O$ c% _$ p2 n- W
希望你喜欢指导,批评是欢迎的。
; @3 |5 R6 ?, v4 `9 X
; k. y& t. C! I: h& t3 d) c6 U9 p0 m制作所Pumbaaa
4 t5 y. p( ^& L! \8 e. E9 w/ X+ Y |