Neugomon Time_For_Info

Статус
В этой теме нельзя размещать новые ответы.
Сообщения
460
Реакции
68
Помог
7 раз(а)
Подскажите кто по опытней правильно ли я прикрепил hudmessage чтоб выводило сообщение через 5 мин игроку после смерти? Если чо не так поправите кому не трудно заранее спасибо.
Приложу два плагина оригинал и мою переделку может кому будет интересно.
 

Download all Attachments

Сообщения
957
Реакции
1,185
Помог
52 раз(а)
public BlockVoice(id)
не вызывается вообще
в оригинале это делается таском.

Так же я не понимаю смысла использования плагина - в оригинале отключение микро было с задержкой в 5 секунд. У вас блок сразу происходит.
Разумнее использовать добавление значения квара sv_alltalk.
 
Сообщения
460
Реакции
68
Помог
7 раз(а)
Sonyx, можете кусочек кода подбросить для задержки перед сообщением или намикнуть как ? А то у меня не выходит никак(((
 
Сообщения
957
Реакции
1,185
Помог
52 раз(а)
Best777, он у вас есть в оригинальном коде (set_task)
 
Сообщения
460
Реакции
68
Помог
7 раз(а)
Sonyx, sv_alltalk не подходит так как хочеца чтоб был имунитет для админа.
16 Фев 2018
Sonyx, вот этот
set_task(TIME_FOR_INFO, "BlockVoice", id);
сюда
g_bBlockVoice[id] = true;
set_task(TIME_FOR_INFO, "BlockVoice", id);
set_hudmessage(255, 100, 0, -1.0, 0.3, 1, 3.0, 3.0, 0.1, 0.5, -1);
show_hudmessage(id, "Живые товарищи по команде^n больше не слышат вас!");
 
Сообщения
460
Реакции
68
Помог
7 раз(а)
Sonyx, спасибо большое я не знал что такой есть.
 
Сообщения
460
Реакции
68
Помог
7 раз(а)
Sonyx, можете взглянуть опытным глазом вроде получилось но маленькую ошибку выдаёт tag mismatch
Будет ли он работать?

PHP:
#include <amxmodx>
#include <fakemeta>
#include <dhudmessage>
#include <reapi>

#define VIP_ACCESS ADMIN_BAN

#define TIME_FOR_INFO 5.0 // Время после смерти, через которое живые не услышат игрока

#if !defined MAX_PLAYERS
    #define MAX_PLAYERS 32
#endif

#define is_user_vip(%0) (get_user_flags(%0) & VIP_ACCESS)

new bool:g_bBlockVoice[MAX_PLAYERS + 1];
new g_iUserAlive[MAX_PLAYERS + 1];

public plugin_init()
{
    register_plugin("Time for info", "1.0", "neugomon");
    
    RegisterHookChain(RG_CBasePlayer_Spawn, "fwdPlayerSpawnPost", true);
    RegisterHookChain(RG_CBasePlayer_Killed, "fwdPlayerKilledPost", true);
    
    register_forward(FM_Voice_SetClientListening, "FwdSetClientListening", false);
}

public client_putinserver(id)
{
    if(is_user_vip(id))
    {
        g_iUserAlive[id] = false;
        g_bBlockVoice[id] = false;
    }
    else
    {
        g_iUserAlive[id] = false;
        g_bBlockVoice[id] = true;       
    }
}   

public fwdPlayerSpawnPost(id)
{
    if(is_user_vip(id)) return;
    
    g_iUserAlive[id] = is_user_alive(id);
    if(g_iUserAlive[id])
        g_bBlockVoice[id] = false;
}

public fwdPlayerKilledPost(const id)
{
        if(is_user_vip(id)) return;
        
        g_iUserAlive[id] = false;
        g_bBlockVoice[id] = true;
        
}

public SendClientMessage(id)
{
        g_iUserAlive[id] = 0;
        set_hudmessage(70, 150, 0, -1.0, 0.3, 1, 5.0, 5.0, 0.1, 0.5,TIME_FOR_INFO);
        show_hudmessage(id, "У вас 5 секунд. на инфу");
        set_task(TIME_FOR_INFO, "BlockVoice", id);
}

public FwdSetClientListening(iReciever, iSender)
{
    if(iSender != iReciever && g_bBlockVoice[iSender] && g_iUserAlive[iReciever])
    {   
        engfunc(EngFunc_SetClientListening, iReciever, iSender, false);
        forward_return(FMV_CELL, false);
        return FMRES_SUPERCEDE;
    }
    return FMRES_IGNORED;
}

public BlockVoice(id)
{
    if(!g_iUserAlive[id])
    {
        g_bBlockVoice[id] = true;
        set_hudmessage(255, 100, 0, -1.0, 0.3, 1, 5.0, 5.0, 0.1, 0.5, 4);
        show_hudmessage(id, "Живые товарищи по команде^n больше не слышат вас!");
    }   
}
 
Сообщения
2,143
Реакции
1,223
Помог
44 раз(а)
Это варнинг.

И еще... Чтобы что-то исправить, нужно знать, что исправить. От вас же нет никакой информации о строк(е/ах), на котор(ой/ых) есть данная ошибка. Да и вообще, для таких проблем есть отдельный раздел с помощью: https://dev-cs.ru/forums/compile-errors/
 
Сообщения
460
Реакции
68
Помог
7 раз(а)
Minni, Sonyx, извеняйте я сам решил свою проблему и всё исправил работает как часики скину мож кому нужно будет я не жадный.
Имеется иммунитет для админов и HUD сообщения о времени для инфы.
PHP:
#include <amxmodx>
#include <fakemeta>
#include <dhudmessage>
#include <reapi>

#define VIP_ACCESS ADMIN_BAN

#define TIME_FOR_INFO 5.0 // Время после смерти, через которое живые не услышат игрока

#if !defined MAX_PLAYERS
    #define MAX_PLAYERS 32
#endif

#define is_user_vip(%0) (get_user_flags(%0) & VIP_ACCESS)

new bool:g_bBlockVoice[MAX_PLAYERS + 1];
new g_iUserAlive[MAX_PLAYERS + 1];

public plugin_init()
{
    register_plugin("Time for info", "1.0", "neugomon /// eL");
    
    RegisterHookChain(RG_CBasePlayer_Spawn, "fwdPlayerSpawnPost", true);
    RegisterHookChain(RG_CBasePlayer_Killed, "fwdPlayerKilledPost", true);
    
    register_forward(FM_Voice_SetClientListening, "FwdSetClientListening", false);
}

public client_putinserver(id)
{
    if(is_user_vip(id))
    {
        g_iUserAlive[id] = false;
        g_bBlockVoice[id] = false;
    }
    else
    {
        g_iUserAlive[id] = false;
        g_bBlockVoice[id] = true;       
    }
}   

public fwdPlayerSpawnPost(id)
{
    if(is_user_vip(id)) return;
    
    g_iUserAlive[id] = is_user_alive(id);
    if(g_iUserAlive[id])
        g_bBlockVoice[id] = false;
}

public fwdPlayerKilledPost(const id)
{
        if(is_user_vip(id)) return;
        
        g_iUserAlive[id] = false;
        g_bBlockVoice[id] = true;
        
        g_iUserAlive[id] = 0;
        set_hudmessage(70, 150, 0, -1.0, 0.3, 1, 3.0, 3.0, TIME_FOR_INFO);
        show_hudmessage(id, "У вас 5 секунд на инфу!");
        set_task(TIME_FOR_INFO, "BlockVoice", id);
}

public FwdSetClientListening(iReciever, iSender)
{
    if(iSender != iReciever && g_bBlockVoice[iSender] && g_iUserAlive[iReciever])
    {   
        engfunc(EngFunc_SetClientListening, iReciever, iSender, false);
        forward_return(FMV_CELL, false);
        return FMRES_SUPERCEDE;
    }
    return FMRES_IGNORED;
}

public BlockVoice(id)
{
    if(!g_iUserAlive[id])
    {
        g_bBlockVoice[id] = true;
        set_hudmessage(255, 100, 0, -1.0, 0.25, 1, 8.0, 8.0, 0.1, 0.5, 4);
        show_hudmessage(id, "Живые товарищи по команде^n больше не слышат вас!");
    }   
}
 
Сообщения
25
Реакции
1
Обратите внимание, если вы хотите заключить сделку с этим пользователем, он заблокирован
Best777, можешь мне кинуть свой готовый плагин?
 
Сообщения
198
Реакции
273
Помог
5 раз(а)
primus, разверни спойлер Time_For_Info_HUD
 
Сообщения
25
Реакции
3
time_for_info стоит плагин но живые все равно слышат мертых ,кто че подскажет "sv_alltalk" is "1" стоит , идея в том что бы живые не слшышали мертвых но было сек 7-10 для инфы после смерти
 
Сообщения
460
Реакции
68
Помог
7 раз(а)
borzoy, добавлен hud + имунка для админа
 
Статус
В этой теме нельзя размещать новые ответы.

Пользователи, просматривающие эту тему

Сейчас на форуме нет ни одного пользователя.
Сверху Снизу