|
嘿COM,7 G7 n. B6 Z% Y4 s f. @. [6 `
NEN有点无聊和我开始思考,我写的关于如何得到从GM -喊名字一点时间NEN啧。
" S; i7 m6 Q& z6 u, A, U后,整个看起来像这样:" U& y" `9 g9 { j% f
, K6 A" H, C! V; q3 z" F
: v( u+ }# s" C# F8 V可我第一次补习,所以如果有批评,请说,从而提高自我。9 R# ~/ E$ {# p( W# f" s7 Q. q# R9 ~
我不知道我的代码是最优的,肯定有一个更好的解决办法,我还是C ++初学者。
* l/ v4 b4 p5 ^$ k4 S& B# S
+ ~) ]# s0 x3 S- z5 w所以,当你第一次打开了FuncTextCmd.cpp和搜索
6 k; L0 |0 T4 g. u0 B8 C: i4 p5 b8 m9 @+ O- I4 J+ f/ N8 z
代码: BOOL TextCmd_System( CScanner& scanner ) . B9 |* I8 k6 f& u
在那里,您会发现:
0 i% X2 J! O" Q, N$ [代码: { #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; }
% @+ G4 i5 V N现在我们引入一个新的变量,我只需调用szName的
; Z; A$ c* ?% A" {" f9 F那么整个事情看起来像这样:
, K. L( o" L; o; E( K4 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; }
* P" S5 _0 Z4 {# q- C# ~9 U变量我们也等于“[”拯救我们以后的工作XD
8 Q% f* c# D% ] z8 ^' s
! b; j0 I/ h3 s8 m( ]+ E然后,我们明确了scanner.GetLastFull测试()源;在g_DPCoreClient.SendSystem(szString)。- }6 W5 Q }: Y5 y- W
5 F. C9 y4 d! h9 B, A& n
整个事情是这样的:
* t( T. _; o9 u. ^ [# B代码: { #ifdef __WORLDSERVER CHAR szString[512] = ""; CHAR szName[512] = "["; CUser* pUser =(CUser*)scanner.dwValue; #endif // __WORLDSERVER return TRUE; } ' W+ D2 ?2 I# t' v
并提出了下列:
, I* T% p. n+ B* ]4 S代码: { #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; }
6 _ `* I& S' `. W* z# i现在,通用汽车应该喊这样的:4 S0 u; _$ L3 ]9 Q1 X2 V
代码: [GM Information][NAME] TEXT
+ a w$ X+ u# n9 c4 H* T6 s2 K现在,如果你仍然希望出现这种情况,例如有管理员将需要插入她的下列内容:
* K2 b2 ~! ^9 E g: g" A代码: { #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; }
; u4 H( Z/ y/ W/ ^" ~' |, M) {/ G如果你想不仅为管理这一点,你必须始终8 U% i0 r( V2 }6 d
代码: else if(pUser->m_dwAuthorization == AUTHORIZATION) strcat( szName, "Admin][" ); 2 p5 g" r! f& r: S
补充。
+ ?9 I D0 ^% o6 ]8 Z) Y" k, N& Q3 {9 \* ]; B% M
: p8 W& i0 v$ C8 @4 _2 E下面是与使用/ SYS解决不同的授权清单:# J0 e; E7 X4 g4 c* [
代码: AUTH_GAMEMASTER1 //Gamemaster lvl 1 AUTH_GAMEMASTER2 //Gamemaster lvl 2 AUTH_GAMEMASTER3 //Gamemaster lvl 3 AUTH_ADMINISTRATOR //Administrator - P+ S' `2 `/ T/ H
希望你喜欢指导,批评是欢迎的。
4 [+ C# D- T0 x# @1 h" n+ m' m; w n: h. \' d0 K( ^* ^
制作所Pumbaaa
$ r1 N6 f# }- V& ~! i- Z, A) q |