|
嘿COM,
$ R: l3 _8 l; r0 D+ gNEN有点无聊和我开始思考,我写的关于如何得到从GM -喊名字一点时间NEN啧。
* z; V! Z$ D; |9 f/ Z, v! N; o) ^后,整个看起来像这样:
! x5 [6 h) ~; z8 X/ T2 E9 |5 a: v } # Q2 E$ F4 r; M8 H" A
3 j& h5 P+ C! z! Q) A' i5 t
可我第一次补习,所以如果有批评,请说,从而提高自我。
3 S8 E+ w j. E: t$ r我不知道我的代码是最优的,肯定有一个更好的解决办法,我还是C ++初学者。/ E) W: E6 H% K- b
9 T* U5 M1 O# b& W" A. G' U; l
所以,当你第一次打开了FuncTextCmd.cpp和搜索 e! ^. ?, y; d* |
' c/ U4 b, j& s& L: w
代码: BOOL TextCmd_System( CScanner& scanner )
( D2 `, f- x$ E; \- ?8 s在那里,您会发现:. ]3 I# l5 O. @4 w u
代码: { #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; }
& U k! S2 H$ [" Y8 F3 Q8 l: v G现在我们引入一个新的变量,我只需调用szName的3 d) g% m* ^! R0 e" W( `2 m
那么整个事情看起来像这样:
& O" a& h# I* A& `代码: { #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; } 3 ^ o% u# C$ o( W( M' k( l) `
变量我们也等于“[”拯救我们以后的工作XD
* Y. X% P8 M$ z
* ?" [: F" Z: t! O, H然后,我们明确了scanner.GetLastFull测试()源;在g_DPCoreClient.SendSystem(szString)。
/ P( |; u/ R! D2 s! j" W
2 }. Z' o6 ^( W整个事情是这样的:
1 ~* B- ]" d+ a4 Z2 Q# ^* b代码: { #ifdef __WORLDSERVER CHAR szString[512] = ""; CHAR szName[512] = "["; CUser* pUser =(CUser*)scanner.dwValue; #endif // __WORLDSERVER return TRUE; }
B9 w$ \. G) @并提出了下列:! T# F+ w% u0 r8 t6 `; i) H
代码: { #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 U* p7 g( M/ p/ r) s u, h$ i) \
现在,通用汽车应该喊这样的:! x. e3 t$ A$ R* j0 N$ }
代码: [GM Information][NAME] TEXT * }$ d6 L" I/ ^0 h
现在,如果你仍然希望出现这种情况,例如有管理员将需要插入她的下列内容:
% V! L& ?/ {) |8 U5 Z" }代码: { #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; } h" i+ H$ @! Y3 {! C
如果你想不仅为管理这一点,你必须始终
4 M( g# k0 ^- t& C4 u, d# d" L代码: else if(pUser->m_dwAuthorization == AUTHORIZATION) strcat( szName, "Admin][" );
9 A- A6 h0 d( q: m+ c; j补充。/ J% u% w% R2 }- z9 o
0 S1 ~) W J7 x9 `" i& \2 s6 p! X% R Z' d' P0 d
下面是与使用/ SYS解决不同的授权清单:
4 A D0 S' b! N1 F8 f/ o2 Z* Z6 O代码: AUTH_GAMEMASTER1 //Gamemaster lvl 1 AUTH_GAMEMASTER2 //Gamemaster lvl 2 AUTH_GAMEMASTER3 //Gamemaster lvl 3 AUTH_ADMINISTRATOR //Administrator # @" B) c! F- H3 F k2 l( T, V
希望你喜欢指导,批评是欢迎的。
) |. n6 t4 c+ _5 U. i) e) u9 b8 O8 _' e) c/ H9 @
制作所Pumbaaa 4 Z- u" U8 P% H P$ ]7 ~
|