|
嘿COM,
) {1 v& S1 c( W+ l+ B. m$ wNEN有点无聊和我开始思考,我写的关于如何得到从GM -喊名字一点时间NEN啧。
- Y- `+ |6 i: ~ S9 d5 W后,整个看起来像这样:
: j( {* i9 r! J
8 G+ L' i& \/ H( _; p4 v" ^3 D3 D, B. A4 Y+ X) f1 g
可我第一次补习,所以如果有批评,请说,从而提高自我。
) z$ s: ^* l2 V5 r我不知道我的代码是最优的,肯定有一个更好的解决办法,我还是C ++初学者。9 F' p+ ~& f, m0 N9 h
0 [9 I6 v$ h, Y. f所以,当你第一次打开了FuncTextCmd.cpp和搜索
! C- f6 ~- i. V" B" v1 g4 U+ O- w/ z3 d7 w8 s
代码: BOOL TextCmd_System( CScanner& scanner ) 5 T# P P0 n6 Q1 b* x
在那里,您会发现:
1 t. V3 ~& x2 c5 H# O8 e代码: { #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; } 4 }* J$ a- R, j3 ~8 n
现在我们引入一个新的变量,我只需调用szName的
) }, Y, F. ?0 C* ^) L- L8 K那么整个事情看起来像这样:$ x6 k8 e) E' [7 Y8 {, I, j9 M* c
代码: { #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; } 4 v3 Q' \1 ~. q- }1 Q8 ^
变量我们也等于“[”拯救我们以后的工作XD4 {6 V) ]: X9 X, p5 V8 M
% P) k [ U2 S& m
然后,我们明确了scanner.GetLastFull测试()源;在g_DPCoreClient.SendSystem(szString)。
. R/ q& R& r H; a q2 ]
6 d: U% Q: O( i整个事情是这样的:
3 a; c1 C2 \9 i/ W% k+ B0 g% A代码: { #ifdef __WORLDSERVER CHAR szString[512] = ""; CHAR szName[512] = "["; CUser* pUser =(CUser*)scanner.dwValue; #endif // __WORLDSERVER return TRUE; }
& U0 A# M' O9 t( l/ [/ E并提出了下列:1 P7 M3 n8 G& A3 J1 ~6 _! 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; }
0 f6 D- s2 v! L9 i* u! L& J3 `1 f8 `现在,通用汽车应该喊这样的:
7 _6 ?0 ? m& ^4 b代码: [GM Information][NAME] TEXT
P0 u8 Y* T4 Y3 W+ t4 N* w现在,如果你仍然希望出现这种情况,例如有管理员将需要插入她的下列内容:& m$ \% Z' t% l! t: F8 s |
代码: { #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; } ! j) r5 Z4 n/ q6 P
如果你想不仅为管理这一点,你必须始终2 @1 f4 T# J0 }. h7 ?
代码: else if(pUser->m_dwAuthorization == AUTHORIZATION) strcat( szName, "Admin][" );
8 t4 \1 B! n V; v补充。+ M5 s# {1 ?' M9 o: v6 J, D
0 C" J8 t9 c8 t6 T2 L8 s$ _
& @+ K: l2 c& {下面是与使用/ SYS解决不同的授权清单:
7 L9 a# ^) h7 F! G代码: AUTH_GAMEMASTER1 //Gamemaster lvl 1 AUTH_GAMEMASTER2 //Gamemaster lvl 2 AUTH_GAMEMASTER3 //Gamemaster lvl 3 AUTH_ADMINISTRATOR //Administrator
; W5 C6 E2 S. ], y希望你喜欢指导,批评是欢迎的。
, s5 g! f* a6 X; E/ l& w+ g2 M+ d& ?4 c
制作所Pumbaaa $ V5 \! d* @- i9 u
|