|
嘿COM,% D& T- P1 i+ C
NEN有点无聊和我开始思考,我写的关于如何得到从GM -喊名字一点时间NEN啧。
/ z n9 X$ y% @- M' G- y( E/ I; K后,整个看起来像这样:# U$ U# I( {/ ?+ ?0 j/ m5 U3 Z
. ?9 i# i {, _$ D" g6 f- V
& t/ _5 c0 `) h+ j% J可我第一次补习,所以如果有批评,请说,从而提高自我。
" F y. L# m: Y! e我不知道我的代码是最优的,肯定有一个更好的解决办法,我还是C ++初学者。
: w: Q& f) S& U0 _! b2 D, u5 T$ @5 ~) e" v) M; ]
所以,当你第一次打开了FuncTextCmd.cpp和搜索% @: F9 K+ f1 Q: A, M
7 l8 Y+ O+ @" E- Y6 k% m
代码: BOOL TextCmd_System( CScanner& scanner ) # L1 V9 b# s: _$ ]
在那里,您会发现:* }8 R g. O8 P& b1 v* {
代码: { #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; } u5 [2 U2 `3 X. S
现在我们引入一个新的变量,我只需调用szName的
1 H) Z8 h2 j4 `; w# r% J4 C那么整个事情看起来像这样:
3 r7 l- l% J d! n3 M) g代码: { #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; }
) D+ g) C; `2 F6 q+ d# Z4 W变量我们也等于“[”拯救我们以后的工作XD
1 z: ^3 q. h9 }) d
) J6 E' z2 h& `然后,我们明确了scanner.GetLastFull测试()源;在g_DPCoreClient.SendSystem(szString)。1 n, @7 z6 E, I X9 D* r
: V6 E4 N& i7 o2 a7 Y整个事情是这样的:
- q* h9 S' a6 C" X代码: { #ifdef __WORLDSERVER CHAR szString[512] = ""; CHAR szName[512] = "["; CUser* pUser =(CUser*)scanner.dwValue; #endif // __WORLDSERVER return TRUE; } 2 L7 n L0 W! [# U E
并提出了下列:
- T( Y1 R( Z4 E5 {3 a( w: y: }代码: { #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; }
! M0 b3 a9 _( C; T* D现在,通用汽车应该喊这样的:6 {' A& k: p& E5 b- _
代码: [GM Information][NAME] TEXT
6 O, G [8 ]9 O5 ?* ]现在,如果你仍然希望出现这种情况,例如有管理员将需要插入她的下列内容:
2 X# h) {. z z+ b代码: { #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; } \) d6 H, ^# R3 c/ {% Y/ s& [9 s2 O
如果你想不仅为管理这一点,你必须始终- f/ m3 }7 F. ?* l0 ]- K$ ]1 v
代码: else if(pUser->m_dwAuthorization == AUTHORIZATION) strcat( szName, "Admin][" ); * ?9 M8 Y. n* f3 T
补充。
5 g% k: L; `, n- }' {
Z/ V- I# U; o4 \$ v7 G2 H& O
6 z4 o# R3 C5 s下面是与使用/ SYS解决不同的授权清单:% P- g: I) J% B
代码: AUTH_GAMEMASTER1 //Gamemaster lvl 1 AUTH_GAMEMASTER2 //Gamemaster lvl 2 AUTH_GAMEMASTER3 //Gamemaster lvl 3 AUTH_ADMINISTRATOR //Administrator " k8 m" Z" ^; L& H9 r
希望你喜欢指导,批评是欢迎的。+ s& m' N) U+ b% c* T# Z' H1 c' w
3 ?6 L' F w/ ~" A( n1 e" `& i5 `制作所Pumbaaa
; ^" e' Y0 J2 [" c2 X |