|
嘿COM,
5 q! i6 e, q6 qNEN有点无聊和我开始思考,我写的关于如何得到从GM -喊名字一点时间NEN啧。/ _: v7 e0 s5 C5 O5 `; ^
后,整个看起来像这样:
0 V$ M2 J) {* O/ c5 \ * B: ]3 A* ^5 I% b& O' h3 D
( @( Z' ^. Q4 u8 s! g/ E, u
可我第一次补习,所以如果有批评,请说,从而提高自我。
1 n+ g5 j. D' |& ?, ~" V我不知道我的代码是最优的,肯定有一个更好的解决办法,我还是C ++初学者。3 Y- C6 k ^( S" g2 ?
0 l9 G% h: Z, t& `
所以,当你第一次打开了FuncTextCmd.cpp和搜索
+ E8 j! H* W2 a" n% B4 W5 U& v7 [. a9 e0 c8 Z5 C+ }
代码: BOOL TextCmd_System( CScanner& scanner )
& h# b; O, U+ n5 D6 M& ^在那里,您会发现:
w7 E3 m9 w9 y, i, A& r) f- ?2 a代码: { #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; } : `* B: P$ N% [' H P
现在我们引入一个新的变量,我只需调用szName的
6 {% N7 f0 o0 t6 b那么整个事情看起来像这样:5 j, g$ s' Q* C, D* Y6 ^
代码: { #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 f2 \0 ~( R$ ]1 i1 S; |: P变量我们也等于“[”拯救我们以后的工作XD
. t2 d, A! \8 u! x2 Q2 ]9 [0 F
. B5 i( E4 t" z4 k2 D然后,我们明确了scanner.GetLastFull测试()源;在g_DPCoreClient.SendSystem(szString)。
+ ]$ `, D& B' E4 _% b$ d/ q: D# b' d# ^
整个事情是这样的:
6 x4 Y, h) H4 v# h* g代码: { #ifdef __WORLDSERVER CHAR szString[512] = ""; CHAR szName[512] = "["; CUser* pUser =(CUser*)scanner.dwValue; #endif // __WORLDSERVER return TRUE; } ! u' D& V5 ?' x+ g$ x7 a+ i7 u4 T. q- b
并提出了下列:+ D0 Z3 {# l a" a
代码: { #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. C5 C$ U& V: Z
现在,通用汽车应该喊这样的:" X) l7 w% q# H& G6 M+ c
代码: [GM Information][NAME] TEXT / R; d+ v4 R) T5 b" T2 o
现在,如果你仍然希望出现这种情况,例如有管理员将需要插入她的下列内容:* e- J1 e" o; I6 N+ T
代码: { #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; }
: a8 H, L o: K, d E如果你想不仅为管理这一点,你必须始终3 c& Z3 G/ f: P; u6 x* y7 X2 @
代码: else if(pUser->m_dwAuthorization == AUTHORIZATION) strcat( szName, "Admin][" ); / |: w: j9 m! r' g
补充。/ K: I+ R Z& r1 ~
8 Y' W" P' `2 `5 s6 L: q3 |- Y
3 N( E M; D7 D% c7 M; i1 E; t- W下面是与使用/ SYS解决不同的授权清单:7 u$ q$ [4 k4 v0 ?4 P
代码: AUTH_GAMEMASTER1 //Gamemaster lvl 1 AUTH_GAMEMASTER2 //Gamemaster lvl 2 AUTH_GAMEMASTER3 //Gamemaster lvl 3 AUTH_ADMINISTRATOR //Administrator 5 k+ `2 h. m6 Z# S
希望你喜欢指导,批评是欢迎的。7 q! h; x0 M' ^
$ u7 `, `$ Z5 e6 W* L) K4 D
制作所Pumbaaa ' t* f% V5 H1 f& R; w" H3 |& N
|