|
嘿COM,* ? Y1 p4 H# P7 z' y6 y
NEN有点无聊和我开始思考,我写的关于如何得到从GM -喊名字一点时间NEN啧。
1 u3 T, o- V( _后,整个看起来像这样:, v! n( D0 |" K" J
8 Z' Z4 H& e; Z4 H( g
' F! C# s# V) e
可我第一次补习,所以如果有批评,请说,从而提高自我。
H, o6 f, u6 P* i+ U我不知道我的代码是最优的,肯定有一个更好的解决办法,我还是C ++初学者。: |& H/ r) j7 M$ l
5 g. o8 ?3 X5 t4 y+ C所以,当你第一次打开了FuncTextCmd.cpp和搜索
+ N+ H' `7 m# ~) c8 f k7 g, J# Y/ w* G0 \. h8 _# O G. s
代码: BOOL TextCmd_System( CScanner& scanner )
% I1 K8 R3 X5 f5 f8 D6 S在那里,您会发现:2 ~$ x5 f8 ~0 I5 b J( {6 C9 \
代码: { #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; } " f7 k/ `8 y$ V8 O% e/ ~- X
现在我们引入一个新的变量,我只需调用szName的2 n! E/ ~: c2 }, _9 \) i/ E
那么整个事情看起来像这样:
* w: n, t9 g. O7 `, C3 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; }
+ V2 ^% W+ t7 T变量我们也等于“[”拯救我们以后的工作XD
d' j1 {4 X$ I) ]0 K; E6 n5 O/ V$ E! k/ |" j- z* g5 V) N
然后,我们明确了scanner.GetLastFull测试()源;在g_DPCoreClient.SendSystem(szString)。 N3 w/ x. q8 q: l: {3 o
" w; y. C0 K7 @! d5 h
整个事情是这样的:
3 y+ x+ }/ m) \8 g6 d" l代码: { #ifdef __WORLDSERVER CHAR szString[512] = ""; CHAR szName[512] = "["; CUser* pUser =(CUser*)scanner.dwValue; #endif // __WORLDSERVER return TRUE; }
+ L+ y \, c! c并提出了下列:1 u& D, h- k6 O3 s9 m O( z
代码: { #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# J \) c- N$ k6 n& m现在,通用汽车应该喊这样的:
: O4 t J6 f3 c9 M3 ` ^+ T代码: [GM Information][NAME] TEXT - w6 [7 @9 N2 ?1 n* q
现在,如果你仍然希望出现这种情况,例如有管理员将需要插入她的下列内容:+ y' E( O- u, P, U( @: L4 _
代码: { #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; } 0 w ]% r: h3 v
如果你想不仅为管理这一点,你必须始终
# O7 N2 H) m8 E! A4 }代码: else if(pUser->m_dwAuthorization == AUTHORIZATION) strcat( szName, "Admin][" ); $ @( j" I' d3 X) Q% e0 `& H
补充。
' `4 K2 j% S' i! e0 ^3 W% s, D( i$ ?6 v3 y
: l2 Q$ w+ |; J5 `
下面是与使用/ SYS解决不同的授权清单:* y( }: k4 \2 O2 M2 Z
代码: AUTH_GAMEMASTER1 //Gamemaster lvl 1 AUTH_GAMEMASTER2 //Gamemaster lvl 2 AUTH_GAMEMASTER3 //Gamemaster lvl 3 AUTH_ADMINISTRATOR //Administrator
( p0 z2 \4 r) T- p. p- A- q. ~希望你喜欢指导,批评是欢迎的。( G$ ~( T# d B) O6 O: I
# j7 o2 U: h/ L) y1 L
制作所Pumbaaa
7 K% n" n( h/ }) C3 }+ c. F |