HNS Block Return 0.1

В този раздел можете да публикувате нови плъгини, като същите ще бъдат одобрени или неодобрени от страна на екипа.
Правила на форума
ИНФОРМАЦИЯ: В този раздел най-вероятно няма да намерите много теми (възможно е и да е напълно празен), тъй като новите теми се местят в https://amxx-bg.info/viewforum.php?f=21 или https://amxx-bg.info/viewforum.php?f=22, зависимо от качеството им.
Аватар
Misz
Извън линия
Потребител
Потребител
Мнения: 12
Регистриран на: 06 Апр 2017, 10:00
Се отблагодари: 10 пъти

HNS Block Return 0.1

Мнение от Misz » 06 Апр 2017, 10:38

Автор: Garey

Описание:
  • Плъгин, създаден за Hide'N'Seek модове.
  • Олекотен до максимално по моите възможности.
  • Не позволява Т играч да блокира CT играч, ако CT играчът е поел повече от 49 damage след блока.
Какво всъщност прави плъгинът?
  • Ако CT играчът е скочил върху T играч и е поел повече от 49 damage, той бива върнат на мястото от което е скочил по интересен начин.

ВАЖНА ИНФОРМАЦИЯ:
  • Текущият плъгин създава проблеми под ReHLDS платформи.
Changelog:
  • Версия 0.1 - Основа и създаване.
Бъдещи промени:
  • Добавяне на cvar и звук за контролиране на поетият damage и на звука.
  • Очакам предложения
Начин на инсталация:
  • Файлът antiblock.sma отива в папката scripting и оттам го компилирате локално. След това го инсталирате, премествате компилирания файл в папката plugins и пишете името му в plugins.ini.
Изтегляне:
antiblock.rar
(1.48 KiB) Свалено 418 пъти
antiblock.rar
(1.48 KiB) Свалено 418 пъти
Последно промяна от Misz на 07 Апр 2017, 10:43, променено общо 3 пъти.

Аватар
OciXCrom
Извън линия
Администратор
Администратор
Мнения: 7206
Регистриран на: 06 Окт 2016, 19:20
Местоположение: /resetscore
Се отблагодари: 117 пъти
Получена благодарност: 1295 пъти
Обратна връзка:

Re: HNS Block Return 0.1

Мнение от OciXCrom » 06 Апр 2017, 13:38

Правило №2: Забранено е качването на компилирани плъгини, тоест .amxx файлове. Когато качвате плъгин във форума, предоставяйте само .sma файла/кода и нужните ресурси. Изключение се прави при заявките, поточно когато трябва да се даде линк към друг сайт, който може да съдържа .amxx файл.**
Моля, премахни .amxx файла от архива, както и в другата ти тема.
Ти ли си правил плъгина?

Аватар
Huehue
Извън линия
Модератор
Модератор
Мнения: 352
Регистриран на: 16 Яну 2017, 23:42
Местоположение: София
Се отблагодари: 7 пъти
Получена благодарност: 171 пъти
Обратна връзка:

Re: HNS Block Return 0.1

Мнение от Huehue » 06 Апр 2017, 21:04

Мисля, че не се толерира тук представянето на чужд труд като твой. Плъгина е руски и го има в нета, качен от друг човек.

Код за потвърждение: Избери целия код

/*
 *
 * HNS Block Return
 *
 * Copyright 2016 Garey <[email protected]>
 *
 * This program 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; either version 2 of the License, or
 * (at your option) any later version.
 *
 * 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 this program; if not, write to the Free Software
 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
 * MA 02110-1301, USA.
 *
 *
 */
 
#include <amxmodx>
#include <fakemeta>
#include <hamsandwich>
 
new Array:g_arFlPlayerOrigin[33]
new Array:g_arFlPlayerAngle[33]
new bool:g_bIsTouched[33];
new bool:g_bIsBlocked[33];
new iToucher[33];
new g_iMaxPlayers;
new cvarFX;
 
public plugin_precache()
{
    precache_sound("ambience/rewind.wav")
}
 
public plugin_init()
{
    register_plugin("Block Return", "0.1", "Garey");
 
    cvarFX = register_cvar("hns_block_fx", "1");
 
    g_iMaxPlayers = get_maxplayers();
 
    for(new i = 1; i <= g_iMaxPlayers; i++)
    {
        g_arFlPlayerOrigin[i] = ArrayCreate(3);
        g_arFlPlayerAngle[i] = ArrayCreate(3);
    }
 
    RegisterHam( Ham_Player_PreThink, "player", "fwd_PlayerPreThink", 0 );
    RegisterHam( Ham_Touch, "player", "fwd_TouchPlayer", 0 );
    RegisterHam( Ham_TakeDamage, "player", "Ham_TakeDamagePlayer" );
}
 
public fwd_TouchPlayer( id, entity )
{
    if( get_user_team( id ) != 2 || !is_user_alive( entity ))
        return;
 
    if( get_user_team( entity ) != 1 )
        return;
 
    new flVelocity[3]
    pev(id, pev_velocity, flVelocity);
    // Check if player was in Air
    if(flVelocity[2] != 0.0)
    {
        g_bIsTouched[id] = true;
        iToucher[id] = entity;
    }
}
 
 
public Ham_TakeDamagePlayer(iVictim, iInflictor, iAttacker, Float:flDamage, iDamageBits)
{
    if( is_user_alive(iVictim) && flDamage >= 50.0 && iDamageBits & DMG_FALL )
    {
        if( get_user_team(iVictim) == 2 )
        {
            if(g_bIsTouched[iVictim] && is_user_alive(iToucher[iVictim]))
            {
                iToucher[iVictim] = 0;
                g_bIsBlocked[iVictim] = true;
                if(get_pcvar_num(cvarFX))
                emit_sound(iVictim, CHAN_AUTO, "ambience/rewind.wav", 1.0, ATTN_NORM, 0, PITCH_NORM)
                set_pev(iVictim, pev_movetype, MOVETYPE_NOCLIP)
                return HAM_SUPERCEDE;
            }
        }
    }
    return HAM_IGNORED;
}
 
public fwd_PlayerPreThink( id )
{
    static flPlayerOrigin[3], flPlayerAngles[3], LastFrames[33]
 
    if(is_user_alive(id))
    {
        if(!g_bIsBlocked[id])
        {
            pev(id, pev_origin, flPlayerOrigin);
            pev(id, pev_v_angle, flPlayerAngles);
 
            if((pev(id, pev_flags) & FL_ONGROUND) || pev(id, pev_movetype) == MOVETYPE_FLY)
            {
                if(LastFrames[id] > 10)
                {
                    g_bIsTouched[id] = false;
                    ArrayClear(g_arFlPlayerOrigin[id]);
                    ArrayClear(g_arFlPlayerAngle[id]);
                    LastFrames[id] = 0;
                }
                else
                {
                    ArrayPushArray(g_arFlPlayerOrigin[id], flPlayerOrigin);
                    ArrayPushArray(g_arFlPlayerAngle[id], flPlayerAngles);
                    LastFrames[id]++;
                }
            }
            else
            {
                ArrayPushArray(g_arFlPlayerOrigin[id], flPlayerOrigin);
                ArrayPushArray(g_arFlPlayerAngle[id], flPlayerAngles);
            }
        }
        else
        {
            new Length = ArraySize(g_arFlPlayerOrigin[id])-1;
 
            if(Length)
            {
                ArrayGetArray(g_arFlPlayerOrigin[id], Length, flPlayerOrigin);
                ArrayGetArray(g_arFlPlayerAngle[id], Length, flPlayerAngles);
 
                ArrayDeleteItem(g_arFlPlayerOrigin[id], Length);
                ArrayDeleteItem(g_arFlPlayerAngle[id], Length);
 
                set_pev(id, pev_origin, flPlayerOrigin)
                set_pev(id, pev_angles, flPlayerAngles)
                set_pev(id, pev_fixangle, 1)
            }
            else
            {
                set_pev(id,pev_movetype,MOVETYPE_WALK)
                set_pev(id,pev_velocity,Float:{0.0,0.0,0.0})
                set_pev(id,pev_flags,pev(id,pev_flags)|FL_DUCKING)
                g_bIsBlocked[id] = false;
            }
        }
    }
    else
    {
        LastFrames[id] = 0;
    }
} 
LOYAL TO THE OATH OF OMERTА̀

Зад монитора мъжкари, това не го разбирам..
На живо сте мишкари, това го гарантирам!
Седиш на 30 метра от мен като препариран!
Ако има нещо брат, номерът ми е блокиран..

My GitHub Profile
GitHub

My AMXX Includes Collection
AMXX Include Libraries

My Steam Profile (from SteamDB)
  • Value: 4179€
  • Games owned: 1855
  • Games played: 754 (40%)
  • Hours on record: 4,994.9h

Публикувай отговор
  • Подобни теми
    Отговори
    Преглеждания
     Последно мнение

Обратно към “Нови попълнения”

Кой е на линия

Потребители разглеждащи този форум: 0 регистрирани и 5 госта