嘿COM,5 o8 t* Q4 S& J: B+ l- N$ T; C
NEN有点无聊和我开始思考,我写的关于如何得到从GM -喊名字一点时间NEN啧。
" v! f+ u4 M- _9 F后,整个看起来像这样:
7 }- r5 z: a2 \) ~2 D- O# K
0 C& d& K" \5 m
4 k+ K1 G, \* s6 _可我第一次补习,所以如果有批评,请说,从而提高自我。% }. i9 w4 l; f' Q1 D1 `
我不知道我的代码是最优的,肯定有一个更好的解决办法,我还是C ++初学者。
8 v4 ^ O2 M% U2 ~& ]
6 X' B9 Z- m4 b) p7 q$ A$ D1 ~所以,当你第一次打开了FuncTextCmd.cpp和搜索/ a2 \( P$ g6 |2 C
2 q2 T1 a9 _( q代码: BOOL TextCmd_System( CScanner& scanner )
. v; s0 t% m+ q/ p6 k在那里,您会发现:
0 l4 N3 U$ H8 U/ M7 w, ?! }$ d代码: { #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 M5 G' a0 H+ |
现在我们引入一个新的变量,我只需调用szName的
3 P4 I" F ?% s( T那么整个事情看起来像这样:
" o: c2 @% r# H代码: { #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& h+ l: G- y% h2 s3 h变量我们也等于“[”拯救我们以后的工作XD. w3 f H4 s+ x) ~
; l2 {/ ?- Q+ v$ H8 V% i- w/ {$ c& K然后,我们明确了scanner.GetLastFull测试()源;在g_DPCoreClient.SendSystem(szString)。# i) p% D4 M7 g, v2 s) r1 V4 @- B7 Y0 a
8 z/ D- Q, C6 Q `: ^整个事情是这样的:! T% E/ K2 A2 c/ Q; N
代码: { #ifdef __WORLDSERVER CHAR szString[512] = ""; CHAR szName[512] = "["; CUser* pUser =(CUser*)scanner.dwValue; #endif // __WORLDSERVER return TRUE; } 6 x% Y8 s2 h4 K! u; F
并提出了下列:+ h# S E0 _& r# L
代码: { #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 T S' D h" @2 g8 t8 s; J现在,通用汽车应该喊这样的:8 x* D. J$ B1 B
代码: [GM Information][NAME] TEXT
% X6 P- A3 G4 n现在,如果你仍然希望出现这种情况,例如有管理员将需要插入她的下列内容:+ B5 F8 m6 @: F3 y: E. [% g
代码: { #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; }
7 }/ f" y% Z, O( A如果你想不仅为管理这一点,你必须始终' V& z, C( a o. p+ h% |
代码: else if(pUser->m_dwAuthorization == AUTHORIZATION) strcat( szName, "Admin][" );
6 W- ]( o c2 F4 n2 T/ e补充。! d8 {" _! [( W$ z; f' _2 W
# U' n& P ~' t3 a8 J) p' X2 ]2 E
, y" U, y) U8 @' s* f6 X下面是与使用/ SYS解决不同的授权清单:
- y9 x* |% j3 e( P代码: AUTH_GAMEMASTER1 //Gamemaster lvl 1 AUTH_GAMEMASTER2 //Gamemaster lvl 2 AUTH_GAMEMASTER3 //Gamemaster lvl 3 AUTH_ADMINISTRATOR //Administrator 9 F4 V2 Y# V0 D( z
希望你喜欢指导,批评是欢迎的。
( R D% F( J% W
- Y2 @& t. P. }; e制作所Pumbaaa
$ r! K! S! z, v1 K |