|
嘿COM,
1 L. W$ i K- \ jNEN有点无聊和我开始思考,我写的关于如何得到从GM -喊名字一点时间NEN啧。$ {) u% R" D8 ~
后,整个看起来像这样:$ w" C3 B$ T2 a9 u( h! Q* p+ H
V% F) p. Z% P2 J9 b* d0 O) K. r6 f( D" w9 @. G3 Q7 i: v# H4 c4 P/ I
可我第一次补习,所以如果有批评,请说,从而提高自我。7 z' }5 L7 q$ X. |9 j
我不知道我的代码是最优的,肯定有一个更好的解决办法,我还是C ++初学者。
$ G6 U; R2 r, A. B1 }2 ]
" Q# }; }, e5 i9 w" W# C所以,当你第一次打开了FuncTextCmd.cpp和搜索0 y7 x- T0 L# v# g
$ o+ q1 ^0 u0 D9 x |0 B代码: BOOL TextCmd_System( CScanner& scanner ) 3 r# Y) S% y+ n
在那里,您会发现:( t) _5 T, \; g, S" N: 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; }
6 j- s ^# o6 Z; C现在我们引入一个新的变量,我只需调用szName的, Q: `5 m( T) Q) w, I; c& V$ l6 T0 o9 [! z
那么整个事情看起来像这样:6 H+ {% I6 N! `4 ~8 P* c9 J
代码: { #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; }
+ H9 b3 v2 h1 V2 E/ p/ D6 L变量我们也等于“[”拯救我们以后的工作XD
7 T1 b. f# W. v/ `5 U7 l0 C; l, \
然后,我们明确了scanner.GetLastFull测试()源;在g_DPCoreClient.SendSystem(szString)。) o0 a7 R: k g' r3 l6 {
, _+ J2 G+ s, b' _
整个事情是这样的:
`* b- q& E {3 u' s# |' E代码: { #ifdef __WORLDSERVER CHAR szString[512] = ""; CHAR szName[512] = "["; CUser* pUser =(CUser*)scanner.dwValue; #endif // __WORLDSERVER return TRUE; } & K P2 q) W6 D
并提出了下列:
0 f. \% B' m- ~' e代码: { #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; } / j( g" F F, Q! j+ k3 w8 V+ e3 ~" Y
现在,通用汽车应该喊这样的:, f- ^3 ^) G9 S: D) K% G7 Y
代码: [GM Information][NAME] TEXT & G5 c- q. Z6 ^" S* |
现在,如果你仍然希望出现这种情况,例如有管理员将需要插入她的下列内容:
1 Z {4 k7 z) t @代码: { #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; }
8 W0 S2 r& W) j$ [. `- ^& t5 p/ [9 |7 u( E如果你想不仅为管理这一点,你必须始终
' s3 e1 t0 Y. {2 p$ x( P; w代码: else if(pUser->m_dwAuthorization == AUTHORIZATION) strcat( szName, "Admin][" ); 7 C* K: f9 ]5 R& q
补充。
2 v! z2 v3 L* S' o* Y- z3 ?! L& @- N1 s! r6 [
( L' B: t- y& Q. P0 M% `下面是与使用/ SYS解决不同的授权清单:* h; P0 Y% _6 I/ A9 @9 i' b
代码: AUTH_GAMEMASTER1 //Gamemaster lvl 1 AUTH_GAMEMASTER2 //Gamemaster lvl 2 AUTH_GAMEMASTER3 //Gamemaster lvl 3 AUTH_ADMINISTRATOR //Administrator
" y* R8 _& r) T希望你喜欢指导,批评是欢迎的。
2 m, {5 M6 J; }" n) p* f! y2 l
* j1 ?& f" `6 D9 d* u; S制作所Pumbaaa - q: z" u( E% a( l# z4 H/ Y
|