Правила форума Гаранты форума
Размещение рекламы AMX-X компилятор

Здравствуйте, гость Вход | Регистрация

Наши новости:

14-дек
24-апр
10-апр
11-апр

Выдача гранаты

Статус пользователя Fred Perry
сообщение 5.4.2014, 20:34
Сообщение #1


Иконка группы

Стаж: 16 лет

Сообщений: 6594
Благодарностей: 2370
Полезность: 813

Всем здарова.

Суть плагина - должен выдавать пак гранат.

Проблема, должно вроде же выдавать 2 флеши, но не выдает. В чем проблема или я что-то не так делаю
Кусок когда с выдачей
Код
            if(user_has_weapon(player, CSW_FLASHBANG))
            {
                static frost
                frost = cs_get_user_bpammo(player, CSW_FLASHBANG)
                cs_set_user_bpammo(player, CSW_FLASHBANG, frost + 2)
            }

Исходник
Код
#include <amxmodx>
#include <fakemeta>
#include <cstrike>
#include <zombieplague>

#define PLUGIN "[ZP] Pack Of Granades"
#define VERSION "1.0"
#define AUTHOR "unnamed"

new g_enabled
new g_pack_grenades
new const g_cost = 5

public plugin_init()
{
    register_plugin(PLUGIN, VERSION, AUTHOR)
    g_enabled = register_cvar("zp_pack_grenades", "1")
    g_pack_grenades = zp_register_extra_item("packet", g_cost, ZP_TEAM_HUMAN)
}

public zp_extra_item_selected(player, itemid)
{
    if (itemid == g_pack_grenades)
    {
        if (get_pcvar_num(g_enabled)) {
            if(user_has_weapon(player, CSW_HEGRENADE))
            {
                static napalm
                napalm = cs_get_user_bpammo(player, CSW_HEGRENADE)
                cs_set_user_bpammo(player, CSW_HEGRENADE, napalm + 1)
            }
            else
            {
                fm_give_item(player, "weapon_hegrenade")
            }
            
            if(user_has_weapon(player, CSW_FLASHBANG))
            {
                static frost
                frost = cs_get_user_bpammo(player, CSW_FLASHBANG)
                cs_set_user_bpammo(player, CSW_FLASHBANG, frost + 2)
            }
            else
            {
                fm_give_item(player, "weapon_flashbang")
            }
            
            if(user_has_weapon(player, CSW_SMOKEGRENADE))
            {
                static flare
                flare = cs_get_user_bpammo(player, CSW_SMOKEGRENADE)
                cs_set_user_bpammo(player, CSW_SMOKEGRENADE, flare + 1)
            }
            else
            {
                fm_give_item(player, "weapon_smokegrenade")
            }
            

        }
        else
        {
            static ammopacks
            ammopacks = zp_get_user_ammo_packs(player)
            zp_set_user_ammo_packs(player, ammopacks + g_cost)
        }
    }
}

stock fm_give_item(id, const item[])
{
    static ent
    ent = engfunc(EngFunc_CreateNamedEntity, engfunc(EngFunc_AllocString, item))
    if (!pev_valid(ent)) return;
    
    static Float:originF[3]
    pev(id, pev_origin, originF)
    set_pev(ent, pev_origin, originF)
    set_pev(ent, pev_spawnflags, pev(ent, pev_spawnflags) | SF_NORESPAWN)
    dllfunc(DLLFunc_Spawn, ent)
    
    static save
    save = pev(ent, pev_solid)
    dllfunc(DLLFunc_Touch, ent, id)
    if (pev(ent, pev_solid) != save)
        return;
    
    engfunc(EngFunc_RemoveEntity, ent)
}



You become responsible, forever, for what you have tamed
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   Цитировать сообщение
Статус пользователя s0h
сообщение 5.4.2014, 20:38
Сообщение #2


Стаж: 17 лет

Сообщений: 670
Благодарностей: 897
Полезность: 1164

Цитата(Fred Perry @ 5.4.2014, 20:34) *
Всем здарова.

Суть плагина - должен выдавать пак гранат.

Проблема, должно вроде же выдавать 2 флеши, но не выдает. В чем проблема или я что-то не так делаю
Кусок когда с выдачей
Код
            if(user_has_weapon(player, CSW_FLASHBANG))
            {
                static frost
                frost = cs_get_user_bpammo(player, CSW_FLASHBANG)
                cs_set_user_bpammo(player, CSW_FLASHBANG, frost + 2)
            }

Исходник
Код
#include <amxmodx>
#include <fakemeta>
#include <cstrike>
#include <zombieplague>

#define PLUGIN "[ZP] Pack Of Granades"
#define VERSION "1.0"
#define AUTHOR "unnamed"

new g_enabled
new g_pack_grenades
new const g_cost = 5

public plugin_init()
{
    register_plugin(PLUGIN, VERSION, AUTHOR)
    g_enabled = register_cvar("zp_pack_grenades", "1")
    g_pack_grenades = zp_register_extra_item("packet", g_cost, ZP_TEAM_HUMAN)
}

public zp_extra_item_selected(player, itemid)
{
    if (itemid == g_pack_grenades)
    {
        if (get_pcvar_num(g_enabled)) {
            if(user_has_weapon(player, CSW_HEGRENADE))
            {
                static napalm
                napalm = cs_get_user_bpammo(player, CSW_HEGRENADE)
                cs_set_user_bpammo(player, CSW_HEGRENADE, napalm + 1)
            }
            else
            {
                fm_give_item(player, "weapon_hegrenade")
            }
            
            if(user_has_weapon(player, CSW_FLASHBANG))
            {
                static frost
                frost = cs_get_user_bpammo(player, CSW_FLASHBANG)
                cs_set_user_bpammo(player, CSW_FLASHBANG, frost + 2)
            }
            else
            {
                fm_give_item(player, "weapon_flashbang")
            }
            
            if(user_has_weapon(player, CSW_SMOKEGRENADE))
            {
                static flare
                flare = cs_get_user_bpammo(player, CSW_SMOKEGRENADE)
                cs_set_user_bpammo(player, CSW_SMOKEGRENADE, flare + 1)
            }
            else
            {
                fm_give_item(player, "weapon_smokegrenade")
            }
            

        }
        else
        {
            static ammopacks
            ammopacks = zp_get_user_ammo_packs(player)
            zp_set_user_ammo_packs(player, ammopacks + g_cost)
        }
    }
}

stock fm_give_item(id, const item[])
{
    static ent
    ent = engfunc(EngFunc_CreateNamedEntity, engfunc(EngFunc_AllocString, item))
    if (!pev_valid(ent)) return;
    
    static Float:originF[3]
    pev(id, pev_origin, originF)
    set_pev(ent, pev_origin, originF)
    set_pev(ent, pev_spawnflags, pev(ent, pev_spawnflags) | SF_NORESPAWN)
    dllfunc(DLLFunc_Spawn, ent)
    
    static save
    save = pev(ent, pev_solid)
    dllfunc(DLLFunc_Touch, ent, id)
    if (pev(ent, pev_solid) != save)
        return;
    
    engfunc(EngFunc_RemoveEntity, ent)
}

Должно сразу выдавать 2 флеши? или если есть флеша увеличивать значение на 1?


А пока проверь вот так вот просто,
Код
  else
            {
                fm_give_item(player, "weapon_flashbang")
            }
==========>
  else
            {
                fm_give_item(player, "weapon_flashbang")
                fm_give_item(player, "weapon_flashbang")
            }


По моему ограничение в самом ЗП есть на гранаты, сейчас гляну.

Отредактировал: s0h, - 5.4.2014, 20:39
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
Поблагодарили 1 раз
   + Цитировать сообщение
Статус пользователя Fred Perry
сообщение 5.4.2014, 20:46
Сообщение #3


Иконка группы

Стаж: 16 лет

Сообщений: 6594
Благодарностей: 2370
Полезность: 813

Ну должно +2 давать. Хотя если у человека есть флеш, то врятли он купит еще. Сейчас гляну что и как.


You become responsible, forever, for what you have tamed
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя csnet
сообщение 5.4.2014, 21:06
Сообщение #4
Стаж: 12 лет

Сообщений: 4808
Благодарностей: 3849
Полезность: 690

give_item(id,"weapon_flashbang")
cs_set_user_bpammo(id, CSW_FLASHBANG, 2)


go v cs:go
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
Поблагодарили 1 раз
   + Цитировать сообщение
Статус пользователя Fred Perry
сообщение 9.4.2014, 21:51
Сообщение #5


Иконка группы

Стаж: 16 лет

Сообщений: 6594
Благодарностей: 2370
Полезность: 813

Цитата(csnet @ 5.4.2014, 21:06) *
give_item(id,"weapon_flashbang")
cs_set_user_bpammo(id, CSW_FLASHBANG, 2)

Спасибо. Вот себе переписал.

Теперь вопрос, можно ли сделать чтобы было больше 1 НЕ, 2 флеш и 1 дыма?

А то ограничение стоит.

Вот плагин мой:
Исходник
Код
#include <amxmodx>
#include <amxmisc>
#include <fun>
#include <zombieplague>

#define PLUGIN "[ZP] Pack Of Granades"
#define VERSION "1.0"
#define AUTHOR "CFG_unknow"

#define COST_PACK 5

new g_pack_grenades

public plugin_init()
{
    register_plugin(PLUGIN, VERSION, AUTHOR)
    g_pack_grenades = zp_register_extra_item("Комплект гранат", COST_PACK, ZP_TEAM_HUMAN)
}

public zp_extra_item_selected(id, itemid)
{
    if (itemid == g_pack_grenades)
    {
        if(zp_get_user_ammo_packs(id) < COST_PACK)
        {
            client_printcolor(id, "!g[ZP]!y Вам нужно ещё !g%d Аммо-Пака(ов) !yчтобы купить гранаты!", COST_PACK - zp_get_user_ammo_packs(id))
            return PLUGIN_HANDLED
        }
        GivePackGranade(id)
    }
    return PLUGIN_CONTINUE
}

public GivePackGranade(id)
{
    give_item(id,"weapon_smokegrenade")
    give_item(id,"weapon_hegrenade")
    give_item(id,"weapon_flashbang")
    give_item(id,"weapon_flashbang")
    client_printcolor(id, "!g[ZP]!y Вы купили !g1 огненную!y, !g2 ледяных!y и !g1 световую!y гранаты!")
    
    return PLUGIN_CONTINUE
}

stock client_printcolor(const id, const input[], any:...)
{
    static msg[191]
    vformat(msg, charsmax(msg), input, 3)

    replace_all(msg, charsmax(msg), "!g", "^4") // Green Color
    replace_all(msg, charsmax(msg), "!y", "^1") // Default Color
    replace_all(msg, charsmax(msg), "!t", "^3") // Team Color

    new count = 1, players[32]

    if(id) players[0] = id; else get_players(players, count, "ch")
    {
        for(new i = 0; i < count; i++ )
        {
            if(is_user_connected(players[i]))
            {
                message_begin(MSG_ONE_UNRELIABLE, get_user_msgid("SayText"), _, players[i])
                write_byte(players[i])
                write_string(msg)
                message_end()
            }
        }
    }
}


You become responsible, forever, for what you have tamed
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
  Ответить в данную темуНачать новую тему
 
0 пользователей и 1 гостей читают эту тему: