[Pomoc] Client chat message
Results 1 to 2 of 2
  1. #1
    Senior Member Array
    Join Date
    Mar 2010
    Location
    Serbia
    Age
    22
    Karma
    21

    Default Client chat message

    Kako da podesim da samo igraču izlazi poruka u chatu,a ne svima, bilo da je roundsleft bilo timeleft bilo thetime.
    Primer za timeleft šta da uradim?

    .sma
    PHP Code:
    #include <amxmodx>

    new g_TimeSet[32][2]
    new 
    g_LastTime
    new g_CountDown
    new g_Switch

    public plugin_init()
    {
        
    register_plugin("TimeLeft"AMXX_VERSION_STR"AMXX Dev Team")
        
    register_dictionary("timeleft.txt")
        
    register_cvar("amx_time_voice""1")
        
    register_srvcmd("amx_time_display""setDisplaying")
        
    register_cvar("amx_timeleft""00:00"FCVAR_SERVER|FCVAR_EXTDLL|FCVAR_UNLOGGED|FCVAR_SPONLY)
        
    register_clcmd("say timeleft""sayTimeLeft"0"- displays timeleft")
        
    register_clcmd("say thetime""sayTheTime"0"- displays current time")
        
        
    set_task(0.8"timeRemain"8648458""0"b")
    }

    public 
    sayTheTime(id)
    {
        if (
    get_cvar_num("amx_time_voice"))
        {
            new 
    mhours[6], mmins[6], whours[32], wmins[32], wpm[6]
            
            
    get_time("%H"mhours5)
            
    get_time("%M"mmins5)
            
            new 
    mins str_to_num(mmins)
            new 
    hrs str_to_num(mhours)
            
            if (
    mins)
                
    num_to_word(minswmins31)
            else
                
    wmins[0] = 0
            
            
    if (hrs 12)
                
    wpm "am "
            
    else
            {
                if (
    hrs 12hrs -= 12
                wpm 
    "pm "
            
    }

            if (
    hrs
                
    num_to_word(hrswhours31)
            else
                
    whours "twelve "
            
            
    client_cmd(id"spk ^"fvox/time_is_now %s_period %s%s^""whourswminswpm)
        }
        
        new 
    ctime[64]
        
        
    get_time("%m/%d/%Y - %H:%M:%S"ctime63)
        
    client_print(0print_chat"%L:   %s"LANG_PLAYER"THE_TIME"ctime)
        
        return 
    PLUGIN_CONTINUE
    }

    public 
    sayTimeLeft(id)
    {
        if (
    get_cvar_float("mp_timelimit"))
        {
            new 
    get_timeleft()
            
            if (
    get_cvar_num("amx_time_voice"))
            {
                new 
    svoice[128]
                
    setTimeVoice(svoice1270a)
                
    client_cmd(id"%s"svoice)
            }
            
    client_print(0print_chat"%L:  %d:%02d"LANG_PLAYER"TIME_LEFT", (60), (60))
        }
        else
            
    client_print(0print_chat"%L"LANG_PLAYER"NO_T_LIMIT")
        
        return 
    PLUGIN_CONTINUE
    }

    setTimeText(text[], lentmlfid)
    {
        new 
    secs tmlf 60
        
    new mins tmlf 60
        
        
    if (secs == 0)
            
    format(textlen"%d %L"minsid, (mins 1) ? "MINUTES" "MINUTE")
        else if (
    mins == 0)
            
    format(textlen"%d %L"secsid, (secs 1) ? "SECONDS" "SECOND")
        else
            
    format(textlen"%d %L %d %L"minsid, (mins 1) ? "MINUTES" "MINUTE"secsid, (secs 1) ? "SECONDS" "SECOND")
    }

    setTimeVoice(text[], lenflagstmlf)
    {
        new 
    temp[7][32]
        new 
    secs tmlf 60
        
    new mins tmlf 60
        
        
    for (new 0;7;++a)
            
    temp[a][0] = 0

        
    if (secs 0)
        {
            
    num_to_word(secstemp[4], 31)
            
            if (!(
    flags 8)) 
                
    temp[5] = "seconds "    /* there is no "second" in default hl */
        
    }
        
        if (
    mins 59)
        {
            new 
    hours mins 60
            
            num_to_word
    (hourstemp[0], 31)
            
            if (!(
    flags 8))
                
    temp[1] = "hours "
            
            
    mins mins 60
        
    }
        
        if (
    mins 0)
        {
            
    num_to_word(minstemp[2], 31)
            
            if (!(
    flags 8))
                
    temp[3] = "minutes "
        
    }
        
        if (!(
    flags 4))
            
    temp[6] = "remaining "
        
        
    return format(textlen"spk ^"vox/%s%s%s%s%s%s%s^""temp[0], temp[1], temp[2], temp[3], temp[4], temp[5], temp[6])
    }

    findDispFormat(time)
    {
        for (new 
    0g_TimeSet[i][0]; ++i)
        {
            if (
    g_TimeSet[i][1] & 16)
            {
                if (
    g_TimeSet[i][0] > time)
                {
                    if (!
    g_Switch)
                    {
                        
    g_CountDown g_Switch time
                        remove_task
    (8648458)
                        
    set_task(1.0"timeRemain"34543""0"b")
                    }
                    
                    return 
    i
                
    }
            }
            else if (
    g_TimeSet[i][0] == time)
            {
                return 
    i
            
    }
        }
        
        return -
    1
    }

    public 
    setDisplaying()
    {
        new 
    arg[32], flags[32], num[32]
        new 
    argc read_argc() - 1
        
    new 0

        
    while (argc && 32)
        {
            
    read_argv(1arg31)
            
    parse(argflags31num31)
            
            
    g_TimeSet[i][0] = str_to_num(num)
            
    g_TimeSet[i][1] = read_flags(flags)
            
            
    i++
        }
        
    g_TimeSet[i][0] = 0
        
        
    return PLUGIN_HANDLED
    }

    public 
    timeRemain(param[])
    {
        new 
    gmtm get_timeleft()
        new 
    tmlf g_Switch ? --g_CountDown gmtm
        
    new stimel[12]
        
        
    format(stimel11"%02d:%02d"gmtm 60gmtm 60)
        
    set_cvar_string("amx_timeleft"stimel)
        
        if (
    g_Switch && gmtm g_Switch)
        {
            
    remove_task(34543)
            
    g_Switch 0
            set_task
    (0.8"timeRemain"8648458""0"b")
            
            return
        }

        if (
    tmlf && g_LastTime != tmlf)
        {
            
    g_LastTime tmlf
            
    new tm_set findDispFormat(tmlf)
            
            if (
    tm_set != -1)
            {
                new 
    flags g_TimeSet[tm_set][1]
                new 
    arg[128]
                
                if (
    flags 1)
                {
                    new 
    players[32], pnum
                    
                    get_players
    (playerspnum"c")
                    
                    for (new 
    0pnumi++)
                    {
                        
    setTimeText(arg127tmlfplayers[i])
                        
                        if (
    flags 16)
                            
    set_hudmessage(255255255, -1.00.8500.01.10.10.5, -1)
                        else
                            
    set_hudmessage(255255255, -1.00.8500.03.00.00.5, -1)
                        
                        
    show_hudmessage(players[i], "%s"arg)
                    }
                }

                if (
    flags 2)
                {
                    
    setTimeVoice(arg127flagstmlf)
                    
    client_cmd(0"%s"arg)
                }
            }
        }

    Dosta spama to kada neko drugi kuca a poruka se šalje svima, što je nepotrebno, neko ko nije kucao ne želi da vidi to.
    Hvala!

  2. #2
    Senior Member Array
    Join Date
    Jun 2013
    Location
    K und K monarhija
    Karma
    20

    Default

    Code:
    client_print(0, print_chat, "%L:   %s", LANG_PLAYER, "THE_TIME", ctime)
    Prvi argument(ovde je '0') oznacava kome se salje, 0 znaci svima. Stavi 'id' umesto toga.
    double penetration sadomazo satisfaction
    kao svedski akcioni kada kazu action

Thread Information

Users Browsing this Thread

There are currently 1 users browsing this thread. (0 members and 1 guests)

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •