嘿COM,
6 o' `6 G. `, z3 \/ ?" rNEN有点无聊和我开始思考,我写的关于如何得到从GM -喊名字一点时间NEN啧。
6 D# J0 J- s$ j5 g' c7 v后,整个看起来像这样:
0 P4 T( g1 }1 p0 O/ q 1 R" E/ h' _5 e2 Z" m! B% M
# T9 }2 ?2 D5 l- X
可我第一次补习,所以如果有批评,请说,从而提高自我。
3 D# P: z! @' U+ u* v0 |0 F我不知道我的代码是最优的,肯定有一个更好的解决办法,我还是C ++初学者。
$ j) _. y7 e6 {$ S- N
+ e; R! H8 s9 O8 Y4 k所以,当你第一次打开了FuncTextCmd.cpp和搜索# @. W" N- P; B* E7 V9 U+ }
8 f& C4 w& K/ u# u
代码: BOOL TextCmd_System( CScanner& scanner )
5 c8 J) R L+ j9 w在那里,您会发现:
5 }; K1 @2 d' V; y: t! s代码: { #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; }
+ u+ `1 n. ?; Y2 H现在我们引入一个新的变量,我只需调用szName的
9 B5 m% g5 a& h2 t2 ^那么整个事情看起来像这样:! ?; }2 S9 C& H7 m9 I7 L
代码: { #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; } / g! R( D3 _) G6 R! d" t
变量我们也等于“[”拯救我们以后的工作XD
# r& i! p) @. M1 a7 H5 c! |) I# Z+ v" V# H# M
然后,我们明确了scanner.GetLastFull测试()源;在g_DPCoreClient.SendSystem(szString)。
) Q) F& o% k$ ~1 i+ q8 V8 D
9 ]* G: p2 B. S* ~6 V整个事情是这样的:
# l" @( a& |( |6 w, F) M代码: { #ifdef __WORLDSERVER CHAR szString[512] = ""; CHAR szName[512] = "["; CUser* pUser =(CUser*)scanner.dwValue; #endif // __WORLDSERVER return TRUE; } , G+ ^7 |! u* U2 r! c5 V4 L! k
并提出了下列:
+ u6 u0 B- z' F代码: { #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; } ; j. `# [- v9 s7 G# n
现在,通用汽车应该喊这样的:/ {0 k+ V) z' m# I2 n$ K$ i
代码: [GM Information][NAME] TEXT
3 C9 c* w" M) \& G9 @% U现在,如果你仍然希望出现这种情况,例如有管理员将需要插入她的下列内容:
5 L# |4 f' f |* i代码: { #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; }
6 v, f! V5 z7 Q4 Q h3 I如果你想不仅为管理这一点,你必须始终
( b9 h3 U X& e1 \/ ]1 s代码: else if(pUser->m_dwAuthorization == AUTHORIZATION) strcat( szName, "Admin][" );
$ Y0 R" v1 u: W; a3 C0 m/ _补充。0 G# f: f- n+ H4 _7 M: S1 }
* n, S0 F: s% ]! \: ^$ }7 X) {7 k$ m' c7 E8 _& d
下面是与使用/ SYS解决不同的授权清单:
; E1 p$ V- G1 |代码: AUTH_GAMEMASTER1 //Gamemaster lvl 1 AUTH_GAMEMASTER2 //Gamemaster lvl 2 AUTH_GAMEMASTER3 //Gamemaster lvl 3 AUTH_ADMINISTRATOR //Administrator
$ }2 M w: [& w1 \希望你喜欢指导,批评是欢迎的。7 O4 F% ^; Q& A5 x) X9 D/ T
3 q! D$ P `- Z. ~4 a' \( d
制作所Pumbaaa % o. Z8 S+ q+ w' d" P9 i
|