嘿COM,
4 `8 K6 z; l% N; H5 u: e$ [NEN有点无聊和我开始思考,我写的关于如何得到从GM -喊名字一点时间NEN啧。1 a$ B) P$ a! H S0 ^
后,整个看起来像这样:
8 [3 \7 b. s! V( \6 |
5 X1 b4 N$ D1 k. X
8 P6 L5 k$ Z" e可我第一次补习,所以如果有批评,请说,从而提高自我。8 j% F) n7 b8 [, n8 F
我不知道我的代码是最优的,肯定有一个更好的解决办法,我还是C ++初学者。% z- [) D$ G, V1 {- {+ B
, V* ~# ~8 D+ {6 D0 I( M, L2 n所以,当你第一次打开了FuncTextCmd.cpp和搜索7 E. l0 \+ p+ \& @% h1 j
" r- D+ D2 q' ]8 H6 J0 d6 Y
代码: BOOL TextCmd_System( CScanner& scanner )
* t* O, i) W& u3 ]+ n$ P) _) B5 B在那里,您会发现:
. c8 }2 E. Q7 m/ z6 e* Q) A代码: { #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; }
* E& L; t" M1 Z7 k0 _+ U现在我们引入一个新的变量,我只需调用szName的
( M- k4 q o. N1 \7 i那么整个事情看起来像这样:! T# {5 [8 e- l9 |
代码: { #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; } ) Q0 z. L& X1 ^" B( W
变量我们也等于“[”拯救我们以后的工作XD
" x. e4 A" a! h; n; C" A7 a& S: a& K/ e/ _; Y* d
然后,我们明确了scanner.GetLastFull测试()源;在g_DPCoreClient.SendSystem(szString)。4 b$ s9 {8 K# P3 [6 U7 p" U
' A) D6 e w. N! p1 E$ ~5 D2 w
整个事情是这样的:
$ M! y% M( O& B$ n3 \% o代码: { #ifdef __WORLDSERVER CHAR szString[512] = ""; CHAR szName[512] = "["; CUser* pUser =(CUser*)scanner.dwValue; #endif // __WORLDSERVER return TRUE; }
/ q7 F5 d1 o+ w" l0 _并提出了下列:, q1 ^+ @ g) n% i) Z+ m5 T, \
代码: { #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; } ) [: s% J& J |5 @5 |
现在,通用汽车应该喊这样的:; M/ i- x) y% }: v' D+ N- P b
代码: [GM Information][NAME] TEXT $ |3 C8 c0 x4 N8 x+ f$ P+ b1 W
现在,如果你仍然希望出现这种情况,例如有管理员将需要插入她的下列内容:7 K% [# I, C/ ?' i4 d1 g7 g
代码: { #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; }
9 {+ R+ p9 ?. z) ^& J! H2 l- E如果你想不仅为管理这一点,你必须始终5 @* s! x9 d5 A3 V* ~
代码: else if(pUser->m_dwAuthorization == AUTHORIZATION) strcat( szName, "Admin][" ); ( j% g& [8 N$ U5 n
补充。
7 `) j/ k7 f2 j: L6 ^. B1 X9 g/ j. @; J* c, P+ z
% ^: D" z! o( k- x3 m: j下面是与使用/ SYS解决不同的授权清单:4 k R# a I& V% G* F
代码: AUTH_GAMEMASTER1 //Gamemaster lvl 1 AUTH_GAMEMASTER2 //Gamemaster lvl 2 AUTH_GAMEMASTER3 //Gamemaster lvl 3 AUTH_ADMINISTRATOR //Administrator 4 V2 \5 V7 Q! f
希望你喜欢指导,批评是欢迎的。
; V" N/ d3 b2 i) A9 @) f/ O
4 t" B5 `. T9 w d |2 v, }& Z制作所Pumbaaa
6 J; ^& O1 O- G$ R* v |