|
嘿COM,
9 z% w s c: j, \0 F: `$ A) JNEN有点无聊和我开始思考,我写的关于如何得到从GM -喊名字一点时间NEN啧。
% B5 r5 L& i4 z* I) H0 J9 e8 k L2 Y后,整个看起来像这样:
3 |# r" R3 V" k. w; r
/ m! Q: d* u Z$ m# _5 ~2 J% y5 J
|/ x/ t6 {% [9 C2 ]6 p7 \) R9 ^可我第一次补习,所以如果有批评,请说,从而提高自我。
7 e' l. y1 |: K7 M& s X, T我不知道我的代码是最优的,肯定有一个更好的解决办法,我还是C ++初学者。 T C! Q1 M/ Y9 B4 s% a0 a$ D
: T6 h/ w; Y; y5 t: S7 ~6 B所以,当你第一次打开了FuncTextCmd.cpp和搜索
2 A5 c8 J# O% p$ n2 [% }
6 e- G1 e5 i$ `3 V& b代码: BOOL TextCmd_System( CScanner& scanner )
* c* K, w6 C, q- m在那里,您会发现:
4 r& U( T: [* ]6 S, E代码: { #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 d! o M+ A# s现在我们引入一个新的变量,我只需调用szName的
# z" \8 x7 y/ p1 p4 ~+ k那么整个事情看起来像这样:$ ^: F) ]! w& `
代码: { #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; }
) k- D0 ? f, ~3 f6 M- ~$ [变量我们也等于“[”拯救我们以后的工作XD5 T$ l6 a, W0 W- p( D
2 Z% Y8 W: K2 k( Q( @5 O4 j然后,我们明确了scanner.GetLastFull测试()源;在g_DPCoreClient.SendSystem(szString)。
4 X, [+ P4 Y: W$ o+ q5 n
. O5 ]* R4 P/ c: [6 G1 g整个事情是这样的:
5 W' \. I# I1 Z1 e代码: { #ifdef __WORLDSERVER CHAR szString[512] = ""; CHAR szName[512] = "["; CUser* pUser =(CUser*)scanner.dwValue; #endif // __WORLDSERVER return TRUE; } " ?4 Y/ |1 L v3 Z% u
并提出了下列:. Y- Y* G; h9 o4 T+ T- Q) t) }* 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; } ' k* v3 j1 B$ a. |% ~
现在,通用汽车应该喊这样的:
( o5 J7 ]. I* h4 S% y代码: [GM Information][NAME] TEXT
% ]5 R( v( T0 f' |# e! u% S现在,如果你仍然希望出现这种情况,例如有管理员将需要插入她的下列内容:
& \( L" g5 j" e. |% X) m, s' a代码: { #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; }
9 q: f) G, p9 c: x X如果你想不仅为管理这一点,你必须始终) O; x' v+ a5 ?0 ]/ x2 g; J
代码: else if(pUser->m_dwAuthorization == AUTHORIZATION) strcat( szName, "Admin][" ); " ?- l+ z$ t. Y
补充。
" V# B! X! m: X. w) j6 b' g2 _3 ^1 M8 z, n
- T) j* | U0 v8 j0 L% @4 G' ^1 S
下面是与使用/ SYS解决不同的授权清单:$ U2 b9 u7 i/ X7 _" @
代码: AUTH_GAMEMASTER1 //Gamemaster lvl 1 AUTH_GAMEMASTER2 //Gamemaster lvl 2 AUTH_GAMEMASTER3 //Gamemaster lvl 3 AUTH_ADMINISTRATOR //Administrator
* q0 _& A& e) `6 x# [希望你喜欢指导,批评是欢迎的。9 d! d3 P, G5 q6 p0 A: Z
/ W6 {6 @ s6 Q# ~$ ?
制作所Pumbaaa . n! a) B- o# u$ ?
|