嘿COM,0 ^1 `& p/ R$ i# M/ [
NEN有点无聊和我开始思考,我写的关于如何得到从GM -喊名字一点时间NEN啧。$ E! e8 x0 D9 Z: e9 f9 E7 n
后,整个看起来像这样:! _ }' x9 o! Z
d5 P W G" H/ `2 m
" o+ ~' ?$ A% x; p$ N7 I8 p可我第一次补习,所以如果有批评,请说,从而提高自我。
4 I- j% }8 G8 C+ K6 k' C我不知道我的代码是最优的,肯定有一个更好的解决办法,我还是C ++初学者。
7 L9 {5 k5 W; r" a) ~ R q5 |
, D- r t; {* T' m+ A所以,当你第一次打开了FuncTextCmd.cpp和搜索
( p O F5 V# V4 b/ ^$ |5 q# d: B
* }& o4 G2 r; A+ E" {/ R) S& {代码: BOOL TextCmd_System( CScanner& scanner )
6 k/ {! o9 s6 |5 N; H2 k \0 Z在那里,您会发现: A; u: H+ c$ r% N* ?
代码: { #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; } 2 X: M2 r) [: q# S% }- S8 a4 f( {
现在我们引入一个新的变量,我只需调用szName的* x# e( X3 A' o: N# j: j5 R4 r% G/ T$ R
那么整个事情看起来像这样:
& a- @' x2 O: H% C代码: { #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; }
4 ]: X* Q7 i2 N# v l; K# N变量我们也等于“[”拯救我们以后的工作XD$ V) L5 q* I6 M0 J, l3 N) p' j
0 w$ }1 |% E: N1 _* P" o
然后,我们明确了scanner.GetLastFull测试()源;在g_DPCoreClient.SendSystem(szString)。" J8 R2 c$ q, [& a- t& @% Y* ]
9 Q$ ?* k4 t3 h9 B
整个事情是这样的:6 `( c' @, B& A6 h
代码: { #ifdef __WORLDSERVER CHAR szString[512] = ""; CHAR szName[512] = "["; CUser* pUser =(CUser*)scanner.dwValue; #endif // __WORLDSERVER return TRUE; }
- J) ~/ a7 @" D! F2 R/ ?( j! T4 m并提出了下列:
x; {- `% b5 `! u8 n7 j+ u代码: { #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; } ' B( y. p# }2 o
现在,通用汽车应该喊这样的:7 M3 P8 Z' a6 X* k) d m7 k
代码: [GM Information][NAME] TEXT , X3 b# f7 i# D7 O: h+ H3 V
现在,如果你仍然希望出现这种情况,例如有管理员将需要插入她的下列内容:
8 y6 P5 _. k4 z5 Q. J4 x代码: { #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; } 4 a# }! E* N' f
如果你想不仅为管理这一点,你必须始终
4 R; p! B8 d" ]: S代码: else if(pUser->m_dwAuthorization == AUTHORIZATION) strcat( szName, "Admin][" ); $ w3 `4 S- K# U( O( w
补充。: L" z2 c( ~# m; }
: y2 @+ j/ G- _' @$ b9 z
9 d# X: A# x% D: J下面是与使用/ SYS解决不同的授权清单:
, _8 V8 n5 U( w1 ], c% [代码: AUTH_GAMEMASTER1 //Gamemaster lvl 1 AUTH_GAMEMASTER2 //Gamemaster lvl 2 AUTH_GAMEMASTER3 //Gamemaster lvl 3 AUTH_ADMINISTRATOR //Administrator
$ e$ q& u# }! e. F4 L1 O希望你喜欢指导,批评是欢迎的。
) |! G i2 u' `+ B( p9 {# \
* a, i+ h1 y: P* {5 \: o" b制作所Pumbaaa
' A0 s5 V+ j6 y, e7 r# z |