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

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

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

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

bcd hudvoice timer

, Плагин отсчёта С4
Статус пользователя DeNyS91
сообщение 15.8.2012, 8:34
Сообщение #1


Стаж: 15 лет

Сообщений: 151
Благодарностей: 34
Полезность: 166

Здраствуйте. Помогите переделать плагин bcd_hudvoice_timer что б время отсчёта показывало постоянно до самого взрыва бомбы, а в оригинале щас оно показывает с 30 до 28 сек потом пропадает, после с 20 до 18 сек и потом появляется с 10 и до взырыва показывает постоянно. И сам отсчёт поднять чучуть выше по екрану что б сообщение с чата не перекрывали его (скрин расположение прилагаю). Заранее благодарен
bcd_hudvoice_timer.sma

/* ****************************** */
/* ** BCD HUD/Voice Timer v0.2 RuS ** */
/* ********** by Mawe4ka117 ********** */
/* ****************************** */

#include <amxmodx>
#include <csx>

#pragma semicolon 1

new g_Plugin[] = "Bomb Count Down HUD/Voice Timer";
new g_Version[] = "0.2 RuS";
new g_Author[] = "Mawe4ka117";

#define MAX_SECONDS 2
new g_Seconds[MAX_SECONDS] = {30, 20};

#define MAX_COUNT_SECONDS 6
new g_CountSeconds[MAX_COUNT_SECONDS] = {30, 29, 28, 20, 19, 18};

new g_bomb_timer, p_Cvar[5], g_maxplayers, g_msgid_SayText, g_HudSyncObj;

public plugin_init()
{
register_plugin(g_Plugin, g_Version, g_Author);

register_logevent("logevent_Round_Start", 2, "1=Round_Start");
register_logevent("logevent_Round_End", 2, "1=Round_End");
register_event("TextMsg", "logevent_Round_End", "a", "2&Game_w");

// %def_name% = Isminuotojo vardas...
// %sec% = C4 laikas...
// \n = Nauja eilute...
p_Cvar[0] = register_cvar("amx_bcd_info_text", "Бомба взорвётся через: %sec% сек...");
p_Cvar[1] = register_cvar("amx_bcd_def_text", "%def_name% обезвредил бомбу на %sec% секунд(е).");
p_Cvar[2] = register_cvar("amx_bcd_1st_color", "0 80 220"); // Melyna
p_Cvar[3] = register_cvar("amx_bcd_2nd_color", "200 0 0"); // Raudona
p_Cvar[4] = register_cvar("amx_bcd_3rd_color", "200 0 200"); // Rozine

g_maxplayers = get_maxplayers();
g_msgid_SayText = get_user_msgid("SayText");
g_HudSyncObj = CreateHudSyncObj();
}

public logevent_Round_Start()
{
remove_task(8038);
g_bomb_timer = 0;
}

public logevent_Round_End()
{
remove_task(8038);
set_task(0.1, "task_reset_bomb_timer");
}

public task_reset_bomb_timer()
{
g_bomb_timer = 0;
}

public bomb_planted()
{
g_bomb_timer = get_cvar_num("mp_c4timer");
set_task(1.0, "task_bomb_timer", 8038, "", 0, "b");

for (new i = 1; i <= g_maxplayers; i++)
{
if (is_user_connected(i))
{
new message[192];
format(message, charsmax(message), "^3[C4]^1 ^4Бомба установлена^1! ^3Мусора минируйте :D^1");

message_begin(MSG_ONE, g_msgid_SayText, {0,0,0}, i);
write_byte(i);
write_string(message);
message_end();
}
}
}

public task_bomb_timer()
{
g_bomb_timer--;

if (g_bomb_timer <= 0)
remove_task(8038);

else
{
new c4_msg[192], fix[8];
get_pcvar_string(p_Cvar[0], c4_msg, charsmax(c4_msg));

num_to_str(g_bomb_timer, fix, charsmax(fix));

replace(c4_msg, charsmax(c4_msg), "%sec%", fix);
replace(c4_msg, charsmax(c4_msg), "\n", "^n");

for (new i = 0; i < MAX_SECONDS; i++)
{
if (g_bomb_timer == g_Seconds[i])
{
new temp[64];
num_to_word(g_bomb_timer, temp, 63);
client_cmd(0, "spk ^"fvox/%s seconds until explosion^"", temp);
}
}

for (new i = 0; i < MAX_COUNT_SECONDS; i++)
{
if (g_bomb_timer == g_CountSeconds[i])
{
new string[192], red[8], green[8], blue[8];
get_pcvar_string(p_Cvar[2], string, charsmax(string));
parse(string, red, charsmax(red), green, charsmax(green), blue, charsmax(blue));

set_hudmessage(str_to_num(red), str_to_num(green), str_to_num(blue), -1.0, 0.82, 1, 0.0, 1.0, 0.0, 0.0, -1);
ShowSyncHudMsg(0, g_HudSyncObj, c4_msg, g_bomb_timer);
}
}

if (g_bomb_timer <= 10)
{
new string[192], red[8], green[8], blue[8];
get_pcvar_string(p_Cvar[3], string, charsmax(string));
parse(string, red, charsmax(red), green, charsmax(green), blue, charsmax(blue));

set_hudmessage(str_to_num(red), str_to_num(green), str_to_num(blue), -1.0, 0.82, 1, 0.0, 1.0, 0.0, 0.0, -1);
ShowSyncHudMsg(0, g_HudSyncObj, c4_msg, g_bomb_timer);

new temp[64];
num_to_word(g_bomb_timer, temp, 63);
client_cmd(0, "spk ^"fvox/%s^"", temp);
}
}
}

public bomb_defused(defuser)
{
remove_task(8038);

new def_msg[192], string[192], red[8], green[8], blue[8];
get_pcvar_string(p_Cvar[1], def_msg, charsmax(def_msg));
get_pcvar_string(p_Cvar[4], string, charsmax(string));
parse(string, red, charsmax(red), green, charsmax(green), blue, charsmax(blue));

new defuser_name[32], fix[8];
get_user_name(defuser, defuser_name, charsmax(defuser_name));
num_to_str(g_bomb_timer, fix, charsmax(fix));

replace(def_msg, charsmax(def_msg), "%def_name%", defuser_name);
replace(def_msg, charsmax(def_msg), "%sec%", fix);
replace(def_msg, charsmax(def_msg), "\n", "^n");

set_hudmessage(str_to_num(red), str_to_num(green), str_to_num(blue), -1.0, 0.25, 1, 0.0, 6.0, 0.0, 0.0, -1);
ShowSyncHudMsg(0, g_HudSyncObj, def_msg, defuser_name, g_bomb_timer);
}

public bomb_explode()
{
remove_task(8038);
}


Отредактировал: DeNyS91, - 15.8.2012, 8:44
Прикрепленные файлы:
Прикрепленное изображение
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   Цитировать сообщение
Статус пользователя DeNyS91
сообщение 15.8.2012, 10:06
Сообщение #2


Стаж: 15 лет

Сообщений: 151
Благодарностей: 34
Полезность: 166

С отсчётом разобрался, а вот с смещением текста выше, пока не получается

Отредактировал: DeNyS91, - 15.8.2012, 10:06
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
  Тема закрытаНачать новую тему
 
0 пользователей и 1 гостей читают эту тему: