嘿COM,. {, ]2 l3 A: G- c) N- {. y1 \8 N
NEN有点无聊和我开始思考,我写的关于如何得到从GM -喊名字一点时间NEN啧。
# u+ \4 T) H5 N* h8 O后,整个看起来像这样:5 O& y* ]8 E; _# N* o7 ], S
3 h$ R4 J: k) {4 q6 V% |/ l# U4 u! c" |' Z
可我第一次补习,所以如果有批评,请说,从而提高自我。
( H$ s6 v: W( \1 B3 h& g9 m我不知道我的代码是最优的,肯定有一个更好的解决办法,我还是C ++初学者。
& `3 u3 m D0 w# L: S3 g
4 \6 ^6 S! V0 A7 F" d) \所以,当你第一次打开了FuncTextCmd.cpp和搜索& n* d, B. S: d* c) G/ d
* v, J/ x" C/ G3 S( W
代码: BOOL TextCmd_System( CScanner& scanner )
0 R' `' l- B& q0 s在那里,您会发现:
8 W& A. a$ S0 n" y7 e- W代码: { #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; } 0 x5 i! ^' b+ d5 g ~: C" x7 i; r
现在我们引入一个新的变量,我只需调用szName的
" B: z# u; Z, o0 O U& k" `/ P M那么整个事情看起来像这样:5 z8 m% a, C: [) c$ h; k
代码: { #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; } , u) Z0 O c: z2 O+ |9 {- b! v
变量我们也等于“[”拯救我们以后的工作XD9 T" }5 `; ~; x9 J* Y
( q( Q7 K$ e& @然后,我们明确了scanner.GetLastFull测试()源;在g_DPCoreClient.SendSystem(szString)。
1 _# t7 \1 F/ w/ T6 E1 o! B: k0 k7 v. j! I
整个事情是这样的:
1 a" ?; e3 {" {1 c9 b代码: { #ifdef __WORLDSERVER CHAR szString[512] = ""; CHAR szName[512] = "["; CUser* pUser =(CUser*)scanner.dwValue; #endif // __WORLDSERVER return TRUE; }
8 P# ? Y' B l并提出了下列:- E8 u, J1 p# d. a( v' w9 W, J1 L4 }
代码: { #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; } 1 ~( `1 o4 m" R9 [9 ~7 Z; `
现在,通用汽车应该喊这样的:
Y J" t/ f: Z/ u& n" m0 J代码: [GM Information][NAME] TEXT
8 h5 U: |( @ J现在,如果你仍然希望出现这种情况,例如有管理员将需要插入她的下列内容:
; C, b; P P" y: G代码: { #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; }
- N2 d0 b3 {6 c! O( E$ u+ \如果你想不仅为管理这一点,你必须始终5 @ }2 `" a8 W. w8 @
代码: else if(pUser->m_dwAuthorization == AUTHORIZATION) strcat( szName, "Admin][" );
$ ?! V! k4 _0 t7 Z# `; B2 U补充。9 G; G/ a$ T8 c& s, U- U H( J7 U
) v7 d7 A/ x# y' L* V- \
7 ~# m. @# Y' d5 P% ~下面是与使用/ SYS解决不同的授权清单:
/ G l1 y4 e! q }代码: AUTH_GAMEMASTER1 //Gamemaster lvl 1 AUTH_GAMEMASTER2 //Gamemaster lvl 2 AUTH_GAMEMASTER3 //Gamemaster lvl 3 AUTH_ADMINISTRATOR //Administrator ) [3 D1 s/ m3 Q8 v
希望你喜欢指导,批评是欢迎的。, G" H; K2 w( j$ X# E1 _
/ C# ~. z; w- s2 L
制作所Pumbaaa 4 w4 K; n; m, d3 @% v2 \* h
|