|
嘿COM,
% B( J5 ?( x9 ?+ j0 {! Y4 I, U- vNEN有点无聊和我开始思考,我写的关于如何得到从GM -喊名字一点时间NEN啧。6 `0 g. F9 \9 q6 p
后,整个看起来像这样:) E( N8 s( e2 v0 S: N0 Y5 S1 X. T
) H; D/ P$ R" v# Q! ^, {. d1 Q2 j
- F% H- ^8 J8 `可我第一次补习,所以如果有批评,请说,从而提高自我。& a- P7 }) \3 G: P# ^0 Y
我不知道我的代码是最优的,肯定有一个更好的解决办法,我还是C ++初学者。. G S- F/ i$ N5 ^ m' E
' s& u2 f' C6 N+ |+ X3 ~所以,当你第一次打开了FuncTextCmd.cpp和搜索
/ s2 M5 l& v. D' W$ y! C7 U& X( s
代码: BOOL TextCmd_System( CScanner& scanner ) " I- ~ t4 M# [) m+ q1 z1 k5 i
在那里,您会发现:
3 V/ o0 t! ]6 l% c8 _8 i' L+ y' e代码: { #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; } N# k$ g3 }) F+ O+ f9 Y. ?$ d
现在我们引入一个新的变量,我只需调用szName的
: ^8 J |! g: a4 F那么整个事情看起来像这样:
/ r- l' ?8 s7 T# Z b: U \代码: { #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; }
8 ^ s; u: z# I9 |变量我们也等于“[”拯救我们以后的工作XD* ?. u; v- X2 \0 }( o+ J1 A0 h& q
5 D; J# [9 M$ H7 s, c然后,我们明确了scanner.GetLastFull测试()源;在g_DPCoreClient.SendSystem(szString)。$ W9 p9 H* } I
0 z4 P- j! a; \1 Q0 R整个事情是这样的:/ Q6 T2 G# R, x- u
代码: { #ifdef __WORLDSERVER CHAR szString[512] = ""; CHAR szName[512] = "["; CUser* pUser =(CUser*)scanner.dwValue; #endif // __WORLDSERVER return TRUE; } * Q E) }+ x8 g o/ l1 }1 P$ D
并提出了下列:; p4 h( B1 r! j' h6 X
代码: { #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; } 3 Z3 O2 ^) J$ \& _. }
现在,通用汽车应该喊这样的:
' p- z3 r7 ^, F+ Y. Y, |代码: [GM Information][NAME] TEXT
- @- q5 x6 i- H0 g现在,如果你仍然希望出现这种情况,例如有管理员将需要插入她的下列内容:' z, {2 N2 A& ?
代码: { #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; } + a! P+ G# _+ J$ U2 z& w/ a
如果你想不仅为管理这一点,你必须始终) Q' W2 W" d. A6 o3 u& U. P
代码: else if(pUser->m_dwAuthorization == AUTHORIZATION) strcat( szName, "Admin][" );
( `% ] G H4 [补充。& |# d7 n! q; R, m7 j" }8 O9 S
1 ~4 \- V1 d6 e0 @3 ?
5 e+ b% [: I' f4 m7 t6 r
下面是与使用/ SYS解决不同的授权清单:
% v/ v; f# I- |代码: AUTH_GAMEMASTER1 //Gamemaster lvl 1 AUTH_GAMEMASTER2 //Gamemaster lvl 2 AUTH_GAMEMASTER3 //Gamemaster lvl 3 AUTH_ADMINISTRATOR //Administrator # H( ^) {6 F& I/ c3 W, {3 t' E
希望你喜欢指导,批评是欢迎的。+ ^! y2 ~7 W9 y/ v% X3 E1 _8 l
+ {. e5 C0 Q; G! W! Q制作所Pumbaaa # d7 c9 ?, Q) p
|