|
嘿COM,2 o7 i6 G- I6 n, v) i- y5 j
NEN有点无聊和我开始思考,我写的关于如何得到从GM -喊名字一点时间NEN啧。
3 F! o0 M& [4 n) I% F3 }/ i后,整个看起来像这样:
3 T* n: m3 a4 E6 N
$ C: M# q1 L; T8 o% Y
2 u) I$ D# `2 u2 ?' Y2 T: i" T3 d- [可我第一次补习,所以如果有批评,请说,从而提高自我。! F1 ?9 K. x5 |& [' W/ `' s
我不知道我的代码是最优的,肯定有一个更好的解决办法,我还是C ++初学者。; z7 U! a5 w+ `9 ]# R3 f
5 m0 y% e$ e; R, ]
所以,当你第一次打开了FuncTextCmd.cpp和搜索- V( }: I8 m) I5 [- m" P9 Q
3 {3 `4 G4 P* }' n/ F
代码: BOOL TextCmd_System( CScanner& scanner ) 4 l; ^; `( d% F7 ^6 N/ O0 g! ]
在那里,您会发现:
, `: O- `. X, u Z0 n, ~代码: { #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; }
1 @. o7 `" v% z+ M2 M现在我们引入一个新的变量,我只需调用szName的
$ R) h) Y* Q. \8 S6 F那么整个事情看起来像这样:8 n. j7 q5 R- o2 G1 U/ R) ]' c3 o- 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; }
, G* T, {6 L J3 R$ n9 u( f变量我们也等于“[”拯救我们以后的工作XD
; Q( m( F1 U! l5 V$ K, r% _
) b0 q$ h6 m' D* V9 c7 q然后,我们明确了scanner.GetLastFull测试()源;在g_DPCoreClient.SendSystem(szString)。& s8 `% N8 C, x5 X9 c
" o" M$ ^- H4 W8 @9 P9 x! `- x# e
整个事情是这样的:
9 q2 Y3 z) F2 M* B% H, \9 A& k( Z代码: { #ifdef __WORLDSERVER CHAR szString[512] = ""; CHAR szName[512] = "["; CUser* pUser =(CUser*)scanner.dwValue; #endif // __WORLDSERVER return TRUE; }
9 ^+ m6 L% A. a1 t$ h' q' X' K并提出了下列:$ t' T9 d- G) r) A
代码: { #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) A" ?4 |1 Q: ~- C现在,通用汽车应该喊这样的:
/ }% @" r4 y7 P6 _4 b; H代码: [GM Information][NAME] TEXT
8 D( k' f4 ~) q现在,如果你仍然希望出现这种情况,例如有管理员将需要插入她的下列内容:
$ ^, J; O3 E) 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; }
( k! r- a1 v6 N; G% b8 Q+ ~& a' k3 V如果你想不仅为管理这一点,你必须始终
: o% }/ d1 k# V: F- b8 S5 m代码: else if(pUser->m_dwAuthorization == AUTHORIZATION) strcat( szName, "Admin][" ); 0 J0 a, e' t) D7 u9 g7 ~, J6 N
补充。" C3 O( J. B9 q! P( y
7 q8 g# P% c* F8 T% C( P
- d$ ]2 M; ~. ^3 n6 u
下面是与使用/ SYS解决不同的授权清单:
8 E9 }+ x. \# }: `3 h代码: AUTH_GAMEMASTER1 //Gamemaster lvl 1 AUTH_GAMEMASTER2 //Gamemaster lvl 2 AUTH_GAMEMASTER3 //Gamemaster lvl 3 AUTH_ADMINISTRATOR //Administrator + T8 J: x0 _' f1 Q1 ]- x, V0 O
希望你喜欢指导,批评是欢迎的。/ x% W) c ]4 W+ a
7 w$ a: n U: n& w5 v; c0 M1 _& ?制作所Pumbaaa c) W2 P8 C1 j7 c6 t8 s" R+ L% f
|