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

Плагин для biohazard меню оружия

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

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

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

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

Плагин для biohazard меню оружия

Сообщение Don Corleone » 07 мар 2017, 16:24

Здравствуйте, Нужна ваша помощь. Сделал вот такое меню для биохазард зомби сервера, guns оружия
Вроде правильно все сделал, но в меню не заходит(

Код: Выделить всё
#include <amxmodx>    
#include <amxmisc>
#include <cstrike>
#include <fun>

const m_LastHitGroup = 75
const KEYSMENU 
= MENU_KEY_1|MENU_KEY_2|MENU_KEY_3|MENU_KEY_4|MENU_KEY_5|MENU_KEY_6|MENU_KEY_7|MENU_KEY_8|MENU_KEY_9|MENU_KEY_0
const PRIMARY_WEAPONS_BIT_SUM 
= 
(1<<CSW_SCOUT)|(1<<CSW_XM1014)|(1<<CSW_MAC10)|(1<<CSW_AUG)|(1<<CSW_UMP45)|(1<<CSW_SG550)|(1<<CSW_GALIL)|(1<<CSW_FAMAS)|(1<<CSW_AWP)|(1<<
CSW_MP5NAVY)|(1<<CSW_M249)|(1<<CSW_M3)|(1<<CSW_M4A1)|(1<<CSW_TMP)|(1<<CSW_G3SG1)|(1<<CSW_SG552)|(1<<CSW_AK47)|(1<<CSW_P90)
const SECONDARY_WEAPONS_BIT_SUM = (1<<CSW_P228)|(1<<CSW_ELITE)|(1<<CSW_FIVESEVEN)|(1<<CSW_USP)|(1<<CSW_GLOCK18)|(1<<CSW_DEAGLE)

new g_msgSayText, g_maxplayers
new can_take
[33]

public plugin_init()
{
                                   
register_plugin
("VIP Bio", "1.0", "ill")
    
register_event
("HLTV", "on_new_round", "a", "1=0", "2=0")
register_plugin("Menu","1.0","Coolzm.net");   
register_clcmd
("guns","press_vm");
register_menu("VIP Weapon", KEYSMENU, "weapon_menu")
}
                                    
                                                                      
public on_new_round
()
{
    remove_task(1337)
    set_task(20.0, "not_take", 1337)
    
    for 
(new id = 1; id <= g_maxplayers; id++)
    {
        can_take[id] = 2
    
}
}
  

public not_take
()
{
    for (new id = 1; id <= g_maxplayers; id++)
    {
        can_take[id] = 0
    
}
}
            

public press_vm
(id)
{
    
    if
(!isVIP(id))
    {
        colored_print(id, "^x04[ ^x03ONLY FOR VIP ^x04]^x01 buy VIP account here: ^x03www.Coolzm.net")
        return PLUGIN_HANDLED
    
}
    
    show_vip_menu
(id)
    
    return PLUGIN_HANDLED
}

public press_wm(id)
{
    if(can_take[id] <= 0)
    {
        colored_print(id, "^x01[^x04Weapons^x01] ^x03Доступно на протяжении 20 секунд")
        return PLUGIN_HANDLED
    
}
        
    if
(!is_user_alive(id))
    {
        colored_print(id, "^x01[^x04VIPmenu^x01] ^x03Меню доступно только для живых игроков!")
        return PLUGIN_HANDLED
    
}
    
    weapon_menu
(id)
    
    return PLUGIN_HANDLED
}

public show_vip_menu(id)             
{
    static menu[450], len
    len 
= 0

    len 
+= formatex(menu[len], charsmax(menu) - len, "\yVIP ??????^n^n")
    
    len 
+= formatex(menu[len], charsmax(menu) - len, "\r1.\w M4A1 Carbine^n")
    len += formatex(menu[len], charsmax(menu) - len, "\r2.\w AK-47 Kalashnikov^n")
    len += formatex(menu[len], charsmax(menu) - len, "\r3.\w AWP Magnum^n")
    len += formatex(menu[len], charsmax(menu) - len, "\r4.\w SG552 Snipers^n")
    
    len 
+= formatex(menu[len], charsmax(menu) - len, "^n^n\r0.\w ?????")
    
    show_menu
(id, KEYSMENU, menu, -1, "VIP Weapon")
}

public weapon_menu(id, key)
{
    switch (key)
    {
        case 0:
        {
            if(can_take[id] <= 0)
            {
                colored_print(id, "^x01[^x04Weapons^x01] ^x03Доступно на протяжении 20 секунд")
                return PLUGIN_HANDLED
            
}
            drop_weapons(id, 1)
            give_item(id,"weapon_m4a1") 
            cs_set_user_bpammo
(id, CSW_M4A1, 90)
            can_take[id]--
        }    
        case 1
:
        {
            if(can_take[id] <= 0)
            {
                colored_print(id, "^x01[^x04Weapons^x01] ^x03Доступно на протяжении 20 секунд")
                return PLUGIN_HANDLED
            
}
            drop_weapons(id, 1)
            give_item(id,"weapon_ak47") 
            cs_set_user_bpammo
(id, CSW_AK47, 90)
            can_take[id]--
        }    
        case 2
:
        {
            if(can_take[id] <= 0)
            {
                colored_print(id, "^x01[^x04Weapons^x01] ^x03Доступно на протяжении 20 секунд")
                return PLUGIN_HANDLED
            
}
            drop_weapons(id, 1)
            give_item(id,"weapon_awp") 
            cs_set_user_bpammo
(id, CSW_AWP, 30)
            can_take[id]--
        }    
        case 3
:
        {
            if(can_take[id] <= 0)
            {
                colored_print(id, "^x01[^x04Weapons^x01] ^x03Доступно на протяжении 20 секунд")
                return PLUGIN_HANDLED
            
}
            drop_weapons(id, 1)
            give_item(id,"weapon_sg550") 
            can_take
[id]--
        }
        case 4:
        {
            if(can_take[id] <= 0)
            {
                colored_print(id, "^x01[^x04Weapons^x01] ^x03Доступно на протяжении 20 секунд")
                return PLUGIN_HANDLED
            
}
            drop_weapons(id, 1)
            give_item(id,"weapon_m249") 
            can_take
[id]--
        }
    }             
    return PLUGIN_HANDLED
}

public isVIP(id)
{
    return get_user_flags(id) & ADMIN_RESERVATION
}

stock drop_weapons(id, dropwhat)
{
     static weapons[32], num, i, weaponid
     num 
= 0
     get_user_weapons
(id, weapons, num)
     
     for 
(= 0; i < num; i++)
     {
          weaponid = weapons[i]
          
          if 
((dropwhat == 1 && ((1<<weaponid) & PRIMARY_WEAPONS_BIT_SUM)) || (dropwhat == 2 && ((1<<weaponid) & SECONDARY_WEAPONS_BIT_SUM)))
          {
               static wname[32]
               get_weaponname(weaponid, wname, sizeof wname - 1)
               engclient_cmd(id, "drop", wname)
          }
     }
}

stock colored_print( target, const message[],  any:... )
{
    static buffer[ 512 ]

    if( !target )                             
    
{
        static player
        for
( player = 1; player <= g_maxplayers; player++ )
        {
            if ( !is_user_connected( player ) )
            continue;

            vformat( buffer, charsmax( buffer ), message, 3 )

            message_begin( MSG_ONE_UNRELIABLE, g_msgSayText, _, player )
            write_byte( player )
            write_string( buffer )
            message_end()
        }
    }

    else
    
{
        vformat( buffer, charsmax( buffer ), message, 3 )

        message_begin( MSG_ONE, g_msgSayText, _, target )
        write_byte( target )
        write_string( buffer )
        message_end()
    }

Аватара пользователя
Don Corleone
 
Сообщения: 79
Зарегистрирован: 23 окт 2016, 16:13
Благодарил (а): 5 раз.
Поблагодарили: 0 раз.
Опыт программирования: Около 3 месяцев
Языки программирования: Pawn
SourcePawn
C++
Php
Ruby
Python
C#

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

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

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