Сбрасывает кол-во патронов.

darkspice

Участник
Сообщения
21
Реакции
0
Хотел сделать экстраитем - покупку патронов.Но столкнулся с проблемой, что после перезарядки, количество патронов сбрасывается на дефолтное.
К примеру, ак-47 - 30/90 , после покупки 30/240 . Перезарядка - 30/90 .
При покупке идет такой код:
PHP:
        int iSize = GetEntPropArraySize(clientIndex, Prop_Send, "m_hMyWeapons");
        for (int i = 0; i < iSize; i++)
        {
            int weaponIndex = GetEntPropEnt(clientIndex, Prop_Send, "m_hMyWeapons", i);
            SetEntProp(weaponIndex, Prop_Send, "m_iPrimaryReserveAmmoCount", GetEntProp(weaponIndex, Prop_Send, "m_iPrimaryReserveAmmoCount")+150);
        }

Есть идеи как устранить проблему?
У меня только одна идея, при эвенте weapon_reload выставлять значение для SetEntProp как "патроны в запасе" - "истраченные патроны".Если вообще есть такое свойство как "истраченные патроны".
 

inklesspen

Не пишу модули под LSD :с
Сообщения
1,775
Реакции
966
PHP:
SDKHook(weapon, SDKHook_Reload, OnWeaponReload)

public Action OnWeaponReload(int weapon)
{
// something
}
--- Добавлено позже ---
Или поставь это. Так-же в этом плагине можно менять макс. кол-во патрон
Скоро закину в Ресурсы... наверно
 

Вложения

  • icam_moreammo_noreload.smx
    3.8 КБ · Просмотры: 4
  • icam_moreammo_noreload.sp
    433 байт · Просмотры: 15
  • ICAmmoManager.zip
    22.5 КБ · Просмотры: 9
Последнее редактирование:

darkspice

Участник
Сообщения
21
Реакции
0
PHP:
SDKHook(weapon, SDKHook_Reload, OnWeaponReload)

public Action OnWeaponReload(int weapon)
{
// something
}
А эвент не подойдет для отлова перезарядки?Там и юзер айди как раз такие есть.
Да и я не знаю как отнимать от запаса, точнее не знаю, как называется штука, отвечающая за количество потраченных патронов в обойме.По идее её же надо отнимать.С условием.

ПС. Плагин не работает.Dhooks есть , плагин поставил, в конфиге поменял все оружие на 900 в запасе, как было дефолт так и осталось.Помню когда то тоже пытался поставить этот плагин, тема еще
тож не получилось ничего.
 

inklesspen

Не пишу модули под LSD :с
Сообщения
1,775
Реакции
966
И еще поставь это
А эвент не подойдет для отлова перезарядки?Там и юзер айди как раз такие есть.
Да и я не знаю как отнимать от запаса, точнее не знаю, как называется штука, отвечающая за количество потраченных патронов в обойме.По идее её же надо отнимать.С условием.

ПС. Плагин не работает.Dhooks есть , плагин поставил, в конфиге поменял калаш на 300 в запасе, как было 90 так и осталось.Помню когда то тоже пытался поставить этот плагин, тема еще
тож не получилось ничего.
Какая игра? Я тебе скинул старую версию, ибо новая не работает. и.. У тебя Windows?
 

inklesspen

Не пишу модули под LSD :с
Сообщения
1,775
Реакции
966
Я когда буду заливать на ресурсы, сделаю нормально...
 

Вложения

  • ic_ammomanager_win.sp
    5.2 КБ · Просмотры: 8
  • ic_ammomanager_win.smx
    7.8 КБ · Просмотры: 3

darkspice

Участник
Сообщения
21
Реакции
0
Все еще не работает.А у тебя то работает?

Но мне все же хотелось бы меня кол-во патронов, то посредством покупки.
 

FurFur

Участник
Сообщения
153
Реакции
85
PHP:
int iSize = GetEntPropArraySize(clientIndex, Prop_Send, "m_hMyWeapons");
int iAmmos;
for (int i = 0; i < iSize; i++)
{
    int weaponIndex = GetEntPropEnt(clientIndex, Prop_Send, "m_hMyWeapons", i);
    iAmmos = GetEntProp(weaponIndex, Prop_Send, "m_iPrimaryReserveAmmoCount")+150;
    SetEntProp(clientIndex, Prop_Send, "m_iAmmo", iAmmos, _, GetEntProp(weaponIndex, Prop_Send, "m_iPrimaryAmmoType"));
    SetEntProp(weaponIndex, Prop_Send, "m_iPrimaryReserveAmmoCount", iAmmos);
}

Вот так можно.
Только если оружие будет дропнуто,то патроны опять пропадут после первой перезарядки
 

inklesspen

Не пишу модули под LSD :с
Сообщения
1,775
Реакции
966
PHP:
int iSize = GetEntPropArraySize(clientIndex, Prop_Send, "m_hMyWeapons");
int iAmmos;
for (int i = 0; i < iSize; i++)
{
    int weaponIndex = GetEntPropEnt(clientIndex, Prop_Send, "m_hMyWeapons", i);
    iAmmos = GetEntProp(weaponIndex, Prop_Send, "m_iPrimaryReserveAmmoCount")+150;
    SetEntProp(clientIndex, Prop_Send, "m_iAmmo", iAmmos, _, GetEntProp(weaponIndex, Prop_Send, "m_iPrimaryAmmoType"));
    SetEntProp(weaponIndex, Prop_Send, "m_iPrimaryReserveAmmoCount", iAmmos);
}

Вот так можно.
Только если оружие будет дропнуто,то патроны опять пропадут после первой перезарядки
а.. тебе Reserve... На windows я отключил себе Reserve, ибо вылетает, хз почему...
А запас... зачем он тебе то?)
 

darkspice

Участник
Сообщения
21
Реакции
0
Не хочет работать.Теперь вообще не дает патроны.
PHP:
int iSize = GetEntPropArraySize(clientIndex, Prop_Send, "m_hMyWeapons");
int iAmmos;
for (int i = 0; i < iSize; i++)
{
    int weaponIndex = GetEntPropEnt(clientIndex, Prop_Send, "m_hMyWeapons", i);
    iAmmos = GetEntProp(weaponIndex, Prop_Send, "m_iPrimaryReserveAmmoCount")+150;
    SetEntProp(clientIndex, Prop_Send, "m_iAmmo", iAmmos, _, GetEntProp(weaponIndex, Prop_Send, "m_iPrimaryAmmoType"));
    SetEntProp(weaponIndex, Prop_Send, "m_iPrimaryReserveAmmoCount", iAmmos);
}
 

FurFur

Участник
Сообщения
153
Реакции
85
Не хочет работать.Теперь вообще не дает патроны.

А,точно...
В кс го игроки имеют лимиты на запас патронов, за которые отвечают квары. Я фиксил вот так когда то:
(в OnPluginStart)
PHP:
{
            ConVar goCvars;
            goCvars = FindConVar("ammo_50AE_max");
            goCvars.SetInt(999);
            goCvars = FindConVar("ammo_762mm_max");
            goCvars.SetInt(999);
            goCvars = FindConVar("ammo_556mm_box_max");
            goCvars.SetInt(999);
            goCvars = FindConVar("ammo_556mm_max");
            goCvars.SetInt(999);
            goCvars = FindConVar("ammo_338mag_max");
            goCvars.SetInt(30);//awp
            goCvars = FindConVar("ammo_9mm_max");
            goCvars.SetInt(999);
            goCvars = FindConVar("ammo_buckshot_max");
            goCvars.SetInt(999);
            goCvars = FindConVar("ammo_45acp_max");
            goCvars.SetInt(999);
            goCvars = FindConVar("ammo_357sig_max");
            goCvars.SetInt(999);
            goCvars = FindConVar("ammo_57mm_max");
            goCvars.SetInt(999);
            goCvars = FindConVar("ammo_357sig_small_max");
            goCvars.SetInt(999);
            goCvars = FindConVar("ammo_556mm_small_max");
            goCvars.SetInt(999);
            goCvars = FindConVar("ammo_357sig_min_max");
            goCvars.SetInt(999);
            goCvars = FindConVar("ammo_357sig_p250_max");
            goCvars.SetInt(999);
            delete goCvars;
}

Ну а если без лишних проблем нужно, то ответ выше
 

darkspice

Участник
Сообщения
21
Реакции
0
Может быть у меня карма плохая, но плагин этот тоже кривой.
Тем более 2014 года.
Выставил для АК-47 : 30.600.
Ничего не работало, выставил все квары на 1, в итоге, когда захожу в игру, оружие опять с дефолтом.
НО --- когда убиваю, дается 43 патрона в клипе(вообще без понятия откуда эта цифра о_о) и 600 в запасе как выставил.Перезарядка - вуаля, дефолтное значение 30.90.
Мне всего лишь нужно что бы кс прекратила жрать мои РезерведАммоКаунт.Мне не нужно редактировать кол-во патронов на всех видах оружия заранее, это делается при покупке для определенного клиента, на оружие у него в руках, выше скрипт я прикладывал.Но суть проста - после перезарядки возвращается в дефолт.Либо как-то в ручну отсчитывать затраченное кол-во(я предположил, что при эвенте перезарядки вручную выставлять: "было в резерве" минус "потратил", только не знаю что отвечает за вот это самое "потратил")

ПС Попробую вариант с Кварами
не работает

ПСС Ребята пишут на форуме что этот плагин уже как давно не работает, и предлагают альтернативу в виде плагина inklesspen на который я уже кидал ссылку))
 
Последнее редактирование:

Похожие темы

Сверху Снизу