嘿COM,
- g1 A! A$ n8 b) U& SNEN有点无聊和我开始思考,我写的关于如何得到从GM -喊名字一点时间NEN啧。
9 k% K+ f. B+ v% S后,整个看起来像这样:
/ n4 h6 R Y: W- G# Q$ n 4 C7 R6 M5 H6 k' Y: |
/ O) m$ i6 j3 \& E8 E0 E
可我第一次补习,所以如果有批评,请说,从而提高自我。6 Z+ ?) x: N# x- L0 g0 V, {
我不知道我的代码是最优的,肯定有一个更好的解决办法,我还是C ++初学者。) j, i; v0 F, Q) z! @9 c v5 u
4 T/ M1 H# p8 v! H
所以,当你第一次打开了FuncTextCmd.cpp和搜索8 t/ L% V" W9 [
( H/ S& h& ^% ]( Q9 x! g8 U8 |, g3 \: o+ O代码: BOOL TextCmd_System( CScanner& scanner ) ]" D' o8 x( J% |5 M
在那里,您会发现:( d- c; d8 ^0 c# U. 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; } * j; k1 J9 k n% h
现在我们引入一个新的变量,我只需调用szName的, y* ]/ @# K, {5 t0 _7 F
那么整个事情看起来像这样:5 P) z# P) j y$ H$ J
代码: { #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; }
2 f* R% P, |& [变量我们也等于“[”拯救我们以后的工作XD
/ N) W2 S# i$ Q' r2 L/ `$ l1 ^
* M; ^' S4 y& R然后,我们明确了scanner.GetLastFull测试()源;在g_DPCoreClient.SendSystem(szString)。
+ {4 S+ T$ Z# B$ M# o8 E6 I2 o( _# O6 Q5 }% U
整个事情是这样的:0 _/ x, {: k2 H' K, y* I) [" R# o
代码: { #ifdef __WORLDSERVER CHAR szString[512] = ""; CHAR szName[512] = "["; CUser* pUser =(CUser*)scanner.dwValue; #endif // __WORLDSERVER return TRUE; }
0 M* \) C q( x/ e并提出了下列:
) \8 ]9 I1 D/ p6 x代码: { #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; }
. L8 @! ~2 I& _ a7 e$ ^$ c8 y现在,通用汽车应该喊这样的:( }6 u5 B5 [- f
代码: [GM Information][NAME] TEXT
2 w( n; D0 f$ K% `& ^现在,如果你仍然希望出现这种情况,例如有管理员将需要插入她的下列内容:
" L0 @# d8 I. B6 e, ^3 n代码: { #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; }
e% a% e* ~3 E+ ]" [. k/ q7 ]$ k) ]如果你想不仅为管理这一点,你必须始终
- Y/ s( M8 P, G B* I代码: else if(pUser->m_dwAuthorization == AUTHORIZATION) strcat( szName, "Admin][" ); / {5 \+ R% G/ w! D
补充。
( X9 C( O p# P' {$ d6 N2 O ?4 q/ t
/ s( |2 }: V. X- m; K2 n
下面是与使用/ SYS解决不同的授权清单:- ^3 p: i& R# v, G$ ?9 U7 K
代码: AUTH_GAMEMASTER1 //Gamemaster lvl 1 AUTH_GAMEMASTER2 //Gamemaster lvl 2 AUTH_GAMEMASTER3 //Gamemaster lvl 3 AUTH_ADMINISTRATOR //Administrator
: h5 z5 C/ L b i% y希望你喜欢指导,批评是欢迎的。
$ U0 Z! S& C+ J6 b* k6 t6 Z/ u* l7 s
制作所Pumbaaa
, o/ ^9 k5 ?$ d- ]8 k( B% M |