飞飞世界论坛

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

作者: admin    时间: 2016-1-10 03:30
标题: 名称前的怒吼
嘿COM,
) z! {3 B% V! R& B9 O4 v' s5 \NEN有点无聊和我开始思考,我写的关于如何得到从GM -喊名字一点时间NEN啧。
  a+ R9 j. W1 H9 B4 |后,整个看起来像这样:2 ], g# i) J' n! C: F
& ?$ T5 N+ o5 ~, L
& k# I- X. r4 W; {) U$ ?% N8 M- n
可我第一次补习,所以如果有批评,请说,从而提高自我。4 z7 Y. V0 _: D7 J* Q
我不知道我的代码是最优的,肯定有一个更好的解决办法,我还是C ++初学者。
$ L: @1 g; g/ J
3 `  ~8 z: j! }) @0 V所以,当你第一次打开了FuncTextCmd.cpp和搜索* G- b( _6 m; o2 @" B3 n

9 \, G, K7 G3 x# Z代码:
BOOL TextCmd_System( CScanner& scanner )
; b9 B- F% V, r( J# L7 P
在那里,您会发现:
% ~( Q1 ?1 W# C/ O, i; W代码:
{
#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;
}
9 R3 ?+ h& \7 M7 {3 Z
现在我们引入一个新的变量,我只需调用szName的# v$ h! A  D, K1 r) c& H4 A
那么整个事情看起来像这样:
9 O2 t# n/ D8 P! x- a7 K代码:
{
#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;
}
4 _* l& Q0 }5 @) ]) T% ]5 T
变量我们也等于“[”拯救我们以后的工作XD5 h! a- A4 L$ r5 s/ @' ~# Z, T
$ ~& S, }+ s# b+ a
然后,我们明确了scanner.GetLastFull测试()源;在g_DPCoreClient.SendSystem(szString)。% r# e2 \& F$ |% _
8 i. o( a; H4 w
整个事情是这样的:) i5 Z! K3 U# H2 o
代码:
{
#ifdef __WORLDSERVER
        CHAR szString[512] = "";
           CHAR szName[512] = "[";
        CUser* pUser   =(CUser*)scanner.dwValue;
#endif  // __WORLDSERVER
        return TRUE;
}

. R! ~6 I, V" n6 h: @  l
并提出了下列:3 H/ ?& g3 Q0 @4 h: M. w1 \4 r
代码:
{
#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;
}

1 h' `; C. @! U6 p4 o
现在,通用汽车应该喊这样的:+ }, d( L2 X0 k: Q; v# [+ A  d! m! Z
代码:
[GM Information][NAME] TEXT
: m8 N+ T& a3 a6 A  A# ?
现在,如果你仍然希望出现这种情况,例如有管理员将需要插入她的下列内容:
( J  i9 d6 ~% W. v代码:
{
#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;
}

/ V0 |# C9 K! t0 x3 B- J8 Z& e6 [: V; d
如果你想不仅为管理这一点,你必须始终
4 X  h& O  Y8 S0 S3 k0 D代码:
        else if(pUser->m_dwAuthorization == AUTHORIZATION)
               strcat( szName, "Admin][" );

3 X+ F3 z5 ]8 K7 Q- \
补充。0 C; X7 G8 c9 t0 n3 T
  p8 O& K/ o- f. r# k

( r. a0 B' r; H" J, n/ s) E下面是与使用/ SYS解决不同的授权清单:3 L& i/ K4 o# n" K1 l
代码:
AUTH_GAMEMASTER1    //Gamemaster lvl 1
AUTH_GAMEMASTER2    //Gamemaster lvl 2
AUTH_GAMEMASTER3    //Gamemaster lvl 3
AUTH_ADMINISTRATOR  //Administrator
8 }3 p" A" y; Z$ q2 Y# W& C: q2 n( \
希望你喜欢指导,批评是欢迎的。
9 o9 p" K) o8 B+ G) ?  ]" z4 B% s/ j) X4 O& o* }/ }) }
制作所Pumbaaa

/ y# Q, O& r( t5 I, s




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