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

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

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

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

Поправить плагин бонуса за стим

orchuk
сообщение 25.2.2014, 15:47
Сообщение #1
Стаж: 13 лет

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

Всем привет есть плагин "бонус за стим" который дает гранаты стим игрокам
Нужно сделать чтобы гранаты давались не сразу а после второго раунда Т.е. в третьим.
Если игрок зашел на сервер а там например уже счет 2-1 то чтобы гранаты давались
P.s в названии плагина не должно быть слова "steam" иначе не компилиться (возможно это только у меня)
исходник
#include <amxmodx>
#include <amxmisc>
#include <hamsandwich>
#include <fun>
#include <cstrike>

#define PLUGIN "Steam_Grenade"
#define VERSION "0.1"
#define AUTHOR "Okorok"

new bool:g_bGameCommencing = false

public plugin_init()
{
register_plugin(PLUGIN, VERSION, AUTHOR)

register_logevent("EventGameCommencing", 2, "1=Game_Commencing")
RegisterHam(Ham_Spawn, "player", "HamSpawnPlayerPost", 1)
}

public EventGameCommencing()
{
g_bGameCommencing = true
}

public HamSpawnPlayerPost(id)
{
if (!g_bGameCommencing) return

if (is_user_alive(id) && is_user_steam(id))
{
give_item(id,"weapon_hegrenade")
give_item(id,"weapon_flashbang")
cs_set_user_bpammo(id, CSW_FLASHBANG, 2)
client_printc(id, "^3[ ^4STEAM ^3] ^3Бонус за Steam - ^4Гранаты.")
}
}

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
}
return false
}

stock client_printc(const id, const string[], {Float, Sql, Resul,_}:...) {

new msg[191], players[32], count = 1;
vformat(msg, sizeof msg - 1, string, 3);

replace_all(msg,190,"!g","^4");
replace_all(msg,190,"!y","^1");
replace_all(msg,190,"!t","^3");

if(id)
players[0] = id;
else
get_players(players,count,"ch");

for (new i = 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();
}
}
}
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   Цитировать сообщение
Статус пользователя filip
сообщение 25.2.2014, 19:09
Сообщение #2


Стаж: 13 лет

Сообщений: 418
Благодарностей: 332
Полезность: 779

Попробуй, но я не уверен)
Код:
#include <amxmodx>
#include <amxmisc>
#include <hamsandwich>
#include <fun>
#include <cstrike>

#define PLUGIN "Steam_Grenade"
#define VERSION "0.1"
#define AUTHOR "Okorok"

new bool:g_bGameCommencing = false
new g_round

public plugin_init()
{
register_plugin(PLUGIN, VERSION, AUTHOR)

register_logevent("EventGameCommencing", 2, "1=Game_Commencing")
RegisterHam(Ham_Spawn, "player", "HamSpawnPlayerPost", 1)
register_event("HLTV", "roundstart", "a", "1=0", "2=0")
}

public roundstart()
{
g_round++
}

public EventGameCommencing()
{
g_bGameCommencing = true
}

public HamSpawnPlayerPost(id)
{
if (!g_bGameCommencing) return

if (g_round <= 2) return

if (is_user_alive(id) && is_user_steam(id))
{
give_item(id,"weapon_hegrenade")
give_item(id,"weapon_flashbang")
cs_set_user_bpammo(id, CSW_FLASHBANG, 2)
client_printc(id, "^3[ ^4STEAM ^3] ^3Бонус за Steam - ^4Гранаты.")
}
}

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
}
return false
}

stock client_printc(const id, const string[], {Float, Sql, Resul,_}:...) {

new msg[191], players[32], count = 1;
vformat(msg, sizeof msg - 1, string, 3);

replace_all(msg,190,"!g","^4");
replace_all(msg,190,"!y","^1");
replace_all(msg,190,"!t","^3");

if(id)
players[0] = id;
else
get_players(players,count,"ch");

for (new i = 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();
}
}
}
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Esecman
сообщение 25.2.2014, 19:18
Сообщение #3
Стаж: 12 лет

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

Код:
#include <amxmodx>
#include <hamsandwich>
#include <fun>
#include <cstrike>

#define PLUGIN "Steam_Grenade"
#define VERSION "0.1"
#define AUTHOR "Okorok"

new bool:g_bGameCommencing = false

new g_Round_NUM

public plugin_init()
{
register_plugin(PLUGIN, VERSION, AUTHOR)

register_logevent("EventGameCommencing", 2, "1=Game_Commencing")
RegisterHam(Ham_Spawn, "player", "HamSpawnPlayerPost", 1)
register_event("HLTV", "RoundCount", "a", "1=0", "2=0")
}

public RoundCount(id) {
g_Round_NUM++
}

public EventGameCommencing()
{
g_bGameCommencing = true
}

public HamSpawnPlayerPost(id)
{
if (!g_bGameCommencing) return
if (g_Round_NUM <= 2) return

if (is_user_alive(id) && is_user_steam(id) && g_Round_NUM >= 3)
{
give_item(id,"weapon_hegrenade")
give_item(id,"weapon_flashbang")
cs_set_user_bpammo(id, CSW_FLASHBANG, 2)
client_printc(id, "^3[ ^4STEAM ^3] ^3Бонус за Steam - ^4Гранаты.")
}
}

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
}
return false
}

stock client_printc(const id, const string[], {Float, Sql, Resul,_}:...) {

new msg[191], players[32], count = 1;
vformat(msg, sizeof msg - 1, string, 3);

replace_all(msg,190,"!g","^4");
replace_all(msg,190,"!y","^1");
replace_all(msg,190,"!t","^3");

if(id)
players[0] = id;
else
get_players(players,count,"ch");

for (new i = 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();
}
}
}


Проверяй.

filip,
Код:
if (is_user_alive(id) && is_user_steam(id))
{
give_item(id,"weapon_hegrenade")
give_item(id,"weapon_flashbang")
cs_set_user_bpammo(id, CSW_FLASHBANG, 2)
client_printc(id, "^3[ ^4STEAM ^3] ^3Бонус за Steam - ^4Гранаты.")
}
}


В этом коде вы забыли добавить:
Код:
if(g_round >= 3) {
}
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
Поблагодарили 1 раз
   + Цитировать сообщение
Статус пользователя csnet
сообщение 25.2.2014, 19:38
Сообщение #4
Стаж: 12 лет

Сообщений: 4808
Благодарностей: 3849
Полезность: 690

отступы жесть


go v cs:go
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
Поблагодарили 1 раз
   + Цитировать сообщение
Esecman
сообщение 25.2.2014, 19:39
Сообщение #5
Стаж: 12 лет

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

Цитата(csnet @ 25.2.2014, 20:38) *
отступы жесть

отвечаю))
единственные отступы там, где я добавлял код :D
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя filip
сообщение 25.2.2014, 19:41
Сообщение #6


Стаж: 13 лет

Сообщений: 418
Благодарностей: 332
Полезность: 779

Я конечно не спорю, то тогда логично сделать еще и проверку на g_bGameCommencing = true:
Код:
if (is_user_alive(id) && is_user_steam(id) && g_round >= 3 && g_bGameCommencing = true)


А зачем? Ведь в исходном коде ее нет, а значит (ну как я думал) и проверка g_round >= 3 тоже не нужна.

Esecman, не могли бы вы объяснить для чего это условие ставить? Видимо тонкости какие-то, хочу знать.

Отступы.... наверное весело, да. Где про отступы почерпнуть можно?

Отредактировал: filip, - 25.2.2014, 19:43
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Esecman
сообщение 25.2.2014, 19:46
Сообщение #7
Стаж: 12 лет

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

Цитата(filip @ 25.2.2014, 20:41) *
Я конечно не спорю, то тогда логично сделать еще и проверку на g_bGameCommencing = true:
Код:
if (is_user_alive(id) && is_user_steam(id) && g_round >= 3 && g_bGameCommencing = true)


А зачем? Ведь в исходном коде ее нет, а значит (ну как я думал) и проверка g_round >= 3 тоже не нужна.

Esecman, не могли бы вы объяснить для чего это условие ставить? Видимо тонкости какие-то, хочу знать.

ну он же вроде, как проверяет какое количество раундов отыграно так сказать.
если больше или равно 3(как по условию ТЗ), то выполнять действия ниже и при том, что остальные
Код:
if(is_user_alive(id) && is_user_steam(id) && g_round >= 3) 

действительно.

а на счет g_bGameCommencing(событие старта раунда) не нужно ничего добавлять :|

Тем более:
Код:
register_logevent("EventGameCommencing", 2, "1=Game_Commencing")


----->

Код:
public EventGameCommencing()
{
g_bGameCommencing = true
}


Ему и так присваивается значение bool:true

Отредактировал: Esecman, - 25.2.2014, 19:49
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя filip
сообщение 25.2.2014, 19:50
Сообщение #8


Стаж: 13 лет

Сообщений: 418
Благодарностей: 332
Полезность: 779

Я правильно понимаю код?
Код:
public HamSpawnPlayerPost(id)
{
if (!g_bGameCommencing) return // если значение ложное, функция прерывается (код функции дальше не выполняется)

if (g_round <= 2) return // если значение меньше 2, код функции дальше не выполняется

if (is_user_alive(id) && is_user_steam(id)) // если удовлетворяет первым двум условиям и еще вот этим двум, выдаем грены и т.д. и т.п.
{
give_item(id,"weapon_hegrenade")
give_item(id,"weapon_flashbang")
cs_set_user_bpammo(id, CSW_FLASHBANG, 2)
client_printc(id, "^3[ ^4STEAM ^3] ^3Бонус за Steam - ^4Гранаты.")
}
}

Если да, тогда зачем проверки еще одни? Если нет, тогда как этот код "читать" нужно?

Отредактировал: filip, - 25.2.2014, 19:51
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Esecman
сообщение 25.2.2014, 19:54
Сообщение #9
Стаж: 12 лет

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

Цитата(filip @ 25.2.2014, 20:50) *
Я правильно понимаю код?
Код:
public HamSpawnPlayerPost(id)
{
if (!g_bGameCommencing) return // если значение ложное, функция прерывается (код функции дальше не выполняется)

if (g_round <= 2) return // если значение меньше 2, код функции дальше не выполняется

if (is_user_alive(id) && is_user_steam(id)) // если удовлетворяет первым двум условиям и еще вот этим двум, выдаем грены и т.д. и т.п.
{
give_item(id,"weapon_hegrenade")
give_item(id,"weapon_flashbang")
cs_set_user_bpammo(id, CSW_FLASHBANG, 2)
client_printc(id, "^3[ ^4STEAM ^3] ^3Бонус за Steam - ^4Гранаты.")
}
}

Если да, тогда зачем проверки еще одни? Если нет, тогда как его "читать" нужно?


Цитата
еще вот этим двум, выдаем грены и т.д. и т.п.

Какие этим двум?

Код:
if (is_user_alive(id) && is_user_steam(id) && g_round >= 3) // если удовлетворяет первым двум условиям и еще вот этим двум, выдаем грены и т.д. и т.п.
{
give_item(id,"weapon_hegrenade")
give_item(id,"weapon_flashbang")
cs_set_user_bpammo(id, CSW_FLASHBANG, 2)
client_printc(id, "^3[ ^4STEAM ^3] ^3Бонус за Steam - ^4Гранаты.")
}
}

- Правильно.

O-P-P-S.
Код:

if (!g_bGameCommencing)
{
return
}

Код:
if (g_round <= 2) 
{
return
}

Надо было занести под функцию... По крайней мере в C++, есть поставить таким образом return, то код дальше не выполняется.

Отредактировал: Esecman, - 25.2.2014, 19:55
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Esecman
сообщение 25.2.2014, 20:01
Сообщение #10
Стаж: 12 лет

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

Просто выдает грены после 3 раунда(форматирование норм)
Код:
#include <amxmodx>
#include <hamsandwich>
#include <fun>
#include <cstrike>

#define PLUGIN "Steam_Grenade"
#define VERSION "0.1"
#define AUTHOR "Okorok"

new bool:g_bGameCommencing = false

new g_Round_NUM

public plugin_init()
{
register_plugin(PLUGIN, VERSION, AUTHOR)

register_logevent("EventGameCommencing", 2, "1=Game_Commencing")
RegisterHam(Ham_Spawn, "player", "HamSpawnPlayerPost", 1)
register_event("HLTV", "RoundCount", "a", "1=0", "2=0")
}

public RoundCount(id) {
g_Round_NUM++
}

public EventGameCommencing()
{
g_bGameCommencing = true
}

public HamSpawnPlayerPost(id)
{
if (!g_bGameCommencing) {
return
}


if (g_Round_NUM <= 2) {
return
}

if (is_user_alive(id) && g_Round_NUM >= 3) {
give_item(id,"weapon_hegrenade")
give_item(id,"weapon_flashbang")
cs_set_user_bpammo(id, CSW_FLASHBANG, 2)
client_printc(id, "^3[ ^4BONUS ^3] ^3Бонус - ^4Гранаты.")
}
}

stock client_printc(const id, const string[], {Float, Sql, Resul,_}:...) {

new msg[191], players[32], count = 1;
vformat(msg, sizeof msg - 1, string, 3);

replace_all(msg,190,"!g","^4");
replace_all(msg,190,"!y","^1");
replace_all(msg,190,"!t","^3");

if(id)
players[0] = id;
else
get_players(players,count,"ch");

for (new i = 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();
}
}
}


форматирование уг(грены после 3 раунда для стимовцев)
Код:
#include <amxmodx>
#include <hamsandwich>
#include <fun>
#include <cstrike>

#define PLUGIN "Steam_Grenade"
#define VERSION "0.1"
#define AUTHOR "Okorok"

new bool:g_bGameCommencing = false

new g_Round_NUM

public plugin_init()
{
register_plugin(PLUGIN, VERSION, AUTHOR)

register_logevent("EventGameCommencing", 2, "1=Game_Commencing")
RegisterHam(Ham_Spawn, "player", "HamSpawnPlayerPost", 1)
register_event("HLTV", "RoundCount", "a", "1=0", "2=0")
}

public RoundCount(id) {
g_Round_NUM++
}

public EventGameCommencing()
{
g_bGameCommencing = true
}

public HamSpawnPlayerPost(id)
{
if (!g_bGameCommencing) {
return
}

if (g_Round_NUM <= 2) {
return
}

if (is_user_alive(id) && is_user_steam(id) && g_Round_NUM >= 3)
{
give_item(id,"weapon_hegrenade")
give_item(id,"weapon_flashbang")
cs_set_user_bpammo(id, CSW_FLASHBANG, 2)
client_printc(id, "^3[ ^4STEAM ^3] ^3Бонус за Steam - ^4Гранаты.")
}
}

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
}
return false
}

stock client_printc(const id, const string[], {Float, Sql, Resul,_}:...) {

new msg[191], players[32], count = 1;
vformat(msg, sizeof msg - 1, string, 3);

replace_all(msg,190,"!g","^4");
replace_all(msg,190,"!y","^1");
replace_all(msg,190,"!t","^3");

if(id)
players[0] = id;
else
get_players(players,count,"ch");

for (new i = 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();
}
}
}


P.S. Проверьте, кому не лень :)

Отредактировал: Esecman, - 25.2.2014, 20:02
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя filip
сообщение 25.2.2014, 20:03
Сообщение #11


Стаж: 13 лет

Сообщений: 418
Благодарностей: 332
Полезность: 779

если удовлетворяет первым двум условиям
Код:
(!g_bGameCommencing) return

if (g_round <= 2) return

и еще вот этим двум
Код:
if (is_user_alive(id) && is_user_steam(id))

Выдаем грены. Вот.

Вы меня запутали окончательно BooM.gif
Цитата
Надо было занести под функцию...

Почему тогда в исходном коде, данном ТС сделано именно так, без скобочек:

Кусочек кода от ТС
public HamSpawnPlayerPost(id)
{
if (!g_bGameCommencing) return


Я прошу только, не обижайтесь и не смейтесь). Я не пытаюсь спорить, объясните мне просто как правильно должно быть.
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Esecman
сообщение 25.2.2014, 20:11
Сообщение #12
Стаж: 12 лет

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

Пост #3
Все верно написано, я уже сам запутался :D
Эх ночь, так ночь :|

filip,
if (is_user_alive(id) && is_user_steam(id) && g_round >= 3) {
// source code here...
}

Нужно воспользоваться именно так :-)
Если условие удовлетворительно, то выдаем грены.
Все очень просто, Watson :-)
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя filip
сообщение 25.2.2014, 20:27
Сообщение #13


Стаж: 13 лет

Сообщений: 418
Благодарностей: 332
Полезность: 779

Я наверное не так выразился. На сколько я смог понять, алгоритм всех плагинов это по сути логика. Там все однозначно, "да" или "нет", 1 или 0 и как там еще... не важно. Третьего не дано, это важно.
Но на первое условие мы проверку не вводим (вот которое булевое), а на подсчет раундов вводим, где та самая логика?

Попытаюсь в виде кода выразить мысль
public HamSpawnPlayerPost(id)
{

if (!g_bGameCommencing) return // если значение ложное, функция прерывается (и проверки на это в условии if (is_user_alive(id) && is_user_steam(id)&& g_round => 3)) нету

if (g_round <= 2) return // сделано по аналогии с if (!g_bGameCommencing) return, но проверка в условие if (is_user_alive(id) && is_user_steam(id) && g_round => 3) добавлена

if (is_user_alive(id) && is_user_steam(id) && g_round => 3)
...

Почему мы одно условие дополнительно не проверяем, а второе проверяем? Есть какие-то нюансы о которых следует знать?

Отредактировал: filip, - 25.2.2014, 20:30
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
orchuk
сообщение 25.2.2014, 21:10
Сообщение #14
Стаж: 13 лет

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

Цитата(Esecman @ 25.2.2014, 19:18) *
Код:
#include <amxmodx>
#include <hamsandwich>
#include <fun>
#include <cstrike>

#define PLUGIN "Steam_Grenade"
#define VERSION "0.1"
#define AUTHOR "Okorok"

new bool:g_bGameCommencing = false

new g_Round_NUM

public plugin_init()
{
register_plugin(PLUGIN, VERSION, AUTHOR)

register_logevent("EventGameCommencing", 2, "1=Game_Commencing")
RegisterHam(Ham_Spawn, "player", "HamSpawnPlayerPost", 1)
register_event("HLTV", "RoundCount", "a", "1=0", "2=0")
}

public RoundCount(id) {
g_Round_NUM++
}

public EventGameCommencing()
{
g_bGameCommencing = true
}

public HamSpawnPlayerPost(id)
{
if (!g_bGameCommencing) return
if (g_Round_NUM <= 2) return

if (is_user_alive(id) && is_user_steam(id) && g_Round_NUM >= 3)
{
give_item(id,"weapon_hegrenade")
give_item(id,"weapon_flashbang")
cs_set_user_bpammo(id, CSW_FLASHBANG, 2)
client_printc(id, "^3[ ^4STEAM ^3] ^3Бонус за Steam - ^4Гранаты.")
}
}

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
}
return false
}

stock client_printc(const id, const string[], {Float, Sql, Resul,_}:...) {

new msg[191], players[32], count = 1;
vformat(msg, sizeof msg - 1, string, 3);

replace_all(msg,190,"!g","^4");
replace_all(msg,190,"!y","^1");
replace_all(msg,190,"!t","^3");

if(id)
players[0] = id;
else
get_players(players,count,"ch");

for (new i = 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();
}
}
}


Проверяй.

filip,
Код:
if (is_user_alive(id) && is_user_steam(id))
{
give_item(id,"weapon_hegrenade")
give_item(id,"weapon_flashbang")
cs_set_user_bpammo(id, CSW_FLASHBANG, 2)
client_printc(id, "^3[ ^4STEAM ^3] ^3Бонус за Steam - ^4Гранаты.")
}
}


В этом коде вы забыли добавить:
Код:
if(g_round >= 3) {
}

плагин уже сделали на amx-x.ru
только нужно сделать чтобы плагин учитывал рестарты кто может сделайте
исходник

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

#define PLUGIN "Steam_Grenade"
#define VERSION "0.1"
#define AUTHOR "Okorok"

new bool:g_bGameCommencing = false
new g_Block

public plugin_init()
{
register_plugin(PLUGIN, VERSION, AUTHOR)

register_logevent("EventGameCommencing", 2, "1=Game_Commencing")
register_logevent("round_start", 2, "1=Round_Start")
RegisterHam(Ham_Spawn, "player", "HamSpawnPlayerPost", 1)

}

public round_start()
{
g_Block++
}

public EventGameCommencing()
{
g_bGameCommencing = true
}

public HamSpawnPlayerPost(id)
{
if (!g_bGameCommencing) return

if (is_user_alive(id) && is_user_steam(id) && g_Block >= 3)
{
give_item(id,"weapon_hegrenade")
give_item(id,"weapon_flashbang")
cs_set_user_bpammo(id, CSW_FLASHBANG, 2)
client_printc(id, "^3[ ^4STEAM ^3] ^3Бонус за Steam - ^4Гранаты.")
}
}

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
}
return false
}

stock client_printc(const id, const string[], {Float, Sql, Resul,_}:...) {

new msg[191], players[32], count = 1;
vformat(msg, sizeof msg - 1, string, 3);

replace_all(msg,190,"!g","^4");
replace_all(msg,190,"!y","^1");
replace_all(msg,190,"!t","^3");

if(id)
players[0] = id;
else
get_players(players,count,"ch");

for (new i = 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();
}
}
}
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя filip
сообщение 25.2.2014, 21:23
Сообщение #15


Стаж: 13 лет

Сообщений: 418
Благодарностей: 332
Полезность: 779

Если у тебя автоматом происходит несколько рестартов после начала карты, приплюсуй их количество к цифре "3" из этой строки:
if (is_user_alive(id) && is_user_steam(id) && g_Block >= 3)
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
orchuk
сообщение 25.2.2014, 21:33
Сообщение #16
Стаж: 13 лет

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

Цитата(filip @ 25.2.2014, 21:23) *
Если у тебя автоматом происходит несколько рестартов после начала карты, приплюсуй их количество к цифре "3" из этой строки:
if (is_user_alive(id) && is_user_steam(id) && g_Block >= 3)

этот способ я сейчас и юзаю, но он не идеален((
У меня после смены карты идет 1 авто рестарт после чего в случаю дисбаланса админы могут сделать еще рестарты
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя filip
сообщение 25.2.2014, 21:35
Сообщение #17


Стаж: 13 лет

Сообщений: 418
Благодарностей: 332
Полезность: 779

Сделай три авторестарта и тогда автобаланс будет срабатывать автоматически.
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя csnet
сообщение 25.2.2014, 21:49
Сообщение #18
Стаж: 12 лет

Сообщений: 4808
Благодарностей: 3849
Полезность: 690

!g_bGameCommencing это когда первый игрок заходит а потом 2й и начинается отсчет раунда (* самой игры )
вставлять это никуда не надо

это как хухкнуть Textmsg" #Game_commencing

Отредактировал: csnet, - 25.2.2014, 21:49


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