|
嘿COM,# l8 o( V9 W5 Q! `6 B
NEN有点无聊和我开始思考,我写的关于如何得到从GM -喊名字一点时间NEN啧。
' [! g% o1 P/ [# W5 i$ G# s后,整个看起来像这样:; y1 J7 Y% b9 ]; D: ]7 u. B
# C$ y) R5 l6 p( O
2 x u! T% t+ q+ O, o可我第一次补习,所以如果有批评,请说,从而提高自我。/ H, ^# z% d. G! T
我不知道我的代码是最优的,肯定有一个更好的解决办法,我还是C ++初学者。
( D) {3 N3 y5 F* }! R' Y: ?" U( |/ q- P6 j% Z' `; @
所以,当你第一次打开了FuncTextCmd.cpp和搜索
+ o% l9 d! Q& h1 G6 b! b4 f
A! g0 j1 g" Y& a代码: BOOL TextCmd_System( CScanner& scanner ) : _7 W" i' C: z8 S _6 h5 Q- [
在那里,您会发现:
9 X, u, A' k; o. ?& T代码: { #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; }
: R+ f6 ^6 `1 u9 \现在我们引入一个新的变量,我只需调用szName的
a6 w5 B- o$ ]' D; W9 j J那么整个事情看起来像这样: ^ L0 F: u% G, ?- _$ F
代码: { #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; }
( \0 S1 v) `3 d; e: K; n. w# g; o变量我们也等于“[”拯救我们以后的工作XD N& Z* \0 c. c
5 ~( ]/ X ^3 ?( v* H; X
然后,我们明确了scanner.GetLastFull测试()源;在g_DPCoreClient.SendSystem(szString)。. o/ `4 D5 a9 T8 X
3 L4 C: W- D. V整个事情是这样的:6 k* w" z& F2 R, T X1 T3 Y1 j% L
代码: { #ifdef __WORLDSERVER CHAR szString[512] = ""; CHAR szName[512] = "["; CUser* pUser =(CUser*)scanner.dwValue; #endif // __WORLDSERVER return TRUE; } ; ?& k: x" |& X+ K
并提出了下列:
: Z) o* t' X! O# q$ K6 M& }8 K代码: { #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; }
( q) g, ]0 o, q9 W; O% D现在,通用汽车应该喊这样的:+ G! Z _! F2 B( o6 ~: J
代码: [GM Information][NAME] TEXT
) h" Y2 \5 A4 f) @2 H9 h现在,如果你仍然希望出现这种情况,例如有管理员将需要插入她的下列内容:
8 C3 z8 x3 X% j& @7 g0 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; }
/ F+ y! h( s7 G" @9 ^' f7 q如果你想不仅为管理这一点,你必须始终! ^: z/ h# v% ?* h# D) p! n
代码: else if(pUser->m_dwAuthorization == AUTHORIZATION) strcat( szName, "Admin][" ); % ?1 ?- w o: V! j6 i' q
补充。
: |. Q* {7 z+ S3 T6 v; ~# D
7 C) l* Y) O7 R/ L( f3 y# L/ H W. [ E
下面是与使用/ SYS解决不同的授权清单:; K# N2 v+ c. Y6 K+ ^8 u% W2 F
代码: AUTH_GAMEMASTER1 //Gamemaster lvl 1 AUTH_GAMEMASTER2 //Gamemaster lvl 2 AUTH_GAMEMASTER3 //Gamemaster lvl 3 AUTH_ADMINISTRATOR //Administrator " b2 [& }! g9 Q- P" z
希望你喜欢指导,批评是欢迎的。1 a# q8 p- b1 l3 ^
/ j* c( S5 x/ q6 g制作所Pumbaaa
0 j& @5 u$ {/ @& I+ H |