嘿COM,
: `! C9 s7 c/ ]NEN有点无聊和我开始思考,我写的关于如何得到从GM -喊名字一点时间NEN啧。
- L. e6 D) Q# V7 z/ d! x后,整个看起来像这样:
) p1 i4 T2 t& e, ^' ^ / y/ w2 s. |6 {& q
! a/ E, E' R- L& R W可我第一次补习,所以如果有批评,请说,从而提高自我。- [, f0 }' n' e5 g! [8 f
我不知道我的代码是最优的,肯定有一个更好的解决办法,我还是C ++初学者。
( Z$ j& P/ m! Z, w& U( ]+ p
+ d; u( J- _" ], ]% L' D所以,当你第一次打开了FuncTextCmd.cpp和搜索
" Q9 f z! h2 ~/ s5 T2 O
- _) D Q* G$ Y; \1 G8 _" M Z( x代码: BOOL TextCmd_System( CScanner& scanner )
. I6 i& g- r- [在那里,您会发现:
, L3 E- @9 o5 g$ 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; }
. v, u- [' f6 C; S现在我们引入一个新的变量,我只需调用szName的
" F3 ^# p X4 C9 ?% q7 P那么整个事情看起来像这样:) O+ K) l# `% k7 c; k
代码: { #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; } ; F- p" N6 U$ U# s- {* u
变量我们也等于“[”拯救我们以后的工作XD
* Q# t% U/ j+ p. V4 c; O+ P" k) A: A) L7 t' g% l4 V3 y7 k! l
然后,我们明确了scanner.GetLastFull测试()源;在g_DPCoreClient.SendSystem(szString)。
& y- X. C' ^' _4 a9 V5 k7 C
1 j# H4 r2 {$ D! \7 ]5 q' ?% q整个事情是这样的:5 f9 \! }1 S4 V X
代码: { #ifdef __WORLDSERVER CHAR szString[512] = ""; CHAR szName[512] = "["; CUser* pUser =(CUser*)scanner.dwValue; #endif // __WORLDSERVER return TRUE; } - z7 Z0 w* Q( S6 _( c$ F# `
并提出了下列:$ b. Q5 U9 ^% A, \, }$ l E& h9 j
代码: { #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; }
) p5 k: B/ L* N! X" ?现在,通用汽车应该喊这样的:8 B; `2 v& u; h) Q; t
代码: [GM Information][NAME] TEXT 4 Y; X$ E T, y* c- |
现在,如果你仍然希望出现这种情况,例如有管理员将需要插入她的下列内容:: [. I* n0 ]9 d' z5 \; ], D& c. |. q2 ^
代码: { #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; } " V% \4 Q9 L- U1 r1 Z
如果你想不仅为管理这一点,你必须始终
1 B+ F) S9 Q& K8 o& K/ \代码: else if(pUser->m_dwAuthorization == AUTHORIZATION) strcat( szName, "Admin][" ); # v, h' _, b$ s% E: p9 G1 v7 F
补充。
3 n" R. x) y2 k6 M, v6 A1 L
. e9 Q' u0 o3 l$ V# i4 h( m3 l/ x
1 Q8 k+ ]5 j6 h+ d* Z1 x9 b下面是与使用/ SYS解决不同的授权清单:
! q3 C: d9 m2 J* K. s代码: AUTH_GAMEMASTER1 //Gamemaster lvl 1 AUTH_GAMEMASTER2 //Gamemaster lvl 2 AUTH_GAMEMASTER3 //Gamemaster lvl 3 AUTH_ADMINISTRATOR //Administrator
' j9 T: i) W! A# a8 C5 T希望你喜欢指导,批评是欢迎的。
$ p- R( W5 d7 T6 `2 x
8 y. f1 W* w( C制作所Pumbaaa
. x1 p5 y4 ?; G! e$ {' N8 `$ V |