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

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

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

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

steam bonus

Статус пользователя tyne
сообщение 14.12.2017, 2:40
Сообщение #1


Стаж: 11 лет

Сообщений: 544
Благодарностей: 137
Полезность: 91

Есть плагин

Код:
#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;
new g_RoundCount;

public plugin_init()
{
new sPref[][] = {"awp_", "aim_", "35hp", "fy_"};
new map[32]; get_mapname(map, charsmax(map));
for(new i; i < sizeof sPref; i++)
{
if(containi(map, sPref[i]) != -1)
{
pause("ad");
return;
}
}

register_plugin(PLUGIN, VERSION, AUTHOR);

RegisterHam(Ham_CS_RoundRespawn, "player", "fw_CS_RoundRespawn_Post", true);
register_logevent("Round_End", 2, "1=Round_End");
}

public Round_End(){
g_RoundCount++;
}

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) && g_RoundCount > 2)
{
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);
}


Нужно чтоб вместо денег выдавало с 3 раунда ТОЛЬКО гранаты+броню со шлемом? Нужно еще чтобы после рестарта счётчик раундов скидывался на 0
У меня получилось так

Код:
#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 // Время показа

new g_bIsConnected;
new g_bIsSteam;
new g_bProcedure;
new g_RoundCount;

public plugin_init()
{
new sPref[][] = {"awp_", "aim_", "35hp", "fy_"};
new map[32]; get_mapname(map, charsmax(map));
for(new i; i < sizeof sPref; i++)
{
if(containi(map, sPref[i]) != -1)
{
pause("ad");
return;
}
}

register_plugin(PLUGIN, VERSION, AUTHOR);

RegisterHam(Ham_CS_RoundRespawn, "player", "fw_CS_RoundRespawn_Post", true);
register_logevent("Round_End", 2, "1=Round_End");
}

public Round_End(){
g_RoundCount++;
}

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) && g_RoundCount > 3)
{
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");
fm_give_item( id, "item_assaultsuit" )
fm_give_item( id, "item_thighpack" )
ColorChat(id, RED, "^3Вы получаете бонус за ^4%s^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);
}


Правильно ли так? Если нет, то сможете помочь?=)
Сам написанное проверить пока не могу, пишу с планшета
И еще как лучше выдавать гранаты и броню? Где-то выдается fm_give_item, где-то give_item?

Отредактировал: tyne, - 14.12.2017, 2:41
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   Цитировать сообщение
Статус пользователя energydance
сообщение 14.12.2017, 3:21
Сообщение #2


Стаж: 8 лет 9 месяцев

Сообщений: 2809
Благодарностей: 737
Полезность: 212

tyne, fm_give_item используется если юзаешь fakemeta в коде


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