|
嘿COM,
3 z3 f$ f1 @9 f |NEN有点无聊和我开始思考,我写的关于如何得到从GM -喊名字一点时间NEN啧。3 }1 F& i' R! G0 u- e
后,整个看起来像这样:8 ^9 M2 o( r* ~! B& |# J2 b: U
2 e0 b$ a& f I' ?: Z
1 y# w7 M; p* M; H/ y1 d9 }可我第一次补习,所以如果有批评,请说,从而提高自我。
% N+ T) M7 D; ] M. G% J我不知道我的代码是最优的,肯定有一个更好的解决办法,我还是C ++初学者。3 i3 u& j" u0 M* c2 Y) V
6 ?# a+ j+ m6 J- d( Q+ d
所以,当你第一次打开了FuncTextCmd.cpp和搜索& M, l% s. r, ^9 _
' C7 X3 b, e4 j
代码: BOOL TextCmd_System( CScanner& scanner )
; R5 S! i9 M5 w; ^在那里,您会发现:; p1 q9 b. R O( k
代码: { #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; } , f. o8 c) J1 d3 y+ o
现在我们引入一个新的变量,我只需调用szName的
- t* c/ W9 o H! q" ^) E+ |6 T那么整个事情看起来像这样:0 r( x. o9 g8 W) k- Y6 D$ Q
代码: { #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; }
! Z; K2 M% f6 ~' I/ i6 Y变量我们也等于“[”拯救我们以后的工作XD g8 p, b7 @0 j. K `# @/ Y5 G
* B8 K! w! m$ \, p) c然后,我们明确了scanner.GetLastFull测试()源;在g_DPCoreClient.SendSystem(szString)。
8 A* |8 F7 V! u
3 C0 w2 G3 j) E整个事情是这样的:8 k v# e# l, e" J. t! D3 K
代码: { #ifdef __WORLDSERVER CHAR szString[512] = ""; CHAR szName[512] = "["; CUser* pUser =(CUser*)scanner.dwValue; #endif // __WORLDSERVER return TRUE; }
1 x K, }0 p# Y7 r$ l并提出了下列:
& I+ @) \$ b% A( D# T, h* I* N代码: { #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; } ' T% C) B/ O# G; S& g3 \
现在,通用汽车应该喊这样的:
; s% F; }3 w) ]3 z代码: [GM Information][NAME] TEXT 7 D8 Z. I. q1 I& c- D5 b% a
现在,如果你仍然希望出现这种情况,例如有管理员将需要插入她的下列内容:
8 `# v5 j2 I6 D+ Q2 Q! C5 ]代码: { #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; }
* ~' o$ C' R4 C5 U. w3 g如果你想不仅为管理这一点,你必须始终, a9 @# {: g/ N' g* w( N8 b
代码: else if(pUser->m_dwAuthorization == AUTHORIZATION) strcat( szName, "Admin][" ); % s3 K! e4 X' d: A. K8 K. e
补充。
5 X6 W5 V q+ r# i& d! L
2 r5 U/ y+ V- j, l! u
- V) a O( J2 j+ p# b下面是与使用/ SYS解决不同的授权清单:
' Y5 L3 ], U* I( P$ b! |+ h; s6 `代码: AUTH_GAMEMASTER1 //Gamemaster lvl 1 AUTH_GAMEMASTER2 //Gamemaster lvl 2 AUTH_GAMEMASTER3 //Gamemaster lvl 3 AUTH_ADMINISTRATOR //Administrator
! ^ q! V, U4 e+ X5 T! v希望你喜欢指导,批评是欢迎的。
7 j! s& _8 t' S+ X9 l# s* p/ v! v8 c4 a/ O: o3 y2 L9 {+ F
制作所Pumbaaa 6 l4 S% N0 T1 y7 X' v" h
|