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

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

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

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

> Правила раздела

Перед созданием новой темы убедитесь, не искал ли кто-нибудь подобный плагин до вас, для этого следует воспользоваться поиском.

Все вновь созданные темы, с названием типа "Помогите найти", "А что это за плагин", "Ищу плагин", "Нужен плагин", "Подскажите пожалуйста название плагина" - будут удалены.
При создании темы постарайтесь максимально понятно сформулировать её заголовок так, чтобы он соответствовал функциям плагина который Вы ищите. В том случае, если Вам не удается сформулировать мысль и правильно расписать всё в теме, воспользуйтесь графическим редактором, к примеру Paint, что бы примерно изобразить функции нужного Вам плагина.

Запрет покупки более 1-й гранаты "HE" за один раунд

Статус пользователя Predator.Cat
сообщение 14.8.2011, 3:23
Сообщение #1


Стаж: 15 лет

Сообщений: 251
Благодарностей: 33
Полезность: 119

Нужен плагин, запрещающий игроку покупать более одной "HE" гранаты за один раунд. А то на картах типа mansion КТ бывает сложно выйти с респа - Т их тупо закидывают гранатами в начале раунда.
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   Цитировать сообщение
Статус пользователя grey
сообщение 14.8.2011, 8:34
Сообщение #2


Стаж: 15 лет

Сообщений: 1785
Благодарностей: 1098
Полезность: 675

mp_buytime 0.15 - это не поможет?


---
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя AndrewZ
сообщение 14.8.2011, 10:09
Сообщение #3


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

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


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

Видел я плагин, ограничение гранат на раунд, если найду дам, ну ты сам тоже поищи

хм, вижу только максимум гранат, сколько может носить игрок :D

вот есть лимит смокгранат http://forums.alliedmods.net/showthread.php?p=756827 pardon.gif

лучше mp_freezetime 3-4 и бай тайм 3-4

Отредактировал: ZZZombiE, - 14.8.2011, 10:08


Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Predator.Cat
сообщение 14.8.2011, 11:53
Сообщение #4


Стаж: 15 лет

Сообщений: 251
Благодарностей: 33
Полезность: 119

Цитата(greykoo @ 14.8.2011, 10:34) *
mp_buytime 0.15 - это не поможет?

Некоторые игроки будут жаловаться, что не успевают покупать оружие.

Цитата(ZZZombiE @ 14.8.2011, 12:09) *
Видел я плагин, ограничение гранат на раунд, если найду дам, ну ты сам тоже поищи

Обыскался уже. Иначе не писал бы сюда.

Цитата
хм, вижу только максимум гранат, сколько может носить игрок :D

Да, этот плагин я тоже находил, но это не то.

Цитата
вот есть лимит смокгранат http://forums.alliedmods.net/showthread.php?p=756827 pardon.gif

Смокгранаты не интересуют. Интересуют "HE" гранаты, ибо одна команда закидывает другую в начале раунда так, что те даже выйти не успевают.

Цитата
лучше mp_freezetime 3-4 и бай тайм 3-4

Нет, это тоже не то.
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
FixX
сообщение 14.8.2011, 11:53
Сообщение #5
Стаж: 15 лет

Сообщений: 2200
Благодарностей: 526
Полезность: 0

Цитата(Predator.Cat @ 14.8.2011, 12:46) *
Некоторые игроки будут жаловаться, что не успевают покупать оружие.

15 секунд мало?:О
они его мышкой покупают?
те что покупают мышкой жаоваться не будут, не умеют в чат писать)
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя AndrewZ
сообщение 14.8.2011, 11:58
Сообщение #6


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

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


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

Цитата
Смокгранаты не интересуют. Интересуют "HE" гранаты, ибо одна команда закидывает другую в начале раунда так, что те даже выйти не успевают.

да, но его наверно переделать можно под he?


Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Predator.Cat
сообщение 14.8.2011, 13:09
Сообщение #7


Стаж: 15 лет

Сообщений: 251
Благодарностей: 33
Полезность: 119

Цитата(FixX @ 14.8.2011, 13:53) *
15 секунд мало?:О
они его мышкой покупают?
те что покупают мышкой жаоваться не будут, не умеют в чат писать)

Может быть) Но дело в том, что и за 15 секунд можно закидать, более того - чаще именно так и происходит =)

Цитата(ZZZombiE @ 14.8.2011, 13:58) *
да, но его наверно переделать можно под he?

Наверное) Но я не знаю, как =(
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Factor
сообщение 2.9.2011, 20:22
Сообщение #8


Стаж: 14 лет

Сообщений: 388
Благодарностей: 57
Полезность: 142

Плагин, что выше. На попробуй...Честно говоря самому смешно, очень уж сложные изменения я провел :D, вдруг сработает:
code
Код
#include <amxmodx>
#include <fakemeta>

#define VERSION "1.0"

#define fm_create_entity(%1)    engfunc(EngFunc_CreateNamedEntity, engfunc(EngFunc_AllocString, %1))

// Thanks VEN.
#define RADIOMSG_MAX_ARGS    5

#define TASK_DELAY_ID    1000


/*--------------------------------------------------------------------------------------------------
    Constant(s)
--------------------------------------------------------------------------------------------------*/
// Thanks VEN.
enum
{
    RADIOMSG_TEXTTYPE = 3,
    RADIOMSG_CALLERNAME,
    RADIOMSG_RADIOTYPE
};

new const W_MODEL[] = "models/w_hegrenade.mdl";
new const W_VIRUSNADE_MODEL[] = "models/w_virusnade.mdl"; // VirusNade support.
new const SMOKE_CLASS[] = "weapon_hegrenade";
new const FIRE_IN_THE_HOLE_TEXT[] = "#Fire_in_the_hole";
new const FIRE_IN_THE_HOLE_SOUND[] = "%!MRAD_FIREINHOLE";
new const SMOKE_EXPLODING_SOUND[] = "weapons/sg_explode.wav";


/*--------------------------------------------------------------------------------------------------
    CVar(s) Pointer(s)
--------------------------------------------------------------------------------------------------*/
new g_pLimit;
new g_pNoSound;
new g_pNoText;


/*--------------------------------------------------------------------------------------------------
    Integer(s)
--------------------------------------------------------------------------------------------------*/
new g_iSmokeCount;


/*--------------------------------------------------------------------------------------------------
    Boolean(s)
--------------------------------------------------------------------------------------------------*/
new bool:g_bBlockText[33];


/*--------------------------------------------------------------------------------------------------
    Plugin, CVar(s), and Message(s) registration
--------------------------------------------------------------------------------------------------*/
public plugin_init()
{
    register_plugin("Smoke Limiter", VERSION, "Dores");
    register_cvar("Smoke_Limiter_vers", VERSION, FCVAR_SPONLY | FCVAR_SERVER);
    
    g_pLimit = register_cvar("smoke_limiter_limit", "5");
    g_pNoSound = register_cvar("smoke_limiter_nosound", "1");
    g_pNoText = register_cvar("smoke_limiter_notext", "1");
    
    register_message(get_user_msgid("TextMsg"), "message_NadeThrownText");
    register_message(get_user_msgid("SendAudio"), "message_NadeThrownSound");
    
    register_forward(FM_EmitSound, "Forward_SmokeExploded");
}


/*--------------------------------------------------------------------------------------------------
    "Fire in The Hole" radio messages(text and sound)
--------------------------------------------------------------------------------------------------*/
public message_NadeThrownText(iMsgID, iMsgDest, id)
{
    /* Thanks VEN for a few things here. */    
    
    if(!g_bBlockText[id] || get_msg_args() != RADIOMSG_MAX_ARGS || get_msg_argtype(RADIOMSG_RADIOTYPE) != ARG_STRING)
    {
        return PLUGIN_CONTINUE;
    }
    
    static type[32];
    get_msg_arg_string(RADIOMSG_RADIOTYPE, type, 31);
    
    if(equali(type, FIRE_IN_THE_HOLE_TEXT))
    {
        set_msg_arg_string(RADIOMSG_TEXTTYPE, "");
        set_msg_arg_string(RADIOMSG_CALLERNAME, "");
        set_msg_arg_string(RADIOMSG_RADIOTYPE, "");
        
        g_bBlockText[id] = false;
    }
    
    return PLUGIN_CONTINUE;
}

// Sound comes before text for the "fire in the hole" message
public message_NadeThrownSound(iMsgID, iMsgDest, id)
{
    static iLimit;
    if(!(iLimit = get_pcvar_num(g_pLimit)) || get_msg_args() != 3 || get_msg_argtype(2) != ARG_STRING)
    {
        return PLUGIN_CONTINUE;
    }
    
    static szSound[25];
    get_msg_arg_string(2, szSound, 24);
    
    if(equali(szSound, FIRE_IN_THE_HOLE_SOUND) && get_user_weapon(id) == CSW_SMOKEGRENADE && ++g_iSmokeCount > iLimit)
    {
        set_task(0.1, "Task_Delay", id + TASK_DELAY_ID);
        
        if(get_pcvar_num(g_pNoText))
        {
            g_bBlockText[id] = true;
        }
        
        if(get_pcvar_num(g_pNoSound))
        {
            return PLUGIN_HANDLED;
        }
    }
    
    return PLUGIN_CONTINUE;
}


/*--------------------------------------------------------------------------------------------------
    SmokeGrenade explosion hook
--------------------------------------------------------------------------------------------------*/
public Forward_SmokeExploded(iEnt, iChan, const szSound[], Float:flVol, Float:flAttn, iFlags, iPitch)
{
    if(equali(szSound, SMOKE_EXPLODING_SOUND))
    {
        set_task(25.0, "Task_Removed");
    }
    
    return FMRES_IGNORED;
}

/*--------------------------------------------------------------------------------------------------
    Remove SmokeGrenade
--------------------------------------------------------------------------------------------------*/
public Task_Delay(id)
{
    id -= TASK_DELAY_ID;
    
    fm_give_item(id, SMOKE_CLASS);
    
    engfunc(EngFunc_RemoveEntity, fm_get_user_smoke(id));
    
    Task_Removed();
    
    client_print(id, print_center, "[AMXX] There are too many smoke grenades currently in map.");
}


/*--------------------------------------------------------------------------------------------------
    One less SmokeGrenade
--------------------------------------------------------------------------------------------------*/
public Task_Removed()
{
    g_iSmokeCount--;
}


/*--------------------------------------------------------------------------------------------------
    Global vars reset
--------------------------------------------------------------------------------------------------*/
public plugin_pause()
{
    g_iSmokeCount = 0;
}

public server_changelevel(map[])
{
    g_iSmokeCount = 0;
}

public client_disconnect(id)
{
    g_bBlockText[id] = false;
}


/*--------------------------------------------------------------------------------------------------
    Function(s)/Stock(s)
--------------------------------------------------------------------------------------------------*/

//--------------------------------------------------------------------------------------------------
// fakemeta_util.inc
//--------------------------------------------------------------------------------------------------
// Give a player an item(weapon in this case)
//--------------------------------------------------------------------------------------------------
fm_give_item(index, const item[])
{
    if(!equal(item, "weapon_", 7))
    {
        return 0;
    }

    new ent = fm_create_entity(item);
    if(!pev_valid(ent))
    {
        return 0;
    }

    new Float:origin[3];
    pev(index, pev_origin, origin);
    set_pev(ent, pev_origin, origin);
    set_pev(ent, pev_spawnflags, pev(ent, pev_spawnflags) | SF_NORESPAWN);
    dllfunc(DLLFunc_Spawn, ent);
    
    new save = pev(ent, pev_solid);
    dllfunc(DLLFunc_Touch, ent, index);
    if(pev(ent, pev_solid) != save)
    {
        return ent;
    }

    engfunc(EngFunc_RemoveEntity, ent);

    return -1;
}


//--------------------------------------------------------------------------------------------------
// Get user's thrown Smoke Grenade, if threw.
// By me.
//--------------------------------------------------------------------------------------------------
fm_get_user_smoke(index)
{
    new iEnt = -1, Float:flDmgTime;
    new szModel[32];
    new const field[] = "classname";
    new const class[] = "grenade";
    
    while((iEnt = engfunc(EngFunc_FindEntityByString, iEnt, field, class)) && pev(iEnt, pev_owner) == index)
    {
        pev(iEnt, pev_model, szModel, 31);
        
        if(!equali(szModel, W_MODEL) && !equali(szModel, W_VIRUSNADE_MODEL))
        {
            continue;
        }
        
        pev(iEnt, pev_dmgtime, flDmgTime);
        
        // Make sure the grenade hasn't exploded.
        if(flDmgTime > get_gametime())
        {
            break;
        }
    }
    
    return iEnt;
}

Еще с кварами "поиграйся".

Отредактировал: Factor, - 2.9.2011, 20:24
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Rejiser
сообщение 2.9.2011, 20:34
Сообщение #9


Стаж: 15 лет

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

хрень, можно все гораздо проще сделать
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Predator.Cat
сообщение 10.9.2011, 14:19
Сообщение #10


Стаж: 15 лет

Сообщений: 251
Благодарностей: 33
Полезность: 119

Factor, нет, не работает =(
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Legenda
сообщение 14.9.2011, 15:09
Сообщение #11


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

Стаж: 16 лет

Сообщений: 3619
Благодарностей: 1706
Полезность: 1010

Меценат Меценат

Цитата
примерно такой плагин нужен
только приписать событие начала раунда и счетчик на каждого игрока по He гранатам

http://forums.alliedmods.net/showthread.php?p=691809

upd
или в это ковыряйтесь
http://forums.alliedmods.net/showthread.php?p=559674


нашел плагин

http://forums.alliedmods.net/showthread.php?p=198361

Отредактировал: Legenda, - 14.9.2011, 15:13
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
Поблагодарили 2 раз
   + Цитировать сообщение
Статус пользователя Factor
сообщение 14.9.2011, 18:59
Сообщение #12


Стаж: 14 лет

Сообщений: 388
Благодарностей: 57
Полезность: 142

Цитата(Legenda @ 14.9.2011, 15:09) *


Жаль на английском. Значение кваров трудно воспринимается. blush2.gif
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Predator.Cat
сообщение 14.9.2011, 20:06
Сообщение #13


Стаж: 15 лет

Сообщений: 251
Благодарностей: 33
Полезность: 119

Цитата(Legenda @ 14.9.2011, 17:09) *

Спасибо. Попробую.


Цитата(Factor @ 14.9.2011, 20:59) *
Жаль на английском. Значение кваров трудно воспринимается. blush2.gif

Перевёл на русский. Хотел прикрепить, но сказали, что мне запрещено загружать такой тип файлов =( Поэтому выложу шапку скрипта
здесь:
Код
/*Grenade Spam Punish
*
* by [gOf]-Soul  from http://www.gofclan.org
*
* Это очень простой плагин, который я написал для контроля количества бросаемых гранат.
* Существовало несколько различных плагинов, которые, казалось бы, контролировали покупку
* гранат. Но они блокировали покупку дополнительных гранат.
* Те из них, которые я пробовал, блокировали покупку гранат через обычное меню.
* Этот плагин удерживает игроков от метания гранат более, чем определено в конфигурации.
*
* Этот плагин требует модуля AMXMODX потому что я удалил любые гранаты из окружающей
* среды, которые не должны быть брошены.
* Если вы хотите использовать плагин, не используя при этом модуль AMXMODX, вы можете
* удалить строки с remove_entity(индекс_гранаты) в нижней части скрипта.
*
* Описание переменных
* -----------------------------------------------------------------------------
* переменная    : mp_grenspampunish
* описание        : Включить или выключить плагин
*                  1 - включить, 0 - выключить.
* по умолчанию    : 1 (включен)
*
* переменная    : mp_grenspampunish_maxflash
* описание        : Максимально разрешённое количество флеш-гранат за один раунд
* по умолчанию    : 2
*
* переменная    : mp_grenspampunish_maxhe
* описание        : Максимально разрешённое количество HE-гранат за один раунд
* по умолчанию    : 1
*
* переменная    : mp_grenspampunish_maxsmoke
* описание        : Максимально разрешённое количество дымовых гранат за один раунд
* по умолчанию    : 1
*
* переменная    : mp_grenspampunish_damage
* описание        : Урон (HP), который будет нанесён игроку, попытавшемуся превысить лимит
*                  плагин использует user_slap для нанесения урона.
* по умолчанию    : 100
*
*
* Если нужно выставить настройки для определённой карты, поместите их в файл конфигурации
* карты, например, amxmodx/configs/maps/de_dust.cfg
*
* -----------------------------------------------------------------------------
*
*  *****************
*  * ЛОГ ИЗМЕНЕНИЙ *
*  *****************
*  v1.4
*    - Изменена декларация массива, чтобы избавиться от ошибки, связанной
*    с массивом grencount
*
*  v1.3
*    - Вынес cstrike ссылки
*    - Почищен код (спасибо vittu)
*
*  v1.2
*    - Удалён конфигурационный файл. Поместите конфиг непосредственно в amxx.cfg
*    - Для конфигурирования настроек под конкретную карту, использованы особенности
*    AmxModx
*    - Обновление для pcvars - для использования требуется версия 1.70 и выше
*    - Обновление для большей надёжности register_logevent("funcNewRound", 2, "1=Round_Start")
*    вместо события ResetHud
*    - Исправлена ошибка, не позволявшая очищать количество бросков, когда новый игрок
*    подключался к серверу, в результате чего кого-то наказывало за первый бросок
*  
*  v1.1
*    - Обновление для того, чтобы плагин не записывал подсчёт информации в хранилище,
*    а использовал глобальную переменную
*
*    - Добавлены специальные подсчёты гранат для карт, где можно превышать лимит бросаемых гранат
*    (например, на карте fy_pool_day)
*
*/
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
Поблагодарили 2 раз
   + Цитировать сообщение
Статус пользователя Factor
сообщение 15.9.2011, 11:26
Сообщение #14


Стаж: 14 лет

Сообщений: 388
Благодарностей: 57
Полезность: 142

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