|
嘿COM,
/ ]0 a7 J# F/ f' Q9 x `NEN有点无聊和我开始思考,我写的关于如何得到从GM -喊名字一点时间NEN啧。! G+ l6 c% f' ?( r/ V
后,整个看起来像这样:" P2 \" J- g! F0 o1 Z
7 j6 l5 Q5 H3 W+ J% l6 q6 G
l' y* K# D$ Y& z: X+ C$ R
可我第一次补习,所以如果有批评,请说,从而提高自我。5 U' C- n' {; ^
我不知道我的代码是最优的,肯定有一个更好的解决办法,我还是C ++初学者。7 f% b* k# s# `$ b$ F8 F2 T
% s0 T8 D" N% }* V' }所以,当你第一次打开了FuncTextCmd.cpp和搜索
: B3 p4 m! A) k& ]6 j/ m' y5 X8 M) R
代码: BOOL TextCmd_System( CScanner& scanner )
) y: Z/ f3 Y' }8 J- l2 k/ L在那里,您会发现:
3 _/ M% J' ?) t# [代码: { #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; }
7 |- N* ?' n' k$ v现在我们引入一个新的变量,我只需调用szName的
: K5 w9 Y+ G0 v# E5 m) S w那么整个事情看起来像这样:
) {2 c( p! G$ ~4 J" n; ^: N- 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; } 0 A, x8 P) P. m7 g* n
变量我们也等于“[”拯救我们以后的工作XD
5 n& d, F$ I/ O+ d s v7 g, o! y- O" f. o. `
然后,我们明确了scanner.GetLastFull测试()源;在g_DPCoreClient.SendSystem(szString)。% L7 p" r( z; J9 n& v8 Y6 J
- h7 h' X8 |. y" W* N6 x6 o( n整个事情是这样的:3 @$ |% a5 M5 |; r4 }' ^+ \
代码: { #ifdef __WORLDSERVER CHAR szString[512] = ""; CHAR szName[512] = "["; CUser* pUser =(CUser*)scanner.dwValue; #endif // __WORLDSERVER return TRUE; }
1 }+ \6 M) q/ v并提出了下列:
' A, R0 ]' d/ @- V4 S代码: { #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; } + p3 B7 Z5 Z, v( X- I" X" H
现在,通用汽车应该喊这样的:
: N3 z. S- a& n6 M( B0 F代码: [GM Information][NAME] TEXT 8 i+ C2 _; b* m% I8 |6 ]8 ^3 G) J) ?
现在,如果你仍然希望出现这种情况,例如有管理员将需要插入她的下列内容:: }' A y3 o$ t) e! J2 `0 [
代码: { #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; } ; c& Q$ `( _* _3 a7 \( R
如果你想不仅为管理这一点,你必须始终; U) N* o; }0 ?0 Q" h
代码: else if(pUser->m_dwAuthorization == AUTHORIZATION) strcat( szName, "Admin][" );
4 V( Z. A: I7 j9 L+ D) Y补充。% ^4 {$ v( l, W b C
" p- H+ M5 M8 j$ i. F; e( o
3 C# n! F( g, {1 F' Z下面是与使用/ SYS解决不同的授权清单:
* [" ?3 `" [+ a) n" I代码: AUTH_GAMEMASTER1 //Gamemaster lvl 1 AUTH_GAMEMASTER2 //Gamemaster lvl 2 AUTH_GAMEMASTER3 //Gamemaster lvl 3 AUTH_ADMINISTRATOR //Administrator 0 X O$ s, Z9 X2 B
希望你喜欢指导,批评是欢迎的。
f( P! ~+ l& v, i5 ? [- F
# a& g6 Q; D F0 f( a制作所Pumbaaa
# K' D! }. M' t, q |