Remember Weaponstate

Remember Weaponstate 1.0.0

Нет прав для скачивания

ufame

Скриптер
Проверенный
Сообщения
18
Реакции
6
Баллы
3
ufame добавил(а) новый ресурс:

Remember Weaponstate - Запоминает режимы оружия у usp, m4a1, famas и glock18.

Позволяет не надевать глушитель на M4A1 и USP при каждом получении оружия, плагин автоматически запоминает последний используемый режим и надевает глушитель, либо выставляет режим для Famas и Glock18 автоматически.

Узнать больше об этом ресурсе...
 
What is this verification for?
pawn:
 #if AMXX_VERSION_NUM < 200
    register_plugin(PluginName, PluginVersion, PluginAuthor);
  #endif
 
C-подобный:
#include <amxmodx>
#include <hamsandwich>
#include <reapi>

public stock const PluginName[]    = "[Gameplay] Weaponstate remember";
public stock const PluginVersion[] = "1.1.0";
public stock const PluginAuthor[]  = "ufame / improved";

new WeaponState:g_iWeaponState[MAX_PLAYERS + 1][WeaponIdType];

public plugin_init()
{
#if AMXX_VERSION_NUM < 200
    register_plugin(PluginName, PluginVersion, PluginAuthor);
#endif

    static const szWeaponList[][] =
    {
        "weapon_m4a1",
        "weapon_usp",
        "weapon_famas",
        "weapon_glock18"
    };

    for (new i = 0; i < sizeof szWeaponList; i++)
    {
        RegisterHam(Ham_Item_AddToPlayer, szWeaponList[i], "OnItemAddToPlayerPost", true);
        RegisterHam(Ham_Weapon_SecondaryAttack, szWeaponList[i], "OnWeaponSecondaryAttackPost", true);
    }
}

public client_disconnected(id)
{
    if (!IsPlayer(id))
        return;

    ClearPlayerWeaponStates(id);
}

public OnWeaponSecondaryAttackPost(const weapon)
{
    if (is_nullent(weapon))
        return HAM_IGNORED;

    new player = get_member(weapon, m_pPlayer);

    if (!IsPlayer(player))
        return HAM_IGNORED;

    new WeaponIdType:weaponId = get_member(weapon, m_iId);

    if (!IsValidWeaponId(weaponId))
        return HAM_IGNORED;

    g_iWeaponState[player][weaponId] = get_member(weapon, m_Weapon_iWeaponState);

    return HAM_IGNORED;
}

public OnItemAddToPlayerPost(const weapon, const player)
{
    if (is_nullent(weapon))
        return HAM_IGNORED;

    if (!IsPlayer(player))
        return HAM_IGNORED;

    new WeaponIdType:weaponId = get_member(weapon, m_iId);

    if (!IsValidWeaponId(weaponId))
        return HAM_IGNORED;

    set_member(weapon, m_Weapon_iWeaponState, g_iWeaponState[player][weaponId]);

    return HAM_IGNORED;
}

stock ClearPlayerWeaponStates(const player)
{
    arrayset(_:g_iWeaponState[player], 0, sizeof g_iWeaponState[]);
}

stock bool:IsPlayer(const index)
{
    return (1 <= index <= MaxClients);
}

stock bool:IsValidWeaponId(const WeaponIdType:weaponId)
{
    return (WEAPON_NONE < weaponId < WeaponIdType);
}
Сообщение автоматически объединено:

Разве это не было бы правильнее?
 

Кто просматривает тему

Назад
Верх