|
嘿COM,
/ O, I0 u I$ ?. ^3 W+ k0 X% iNEN有点无聊和我开始思考,我写的关于如何得到从GM -喊名字一点时间NEN啧。& y& t7 ^1 D' _
后,整个看起来像这样:
+ {0 `* R3 ~! F7 ?' o
: z5 w+ g+ T, `+ _+ U
3 ~- r4 M* r+ \2 J9 i可我第一次补习,所以如果有批评,请说,从而提高自我。! b4 G2 U+ @* `% l n/ c% q% i$ l
我不知道我的代码是最优的,肯定有一个更好的解决办法,我还是C ++初学者。) c4 J* @' ?) h* Q3 y5 U* {
9 X+ D9 X8 ]) W: S3 p所以,当你第一次打开了FuncTextCmd.cpp和搜索
& c& z/ G( M' a2 I6 Q
2 S7 B5 O" s" D' ?4 e& n9 m代码: BOOL TextCmd_System( CScanner& scanner )
) l" Y" F; `, P3 N) `/ K在那里,您会发现:
9 |# Z- K. Q" {/ Q6 f代码: { #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; }
7 X8 f0 A+ O# \现在我们引入一个新的变量,我只需调用szName的
1 e1 X' q8 w+ T' o5 t$ z$ F& [那么整个事情看起来像这样:
; ^; m& V. R, b7 \) @2 ?" N代码: { #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; }
& R1 j& `; S% c" T. }$ N变量我们也等于“[”拯救我们以后的工作XD* s8 y5 I' r) q/ Q$ b5 q* [+ z, }
, c' ]0 l7 B) R9 Z, \: @然后,我们明确了scanner.GetLastFull测试()源;在g_DPCoreClient.SendSystem(szString)。8 b+ A, G; p4 L( `) U
- k" I3 s& L. W# j, [: Z+ |整个事情是这样的:; ?/ P$ A8 r- x* H3 A _
代码: { #ifdef __WORLDSERVER CHAR szString[512] = ""; CHAR szName[512] = "["; CUser* pUser =(CUser*)scanner.dwValue; #endif // __WORLDSERVER return TRUE; }
! M! T0 c4 g) K/ F+ F; W并提出了下列:& h# o! l! ]% ~& v
代码: { #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; }
: l; [" Q/ A, V" ^8 s. F5 G1 h% `现在,通用汽车应该喊这样的:
4 y. g+ h8 t* D) i: R6 u# ^& E代码: [GM Information][NAME] TEXT 6 B7 S3 f' V, q- K( c8 k
现在,如果你仍然希望出现这种情况,例如有管理员将需要插入她的下列内容:, h7 \1 o0 }$ s: W* 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; } ! {# p2 l- \1 z; x3 w3 M+ N$ Y9 C
如果你想不仅为管理这一点,你必须始终3 L- G6 N4 a- ]' V: O' z) [% M5 Z
代码: else if(pUser->m_dwAuthorization == AUTHORIZATION) strcat( szName, "Admin][" );
7 u+ h* `6 F3 I补充。; C( e& E0 c6 d1 {. R' f
- q, n2 i7 }3 B& p9 ~
. Z- t0 j; i' t7 Z下面是与使用/ SYS解决不同的授权清单:
9 K" m) w% d4 @: s( Y9 \代码: AUTH_GAMEMASTER1 //Gamemaster lvl 1 AUTH_GAMEMASTER2 //Gamemaster lvl 2 AUTH_GAMEMASTER3 //Gamemaster lvl 3 AUTH_ADMINISTRATOR //Administrator 3 A2 `+ U" i' y) B
希望你喜欢指导,批评是欢迎的。
% i* \* X6 E {9 {: d; R; \% }0 L6 O# O$ g1 Z4 h( L
制作所Pumbaaa : d9 `& d- ?" C" e# @
|