|
嘿COM,
0 m9 n! P' _; e8 iNEN有点无聊和我开始思考,我写的关于如何得到从GM -喊名字一点时间NEN啧。
4 x# W, m; o; Y9 [& g( K: p后,整个看起来像这样:
/ w) G( j, L! B1 y3 e& Y - x r4 O' n+ Q6 e A. u2 w
7 C, u" n( b# _+ y' Z1 s( I可我第一次补习,所以如果有批评,请说,从而提高自我。, N. ^; Y/ {3 C9 }
我不知道我的代码是最优的,肯定有一个更好的解决办法,我还是C ++初学者。! _3 n5 W, [; @; ^
3 m$ V( b: I/ ^+ R5 \& {
所以,当你第一次打开了FuncTextCmd.cpp和搜索, o( l# c( ]: j: ?
. e1 H3 t& w& n8 J- _& g; }3 e: O/ o代码: BOOL TextCmd_System( CScanner& scanner )
2 {, X6 t k, O5 i U8 x. \" m在那里,您会发现:
! e" |+ V+ m: w( ^* c/ X代码: { #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; }
' Q' q x/ ~" Q0 `# t7 j+ ?现在我们引入一个新的变量,我只需调用szName的
! @4 a. F8 }+ V7 G& Z7 v8 f那么整个事情看起来像这样:2 [+ i2 K* I) F
代码: { #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 a2 I" C% l6 \: Q2 C变量我们也等于“[”拯救我们以后的工作XD1 f6 G8 p# i+ R" _3 V5 W
; W3 c9 S& c9 N8 n1 Q" T2 L然后,我们明确了scanner.GetLastFull测试()源;在g_DPCoreClient.SendSystem(szString)。
$ t9 u! b: f1 @( S" e; |, g+ l
1 ]# b$ O( p7 }9 Z0 q# u% a( Z整个事情是这样的:" V* k/ x8 f8 W: G6 k0 F0 z
代码: { #ifdef __WORLDSERVER CHAR szString[512] = ""; CHAR szName[512] = "["; CUser* pUser =(CUser*)scanner.dwValue; #endif // __WORLDSERVER return TRUE; }
2 N) D( A; ~- W1 j* O* l9 V并提出了下列:
+ G E# P1 n8 v! y* c* A5 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; }
% d+ V9 z* c# z现在,通用汽车应该喊这样的:5 f" H4 Y. C' {0 O. o0 G7 V
代码: [GM Information][NAME] TEXT
9 E Y8 P$ a* v* V/ N现在,如果你仍然希望出现这种情况,例如有管理员将需要插入她的下列内容:, ~ ^! a8 E! i& Y1 S& i2 r2 p
代码: { #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; } & ]# s3 z/ } _( J: F7 P
如果你想不仅为管理这一点,你必须始终
) t% P f! U) X" W- s" z6 N6 L代码: else if(pUser->m_dwAuthorization == AUTHORIZATION) strcat( szName, "Admin][" );
3 v- P1 |. ?1 {# O, z- M, _8 C补充。( M& }& T, l ]& l
* r. L( k: G" X6 r) ^
; Y4 w7 g( x% Q# o+ |( P! G5 \7 L3 p) k下面是与使用/ SYS解决不同的授权清单:
$ I) I) T% o7 p7 K& V) F9 U; X代码: AUTH_GAMEMASTER1 //Gamemaster lvl 1 AUTH_GAMEMASTER2 //Gamemaster lvl 2 AUTH_GAMEMASTER3 //Gamemaster lvl 3 AUTH_ADMINISTRATOR //Administrator
5 Q7 e1 L3 V Q9 F希望你喜欢指导,批评是欢迎的。
_9 l- v* `( p4 e) S1 r4 g5 n, }9 q2 G5 P8 L% f0 M/ C1 B
制作所Pumbaaa
8 L0 M) f: r8 \; ]- |! b |