嘿COM,
" v/ T- W- t, B6 a- Q6 LNEN有点无聊和我开始思考,我写的关于如何得到从GM -喊名字一点时间NEN啧。3 Y$ e+ K: ]* I3 F$ J
后,整个看起来像这样:" R6 I) k1 t+ e/ o( v5 U! H
' Q5 w9 f: k+ y: Q+ w1 y; O, ?/ y) w
可我第一次补习,所以如果有批评,请说,从而提高自我。8 `2 W, ~# c* S9 F
我不知道我的代码是最优的,肯定有一个更好的解决办法,我还是C ++初学者。
0 U' ~; ^6 W& a* o B" S4 _1 u5 e* |) `2 ]+ m
所以,当你第一次打开了FuncTextCmd.cpp和搜索
/ g% S7 Z. }8 I+ Z# i, \
& ]7 `7 f2 g* [( G代码: BOOL TextCmd_System( CScanner& scanner ) ! Q3 Z2 a7 I0 l/ O4 o
在那里,您会发现:
( ?; J- S8 R% E' U* d代码: { #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; } & W0 E2 M6 |1 X. N* s/ Q9 G. {
现在我们引入一个新的变量,我只需调用szName的4 ^. l/ t$ ~0 {' P- W6 T
那么整个事情看起来像这样:
. g3 d6 z/ f6 S M" D代码: { #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; } + b! t# s4 u, n( Z
变量我们也等于“[”拯救我们以后的工作XD
( m7 c5 ^ v6 }; K0 \1 {9 S1 X
8 C4 {4 ^) U( z8 n! Q) _' ]5 v+ _然后,我们明确了scanner.GetLastFull测试()源;在g_DPCoreClient.SendSystem(szString)。
6 y8 y5 D8 a+ x4 Z3 Q+ l" y
: U' p) E* u( x0 j整个事情是这样的:9 L4 y! }6 Z- i) w7 h. l
代码: { #ifdef __WORLDSERVER CHAR szString[512] = ""; CHAR szName[512] = "["; CUser* pUser =(CUser*)scanner.dwValue; #endif // __WORLDSERVER return TRUE; } ; L$ X* C0 x. H( J- m9 X+ ?
并提出了下列:. x7 ]+ F8 c( r& a: R; i
代码: { #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; }
5 f# `) |* X* G* w( f/ x2 \现在,通用汽车应该喊这样的:1 ]7 a5 d, M4 Z- P5 D5 I- w1 F" Z
代码: [GM Information][NAME] TEXT
0 H/ j6 N3 t" w现在,如果你仍然希望出现这种情况,例如有管理员将需要插入她的下列内容:- P; b4 K% o) ]; h/ [' 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; } 8 y( G; D7 G0 v% W7 ~
如果你想不仅为管理这一点,你必须始终
& V3 e- T' \+ i5 P3 X代码: else if(pUser->m_dwAuthorization == AUTHORIZATION) strcat( szName, "Admin][" ); ; _. h7 p+ s0 C
补充。' A h' ?* ^' J% R( n* |
2 L& c# t5 c; ?: H! Y! ?! F- ^/ `" p- b
下面是与使用/ SYS解决不同的授权清单:) @: X) ^* p: s5 ^
代码: AUTH_GAMEMASTER1 //Gamemaster lvl 1 AUTH_GAMEMASTER2 //Gamemaster lvl 2 AUTH_GAMEMASTER3 //Gamemaster lvl 3 AUTH_ADMINISTRATOR //Administrator
$ c' \4 D9 ?0 A0 W4 V, i: ~- w7 G希望你喜欢指导,批评是欢迎的。
7 j2 A9 j& U' P; I+ L' T4 C; T( d/ f: @4 n
制作所Pumbaaa ' S1 G& [0 t0 b/ b6 G/ n! B3 q$ h
|