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

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

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

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

Помогите подправить магазинчик

, Загляни, подсоби, товарищ))
Статус пользователя rxki
сообщение 19.1.2017, 15:37
Сообщение #1
Стаж: 9 лет 6 месяцев

Сообщений: 18
Благодарностей: 2
Полезность: 0

Всем доброго времени суток. Прошу помочь с плагином магазина.
В чем суть. При открытии магазина людми он выдает правильное меню, но выдает вещи не те, что надо. Там съехали кейсы, по ходу на 1 позицию. Изначально в плагине на случай, если игрок зомби был такой кусок кода:

Cкрытый текст
Код
       if(is_user_zombie(id))
{
ColorChat(id, NORMAL, "^4[ZMod] ^1Магазин доступен только для ^3людей^1!")
return PLUGIN_HANDLED;
}


Но я его подправить попытался и по аналогии вставил содержание if (cs_get_user_team(id) == CS_TEAM_T || cs_get_user_team(id) == CS_TEAM_CT)
Вышло вот что:

Код
    
      if(is_user_zombie(id))
    {    
                if(cs_get_user_money(id) < 8000)
                len += formatex(menu[len], charsmax(menu) - len, "\r1.\dЖуки \y[8000$]^n")
                else
                len += formatex(menu[len], charsmax(menu) - len, "\r1. \w Жуки \y[8000$]^n")

                len += formatex(menu[len], charsmax(menu) - len, "\r0. \yВыход^n")
                show_menu(id, keysmenu, menu, -1, "Menu 1")
    }


Ниже цепляю полный исходник плагина и скриншоты видимости магазина за людей и за зомби. PS. За зомби он должен показывать только Жуков и выход.
Мод на сервере: Biohazard
Исходник плагина
Код
#include <amxmodx>
#include <cstrike>
#include <amxmisc>
#include <fun>
#include <hamsandwich>
#include <colorchat>
#include <biohazard>


#pragma tabsize 0

new keysmenu = (1<<0)|(1<<1)|(1<<2)|(1<<3)|(1<<4)|(1<<5)|(1<<6)|(1<<7)|(1<<8)|(1<<9)

public plugin_init()
{
register_plugin("ZModSHOP", "2.0", "A$AP ROCKY")


register_concmd("say /bioshop", "bioshop")
register_concmd("say_team /bioshop", "bioshop")
register_concmd("say /shop", "bioshop")
register_concmd("say /shop", "bioshop")



        register_menu("Menu 1", keysmenu, "BIOshop")
    register_menu("Menu 2", keysmenu, "BIOshop1")
}

public bioshop(id)
{

        static menu[500], len
        new money = cs_get_user_money(id)
        len = 0

       if(is_user_death(id))
{
ColorChat(id, NORMAL, "^4[ZMod] ^1Магазин оступен только для ^3живых^1!")
return PLUGIN_HANDLED;
}
    
      if(is_user_zombie(id))
    {    
                if(cs_get_user_money(id) < 8000)
                len += formatex(menu[len], charsmax(menu) - len, "\r1.\dЖуки \y[8000$]^n")
                else
                len += formatex(menu[len], charsmax(menu) - len, "\r1. \w Жуки \y[8000$]^n")

                len += formatex(menu[len], charsmax(menu) - len, "\r0. \yВыход^n")
                show_menu(id, keysmenu, menu, -1, "Menu 1")
    }
  
        if (cs_get_user_team(id) == CS_TEAM_T || cs_get_user_team(id) == CS_TEAM_CT)
        {      

                if(cs_get_user_money(id) < 16000)
                len += formatex(menu[len], charsmax(menu) - len, "\r1.\d Броня средней прочности \y[16000$]^n")
                else
                len += formatex(menu[len], charsmax(menu) - len, "\r1. \wБроня средней прочности \y[16000$]^n")
              
                if(cs_get_user_money(id) < 22000)
                len += formatex(menu[len], charsmax(menu) - len, "\r2.\d Броня высокой \dпрочнонси \y[22000$]^n")
                else
                len += formatex(menu[len], charsmax(menu) - len, "\r2. \wБроня высокой \wпрочности \y[22000$]^n")

                if(cs_get_user_money(id) < 2500)
                len += formatex(menu[len], charsmax(menu) - len, "\r3.\d Слеповая граната \y[5000$]^n")
                else
                len += formatex(menu[len], charsmax(menu) - len, "\r3. \wСлеповая граната \y[5000$]^n")

                if(cs_get_user_money(id) < 9000)
                len += formatex(menu[len], charsmax(menu) - len, "\r4.\d Врывная граната \y[9000$]^n")
                else
                len += formatex(menu[len], charsmax(menu) - len, "\r4. \wВзрывная граната \y[9000$]^n")
              
                if(cs_get_user_money(id) < 2500)
                len += formatex(menu[len], charsmax(menu) - len, "\r5.\d Светильник \y[2500$]^n")
                else
                len += formatex(menu[len], charsmax(menu) - len, "\r5. \wСветильник \y[2500$]^n")

                if(cs_get_user_money(id) < 11000)
                len += formatex(menu[len], charsmax(menu) - len, "\r6.\d Скорострелка (КТ) \y[11000$]^n")
                else
                len += formatex(menu[len], charsmax(menu) - len, "\r6. \wСкорострелка (КТ) \y[11000$]^n")
              
                if(cs_get_user_money(id) < 12000)
                len += formatex(menu[len], charsmax(menu) - len, "\r7.\d Скорострелка (Т):  \y[12000$]^n^n^n")
                else
                len += formatex(menu[len], charsmax(menu) - len, "\r7. \wСкорострелка (Т): \y[12000$]^n^n^n")
              
    
                len += formatex(menu[len], charsmax(menu) - len, "\r0. \yВыход^n")
                show_menu(id, keysmenu, menu, -1, "Menu 2")
      
        }
        return PLUGIN_HANDLED
}


public BIOshop(id, key)
{                  

    switch(key)
    {
        case 0:
        {
                if(cs_get_user_money(id) < 8000)
                {
                ColorChat(id, NORMAL, "^4[ZMod] ^1У тебя маловато бабла!")
                return PLUGIN_HANDLED;
            }
                {
                    cs_set_user_money(id, cs_get_user_money(id) - 8000)
                         give_item(id,  "CSqueak_GiveWeapon")

                }
                {
                ColorChat(id, NORMAL, "^4[ZMod] ^1Ты купил ^3жуков^1.")
                return PLUGIN_HANDLED;
            }
        }    

        case 1:
        {
                if(cs_get_user_money(id) < 16000)
                {
                ColorChat(id, NORMAL, "^4[ZMod] ^1У тебя маловато бабла!")
                return PLUGIN_HANDLED;
            }
                {
                    cs_set_user_money(id, cs_get_user_money(id) - 16000)
                         set_user_armor(id, 100)
                }
                {
                ColorChat(id, NORMAL, "^4[ZMod] ^1Ты купил ^3броню среднего качества^1.")
                return PLUGIN_HANDLED;
            }
        }
        case 2:
        {
                if(cs_get_user_money(id) < 22000)
                {
                ColorChat(id, NORMAL, "^4[ZMod] ^1У тебя маловато бабла!")
                return PLUGIN_HANDLED;
            }
                {
                    cs_set_user_money(id, cs_get_user_money(id) - 22000)
                         set_user_armor (id, 200)

                }
                {
                ColorChat(id, NORMAL, "^4[ZMod] ^1Ты купил ^3броню высокого качества^1.")
                return PLUGIN_HANDLED;
            }
        }

        case 3:
        {
                if(cs_get_user_money(id) < 5000)
                {
                ColorChat(id, NORMAL, "^4[ZMod] ^1У тебя маловато бабла!")
                return PLUGIN_HANDLED;
            }
                {
                    cs_set_user_money(id, cs_get_user_money(id) - 5000)
                    give_item(id, "weapon_flashbang")
                }
                {
                ColorChat(id, NORMAL, "^4[ZMod] ^1Ты купил ^3слеповую гранату^1.")
                return PLUGIN_HANDLED;
            }
        }

        case 4:
        {
                if(cs_get_user_money(id) < 9000)
                                    {
                ColorChat(id, NORMAL, "^1[^4ZMod^1] У тебя маловато бабла!")
                return PLUGIN_HANDLED;
            }
                
                {
                    cs_set_user_money(id, cs_get_user_money(id) - 9000)
                    give_item(id, "weapon_hegrenade")
                }
                {
                ColorChat(id, NORMAL, "^1[^4ZMod^1] Ты купил ^3взрывную гранату^1.")
                return PLUGIN_HANDLED;
            }
            
        }
        case 5:
        {
                if(cs_get_user_money(id) < 2500)
                {
                ColorChat(id, NORMAL, "^4[ZMod] ^1У тебя маловато бабла!")
                return PLUGIN_HANDLED;
            }
                {
                    cs_set_user_money(id, cs_get_user_money(id) - 2500)
                    give_item(id, "weapon_smokegrenade")
                }
                {
                ColorChat(id, NORMAL, "^4[ZMod] ^1Ты купил ^3светильник^1.")
                return PLUGIN_HANDLED;
            }
        }

        case 6:
        {
                if(cs_get_user_money(id) < 11000)
                {
                ColorChat(id, NORMAL, "^4[ZMod] ^1У тебя маловато бабла!")
                return PLUGIN_HANDLED;
            }
                {
                    cs_set_user_money(id, cs_get_user_money(id) - 11000)
                         give_item(id,  "weapon_sg550")

                }
                {
                ColorChat(id, NORMAL, "^4[ZMod] ^1Ты купил ^3скорострелку (КТ)^1.")
                return PLUGIN_HANDLED;
            }
        }
        case 7:
        {
                if(cs_get_user_money(id) < 12000)
                {
                ColorChat(id, NORMAL, "^4[ZMod] ^1У тебя маловато бабла!")
                return PLUGIN_HANDLED;
            }
                {
                    cs_set_user_money(id, cs_get_user_money(id) - 12000)
                    give_item(id, "weapon_g3sg1")
                }
                {
                ColorChat(id, NORMAL, "^4[ZMod] ^1Ты купил ^3скорострелку (Т)^1.")
                return PLUGIN_HANDLED;
            }
        }
}
    return PLUGIN_HANDLED
}

stock is_user_death(id)
{
        return !is_user_alive(id)
}


Отредактировал: redux, - 19.1.2017, 17:05
Причина: Выдано устное предупреждение!
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   Цитировать сообщение
Статус пользователя rxki
сообщение 19.1.2017, 16:40
Сообщение #2
Стаж: 9 лет 6 месяцев

Сообщений: 18
Благодарностей: 2
Полезность: 0

Отредактировать не смог, видимо прав не хватает. Забыл прикрепить скрины, цепляю ниже



Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя rxki
сообщение 19.1.2017, 17:15
Сообщение #3
Стаж: 9 лет 6 месяцев

Сообщений: 18
Благодарностей: 2
Полезность: 0

Покупка жуков тоже не работает, деньги снимает, но жуков не дает. Я прописал выдачу жуков "CSqueak_GiveWeapon", так как это описывается в плагине с жуками, но по ходу так нельзя)
Жуки покупаются по чат-команде /snark . Может как то вписать это событие вместо give_item(id, "CSqueak_GiveWeapon") ?
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя r0no^
сообщение 19.1.2017, 18:06
Сообщение #4


Стаж: 14 лет
Город: Vilnius

Сообщений: 359
Благодарностей: 162
Полезность: 626

У зомби два меню, потому что:
Жуки и Выход - if(is_user_zombie(id))
Всё остальное - if (cs_get_user_team(id) == CS_TEAM_T || cs_get_user_team(id) == CS_TEAM_CT)

Он хоть и зомби, но он же числится в какой-то команде CS_TEAM_T или CS_TEAM_CT.


Лишь утратив всё до конца, человек обретает свободу!
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя rxki
сообщение 19.1.2017, 18:11
Сообщение #5
Стаж: 9 лет 6 месяцев

Сообщений: 18
Благодарностей: 2
Полезность: 0

r0no^, как тогда быть? как лучше прописать? и как быть со сдвинутым меню в магазине людей? там выдается все со смещением
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя rxki
сообщение 19.1.2017, 18:27
Сообщение #6
Стаж: 9 лет 6 месяцев

Сообщений: 18
Благодарностей: 2
Полезность: 0

Реализация плагина на другом сервере (но со мной там никто решением не поделится)

Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя JIuXeP
сообщение 20.1.2017, 14:25
Сообщение #7


Стаж: 12 лет

Сообщений: 338
Благодарностей: 205
Полезность: 792

rxki, проверка на хьюманов выполняется нативами ZP, а не проверкой команды...
Код:
if(is_user_zombie(id)) // если это зомби...
{
// ...
}
else // Все остальные случаи. В данном примере тоже самое, что и "if(!is_user_zombie(id))" - если это человек
{
// ...
}
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя rxki
сообщение 20.1.2017, 15:02
Сообщение #8
Стаж: 9 лет 6 месяцев

Сообщений: 18
Благодарностей: 2
Полезность: 0

JIuXeP, благодарю! Чекну, отпишусь. Подскажи, как правильно прописать выдачу этих жуков при наличии нужной суммы? По дефу они покупаются чат-командой /snark. Можно ли выдавать жуков таким образом:

Код
cs_set_user_money(id, cs_get_user_money(id) - 8000)
client_cmd(id, "say /snark")
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя rxki
сообщение 20.1.2017, 15:39
Сообщение #9
Стаж: 9 лет 6 месяцев

Сообщений: 18
Благодарностей: 2
Полезность: 0

JIuXeP, внатуре, тупонул)

все заработало) спасибо :)
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
  Ответить в данную темуНачать новую тему
 
0 пользователей и 1 гостей читают эту тему: