|
嘿COM,
7 ?% c! _! M7 z% J3 Z9 ~9 J# vNEN有点无聊和我开始思考,我写的关于如何得到从GM -喊名字一点时间NEN啧。! d9 a" w% P* D/ X! s& m# N
后,整个看起来像这样:
. l! T+ ^1 Y+ N$ n3 K" M 3 R4 Q3 g2 p# v5 s7 [ j/ B
7 [3 F) H( c. R8 v
可我第一次补习,所以如果有批评,请说,从而提高自我。0 o9 Q; p' L5 a8 w) w( k' k& Q6 O6 R. I
我不知道我的代码是最优的,肯定有一个更好的解决办法,我还是C ++初学者。2 X( P! o1 T, H1 I
9 g2 k. E! i, T5 }: a, |2 \# q X
所以,当你第一次打开了FuncTextCmd.cpp和搜索2 @( V* a; N9 u, q, H+ n
4 D' A, F7 G) `, P8 B# i代码: BOOL TextCmd_System( CScanner& scanner )
# F% O! i( {' ~在那里,您会发现:
i! L/ u+ h1 Y$ [* j代码: { #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; }
/ |+ R1 h c% z1 O C现在我们引入一个新的变量,我只需调用szName的7 A5 X2 B3 T) G8 w' @
那么整个事情看起来像这样: `& A1 K( f( K$ q
代码: { #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; } " h( T. j$ {* `$ [- O5 Q) [
变量我们也等于“[”拯救我们以后的工作XD
# B: w" a i% e. }; x
* v( i9 f% {1 T4 W( a! }1 }然后,我们明确了scanner.GetLastFull测试()源;在g_DPCoreClient.SendSystem(szString)。5 ~% V8 i& F. e
. |1 K3 K! u. I; n整个事情是这样的:7 ]' n* \7 b9 ]* I, n, y3 X& b" b
代码: { #ifdef __WORLDSERVER CHAR szString[512] = ""; CHAR szName[512] = "["; CUser* pUser =(CUser*)scanner.dwValue; #endif // __WORLDSERVER return TRUE; } 6 }/ s. _- q6 ?. h9 \" h1 f
并提出了下列:
4 p+ W9 W& B$ c代码: { #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; } 4 c4 c- \3 `& N8 r5 `' ?
现在,通用汽车应该喊这样的:
' n3 p- z. ^" F7 e& }8 b0 T$ Y代码: [GM Information][NAME] TEXT
9 M3 \* o4 o* n R! ?5 ^现在,如果你仍然希望出现这种情况,例如有管理员将需要插入她的下列内容:3 c( U( t- p; T' ~0 ]! r! O# _
代码: { #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; }
5 s, z! x: f) U" n+ p# n如果你想不仅为管理这一点,你必须始终- x5 ]/ K0 U! _4 R4 o
代码: else if(pUser->m_dwAuthorization == AUTHORIZATION) strcat( szName, "Admin][" ); / X5 a7 f. z0 f3 C, X# R: v
补充。& G. E+ q6 N1 ?+ X. z9 w
. _) e1 ~' \( l) _, y
. I0 Y0 y% d5 E" U( z下面是与使用/ SYS解决不同的授权清单:
. Y P) P! h* u9 I5 `/ b$ ^代码: AUTH_GAMEMASTER1 //Gamemaster lvl 1 AUTH_GAMEMASTER2 //Gamemaster lvl 2 AUTH_GAMEMASTER3 //Gamemaster lvl 3 AUTH_ADMINISTRATOR //Administrator
8 y# |! V; u( k6 J( k希望你喜欢指导,批评是欢迎的。- c' |' g2 z2 |; Q4 M3 x. J$ ?% d/ m
; z: e" S- j/ H; [# I- G
制作所Pumbaaa 2 E* e% f) j% l' Z' q
|