|
嘿COM,* ^# K! G! t: U( Z9 j
NEN有点无聊和我开始思考,我写的关于如何得到从GM -喊名字一点时间NEN啧。2 K9 z Y# M, z
后,整个看起来像这样:
* u: o$ J9 P' q }' m$ v" v# [+ g- o5 j2 z6 S
4 d C0 T( H l0 B
可我第一次补习,所以如果有批评,请说,从而提高自我。
* ~- Z* ?' P) E$ |3 j我不知道我的代码是最优的,肯定有一个更好的解决办法,我还是C ++初学者。9 U( C+ L3 B# x1 l8 O) F2 V
. _3 c9 H1 c# A4 [1 ~! S; m
所以,当你第一次打开了FuncTextCmd.cpp和搜索
+ [' ^6 M3 o! a, ^) }9 T7 p
" d: o, O: G) Y/ Y! l' }代码: BOOL TextCmd_System( CScanner& scanner ) 2 ]% f* X0 G9 [* [
在那里,您会发现:
, N* Q$ D3 W# W- u0 J代码: { #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* w, ]$ x B+ x" `
现在我们引入一个新的变量,我只需调用szName的
: J+ V* S; |' o3 {7 t" `% K那么整个事情看起来像这样:) q* d8 ?+ \5 S$ d4 U6 L( T+ D* \
代码: { #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 I# ~7 \" ^% a# J4 f4 b+ N) C
变量我们也等于“[”拯救我们以后的工作XD1 R7 H, y2 `8 v8 A
7 w' [. W% w, ~" W0 f) q; u然后,我们明确了scanner.GetLastFull测试()源;在g_DPCoreClient.SendSystem(szString)。& A0 M Y5 n. y y. p0 L
2 O) ^* ^# E+ e- ?" W3 g整个事情是这样的:
' l( X6 `/ ~1 [, ^3 ^9 Q代码: { #ifdef __WORLDSERVER CHAR szString[512] = ""; CHAR szName[512] = "["; CUser* pUser =(CUser*)scanner.dwValue; #endif // __WORLDSERVER return TRUE; }
. `# o9 u; h8 e2 L0 ^8 ]4 _& R并提出了下列:
0 Y4 Q1 F1 K1 q' @5 S; N# v9 G代码: { #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 f4 A- r; @6 X- n$ l# o现在,通用汽车应该喊这样的:
# E: {5 S, i9 w, Z" \: R: q4 K代码: [GM Information][NAME] TEXT ; c8 j) C# p6 z+ A
现在,如果你仍然希望出现这种情况,例如有管理员将需要插入她的下列内容:
0 T2 B* K/ f" Z5 y6 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; }
- c8 n& g7 M& _ ~7 Z" t5 `如果你想不仅为管理这一点,你必须始终0 Q% ]* Y* G4 Q( t8 W
代码: else if(pUser->m_dwAuthorization == AUTHORIZATION) strcat( szName, "Admin][" ); * G; [0 `' m1 ]% v8 |$ l* @! ~/ A' B% F
补充。- k. R8 O* \* R& t
7 V3 ]0 P& ^+ L! u+ z
) p6 m# a, u/ [; h% c下面是与使用/ SYS解决不同的授权清单:! m; V7 u9 O6 w H) l2 S& [* C
代码: AUTH_GAMEMASTER1 //Gamemaster lvl 1 AUTH_GAMEMASTER2 //Gamemaster lvl 2 AUTH_GAMEMASTER3 //Gamemaster lvl 3 AUTH_ADMINISTRATOR //Administrator : S M1 c5 y: V3 ], k1 ^
希望你喜欢指导,批评是欢迎的。- R* r3 y+ O) ^; K6 \; e
0 q3 z5 n+ i, w( L+ b. v制作所Pumbaaa
0 \4 I9 [8 {# u9 z |