|
嘿COM,5 W/ s/ g+ ~3 v. N
NEN有点无聊和我开始思考,我写的关于如何得到从GM -喊名字一点时间NEN啧。
- S5 m. H9 U( u$ s# g$ s; e- ?$ b后,整个看起来像这样:
. s& C# B, h* L3 _
9 c, T) m; i& U) H7 e( V8 Q3 Z; z2 m& }. e8 V: ?; h( x
可我第一次补习,所以如果有批评,请说,从而提高自我。/ n7 ~& ]2 G& A, }
我不知道我的代码是最优的,肯定有一个更好的解决办法,我还是C ++初学者。
4 L$ k# J: H: P$ n: S" N" I9 W7 U+ r: ]2 _+ b3 x+ t
所以,当你第一次打开了FuncTextCmd.cpp和搜索1 c0 Z0 n0 p5 X' f$ H8 O- x
; y$ g1 U5 ?: W. C3 [* z- [代码: BOOL TextCmd_System( CScanner& scanner ) G2 d7 _0 w* A6 a
在那里,您会发现:& O% K; m0 `5 X) s. @
代码: { #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; }
7 d7 Z: z3 q) T/ X# O: G现在我们引入一个新的变量,我只需调用szName的/ C: p) u* \; n: f. z3 h4 q8 W
那么整个事情看起来像这样:
6 K I. C, t. e! 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; } 1 W- b+ ~0 [3 @$ `# K# F1 m& J
变量我们也等于“[”拯救我们以后的工作XD
& A4 ?) \3 \1 J/ q- ?2 R- y8 G4 R/ c" O
然后,我们明确了scanner.GetLastFull测试()源;在g_DPCoreClient.SendSystem(szString)。
* R! l d/ Z1 b( P' ^" ~9 h$ N; ~. G1 T
整个事情是这样的:
" f; J6 I" c7 Q, z( O' u6 s, {代码: { #ifdef __WORLDSERVER CHAR szString[512] = ""; CHAR szName[512] = "["; CUser* pUser =(CUser*)scanner.dwValue; #endif // __WORLDSERVER return TRUE; } z" C2 h! w3 m/ _1 o
并提出了下列:
# {' o) b7 Z& M; k% u8 }) ~8 P代码: { #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; }
6 P$ y. |( ^0 S现在,通用汽车应该喊这样的:* {) T* |/ U" i6 Q+ G c
代码: [GM Information][NAME] TEXT q. N8 ]/ t; v2 Q/ a+ K
现在,如果你仍然希望出现这种情况,例如有管理员将需要插入她的下列内容:
0 j2 i- O: @- W1 D) p5 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; } * L, L0 W7 u) S% B/ i& `
如果你想不仅为管理这一点,你必须始终# K3 n4 O! p- x2 @* R3 o1 [
代码: else if(pUser->m_dwAuthorization == AUTHORIZATION) strcat( szName, "Admin][" ); ( b3 [9 s6 y0 ]1 ?
补充。5 M& ^& Y3 |( X3 Y
) i6 q0 I; G7 e2 _5 |% ]* B. T8 J7 z
下面是与使用/ SYS解决不同的授权清单:
2 _, K6 C: x# B2 X$ d7 c3 Z6 a代码: AUTH_GAMEMASTER1 //Gamemaster lvl 1 AUTH_GAMEMASTER2 //Gamemaster lvl 2 AUTH_GAMEMASTER3 //Gamemaster lvl 3 AUTH_ADMINISTRATOR //Administrator
4 x9 j( U# [1 X希望你喜欢指导,批评是欢迎的。
) ^% ? J" ^9 R q7 U
4 p9 h* a5 t I0 B( Q7 ]5 V制作所Pumbaaa 8 F; y: _% O9 p* u
|