|
嘿COM,' V! P) y: A8 N9 o
NEN有点无聊和我开始思考,我写的关于如何得到从GM -喊名字一点时间NEN啧。
+ ^4 `# k/ u6 j后,整个看起来像这样:
7 ]6 \ C1 a% J* Q- i* }/ y; k H
! X) I; o9 v- `9 H& h
) X- D8 Y2 F# k1 Q$ H可我第一次补习,所以如果有批评,请说,从而提高自我。
3 r% X* |2 S r3 J o" b& s. a我不知道我的代码是最优的,肯定有一个更好的解决办法,我还是C ++初学者。
; Y% Q( L1 Z u4 M# t6 v" j; G Y. a m+ ?
所以,当你第一次打开了FuncTextCmd.cpp和搜索
* M% D, s2 b* y0 J+ G3 P* ?8 d8 T1 Y3 a6 ?
代码: BOOL TextCmd_System( CScanner& scanner )
# [/ J( }2 Q( _& k7 s9 n在那里,您会发现:
1 _. C+ I6 C5 V/ l$ K代码: { #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; }
+ S" @! n; U5 `& {& y' k, J; Z现在我们引入一个新的变量,我只需调用szName的' K$ X m# ]$ e- x
那么整个事情看起来像这样: m: F& I: g* ^% R7 G; {( ]/ K, _2 O
代码: { #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; } 0 F/ E0 V& `7 D3 v/ [( U7 t9 f B7 Q
变量我们也等于“[”拯救我们以后的工作XD
- l; T2 ? C( H6 z; u3 r4 K- G* q _4 h# o5 ]! x" K& u$ h& p/ D! u
然后,我们明确了scanner.GetLastFull测试()源;在g_DPCoreClient.SendSystem(szString)。
i* p. s8 c) `3 [4 _8 l! }" y$ v1 j
整个事情是这样的:
$ X3 {+ ^! M0 s H \! n2 j代码: { #ifdef __WORLDSERVER CHAR szString[512] = ""; CHAR szName[512] = "["; CUser* pUser =(CUser*)scanner.dwValue; #endif // __WORLDSERVER return TRUE; }
3 N2 x M% I2 }4 l+ C并提出了下列:% K3 _5 z) m. F2 p
代码: { #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; }
7 G+ k5 S: c1 c7 w1 S% B. h4 n现在,通用汽车应该喊这样的:( K9 a; G% I+ _
代码: [GM Information][NAME] TEXT
4 G& q) q% s! y现在,如果你仍然希望出现这种情况,例如有管理员将需要插入她的下列内容:8 w C" A7 M5 o' g7 O
代码: { #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; } . y& I; c* A. m f" ]
如果你想不仅为管理这一点,你必须始终+ K- W) t: Z; L% p
代码: else if(pUser->m_dwAuthorization == AUTHORIZATION) strcat( szName, "Admin][" );
# g, q8 v% N5 |! J9 ~' K补充。
* I% z" ~" }. a t, `4 O' S: y s+ [7 z9 J1 k k2 q) c
2 p: L7 h U0 ~0 z" s
下面是与使用/ SYS解决不同的授权清单:. p" Z4 a b8 e/ i2 T
代码: AUTH_GAMEMASTER1 //Gamemaster lvl 1 AUTH_GAMEMASTER2 //Gamemaster lvl 2 AUTH_GAMEMASTER3 //Gamemaster lvl 3 AUTH_ADMINISTRATOR //Administrator 4 e8 ]2 w) G9 F4 v1 G6 `! C$ b
希望你喜欢指导,批评是欢迎的。
% B& f+ w$ a* t, W7 ^
8 |6 K6 e! _- E+ W2 ]7 U制作所Pumbaaa - @: j* j0 n2 e+ E. C
|