|
嘿COM,8 u* c; }3 ^7 V1 }& |. H- l) o- d, r
NEN有点无聊和我开始思考,我写的关于如何得到从GM -喊名字一点时间NEN啧。; s; q$ a0 o6 E8 T ~8 l
后,整个看起来像这样: W" R4 z" \4 V; s
% D5 P& h6 A r4 J# [6 R8 ?. W6 ]% L5 A% E* I
可我第一次补习,所以如果有批评,请说,从而提高自我。* t+ g! W8 B# k0 u) Z: J P
我不知道我的代码是最优的,肯定有一个更好的解决办法,我还是C ++初学者。) @; t) K* q4 g$ J
! E7 r, ?1 e/ L! _/ Q7 p' a所以,当你第一次打开了FuncTextCmd.cpp和搜索+ B8 p& `' S; r
6 c8 J! N1 G5 }5 M% S S
代码: BOOL TextCmd_System( CScanner& scanner ) 2 G) d) V8 D8 L
在那里,您会发现:1 Q& x+ J$ w& L+ ~, ]9 b
代码: { #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; }
# K# i! F* H4 d! C6 f现在我们引入一个新的变量,我只需调用szName的5 D' ~7 ^2 J- _+ |# o; C- n
那么整个事情看起来像这样:
4 B* e! f8 p! V3 s4 z& ?' I) 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; }
% P+ P' z- W7 V, d! L变量我们也等于“[”拯救我们以后的工作XD
% Z1 R+ y% q( q- \% M# x8 W1 l7 F& Y
然后,我们明确了scanner.GetLastFull测试()源;在g_DPCoreClient.SendSystem(szString)。
8 B4 S: |9 U3 A4 ]! M) n( ~2 i' }
整个事情是这样的:5 c- T3 m* q4 `6 m6 l0 q. ?: M
代码: { #ifdef __WORLDSERVER CHAR szString[512] = ""; CHAR szName[512] = "["; CUser* pUser =(CUser*)scanner.dwValue; #endif // __WORLDSERVER return TRUE; } 3 }* O: o* M4 q, X
并提出了下列:7 ?, B- X4 V2 H
代码: { #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; } * q$ ?& M8 r5 m
现在,通用汽车应该喊这样的:
, |5 A9 O. Y Q7 V' ~2 f: N代码: [GM Information][NAME] TEXT + ]% g: Q+ r3 u# f2 }& Z! | Y7 D) p
现在,如果你仍然希望出现这种情况,例如有管理员将需要插入她的下列内容:
5 d% S3 V- |8 b% J1 d P4 O代码: { #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; } ; t2 r2 m! a3 t8 i1 Y; z
如果你想不仅为管理这一点,你必须始终
; w; c. c4 G& |5 o1 A: b* L代码: else if(pUser->m_dwAuthorization == AUTHORIZATION) strcat( szName, "Admin][" );
3 Z: C0 S4 T2 {' h1 N补充。" C2 ~4 |9 e4 e
" h% {7 o" [5 N8 r
' S5 Y( V! T3 e7 [4 y下面是与使用/ SYS解决不同的授权清单:/ a: s* ^4 @7 V {1 ~
代码: AUTH_GAMEMASTER1 //Gamemaster lvl 1 AUTH_GAMEMASTER2 //Gamemaster lvl 2 AUTH_GAMEMASTER3 //Gamemaster lvl 3 AUTH_ADMINISTRATOR //Administrator 8 z% b" T) D9 s' @1 ^% Z5 i& Z
希望你喜欢指导,批评是欢迎的。; E. R) R7 q/ k
9 s% e% {; I4 u- `, e
制作所Pumbaaa
3 f0 H( U. _$ V3 X O, P+ n! o |