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

Shop: помогите сделать проверку жив ли игрок

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

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

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

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

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

Shop: помогите сделать проверку жив ли игрок

Сообщение Ice_Angel » 19 июн 2018, 15:13

Весь Google (почти) пролистал.
При покупки оружия когда игрок мёртв деньги снимаются. Я хочу сделать если игрок мёртв чтобы деньги не снимало и писало что игрок мёртв. Вот код:

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

#define PLUGIN  "mainmenu_shop_pistols"
#define VERSION "1.0"
#define AUTHOR  "Ice_Angel"
 
new keys 
= MENU_KEY_1|MENU_KEY_2|MENU_KEY_3|MENU_KEY_9|MENU_KEY_0
 
public plugin_init
()
{
   register_plugin(PLUGIN, VERSION, AUTHOR)
   register_menu("Menu 1", keys, "func_menu")
   register_concmd("mainmenu_shop_pistols", "Server_Menu")
}

public Server_Menu(id)
{
   new name[32]
   get_user_name(id, name, 31)
   static menu[650], iLen
 
   new player_name
[32]
 
   get_user_name
(id, player_name, 31)
 
   iLen 
= 0
   iLen 
= formatex(menu[iLen], charsmax(menu) - iLen, "\yМагазин \rCSO оружий^n\yКатегория: \rпистолеты\w^n^n", player_name)
   
   iLen 
+= formatex(menu[iLen], charsmax(menu) - iLen, "\r1\w. [\rПистолет\w] Anaconda [\r850$\w]^n")
   keys |= MENU_KEY_1
   
   iLen 
+= formatex(menu[iLen], charsmax(menu) - iLen, "\r2\w. [\rПистолет\w] Dual infinity [\r860$\w]^n")
   keys |= MENU_KEY_2
   
   iLen 
+= formatex(menu[iLen], charsmax(menu) - iLen, "\r3\w. [\rПистолет\w] Infinity Black [\r675$\w]^n^n^n^n^n^n")
   keys |= MENU_KEY_3
   
   iLen 
+= formatex(menu[iLen], charsmax(menu) - iLen, "\r9\w. Назад [\rВ меню\w]^n^n")
   keys |= MENU_KEY_9
   
   iLen 
+= formatex(menu[iLen], charsmax(menu) - iLen, "\r0\w. Выход")
   keys |= MENU_KEY_0
 
   show_menu
(id, keys, menu, -1, "Menu 1")
   return PLUGIN_HANDLED
}
 
public func_menu
(id, key)
{
   switch(key)
   {
      case 0:
       {
        if(cs_get_user_money(id) >= 850) && (is_user_alive(id))
        {
            cs_set_user_money(id, cs_get_user_money(id) - 850)
            client_cmd(id, "mainmenu_shop_buy_anaconda");
            ChatColor(id, "^1[^4CSO Shop^1] ^1Вы купили пистолет ^3Anaconda^1.",0)
       }
      }
      case 1:
       {
        if(cs_get_user_money(id) >= 860)
        {
            cs_set_user_money(id, cs_get_user_money(id) - 860)
            client_cmd(id, "mainmenu_shop_buy_dual_infinity");
            ChatColor(id, "^1[^4CSO Shop^1] ^1Вы купили пистолеты ^3Dual Infinity^1",0)
        }
       }
      case 2:
       {
        if(cs_get_user_money(id) >= 675)
        {
            cs_set_user_money(id, cs_get_user_money(id) - 675)
            client_cmd(id, "mainmenu_shop_buy_infinity_silver_black");
            ChatColor(id, "^1[^4CSO Shop^1] ^1Вы купили пистолет ^3Infinity Silver Black^1",0)
        }
       }
      case 8:
       {
       client_cmd(id, "mainmenu_shop")
       }
   }
   return PLUGIN_HANDLED
}

stock ChatColor(const id, const input[], any:...) {
   new count = 1, players[32], i
   static msg
[191]
   vformat(msg, 190, input, 3)
     
   replace_all
(msg, 190, "!g", "^4") // Green Color
   replace_all(msg, 190, "!y", "^1") // Default Color
   replace_all(msg, 190, "!t", "^3") // Team Color
     
   if
(id)players[0] = id; else get_players(players, count, "ch"); {
      for(= 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()
         }
      }
   }
}
 


Когда компилирую выскакивает ошибка:

Вы должны зарегистрироваться, чтобы видеть ссылки.

Думал написать

Код: Выделить всё
if(cs_get_user_money(id) >= 850) && (is_user_alive(id))
    {
        cs_set_user_money(id, cs_get_user_money(id) - 850)
        client_cmd(id, "mainmenu_shop_buy_anaconda");
        ChatColor(id, "^1[^4CSO Shop^1] ^1Вы купили пистолет ^3Anaconda^1.",0)
       }else{
                ChatColor(id, "^1[^4CSO Shop^1] ^1Чтобы купить это вы должны быть живы^1.",0)
      }
    }


Выскакивает ещё больше ошибок.

Пожайлуста помогите.
Плагин "Menu + CSO Shop" готов на 30%.
Аватара пользователя
Ice_Angel
 
Сообщения: 17
Зарегистрирован: 25 апр 2016, 20:55
Откуда: Украина
Благодарил (а): 8 раз.
Поблагодарили: 0 раз.
Языки программирования: Pawn (Новичок)

Re: Shop: помогите сделать проверку жив ли игрок

Сообщение Ternopil62000 » 19 июн 2018, 15:40

Поставь блокировку для всего меню!

В public Server_Menu(id) В начале впиши!
{
if(!is_user_alive(id))
{
colored_print(id, "!tМертвым меню не доступно!")
return
}
«А сегодня в завтрашний день не все могут смотреть. Вернее, смотреть могут не только лишь все. Мало кто может это делать»

Виталий Кличко :-D
Аватара пользователя
Ternopil62000
 
Сообщения: 36
Зарегистрирован: 05 апр 2018, 23:25
Благодарил (а): 1 раз.
Поблагодарили: 4 раз.
Опыт программирования: Меньше месяца

Re: Shop: помогите сделать проверку жив ли игрок

Сообщение Ice_Angel » 19 июн 2018, 16:46

Большое спасибо! :)
Плагин "Menu + CSO Shop" готов на 30%.
Аватара пользователя
Ice_Angel
 
Сообщения: 17
Зарегистрирован: 25 апр 2016, 20:55
Откуда: Украина
Благодарил (а): 8 раз.
Поблагодарили: 0 раз.
Языки программирования: Pawn (Новичок)


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

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

Сейчас этот форум просматривают: Bing [Bot] и гости: 5