|
嘿COM,% T2 ?6 J0 N2 d
NEN有点无聊和我开始思考,我写的关于如何得到从GM -喊名字一点时间NEN啧。
. j$ J& Z' _' \/ D7 y$ S0 F& I; m后,整个看起来像这样:
! q9 s0 O+ ~* C; B: ]1 n. d/ |. b
4 ~" U. W. L6 U) v/ u, R0 s1 X8 y7 W
可我第一次补习,所以如果有批评,请说,从而提高自我。4 H- P, m! I3 C" s( ~+ A* ]- G, |* s
我不知道我的代码是最优的,肯定有一个更好的解决办法,我还是C ++初学者。2 R/ V- B. c( J8 w
6 Y* ]8 I8 k. R5 L( i/ o, J, X所以,当你第一次打开了FuncTextCmd.cpp和搜索
+ M. X- ?3 K$ h) v! m. v
* a' ~$ Y. B/ R3 f代码: BOOL TextCmd_System( CScanner& scanner )
7 Z) C4 F2 _! f% M- O在那里,您会发现:& A" D1 _# V5 e/ n I( I
代码: { #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; } 8 I7 o$ }5 ^" R
现在我们引入一个新的变量,我只需调用szName的
8 ?4 i/ m I! Y! T. R8 z$ @3 G那么整个事情看起来像这样:- s: L# r5 C$ R/ W. R
代码: { #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; }
( p$ I5 y4 Z q4 Q3 H* q6 b变量我们也等于“[”拯救我们以后的工作XD
- F$ ?# F1 {& y! x: b0 O* P/ P$ K' r
0 i3 f3 a4 Q3 ?; e- B& [然后,我们明确了scanner.GetLastFull测试()源;在g_DPCoreClient.SendSystem(szString)。
* \7 r; @1 i f+ q6 p1 E7 j
! G4 J( n* }; I3 w. _整个事情是这样的:7 L7 V+ R; j5 v. q: n2 T. @
代码: { #ifdef __WORLDSERVER CHAR szString[512] = ""; CHAR szName[512] = "["; CUser* pUser =(CUser*)scanner.dwValue; #endif // __WORLDSERVER return TRUE; } ; _5 V# J! Z1 ~; S2 v) l& x0 ]/ [
并提出了下列:
' b- K! w- i" p/ A* V* @/ H7 Q; A, |代码: { #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; } ; c8 G" a+ Q h" N" O
现在,通用汽车应该喊这样的:7 W5 w) I7 X2 m- K7 B0 \/ i0 s
代码: [GM Information][NAME] TEXT * `/ G e7 f6 E5 u( I
现在,如果你仍然希望出现这种情况,例如有管理员将需要插入她的下列内容:) b( D6 b {9 z0 x$ P3 p1 l
代码: { #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; }
0 `& e# L3 e: E5 J如果你想不仅为管理这一点,你必须始终9 }( ~- C9 s& Q2 l8 R0 K
代码: else if(pUser->m_dwAuthorization == AUTHORIZATION) strcat( szName, "Admin][" );
4 i( f" H; j8 k, P* \% @" E9 R& g补充。- M% z' H! `& p6 J
* K( F" u) R! D+ g! u+ _' f( F2 o; a
下面是与使用/ SYS解决不同的授权清单:
- a0 \1 O3 q% h$ M& i3 r代码: AUTH_GAMEMASTER1 //Gamemaster lvl 1 AUTH_GAMEMASTER2 //Gamemaster lvl 2 AUTH_GAMEMASTER3 //Gamemaster lvl 3 AUTH_ADMINISTRATOR //Administrator
& T! T6 L& K' k, j6 d- r希望你喜欢指导,批评是欢迎的。
2 q6 u( {: u8 p( t! A# ^, _6 z* F/ w: N2 d2 ^
制作所Pumbaaa
1 Q4 A% J9 h. {6 I |