Show grenade type

Sonic

Участник
Сообщения
29
Реакции
1
Этот плагин пишет в чат информацию о том кто и какую гранату кинул... Хороший плагин, хочу себе поставить на сервер!Но дело в том что я отключил на сервере "sv_ignoregrenaderadio
Радио-уведомление "Fire In Hole!" При броске гранаты." А при отключеном положении не работает это плагин. Включать не хочу так как это звук - "Fire In Hole!" \ просто зае*ет... Может ли кто нибудь подсказать похлжий плагин но что бы он работал с отключенным "sv_ignoregrenaderadio" или переделать это плагин?
 

Вложения

  • fireintheholegrenadetype.sp
    6.2 КБ · Просмотры: 28

EaglEs

Гуру пробития усилений
Сообщения
924
Реакции
192
В warmod есть фишка (точнее квар) wm_remove_grenade_sound, удаляет звук, но не текст про гранату.
 

AlmazON

Не путать с самим yand3xmail
Сообщения
5,099
Реакции
2,755
переделать это плагин
PHP:
#include <sdkhooks>

new const String:StandartClassname[][] =
{
    "flashbang",
    "hegrenade",
    "smokegrenade",
    "incgrenade",
    "molotov"
};

new const String:TranslateClassname[][] =
{
    "светошумовую гранату",
    "осколочную гранату",
    "дымовую шашку",
    "ложную гранату",
    "коктель Молотова"
};

public OnEntityCreated(entity, const String:classname[])
{
    if (StrContains(classname, "_projectile") != -1 && entity != -1) SDKHook(entity, SDKHook_SpawnPost, SpawnGrenades);
}

public SpawnGrenades(entity)
{
    if (entity != -1)
    {
        new client = GetEntPropEnt(entity, Prop_Send, "m_hOwnerEntity");
        if (0 < client <= MaxClients)
        {
            decl String:classname[50], i;
            GetEdictClassname(entity, classname, sizeof(classname));
            classname[strlen(classname) - 11] = 0;
            for (i = 0; i < sizeof(TranslateClassname); ++i)
            {
                if (ReplaceStringEx(classname, sizeof(classname), StandartClassname[i], TranslateClassname[i]) != -1) break;
            }
            for (i = 1; i <= MaxClients; ++i)
            {
                if (IsClientInGame(i)) PrintToChat(i, "%N кинул %s", client, classname);
            }
        }
    }
}
Вверху - имя класса гранаты, а ниже - её перевод в чате.
 
Последнее редактирование:

Sonic

Участник
Сообщения
29
Реакции
1
PHP:
#include <sdkhooks>

new const String:StandartClassname[][] =
{
    "flashbang",
    "hegrenade",
    "smokegrenade",
    "incgrenade",
    "molotov"
};

new const String:TranslateClassname[][] =
{
    "светошумовую гранату",
    "осколочную гранату",
    "дымовую шашку",
    "ложную гранату",
    "коктель Молотова"
};

public OnEntityCreated(entity, const String:classname[])
{
    if (StrContains(classname, "_projectile") != -1 && entity != -1) SDKHook(entity, SDKHook_SpawnPost, SpawnGrenades);
}

public SpawnGrenades(entity)
{
    if (entity != -1)
    {
        new client = GetEntPropEnt(entity, Prop_Send, "m_hOwnerEntity");
        if (0 < client <= MaxClients)
        {
            decl String:classname[50], i;
            GetEdictClassname(entity, classname, sizeof(classname));
            classname[strlen(classname) - 11] = 0;
            for (i = 0; i < sizeof(TranslateClassname); ++i)
            {
                if (ReplaceStringEx(classname, sizeof(classname), StandartClassname[i], TranslateClassname[i]) != -1) break;
            }
            for (i = 1; i <= MaxClients; ++i)
            {
                if (IsClientInGame(i)) PrintToChat(i, "%N кинул %s", client, classname);
            }
        }
    }
}
Вверху - имя класса гранаты, а ниже - её перевод в чате.
Спасибо огромное!Все работает!!!
--- Добавлено позже ---
@AlmazON,
PHP:
#include <sdkhooks>

new const String:StandartClassname[][] =
{
    "flashbang",
    "hegrenade",
    "smokegrenade",
    "incgrenade",
    "molotov"
};

new const String:TranslateClassname[][] =
{
    "светошумовую гранату",
    "осколочную гранату",
    "дымовую шашку",
    "ложную гранату",
    "коктель Молотова"
};

public OnEntityCreated(entity, const String:classname[])
{
    if (StrContains(classname, "_projectile") != -1 && entity != -1) SDKHook(entity, SDKHook_SpawnPost, SpawnGrenades);
}

public SpawnGrenades(entity)
{
    if (entity != -1)
    {
        new client = GetEntPropEnt(entity, Prop_Send, "m_hOwnerEntity");
        if (0 < client <= MaxClients)
        {
            decl String:classname[50], i;
            GetEdictClassname(entity, classname, sizeof(classname));
            classname[strlen(classname) - 11] = 0;
            for (i = 0; i < sizeof(TranslateClassname); ++i)
            {
                if (ReplaceStringEx(classname, sizeof(classname), StandartClassname[i], TranslateClassname[i]) != -1) break;
            }
            for (i = 1; i <= MaxClients; ++i)
            {
                if (IsClientInGame(i)) PrintToChat(i, "%N кинул %s", client, classname);
            }
        }
    }
}
Вверху - имя класса гранаты, а ниже - её перевод в чате.
Блин, что то в скрипте не так... Заливаю плагин.. все работает... но проходит 2-3 карты как пропадает звук выстрелов ... самое интересное то,что все звуки нормально слышно,даже когда сам стреляешь все норм..но чужие выстрелы пропадают... перезаливаю плагин, опять все нормально.. пару карт проходит и опять таже самая проблема... пришлось удалить пока его..
 
Последнее редактирование:

AlmazON

Не путать с самим yand3xmail
Сообщения
5,099
Реакции
2,755
что то в скрипте не так
PHP:
new const String:StandartClassname[][] =
{
    "flashbang",
    "hegrenade",
    "smokegrenade",
    "incgrenade",
    "molotov"
};

new const String:TranslateClassname[][] =
{
    "светошумовую гранату",
    "осколочную гранату",
    "дымовую шашку",
    "ложную гранату",
    "коктель Молотова"
};

public OnPluginStart() HookEvent("weapon_fire", Event_WeaponFire);

public Event_WeaponFire(Handle:event, String:name[], bool:dontBroadcast)
{
    static String:weapon[32];
    GetEventString(event, "weapon", weapon, sizeof(weapon));
    for (new index; index < sizeof(StandartClassname); ++index)
    {
        if (!strcmp(weapon[7], StandartClassname[index]))
        {
            for (new client = GetClientOfUserId(GetEventInt(event, "userid")), i = 1; i <= MaxClients; ++i)
            {
                if (IsClientInGame(i)) PrintToChat(i, "%N кинул %s", client, TranslateClassname[index]);
            }
            break;
        }
    }
}
 

Sonic

Участник
Сообщения
29
Реакции
1
PHP:
new const String:StandartClassname[][] =
{
    "flashbang",
    "hegrenade",
    "smokegrenade",
    "incgrenade",
    "molotov"
};

new const String:TranslateClassname[][] =
{
    "светошумовую гранату",
    "осколочную гранату",
    "дымовую шашку",
    "ложную гранату",
    "коктель Молотова"
};

public OnPluginStart() HookEvent("weapon_fire", Event_WeaponFire);

public Event_WeaponFire(Handle:event, String:name[], bool:dontBroadcast)
{
    static String:weapon[32];
    GetEventString(event, "weapon", weapon, sizeof(weapon));
    for (new index; index < sizeof(StandartClassname); ++index)
    {
        if (!strcmp(weapon[7], StandartClassname[index]))
        {
            for (new client = GetClientOfUserId(GetEventInt(event, "userid")), i = 1; i <= MaxClients; ++i)
            {
                if (IsClientInGame(i)) PrintToChat(i, "%N кинул %s", client, TranslateClassname[index]);
            }
            break;
        }
    }
}
Спасибо,опробую... а в чем была проблема?
 
Сверху Снизу