飞飞世界论坛
标题: 名称前的怒吼 [打印本页]
作者: admin 时间: 2016-1-10 03:30
标题: 名称前的怒吼
嘿COM,
/ K6 i8 ]9 C! w' i" FNEN有点无聊和我开始思考,我写的关于如何得到从GM -喊名字一点时间NEN啧。- A/ k3 V9 @' C2 V; O, j
后,整个看起来像这样:
% j; G, [1 w/ y: W 2 j' o6 k% ^$ B" F2 \+ L, n
8 H# } n j0 |1 c
可我第一次补习,所以如果有批评,请说,从而提高自我。
+ u3 x" i& Z3 C" D' F1 t我不知道我的代码是最优的,肯定有一个更好的解决办法,我还是C ++初学者。/ X. C7 Y' @: \9 f' S) v
+ n4 J8 u. q& A3 G/ @
所以,当你第一次打开了FuncTextCmd.cpp和搜索
( h7 A$ q5 Z, n
& X3 L/ ?6 x, G6 O+ t( h* O! O代码:
BOOL TextCmd_System( CScanner& scanner )
9 }4 {" y: g4 D r* y( [
在那里,您会发现:1 ?- y7 k! F* ]: a# 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;
}
" B3 P! U C2 J$ I
现在我们引入一个新的变量,我只需调用szName的
0 d1 c# V s6 B0 k, W! I那么整个事情看起来像这样:
% y% G& f& V5 S: G* f代码:
{
#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;
}
. s) ?# I, U0 e! d& F. R
变量我们也等于“[”拯救我们以后的工作XD
5 X$ N4 Y5 T7 d* n, ~0 J( K+ }8 g' @$ J+ A, @( q" a3 x2 h' w& _; r
然后,我们明确了scanner.GetLastFull测试()源;在g_DPCoreClient.SendSystem(szString)。
8 e. O! R4 J) d! K. A1 ]8 p
8 _/ ^1 _7 K( z& v整个事情是这样的:! o+ [5 L; G; u" I! Q
代码:
{
#ifdef __WORLDSERVER
CHAR szString[512] = "";
CHAR szName[512] = "[";
CUser* pUser =(CUser*)scanner.dwValue;
#endif // __WORLDSERVER
return TRUE;
}
\. J5 F1 w0 ?
并提出了下列:
]4 w2 o5 T8 k- j f, G( p- C代码:
{
#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;
}
) o' j' [) f8 `: ^
现在,通用汽车应该喊这样的:4 s5 ^+ v" q/ n
代码:
[GM Information][NAME] TEXT
5 a& a' Z" c! }& v/ z e现在,如果你仍然希望出现这种情况,例如有管理员将需要插入她的下列内容:
" k) v6 y1 f, U" |5 N, k& A代码:
{
#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;
}
, h2 C- v( b9 n) k3 o8 F
如果你想不仅为管理这一点,你必须始终
% Z" t1 s E2 ]6 O代码:
else if(pUser->m_dwAuthorization == AUTHORIZATION)
strcat( szName, "Admin][" );
2 L; U; g# V; ]- e2 f" X- `1 a# R补充。7 n0 Z9 v [+ c2 a% O; H
3 M! B, `0 D9 \1 g. ]. g2 g0 S- Z
) t E$ o! ^( i0 x* d+ V0 x下面是与使用/ SYS解决不同的授权清单:
A: `3 p: d6 e: N4 }代码:
AUTH_GAMEMASTER1 //Gamemaster lvl 1
AUTH_GAMEMASTER2 //Gamemaster lvl 2
AUTH_GAMEMASTER3 //Gamemaster lvl 3
AUTH_ADMINISTRATOR //Administrator
: {3 D+ n/ b7 {0 d ]7 [1 J希望你喜欢指导,批评是欢迎的。* l8 n- e9 `( e
' T/ e, K; {4 ^1 |! Y. r$ e制作所Pumbaaa
: ~( x* I2 s. s6 `) A! k
| 欢迎光临 飞飞世界论坛 (http://www.ffwold.com/) |
Powered by Discuz! X3.2 |