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

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

Molodoi

Пользователь
Регистрация
14 Июн 2017
Сообщения
165
Симпатии
17
Пол
Мужской
#1
Стим игрокам даётся каждый раунд гранаты броня и щипцы. Проблема в том что у всех стим игроков играющих за терористов на спине бомбы тоесть плент короче нужно убрать этот дефект и оставить щипцы у команды конторов помогите кто понимает вот сам плагин
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
Сообщения
117
Симпатии
29
Пол
Мужской
#2
бррр... сборная солянка 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
Сообщения
165
Симпатии
17
Пол
Мужской
#3
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
Сообщения
117
Симпатии
29
Пол
Мужской
#4
Molodoi, вроде понял... счас в очередь xD ато обещаний раздам и потеряюсь... Wacko2
 

MakapoH.

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

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

shram47

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

ghost

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

Baha12345

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

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