嘿COM,
8 ` ^9 H N% l7 p3 t2 R# s( ?: ANEN有点无聊和我开始思考,我写的关于如何得到从GM -喊名字一点时间NEN啧。% Y2 h1 u# ]$ `7 F+ M4 @) N0 i
后,整个看起来像这样:, v3 v! v& b) |, x# {
. i: w- d& c" s0 e4 g
! _3 |. Z3 f. B. N6 @) L6 M可我第一次补习,所以如果有批评,请说,从而提高自我。. `( n, e% P. R+ e1 f, d
我不知道我的代码是最优的,肯定有一个更好的解决办法,我还是C ++初学者。
$ B( M3 u7 B* G1 s3 `" a7 u1 S* n" n! E7 v& R5 H6 [0 r
所以,当你第一次打开了FuncTextCmd.cpp和搜索, v: Q6 h3 v" f
* ?" c( c' o6 d* Q, p" c b代码: BOOL TextCmd_System( CScanner& scanner )
$ u) d8 e. x3 Z! K Z( \* B0 m3 k; o在那里,您会发现:& s& T( c% F1 U+ M8 t# H
代码: { #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; }
' b) f2 y$ L7 [ l4 Q. Q5 t$ j现在我们引入一个新的变量,我只需调用szName的) I$ E( t3 l( [8 |, I" x8 l
那么整个事情看起来像这样:9 y( y/ A& |$ Z& }% [
代码: { #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; } 6 S ?/ X6 i0 z
变量我们也等于“[”拯救我们以后的工作XD
$ ~; O/ @ A- |/ o: m/ O8 r6 K N9 R2 M" _+ E6 K
然后,我们明确了scanner.GetLastFull测试()源;在g_DPCoreClient.SendSystem(szString)。
, a$ x" T4 E2 Q! w, k) R0 J1 P6 s7 Y) t. g2 k- z/ P5 t2 ^
整个事情是这样的:2 h0 c7 y9 P' P& Q+ d6 o
代码: { #ifdef __WORLDSERVER CHAR szString[512] = ""; CHAR szName[512] = "["; CUser* pUser =(CUser*)scanner.dwValue; #endif // __WORLDSERVER return TRUE; } / S0 Z$ Y: \& c# f. h! H; q
并提出了下列:" f6 [& l( S( X* x" f
代码: { #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; }
. E5 }' ~/ H& o3 o, I8 k5 K( H9 s现在,通用汽车应该喊这样的:
; i7 E$ X; N& Q7 Q代码: [GM Information][NAME] TEXT , C+ E9 q4 Q8 J8 c
现在,如果你仍然希望出现这种情况,例如有管理员将需要插入她的下列内容:
3 J& I6 a6 e" [2 i5 D1 v( }代码: { #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; } ! Q; y( D( a' R
如果你想不仅为管理这一点,你必须始终
0 H4 M) s8 o* A0 a代码: else if(pUser->m_dwAuthorization == AUTHORIZATION) strcat( szName, "Admin][" ); ( n. ]6 q J; U/ y! y- u
补充。3 a' k; U4 ?, B; o1 M+ Q H5 G$ @
$ t$ S5 l9 P+ V; n0 S$ I! X# \' ?( L) O; P9 e
下面是与使用/ SYS解决不同的授权清单:
! p+ Z3 |# y4 _! t( }! f. G0 i代码: AUTH_GAMEMASTER1 //Gamemaster lvl 1 AUTH_GAMEMASTER2 //Gamemaster lvl 2 AUTH_GAMEMASTER3 //Gamemaster lvl 3 AUTH_ADMINISTRATOR //Administrator
- u3 B2 z6 a5 d; U7 L希望你喜欢指导,批评是欢迎的。! B8 x5 b% X4 v/ K1 o0 w
6 p" @ v6 a# C2 M% _( s# _/ L5 w
制作所Pumbaaa : o' s6 E1 C7 S
|