|
嘿COM,7 P# X( f7 b% Y# B0 d
NEN有点无聊和我开始思考,我写的关于如何得到从GM -喊名字一点时间NEN啧。! i1 p* P: w% J* y$ N$ d1 L
后,整个看起来像这样:. R% W) C0 c, M7 O# |+ [
9 S" _! H/ I, T3 i8 t1 E
5 H# _5 I5 X$ o2 r2 t! p可我第一次补习,所以如果有批评,请说,从而提高自我。6 n$ y! D. B$ D" j7 A" Z
我不知道我的代码是最优的,肯定有一个更好的解决办法,我还是C ++初学者。3 O% L2 n1 J/ O: P( n8 U
# r: c' Q" y/ G5 E2 z所以,当你第一次打开了FuncTextCmd.cpp和搜索& N) b o4 e$ G6 e% H$ |4 s
9 l7 L8 g0 ~3 `8 j代码: BOOL TextCmd_System( CScanner& scanner ) & e: s9 h$ u2 e( F! m7 z Q$ V
在那里,您会发现:2 j% s K- ?9 v/ w, j( r3 T; l3 C+ Q
代码: { #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 ~3 J$ V' L7 Q% d
现在我们引入一个新的变量,我只需调用szName的
! v6 a4 \% ]$ d! |+ h那么整个事情看起来像这样:
4 u* V9 E/ \5 h" ~, h代码: { #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; } 7 k+ S( {& a7 M8 \) |$ @
变量我们也等于“[”拯救我们以后的工作XD
; R" g, \! Q4 A' [/ ~$ ^. a- [) [9 S2 X$ C
然后,我们明确了scanner.GetLastFull测试()源;在g_DPCoreClient.SendSystem(szString)。
: H$ F9 h) s( h' K$ \1 @( Q$ a/ y+ W
整个事情是这样的:
+ P5 Q7 j/ e2 \5 F% m! y. J! E代码: { #ifdef __WORLDSERVER CHAR szString[512] = ""; CHAR szName[512] = "["; CUser* pUser =(CUser*)scanner.dwValue; #endif // __WORLDSERVER return TRUE; }
7 B2 i( d3 p- ?$ ~- k并提出了下列:
" r8 I1 K5 b$ ?代码: { #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; } 8 R6 S: w' O/ p9 q
现在,通用汽车应该喊这样的:
- e$ \6 ?2 B1 ?. T# b代码: [GM Information][NAME] TEXT
, F9 @. K* E, d( H- R7 N& f现在,如果你仍然希望出现这种情况,例如有管理员将需要插入她的下列内容:" b6 G6 g" X9 I( P6 Z
代码: { #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 B4 }$ e# c% K如果你想不仅为管理这一点,你必须始终
7 O- @. y& [2 n. o代码: else if(pUser->m_dwAuthorization == AUTHORIZATION) strcat( szName, "Admin][" );
( d U- C2 v: T- C0 n: {# [6 h B补充。6 `4 ]& f8 M [8 g- {8 Y1 I
$ [( V/ O. Z* l9 D) o( d( J4 z2 n
6 L- d# N# B7 E- F( p7 S下面是与使用/ SYS解决不同的授权清单:
# {. n. L: k; v! J _9 s1 ?$ o! \代码: AUTH_GAMEMASTER1 //Gamemaster lvl 1 AUTH_GAMEMASTER2 //Gamemaster lvl 2 AUTH_GAMEMASTER3 //Gamemaster lvl 3 AUTH_ADMINISTRATOR //Administrator
" Y. N5 D; w4 w [0 ?, e希望你喜欢指导,批评是欢迎的。
- x+ F( y5 o/ c/ u0 y. \2 C- n4 s" J1 @0 N
制作所Pumbaaa " @4 p) f4 y/ E) C/ J! n1 Q: q% y
|