LittleKu 发表于 2011-2-22 09:25:56

4# 我是新手

我是新手 发表于 2011-2-22 19:20:20

#include

public new_round()
{
        new Message[ 128 ]
        for( new i = 1; i
kk阿朗 发表于 2011-2-22 09:22 http://www.dt-club.net/forum/images/common/back.gif
请问您这个和龟仙人那个有什么区别吗?不会仅仅是多了个玩家进入时的检测吧?

LittleKu 发表于 2011-2-22 21:23:58

public new_round()
{
        new Message[ 128 ]
        new iPlayers[ 32 ], iNum, iPlayer
        get_players( iPlayers, iNum )
       
        //for( new i = 1; i <= get_maxplayers(); i++ )
        for ( new i = 0; i < iNum; i++ )
        {
                //if ( is_user_connected( i ) && ( get_user_flags(i) & ADMIN_LEVEL_G ) )
                iPlayer = iPlayers[ i ]
                if ( get_user_flags( iPlayer ) & ADMIN_LEVEL_G )
                {
                        format( Message, 127, "^x04【提示】^x03你已具有^x01【某某权限】。" )
                        client_color( i, Message )
                        client_color( iPlayer, Message )
                }
        }
}

public client_color(colorid, msg[])
{
        static iSayText;
       
        if ( iSayText || ( iSayTest == get_user_msgid( "SayText" ) ) )
        {
                message_begin( MSG_BROADCAST, iSayText )
        {
                write_byte( colorid )
                write_string( msg )
        }
        message_end()
}要不就用get_players

我是新手 发表于 2011-2-22 21:57:08

public new_round()
{
        new Message[ 128 ]
        new iPlayers[ 32 ], iNum, iPlayer
        get_players( iPlayers, iNum )
       
        //for( new i = 1; i
kk阿朗 发表于 2011-2-22 21:23 http://www.dt-club.net/forum/images/common/back.gif
额,你这2个和龟仙人那个功效是一样的。谢谢你!

LittleKu 发表于 2011-2-23 12:19:25

效果是一样的,就如你之前说的,为什么我会在前者加个判断玩家是否进入服务器!
要理解为什么!

我是新手 发表于 2011-3-3 21:35:44

本帖最后由 我是新手 于 2011-3-3 22:54 编辑

哈哈,明白了....
但如果我想让这个提示连续显示5局,以后就在不显示了应该怎么加个局数的判断呢?
另外说下,你这一句有问题,这样写iSayTest等于没定义,编译不了。
      if ( iSayText || ( iSayTest == get_user_msgid( "SayText" ) ) )

改成这样试下
       if ( iSayText== get_user_msgid( "SayText" ) )

最后还少了个}   :loveliness:

以后还请你多多指教哦!!!

LittleKu 发表于 2011-3-4 00:10:01

1.建立一个全局变量,判断如果大于5,就不显示信息,否则加1,并显示信息;
2.不好意思,是我键盘打快了,应该是:if ( iSayText || ( iSayText = get_user_msgid( "SayText" ) ) )

我是新手 发表于 2011-3-4 15:11:42

嗯,一直没去服务器看,今天看了下,你的这个没有提示。按你写的改了也没提示

LittleKu 发表于 2011-3-4 20:40:11

我不知道你的代码是怎么样的,
但是如果是跟我那样写的话,一定是会显示的!
我这里我自己写了一个,你自己可以对照看一下!#include <amxmodx>

new g_iMaxPlayers;

public Event_NewRound()
{
        static szMessage[ 128 ];
        static szName[ 32 ];
       
        for( new i = 1; i <= g_iMaxPlayers; i++ )
        {
                if ( is_user_connected( i ) && ( get_user_flags( i ) & ADMIN_LEVEL_G ) )
                {
                        get_user_name( i, szName, charsmax( szName ) );
                        client_print_color( id, id, "^x04【提示】^x03%s ^x01你已具有^x03【某某权限】。", szName );
                }
        }
}

stock client_print_color(id, color, const fmt[], any:...)
{
        static szMsg[ 192 ];
        vformat( szMsg, charsmax( szMsg ), fmt, 4 );
       
        static iSayText;
       
        if ( iSayText || ( iSayTest = get_user_msgid( "SayText" ) ) )
        {
                message_begin( id ? MSG_ONE_UNRELIABLE : MSG_BROADCAST, iSayText, _, id );
                {
                        write_byte( color );
                        write_string( szMsg );
                }
                message_end();
        }
}

public plugin_init()
{
        register_plugin( "Test Plugin", "0.1", "K.K.Lv" );
       
        register_event( "HLTV", "Event_NewRound", "a", "1=0", "2=0" );
       
        g_iMaxPlayers = get_maxplayers();
}

我是新手 发表于 2011-3-6 15:42:47

本帖最后由 我是新手 于 2011-3-6 15:46 编辑

我不知道你的代码是怎么样的,
但是如果是跟我那样写的话,一定是会显示的!
我这里我自己写了一个,你自己可以对照看一下!#include

new g_iMaxPlayers;

public Event_NewRound()
{
        static szMessage[ 128 ];
       ...
kk阿朗 发表于 2011-3-4 20:40 http://www.dt-club.net/forum/images/common/back.gif
额,是我自己傻逼了。少东西了。怪不得不显示。谢你了!
不过你上面这个编译的时候会有警告
warning 203: symbol is never used: "szMessage"
页: 1 [2]
查看完整版本: 求助format语法