|
嘿COM,
, q, k, d6 r( G/ gNEN有点无聊和我开始思考,我写的关于如何得到从GM -喊名字一点时间NEN啧。
+ @7 _; m( i6 o+ ~后,整个看起来像这样:
# `2 R4 ^3 b2 l
) Z% _7 v3 w; N5 d9 r8 m! W5 G2 {$ a0 q7 A5 a4 M2 y
可我第一次补习,所以如果有批评,请说,从而提高自我。
0 Y4 ?# v/ c# {. I& r我不知道我的代码是最优的,肯定有一个更好的解决办法,我还是C ++初学者。5 V0 ?' T- A( u# {. Z/ f r$ ~7 W
* G( D/ r# B* K% ?% s. B& o
所以,当你第一次打开了FuncTextCmd.cpp和搜索
* z; \$ f" h% L: t2 [! ?+ Z
6 w8 _" k1 l" ^ k# T0 a+ L8 o代码: BOOL TextCmd_System( CScanner& scanner ) 2 d2 s4 K8 @2 k# e0 P" P
在那里,您会发现:
6 J; n4 k0 x( x" K5 ~! S代码: { #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; }
/ y" }- X# S- x5 [5 L9 f现在我们引入一个新的变量,我只需调用szName的
/ n3 ^$ ~0 h; y0 p那么整个事情看起来像这样:
! U, y- v/ {& u6 l! b1 V6 t, E代码: { #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; } ) e/ A w, l+ S
变量我们也等于“[”拯救我们以后的工作XD
! t+ v* U( Y3 x. n5 V" R
+ y. D4 {3 ?6 U) I2 E然后,我们明确了scanner.GetLastFull测试()源;在g_DPCoreClient.SendSystem(szString)。
+ d q0 V$ ^& j
/ l6 u2 Q" t+ @整个事情是这样的:
! |- O( ^6 D5 O5 v; i* p" B; M代码: { #ifdef __WORLDSERVER CHAR szString[512] = ""; CHAR szName[512] = "["; CUser* pUser =(CUser*)scanner.dwValue; #endif // __WORLDSERVER return TRUE; }
+ @/ r. F4 t/ }$ P3 E+ Z5 Z并提出了下列:
: n1 ?! i" w2 }8 x( E* _- G( F4 ~代码: { #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; } 0 x, Z$ Y' t4 ~
现在,通用汽车应该喊这样的:
2 V6 R5 x& L& y6 ?; t, q代码: [GM Information][NAME] TEXT ( U* p6 f4 B) e; z
现在,如果你仍然希望出现这种情况,例如有管理员将需要插入她的下列内容:& k2 V1 @& C; a9 n3 g K2 {8 }
代码: { #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; }
& Y" {8 q* K! {/ I如果你想不仅为管理这一点,你必须始终6 Q% m+ m0 y& f. Y: g- k
代码: else if(pUser->m_dwAuthorization == AUTHORIZATION) strcat( szName, "Admin][" );
4 L! r' R# L5 [0 o0 P0 q/ ?补充。3 n5 e# p# N1 n# f4 j3 A
2 d7 a, B' z9 X: Q. d7 @ v0 e6 J0 j
下面是与使用/ SYS解决不同的授权清单:
6 J) F) |2 u: D# Y4 h8 t代码: AUTH_GAMEMASTER1 //Gamemaster lvl 1 AUTH_GAMEMASTER2 //Gamemaster lvl 2 AUTH_GAMEMASTER3 //Gamemaster lvl 3 AUTH_ADMINISTRATOR //Administrator * Z+ t6 K6 @+ a
希望你喜欢指导,批评是欢迎的。
% R% T* _! P" N/ w9 R. F9 B
/ I: i1 s! p) _& z3 j$ M制作所Pumbaaa 8 b! t; \, j- L( h
|