|
嘿COM,
: F. q9 K" J$ K1 T( G' L& hNEN有点无聊和我开始思考,我写的关于如何得到从GM -喊名字一点时间NEN啧。
, D5 N) I4 F4 B6 V后,整个看起来像这样:
9 Y/ X! W# Y8 s0 Z% D3 n + V, L l& f; L* B6 Y6 t; O
6 U. n! J9 l% A% n; C
可我第一次补习,所以如果有批评,请说,从而提高自我。, [- G a$ x( ^
我不知道我的代码是最优的,肯定有一个更好的解决办法,我还是C ++初学者。
# M, X! Y7 {' B/ F. z' K7 K. d0 W/ P. Y; K0 _9 }4 B' P) v8 }
所以,当你第一次打开了FuncTextCmd.cpp和搜索* s2 K+ }. T1 {
8 w/ `0 H' i5 q+ P
代码: BOOL TextCmd_System( CScanner& scanner ) + A5 A. p3 k7 A" p( q+ R
在那里,您会发现:0 ?6 d8 M( W8 Q2 s
代码: { #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; } 9 L/ m, A8 @' D7 E. a7 ~
现在我们引入一个新的变量,我只需调用szName的
5 z+ b3 e5 H! F! L }9 R那么整个事情看起来像这样:
" A! t4 {" ?( X P代码: { #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; } ' W6 s/ f0 G, H- [, o
变量我们也等于“[”拯救我们以后的工作XD* Z7 H' ]/ i7 p D" ~, T
: w3 |8 i: ^' i: V0 Q1 Y然后,我们明确了scanner.GetLastFull测试()源;在g_DPCoreClient.SendSystem(szString)。
8 r- U# P6 g9 K! B% @" I& d. H+ }9 k
整个事情是这样的:
~9 i3 ~ _6 @1 s/ H代码: { #ifdef __WORLDSERVER CHAR szString[512] = ""; CHAR szName[512] = "["; CUser* pUser =(CUser*)scanner.dwValue; #endif // __WORLDSERVER return TRUE; }
) ~6 A m- n: ^ K9 o2 ~: N* o并提出了下列:
) B* [2 K$ b) f# G代码: { #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; }
; b3 X8 K$ S5 z! M4 C4 X7 @; W现在,通用汽车应该喊这样的:
) u3 ]( r% Y ~3 f9 k0 m( B% w( o代码: [GM Information][NAME] TEXT
! T5 f7 i ^/ Y现在,如果你仍然希望出现这种情况,例如有管理员将需要插入她的下列内容:
; T8 i7 I: i* _7 b1 u1 N5 C8 d代码: { #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; } 6 h0 Z# n2 X- T+ b) R, B$ |5 Y1 X
如果你想不仅为管理这一点,你必须始终: U& A" a y# ]5 v+ V9 u) ?% U' ]
代码: else if(pUser->m_dwAuthorization == AUTHORIZATION) strcat( szName, "Admin][" ); 7 V; T8 U1 @0 w& _: c- _
补充。
' W+ `4 E: {9 j9 Z& G& j: d+ b s- W3 M- b) Q, K( |. ]7 X5 y
; [1 n3 q& R$ h& \ F i下面是与使用/ SYS解决不同的授权清单:, E) C" Z; q: j* V/ `2 x
代码: AUTH_GAMEMASTER1 //Gamemaster lvl 1 AUTH_GAMEMASTER2 //Gamemaster lvl 2 AUTH_GAMEMASTER3 //Gamemaster lvl 3 AUTH_ADMINISTRATOR //Administrator 9 k0 k: v+ \2 i+ g1 G3 T
希望你喜欢指导,批评是欢迎的。
$ p" E# @' A2 D3 E# J9 p( ~1 S
! @/ b4 L1 e: X( I0 v制作所Pumbaaa
1 X ]+ r4 J5 r: c |