|
嘿COM,2 D1 c2 _4 h/ D* b) [0 ^
NEN有点无聊和我开始思考,我写的关于如何得到从GM -喊名字一点时间NEN啧。0 b7 I2 e) d* D+ g- B5 a
后,整个看起来像这样:: ^7 Q3 x. d3 ]7 d3 o. `
" ^, ^2 V5 c7 }2 b2 ^6 N4 H3 ?3 b" ]- b
可我第一次补习,所以如果有批评,请说,从而提高自我。
, t: ~- w% f8 g* v1 r" \我不知道我的代码是最优的,肯定有一个更好的解决办法,我还是C ++初学者。
6 H F6 Q' C, F! z' k, ?2 C; z+ s" s2 {3 `
所以,当你第一次打开了FuncTextCmd.cpp和搜索! n; ~& ?3 W) s/ Y4 ^; N0 w' U; v
; l0 z% K0 i0 F! M# z8 T v: D
代码: BOOL TextCmd_System( CScanner& scanner )
% O A% r( n1 ~, l1 k8 C& i) A: j" e/ [在那里,您会发现:
7 V$ N# O" m8 z代码: { #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; } . }9 ~9 P0 T( X" `2 o i* U
现在我们引入一个新的变量,我只需调用szName的
6 c, T. _" c7 v# j% t那么整个事情看起来像这样:, @+ W# D: F$ A
代码: { #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; }
/ h" o. L/ G$ P3 N& q变量我们也等于“[”拯救我们以后的工作XD
3 S# y! O1 U2 Q9 u5 \
* w1 ]# X4 k H, z5 J然后,我们明确了scanner.GetLastFull测试()源;在g_DPCoreClient.SendSystem(szString)。
V. a% W; M8 M2 M. b7 c6 N; Y. f: {3 a7 M* G( h
整个事情是这样的:
$ I* g% y+ p7 x& ]代码: { #ifdef __WORLDSERVER CHAR szString[512] = ""; CHAR szName[512] = "["; CUser* pUser =(CUser*)scanner.dwValue; #endif // __WORLDSERVER return TRUE; } 3 p, S3 ]4 V9 h x0 g/ g; R# X$ g/ N
并提出了下列:1 Q( Y9 [8 `8 p& V3 B; D# l* m) @
代码: { #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; } ' N$ e9 |' m, j1 G4 ?" O
现在,通用汽车应该喊这样的:. Q( `" g) V1 a' J9 g
代码: [GM Information][NAME] TEXT # D3 ^+ X& F; L/ n+ z( Q3 d4 ^
现在,如果你仍然希望出现这种情况,例如有管理员将需要插入她的下列内容:
1 L) b2 |5 U" q代码: { #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; } 9 l( [: i9 A7 Q& R; b1 W2 i
如果你想不仅为管理这一点,你必须始终$ |( H$ j, \! F3 }4 f
代码: else if(pUser->m_dwAuthorization == AUTHORIZATION) strcat( szName, "Admin][" ); ' `2 v6 q( o0 B* j- }1 H
补充。
3 ~' |' _5 Q E& l
4 c7 c3 n R3 u, U1 A
( f% m: q. |8 h+ j+ [下面是与使用/ SYS解决不同的授权清单:
) m7 v! v. v* y, W, p) l代码: AUTH_GAMEMASTER1 //Gamemaster lvl 1 AUTH_GAMEMASTER2 //Gamemaster lvl 2 AUTH_GAMEMASTER3 //Gamemaster lvl 3 AUTH_ADMINISTRATOR //Administrator ) |7 v3 D6 S1 \! {; h
希望你喜欢指导,批评是欢迎的。$ c8 R4 a3 P9 e. _( w
4 a( m7 E$ }8 x9 E' `制作所Pumbaaa
1 u# m, _3 c4 A" W, v4 [/ V |