|
嘿COM,0 @. E( m9 r& @, ]
NEN有点无聊和我开始思考,我写的关于如何得到从GM -喊名字一点时间NEN啧。% T( w9 J3 a N
后,整个看起来像这样:5 k) g# Q7 s' [% o2 R
' Y8 ~0 p+ v6 q7 p, x
0 h6 O& E2 B8 a( r, _5 E1 z% O可我第一次补习,所以如果有批评,请说,从而提高自我。
2 R4 }4 J# G4 F4 Q) ?) I6 a我不知道我的代码是最优的,肯定有一个更好的解决办法,我还是C ++初学者。7 H3 v4 \! t7 {- Y" L/ l4 c
S/ o! W' j* D# ]9 H/ Q" {' r- B9 {
所以,当你第一次打开了FuncTextCmd.cpp和搜索
6 J8 k5 n( g. i) W. ~
7 G( u8 V Z# c/ w* t) g' O9 l代码: BOOL TextCmd_System( CScanner& scanner ) # x. }* Z, |' j6 C
在那里,您会发现:+ A4 B8 _. L" ]1 E
代码: { #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; }
2 F9 j+ C' v7 L% F5 X: v3 c' U% i; m现在我们引入一个新的变量,我只需调用szName的
- p) m% J3 c, y& A那么整个事情看起来像这样:0 H& n H$ V- D6 Y. P
代码: { #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; } * G" P" k' S, O' ]& Y7 c
变量我们也等于“[”拯救我们以后的工作XD9 q, l! f( d4 Z" W6 |1 \9 k2 d
- ~+ T0 s+ X4 Q; H0 j6 M% X然后,我们明确了scanner.GetLastFull测试()源;在g_DPCoreClient.SendSystem(szString)。: B" h4 Y# B+ Y% {8 m
& i/ g6 n1 z$ A9 ?- [# V2 Z3 a
整个事情是这样的:( L1 ?$ N+ p( K' z# H2 A& P
代码: { #ifdef __WORLDSERVER CHAR szString[512] = ""; CHAR szName[512] = "["; CUser* pUser =(CUser*)scanner.dwValue; #endif // __WORLDSERVER return TRUE; }
* I. r6 v' k. G) D3 h并提出了下列:
4 ^1 R! W9 v: D7 ~$ T( d0 R2 e代码: { #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; }
7 w/ L2 q* U8 |4 D, y现在,通用汽车应该喊这样的:
$ }5 n; c R% M! P, W) E) O* ]) I代码: [GM Information][NAME] TEXT 5 n4 u- Q5 [/ n& o. [ U
现在,如果你仍然希望出现这种情况,例如有管理员将需要插入她的下列内容:, ^8 y* b" t2 ~/ B$ S
代码: { #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; }
6 F# _$ j' ]* D' i2 Z如果你想不仅为管理这一点,你必须始终
: ^$ H5 K9 I* e7 Q1 }+ d% L代码: else if(pUser->m_dwAuthorization == AUTHORIZATION) strcat( szName, "Admin][" ); 1 F5 o; T. d5 {( _8 ^7 f
补充。
& i% P- a) W) e A- V$ C4 {
{, O6 g0 |2 H9 R9 n. ^1 x5 W+ g3 v( {/ H, C
下面是与使用/ SYS解决不同的授权清单:
' L1 g9 ~5 y- y4 a. ?代码: AUTH_GAMEMASTER1 //Gamemaster lvl 1 AUTH_GAMEMASTER2 //Gamemaster lvl 2 AUTH_GAMEMASTER3 //Gamemaster lvl 3 AUTH_ADMINISTRATOR //Administrator 0 N* g0 F$ ]+ |6 N, n' p
希望你喜欢指导,批评是欢迎的。
) C* F9 M4 S4 Q# T( t& O0 [3 a3 {, z
制作所Pumbaaa " R# s: |! P/ _: p2 f0 O, M
|