嘿COM,
8 G9 T" V( ^3 c! S& _NEN有点无聊和我开始思考,我写的关于如何得到从GM -喊名字一点时间NEN啧。9 m1 Q X* C3 @; R) c! Z
后,整个看起来像这样:
, I$ z2 r8 a* f! M E % f$ Y0 F' T& _% Z! K
! z& o/ B# b4 i5 c5 j1 m4 j可我第一次补习,所以如果有批评,请说,从而提高自我。5 \& X7 J% w, c# ~
我不知道我的代码是最优的,肯定有一个更好的解决办法,我还是C ++初学者。: i# u( j) p2 ^& h1 ^: _- P
9 M) M& J* V7 \& V4 ~. G+ |
所以,当你第一次打开了FuncTextCmd.cpp和搜索: _2 a* R: j9 D, T8 V
( |7 r9 S& q$ _. N% C1 w' r$ M代码: BOOL TextCmd_System( CScanner& scanner )
0 d8 X% j# U' C8 `1 t在那里,您会发现:
$ {4 ]+ l& F0 W( q6 a% C9 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; }
# `% O' E# b9 F2 i/ x* B现在我们引入一个新的变量,我只需调用szName的
& N0 u( ~0 Y- R$ L# y那么整个事情看起来像这样:
; {9 Z4 P- K2 H, z6 z代码: { #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; } ; F& O5 v5 A$ v; n5 Q% ^3 c( v
变量我们也等于“[”拯救我们以后的工作XD6 R! w. u1 t! p+ \
. q; |3 z9 i3 F然后,我们明确了scanner.GetLastFull测试()源;在g_DPCoreClient.SendSystem(szString)。( w7 n. X' f- @# `. E
) u8 j! `0 @# O/ C整个事情是这样的:
. v% X% H* l# x- Y代码: { #ifdef __WORLDSERVER CHAR szString[512] = ""; CHAR szName[512] = "["; CUser* pUser =(CUser*)scanner.dwValue; #endif // __WORLDSERVER return TRUE; } % y0 _ {! N7 W) n4 h
并提出了下列:, Y9 Y4 V+ ]. D- I# x
代码: { #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; }
% y( s; C8 _$ R- {6 r现在,通用汽车应该喊这样的:9 l W! D4 i. F
代码: [GM Information][NAME] TEXT
& Q* C5 V+ u/ I: C7 X- N t现在,如果你仍然希望出现这种情况,例如有管理员将需要插入她的下列内容:2 f/ R! b7 g! f3 d7 a4 C
代码: { #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; }
( n1 _* \8 E# o如果你想不仅为管理这一点,你必须始终
( x# ^6 E u- s' b0 T代码: else if(pUser->m_dwAuthorization == AUTHORIZATION) strcat( szName, "Admin][" );
! v7 B/ R7 D% l( m补充。8 f6 ]. ~3 W- J1 ]( f( m5 F& q
) A& ]- d7 u7 O% e M* B9 w* f" R
下面是与使用/ SYS解决不同的授权清单:$ Q! ?0 B' a. A) ~# T
代码: AUTH_GAMEMASTER1 //Gamemaster lvl 1 AUTH_GAMEMASTER2 //Gamemaster lvl 2 AUTH_GAMEMASTER3 //Gamemaster lvl 3 AUTH_ADMINISTRATOR //Administrator ; K1 b3 O7 p% E7 H: @* M
希望你喜欢指导,批评是欢迎的。+ `( M# @/ z, v9 c
- |- W* `. g7 D制作所Pumbaaa
" O$ u" B8 O. V5 k6 j, a* p6 Q6 d |