|
嘿COM,
1 c7 t" b; R! o, VNEN有点无聊和我开始思考,我写的关于如何得到从GM -喊名字一点时间NEN啧。
* n3 C% v' |# @后,整个看起来像这样:
" S: q$ u' f% Y" j0 E$ {3 k & k3 q% o5 e2 X( e! B9 g
- {' S% Q- y* ]" C8 g8 O可我第一次补习,所以如果有批评,请说,从而提高自我。$ C9 |" l: i/ b" y4 A5 _" f
我不知道我的代码是最优的,肯定有一个更好的解决办法,我还是C ++初学者。1 D/ b6 N* M n4 z6 j
9 {3 _& y/ m3 x$ Z; U. G0 |( K所以,当你第一次打开了FuncTextCmd.cpp和搜索
, P- f/ O! C' W& W. x4 g% c6 b2 d1 V4 N8 r2 ]. D- j+ |6 U l
代码: BOOL TextCmd_System( CScanner& scanner ) O" E, d5 Q, l7 `! u3 R% ]3 M$ B6 D
在那里,您会发现:
3 {8 J# i1 k" d. ^$ p代码: { #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; }
/ q5 W" `- _; y/ E/ C+ g3 \4 l' `现在我们引入一个新的变量,我只需调用szName的% d! L6 ^. i: H& M
那么整个事情看起来像这样:$ L. ^# c# }& V1 c8 G
代码: { #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; } : _1 S3 b7 x* U6 \! B
变量我们也等于“[”拯救我们以后的工作XD
; J# E" N* A, x; Z$ W2 i1 M$ t
}. s& A |% G8 _0 P4 w然后,我们明确了scanner.GetLastFull测试()源;在g_DPCoreClient.SendSystem(szString)。$ I( p$ Z/ ]6 q0 B5 `! c* E
# ]7 A+ ?8 I9 T整个事情是这样的:2 O# v, E4 z4 ?
代码: { #ifdef __WORLDSERVER CHAR szString[512] = ""; CHAR szName[512] = "["; CUser* pUser =(CUser*)scanner.dwValue; #endif // __WORLDSERVER return TRUE; } 8 l, \/ X, X3 V) e. `
并提出了下列:: k( c' X, c( v* M! o
代码: { #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; } 2 l( v# J1 Y3 Z+ `; Y( Z( y
现在,通用汽车应该喊这样的:
+ B; P+ V$ ]9 b代码: [GM Information][NAME] TEXT 1 g, b7 a/ j# K
现在,如果你仍然希望出现这种情况,例如有管理员将需要插入她的下列内容:
+ d% a( V) ^/ j( m& i5 x$ L代码: { #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; }
- U. H8 }) y$ A4 E如果你想不仅为管理这一点,你必须始终
5 t8 Q$ S, \# a5 T F3 T! h+ _5 z代码: else if(pUser->m_dwAuthorization == AUTHORIZATION) strcat( szName, "Admin][" );
; Z; [. O$ a: K+ n5 ]: e补充。
' T U8 @8 a3 h$ l, |9 a8 M; P3 F4 k6 J, T4 k% _
6 p" v/ W* w7 Y. ^3 a- q
下面是与使用/ SYS解决不同的授权清单:
) B# E; k$ c' C" w# [代码: AUTH_GAMEMASTER1 //Gamemaster lvl 1 AUTH_GAMEMASTER2 //Gamemaster lvl 2 AUTH_GAMEMASTER3 //Gamemaster lvl 3 AUTH_ADMINISTRATOR //Administrator r/ C0 Y0 a# r
希望你喜欢指导,批评是欢迎的。 V0 N/ s, z$ K) d3 T
9 l9 E/ r# n6 j, l. M
制作所Pumbaaa
; }! f' A( d; q' p# [, D9 F. e) C6 s% E |