嘿COM,
- a q2 U# E- G4 GNEN有点无聊和我开始思考,我写的关于如何得到从GM -喊名字一点时间NEN啧。0 W+ X1 N& I% H0 v. E
后,整个看起来像这样:+ l @! l" D1 Z: u
4 |- G( X- @9 v% J8 ]( K) i- x7 P/ _( b8 I# c' G( R4 F
可我第一次补习,所以如果有批评,请说,从而提高自我。& U% ^7 [* ~, D# s: O. a# F, M
我不知道我的代码是最优的,肯定有一个更好的解决办法,我还是C ++初学者。" P% {" ]9 p1 Z' p; z# b
" B1 T9 K0 {7 l/ p所以,当你第一次打开了FuncTextCmd.cpp和搜索
# m( x* F! r/ O2 F! M2 c9 q2 D# O Q7 N
代码: BOOL TextCmd_System( CScanner& scanner ) ! A: E! J% B. f2 f
在那里,您会发现:5 p5 q2 F1 q/ k( B: m
代码: { #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; } 9 j1 {' `1 G2 B( ]0 j
现在我们引入一个新的变量,我只需调用szName的& P) P. |0 C. I. ^& ~
那么整个事情看起来像这样:( q7 s9 E" M- N" O
代码: { #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; }
, ?, N% P( b0 C变量我们也等于“[”拯救我们以后的工作XD
. `; K7 {: |. `: W
o+ A, n: q- b$ ?然后,我们明确了scanner.GetLastFull测试()源;在g_DPCoreClient.SendSystem(szString)。2 R C6 [# l& L- c% ]/ B, M$ G; d
& i" o9 p. _/ s
整个事情是这样的:" v6 L' D( U. q$ i9 H/ g% P
代码: { #ifdef __WORLDSERVER CHAR szString[512] = ""; CHAR szName[512] = "["; CUser* pUser =(CUser*)scanner.dwValue; #endif // __WORLDSERVER return TRUE; } 9 T' L4 [4 J" z3 }
并提出了下列:$ j% `% v! A5 k
代码: { #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; }
3 _8 b8 u- a, v) e& }% E. O现在,通用汽车应该喊这样的:
( }/ x# e' G: D8 |代码: [GM Information][NAME] TEXT + X/ z( R3 Z4 k
现在,如果你仍然希望出现这种情况,例如有管理员将需要插入她的下列内容:
' R3 m/ g& [, `3 q1 @, ~代码: { #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; } ( A* {3 h( X4 ^" {, I6 T
如果你想不仅为管理这一点,你必须始终1 y/ e0 s. f: c% `3 Q% N
代码: else if(pUser->m_dwAuthorization == AUTHORIZATION) strcat( szName, "Admin][" ); 4 t/ _, m( z, [( @5 g
补充。
1 _; G! ~6 O9 G
4 | _5 J; T& x; O D8 y; i M( M$ k) K" [) W/ o$ h
下面是与使用/ SYS解决不同的授权清单:" t5 W( t' T+ J) V
代码: AUTH_GAMEMASTER1 //Gamemaster lvl 1 AUTH_GAMEMASTER2 //Gamemaster lvl 2 AUTH_GAMEMASTER3 //Gamemaster lvl 3 AUTH_ADMINISTRATOR //Administrator * T2 }/ x' Y) W4 a* `; m
希望你喜欢指导,批评是欢迎的。
( b) t8 u- N% k8 G5 @* f0 p3 z K- ]: B8 P- W
制作所Pumbaaa
- D) n8 V' j8 p w% S- \ |