|
嘿COM,+ ]6 G5 {8 I4 t2 e$ p
NEN有点无聊和我开始思考,我写的关于如何得到从GM -喊名字一点时间NEN啧。
7 E/ _" v1 ^4 F) z1 `7 T! ?& b+ a后,整个看起来像这样:
k+ D3 [8 K, } % t$ y# J4 p8 T$ u5 e9 M
; P0 ], ]: }8 ]6 F" J0 T
可我第一次补习,所以如果有批评,请说,从而提高自我。
7 H5 M- x! j& G" v1 t- v V我不知道我的代码是最优的,肯定有一个更好的解决办法,我还是C ++初学者。
- @0 x# [- d5 e& y1 p
1 Z$ y2 u6 a% T$ b+ k, y所以,当你第一次打开了FuncTextCmd.cpp和搜索
7 v9 a3 b/ _9 E4 D4 x( P1 I1 A" v! ]- s. Z
代码: BOOL TextCmd_System( CScanner& scanner ) 4 Q# }; b- Y+ q" A" c
在那里,您会发现:
( C0 m& b; k1 y/ O8 R代码: { #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; } ( [# j: p4 N* A
现在我们引入一个新的变量,我只需调用szName的
7 G) D/ c7 G& y7 |* Q; ~3 G那么整个事情看起来像这样:
% W. f; G+ T+ ^代码: { #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; } 3 ~: ]/ D N9 ^8 y6 K5 G; `
变量我们也等于“[”拯救我们以后的工作XD
( d( m5 H, E! e# ]+ L' U1 t* v% y" e% z+ _1 @9 I& m0 u6 t
然后,我们明确了scanner.GetLastFull测试()源;在g_DPCoreClient.SendSystem(szString)。* O2 a( B2 R- s' d
" A+ ^% \( |5 t& q4 h( F整个事情是这样的:6 ~3 Y' ~3 g U1 a2 I2 @4 e
代码: { #ifdef __WORLDSERVER CHAR szString[512] = ""; CHAR szName[512] = "["; CUser* pUser =(CUser*)scanner.dwValue; #endif // __WORLDSERVER return TRUE; } : A+ g9 E+ ?% Y* h
并提出了下列:$ k z/ c6 u' z* H" J) U
代码: { #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; }
! w% S, b6 k& S- A4 q" U' ^7 C现在,通用汽车应该喊这样的:
0 R# y! @; D" T- _! f代码: [GM Information][NAME] TEXT
7 G1 y$ Y7 A# V现在,如果你仍然希望出现这种情况,例如有管理员将需要插入她的下列内容:( Z8 a% T+ k# c# W0 P* [5 T7 q# o
代码: { #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; } * V- g, f" P- W% A6 L, s
如果你想不仅为管理这一点,你必须始终
" I9 d/ w7 ^! Y; |" W代码: else if(pUser->m_dwAuthorization == AUTHORIZATION) strcat( szName, "Admin][" );
- b+ m& C1 }/ ?8 D2 z& m8 x% j补充。7 h) i! E9 a( }
5 t. o( I4 X+ b/ e$ Y
8 w0 X2 Z- d' {& m4 f* D: s% O
下面是与使用/ SYS解决不同的授权清单:
* K; G7 u! q' w* h$ E/ q9 D代码: AUTH_GAMEMASTER1 //Gamemaster lvl 1 AUTH_GAMEMASTER2 //Gamemaster lvl 2 AUTH_GAMEMASTER3 //Gamemaster lvl 3 AUTH_ADMINISTRATOR //Administrator
( _, O9 d9 l# N( a* g希望你喜欢指导,批评是欢迎的。
8 @. R5 ?# |& \# w1 D, x, W( P$ Z; e; F& d6 C: L! U
制作所Pumbaaa / b0 m( G2 R$ h( }% R5 A
|