|
嘿COM,
5 N1 F" p6 c) {/ U6 iNEN有点无聊和我开始思考,我写的关于如何得到从GM -喊名字一点时间NEN啧。# ~ m/ C2 r6 Z+ F) G
后,整个看起来像这样:3 p: Y# E) c: U! C6 w
0 K6 q! L+ Y+ X0 L% T0 {0 v1 `! z
4 U; {7 c8 G% j; w! N( c
可我第一次补习,所以如果有批评,请说,从而提高自我。
. C4 ~5 q. i g" l# v. T, d我不知道我的代码是最优的,肯定有一个更好的解决办法,我还是C ++初学者。
7 @) X5 Z1 Q$ v9 h# D+ Q
0 D1 j5 j! S& `1 N) }2 O3 I所以,当你第一次打开了FuncTextCmd.cpp和搜索/ S2 v$ C' o [* a
0 ]/ f# j4 d. c
代码: BOOL TextCmd_System( CScanner& scanner ) 9 I: H5 E; p$ a, {) I
在那里,您会发现:
8 u3 f0 t, j# N( Z6 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; }
p, D8 I% [ y. [, X现在我们引入一个新的变量,我只需调用szName的
9 F, O' Z$ c. A* x) a- q那么整个事情看起来像这样:
1 K3 x1 ]% J B; w代码: { #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; }
# O. a" |- y! l: A. n$ @9 k% f变量我们也等于“[”拯救我们以后的工作XD
7 F* L8 I" E& K$ C2 F4 P% k% v. D6 s9 G- x% Z" z2 y
然后,我们明确了scanner.GetLastFull测试()源;在g_DPCoreClient.SendSystem(szString)。2 J+ O, _ A+ r( f7 L
. H7 d# }6 P' ]& E, F整个事情是这样的:
. [5 `- A* Q( b+ f代码: { #ifdef __WORLDSERVER CHAR szString[512] = ""; CHAR szName[512] = "["; CUser* pUser =(CUser*)scanner.dwValue; #endif // __WORLDSERVER return TRUE; }
/ ~' ]9 I* x8 Z8 J7 U* V1 x& R并提出了下列:
: L* T" p+ }2 i1 J) O- W# ^代码: { #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; } 9 d6 r$ d% W* X" s7 C
现在,通用汽车应该喊这样的:- H0 x1 @7 G2 x$ {' U
代码: [GM Information][NAME] TEXT & p2 s" ~7 H+ ] R1 a
现在,如果你仍然希望出现这种情况,例如有管理员将需要插入她的下列内容:6 n' U2 M* b* Z
代码: { #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; }
) P7 X: ^; G* J( n2 N如果你想不仅为管理这一点,你必须始终
5 C4 ?- d! S& x, K- A* M代码: else if(pUser->m_dwAuthorization == AUTHORIZATION) strcat( szName, "Admin][" ); a8 u' U2 f% t$ [
补充。
( Q# Y# u, J1 G' v2 J( w& ]" |, C
! v# n+ J1 G9 m$ F+ S( c. F8 z. h+ U [8 r! {# t" {6 l
下面是与使用/ SYS解决不同的授权清单:
) C+ W2 e! e& ]6 Y; y4 o5 n7 x) j代码: AUTH_GAMEMASTER1 //Gamemaster lvl 1 AUTH_GAMEMASTER2 //Gamemaster lvl 2 AUTH_GAMEMASTER3 //Gamemaster lvl 3 AUTH_ADMINISTRATOR //Administrator * X* r }5 R0 U8 @2 \
希望你喜欢指导,批评是欢迎的。8 J' U% [) E& `6 t0 `- U+ b& {
! x/ [! y' M$ E+ y4 n+ P( O
制作所Pumbaaa
: n) \" j$ O7 g" @ |