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

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

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

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

> Полезные ссылки

[Заказ] Voice_manager

, Редактирование плагина
staff2517
сообщение 14.12.2014, 16:23
Сообщение #1
Стаж: 12 лет

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

Здравствуйте форумчане, нужно переделать плагин голосового чата.
В плагине уже реализовано следующие:
живые СТ слышат живых СТ, Т
живые Т слышат живых Т, СТ
мертвые СТ слышат мертвых СТ, Т
мертвые Т слышат мертвых Т, СТ
И еще в плагине есть функция для того чтобы дать инфу. То-есть в момент смерти дается 5 сек для того чтобы сказать инфу, эти 5 сек вас еще продолжают слышать живые игроки. И после истечения 5 сек игроку пишется сообщение в чат "[VM] Время для инфы ИСТЕКЛО"

Нужно сделать чтобы:
живые СТ слышали только живых СТ
живые Т слышали только живых Т
мертвые СТ слышали мертвых СТ, Т
мертвые Т слышали мертвых Т, СТ
И при этом оставить функцию для инфы, То-есть чтобы в момент смерти первые 5 сек игрока слышали его живые тимейты.

Готов заплатить 100-150 руб.

Код:
#include <amxmodx>
#include <fakemeta>
#include <hamsandwich>

#if AMXX_VERSION_NUM < 183
#include <colorchat>

#define client_print_color ColorChat
#define print_team_red RED
#endif

#define PLUGIN "Voice Manager"
#define VERSION "1.3 final"
#define AUTHOR "Stimul"

#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)))

new g_bIsConnected;
new g_bIsAlive;

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

RegisterHam(Ham_Spawn, "player", "fw_PlayerSpawn_Post", true);
RegisterHam(Ham_Killed, "player", "fw_PlayerKilled_Post", true);

register_forward(FM_Voice_SetClientListening, "fw_Voice_SetClientListening");
}

public fw_PlayerSpawn_Post(id)
if(is_user_alive(id))
set_bit(g_bIsAlive, id);

public fw_PlayerKilled_Post(id)
set_task(5.0, "DelaySetDeath", id);

public DelaySetDeath(id)
{
if(!is_user_alive(id))
{
reset_bit(g_bIsAlive, id);
client_print_color(id, print_team_red, "^1[^4VM^1] ^4Время для инфы ^3ИСТЕКЛО.");
}
}

public client_putinserver(id)
set_bit(g_bIsConnected, id);

public client_disconnect(id)
{
reset_bit(g_bIsConnected, id);
reset_bit(g_bIsAlive, id);
}

public fw_Voice_SetClientListening(receiver, sender, listen)
{
if(get_bit(g_bIsConnected, receiver) && get_bit(g_bIsConnected, sender) && receiver != sender)
{
if((get_bit(g_bIsAlive, receiver) && !get_bit(g_bIsAlive, sender)) || (!get_bit(g_bIsAlive, receiver) && get_bit(g_bIsAlive, sender)))
{
engfunc(EngFunc_SetClientListening, receiver, sender, false);
return FMRES_SUPERCEDE;
}
}

return FMRES_IGNORED;
}
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   Цитировать сообщение
staff2517
сообщение 14.12.2014, 17:42
Сообщение #2
Стаж: 12 лет

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

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