飞飞世界论坛

标题: 名称前的怒吼 [打印本页]

作者: admin    时间: 2016-1-10 03:30
标题: 名称前的怒吼
嘿COM,
7 e: u: j5 b# G/ w8 ANEN有点无聊和我开始思考,我写的关于如何得到从GM -喊名字一点时间NEN啧。
7 }  b4 e& p/ \后,整个看起来像这样:& W1 R+ @! \/ n
1 R" N, r$ I  g6 @  c& K( [

7 A1 R8 v3 C+ Q8 d# P1 T) v可我第一次补习,所以如果有批评,请说,从而提高自我。
. I( x3 t. J, ^; P3 i我不知道我的代码是最优的,肯定有一个更好的解决办法,我还是C ++初学者。
! [1 a3 ~) A1 x( Q( L( ?6 e4 ~" C2 T9 e* O& R+ K* M2 D
所以,当你第一次打开了FuncTextCmd.cpp和搜索, J5 q( f8 D5 o2 _7 j  x' J
8 x/ ?% n2 m% o3 z- N+ M
代码:
BOOL TextCmd_System( CScanner& scanner )
  T+ e  y. g, ^: e; L# Q: e9 H
在那里,您会发现:
5 z' ~$ N- y( h) G7 U) g代码:
{
#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;
}

, R5 L2 a' v/ G, A
现在我们引入一个新的变量,我只需调用szName的9 [. _* }1 _% x- ~* F
那么整个事情看起来像这样:4 H: `( z# E  y7 o
代码:
{
#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;
}
1 g4 V3 m6 h% q, @/ F* Q! S
变量我们也等于“[”拯救我们以后的工作XD& m, [0 K. m2 G" e* ^
8 O6 e- e' H; p( X
然后,我们明确了scanner.GetLastFull测试()源;在g_DPCoreClient.SendSystem(szString)。7 Z! s& X7 \% V' c
5 t$ [! n- J2 M! R2 m* ]4 d
整个事情是这样的:, [: X. e+ E; D1 e0 j& q
代码:
{
#ifdef __WORLDSERVER
        CHAR szString[512] = "";
           CHAR szName[512] = "[";
        CUser* pUser   =(CUser*)scanner.dwValue;
#endif  // __WORLDSERVER
        return TRUE;
}
# G$ B) V( x1 j, K
并提出了下列:; \3 ~! U* [' i3 c( a
代码:
{
#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;
}
5 Q0 Y" t2 ?1 {# _7 N: V
现在,通用汽车应该喊这样的:
: B3 E8 t5 r2 w7 f  P+ X+ X6 I% b代码:
[GM Information][NAME] TEXT
7 N/ r) S- M2 |2 a
现在,如果你仍然希望出现这种情况,例如有管理员将需要插入她的下列内容:
, `8 R6 M* W) L' T: t; V. C/ r2 f代码:
{
#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;
}
. O9 Y, ^% Y& U& _! ?9 u/ n
如果你想不仅为管理这一点,你必须始终
* f; N! b/ x; R9 d代码:
        else if(pUser->m_dwAuthorization == AUTHORIZATION)
               strcat( szName, "Admin][" );

; T2 `* e6 m$ m7 F
补充。
. H: j, L9 W2 E( z0 ^0 f
" {, @+ _) @1 U
; B( V9 t$ @0 h% V下面是与使用/ SYS解决不同的授权清单:$ [) D5 n% Z% q) s
代码:
AUTH_GAMEMASTER1    //Gamemaster lvl 1
AUTH_GAMEMASTER2    //Gamemaster lvl 2
AUTH_GAMEMASTER3    //Gamemaster lvl 3
AUTH_ADMINISTRATOR  //Administrator

6 q& i0 w1 S+ a( A
希望你喜欢指导,批评是欢迎的。5 N2 q& L- U; _6 y
5 Q1 T2 C/ Y4 p" Y* t8 b
制作所Pumbaaa

, \0 x2 g( v( Y$ }




欢迎光临 飞飞世界论坛 (http://www.ffwold.com/) Powered by Discuz! X3.2