Помощь по переделке плагина steam_bonus

Статус
В этой теме нельзя размещать новые ответы.

Molodoi

Команда форума
Модератор
Регистрация
14 Июн 2017
Сообщения
608
Симпатии
126
Стим игрокам даётся каждый раунд гранаты броня и щипцы. Проблема в том что у всех стим игроков играющих за терористов на спине бомбы тоесть плент короче нужно убрать этот дефект и оставить щипцы у команды конторов помогите кто понимает вот сам плагин
PHP:
/*
* Обновление 28.09.2014
* v1.1 -     
    Исправлены ошибки
    Оптимизирован код
    Выдавание бонусов теперь по очереди
    Добавлено приветственное DHUD сообщение
*
* Обновление 06.03.2015
* v1.2 -
    Исправлено предупреждение при компиляции на AMXX ниже 1.8.3
    Добавлен вывод второго DHUD сообщения, чтобы помещался ник
*/

#include <amxmodx>
#include <fun>
#include <cstrike>
#include <hamsandwich>
#include <dhudmessage>

#if AMXX_VERSION_NUM < 183
    #include <colorchat>
    
    #define client_print_color    ColorChat
    #define print_team_red    RED
#endif

#pragma semicolon    1

#define PLUGIN    "Steam Bonus"
#define VERSION    "1.2"
#define AUTHOR    "Stimul"
#define PREFIX    "[Steam бонус]"

#define get_bit(%1,%2)    (%1 & (1 << (%2 & 31)))
#define set_bit(%1,%2)    (%1 |= (1 << (%2 & 31)))
#define reset_bit(%1,%2)    (%1 &= ~(1 << (%2 & 31)))

// Цвет DHUD сообщения
#define COLOR_RED    random(255)    // Количество красного цвета
#define COLOR_GREEN    random(255) // Количество зелёного цвета
#define COLOR_BLUE    random(255)    // Количество синего цвета

#define TIME    8.0    // Время показа

new g_bIsConnected;
new g_bIsSteam;
new g_bProcedure;

public plugin_init()
{
    register_plugin(PLUGIN, VERSION, AUTHOR);
    
    RegisterHam(Ham_CS_RoundRespawn, "player", "fw_CS_RoundRespawn_Post", true);
}

public client_putinserver(id)
{
    set_bit(g_bIsConnected, id);
    
    if(is_user_steam(id))
    {
        set_bit(g_bIsSteam, id);
        reset_bit(g_bProcedure, id);
        set_task(3.0, "WelcomeMessage", id);
    }
    else
        reset_bit(g_bIsSteam, id);
}

public client_disconnect(id)
    reset_bit(g_bIsConnected, id);

public WelcomeMessage(id)
{
    if(get_bit(g_bIsConnected, id))
    {
        static szName[32];
        get_user_name(id, szName, charsmax(szName));
        
        set_dhudmessage(COLOR_RED, COLOR_GREEN, COLOR_BLUE, -1.0, 0.12, 0, 0.0, TIME);
        show_dhudmessage(id, "Привет, %s!", szName);
        set_dhudmessage(COLOR_RED, COLOR_GREEN, COLOR_BLUE, -1.0, 0.15, 0, 0.0, TIME);
        show_dhudmessage(id, "У тебя Steam, поэтому каждый раунд ты будешь получать бонусы");
    }
}

public fw_CS_RoundRespawn_Post(id)
{
    if(get_bit(g_bIsConnected, id) && get_bit(g_bIsSteam, id))
    {
        if(!get_bit(g_bProcedure, id))
        {
            give_item(id, "weapon_hegrenade");
            give_item(id, "weapon_flashbang");
            cs_set_user_bpammo(id, CSW_FLASHBANG, 2);
            give_item(id, "weapon_smokegrenade");
            cs_set_user_armor(id, 100, CS_ARMOR_VESTHELM);
            cs_set_user_defuse(id,1,0,160,0,_,0);
            client_print_color(id, print_team_red, "^3%s ^1Ты получаешь бонус: ^4все гранаты и броню", PREFIX);
            reset_bit(g_bProcedure, id);
        }
        else
        {
            give_item(id, "weapon_hegrenade");
            give_item(id, "weapon_flashbang");
            cs_set_user_bpammo(id, CSW_FLASHBANG, 2);
            give_item(id, "weapon_smokegrenade");
            cs_set_user_armor(id, 100, CS_ARMOR_VESTHELM);
            cs_set_user_defuse(id,1,0,160,0,_,0);
            client_print_color(id, print_team_red, "^3%s ^1Ты получаешь бонус: ^4все гранаты и броню", PREFIX);
            reset_bit(g_bProcedure, id);
        }
    }
}

stock bool:is_user_steam(id)
{
    static dp_pointer;
    
    if(dp_pointer || (dp_pointer = get_cvar_pointer("dp_r_id_provider")))
    {
        server_cmd("dp_clientinfo %d", id);
        server_exec();
        return (get_pcvar_num(dp_pointer) == 2) ? true : false;
    }
    
    new szAuthid[34];
    get_user_authid(id, szAuthid, charsmax(szAuthid));
    
    return (containi(szAuthid, "LAN") < 0);
}
[doublepost=1498937670][/doublepost]P.S делал сам не судите строго ибо не понимаю в скриптинге :)
 

shram47

Пользователь
Регистрация
22 Июн 2017
Сообщения
132
Симпатии
34
Пол
Мужской
бррр... сборная солянка Scooby01 Проще уж напиши что ты хочешь чтобы выдавалось... ибо не вижу событий с бомбой, лучше уж написать по другому

а что это за команда этакая?
PHP:
static dp_pointer;
  
    if(dp_pointer || (dp_pointer = get_cvar_pointer("dp_r_id_provider")))
    {
        server_cmd("dp_clientinfo %d", id);
        server_exec();
        return (get_pcvar_num(dp_pointer) == 2) ? true : false;
    }
 

Molodoi

Команда форума
Модератор
Регистрация
14 Июн 2017
Сообщения
608
Симпатии
126
shram47, я чесно сам не знаю я просто повырезал и зделал вот такое кашло
[doublepost=1498938735][/doublepost]shram47, я вставил туда ету строку для выдачи щипцов и началась канитель
PHP:
cs_set_user_defuse(id,1,0,160,0,_,0);
[doublepost=1498939013][/doublepost]shram47, вот оригинал если что
PHP:
#include <amxmodx>
#include <fun>
#include <cstrike>
#include <hamsandwich>
#include <dhudmessage>
#include <colorchat>
 
#pragma semicolon   1
 
#define PLUGIN   "Steam Bonus"
#define VERSION   "1.2"
#define AUTHOR   "Stimul"
#define PREFIX   "STEAM Бонус"
 
#define get_bit(%1,%2)   (%1 & (1 << (%2 & 31)))
#define set_bit(%1,%2)   (%1 |= (1 << (%2 & 31)))
#define reset_bit(%1,%2)   (%1 &= ~(1 << (%2 & 31)))
 
// Цвет DHUD сообщения
#define COLOR_RED   random(255)   // Количество красного цвета
#define COLOR_GREEN   random(255) // Количество зелёного цвета
#define COLOR_BLUE   random(255)   // Количество синего цвета
 
#define TIME   5.0   // Время показа
 
#define NUM_MONEY   1000   // Количество денег
 
new g_bIsConnected;
new g_bIsSteam;
new g_bProcedure;
 
public plugin_init()
{
   register_plugin(PLUGIN, VERSION, AUTHOR);
    
   RegisterHam(Ham_CS_RoundRespawn, "player", "fw_CS_RoundRespawn_Post", true);
}
 
public client_putinserver(id)
{
   set_bit(g_bIsConnected, id);
    
   if(is_user_steam(id))
   {
      set_bit(g_bIsSteam, id);
      reset_bit(g_bProcedure, id);
      set_task(3.0, "WelcomeMessage", id);
   }
   else
      reset_bit(g_bIsSteam, id);
}
 
public client_disconnect(id)
   reset_bit(g_bIsConnected, id);
 
public WelcomeMessage(id)
{
   if(get_bit(g_bIsConnected, id))
   {
      static szName[32];
      get_user_name(id, szName, charsmax(szName));
      
      set_dhudmessage(COLOR_RED, COLOR_GREEN, COLOR_BLUE, -1.0, 0.3, 0, 0.0, TIME);
      show_dhudmessage(id, "Привет, %s!", szName);
      set_dhudmessage(COLOR_RED, COLOR_GREEN, COLOR_BLUE, -1.0, 0.34, 0, 0.0, TIME);
      show_dhudmessage(id, "У Вас Steam, поэтому каждый раунд Вы будете получать бонусы");
   }
}
 
public fw_CS_RoundRespawn_Post(id)
{
   if(get_bit(g_bIsConnected, id) && get_bit(g_bIsSteam, id))
   {
      if(!get_bit(g_bProcedure, id))
      {
         cs_set_user_money(id, cs_get_user_money(id) + NUM_MONEY);
         ColorChat(id, RED, "^1[^4%s^1] ^3Вы получаете бонус: ^1'%d$'", PREFIX, NUM_MONEY);
         set_bit(g_bProcedure, id);
      }
      else
      {
         give_item(id, "weapon_hegrenade");
         give_item(id, "weapon_flashbang");
         cs_set_user_bpammo(id, CSW_FLASHBANG, 2);
         give_item(id, "weapon_smokegrenade");
         ColorChat(id, RED, "^1[^4%s^1] ^3Вы получаете бонус: ^1'все гранаты'", PREFIX);
         reset_bit(g_bProcedure, id);
      }
   }
}
 
stock bool:is_user_steam(id)
{
   static dp_pointer;
    
   if(dp_pointer || (dp_pointer = get_cvar_pointer("dp_r_id_provider")))
   {
      server_cmd("dp_clientinfo %d", id);
      server_exec();
      return (get_pcvar_num(dp_pointer) == 2) ? true : false;
   }
    
   new szAuthid[34];
   get_user_authid(id, szAuthid, charsmax(szAuthid));
    
   return (containi(szAuthid, "LAN") < 0);
}
 

shram47

Пользователь
Регистрация
22 Июн 2017
Сообщения
132
Симпатии
34
Пол
Мужской
Molodoi, вроде понял... счас в очередь xD ато обещаний раздам и потеряюсь... Wacko2
 

Molodoi

Команда форума
Модератор
Регистрация
14 Июн 2017
Сообщения
608
Симпатии
126
shram47, ок я не спешу жить Biggrin
 

StockX

Скриптер
Регистрация
8 Июн 2017
Сообщения
168
Симпатии
132
Пол
Мужской
Так просто проверку на команду запилить и всё. Только на счёт бомбы ничерта не понял.

PHP:
if(cs_get_user_team(id) == CS_TEAM_CT)
    cs_set_user_defuse(id,1,0,160,0,_,0);
 

shram47

Пользователь
Регистрация
22 Июн 2017
Сообщения
132
Симпатии
34
Пол
Мужской
StockX, типо выдаёт бомбу всем тт, если не делать проверку на TEAM_CT
[doublepost=1498943655][/doublepost]Molodoi, а так вот пост выше, с проверкой на команду, добавляй
 

Molodoi

Команда форума
Модератор
Регистрация
14 Июн 2017
Сообщения
608
Симпатии
126
StockX, shram47, ага спасибо пацаны щя проверять буду
 

Phantom

Пользователь
Регистрация
8 Июн 2017
Сообщения
145
Симпатии
77
Там из-за выдачи дефузов все. Molodoi, какие новости? Тему закрывать?
[doublepost=1499158245][/doublepost]Не понимаю, что там вообще bProcedure делает и зачем он нужен. Возможно, этот плагин был урезан
 

Molodoi

Команда форума
Модератор
Регистрация
14 Июн 2017
Сообщения
608
Симпатии
126
Phantom, да закрывай спасибо.
 

Baha12345

Пользователь
Регистрация
29 Июн 2017
Сообщения
30
Симпатии
2
Пол
Мужской
бррр... сборная солянка Scooby01 Проще уж напиши что ты хочешь чтобы выдавалось... ибо не вижу событий с бомбой, лучше уж написать по другому

а что это за команда этакая?
Lite Bans
помги плиз
 
Статус
В этой теме нельзя размещать новые ответы.
Сверху Снизу