Замена оружия m4a4 на "s"

xek

Рыба клоун
Сообщения
1,653
Реакции
637
Добрый день, как заменить покупку оружия в cs go, чтобы покупалось независимо что тоит в инвентаре, нужно чтобы покупалось m4a1-s
 

_wS_

Участник
Сообщения
406
Реакции
796
.
 

Вложения

  • z.zip
    3.8 КБ · Просмотры: 299
  • Мне нравится
Реакции: lady

inklesspen

Не пишу модули под LSD :с
Сообщения
1,778
Реакции
969
не лучше ли вместо CreateTimer использовать RequestFrame? Он заменит сразу и не даст игроку выкинуть оружие до того, как оружие заменится
--- Добавлено позже ---
+Разница цен m4a1 и m4a1_silencer равна 100$.
100$ в никуда
 

_wS_

Участник
Сообщения
406
Реакции
796
Мистер енот столько минусов нашёл, о нет, что же делать.
Кнеш запретить выкинуть + деньги учесть лучше.
RequestFrame никогда не использовал + впервые о нём слышу.
Если енот хочет помочь ему и эти недочеты настолько ужасны, пусть подправит или сделает сам.
 

inklesspen

Не пишу модули под LSD :с
Сообщения
1,778
Реакции
969
Мистер енот столько минусов нашёл, о нет, что же делать.
Кнеш запретить выкинуть + деньги учесть лучше.
RequestFrame никогда не использовал + впервые о нём слышу.
Если енот хочет помочь ему и эти недочеты настолько ужасны, пусть подправит или сделает сам.
Не злись, прошу, просто учти это.
И кстати их всего 3

Не тестировал, ибо лень, даже точную цену М4 не посмотрел, а так-же функцию покупки, поэтому плаг лишь запрещает закуп м4 и выдает м4-с, при этом забирая деньги
--- Добавлено позже ---
RequestFrame никогда не использовал + впервые о нём слышу.
Эта функция буквально на следующем кадре выполняет ту или иную функцию. Полезно, нужен не таймер на 0.1сек, и не сразу, а ждун на 1 кадр. В том числе с гранатами, например узнать их владельца... Но при создании владельца нету(
 

Вложения

  • buy_m4a1_s.smx
    3.9 КБ · Просмотры: 77
  • buy_m4a1_s.sp
    545 байт · Просмотры: 74

xek

Рыба клоун
Сообщения
1,653
Реакции
637
Не злись, прошу, просто учти это.
И кстати их всего 3

Не тестировал, ибо лень, даже точную цену М4 не посмотрел, а так-же функцию покупки, поэтому плаг лишь запрещает закуп м4 и выдает м4-с, при этом забирая деньги
--- Добавлено позже ---

Эта функция буквально на следующем кадре выполняет ту или иную функцию. Полезно, нужен не таймер на 0.1сек, и не сразу, а ждун на 1 кадр. В том числе с гранатами, например узнать их владельца... Но при создании владельца нету(
Первый плагин работал практически идеально, а вот 2-рой покупает обе эмки и снимает 6200$ при кокупке через бинд, если черед меню, то всё ок
 
Последнее редактирование:

inklesspen

Не пишу модули под LSD :с
Сообщения
1,778
Реакции
969
Странно, что с биндами такое... На всякий случай сделал что-то типо "защиты".
 

Вложения

  • buy_m4a1_s.smx
    4.2 КБ · Просмотры: 35
  • buy_m4a1_s.sp
    756 байт · Просмотры: 37

Exle

Участник
Сообщения
190
Реакции
216
@spazm
C-подобный:
#include <cstrike>
#include <sdktools_functions>

#define M4A1_PRICE    3100

public Action:CS_OnBuyCommand(client, const String:item[])
{
    new ovechka, zaychik;
    decl String:krolik[32];

    if (!IsPlayerAlive(client) || strcmp(item, "m4a1", false) != 0)
    {
        return Plugin_Continue;
    }
    else if ((zaychik = GetPlayerWeaponSlot(client, 0)) > 0 && GetEntityClassname(zaychik, krolik, 32) && strcmp(krolik[7], "m4a1_silencer", false) == 0
    || (ovechka = GetEntProp(client, Prop_Send, "m_iAccount")) < M4A1_PRICE)
    {
        return Plugin_Handled;
    }
    else if (zaychik > 0)
    {
        CS_DropWeapon(client, zaychik, true);
    }

    SetEntProp(client, Prop_Send, "m_iAccount", ovechka - M4A1_PRICE);
    GivePlayerItem(client, "weapon_m4a1_silencer");

    return Plugin_Handled;
}
 

Вложения

  • buy_m4a1_s.smx
    4.1 КБ · Просмотры: 31
Последнее редактирование:

xek

Рыба клоун
Сообщения
1,653
Реакции
637
@spazm
C-подобный:
#include <cstrike>
#include <sdktools_functions>

#define M4A1_PRICE    3100

public Action:CS_OnBuyCommand(client, const String:item[])
{
    new ovechka, zaychik;
    decl String:krolik[32];

    if (!IsPlayerAlive(client) || strcmp(item, "m4a1", false) != 0)
    {
        return Plugin_Continue;
    }
    else if ((zaychik = GetPlayerWeaponSlot(client, 0)) > 0 && GetEntityClassname(zaychik, krolik, 32) && strcmp(krolik[7], "m4a1_silencer", false) == 0
    || (ovechka = GetEntProp(client, Prop_Send, "m_iAccount")) < M4A1_PRICE)
    {
        return Plugin_Handled;
    }
    else if (zaychik > 0)
    {
        CS_DropWeapon(client, zaychik, true);
    }

    SetEntProp(client, Prop_Send, "m_iAccount", ovechka - M4A1_PRICE);
    GivePlayerItem(client, "weapon_m4a1_silencer");

    return Plugin_Handled;
}
Через меню покупки всё ок, а вот через бинд снимается по нормальному 3100, но покупается так же 2-е эмки, m4a4 выбрасывается а м4а1-с остаётся в руках
 

Exle

Участник
Сообщения
190
Реакции
216
Через меню покупки всё ок, а вот через бинд снимается по нормальному 3100, но покупается так же 2-е эмки, m4a4 выбрасывается а м4а1-с остаётся в руках
Что через бинд, что через меню, m4a1 вообще не должна покупаться, не знаю, что у тебя за хрень
C-подобный:
#include <cstrike>
#include <sdktools_functions>
#include <sdktools_entinput>

#define M4A1_PRICE    3100

public Action:CS_OnBuyCommand(client, const String:item[])
{
    new ovechka, zaychik;
    new String:krolik[32];

    if (!IsPlayerAlive(client) || strcmp(item, "m4a1", false) != 0)
    {
        return Plugin_Continue;
    }
    else if ((zaychik = GetPlayerWeaponSlot(client, 0)) > 0 && GetEntityClassname(zaychik, krolik, 32) && strcmp(krolik[7], "m4a1_silencer", false) == 0
    || (ovechka = GetEntProp(client, Prop_Send, "m_iAccount")) < M4A1_PRICE)
    {
        return Plugin_Handled;
    }
    else if (zaychik > 0)
    {
        if (strcmp(krolik[7], "m4a1", false) == 0)
        {
            RemovePlayerItem(client,  zaychik);
            AcceptEntityInput(zaychik, "Kill");
        }
        else
        {
            CS_DropWeapon(client, zaychik, false);
        }
    }

    SetEntProp(client, Prop_Send, "m_iAccount", ovechka - M4A1_PRICE);
    GivePlayerItem(client, "weapon_m4a1_silencer");

    return Plugin_Handled;
}
 

Вложения

  • buy_m4a1_s.smx
    4.3 КБ · Просмотры: 24

xek

Рыба клоун
Сообщения
1,653
Реакции
637
Что через бинд, что через меню, m4a1 вообще не должна покупаться, не знаю, что у тебя за хрень
C-подобный:
#include <cstrike>
#include <sdktools_functions>
#include <sdktools_entinput>

#define M4A1_PRICE    3100

public Action:CS_OnBuyCommand(client, const String:item[])
{
    new ovechka, zaychik;
    new String:krolik[32];

    if (!IsPlayerAlive(client) || strcmp(item, "m4a1", false) != 0)
    {
        return Plugin_Continue;
    }
    else if ((zaychik = GetPlayerWeaponSlot(client, 0)) > 0 && GetEntityClassname(zaychik, krolik, 32) && strcmp(krolik[7], "m4a1_silencer", false) == 0
    || (ovechka = GetEntProp(client, Prop_Send, "m_iAccount")) < M4A1_PRICE)
    {
        return Plugin_Handled;
    }
    else if (zaychik > 0)
    {
        if (strcmp(krolik[7], "m4a1", false) == 0)
        {
            RemovePlayerItem(client,  zaychik);
            AcceptEntityInput(zaychik, "Kill");
        }
        else
        {
            CS_DropWeapon(client, zaychik, false);
        }
    }

    SetEntProp(client, Prop_Send, "m_iAccount", ovechka - M4A1_PRICE);
    GivePlayerItem(client, "weapon_m4a1_silencer");

    return Plugin_Handled;
}
Сейчас покупается только m4a1-s, но через бинд снимается 6200, через меню всё ок. Бинд стоит такой bind "kp_pgdn" "buy ak47; buy m4a1"
 

inklesspen

Не пишу модули под LSD :с
Сообщения
1,778
Реакции
969
Попробуй
 

Вложения

  • buy_m4a1_s.smx
    4.3 КБ · Просмотры: 37
  • buy_m4a1_s.sp
    750 байт · Просмотры: 33

komashchenko

Идиот
Сообщения
916
Реакции
2,573
PHP:
#pragma semicolon 1

#include <PTaH>

public void OnPluginStart()
{
    PTaH(PTaH_GiveNamedItemPre, Hook, GiveNamedItemPre);
}

public Action GiveNamedItemPre(int iClient, char sClassname[64], CEconItemView &Item)
{
    if(StrEqual(sClassname, "weapon_m4a1"))
    {
        sClassname = "weapon_m4a1_silencer";
        Item = view_as<CEconItemView>(0); //без этого все равно будет weapon_m4a1 при покупке через меню
        return Plugin_Changed;
    }
    return Plugin_Continue;
}
 

xek

Рыба клоун
Сообщения
1,653
Реакции
637
upload_2017-4-17_17-27-33.png

PHP:
#pragma semicolon 1

#include <PTaH>

public void OnPluginStart()
{
    PTaH(PTaH_GiveNamedItemPre, Hook, GiveNamedItemPre);
}

public Action GiveNamedItemPre(int iClient, char sClassname[64], CEconItemView &Item)
{
    if(StrEqual(sClassname, "weapon_m4a1"))
    {
        sClassname = "weapon_m4a1_silencer";
        Item = view_as<CEconItemView>(0); //без этого все равно будет weapon_m4a1 при покупке через меню
        return Plugin_Changed;
    }
    return Plugin_Continue;
}
 

xek

Рыба клоун
Сообщения
1,653
Реакции
637
PHP:
#pragma semicolon 1

#include <PTaH>

public void OnPluginStart()
{
    PTaH(PTaH_GiveNamedItemPre, Hook, GiveNamedItemPre);
}

public Action GiveNamedItemPre(int iClient, char sClassname[64], CEconItemView &Item)
{
    if(StrEqual(sClassname, "weapon_m4a1"))
    {
        sClassname = "weapon_m4a1_silencer";
        Item = view_as<CEconItemView>(0); //без этого все равно будет weapon_m4a1 при покупке через меню
        return Plugin_Changed;
    }
    return Plugin_Continue;
}
В этот раз покупает 2 штуки m4a1-s через бинд и одну через магазин
 
Сверху Снизу