Русское сообщество по скриптингу

Как сделать выдачу с проверкой.

Все вопросы по работе и настройке AMXX и его плагинов.

Модератор: liFe iS GoOD

Правила форума
1. Запрещено материться и оскорблять других участников форума.
2. Запрещен флуд, оффтоп, дабл постинг во всех разделах форума, кроме раздела "Болтовня".
3. Запрещено взламывать сайт/форум или наносить любой вред проекту.
4. Запрещено рекламировать другие ресурсы.
5. Запрещено создавать темы без информативного названия. Название темы должно отображать ее смысл.

В данном разделе форума разрешено создавать темы, касающие только вопросов по AMX Mod X и его плагинам.

Как сделать выдачу с проверкой.

Сообщение AVID » 21 мар 2019, 10:56

Нужно сделать что бы выдавалась граната, либо дигл с 1 патроном.
А то когда подбираешь коробку повторно она даёт в дигл 7 патронов, либо +1 гранату.
Код: Выделить всё
/* Plugin generated by AMXX-Studio */

#include <amxmodx>
#include <amxmisc>
#include <engine>
#include <fakemeta>
#include <fakemeta_util>
#include <fun>
#include <hamsandwich>
#include <WPMGPrintChatColor>

#define PLUGIN "Gifts"
#define VERSION "0.7"
#define AUTHOR "Psycrow"

#define MAX_MONEY 16000
#define MAX_GIFTS_LOAD 10

#if cellbits == 32
    #define OFFSET_CSMONEY 115
#else
    #define OFFSET_CSMONEY 140
#endif

new
g_TotalGifts,                         //Кол-во загруженных подарков на карте
g_Gift_id[MAX_GIFTS_LOAD],                //id энтити подарка
g_Gift_id_valid[MAX_GIFTS_LOAD],            //id энтити подарка, который можно собрать
Float: g_orig_x[MAX_GIFTS_LOAD],            //Координата x
Float: g_orig_y[MAX_GIFTS_LOAD],            //Координата y
Float: g_orig_z[MAX_GIFTS_LOAD],            //Координата z
g_get_round_times[33],                    //Сколько раз игрок поднял подарков за раунд
g_get_game_times[33],                    //Сколько раз игрок поднял подарков за игру
g_data_ip[200][32],                     //ip адресса всех пользователей, покинувших сервер
g_dis_player_num,                    //Сколько игроков покинуло сервер
g_gift_life[MAX_GIFTS_LOAD],
g_msgMoney,
bool: g_have_speed[33],                    //Имеет ли игрок добавленную скорость
bool: g_save_cpl,                    //Изменения в расположении подарков
bool: g_massage_rate[33]                //Ограничение оповещений о попытке собрать подарок ограниченному игроку

static Float:fMax[3] = { 15.0, 15.0, 30.0 }
static Float:fMins[3] = { -15.0, -15.0, -4.0 }

static g_PresentMdl[][] = {
    "models/respectos/aidbox.mdl",
    "models/respectos/orangbox.mdl",
    "models/respectos/zidbox.mdl"
}

public plugin_precache()
{
    for(new i=0; i<sizeof(g_PresentMdl); i++)
        precache_model(g_PresentMdl[i])
}

public plugin_init()
{
    register_plugin(PLUGIN, VERSION, AUTHOR)
    
    register_cvar
("cv_gift_access","a") // Флаг доступа к меню
    register_cvar("cv_gift_money_min","1000") // Минимальная награда за собрынный подарок
    register_cvar("cv_gift_money_max","5000") // Максимальная награда за собрынный подарок
    register_cvar("cv_gift_silent_walk","0") // Добавить ли в подарки бесшумный бег
    register_cvar("cv_gift_gravitation","0") // Добавить ли в подарки гравитацию
    register_cvar("cv_gift_gravi_value","0.5") // Значение гравитации
    register_cvar("cv_gift_speed","1") // Добавить ли в подарки скорость
    register_cvar("cv_gift_speed_value","340.0") // Значение скорости
    register_cvar("cv_gift_HE","1") // Добавить ли в подарки HE гранаты
    register_cvar("cv_gift_HE_value","1") // Сколько HE гранат
    register_cvar("cv_gift_health","0") // Добавить ли в подарки здоровье
    register_cvar("cv_gift_health_value","50.0") // Значение здоровья
    register_cvar("cv_gift_timerate","35.0") // Сколько секунд до появление подарка
    register_cvar("cv_gift_get_times_round","0") // Сколько максимум можно собрать подарков за раундов. 0 - снимает ограничение
    register_cvar("cv_gift_get_times_game","0") // Сколько максимум можно собрать подарков за игру (карту). 0 - снимает ограничение
    register_cvar("cv_gift_lifes","0") // Сколько раз может появиться подарок в одном и том же месте (0 - неограниченно, 1 - после сбора больше не появляеться...)
    
    register_clcmd
( "say /gift", "Gift_menu" )
    register_clcmd( "say_team /gift", "Gift_menu" )
    register_clcmd( "say /gifts", "Gift_menu" )
    register_clcmd( "say_team /gifts", "Gift_menu" )
    register_event("CurWeapon", "CurWeapon", "be","1=1")
    register_forward(FM_Touch,"fwdTouch")
    register_logevent("NewRound", 2, "1=Round_Start")
    RegisterHam(Ham_Spawn, "player", "hook_spawn_post", 1)
    
    get_maps_cfg
()
    set_gifts()
    set_task(get_cvar_float("cv_gift_timerate"), "Create_gift", _, _, _, "b")
    
    g_msgMoney 
= get_user_msgid("Money")
}

public get_maps_cfg()
{
    new map[32]
    get_mapname(map, charsmax(map))
    formatex(map,charsmax(map),"%s.ini",map)
    
    new cfgDir
[64], i_Dir, i_File[128]
    get_configsdir(cfgDir,31)
    formatex(cfgDir,63,"%s/box",cfgDir)
    
    i_Dir 
= open_dir(cfgDir, i_File, charsmax(i_File))
    
    if 
(i_Dir)
    {
        while (next_file(i_Dir, i_File, charsmax(i_File)))
        {
            if (i_File[0] == '.')
                continue
                
            if
(equal(map, i_File))
            {
                format(i_File,128,"%s/%s",cfgDir, i_File)
                get_gifts(i_File)
            }
        }
    }
}

public set_maps_cfg()
{
    new map[32]
    get_mapname(map, charsmax(map))
    formatex(map,charsmax(map),"%s.ini",map)
    
    new cfgDir
[64], i_File[128]
    get_configsdir(cfgDir,31)
    formatex(cfgDir,63,"%s/box",cfgDir)
    
    format
(i_File,128,"%s/%s",cfgDir, map)
    
    delete_file
(i_File)
    if(g_TotalGifts != 0)
        for(new i=0; i<g_TotalGifts; i++)
        {
            new text[128], Float:fOrigin[3]
            pev(g_Gift_id[i],pev_origin,fOrigin)
            format(text,128,"^"%f^" ^"%f^" ^"%f^"",fOrigin[0], fOrigin[1], fOrigin[2])
            write_file(i_File, text, i) 
        
}
}

public get_gifts(i_File[128])
{
    
    new
    i_orig_x
[32],
    i_orig_y[32],
    i_orig_z[32],
    sfLineData[512],
    file = fopen(i_File,"rt")
    
    while
(file && !feof(file))
    {
        fgets(file, sfLineData, charsmax(sfLineData))
            
        if 
(containi(sfLineData,";") > -1)
            continue
            
        parse
(sfLineData, i_orig_x, charsmax(i_orig_x), i_orig_y, charsmax(i_orig_y), i_orig_z, charsmax(i_orig_z))
                    
        g_orig_x
[g_TotalGifts] = str_to_float(i_orig_x)
        g_orig_y[g_TotalGifts] = str_to_float(i_orig_y)
        g_orig_z[g_TotalGifts] = str_to_float(i_orig_z)
            
        g_TotalGifts
++
        
        if
(get_count_lines(i_File) == g_TotalGifts) // Чтобы не считало пустых строк
            break
        
        if
(g_TotalGifts >= MAX_GIFTS_LOAD)
        {
            server_print("[%s] Reached gifts limit", PLUGIN)
            break
        
}
    }
    
    if
(file)
        fclose(file)
    
    if
(g_TotalGifts == 1)
        server_print("[%s] Loaded one Gift", PLUGIN)
    else
        server_print
("[%s] Loaded %d Gifts", PLUGIN, g_TotalGifts)
}

public set_gifts()
{
    for(new i=0; i<g_TotalGifts; i++)
    {
        new Ent = create_entity("info_target")
        if(is_valid_ent(Ent))
        {    
            g_Gift_id
[i] = Ent
                
            engfunc
(EngFunc_SetModel, Ent, g_PresentMdl[random_num(0, charsmax(g_PresentMdl))])
            
            new Float
:fOrigin[3]
            fOrigin[0] = g_orig_x[i]
            fOrigin[1] = g_orig_y[i]
            fOrigin[2] = g_orig_z[i]
            entity_set_origin(Ent, fOrigin)
            entity_set_size(Ent,fMins, fMax)
            entity_set_int(Ent,EV_INT_solid,SOLID_TRIGGER)
            set_pev(Ent,pev_movetype, MOVETYPE_PUSHSTEP)
            set_pev(Ent, pev_gravity, 1.0)
            drop_to_floor(Ent)
            set_entity_visibility(Ent, 0)
            
        
}
    }
}

public client_putinserver(id)
{
    if(get_cvar_num("cv_gift_get_times_game"))
    {
        new player_ip[32]
        get_user_ip(id, player_ip, 31)
        
        for
(new i;i<g_dis_player_num;i++)
        {
            if(equal(player_ip, g_data_ip[i]))
                return
        
}
        g_get_game_times[id] = 0
    
}
}

public client_disconnect(id)
{
    if(get_cvar_num("cv_gift_get_times_game") && g_dis_player_num<200)
    {
        get_user_ip(id, g_data_ip[g_dis_player_num], 31) 
        g_dis_player_num
++
    }
}

public hook_spawn_post(id)
{
    if(get_cvar_num("cv_gift_silent_walk"))
        set_user_footsteps(id,0)
    
    if
(get_cvar_num("cv_gift_speed"))
        g_have_speed[id] = false
}

public CurWeapon(id)
{
    if(get_cvar_num("cv_gift_speed") && g_have_speed[id])
        set_user_maxspeed(id, get_cvar_float("cv_gift_speed_value"))
}

public NewRound()
{
    if(get_cvar_num("cv_gift_get_times_round"))
        for(new id=1;id<33;id++)
            g_get_round_times[id] = 0    
            
    if
(get_cvar_num("cv_gift_lifes"))
        for(new i=0; i<MAX_GIFTS_LOAD; i++)
            g_gift_life[i] = get_cvar_num("cv_gift_lifes")
        
}

public fwdTouch(ent, id)
{
    if(!is_user_alive(id) || !is_user_connected(id))
        return
    
    if
(!is_valid_ent(ent))
        return
 
    for
(new i=0; i<g_TotalGifts; i++)
    {
        if(ent == g_Gift_id_valid[i])    
        
{    
            if
(get_cvar_num("cv_gift_get_times_round") && g_get_round_times[id] >= get_cvar_num("cv_gift_get_times_round"))
            {
                if(!g_massage_rate[id])
                {
                    PrintChatColor(id, PRINT_COLOR_PLAYERTEAM, "!g[%s] !tР’С‹ РїСЂРёРІС‹СЃРёР»Рё Р»РёРјРёС‚ СЃР±РѕСЂР° РїРѕРґР°СЂРєРѕРІ Р·Р° СЂР°СѓРЅРґ", PLUGIN)
                    g_massage_rate[id] = true
                    set_task
(3.0,"reset_massage_rate",id)
                }
                return
            
}
            
            if
(get_cvar_num("cv_gift_get_times_game") && g_get_game_times[id] >= get_cvar_num("cv_gift_get_times_game"))
            {
                if(!g_massage_rate[id])
                {
                    PrintChatColor(id, PRINT_COLOR_PLAYERTEAM, "!g[%s] !tР’С‹ РїСЂРёРІС‹СЃРёР»Рё Р»РёРјРёС‚ СЃР±РѕСЂР° РїРѕРґР°СЂРєРѕРІ Р·Р° РёРіСЂСѓ", PLUGIN) 
                    g_massage_rate
[id] = true
                    set_task
(3.0,"reset_massage_rate",id)
                }
                return
            
}
            
            g_Gift_id_valid
[i] = 0
            engfunc
(EngFunc_SetModel, g_Gift_id[i], g_PresentMdl[random_num(0, charsmax(g_PresentMdl))])
            hide_gift(g_Gift_id[i])
            give_gift(id)
            
            if
(get_cvar_num("cv_gift_get_times_game"))
                g_get_game_times[id]++
            if(get_cvar_num("cv_gift_get_times_round"))
                g_get_round_times[id]++
            if(get_cvar_num("cv_gift_lifes"))    
                g_gift_life
[i]--
        }
    }
}

public Create_gift()
{
    if(g_TotalGifts <= 0)
        return PLUGIN_CONTINUE
        
    new valid_gifts_sum 
= 0
    for
(new i=0; i<g_TotalGifts; i++)
    {
        if(g_Gift_id_valid[i] == g_Gift_id[i] || (!g_gift_life[i] && get_cvar_num("cv_gift_lifes")))
            valid_gifts_sum++    
    
}
    
    if
(valid_gifts_sum == g_TotalGifts)
        return PLUGIN_CONTINUE
    
    new bool
: check = false
    while
(check == false)
    {
        new id = random_num(0,g_TotalGifts-1)
        if(g_Gift_id_valid[id] != g_Gift_id[id])
        {
            g_Gift_id_valid[id] = g_Gift_id[id]
            unhide_gift(g_Gift_id[id])
            check = true
        
}
    }
    
    return PLUGIN_CONTINUE
}

public hide_gift(Ent)
{
    set_entity_visibility(Ent, 0)
    set_rendering(Ent,  kRenderFxGlowShell, random_num(0,255), random_num(0,255), random_num(0,255), kRenderNormal, 15)
}

public unhide_gift(Ent)
{
    set_entity_visibility(Ent, 1)
    set_rendering(Ent,  kRenderFxGlowShell, random_num(0,255), random_num(0,255), random_num(0,255), kRenderNormal, 15)
}

public hide_gifts()
{
    for(new i=0; i<g_TotalGifts; i++)
    {
        if(g_Gift_id_valid[i] != g_Gift_id[i])
        {
            set_entity_visibility(g_Gift_id[i], 0)
            set_rendering(g_Gift_id[i],  kRenderFxGlowShell, random_num(0,255), random_num(0,255), random_num(0,255), kRenderNormal, 15)
        }
    }
}

public unhide_gifts()
{
    for(new i=0; i<g_TotalGifts; i++)
    {
        if(g_Gift_id_valid[i] != g_Gift_id[i])
        {
            set_entity_visibility(g_Gift_id[i], 1)
            set_rendering(g_Gift_id[i],kRenderFxGlowShell,0,0,0,kRenderTransAlpha,150)
        }
    }
}

public Gift_menu(id)
{
    if(!is_user_access(id))
    {
        PrintChatColor(id, PRINT_COLOR_PLAYERTEAM, "!g[%s] !tРЈ РІР°СЃ РЅРµС‚ РїСЂР°РІ РЅР° СЌС‚Сѓ С„ункцию", PLUGIN) 
        return PLUGIN_HANDLED
    
}
    
    new menu_name
[90]
    format(menu_name, 90, "\rРасстановка РїРѕРґР°СЂРєРѕРІ^n\dТекущий РїРѕРґР°СЂРѕРє: %d/%d", g_TotalGifts+1, MAX_GIFTS_LOAD+1)

    new i_menu = menu_create(menu_name, "menu_handler")
    
    if
(g_TotalGifts == MAX_GIFTS_LOAD)
        menu_additem(i_menu, "\dУстановить РџРѕРґР°СЂРѕРє", "1", 0)
    else menu_additem(i_menu, "\wУстановить РџРѕРґР°СЂРѕРє", "1", 0)
    
    if
(g_TotalGifts == 0)
        menu_additem(i_menu, "\dУдалить РїСЂРµРґС‹РґСѓС‰РёР№ РџРѕРґР°СЂРѕРє", "2", 0)
    else menu_additem(i_menu, "\wУдалить РїСЂРµРґС‹РґСѓС‰РёР№ РџРѕРґР°СЂРѕРє", "2", 0)
    
    if
(g_TotalGifts == 0)
        menu_additem(i_menu, "\dУдалить РІСЃРµ РџРѕРґР°СЂРєРё", "3", 0)
    else menu_additem(i_menu, "\wУдалить РІСЃРµ РџРѕРґР°СЂРєРё", "3", 0)
    
    if
(!g_save_cpl)
        menu_additem(i_menu, "\dСохранить РёР·РјРµРЅРµРЅРёСЏ", "4", 0)
    else menu_additem(i_menu, "\wСохранить РёР·РјРµРЅРµРЅРёСЏ", "4", 0)

    menu_setprop(i_menu, MPROP_EXIT, MEXIT_ALL)
    menu_setprop(i_menu, MPROP_EXITNAME, "\yВыход")
    menu_display(id, i_menu, 0)
    unhide_gifts()
        
    return PLUGIN_HANDLED
}

public menu_handler(id, menu, item)
{
    if (item == MENU_EXIT)
    {
        hide_gifts()
        menu_destroy(menu)
        return PLUGIN_HANDLED
    
}

    new s_Data[6], s_Name[64], i_Access, i_Callback
    menu_item_getinfo
(menu, item, i_Access, s_Data, charsmax(s_Data), s_Name, charsmax(s_Name), i_Callback)
    
    new i_Key 
= str_to_num(s_Data)
    
    switch
(i_Key)
    {
        case 1:
        {
            if(g_TotalGifts == MAX_GIFTS_LOAD)
            {
                PrintChatColor(id, PRINT_COLOR_PLAYERTEAM, "!g[%s] !tПревышен РјР°РєСЃРёРјСѓРј", PLUGIN) 
                Gift_menu
(id)
                return PLUGIN_HANDLED
            
}
                        
            new Ent 
= create_entity("info_target")
            if(is_valid_ent(Ent))
            {    
                PrintChatColor
(id, PRINT_COLOR_PLAYERTEAM, "!g[%s] !tПодарок СѓСЃС‚ановлен", PLUGIN) 

                g_save_cpl 
= true
                g_TotalGifts
++
                
                g_Gift_id
[g_TotalGifts-1] = Ent
                engfunc
(EngFunc_SetModel, Ent, g_PresentMdl[random_num(0, charsmax(g_PresentMdl))])
                
                new Float
:fOrigin[3]
                fm_get_aim_origin(id, fOrigin)
                
                entity_set_origin
(Ent, fOrigin)
                entity_set_size(Ent,fMins, fMax)
                entity_set_int(Ent,EV_INT_solid,SOLID_TRIGGER)
                set_pev(Ent,pev_movetype, MOVETYPE_PUSHSTEP)
                set_pev(Ent, pev_gravity, 1.0)
                drop_to_floor(Ent)
                set_rendering(Ent,kRenderFxGlowShell,0,0,0,kRenderTransAlpha,150)
            }
            Gift_menu(id)
        }
        case 2:
        {
            if(g_TotalGifts == 0)
            {
                PrintChatColor(id, PRINT_COLOR_PLAYERTEAM, "!g[%s] !tРќР° РєР°СЂС‚Рµ РЅРµС‚ РџРѕРґР°СЂРєРѕРІ", PLUGIN) 
                Gift_menu
(id)
                return PLUGIN_HANDLED
            
}
            
            PrintChatColor
(id, PRINT_COLOR_PLAYERTEAM, "!g[%s] !tПодарок СѓРґР°Р»РµРЅ", PLUGIN)
            
            g_save_cpl 
= true
            g_TotalGifts
--
            
            g_Gift_id_valid
[g_TotalGifts] = 0
            remove_entity
(g_Gift_id[g_TotalGifts])
            
                
            Gift_menu
(id)
        }
        case 3:
        {
            if(g_TotalGifts == 0)
            {
                PrintChatColor(id, PRINT_COLOR_PLAYERTEAM, "!g[%s] !tРќР° РєР°СЂС‚Рµ РЅРµС‚ РџРѕРґР°СЂРєРѕРІ", PLUGIN) 
                Gift_menu
(id)
                return PLUGIN_HANDLED
            
}
            
            g_save_cpl 
= true
            
            for
(new i=0; i<g_TotalGifts; i++)
            {
                g_Gift_id_valid[i] = 0
                remove_entity
(g_Gift_id[i])
            }
                
            PrintChatColor
(id, PRINT_COLOR_PLAYERTEAM, "!g[%s] !tБыло СѓРґР°Р»РµРЅРѕ !g%d !tПодарков", PLUGIN, g_TotalGifts)
                
            g_TotalGifts 
= 0
            
            Gift_menu
(id)
        }
        case 4:
        {
            if(!g_save_cpl)
            {
                Gift_menu(id)
                return PLUGIN_HANDLED
            
}
            
            g_save_cpl 
= false
            set_maps_cfg
()
            
            PrintChatColor
(id, PRINT_COLOR_PLAYERTEAM, "!g[%s] !tСохранено", PLUGIN)
            Gift_menu(id)
        }
    }
    return PLUGIN_HANDLED
}

public give_gift(id) //Выдает случайный бонус с подарка. Добавьте case, если хотите доавить свой.
{
    new max_random_gift = 2//Сколько видов бонусов в подарках
    switch(random_num(1,max_random_gift))
    {
                
        
        case 1
:
        {    
            if
(get_cvar_num("cv_gift_speed"))
            {
                cs_set_weapon_ammo(give_item(id, "weapon_deagle"), 1)
            }
            else give_gift(id)
        }
        
        case 2
:
        {
            if(get_cvar_num("cv_gift_HE"))
            {
                if(user_has_weapon(id, CSW_HEGRENADE))
                {
                    new countHe = cs_get_user_bpammo(id, CSW_HEGRENADE)
                    cs_set_user_bpammo(id, CSW_HEGRENADE, countHe + get_cvar_num("cv_gift_HE_value"))
                } 
                else 
                
{
                    fm_give_item(id, "weapon_hegrenade")
                    cs_set_user_bpammo(id, CSW_HEGRENADE, get_cvar_num("cv_gift_HE_value"))
                }
                
                
//PrintChatColor(id, PRINT_COLOR_PLAYERTEAM, "!g[%s] !tР’С‹ РїРѕР»СѓС‡Р°РµС‚Рµ !gкомплект РіСЂР°РЅР°С‚ (%d HE)", PLUGIN, get_cvar_num("cv_gift_HE_value"))
            }
            else give_gift(id)
        }
        
        
//case 7: тут по примерам выше
    }
}

public reset_massage_rate(id)
    g_massage_rate[id] = false

stock get_count_lines
(szFileName[])
{
    new fHandle = fopen(szFileName, "rt")
    if(!fHandle)
        return 0

    new szBuffer
[2], iLines

    while
(!feof(fHandle))
    {
        fgets(fHandle, szBuffer, 1)
        if (!szBuffer[0])
            continue
                
        iLines
++
    }

    fclose(fHandle)
    return iLines
}

stock bool: is_user_access(id)
{
    
    new flag_access
[24]
    get_cvar_string("get_cv_gift_access", flag_access, charsmax(flag_access))
    
    if
(contain(flag_access, "a") && get_user_flags(id) & ADMIN_IMMUNITY)
        return true
        
    if
(contain(flag_access, "b") && get_user_flags(id) & ADMIN_RESERVATION)
        return true
        
    if
(contain(flag_access, "c") && get_user_flags(id) & ADMIN_KICK)
        return true
        
    if
(contain(flag_access, "d") && get_user_flags(id) & ADMIN_BAN)
        return true
        
    if
(contain(flag_access, "e") && get_user_flags(id) & ADMIN_SLAY)
        return true
        
    if
(contain(flag_access, "f") && get_user_flags(id) & ADMIN_MAP)
        return true
        
    if
(contain(flag_access, "g") && get_user_flags(id) & ADMIN_CVAR)
        return true
        
    if
(contain(flag_access, "h") && get_user_flags(id) & ADMIN_CFG)
        return true
        
    if
(contain(flag_access, "i") && get_user_flags(id) & ADMIN_CHAT)
        return true
        
    if
(contain(flag_access, "j") && get_user_flags(id) & ADMIN_VOTE)
        return true
    
    if
(contain(flag_access, "k") && get_user_flags(id) & ADMIN_PASSWORD)
        return true
        
    if
(contain(flag_access, "l") && get_user_flags(id) & ADMIN_RCON)
        return true
        
    if
(contain(flag_access, "m") && get_user_flags(id) & ADMIN_LEVEL_A)
        return true
        
    if
(contain(flag_access, "n") && get_user_flags(id) & ADMIN_LEVEL_B)
        return true
        
    if
(contain(flag_access, "o") && get_user_flags(id) & ADMIN_LEVEL_C)
        return true
        
    if
(contain(flag_access, "p") && get_user_flags(id) & ADMIN_LEVEL_D)
        return true
        
    if
(contain(flag_access, "q") && get_user_flags(id) & ADMIN_LEVEL_E)
        return true
        
    if
(contain(flag_access, "r") && get_user_flags(id) & ADMIN_LEVEL_F)
        return true
        
    if
(contain(flag_access, "s") && get_user_flags(id) & ADMIN_LEVEL_G)
        return true
        
    if
(contain(flag_access, "t") && get_user_flags(id) & ADMIN_LEVEL_H)
        return true
        
    if
(contain(flag_access, "u") && get_user_flags(id) & ADMIN_MENU)
        return true
        
    if
(contain(flag_access, "y") && get_user_flags(id) & ADMIN_ADMIN)
        return true
        
    if
(contain(flag_access, "z") && get_user_flags(id) & ADMIN_USER)
        return true
        
    return false
}
 


Добавлено спустя 41 минуту 57 секунд:
Код: Выделить всё
case 3:
      {   
         if(get_cvar_num("cv_gift_speed"))
         {
            cs_set_weapon_ammo(give_item(id, "weapon_deagle"), 1)
         }
         else give_gift(id)
      }
      
      case 4:
      {
         if(get_cvar_num("cv_gift_HE"))
         {
            if(user_has_weapon(id, CSW_HEGRENADE))
            {
               new countHe = cs_get_user_bpammo(id, CSW_HEGRENADE)
               cs_set_user_bpammo(id, CSW_HEGRENADE, countHe + get_cvar_num("cv_gift_HE_value"))
            }
            else
            {
               fm_give_item(id, "weapon_hegrenade")
               cs_set_user_bpammo(id, CSW_HEGRENADE, get_cvar_num("cv_gift_HE_value"))
            }
            
            //PrintChatColor(id, PRINT_COLOR_PLAYERTEAM, "!g[%s] !tР’С‹ получаете !gкомплект гранат (%d HE)", PLUGIN, get_cvar_num("cv_gift_HE_value"))
         }
         else give_gift(id)
      }

Вот тут что то сделать нужно, хз что(
Аватара пользователя
AVID
 
Сообщения: 1
Зарегистрирован: 20 янв 2019, 15:55
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.
Опыт программирования: Около года
Языки программирования: C#, php, html, css

Re: Как сделать выдачу с проверкой.

Сообщение RSO_ » 24 окт 2019, 23:06

set_pdata_int(get_pdata_cbase(id, 373), 51, 4)
у активного оружия станет 4 патрона

cs_set_weapon_ammo(give_item(id, "weapon_deagle"), 1)
1 патрон deagle
слава великой сонтаранской империи !
Аватара пользователя
RSO_
 
Сообщения: 280
Зарегистрирован: 20 окт 2019, 21:40
Откуда: от верблюда
Благодарил (а): 45 раз.
Поблагодарили: 20 раз.
Опыт программирования: Меньше недели
Языки программирования: . . . 100 ISQ

Re: Как сделать выдачу с проверкой.

Сообщение артист666 » 06 дек 2019, 19:23

Если правильно понял.
Объединяешь 3 и 4 кейс. Проверяешь есть ли у игрока дигл и граната.
Если есть дигл, но нет гранаты - выдаёшь гранату, и наоборот.
Если есть и то и то, тогда ничего.
Если вы хотите чему-то научиться, пробуйте, задавайте вопросы.
Иначе компенсируйте потраченное время на ваши "проблемы".
Аватара пользователя
артист666
 
Сообщения: 2706
Зарегистрирован: 09 апр 2013, 17:46
Благодарил (а): 284 раз.
Поблагодарили: 639 раз.
Опыт программирования: Больше трех лет
Языки программирования: С, C++
Delphi
HTML, CSS, Java Script
Pawn


Вернуться в Вопросы по AMXX и его плагинам

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 4