|
嘿COM,$ @2 K% h" y8 w7 A
NEN有点无聊和我开始思考,我写的关于如何得到从GM -喊名字一点时间NEN啧。% a* I( j$ u/ k/ V6 C( o5 f) ?* q
后,整个看起来像这样:
! t& s- p1 N$ f( q& z3 G# R
2 V* [2 B+ D2 C% A3 A0 \7 C+ r1 Z2 M7 b3 m" a; I+ e' S
可我第一次补习,所以如果有批评,请说,从而提高自我。: K. E7 g3 w& ^, H [
我不知道我的代码是最优的,肯定有一个更好的解决办法,我还是C ++初学者。% x0 w1 Z( r, A" m; Q' @6 ]
: |" R$ R7 ?2 U+ u5 l+ E! e5 v
所以,当你第一次打开了FuncTextCmd.cpp和搜索
. d% l5 x" A5 H5 e# p2 b
4 V# V5 e- f0 U; ^0 R" r代码: BOOL TextCmd_System( CScanner& scanner ) * d5 h( a( Q+ [: F2 A- F1 |
在那里,您会发现:
a X% a+ A$ 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; }
K4 `2 h6 [. ~现在我们引入一个新的变量,我只需调用szName的
6 q1 X6 O% [) ]' r那么整个事情看起来像这样:8 h: k1 @9 L# T8 v7 }8 Y8 v+ g
代码: { #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; } & n) w" D2 e& ?0 c4 p; m
变量我们也等于“[”拯救我们以后的工作XD
5 V* X' C+ z: T) H9 T" A0 r9 _; d6 F" r
然后,我们明确了scanner.GetLastFull测试()源;在g_DPCoreClient.SendSystem(szString)。- E' W* i- ]3 Z
3 H) S2 [- ^ I) ~整个事情是这样的:
4 }" i8 r' B. Z8 ]. [4 @代码: { #ifdef __WORLDSERVER CHAR szString[512] = ""; CHAR szName[512] = "["; CUser* pUser =(CUser*)scanner.dwValue; #endif // __WORLDSERVER return TRUE; } * D0 {! \! `' e5 ^# _- _
并提出了下列:
{3 s7 J. [2 S7 m5 W" r代码: { #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; } 9 c1 q" w6 Y8 f. N
现在,通用汽车应该喊这样的:
, O; G! W: L+ a/ ^2 W6 N* }代码: [GM Information][NAME] TEXT & m% y% f) t: P- n4 n
现在,如果你仍然希望出现这种情况,例如有管理员将需要插入她的下列内容:: L% A6 e" y/ `7 a& o. M8 m: J
代码: { #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; }
* v6 L) _5 G/ }如果你想不仅为管理这一点,你必须始终9 O8 z% d4 S' [! W( ?) F/ ~' b+ s- y
代码: else if(pUser->m_dwAuthorization == AUTHORIZATION) strcat( szName, "Admin][" );
7 q2 A2 {. H; N$ j' @0 c2 z补充。2 w) ~$ G; m" U: |9 c6 o
) R9 G7 f# ~9 ]- U
3 j3 @0 s: ]: E0 q/ M下面是与使用/ SYS解决不同的授权清单:
8 g! x- `/ ]* ?+ W2 d7 D代码: AUTH_GAMEMASTER1 //Gamemaster lvl 1 AUTH_GAMEMASTER2 //Gamemaster lvl 2 AUTH_GAMEMASTER3 //Gamemaster lvl 3 AUTH_ADMINISTRATOR //Administrator
1 X' w+ q: g+ h希望你喜欢指导,批评是欢迎的。" A. _ p7 p! C; l6 q
* J7 H% ~% M, X% B l, K制作所Pumbaaa
7 c4 p8 Y* Y/ S; z |