|
嘿COM,* p; X/ }& F/ [5 u( ]1 a5 `
NEN有点无聊和我开始思考,我写的关于如何得到从GM -喊名字一点时间NEN啧。
* l8 h3 s7 o2 q5 Z; T, @% k3 b- a" N后,整个看起来像这样:8 F5 V' U( u) ?4 L
, w3 I6 A! H+ x& Q" Z0 k9 d5 P5 \- B3 Q& Z9 R) X5 h) ~- E6 S. Z
可我第一次补习,所以如果有批评,请说,从而提高自我。
( s% C6 I# W' X; c3 N& K5 J我不知道我的代码是最优的,肯定有一个更好的解决办法,我还是C ++初学者。2 S# G2 t% t, [3 u. r: b. @# R+ \
d% b$ x2 T7 D) q所以,当你第一次打开了FuncTextCmd.cpp和搜索
5 W$ Q7 ^- @* o: H( a/ }
! d7 q2 K4 k( @7 m" X$ }* F代码: BOOL TextCmd_System( CScanner& scanner ) - `* H; s) X. G" `; ~0 {0 C
在那里,您会发现:
7 O2 S7 f& v' ~: N' Y( [# 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; } 0 b3 h3 p, {8 u- H) B1 x
现在我们引入一个新的变量,我只需调用szName的* j) W; h) b1 q, L
那么整个事情看起来像这样:( ^9 t1 Z8 D' O' Q* T8 o$ J2 k
代码: { #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; }
! e# r# M2 ?; U" M/ o变量我们也等于“[”拯救我们以后的工作XD& j h2 K* M6 s7 ?* ]3 |
0 _& C2 A( s& I) q* B然后,我们明确了scanner.GetLastFull测试()源;在g_DPCoreClient.SendSystem(szString)。8 X8 A) U# v+ m% T0 b. K
9 u- e; z2 P, w整个事情是这样的:
- i6 B, L: R8 Y& C6 h0 Z9 d! x; l代码: { #ifdef __WORLDSERVER CHAR szString[512] = ""; CHAR szName[512] = "["; CUser* pUser =(CUser*)scanner.dwValue; #endif // __WORLDSERVER return TRUE; } 4 f) d5 ?8 ^) Q
并提出了下列:
' N: p' U- p6 i. q \代码: { #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; } 2 y( }/ d) z0 z& r/ z& v* B3 {$ Y
现在,通用汽车应该喊这样的: j2 a: b8 W* O* `
代码: [GM Information][NAME] TEXT 1 M* f3 j+ q; t5 @) q; Y: i. I; y' ^
现在,如果你仍然希望出现这种情况,例如有管理员将需要插入她的下列内容:3 k- n# |7 u( p, }1 G3 H6 E
代码: { #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; }
' R% S$ l3 F0 I. e) h r5 C如果你想不仅为管理这一点,你必须始终
6 v* q+ G* P L+ [5 N* O) s代码: else if(pUser->m_dwAuthorization == AUTHORIZATION) strcat( szName, "Admin][" ); : c. G/ Z* s, U% s( M
补充。, V0 B' N1 M+ D* N, f4 X7 o
5 K" S: S k3 O5 y; O4 R2 e
; }2 r5 w; A1 A- x
下面是与使用/ SYS解决不同的授权清单:
. \5 q8 A- A+ R& [' m% s' H代码: AUTH_GAMEMASTER1 //Gamemaster lvl 1 AUTH_GAMEMASTER2 //Gamemaster lvl 2 AUTH_GAMEMASTER3 //Gamemaster lvl 3 AUTH_ADMINISTRATOR //Administrator ( @' o: `3 a" m) G
希望你喜欢指导,批评是欢迎的。$ D! V: C0 k2 O7 i9 ]/ u) b
, G; s* c: R% \$ |+ l- `
制作所Pumbaaa
" U; m' h! O8 Q |