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

Помогите исправить ошибку в плагине

Все вопросы по скриптингу для AMXX, помощь в редактировании плагинов.

Модераторы: Subb98, liFe iS GoOD

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

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

Правила при создании новой темы:
1. При вставке кода плагина необходимо использовать тег [code=php].
2. Любые изображения должны быть загружены, как вложения к вашему сообщению.
3. При описании проблемы или запросе на помощь в редактировании плагина обязательно выкладывайте исходник sma плагина.

Помогите исправить ошибку в плагине

Сообщение funny-strike » 21 авг 2010, 21:38

Почему то этот плагин не работает,а именно не открывается меню..Помогите пожалуста исправить ошибку.Буду неимоверно счаслив! :-[
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Аватара пользователя
funny-strike
 
Сообщения: 120
Зарегистрирован: 28 июл 2010, 22:33
Откуда: Уфа
Благодарил (а): 21 раз.
Поблагодарили: 4 раз.
Опыт программирования: Около 3 месяцев
Языки программирования: Counter-Strike 1.6

Re: Помогите исправить ошибку в плагине

Сообщение funny-strike » 21 авг 2010, 23:14

>:o Всеравно не работает :dash: что там еще может быть не так,не могу понять.=_=Ладно завтра подумаю.Спасибо что помогал!)
Аватара пользователя
funny-strike
 
Сообщения: 120
Зарегистрирован: 28 июл 2010, 22:33
Откуда: Уфа
Благодарил (а): 21 раз.
Поблагодарили: 4 раз.
Опыт программирования: Около 3 месяцев
Языки программирования: Counter-Strike 1.6

Re: Помогите исправить ошибку в плагине

Сообщение EvilCoder » 21 авг 2010, 23:30

Так должно работать, пробуй:
Код: Выделить всё
#include <amxmodx>
#include <amxmisc>
#include <cstrike>
#include <fun>
#include <hamsandwich>
#include <fakemeta>
 
#define VERSION "4.0"
#define IsPlayer(%1) ( 1 <= %1 <= g_iMaxPlayers )
#define MAX_PLAYERS 32
#define Ham_Player_ResetMaxSpeed Ham_Item_PreFrame
 
new g_iMaxPlayers
 
new const g_ModelSuperKnife[] = "models/superknife.mdl"
 
new bool:g_HasSuperKnife[MAX_PLAYERS+1]
new bool:g_HasSpeed[MAX_PLAYERS+1]
new bool:g_HasGravityT[MAX_PLAYERS+1]
new bool:g_HasGravityCt[MAX_PLAYERS+1]
 
enum _:ItemsT {
    Item_SuperKnife_T = 1,
    Item_Gravity_T,
    Item_Speed
}

enum _:ItemsCT {
    Item_SuperKnife_Ct,
    Item_Gravity_Ct,
    Item_M249,
    Item_G3SG1,
    Item_He,
    Item_Flash,
    Item_Smoke
}

new g_pCvarTCost[ItemsT], g_pCvarCTCost[ItemsCT]
new g_pCvarQuantityGravityT, g_pCvarQuantityGravityCt
 
public plugin_init()
{
    register_plugin("Shop", VERSION, "Fr33m@n")
 
    register_clcmd("say /shop", "ShowShop")
    register_clcmd("say_team /shop", "ShowShop")
 
    g_pCvarTCost[Item_SuperKnife_T] = register_cvar("shopbb_cost_superknife_t", "10000")
    g_pCvarTCost[Item_Gravity_T] = register_cvar("shopbb_cost_gravity_t", "12000")
    g_pCvarTCost[Item_Speed] = register_cvar("shopbb_cost_speed", "6000")
    g_pCvarCTCost[Item_SuperKnife_Ct] = register_cvar("shopbb_cost_superknife_ct", "10000")
    g_pCvarCTCost[Item_Gravity_Ct] = register_cvar("shopbb_cost_gravity_ct", "12000")
    g_pCvarCTCost[Item_M249] = register_cvar("shopbb_cost_m249", "7000")
    g_pCvarCTCost[Item_G3SG1] = register_cvar("shopbb_cost_g3sg1", "14000")
    g_pCvarCTCost[Item_He] = register_cvar("shopbb_cost_he", "5000")
    g_pCvarCTCost[Item_Flash] = register_cvar("shopbb_cost_flash", "2000")
    g_pCvarCTCost[Item_Smoke] = register_cvar("shopbb_cost_smoke", "2000")
 
    g_pCvarQuantityGravityT = register_cvar("shopbb_quantity_gravity_t", "0.125")
    g_pCvarQuantityGravityCt = register_cvar("shopbb_quantity_gravity_ct", "0.125")
 
    RegisterHam(Ham_Spawn, "player", "Player_Spawn_Post", 1)
    RegisterHam(Ham_TakeDamage, "player", "ham_TakeDamage_Pre")
    RegisterHam(Ham_Item_Deploy, "weapon_knife", "ham_ItemDeploy_Post", 1)
    RegisterHam(Ham_Player_ResetMaxSpeed, "player", "Player_ResetMaxSpeed", 1)
 
    g_iMaxPlayers = get_maxplayers()
 
    set_cvar_num("sv_maxspeed", 999)
}
 
public plugin_precache()
{
    precache_model(g_ModelSuperKnife)
}
public Player_ResetMaxSpeed( id )
{
    if ( is_user_alive ( id ) )
    {
         if ( get_user_maxspeed(id) != -1.0 )
         {
              if ( g_HasSpeed[id] )
              {
                   set_user_maxspeed(id, 600.0)
              }
         }
    }
}
 
public client_connect( id )
{
    client_cmd(id, "cl_forwardspeed 999;cl_sidespeed 999;cl_backspeed 999")
    g_HasSuperKnife[id] = false
    g_HasSpeed[id] = false;
}
 
public ShowShop(id)
{
    if ( is_user_alive(id) )
    {
        new Text[555 char]

        if ( cs_get_user_team(id) == CS_TEAM_T )
        {
            new menu = menu_create ("\w[\rShop\w]", "ShopT")
            formatex(Text, charsmax(Text), "\wSuperKnife \y[\r%d $\y]", get_pcvar_num(g_pCvarTCost[Item_SuperKnife_T]))
            menu_additem(menu, Text, "1")
            formatex(Text, charsmax(Text), "\wLow Gravity \y[\r%d $\y]", get_pcvar_num(g_pCvarTCost[Item_Gravity_T]))
            menu_additem(menu, Text, "2")
            formatex(Text, charsmax(Text), "\wSpeed \y[\r%d $\y]", get_pcvar_num(g_pCvarTCost[Item_Speed]))
            menu_additem(menu, Text, "3")
 
            menu_setprop(menu, MPROP_EXIT, MEXIT_ALL)
 
            menu_display(id, menu)
        }
 
        else
        {
            new menu2 = menu_create ("\w[\rShop BaseBuilder CT\w]", "ShopCt")
            formatex(Text, charsmax(Text), "\wSuperKnife \y[\r%d $\y]", get_pcvar_num(g_pCvarCTCost[Item_SuperKnife_Ct]))
            menu_additem(menu2, Text, "1")
            formatex(Text, charsmax(Text), "\wLow Gravity \y[\r%d $\y]", get_pcvar_num(g_pCvarCTCost[Item_Gravity_Ct]))
            menu_additem(menu2, Text, "2")
            formatex(Text, charsmax(Text), "\wM249 \y[\r%d $\y]", get_pcvar_num(g_pCvarCTCost[Item_M249]))
            menu_additem(menu2, Text, "3")
            formatex(Text, charsmax(Text), "\wG3SG1 \y[\r%d $\y]", get_pcvar_num(g_pCvarCTCost[Item_G3SG1]))
            menu_additem(menu2, Text, "4")
            formatex(Text, charsmax(Text), "\wHE Grenade \y[\r%d $\y]", get_pcvar_num(g_pCvarCTCost[Item_He]))
            menu_additem(menu2, Text, "5")
            formatex(Text, charsmax(Text), "\wFlashbang \y[\r%d $\y]", get_pcvar_num(g_pCvarCTCost[Item_Flash]))
            menu_additem(menu2, Text, "6")
            formatex(Text, charsmax(Text), "\wSmoke \y[\r%d $\y]", get_pcvar_num(g_pCvarCTCost[Item_Smoke]))
            menu_additem(menu2, Text, "7")
 
            menu_setprop(menu2, MPROP_EXIT, MEXIT_ALL)
 
            menu_display(id, menu2)
        }
    }
    else
    {
        client_print(id, print_chat, "Tu dois etre vivant pour acheter un item !")
    }
}
 
public ShopT(id, menu, item)
{
    if (item == MENU_EXIT)
    {
        menu_destroy(menu)
        return PLUGIN_HANDLED
    }
 
    if ( !is_user_alive(id) )
    {
        client_print(id, print_chat, "Tu dois etre vivant pour acheter un item !")
        menu_destroy(menu)
        return PLUGIN_HANDLED
    }
 
    new info[3]
    new access, callback
    menu_item_getinfo(menu, item, access, info, 2, _, _, callback)
 
    new key = str_to_num(info)
    new iNewMoney = cs_get_user_money(id) - get_pcvar_num(g_pCvarTCost[key])
 
    if ( iNewMoney < 0 )
    {
        client_print(id, print_chat, "Tu n'as pas assez d'argent pour acheter cet item !")
        menu_destroy(menu)
        return PLUGIN_HANDLED
    }
    else
    {
        switch(key)
        {
            case 1:
            {
                if ( g_HasSuperKnife[id] )
                {
                    client_print(id, print_chat, "Tu as deja le SuperKnife !")
                    menu_destroy(menu)
                    return PLUGIN_HANDLED
                }
                cs_set_user_money(id, iNewMoney, 1)
                g_HasSuperKnife[id] = true;
                client_print(id, print_chat, "Tu viens d'acheter le SuperKnife !")
      menu_display(id, menu)
            }
 
            case 2:
            {
                if ( g_HasGravityT[id] )
                {
                    client_print(id, print_chat, "Tu as deja la Low Gravity !")
                    menu_destroy(menu)
                    return PLUGIN_HANDLED
                }
                cs_set_user_money(id, iNewMoney, 1)
                set_user_gravity(id, get_pcvar_float(g_pCvarQuantityGravityT) )
                client_print(id, print_chat, "Tu viens d'acheter la Low Gravity !")
                g_HasGravityT[id] = true;
      menu_display(id, menu)
            }
 
            case 3:
            {
                if ( g_HasSpeed[id] )
                {
                    client_print(id, print_chat, "Tu as deja la Super Speed !")
                    menu_destroy(menu)
                    return PLUGIN_HANDLED
                }
                cs_set_user_money(id, iNewMoney, 1)
                g_HasSpeed[id] = true;
                client_print(id, print_chat, "Tu viens d'acheter la Super Speed !")
      menu_display(id, menu)
            }
        }
    }
    menu_destroy(menu)
    return PLUGIN_HANDLED
}
 
public ShopCt(id, menu2, item)
{
    if (item == MENU_EXIT)
    {
        menu_destroy(menu2)
        return PLUGIN_HANDLED
    }
 
    if ( !is_user_alive(id) )
    {
        client_print(id, print_chat, "Tu dois etre vivant pour acheter un item !")
        menu_destroy(menu2)
        return PLUGIN_HANDLED
    }
 
    new info[3]
    new access, callback
    menu_item_getinfo(menu2, item, access, info, 2, _, _, callback)
 
    new key = str_to_num(info)
    new iNewMoney = cs_get_user_money(id) - get_pcvar_num(g_pCvarCTCost[key])
 
    if ( iNewMoney < 0 )
    {
        client_print(id, print_chat, "Tu n'as pas assez d'argent pour acheter cet item !")
        menu_destroy(menu2)
        return PLUGIN_HANDLED
    }
    else
    {
        switch(key)
        {
            case 1:
            {
                if ( g_HasSuperKnife[id] )
                {
                    client_print(id, print_chat, "Tu as deja le SuperKnife !")
                    menu_destroy(menu2)
                    return PLUGIN_HANDLED
                }
                cs_set_user_money(id, iNewMoney, 1)
                g_HasSuperKnife[id] = true;
                client_print(id, print_chat, "Tu viens d'acheter le SuperKnife !")
      menu_display(id, menu2)
            }
 
            case 2:
            {     
                if ( g_HasGravityCt[id] )
                {
                    client_print(id, print_chat, "Tu as deja la Low Gravity !")
                    menu_destroy(menu2)
                    return PLUGIN_HANDLED
                }
                cs_set_user_money(id, iNewMoney, 1)
                set_user_gravity(id, get_pcvar_float(g_pCvarQuantityGravityCt))
                client_print(id, print_chat, "Tu viens d'acheter la Low Gravity !")
                g_HasGravityCt[id] = true;
      menu_display(id, menu2)
            }
 
            case 3:
            {
                if ( user_has_weapon(id, CSW_M249) )
                {
                    client_print(id, print_chat, "Tu as deja la M249 !")
                    menu_destroy(menu2)
                    return PLUGIN_HANDLED
                }
                cs_set_user_money(id, iNewMoney, 1)
                give_item(id, "weapon_m249")
                client_print(id, print_chat, "Tu viens d'acheter la M249 !")
      menu_display(id, menu2)
            }
 
            case 4:
            {
                if ( user_has_weapon(id, CSW_G3SG1) )
                {
                    client_print(id, print_chat, "Tu as deja la G3SG1 !")
                    menu_destroy(menu2)
                    return PLUGIN_HANDLED
                }
                cs_set_user_money(id, iNewMoney, 1)
                give_item(id, "weapon_g3sg1")
                client_print(id, print_chat, "Tu viens d'acheter la G3SG1 !")
      menu_display(id, menu2)
            }
 
            case 5:
            {
                if ( user_has_weapon(id, CSW_HEGRENADE) )
                {
                    client_print(id, print_chat, "Tu as deja une Grenade !")
                    menu_destroy(menu2)
                    return PLUGIN_HANDLED
                }
                cs_set_user_money(id, iNewMoney, 1)
                give_item(id, "weapon_hegrenade")
                client_print(id, print_chat, "Tu viens d'acheter une Grenade !")
      menu_display(id, menu2)
            }
 
            case 6:
            {
                if ( cs_get_user_bpammo(id, CSW_FLASHBANG) == 2 )
                {
                    client_print(id, print_chat, "Tu as deja 2 flashbangs !")
                    menu_destroy(menu2)
                    return PLUGIN_HANDLED
                }
                cs_set_user_money(id, iNewMoney, 1)
                give_item(id, "weapon_flashbang")
                client_print(id, print_chat, "Tu viens d'acheter une Flashbang !")
      menu_display(id, menu2)
            }
 
            case 7:
            {
                if ( user_has_weapon(id, CSW_SMOKEGRENADE) )
                {
                    client_print(id, print_chat, "Tu as deja une Smoke !")
                    menu_destroy(menu2)
                    return PLUGIN_HANDLED
                }
                cs_set_user_money(id, iNewMoney, 1)
                give_item(id, "weapon_smokegrenade")
                client_print(id, print_chat, "Tu viens d'acheter une Smoke !")
      menu_display(id, menu2)
            }
        }
    }
    menu_destroy(menu2)
    return PLUGIN_HANDLED
}
 
public Player_Spawn_Post(id)
{
    if ( is_user_alive ( id ) )
    {
        client_print(id, print_chat, "Tape /shop dans le chat pour acheter un item !")
 
        if ( g_HasSuperKnife[id] && get_user_weapon(id) == CSW_KNIFE )
        {
            set_pev(id, pev_viewmodel2, "models/v_knife.mdl")
        }
        g_HasSuperKnife[id] = false
        g_HasSpeed[id] = false;
    }
}
 
public ham_TakeDamage_Pre(victim, inflictor, attacker, Float:damage, damage_bits)
{
    if ( IsPlayer(attacker) && g_HasSuperKnife[attacker] && is_user_alive(attacker) && inflictor == attacker && get_user_weapon(attacker) == CSW_KNIFE )
    {
        SetHamParamFloat( 4, damage * 154.0 )
    }
}
 
public ham_ItemDeploy_Post(weapon_ent)
{
    static owner
    owner = get_pdata_cbase(weapon_ent, 41, 4)
 
    if ( is_user_alive(owner) && g_HasSuperKnife[owner] )
    {
        set_pev(owner, pev_viewmodel2, g_ModelSuperKnife)
    }
}
Не забывайте, что у вас есть возможность отправлять жалобы на сообщения, присланные вам от других пользователей в ЛС.
Не пишите мне в ЛС: если вам нужна помощь на бесплатной основе. Любые вопросы на форум.
Принимаются заявки на вступление в группу Скриптеры
Аватара пользователя
EvilCoder
Администратор
 
Сообщения: 1960
Зарегистрирован: 20 апр 2010, 12:11
Благодарил (а): 44 раз.
Поблагодарили: 663 раз.
Опыт программирования: Больше трех лет
Языки программирования: Counter-Strike 1.6

Re: Помогите исправить ошибку в плагине

Сообщение funny-strike » 22 авг 2010, 14:58

Все спасибо тебе огромное)) :yahoo:
Аватара пользователя
funny-strike
 
Сообщения: 120
Зарегистрирован: 28 июл 2010, 22:33
Откуда: Уфа
Благодарил (а): 21 раз.
Поблагодарили: 4 раз.
Опыт программирования: Около 3 месяцев
Языки программирования: Counter-Strike 1.6

Пред.

Вернуться в Скриптинг

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

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