Статус темы:
Закрыта.
  1. Grom-92 Пользователь

    Регистрация:
    13.06.15
    Сообщения:
    152
    Симпатии:
    81
    Пол:
    Мужской
    Telegram:
    grom92
    Skype:
    grom.kostin
    [​IMG]
     
  2. jokin Команда форума

    Регистрация:
    28.02.15
    Сообщения:
    820
    Симпатии:
    208
    Team Flash Punisher называется плагин.
     
  3. Grom-92 Пользователь

    Регистрация:
    13.06.15
    Сообщения:
    152
    Симпатии:
    81
    Пол:
    Мужской
    Telegram:
    grom92
    Skype:
    grom.kostin
    кинь сылочку?
     
  4. jokin Команда форума

    Регистрация:
    28.02.15
    Сообщения:
    820
    Симпатии:
    208
    Grom-92, % не кинуть? Поиском в интернете совсем не але пользоваться?
     
  5. Grom-92 Пользователь

    Регистрация:
    13.06.15
    Сообщения:
    152
    Симпатии:
    81
    Пол:
    Мужской
    Telegram:
    grom92
    Skype:
    grom.kostin
    за что %
     
  6. jokin Команда форума

    Регистрация:
    28.02.15
    Сообщения:
    820
    Симпатии:
    208
    Grom-92, Да обленился совсем.
     
  7. muhycspb Пользователь

    Регистрация:
    03.03.16
    Сообщения:
    18
    Симпатии:
    0
    Пол:
    Мужской
    • tfp_count < Flags >Count Type: Flags are additive (default : 3)
      • 0: Don't count
      • 1: Count semi flash
      • 2: Count full flash
      • 4: Also count when flasher is dead
    • tfp_max_count < X >Restrict a player from throwing flash nades after X counted teamflash (see previous cvar) (def:10)
    • tfp_punish < Flags >Punish Type: Flags are additive (default : 2)
      • 0: Don't punish
      • 1: Health reduction
      • 2: Money reduction
    • tfp_health_amount < amount >HPs reduction (def:5)
    • tfp_health_allow_kill < 0/1>When HP reduction is on, allow to kill player (def:0)
    • tfp_money_amount < amount >Dollars taken (def:200)
    /* Formatright © 2010, ConnorMcLeod

    Team Flash Punish is free software;
    you can redistribute it and/or modify it under the terms of the
    GNU General Public License as published by the Free Software Foundation.

    This program is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
    GNU General Public License for more details.

    You should have received a copy of the GNU General Public License
    along with Team Flash Punish; if not, write to the
    Free Software Foundation, Inc., 59 Temple Place - Suite 330,
    Boston, MA 02111-1307, USA.
    */

    #include <amxmodx>
    #include <cstrike>
    #include <fakemeta>
    #include <hamsandwich>

    #define VERSION "1.1.1"

    const MAX_PLAYERS = 32

    new g_iMaxPlayers
    #define IsPlayer(%1) ( 1 <= %1 <= g_iMaxPlayers )

    new g_bitGonnaExplode[64]
    #define SetGrenadeExplode(%1) g_bitGonnaExplode[%1>>5] |= 1<<(%1 & 31)
    #define ClearGrenadeExplode(%1) g_bitGonnaExplode[%1>>5] &= ~( 1 << (%1 & 31) )
    #define WillGrenadeExplode(%1) g_bitGonnaExplode[%1>>5] & 1<<(%1 & 31)

    const XO_PLAYER = 5

    enum ( <<= 1 ) {
    CountSemiFlash = 1,
    CountFullFlash,
    CountDeadFlasher
    }

    enum ( <<= 1 ) {
    PunishHealth = 1,
    PunishMoney
    }

    new Float:g_flCurrentGameTime, g_iCurrentFlasher

    new g_iFlashTeamCount[MAX_PLAYERS+1]

    new g_pcvarTeamFlash, g_pcvarMax, g_pcvarHealth, g_pcvarPunish, g_pcvarMoney, g_pcvarCanKill

    new g_iHudTextArgs, g_iTextMsg

    public plugin_init()
    {
    register_plugin("Team Flash Punish", VERSION, "ConnorMcLeod")

    g_pcvarTeamFlash = register_cvar("tfp_count", "3") // Additive values 0: don't count, 1:count semi flash, 2:count full flash, 4:count dead flasher
    g_pcvarMax = register_cvar("tfp_max_count", "10") // disallow flashbang after X count
    g_pcvarPunish = register_cvar("tfp_punish", "2") // Additive values 0: don't punish, 1:health, 2:money
    g_pcvarHealth = register_cvar("tfp_health_amount", "5") // health reduction
    g_pcvarCanKill = register_cvar("tfp_health_allow_kill", "0") // allow health reduction to trigger kill
    g_pcvarMoney = register_cvar("tfp_money_amount", "200") // cash taken

    register_event("ScreenFade", "Event_ScreenFade", "be", "4=255", "5=255", "6=255", "7=200", "7=255")

    RegisterHam(Ham_Think, "grenade", "CGrenade_Think")

    RegisterHam(Ham_Touch, "armoury_entity", "CArmouryEntity_Touch")
    RegisterHam(Ham_Touch, "weaponbox", "CWeaponBox_Touch")

    register_clcmd("menuselect 3", "ClientCommand_MenuSelect_3")

    g_iMaxPlayers = get_maxplayers()
    g_iHudTextArgs = get_user_msgid("HudTextArgs")
    g_iTextMsg = get_user_msgid("TextMsg")
    }

    public client_putinserver(id)
    {
    g_iFlashTeamCount[id] = 0
    }

    CantBuyFlashBang(id)
    {
    if( CantHaveFlashbangsAnymore(id) && cs_get_user_buyzone(id) )
    {
    message_begin(MSG_ONE, g_iTextMsg, .player=id)
    {
    write_byte(print_center)
    write_string("#Weapon_Not_Available")
    }
    message_end()
    return PLUGIN_HANDLED
    }
    return PLUGIN_CONTINUE
    }

    CantHaveFlashbangsAnymore(id)
    {
    new iMax = get_pcvar_num(g_pcvarMax)
    return (iMax && g_iFlashTeamCount[id] >= iMax)
    }

    public ClientCommand_MenuSelect_3( id )
    {
    const m_iMenuIndex = 205
    const EQUIP_MENU = 10
    if( is_user_alive(id)
    && get_pdata_int(id, m_iMenuIndex, XO_PLAYER) == EQUIP_MENU
    && cs_get_user_buyzone(id)
    && cs_get_user_money(id) >= 200 )
    {
    return CantBuyFlashBang(id)
    }
    return PLUGIN_CONTINUE
    }

    public client_command( id )
    {
    new szCommand[7]
    const FLASH_BUYALIAS_STRLEN = 5
    if( is_user_alive(id) && read_argv(0, szCommand, charsmax(szCommand)) == FLASH_BUYALIAS_STRLEN && equal(szCommand, "flash") )
    {
    return CantBuyFlashBang(id)
    }
    return PLUGIN_CONTINUE
    }

    public Cs_InternalCommand( id, szCommand[] )
    {
    if( is_user_alive(id) && equal(szCommand, "flash") )
    {
    return CantBuyFlashBang(id)
    }
    return PLUGIN_CONTINUE
    }

    public CGrenade_Think( iEnt )
    {
    static Float:flGameTime, Float:flDmgTime, iOwner
    flGameTime = get_gametime()
    pev(iEnt, pev_dmgtime, flDmgTime)
    const XO_GRENADE = 5
    if( flDmgTime <= flGameTime
    // VEN's way on how to detect grenade type
    // http://forums.alliedmods.net/showthread.ph...1189#post401189
    && get_pdata_int(iEnt, 114, XO_GRENADE) == 0 // has a bit when is HE or SMOKE
    && !(get_pdata_int(iEnt, 96, XO_GRENADE) & (1<<8)) // has this bit when is c4
    && IsPlayer( (iOwner = pev(iEnt, pev_owner)) ) ) // if no owner (3rd 'after dmgtime' frame), grenade gonna be removed from world
    {
    if( ~WillGrenadeExplode(iEnt) ) // grenade gonna explode on next think
    {
    SetGrenadeExplode( iEnt )
    }
    else
    {
    ClearGrenadeExplode( iEnt )
    g_flCurrentGameTime = flGameTime
    g_iCurrentFlasher = iOwner
    }
    }
    }

    public Event_ScreenFade(id)
    {
    new Float:flGameTime = get_gametime()
    if( id != g_iCurrentFlasher
    && g_flCurrentGameTime == flGameTime
    && cs_get_user_team(id) == cs_get_user_team(g_iCurrentFlasher) )
    {
    new bAlive = is_user_alive(g_iCurrentFlasher)
    new bitCountType = get_pcvar_num(g_pcvarTeamFlash)
    if( ( bAlive || bitCountType & CountDeadFlasher )
    && bitCountType & (1<<_:(read_data(7) == 255)) )
    {
    g_iFlashTeamCount[g_iCurrentFlasher]++
    new iPunish = get_pcvar_num(g_pcvarPunish)
    if( iPunish & PunishHealth && bAlive )
    {
    new Float:flHealth
    pev(g_iCurrentFlasher, pev_health, flHealth)
    flHealth -= get_pcvar_float(g_pcvarHealth)
    if( flHealth < 1.0 )
    {
    if( get_pcvar_num(g_pcvarCanKill) )
    {
    user_kill(id)
    bAlive = false
    }
    else
    {
    set_pev(g_iCurrentFlasher, pev_health, 1.0)
    }
    }
    else
    {
    set_pev(g_iCurrentFlasher, pev_health, flHealth)
    }
    }
    if( iPunish & PunishMoney )
    {
    new iMoney = max(cs_get_user_money(g_iCurrentFlasher) - get_pcvar_num(g_pcvarMoney), 0)
    cs_set_user_money(g_iCurrentFlasher, iMoney, 1)
    }
    }

    const m_flNextHudTextArgsGameTime = 198
    if( bAlive && get_pdata_float(id, m_flNextHudTextArgsGameTime, XO_PLAYER) < flGameTime )
    {
    set_pdata_float(id, m_flNextHudTextArgsGameTime, flGameTime + 5.0, XO_PLAYER)

    message_begin(MSG_ONE, g_iHudTextArgs, .player=g_iCurrentFlasher)
    {
    write_string("#Hint_try_not_to_injure_teammates")
    write_byte(1)
    write_byte(0)
    }
    message_end()
    }
    }
    }

    public CArmouryEntity_Touch(iArmoury, id)
    {
    if( IsPlayer(id) && is_user_alive(id) && cs_get_armoury_type(iArmoury) == CSW_FLASHBANG && CantHaveFlashbangsAnymore(id) )
    {
    return HAM_SUPERCEDE
    }
    return HAM_IGNORED
    }

    public CWeaponBox_Touch(iWeaponBox, id)
    {
    if( IsPlayer(id) && is_user_alive(id) )
    {
    const XO_WEAPONBOX = 4
    const m_rgpPlayerItems_slot4 = 38
    new iWeapon = get_pdata_cbase(iWeaponBox, m_rgpPlayerItems_slot4, XO_WEAPONBOX)
    if( iWeapon > 0 && cs_get_weapon_id(iWeapon) == CSW_FLASHBANG && CantHaveFlashbangsAnymore(id) )
    {
    return HAM_SUPERCEDE
    }
    }
    return HAM_IGNORED
    }
     
    Последнее редактирование: 07.05.16
  8. jokin Команда форума

    Регистрация:
    28.02.15
    Сообщения:
    820
    Симпатии:
    208
    Grom-92, Закрываем тему?
     
  9. Grom-92 Пользователь

    Регистрация:
    13.06.15
    Сообщения:
    152
    Симпатии:
    81
    Пол:
    Мужской
    Telegram:
    grom92
    Skype:
    grom.kostin
    нет, плагин не нашол
     
  10. jokin Команда форума

    Регистрация:
    28.02.15
    Сообщения:
    820
    Симпатии:
    208
    Grom-92, Да как? Ты квары вообще использовал?
     
  11. Grom-92 Пользователь

    Регистрация:
    13.06.15
    Сообщения:
    152
    Симпатии:
    81
    Пол:
    Мужской
    Telegram:
    grom92
    Skype:
    grom.kostin
    да
     
  12. jokin Команда форума

    Регистрация:
    28.02.15
    Сообщения:
    820
    Симпатии:
    208
    Grom-92, И что же? Не то?) Кстати версию тебе выше древнюю кинули, есть более свежая.
     
  13. Grom-92 Пользователь

    Регистрация:
    13.06.15
    Сообщения:
    152
    Симпатии:
    81
    Пол:
    Мужской
    Telegram:
    grom92
    Skype:
    grom.kostin
    Где она есть? гуглил(
     
  14. jokin Команда форума

    Регистрация:
    28.02.15
    Сообщения:
    820
    Симпатии:
    208
    Предупреждение!

    Хватит тему растягивать, название плагина тебе нашли.
    Ты просто набиваешь посты уже. У меня почему-то сразу нашло версию 1.3, а не ту которая в теме. Совпадение? - Не думаю

    Team Flash Punisher.png
     
  15. Grom-92 Пользователь

    Регистрация:
    13.06.15
    Сообщения:
    152
    Симпатии:
    81
    Пол:
    Мужской
    Telegram:
    grom92
    Skype:
    grom.kostin
    1.3 это не то)))) скрин для чего кидал?
     
  16. ex3m777 Пользователь

    Регистрация:
    27.02.15
    Сообщения:
    761
    Симпатии:
    334
    Пол:
    Мужской
    VKcom:
    ex3m777
    Skype:
    ex3m777
    [2.2] Flash Control
    в этом плагине
    63 строку измени с
    if(blind == 255) user_slap(g_iFlasher, (get_user_health(g_iFlasher) > 10) ? 10 : 0)
    на
    new iMoney = cs_get_user_money(g_iFlasher);
    cs_set_user_money(g_iFlasher, iMoney - 200);
    --- добавлено 07.05.16 ---
    ну и отредактируй сообщения если хочешь проинформировать игрока что с него сняли деньги
     
    Grom-92 нравится это.
  17. jokin Команда форума

    Регистрация:
    28.02.15
    Сообщения:
    820
    Симпатии:
    208
    Информация.

    Тема закрыта!
     
Статус темы:
Закрыта.