Правила форума Гаранты форума
Размещение рекламы AMX-X компилятор

Здравствуйте, гость Вход | Регистрация

Наши новости:

14-дек
24-апр
10-апр
11-апр

> Правила форума

Этот раздел, как вы могли заметить по названию, предназначен для решения вопросов по поводу уже существующих модов и плагинов.
Пожалуйста, если у вас проблема с написанием плагина, не путайте этот раздел с разделом по скриптингу.
Для поиска плагинов и модов существует соответствующий раздел.

Название темы должно соответствовать содержанию. Темы с названием типа "Помогите", "Вопрос", "парни подскажите..." - будут удалены.
Все темы, не относящиеся к "Вопросам по модам и плагинам", будут удалены или перемещены в соответствующий раздел.

Правила оформления темы:
1. Помимо заголовка не забудьте верно сформулировать свой вопрос.
2. Выложите исходник (в тег кода + ) или ссылку на плагин который вызывает у вас вопросы.
3. Выложите лог с ошибками (если имеется) под спойлер

round info

Статус пользователя Fake`
сообщение 6.8.2012, 1:05
Сообщение #1


Стаж: 14 лет

Сообщений: 1524
Благодарностей: 320
Полезность: 457

Как в этом плагине добавить, что бы отображалось время до смены карты и ранг игрока? (стоит statsx_shell)
Код
#include <amxmodx>

#define R random(256)
#define G random(256)
#define B random(256)
#define time_hud 10.0

new round_count, msgsaytext
new cvar_show_msg, cvar_nextmap

public plugin_init()
{
    register_plugin("Round Info", "0.2", "P.Of.Pw")
    
    register_event("TextMsg", "game_comenc", "a", "2&#Game_C")

    register_logevent("roundstart", 2, "1=Round_Start")
    
    cvar_show_msg = register_cvar("round_msg", "1") // 1- msg chat color; 2-msg hud
    cvar_nextmap = get_cvar_pointer("amx_nextmap")

    msgsaytext = get_user_msgid("SayText")
}

public game_comenc()
{
    round_count = 0
}

public roundstart()
{
    new nextmap[32]
    get_pcvar_string(cvar_nextmap, nextmap, 31)

    new current_map[32]
    get_mapname(current_map, 31)

    new playersnum = get_playersnum()
    new maxplayers = get_maxplayers()
    
    if (get_pcvar_num(cvar_show_msg) == 1)
    {
        print_color(0, "^x01[^x04INFO^x01] ^x04Раунд: ^x03%d ^x01| ^x04Игроки: ^x03%d/%d ^x01| ^x04Карта: ^x03%s",
        round_count+=1, playersnum, maxplayers, current_map, nextmap)
    }

    else if (get_pcvar_num(cvar_show_msg) == 2)
    {
        set_hudmessage(R, G, B, -1.0, 0.4, 0, 6.0, time_hud)
        show_hudmessage(0, "--[ Round: %d | Players: %d/%d^n Map: %s | Nextmap: %s ]--",
        round_count+=1, playersnum, maxplayers, current_map, nextmap)
    }
}

stock print_color(id, const message[], {Float,Sql,Result,_}:...)
{
    new Buffer[128],Buffer2[128],
    players[32], index, num, i

    formatex(Buffer2, sizeof Buffer2 - 1, "%s", message)
    vformat(Buffer, sizeof Buffer - 1, Buffer2, 3)
    get_players(players, num, "c")

    if (id)
    {
        message_begin(MSG_ONE, msgsaytext, _, id)
        write_byte(id)
        write_string(Buffer)
        message_end()
    }

    else
    {
        for (i = 0; i < num;i++)
        {
            index = players[i]
            if (!is_user_connected(index))
                continue

            message_begin(MSG_ONE,msgsaytext,_,index)
            write_byte(index)
            write_string( Buffer )
            message_end()
        }
    }
}
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   Цитировать сообщение
Статус пользователя Rejiser
сообщение 6.8.2012, 1:23
Сообщение #2


Стаж: 15 лет

Сообщений: 2261
Благодарностей: 1068
Полезность: 870

Время до смены: get_timeleft()
А насчеты статы, нужно колдовать со statsx_shell.
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Fake`
сообщение 6.8.2012, 2:10
Сообщение #3


Стаж: 14 лет

Сообщений: 1524
Благодарностей: 320
Полезность: 457

Можешь подсказать, что заменить насчет времени?
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Rejiser
сообщение 6.8.2012, 2:27
Сообщение #4


Стаж: 15 лет

Сообщений: 2261
Благодарностей: 1068
Полезность: 870

Цитата(Fake` @ 6.8.2012, 3:10) *
Можешь подсказать, что заменить насчет времени?

Как-то так:

Код
new left = get_timeleft()

print_color(0, "^x01[^x04INFO^x01] ^x04Раунд: ^x03%d ^x01| ^x04Игроки: ^x03%d/%d ^x01| ^x04Карта: ^x03%s| ^x04Осталось: ^x03%d:%02d", round_count+=1, playersnum, maxplayers, current_map, nextmap, (left / 60), (left % 60))


Отредактировал: Rejiser, - 6.8.2012, 2:28
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Fake`
сообщение 6.8.2012, 2:52
Сообщение #5


Стаж: 14 лет

Сообщений: 1524
Благодарностей: 320
Полезность: 457

Куда это вставлять?))
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Rejiser
сообщение 6.8.2012, 3:00
Сообщение #6


Стаж: 15 лет

Сообщений: 2261
Благодарностей: 1068
Полезность: 870

Цитата(Fake` @ 6.8.2012, 3:52) *
Куда это вставлять?))

=\

Код
#include <amxmodx>

#define R random(256)
#define G random(256)
#define B random(256)
#define time_hud 10.0

new round_count, msgsaytext
new cvar_show_msg, cvar_nextmap

public plugin_init()
{
    register_plugin("Round Info", "0.2", "P.Of.Pw")
    
    register_event("TextMsg", "game_comenc", "a", "2&#Game_C")

    register_logevent("roundstart", 2, "1=Round_Start")
    
    cvar_show_msg = register_cvar("round_msg", "1") // 1- msg chat color; 2-msg hud
    cvar_nextmap = get_cvar_pointer("amx_nextmap")

    msgsaytext = get_user_msgid("SayText")
}

public game_comenc()
{
    round_count = 0
}

public roundstart()
{
    new nextmap[32]
    get_pcvar_string(cvar_nextmap, nextmap, 31)

    new current_map[32]
    get_mapname(current_map, 31)

    new playersnum = get_playersnum()
    new maxplayers = get_maxplayers()
    new left = get_timeleft()
    
    if (get_pcvar_num(cvar_show_msg) == 1)
    {
        print_color(0, "^x01[^x04INFO^x01] ^x04Раунд: ^x03%d ^x01| ^x04Игроки: ^x03%d/%d ^x01| ^x04Карта: ^x03%s| ^x04Осталось: ^x03%d:%02d",
        round_count+=1, playersnum, maxplayers, current_map, nextmap, (left / 60), (left % 60))
    }

    else if (get_pcvar_num(cvar_show_msg) == 2)
    {
        set_hudmessage(R, G, B, -1.0, 0.4, 0, 6.0, time_hud)
        show_hudmessage(0, "--[ Round: %d | Players: %d/%d^n Map: %s | Nextmap: %s ]--",
        round_count+=1, playersnum, maxplayers, current_map, nextmap)
    }
}

stock print_color(id, const message[], {Float,Sql,Result,_}:...)
{
    new Buffer[128],Buffer2[128],
    players[32], index, num, i

    formatex(Buffer2, sizeof Buffer2 - 1, "%s", message)
    vformat(Buffer, sizeof Buffer - 1, Buffer2, 3)
    get_players(players, num, "c")

    if (id)
    {
        message_begin(MSG_ONE, msgsaytext, _, id)
        write_byte(id)
        write_string(Buffer)
        message_end()
    }

    else
    {
        for (i = 0; i < num;i++)
        {
            index = players[i]
            if (!is_user_connected(index))
                continue

            message_begin(MSG_ONE,msgsaytext,_,index)
            write_byte(index)
            write_string( Buffer )
            message_end()
        }
    }
}
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
Поблагодарили 1 раз
   + Цитировать сообщение
Статус пользователя Fake`
сообщение 6.8.2012, 3:04
Сообщение #7


Стаж: 14 лет

Сообщений: 1524
Благодарностей: 320
Полезность: 457

Благодарю=)

Ошибка какае-то, неправильно отображается время:


Отредактировал: Fake`, - 6.8.2012, 3:30
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Rejiser
сообщение 6.8.2012, 3:36
Сообщение #8


Стаж: 15 лет

Сообщений: 2261
Благодарностей: 1068
Полезность: 870

А сколько реально остается? Если timeleft ввести?
Попробуй пробел поставить, где минуты:
Код
^x04Осталось: ^x03 %d:%02d
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Fake`
сообщение 6.8.2012, 5:45
Сообщение #9


Стаж: 14 лет

Сообщений: 1524
Благодарностей: 320
Полезность: 457

все равно так же:
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Rejiser
сообщение 6.8.2012, 9:33
Сообщение #10


Стаж: 15 лет

Сообщений: 2261
Благодарностей: 1068
Полезность: 870

Хрен знает, в стандартном плагине timeleft так же реализовано, может колорчат глючит, попробуй выведи в обычное сообщение.
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя AndrewZ
сообщение 9.8.2012, 13:36
Сообщение #11


Иконка группы

Стаж: 18 лет
Город: Санкт-Петербург


Сообщений: 4700
Благодарностей: 2452
Полезность: 1018

Код
^x04Осталось: ^x03%d:%02d",


почему там %02d? Що это вообще?)

Отредактировал: AndrewZ, - 9.8.2012, 13:36


Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Rejiser
сообщение 11.8.2012, 2:28
Сообщение #12


Стаж: 15 лет

Сообщений: 2261
Благодарностей: 1068
Полезность: 870

Цитата(AndrewZ @ 9.8.2012, 14:36) *
Код
^x04Осталось: ^x03%d:%02d",


почему там %02d? Що это вообще?)

Время в секундах получаем же

Fake`,
Пробовал простым чатом выводить?
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
Поблагодарили 1 раз
   + Цитировать сообщение
Статус пользователя Fake`
сообщение 11.8.2012, 4:13
Сообщение #13


Стаж: 14 лет

Сообщений: 1524
Благодарностей: 320
Полезность: 457

Попробывал, так же.
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Fake`
сообщение 14.8.2012, 8:27
Сообщение #14


Стаж: 14 лет

Сообщений: 1524
Благодарностей: 320
Полезность: 457

UP
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
  Тема закрытаНачать новую тему
 
0 пользователей и 1 гостей читают эту тему: