|
嘿COM,) {, _$ R) R7 u3 R0 [$ V
NEN有点无聊和我开始思考,我写的关于如何得到从GM -喊名字一点时间NEN啧。" V4 @1 w; {: L2 o0 _1 q2 W0 [
后,整个看起来像这样:
/ z! g" h a- G1 Z2 K - B* f, |2 R d- L6 {+ Y }
* n, j$ [" o+ f1 H可我第一次补习,所以如果有批评,请说,从而提高自我。/ ^5 O. [3 S2 Y/ Q/ k5 v3 {
我不知道我的代码是最优的,肯定有一个更好的解决办法,我还是C ++初学者。
" I' J ]4 B4 K. N4 d& r" t6 L* b- U0 N4 @# M
所以,当你第一次打开了FuncTextCmd.cpp和搜索4 h, {! h" L# {3 r; }7 L* x$ M
) B, N+ `: G: E% m) D. [1 Z代码: BOOL TextCmd_System( CScanner& scanner ) 1 O- n9 L& X5 N3 a0 u# j$ E
在那里,您会发现:
* \7 x/ _" B) b代码: { #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; } $ A* D9 W7 D& T# k4 M: T/ K
现在我们引入一个新的变量,我只需调用szName的
- @+ ~3 Y S m0 y/ A0 ]. K那么整个事情看起来像这样:
F% F# \0 [! G0 f, Y代码: { #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; } & x( R' T3 l ?& g, l
变量我们也等于“[”拯救我们以后的工作XD
5 {* C3 @; q4 f7 \) ~' h* h1 k; m* I9 B, _+ a _2 m
然后,我们明确了scanner.GetLastFull测试()源;在g_DPCoreClient.SendSystem(szString)。$ [$ i9 m, P! }4 x9 }) h: X! C
s& |; ~+ ?' l6 Z5 C& t整个事情是这样的:
^7 a! G/ W @0 x5 w9 `代码: { #ifdef __WORLDSERVER CHAR szString[512] = ""; CHAR szName[512] = "["; CUser* pUser =(CUser*)scanner.dwValue; #endif // __WORLDSERVER return TRUE; }
+ ^5 J3 H# b+ e% k1 Y" `并提出了下列:
- A! b# l, B8 C" e, t代码: { #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; } : K* A" [4 ?& E; e
现在,通用汽车应该喊这样的:
8 ]3 W& }, u2 ?- N. {& ?$ F/ c6 V, [代码: [GM Information][NAME] TEXT
1 U3 _# d C/ _& P现在,如果你仍然希望出现这种情况,例如有管理员将需要插入她的下列内容:
* @5 e3 x7 t& P" [# K代码: { #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; }
. G, g2 U l, d如果你想不仅为管理这一点,你必须始终
1 g. [, z8 M+ M; o3 V代码: else if(pUser->m_dwAuthorization == AUTHORIZATION) strcat( szName, "Admin][" ); ; Y' J) @" g- O! C2 O- m1 H
补充。0 v/ s. A' Q( a& G
O) ~7 b8 ]% ~3 Q* i
7 p; G8 X3 h. P4 }
下面是与使用/ SYS解决不同的授权清单:5 G/ t E0 N: F2 z) }( G, U3 ]
代码: AUTH_GAMEMASTER1 //Gamemaster lvl 1 AUTH_GAMEMASTER2 //Gamemaster lvl 2 AUTH_GAMEMASTER3 //Gamemaster lvl 3 AUTH_ADMINISTRATOR //Administrator 5 j7 n5 g+ ^: T- m5 y
希望你喜欢指导,批评是欢迎的。
6 k$ }4 _/ [/ ]. u0 V) V
5 H/ p& H* C8 U8 n. `# ]; {制作所Pumbaaa 8 S6 e% n4 W6 b4 Y* V# b
|