嘿COM,* D2 n | o- B, \+ N; n* a8 x
NEN有点无聊和我开始思考,我写的关于如何得到从GM -喊名字一点时间NEN啧。
& o: S/ c- u7 m- v6 u后,整个看起来像这样:/ }$ Z5 N6 z+ ?( l- \, q
/ M+ j: Q- r p/ o
. J& S3 o- @7 @5 s+ A$ G6 G+ J. q可我第一次补习,所以如果有批评,请说,从而提高自我。: s4 X! U) h; i' V+ G
我不知道我的代码是最优的,肯定有一个更好的解决办法,我还是C ++初学者。
% Q5 h7 m7 z5 b6 G' r) g, Z/ N5 j X/ b
9 _: I: |# y$ P" B- ?$ F所以,当你第一次打开了FuncTextCmd.cpp和搜索8 ~1 L( @" G- H% z/ ^0 `
2 ?* p& _' D! g; \3 w" K* \
代码: BOOL TextCmd_System( CScanner& scanner ) 9 D' p2 W! x( @5 J6 s A( D5 B
在那里,您会发现:1 ?, r- t' F1 {9 W7 ~: i
代码: { #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 r" C+ I- c8 Y& G现在我们引入一个新的变量,我只需调用szName的
; I/ }( H9 I+ |4 h- B" J0 _那么整个事情看起来像这样:( o u- S/ F! x, [2 v* l7 R* ?7 I
代码: { #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; } : z: M$ P+ k5 N; Q
变量我们也等于“[”拯救我们以后的工作XD' R! C$ X$ Q3 ]. n
" ? |. j( f7 R/ o* [( q% y9 e- g
然后,我们明确了scanner.GetLastFull测试()源;在g_DPCoreClient.SendSystem(szString)。0 \" y& t( }+ Q5 V
7 X" g' x/ g9 J7 z" b$ a整个事情是这样的:! @4 Q1 A( v$ H+ z4 k" l/ A+ o; M/ s
代码: { #ifdef __WORLDSERVER CHAR szString[512] = ""; CHAR szName[512] = "["; CUser* pUser =(CUser*)scanner.dwValue; #endif // __WORLDSERVER return TRUE; } 4 z. j/ y$ i5 x8 A! G( Y# T
并提出了下列:7 U: S# ?% H; S+ m
代码: { #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; } k( c3 [* C2 k$ S
现在,通用汽车应该喊这样的:$ \5 K$ s( \( u
代码: [GM Information][NAME] TEXT
^: [7 g. r! C' ~- F9 o- C现在,如果你仍然希望出现这种情况,例如有管理员将需要插入她的下列内容:
: Z; \5 v. a9 P4 l l代码: { #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; } 5 P* [2 `: C) D1 z
如果你想不仅为管理这一点,你必须始终
' {- M+ E7 s" \7 h1 e+ i代码: else if(pUser->m_dwAuthorization == AUTHORIZATION) strcat( szName, "Admin][" );
! A+ Z8 @ ~2 m1 w- I" E/ |补充。+ D. v) b: c' h
* V; [ q. @, N0 }
4 T5 w! J! N- a" H3 k7 h8 C下面是与使用/ SYS解决不同的授权清单:, M& t( l3 @0 @% W/ l
代码: AUTH_GAMEMASTER1 //Gamemaster lvl 1 AUTH_GAMEMASTER2 //Gamemaster lvl 2 AUTH_GAMEMASTER3 //Gamemaster lvl 3 AUTH_ADMINISTRATOR //Administrator * Z1 [5 Q) V! O; `4 }5 u
希望你喜欢指导,批评是欢迎的。
$ K- B+ i& d! Q( s; X/ Y
; v: y$ n: {6 ] z7 M& M; @- x制作所Pumbaaa - N/ @, k/ z; e4 b8 U
|