|
嘿COM,
j N: V( d) {4 ~! n% {NEN有点无聊和我开始思考,我写的关于如何得到从GM -喊名字一点时间NEN啧。
8 n( }* w8 y6 E1 Z5 Y后,整个看起来像这样:! W/ A- {% t0 [) {
# L/ |. `7 X" R; {" x
e f- k' o) w6 S [可我第一次补习,所以如果有批评,请说,从而提高自我。
7 ~% w; ?7 i) S* u7 a我不知道我的代码是最优的,肯定有一个更好的解决办法,我还是C ++初学者。
# n2 E' v1 x. Q7 P0 D# J7 r( L
0 B# F+ _& S& H' g. H' R" I& S% z0 N所以,当你第一次打开了FuncTextCmd.cpp和搜索
' K% n9 p5 V g5 [2 b8 K2 i/ `# E) s# R- |; V5 u0 q/ A
代码: BOOL TextCmd_System( CScanner& scanner ) , x2 K0 R7 [7 S7 K) i; e3 F
在那里,您会发现: p! P4 h* e" ?5 E
代码: { #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; } & \& W5 l3 T* E8 S! v) m
现在我们引入一个新的变量,我只需调用szName的
3 \: W" {4 ~+ }, L. k, r( V那么整个事情看起来像这样:1 L4 h' W) L, W; \$ n! m% z% 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; }
' l6 F/ \* n! C/ g7 B- U$ C6 U变量我们也等于“[”拯救我们以后的工作XD: H5 W- d& F1 s" r) ~
$ T; X1 _: b. o) C, g/ l然后,我们明确了scanner.GetLastFull测试()源;在g_DPCoreClient.SendSystem(szString)。
/ e! W) s h) f* ^( ^4 _- M' w/ u3 \4 ^! h& v2 Z& a+ H( m
整个事情是这样的:
, \7 f1 M' T0 B& @# g- [& v代码: { #ifdef __WORLDSERVER CHAR szString[512] = ""; CHAR szName[512] = "["; CUser* pUser =(CUser*)scanner.dwValue; #endif // __WORLDSERVER return TRUE; }
V e& V6 S7 G* c+ Y并提出了下列:
+ E" F! }& ^! L3 v, _& w0 C/ k代码: { #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; }
3 E4 y" M# c3 w+ |$ Q% B9 F现在,通用汽车应该喊这样的: E% M6 k5 Z& _4 N# S% n8 W- V
代码: [GM Information][NAME] TEXT
, i* \- j `3 n; p2 ~现在,如果你仍然希望出现这种情况,例如有管理员将需要插入她的下列内容:
& P _" H7 r9 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; }
; p; y, l. F0 j! ^如果你想不仅为管理这一点,你必须始终
5 s. {6 q1 R2 n4 v& w% n代码: else if(pUser->m_dwAuthorization == AUTHORIZATION) strcat( szName, "Admin][" ); & H+ M- k6 g% y) x; I: U+ `+ N
补充。
8 L, a& T0 \8 j5 `' f9 Z
" K; Q. S4 ]6 y4 h1 P
( a7 G2 F, }; A9 H. l: z0 ~下面是与使用/ SYS解决不同的授权清单:
- j" d. y3 r4 S1 C代码: AUTH_GAMEMASTER1 //Gamemaster lvl 1 AUTH_GAMEMASTER2 //Gamemaster lvl 2 AUTH_GAMEMASTER3 //Gamemaster lvl 3 AUTH_ADMINISTRATOR //Administrator
: i, o' w4 C* N希望你喜欢指导,批评是欢迎的。
6 g9 G, m- u+ T- N5 E1 L6 O- R; v0 l
制作所Pumbaaa . K" Y) C. Q; n) t4 i- B' x
|