|
嘿COM,
6 o- {8 U3 x8 r. N( K1 _7 E; v% cNEN有点无聊和我开始思考,我写的关于如何得到从GM -喊名字一点时间NEN啧。
* D) S! q# C l: _" j4 F后,整个看起来像这样:4 d! t( U/ Z- P( }" ?
& S- O3 ?% }( c8 X9 s3 o; ]- s# w3 |) `0 u0 \' X( J& L4 N5 a
可我第一次补习,所以如果有批评,请说,从而提高自我。
. n' ~9 n; B4 A# u我不知道我的代码是最优的,肯定有一个更好的解决办法,我还是C ++初学者。
/ p" }- E- f1 e# |& U( c$ e( a7 S% l
所以,当你第一次打开了FuncTextCmd.cpp和搜索
4 r+ W& L; L; A4 |5 r7 [
: ? z% P2 n9 c代码: BOOL TextCmd_System( CScanner& scanner )
3 r/ a7 }, E4 E: I在那里,您会发现:
0 W* \" E) ?7 y0 L0 \1 g代码: { #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; } 3 a5 r- L8 f9 n. f7 r
现在我们引入一个新的变量,我只需调用szName的
/ q- v7 p; U5 b: L那么整个事情看起来像这样:
U$ U7 Z' s$ J/ ^9 J+ I5 `- w1 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; } % v5 X5 \* u2 s0 k. u) K6 d) o
变量我们也等于“[”拯救我们以后的工作XD
: l5 r/ c. v* l7 W6 E
; t4 K8 R* j/ X5 C+ B: }% t2 n6 M然后,我们明确了scanner.GetLastFull测试()源;在g_DPCoreClient.SendSystem(szString)。
& x0 G1 b0 Z t
) ?7 d+ \3 [# u8 F; V: [/ d4 C整个事情是这样的:
( \( G: w, R) U) f" e; C代码: { #ifdef __WORLDSERVER CHAR szString[512] = ""; CHAR szName[512] = "["; CUser* pUser =(CUser*)scanner.dwValue; #endif // __WORLDSERVER return TRUE; }
; {) v) x, B8 z6 a$ l" v T并提出了下列:; u; f1 z/ M! b3 O/ e+ H
代码: { #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; } * q- v3 k$ ?- `( S7 |/ U2 l# ^' r% S
现在,通用汽车应该喊这样的:3 d! y' e5 J( }& _; S
代码: [GM Information][NAME] TEXT 8 {* h$ Z/ f- X: j W0 \" s, C
现在,如果你仍然希望出现这种情况,例如有管理员将需要插入她的下列内容:6 c9 B$ p7 |2 X. p6 s' D
代码: { #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; } $ S! |. z$ K" `/ t7 K& I5 n
如果你想不仅为管理这一点,你必须始终
7 U% `" B8 J2 q9 d8 |代码: else if(pUser->m_dwAuthorization == AUTHORIZATION) strcat( szName, "Admin][" );
. `; C' p4 N# l3 S4 k, A4 W补充。7 M3 @. H, z4 G+ ]& _
, I; q7 ~' w, t# P" D3 z
7 `- |7 G. l1 _7 |* |3 ^下面是与使用/ SYS解决不同的授权清单:" G4 g9 B2 h# u, U4 |( V
代码: AUTH_GAMEMASTER1 //Gamemaster lvl 1 AUTH_GAMEMASTER2 //Gamemaster lvl 2 AUTH_GAMEMASTER3 //Gamemaster lvl 3 AUTH_ADMINISTRATOR //Administrator * T9 s7 Y, I( [- V
希望你喜欢指导,批评是欢迎的。
3 L1 V8 ^7 T3 @4 |; _- a
1 e" y7 U7 K0 r! U; c$ t制作所Pumbaaa
$ W8 x3 s; d5 y J$ @0 z |