|
嘿COM,
3 f. T+ Z' F9 Q. W; ~NEN有点无聊和我开始思考,我写的关于如何得到从GM -喊名字一点时间NEN啧。' }5 Y7 \# e g' b6 v8 o3 V% ~9 d
后,整个看起来像这样:
6 D4 }* R$ a2 J4 i! [# ^ ! R$ B/ ?7 o( A ^# [6 X
j6 N8 |: S3 h5 r9 {. s( y" }' O
可我第一次补习,所以如果有批评,请说,从而提高自我。4 T0 S7 }; Y9 y( z6 Z! J% l
我不知道我的代码是最优的,肯定有一个更好的解决办法,我还是C ++初学者。3 z. A9 T( u9 \
0 l5 Q1 }% U7 k所以,当你第一次打开了FuncTextCmd.cpp和搜索
8 Q" ` y3 a. f2 H
. [4 i/ D: S+ a9 L代码: BOOL TextCmd_System( CScanner& scanner )
* U# ]2 t; }& h2 ?* `- f& B在那里,您会发现:
+ q! N, E3 A& c: B2 l4 s1 W) A- ?代码: { #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; }
% T/ ~6 W; G S9 O0 }) N0 s! a现在我们引入一个新的变量,我只需调用szName的
2 w, [' P2 b; d那么整个事情看起来像这样:/ }6 b$ [( V2 ~0 P. J0 U5 C
代码: { #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; } 5 q+ h5 I5 S0 k3 D. ^6 C5 N
变量我们也等于“[”拯救我们以后的工作XD
, Z. y) ?8 u7 ]
8 `5 M& z. x8 r6 L然后,我们明确了scanner.GetLastFull测试()源;在g_DPCoreClient.SendSystem(szString)。0 o3 T' y( s. e4 f
, s& \+ C; d# j6 h, E
整个事情是这样的:
' a& ]% B/ n$ F7 C0 }# I# o9 `代码: { #ifdef __WORLDSERVER CHAR szString[512] = ""; CHAR szName[512] = "["; CUser* pUser =(CUser*)scanner.dwValue; #endif // __WORLDSERVER return TRUE; } 2 R6 \2 ~" e6 d# U" u2 J0 o
并提出了下列:4 \* {6 l7 k, p7 Y( g* Q
代码: { #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; } 2 r6 j$ O4 S; k
现在,通用汽车应该喊这样的:' e! K* s9 |9 C6 a$ r8 @1 R- m- A
代码: [GM Information][NAME] TEXT
8 W; ^! w, U. l% ^9 |* m现在,如果你仍然希望出现这种情况,例如有管理员将需要插入她的下列内容:; f5 Q7 ]0 K; b n! p( H
代码: { #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; }
; W% c3 _/ v3 U* f) t/ L, F如果你想不仅为管理这一点,你必须始终
2 T- T( o1 P8 `5 m: P1 O# J代码: else if(pUser->m_dwAuthorization == AUTHORIZATION) strcat( szName, "Admin][" );
: {) \' z9 B2 f补充。
9 k# E; ?; e: w
* R7 c* j" W8 s- b7 t
9 I5 T' g7 m9 P下面是与使用/ SYS解决不同的授权清单:
3 n' L: i" J! n+ w. g代码: AUTH_GAMEMASTER1 //Gamemaster lvl 1 AUTH_GAMEMASTER2 //Gamemaster lvl 2 AUTH_GAMEMASTER3 //Gamemaster lvl 3 AUTH_ADMINISTRATOR //Administrator
; K5 G! I4 }7 J0 S G! T" I希望你喜欢指导,批评是欢迎的。, W/ D7 m `' R$ n$ O# g
8 z Y- q/ I) y& ?4 e
制作所Pumbaaa 3 u2 l6 j9 `6 z i6 c2 e6 ~- _5 }
|