嘿COM,: s% @- |3 v; P6 c( E( P
NEN有点无聊和我开始思考,我写的关于如何得到从GM -喊名字一点时间NEN啧。# F1 g. P% H s8 V* X
后,整个看起来像这样:$ @, k% w+ H' E; }. l
1 p6 z, w! n: f- l) l2 i7 Z
- h7 }/ I0 o: ^. ?1 I可我第一次补习,所以如果有批评,请说,从而提高自我。4 M9 g p# z" q) |" r6 ~$ v8 h
我不知道我的代码是最优的,肯定有一个更好的解决办法,我还是C ++初学者。+ h+ ?; w( r2 V) j/ D
U8 `7 c: g' X0 A$ H+ }5 O: y) ?+ f8 t
所以,当你第一次打开了FuncTextCmd.cpp和搜索1 {9 m* i+ ^. [" e
0 l4 u# Y, `- \+ U3 X* M+ R. h3 A代码: BOOL TextCmd_System( CScanner& scanner )
9 a0 c/ |9 f& M8 ]" u8 b在那里,您会发现:+ l! C% Y/ s s- I
代码: { #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; }
+ k% P0 `6 ?8 s% j2 L/ y' [; h现在我们引入一个新的变量,我只需调用szName的
; u) i& p$ g2 C6 |* n: f! F那么整个事情看起来像这样:
( Q _+ _* v1 Q9 f8 \代码: { #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; }
! w. D- M6 @$ g( L/ i3 ^5 [变量我们也等于“[”拯救我们以后的工作XD% P) K+ t4 V4 p, u
1 M1 w' Z4 |. t然后,我们明确了scanner.GetLastFull测试()源;在g_DPCoreClient.SendSystem(szString)。
$ M7 y2 `) U: L
0 g" m+ S$ e+ [% R9 A! s5 g9 @% {. X( S整个事情是这样的:
# `: }' A1 d7 Q+ k+ b代码: { #ifdef __WORLDSERVER CHAR szString[512] = ""; CHAR szName[512] = "["; CUser* pUser =(CUser*)scanner.dwValue; #endif // __WORLDSERVER return TRUE; }
M, W/ }9 ?+ H% s# l并提出了下列: {- a( }6 t+ q6 o4 p& m
代码: { #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; }
7 ~5 U$ y& c7 |/ k' W& G现在,通用汽车应该喊这样的:
2 J; C0 _$ Z: p( p A% ^代码: [GM Information][NAME] TEXT
7 U: U' P) p; R9 W0 h1 y4 U现在,如果你仍然希望出现这种情况,例如有管理员将需要插入她的下列内容:
' Y" `6 A' E, h1 H: 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; }
1 z/ D" n0 i+ Y; P* e# N如果你想不仅为管理这一点,你必须始终
; `. h0 p; F' f) P. [- q; S代码: else if(pUser->m_dwAuthorization == AUTHORIZATION) strcat( szName, "Admin][" ); 2 \1 \; ]3 X7 z3 `! G4 w. w
补充。- o, @6 Z( ^. E: X- P& u' L
) {9 f# p, ]; h5 N% j" w2 e9 A9 \7 B
下面是与使用/ SYS解决不同的授权清单:
% t% J m! l# r! P1 r0 ~代码: AUTH_GAMEMASTER1 //Gamemaster lvl 1 AUTH_GAMEMASTER2 //Gamemaster lvl 2 AUTH_GAMEMASTER3 //Gamemaster lvl 3 AUTH_ADMINISTRATOR //Administrator
_& u$ V0 T8 l& o6 g# V希望你喜欢指导,批评是欢迎的。
0 f) K' B# ^, v$ d5 v) U, n+ W. O0 d: n9 z! {( q8 F
制作所Pumbaaa : |& |/ l3 ?* _& Z& N8 ]7 n
|