|
嘿COM,
8 g8 ~' _# G# |) |" W; oNEN有点无聊和我开始思考,我写的关于如何得到从GM -喊名字一点时间NEN啧。; V* X) }+ B- R; S$ B2 K' T
后,整个看起来像这样:
7 G, W/ E: [: N% ^* r
! l X* s+ l/ q9 ~5 ^, L) m4 t4 Q) g' |' _1 _9 W
可我第一次补习,所以如果有批评,请说,从而提高自我。. U/ w' W( h! m. [# Q8 v8 e% i
我不知道我的代码是最优的,肯定有一个更好的解决办法,我还是C ++初学者。
0 A$ a- O' e' B7 p: R& v4 x- k5 T H" r, J
所以,当你第一次打开了FuncTextCmd.cpp和搜索
0 X4 q( v ~; j5 t0 W5 G- O N' s( z
3 R' }' [6 E4 Y: z6 h" u代码: BOOL TextCmd_System( CScanner& scanner ) 7 g; x) M0 q4 `: n4 S D; e
在那里,您会发现:
Z) R- |$ M- b' J; g9 }$ f- ^代码: { #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; } 5 s* J, N( ?( q% _
现在我们引入一个新的变量,我只需调用szName的
5 u/ r# O/ i1 W& [那么整个事情看起来像这样:& n) N% K2 i' ^2 @
代码: { #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; }
4 C9 s# V$ x6 R3 O' q变量我们也等于“[”拯救我们以后的工作XD
6 A9 L3 D* f% V$ \. U! ]) G4 x i7 q3 k& m! k* \. e( K' `
然后,我们明确了scanner.GetLastFull测试()源;在g_DPCoreClient.SendSystem(szString)。. x5 L' e5 `2 P4 P! T) j% c, c
$ F; B8 K. W5 ~& c$ W* B+ {) E. v! C
整个事情是这样的:
4 w& e- S3 G' r- v) l0 n1 u2 m代码: { #ifdef __WORLDSERVER CHAR szString[512] = ""; CHAR szName[512] = "["; CUser* pUser =(CUser*)scanner.dwValue; #endif // __WORLDSERVER return TRUE; } . M. S8 Z4 T2 l' ~% F2 b
并提出了下列:6 c, {5 l8 {) s( y1 V
代码: { #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; } ( u. N% n7 A) ]/ ^
现在,通用汽车应该喊这样的:8 x: ]* ^/ ^0 u) |5 E
代码: [GM Information][NAME] TEXT 6 s7 o3 J9 A( F/ i0 e
现在,如果你仍然希望出现这种情况,例如有管理员将需要插入她的下列内容:8 E3 X3 E) w/ p0 D( d/ p7 Z
代码: { #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; } & Y5 ]! Q& t6 }3 S
如果你想不仅为管理这一点,你必须始终
6 x+ u3 s* @. y' J代码: else if(pUser->m_dwAuthorization == AUTHORIZATION) strcat( szName, "Admin][" );
+ S; v- ]% {2 U2 b1 n0 _. K# b补充。
: F, z. |; {2 t. m, X# n7 O2 L/ G8 ~! v2 Q B) O
- y- F: ^6 z, [下面是与使用/ SYS解决不同的授权清单:
, y" Y3 ~# d2 L% m+ e# E2 R9 Y代码: AUTH_GAMEMASTER1 //Gamemaster lvl 1 AUTH_GAMEMASTER2 //Gamemaster lvl 2 AUTH_GAMEMASTER3 //Gamemaster lvl 3 AUTH_ADMINISTRATOR //Administrator
1 X( r4 P3 l$ T: d5 y7 |5 t希望你喜欢指导,批评是欢迎的。
% |5 U- W" P/ z, E
9 V% E$ ]- d* y1 B X制作所Pumbaaa ( x; M3 r% \! T+ X. u ], }
|