Иконка ресурса

Round info 1.2

Нет прав для скачивания

ZXC

Пользователь
Регистрация
9 Июн 2020
Сообщения
21
Симпатии
-3
Пол
Мужской
ZXC добавил(а) новый ресурс:

Round info 1.0 - Простенький плагин который выводит в каждом раунде информацию.

Простенький плагин который выводит на экран HUD сообщение в каждом раунде о том, какое количество игроков есть на сервере за обеих команд, какой текущий раунд и сколько осталось до конца карты.Посмотреть вложение 12725
Узнать больше об этом ресурсе...
 
Последнее редактирование:

ZXC

Пользователь
Регистрация
9 Июн 2020
Сообщения
21
Симпатии
-3
Пол
Мужской

ZXC

Пользователь
Регистрация
9 Июн 2020
Сообщения
21
Симпатии
-3
Пол
Мужской

Noob with cheats!

Пользователь
Регистрация
23 Фев 2020
Сообщения
24
Симпатии
8
раз на то пошло, то.
RegisterHookChain(RG_CSGameRules_RestartRound, "@RG_CSGameRules_RestartRound_Pre");
думаю, лучше квары сделать для удобства.
 
  • Мне нравится
Симпатии: ZXC

Vitalik

Заблокированные
Пользователь
Регистрация
30 Окт 2022
Сообщения
51
Симпатии
1
Пол
Мужской
Вопрос, если раунд 100 и прозвучал рестарт)))) Раунд 101 будет?:Comando:
И еще вопрос, а для чего вы передаете индекс таска тут??
set_task(3.5, "show_info", taskId);
 

b0t.

Пользователь
Регистрация
3 Янв 2018
Сообщения
28
Симпатии
9
Пол
Мужской
ZXC, раз уж подключен инклюд reapi используйте весь его функционал.

Код:
#pragma semicolon 1
#include <amxmodx>
//#include <amxmisc>
#include <reapi>
#define PLUGIN_NAME     "info round"
#define PLUGIN_VERSION  "1.2"
#define PLUGIN_AUTHOR   "DEVV"
//Игрок с этим флагом будет считаться VIP
#define VIP_FLAG_ACCESS         "t"
//new g_iCounter;
new g_iBit_VipFlagAccess;
public plugin_init()
{
    register_plugin(PLUGIN_NAME, PLUGIN_VERSION, PLUGIN_AUTHOR);
    //register_event("HLTV", "Event_NewRound", "a", "1=0", "2=0");
    RegisterHookChain(RG_RoundEnd,"RoundEnd_Post", .post = true);
    g_iBit_VipFlagAccess = read_flags(VIP_FLAG_ACCESS);
}
public RoundEnd_Post() {
    set_task(3.5, "show_info");
}
/* public Event_NewRound(taskId)
{
    set_task(3.5, "show_info", taskId);
    g_iCounter++;
} */
public show_info(id)
{
    static iVipTerroristAccount,iVipCtAccount;
    iVipTerroristAccount = iVipCtAccount = 0;
    for(new i = 1; i <= MaxClients; i++)
    {
        if (!is_user_connected(i))
            continue;
        if (~get_user_flags(i) & g_iBit_VipFlagAccess)
            continue;
        switch(get_member(i,m_iTeam)) {
            case TEAM_CT:           iVipCtAccount++;
            case TEAM_TERRORIST:    iVipTerroristAccount++;
        }
    }
    //get_playersnum_ex(GetPlayers_MatchTeam, "CT");
    //get_playersnum_ex(GetPlayers_MatchTeam, "TERRORIST");
    set_hudmessage(10, 150, 185, -1.0, -0.7, 1, 6.0, 5.0);
    show_hudmessage(0,
        "%d « T %d:%d C » %d^n\
        Раунд : %d^n\
        [%d] - T | VIPS | C - [%d]",
       
        get_member_game(m_iNumTerrorist),get_member_game(m_iNumTerroristWins),get_member_game(m_iNumCTWins),get_member_game(m_iNumCT),
        get_member_game(m_iTotalRoundsPlayed)+1,
        iVipTerroristAccount,iVipCtAccount
    ); 
}

P.S.
Сайт стирает пустые строки, поэтому выглядит как какафония. В файле всё норм.
 

Вложения

  • Мне нравится
Симпатии: ZXC

ZXC

Пользователь
Регистрация
9 Июн 2020
Сообщения
21
Симпатии
-3
Пол
Мужской
b0t.,
ZXC, раз уж подключен инклюд reapi используйте весь его функционал.

Код:
#pragma semicolon 1
#include <amxmodx>
//#include <amxmisc>
#include <reapi>
#define PLUGIN_NAME     "info round"
#define PLUGIN_VERSION  "1.2"
#define PLUGIN_AUTHOR   "DEVV"
//Игрок с этим флагом будет считаться VIP
#define VIP_FLAG_ACCESS         "t"
//new g_iCounter;
new g_iBit_VipFlagAccess;
public plugin_init()
{
    register_plugin(PLUGIN_NAME, PLUGIN_VERSION, PLUGIN_AUTHOR);
    //register_event("HLTV", "Event_NewRound", "a", "1=0", "2=0");
    RegisterHookChain(RG_RoundEnd,"RoundEnd_Post", .post = true);
    g_iBit_VipFlagAccess = read_flags(VIP_FLAG_ACCESS);
}
public RoundEnd_Post() {
    set_task(3.5, "show_info");
}
/* public Event_NewRound(taskId)
{
    set_task(3.5, "show_info", taskId);
    g_iCounter++;
} */
public show_info(id)
{
    static iVipTerroristAccount,iVipCtAccount;
    iVipTerroristAccount = iVipCtAccount = 0;
    for(new i = 1; i <= MaxClients; i++)
    {
        if (!is_user_connected(i))
            continue;
        if (~get_user_flags(i) & g_iBit_VipFlagAccess)
            continue;
        switch(get_member(i,m_iTeam)) {
            case TEAM_CT:           iVipCtAccount++;
            case TEAM_TERRORIST:    iVipTerroristAccount++;
        }
    }
    //get_playersnum_ex(GetPlayers_MatchTeam, "CT");
    //get_playersnum_ex(GetPlayers_MatchTeam, "TERRORIST");
    set_hudmessage(10, 150, 185, -1.0, -0.7, 1, 6.0, 5.0);
    show_hudmessage(0,
        "%d « T %d:%d C » %d^n\
        Раунд : %d^n\
        [%d] - T | VIPS | C - [%d]",
      
        get_member_game(m_iNumTerrorist),get_member_game(m_iNumTerroristWins),get_member_game(m_iNumCTWins),get_member_game(m_iNumCT),
        get_member_game(m_iTotalRoundsPlayed)+1,
        iVipTerroristAccount,iVipCtAccount
    );
}

P.S.
Сайт стирает пустые строки, поэтому выглядит как какафония. В файле всё норм.
Спасибо за испровление. Буду знать!
 

Vitalik

Заблокированные
Пользователь
Регистрация
30 Окт 2022
Сообщения
51
Симпатии
1
Пол
Мужской
b0t.,
-static iVipTerroristAccount,iVipCtAccount; iVipTerroristAccount = iVipCtAccount = 0;
+new iVipTerroristAccount,iVipCtAccount;

Я считаю статик тут не нужен, выполнение кода не изменится, мне кажется это извращение
 

b0t.

Пользователь
Регистрация
3 Янв 2018
Сообщения
28
Симпатии
9
Пол
Мужской
b0t.,
-static iVipTerroristAccount,iVipCtAccount; iVipTerroristAccount = iVipCtAccount = 0;
+new iVipTerroristAccount,iVipCtAccount;

Я считаю статик тут не нужен, выполнение кода не изменится, мне кажется это извращение
Там вообще не должно быть регистрации переменных. Я видимо обновил код, но не обновил исходник.
Почему же извращение?Один раз за игру создадутся переменные для хранения данных, а после будут просто обнуляться.

В данном плагине не принципиально.
Хочешь каждый раз создавай переменные, записывай данные и выводи;
Хочешь создай они раз и изменяй значения;
Хочешь ни чего не создавай и просто в худ получай и выводи значения(как сделано в спойлере);


Действие отображения будет вызываться не так часто
 

Vitalik

Заблокированные
Пользователь
Регистрация
30 Окт 2022
Сообщения
51
Симпатии
1
Пол
Мужской
b0t.,new создает уже со значение 0, а static создает со старым значением, а потом ты обнуляешь. Так что извращение))))
 

b0t.

Пользователь
Регистрация
3 Янв 2018
Сообщения
28
Симпатии
9
Пол
Мужской
b0t.,new создает уже со значение 0, а static создает со старым значением, а потом ты обнуляешь. Так что извращение))))
static не создаёт переменные по нескольку раз :)
Создаёт переменную/массив если её нет. Дальше он её использует по коду, не создавая заново.
Приставка 'static' не просто так названа :)

Извращением было бы если бы он именно так и работал :)


Почитать о ней можно тут: ТЫК
 

Vitalik

Заблокированные
Пользователь
Регистрация
30 Окт 2022
Сообщения
51
Симпатии
1
Пол
Мужской
Специально для тебя искал, если ты меня не слышишь, послушай другого человек
 

Вложения

Vitalik

Заблокированные
Пользователь
Регистрация
30 Окт 2022
Сообщения
51
Симпатии
1
Пол
Мужской
Например способ использования.
Код:
stock msg_chat(const pPlayer, const sMsg[]) {
    static iMsg;

    if(!iMsg)
        iMsg = get_user_msgid("SayText");

    message_begin(MSG_ONE, iMsg, .player = pPlayer);
    write_byte(pPlayer);
    write_string(sMsg);
    message_end();
}
Получил раз неизменное значение и записал, что бы больше не трогать get_user_msgid("SayText");

Это равносильно, что.
Код:
public test() {
    bMas ^= true;
}
если можно записать так
Код:
publiс test() {
    if(!bMes)
        bMes = true;
   
    else bMes = false
}
По сути то, тоже одно и тоже выполнение!! Или я не прав????
 
Последнее редактирование:

b0t.

Пользователь
Регистрация
3 Янв 2018
Сообщения
28
Симпатии
9
Пол
Мужской
Например способ использования.
Код:
stock msg_chat(const pPlayer, const sMsg[]) {
    static iMsg;

    if(!iMsg)
        iMsg = get_user_msgid("SayText");

    message_begin(MSG_ONE, iMsg, .player = pPlayer);
    write_byte(pPlayer);
    write_string(sMsg);
    message_end();
}
Получил раз неизменное значение и записал, что бы больше не трогать get_user_msgid("SayText");

Это равносильно, что.
Код:
public test() {
    bMas ^= true;
}
если можно записать так
Код:
publiс test() {
    if(!bMes)
        bMes = true;
  
    else bMes = false
}
По сути то, тоже одно и тоже выполнение!! Или я не прав????
А причём тут использование? Я и написал, что он там не нужен...
Я поправил тебя в том, что переменные массивы созданные через ключевое слово 'static' не создаются по новой со старым значением, а создаются единожды и дальше уже изменяются.

Применение им как правило в функция, что часто вызываются.

P.S.
Вы прежде чем писать внимательно прочитайте :)
Это равносильно, что.
Код:
public test() {
    bMas ^= true;
}
если можно записать так
Код:
publiс test() {
    if(!bMes)
        bMes = true;
  
    else bMes = false
}
По сути то, тоже одно и тоже выполнение!! Или я не прав????
А вот тут нет. Не равносильно. Тут мы используем условия, чтобы установить нужное нам значение, в то время как способ bMas ^= true перебирает бит и сразу устанавливает нужное. Перебор под капотом движка всегда быстрее, хоть и на доли секунд
 

Vitalik

Заблокированные
Пользователь
Регистрация
30 Окт 2022
Сообщения
51
Симпатии
1
Пол
Мужской
Это не ты меня в этом поправил, прошу заметить. Я это и раньше знал, и так негде как ты не использую static
А причём тут использование? Я и написал, что он там не нужен...
Я поправил тебя в том, что переменные массивы созданные через ключевое слово 'static' не создаются по новой со старым значением, а создаются единожды и дальше уже изменяются.
И давай уже тему зароем, все разьяснили
 

b0t.

Пользователь
Регистрация
3 Янв 2018
Сообщения
28
Симпатии
9
Пол
Мужской
Это не ты меня в этом поправил, прошу заметить. Я это и раньше знал, и так негде как ты не использую static

И давай уже тему зароем, все разьяснили
Нет ни чего плохого в том, чтобы везде использовать 'static' вместо 'new'. Главное использовать его правильно.

P.S.
Чтобы писать про то как я его использую лучше сначала посмотреть мои ресурсы тут и на dev-cs :)
А то по вашим двум ресурсам особо то и не понятно как вы его используете(не в обиду)
 

Вложения

Vitalik

Заблокированные
Пользователь
Регистрация
30 Окт 2022
Сообщения
51
Симпатии
1
Пол
Мужской
И что же там не понятно то, или с чтением проблемы??? Не в обиду? Эти ресурсы, самое простое и для базы больше!
И вообще если сказал, то ткни носом, что не так, попробую обьяснить. если смогу!)))
 

b0t.

Пользователь
Регистрация
3 Янв 2018
Сообщения
28
Симпатии
9
Пол
Мужской
И что же там не понятно то, или с чтением проблемы??? Не в обиду? Эти ресурсы, самое простое и для базы больше!
И вообще если сказал, то ткни носом, что не так, попробую обьяснить. если смогу!)))
Ну я же даже обвёл на скрине... По твоим словам со скрина говорится, что переменные типа 'static' постоянно создаются со старыми значениями. Я лишь поправил в том, что они создаются один раз и после изменяются. А ты начинаешь спорить и приводить в аргумент слова другого человека, а не форму с кодом или объяснением...
 
Сверху Снизу