|
嘿COM,8 ?2 o+ o; S$ |& p- T! h" j9 U+ `
NEN有点无聊和我开始思考,我写的关于如何得到从GM -喊名字一点时间NEN啧。
3 H# u# T. B; u6 ^) a4 R后,整个看起来像这样:) J( {# T: T; w# t# ~
: M: x, p9 t# h8 E0 `
5 n6 _! R( f' ^可我第一次补习,所以如果有批评,请说,从而提高自我。
4 O, C$ q8 f, N我不知道我的代码是最优的,肯定有一个更好的解决办法,我还是C ++初学者。
( o$ N7 d6 `8 R8 S R0 q. a- h* b
所以,当你第一次打开了FuncTextCmd.cpp和搜索5 p, m9 a. B# @& N# O
. [9 ~8 f/ }- m- K* j% Q$ E, `" s代码: BOOL TextCmd_System( CScanner& scanner ) & |5 H- m N% n" u7 [8 q
在那里,您会发现:7 z" J: q/ x6 L3 t9 V
代码: { #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; } 0 k1 b3 O. i# T8 ^$ q# i/ {: D" J
现在我们引入一个新的变量,我只需调用szName的: ?+ G9 j. m2 N; c
那么整个事情看起来像这样:" N+ Q# |" P9 O, Z) A
代码: { #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; }
9 y+ B( Q! e& v, G- ~ k变量我们也等于“[”拯救我们以后的工作XD
0 U6 l: r; v' {( O% y M0 ~2 G @* s2 Q1 n% z
然后,我们明确了scanner.GetLastFull测试()源;在g_DPCoreClient.SendSystem(szString)。% G; O% a. e* S$ x0 M" g0 j
- s6 J' X+ O$ T- W2 N1 g8 p; N4 T整个事情是这样的:/ L5 [+ X( E9 w8 z! U$ d" k
代码: { #ifdef __WORLDSERVER CHAR szString[512] = ""; CHAR szName[512] = "["; CUser* pUser =(CUser*)scanner.dwValue; #endif // __WORLDSERVER return TRUE; }
5 ]7 u8 }. A, d& J& B# n8 S/ e并提出了下列:
; S+ ?8 G/ h' g' d代码: { #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; }
9 z& ?8 D; a! G4 R u1 V现在,通用汽车应该喊这样的:
# [8 g8 _- {8 M; K D: i代码: [GM Information][NAME] TEXT % K6 I" V5 { f1 ~ C
现在,如果你仍然希望出现这种情况,例如有管理员将需要插入她的下列内容:( ^6 \4 @8 f8 C$ m
代码: { #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; }
0 P% d) {" L; [+ Y$ E r V* x4 ]- b如果你想不仅为管理这一点,你必须始终. W) v) a8 b' \$ u$ ~9 q
代码: else if(pUser->m_dwAuthorization == AUTHORIZATION) strcat( szName, "Admin][" );
+ h4 C, T; k6 K- h补充。
9 K6 n: M3 d& y2 ~4 @! s' j" W5 k/ h0 e, k' F* S+ q
1 J5 h7 [7 u* P7 C, m! }( T
下面是与使用/ SYS解决不同的授权清单:! L0 ?9 L' W* q% L, A3 P
代码: AUTH_GAMEMASTER1 //Gamemaster lvl 1 AUTH_GAMEMASTER2 //Gamemaster lvl 2 AUTH_GAMEMASTER3 //Gamemaster lvl 3 AUTH_ADMINISTRATOR //Administrator - u, W- L# c0 h% `# a, y
希望你喜欢指导,批评是欢迎的。
5 [$ c2 v* J! m7 S$ Q9 N: j3 n( D
制作所Pumbaaa % }4 k: H# N# u& d& b8 I" U7 `
|