|
嘿COM,
. v& D- e! o" C' hNEN有点无聊和我开始思考,我写的关于如何得到从GM -喊名字一点时间NEN啧。- p6 J1 | c/ a* | U7 s: @7 U
后,整个看起来像这样:, q7 m* _& @, r7 {( T
$ o# y/ A8 n' P% ^# K- D t5 R
6 `" F# e7 \5 s* {; a. {( f可我第一次补习,所以如果有批评,请说,从而提高自我。
4 [. T/ A" x0 J3 f& N2 P我不知道我的代码是最优的,肯定有一个更好的解决办法,我还是C ++初学者。5 p( m. ^6 M7 o7 V) n, v
. O0 I3 I( C+ @$ m; m! E
所以,当你第一次打开了FuncTextCmd.cpp和搜索, i; e N) j- b/ e9 t
7 O- D8 D" u' L& k( q _0 \代码: BOOL TextCmd_System( CScanner& scanner ) $ @; G) N* W' O
在那里,您会发现:
, S- ~. z" f% J2 O r: T# m代码: { #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; } & j& p4 ?) r2 j c2 e0 m
现在我们引入一个新的变量,我只需调用szName的4 q0 Y( i) w" m o$ x" \% \3 U
那么整个事情看起来像这样:
9 a& Y: s& f0 t% [( s9 D! s, v代码: { #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; } ; I6 i2 T+ I/ d
变量我们也等于“[”拯救我们以后的工作XD
& Z4 I' Z1 S$ g! Q0 W* C4 `9 z6 G# F
然后,我们明确了scanner.GetLastFull测试()源;在g_DPCoreClient.SendSystem(szString)。
8 ~2 @, s3 d! k) i# y0 r# @0 G
/ m1 e- i9 H+ `9 r5 D: u' I整个事情是这样的:' n0 E2 i6 h& L& g
代码: { #ifdef __WORLDSERVER CHAR szString[512] = ""; CHAR szName[512] = "["; CUser* pUser =(CUser*)scanner.dwValue; #endif // __WORLDSERVER return TRUE; } + R" D2 }( r" r" W7 Q. i
并提出了下列:( F, H8 X5 D" g* f' Q4 ~! A+ |$ X* @: y
代码: { #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; } + P% z4 |7 P. T- C
现在,通用汽车应该喊这样的:
% q4 K' o5 H2 _* X1 |& ?代码: [GM Information][NAME] TEXT 1 J1 Q7 M+ @7 {9 ^) }0 z2 P6 z
现在,如果你仍然希望出现这种情况,例如有管理员将需要插入她的下列内容:
! m/ M# y i( l8 i9 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; }
8 |$ _$ p/ }6 a如果你想不仅为管理这一点,你必须始终
t) F: v- K" i6 D代码: else if(pUser->m_dwAuthorization == AUTHORIZATION) strcat( szName, "Admin][" );
1 G+ O6 ^- G( o补充。6 f+ y% y1 F- E! |, i+ O" M
2 d7 Z% q- x- q4 T. r9 y) D2 I1 q E1 ^# J8 h. w
下面是与使用/ SYS解决不同的授权清单:
+ B5 x" S8 B W9 ]9 F代码: AUTH_GAMEMASTER1 //Gamemaster lvl 1 AUTH_GAMEMASTER2 //Gamemaster lvl 2 AUTH_GAMEMASTER3 //Gamemaster lvl 3 AUTH_ADMINISTRATOR //Administrator & P$ D9 s% k1 o3 l) D
希望你喜欢指导,批评是欢迎的。
* @' C6 K! f: `% o, W7 y
% e+ p& M& \1 p) U* x制作所Pumbaaa
. e8 n/ u% W& J* S/ Y |