|
嘿COM,1 k4 j$ P& ?( D/ q
NEN有点无聊和我开始思考,我写的关于如何得到从GM -喊名字一点时间NEN啧。
8 p: w8 B* \- `后,整个看起来像这样:0 \' @' f' ?9 f1 k$ D# {& o
* z" _& a( H: Y9 ?7 `8 w |
2 @ n4 [$ f- x1 G4 x! n% V可我第一次补习,所以如果有批评,请说,从而提高自我。
! m, d# X9 e6 `我不知道我的代码是最优的,肯定有一个更好的解决办法,我还是C ++初学者。
8 h5 d# U% h1 p1 g
: B7 g1 ~7 f; x# M7 H @, \; E8 T所以,当你第一次打开了FuncTextCmd.cpp和搜索
9 h3 y9 \& B5 ?" l$ l
: Y9 @$ R. J4 `代码: BOOL TextCmd_System( CScanner& scanner )
# P5 R7 C4 D' w+ I7 s. _在那里,您会发现:
0 a0 Q" W3 H Y3 `' c8 C# t代码: { #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; }
4 k. _( z9 A. T3 P! U: `现在我们引入一个新的变量,我只需调用szName的4 h* Q6 P; C+ g& s3 }8 p6 F
那么整个事情看起来像这样:. y: h: F$ |6 k& F) K
代码: { #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; } : L# n) e3 `; k2 c l1 `" C
变量我们也等于“[”拯救我们以后的工作XD
$ y, f3 w4 A, f/ g. s
9 G( G- a5 q& Q然后,我们明确了scanner.GetLastFull测试()源;在g_DPCoreClient.SendSystem(szString)。0 F( F" c2 q# u
3 w6 [9 G( e% E. O+ H* q
整个事情是这样的:
0 B7 V# K3 f( Z( x代码: { #ifdef __WORLDSERVER CHAR szString[512] = ""; CHAR szName[512] = "["; CUser* pUser =(CUser*)scanner.dwValue; #endif // __WORLDSERVER return TRUE; } 6 X* ^+ c5 [4 \+ ?0 Z
并提出了下列:6 [ I, C1 `# v# J& r
代码: { #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; }
9 Y/ r, H, z! V- g( I现在,通用汽车应该喊这样的:. a" ^/ S( ^, m/ I" g6 r& K! M
代码: [GM Information][NAME] TEXT 1 Q7 b; G, f+ }! L. |
现在,如果你仍然希望出现这种情况,例如有管理员将需要插入她的下列内容:/ l4 v) W5 b7 Y' D5 t" v& R
代码: { #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; }
( L- @$ [" ^1 i如果你想不仅为管理这一点,你必须始终
3 n& L6 k7 ?. C. h0 k% c代码: else if(pUser->m_dwAuthorization == AUTHORIZATION) strcat( szName, "Admin][" ); ; i6 ^2 b" p: \% `" y
补充。! q$ |1 ^" x: e0 O3 V
6 L3 @; o! t! K
1 N; b1 O! W) u5 R2 N下面是与使用/ SYS解决不同的授权清单:
$ w4 z' T& g- d- `# E7 M代码: AUTH_GAMEMASTER1 //Gamemaster lvl 1 AUTH_GAMEMASTER2 //Gamemaster lvl 2 AUTH_GAMEMASTER3 //Gamemaster lvl 3 AUTH_ADMINISTRATOR //Administrator
) q+ l; w( k8 x1 h3 q0 t1 E8 O! [4 }希望你喜欢指导,批评是欢迎的。* O/ c2 S1 q: E9 W' \+ E9 m4 g
$ U: i" P+ |2 ^2 [( p' n
制作所Pumbaaa
9 d+ i. J5 E Z |