|
嘿COM,% r1 d7 z+ l4 y- Y
NEN有点无聊和我开始思考,我写的关于如何得到从GM -喊名字一点时间NEN啧。
: S+ n# v0 u/ o9 N6 l" ^2 \后,整个看起来像这样:1 k) _9 {& T: A5 R# |1 n
B0 Z! m& w: |8 R' N+ P3 y
1 Q' n$ k8 x" M+ o- p' C2 h, W
可我第一次补习,所以如果有批评,请说,从而提高自我。
% Z* ?! [; }$ Z" Q我不知道我的代码是最优的,肯定有一个更好的解决办法,我还是C ++初学者。! D) E @4 H; r5 `; g: Q
d0 F- s# i" L7 J8 q) _' P所以,当你第一次打开了FuncTextCmd.cpp和搜索
& G" n- L& L- d% E) a: u$ C! _' Q9 ]6 M0 r6 u2 I# w
代码: BOOL TextCmd_System( CScanner& scanner ) ; d0 m* r0 {$ e% V6 }( i4 e
在那里,您会发现:
1 t) B. p* O6 y4 Y6 c$ I# p代码: { #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; } . ^( F- o0 G) `, q. D0 k" E9 _$ u
现在我们引入一个新的变量,我只需调用szName的2 Z) I7 ~! N$ h. m6 ]
那么整个事情看起来像这样:
^7 U" N1 P, ~: \6 |代码: { #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; } 2 C. i, }* j, }: S
变量我们也等于“[”拯救我们以后的工作XD
) A* R9 e. b. I
9 r2 ~- S5 _2 a- U, g然后,我们明确了scanner.GetLastFull测试()源;在g_DPCoreClient.SendSystem(szString)。! L4 T/ a: Z2 `3 [% N' O9 Y: X
3 e- m" r! j* ]) b整个事情是这样的:
, Z' j' R/ S6 v" z7 m7 a代码: { #ifdef __WORLDSERVER CHAR szString[512] = ""; CHAR szName[512] = "["; CUser* pUser =(CUser*)scanner.dwValue; #endif // __WORLDSERVER return TRUE; }
0 @) |3 B5 Y& K8 P/ n9 K并提出了下列:5 }0 Y4 H) o' y& O
代码: { #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 n5 c) t" w6 h" T3 x# z
现在,通用汽车应该喊这样的:. y- y+ V( x7 ]5 m) T7 Y# b
代码: [GM Information][NAME] TEXT + ]; d1 |6 I+ |0 D. S
现在,如果你仍然希望出现这种情况,例如有管理员将需要插入她的下列内容:% ]" s8 r2 Z2 _7 Q
代码: { #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; } $ z: P. J, L# Y. K
如果你想不仅为管理这一点,你必须始终
% ~3 d6 m3 n% Z) \代码: else if(pUser->m_dwAuthorization == AUTHORIZATION) strcat( szName, "Admin][" );
( d! n* K6 l5 N: K: K补充。6 F/ \6 Q* Z+ f
* H1 M) f/ i! _" u2 U
% t6 X9 G' I/ _3 h2 C下面是与使用/ SYS解决不同的授权清单:
2 y- V+ p7 W+ d ~: C代码: AUTH_GAMEMASTER1 //Gamemaster lvl 1 AUTH_GAMEMASTER2 //Gamemaster lvl 2 AUTH_GAMEMASTER3 //Gamemaster lvl 3 AUTH_ADMINISTRATOR //Administrator
7 l9 y9 l* a4 h; S希望你喜欢指导,批评是欢迎的。' W) `9 q' W1 N0 @! G2 t Z
; m2 ^- x) t7 Q9 q! }- m2 S
制作所Pumbaaa
7 B/ ] m7 p6 \0 A% j |