[CS:GO] Оружие при входе.

burden boy

Участник
Сообщения
98
Реакции
4
Здравствуйте, форумчане.

Имеется плагин, для VIP - но он, не выдает оружия, подгружаю его через ws map plugins, он не работает. Что можно сделать ?

PHP:
#pragma semicolon 1

#include <sourcemod>
#include <sdktools>
#include <vip_core>

int g_iGrenadeOffsets[] = {15, 17, 16, 14, 18, 17};

public Plugin:myinfo =
{
    name = "Name",
    author = "Author",
    version = "0.1"
}

new const String:g_sFeature[] = "DefenderGun";

public VIP_OnVIPLoaded()
{
    VIP_RegisterFeature(g_sFeature, BOOL);
}

public VIP_OnPlayerSpawn(iClient, iTeam, bool:bIsVIP)
{
    if(bIsVIP && VIP_IsClientFeatureUse(iClient, g_sFeature))
    {
        WeaponDelete(iClient);
        GivePlayerItem(iClient, "weapon_bizon");
        GivePlayerItem(iClient, "weapon_knife");
        GivePlayerItem(iClient, "weapon_usp_silencer");
        GivePlayerItem(iClient, "weapon_decoy");
    }
}

public void WeaponDelete(int iClient)
{
    for (int i = 0; i < 4; ++i)
    {
        if (i == 3)
        {
            RemoveNades(iClient);
        }
        else
        {
            RemoveWeaponBySlot(iClient, i);
        }
    }
}

stock void RemoveNades(int iClient)
{
    while (RemoveWeaponBySlot(iClient, 3))
    {
        for (int i = 0; i < 6; i++)
        {
            SetEntProp(iClient, Prop_Send, "m_iAmmo", 0, _, g_iGrenadeOffsets[i]);
        }
    }
}

stock bool RemoveWeaponBySlot(int iClient, int slot)
{
    int entity = GetPlayerWeaponSlot(iClient, slot);
    if(IsValidEdict(entity))
    {
        RemovePlayerItem(iClient, entity);
        AcceptEntityInput(entity, "Kill");
        return true;
    }
    
    return false;
}
 

Someone

Участник
Сообщения
1,933
Реакции
1,653
Здравствуйте, форумчане.

Имеется плагин, для VIP - но он, не выдает оружия, подгружаю его через ws map plugins, он не работает. Что можно сделать ?

PHP:
#pragma semicolon 1

#include <sourcemod>
#include <sdktools>
#include <vip_core>

int g_iGrenadeOffsets[] = {15, 17, 16, 14, 18, 17};

public Plugin:myinfo =
{
    name = "Name",
    author = "Author",
    version = "0.1"
}

new const String:g_sFeature[] = "DefenderGun";

public VIP_OnVIPLoaded()
{
    VIP_RegisterFeature(g_sFeature, BOOL);
}

public VIP_OnPlayerSpawn(iClient, iTeam, bool:bIsVIP)
{
    if(bIsVIP && VIP_IsClientFeatureUse(iClient, g_sFeature))
    {
        WeaponDelete(iClient);
        GivePlayerItem(iClient, "weapon_bizon");
        GivePlayerItem(iClient, "weapon_knife");
        GivePlayerItem(iClient, "weapon_usp_silencer");
        GivePlayerItem(iClient, "weapon_decoy");
    }
}

public void WeaponDelete(int iClient)
{
    for (int i = 0; i < 4; ++i)
    {
        if (i == 3)
        {
            RemoveNades(iClient);
        }
        else
        {
            RemoveWeaponBySlot(iClient, i);
        }
    }
}

stock void RemoveNades(int iClient)
{
    while (RemoveWeaponBySlot(iClient, 3))
    {
        for (int i = 0; i < 6; i++)
        {
            SetEntProp(iClient, Prop_Send, "m_iAmmo", 0, _, g_iGrenadeOffsets[i]);
        }
    }
}

stock bool RemoveWeaponBySlot(int iClient, int slot)
{
    int entity = GetPlayerWeaponSlot(iClient, slot);
    if(IsValidEdict(entity))
    {
        RemovePlayerItem(iClient, entity);
        AcceptEntityInput(entity, "Kill");
        return true;
    }
   
    return false;
}
Потому что модуль не выгружаешь, наверно.

PHP:
public void OnPluginEnd()
{
    VIP_UnregisterFeature(g_sFeature);
}

А еще я не вижу смысла хранить таким образом название модуля.
 

burden boy

Участник
Сообщения
98
Реакции
4
PHP:
#define        Feature        "DefenderGun"
Хм, учту. Но вопрос тот-же, по вашему указанию сделал void OnPluginEnd(), но все так-же подгружая его на карте - он попросту не выдает оружия, если оставить его чтобы везде работал - то он будет работать на той карте, которая мне нужна. Что можете посоветовать?
 

Someone

Участник
Сообщения
1,933
Реакции
1,653
Хм, учту. Но вопрос тот-же, по вашему указанию сделал void OnPluginEnd(), но все так-же подгружая его на карте - он попросту не выдает оружия, если оставить его чтобы везде работал - то он будет работать на той карте, которая мне нужна. Что можете посоветовать?
Не заметил сразу, вот так сработает:
PHP:
public void OnPluginStart()
{
    if(VIP_IsVIPLoaded())
    {
        VIP_OnVIPLoaded();
    }
}
 
Сверху Снизу