嘿COM,
, G0 v" P; T0 C1 gNEN有点无聊和我开始思考,我写的关于如何得到从GM -喊名字一点时间NEN啧。
, x( |/ t& M4 u' ?- f! I) i& \后,整个看起来像这样:4 J$ R) G4 D( @, M8 k; R* t- t/ L
1 Q5 m, g+ j/ k& Q% p7 k5 h! E9 P G2 ~
可我第一次补习,所以如果有批评,请说,从而提高自我。) @# R! T4 X2 @% }& F X
我不知道我的代码是最优的,肯定有一个更好的解决办法,我还是C ++初学者。. i" u1 g: O3 M) c
4 N+ X8 {: z5 b所以,当你第一次打开了FuncTextCmd.cpp和搜索. C( G0 M6 H% L3 x" s7 z& I
* H9 |' n; I2 y* n! T5 |! i代码: BOOL TextCmd_System( CScanner& scanner )
3 D3 ~ K( i- a, ~: P: p5 ^在那里,您会发现:; {7 ^: ~' s0 b$ C
代码: { #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; } ) |4 p4 E7 V8 j& z9 x
现在我们引入一个新的变量,我只需调用szName的; X& s; T! `4 H3 Q" E
那么整个事情看起来像这样:( _; @1 B; n( X3 K% K
代码: { #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; }
* {5 [4 h+ `; z6 a变量我们也等于“[”拯救我们以后的工作XD
7 X$ F; J/ j1 X! s
6 @, U: X% E5 Q- k; ^然后,我们明确了scanner.GetLastFull测试()源;在g_DPCoreClient.SendSystem(szString)。
0 B8 Q( P- G6 Y1 @) v' P5 M0 s, [' Z( l
整个事情是这样的:! t, R( }$ T4 ^- Y2 t
代码: { #ifdef __WORLDSERVER CHAR szString[512] = ""; CHAR szName[512] = "["; CUser* pUser =(CUser*)scanner.dwValue; #endif // __WORLDSERVER return TRUE; }
4 T. G$ W& \9 f. e C, ~1 p并提出了下列:
! A0 E1 [2 Y' n代码: { #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; } . @2 X, h, T9 b+ {4 v V
现在,通用汽车应该喊这样的:/ x I3 u q" N: f5 s! v3 h
代码: [GM Information][NAME] TEXT
( H9 u) p7 |* E' w2 c现在,如果你仍然希望出现这种情况,例如有管理员将需要插入她的下列内容:
9 H& z( m. t5 E6 D0 Q; b, I, Y代码: { #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; }
$ `0 C2 Z" S) H如果你想不仅为管理这一点,你必须始终
# n+ O) w2 s" G" J, e代码: else if(pUser->m_dwAuthorization == AUTHORIZATION) strcat( szName, "Admin][" ); # d4 \# i5 a& k- {, Y$ K: Q0 }
补充。
* `& k3 l4 S7 \" u N! x4 ?6 w& J2 R9 T; c, T2 g$ [7 L+ G: a
& }0 A7 A1 {2 @" z4 w. s8 J
下面是与使用/ SYS解决不同的授权清单:
0 J7 w# w) A& G, f/ @; x代码: AUTH_GAMEMASTER1 //Gamemaster lvl 1 AUTH_GAMEMASTER2 //Gamemaster lvl 2 AUTH_GAMEMASTER3 //Gamemaster lvl 3 AUTH_ADMINISTRATOR //Administrator
, j# m# L4 K$ P5 E& z* z希望你喜欢指导,批评是欢迎的。
% ~5 m" N% W0 T, e# I6 Q H
/ [+ V) Q" a$ ~, A' C7 q制作所Pumbaaa . }9 e' t7 K; F0 t! w. {; E. \
|