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

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

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

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

> Правила форума

Этот раздел, как вы могли заметить по названию, предназначен для решения вопросов по поводу уже существующих модов и плагинов.
Пожалуйста, если у вас проблема с написанием плагина, не путайте этот раздел с разделом по скриптингу.
Для поиска плагинов и модов существует соответствующий раздел.

Название темы должно соответствовать содержанию. Темы с названием типа "Помогите", "Вопрос", "парни подскажите..." - будут удалены.
Все темы, не относящиеся к "Вопросам по модам и плагинам", будут удалены или перемещены в соответствующий раздел.

Правила оформления темы:
1. Помимо заголовка не забудьте верно сформулировать свой вопрос.
2. Выложите исходник (в тег кода + ) или ссылку на плагин который вызывает у вас вопросы.
3. Выложите лог с ошибками (если имеется) под спойлер

nice_rr (Random sound 1-3)

Статус пользователя hacker63
сообщение 25.1.2014, 15:03
Сообщение #1


Стаж: 13 лет

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

Здравствуйте, уважаемые кодеры. Прошу помощи в доработке плагина. Есть у меня такой плагин:

Nice RR
#include <amxmodx>
#include <amxmisc>

new nTimer, nMsg

public plugin_init()
{
register_plugin("Nice RR", "1.0", "sector")

nTimer = 60
set_task(1.0, "nice_rr_timer", _, _, _, "a", 60)

nMsg = CreateHudSyncObj()
}

public plugin_precache()
{
precache_generic("sound/sector/welcome.mp3")
precache_sound("sector/nice_1.wav")
precache_sound("sector/nice_2.wav")
precache_sound("sector/nice_3.wav")
precache_sound("sector/nice_4.wav")
precache_sound("sector/nice_5.wav")
precache_sound("sector/nice_s.wav")
}

public nice_rr_timer()
{
set_hudmessage(255, 255, 255, 0.70, 0.30, 0, 6.0, 2.0)
ShowSyncHudMsg(0, nMsg, "Ожидаем игроков!^nЕще %d сек...", nTimer)
switch(nTimer)
{
case 10: client_cmd(0, "spk sector/nice_s.wav")
case 5: client_cmd(0, "spk sector/nice_5.wav")
case 4: client_cmd(0, "spk sector/nice_4.wav")
case 3: client_cmd(0, "spk sector/nice_3.wav")
case 2: client_cmd(0, "spk sector/nice_2.wav")
case 1: client_cmd(0, "spk sector/nice_1.wav")
}
if(nTimer == 1)
{
server_cmd("sv_restartround 1")
set_task(3.0, "nice_rr_end")
}
nTimer--
}

public nice_rr_end()
{
set_hudmessage(255, 255, 255, 0.70, 0.30, 0, 6.0, 8.0)
ShowSyncHudMsg(0, nMsg, "Ожидание завершено!^nПриятной игры!")
client_cmd(0, "mp3 play sound/sector/welcome")
}


Хотелось бы его доработать вот чем:
Имеется такой кусок
set_hudmessage(255, 255, 255, 0.70, 0.30, 0, 6.0, 8.0)
ShowSyncHudMsg(0, nMsg, "Ожидание завершено!^nПриятной игры!")
client_cmd(0, "mp3 play sound/sector/welcome")
}

После того как делается рестарт, сейчас звучит 1 песня. Я бы хотел чтобы звучало 1 из 3 (Рандомно)
Как это сделать?
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   Цитировать сообщение
Статус пользователя hacker63
сообщение 25.1.2014, 15:14
Сообщение #2


Стаж: 13 лет

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

В исходнике Round Sound by XyLiGaN
Нашел такой кусок, который вроде как подойдет.
Скрытый текст

new rand = random_num(1,10)
client_cmd(0,"mp3 stop")
client_cmd(0,"mp3 play sound/mix/t-%d", rand)

Если его вставить после
Скрытый текст
ShowSyncHudMsg(0, nMsg, "Ожидание завершено!^nПриятной игры!")

В итоге будет работать?



Итог такой:
Скрытый текст

#include <amxmodx>
#include <amxmisc>

new nTimer, nMsg

public plugin_init()
{
register_plugin("Nice RR", "1.0", "sector")

nTimer = 60
set_task(1.0, "nice_rr_timer", _, _, _, "a", 60)

nMsg = CreateHudSyncObj()
}

public plugin_precache()
{
precache_generic("sound/sector/rr_1.mp3")
precache_generic("sound/sector/rr_2.mp3")
precache_generic("sound/sector/rr_3.mp3")
precache_sound("sector/nice_1.wav")
precache_sound("sector/nice_2.wav")
precache_sound("sector/nice_3.wav")
precache_sound("sector/nice_4.wav")
precache_sound("sector/nice_5.wav")
precache_sound("sector/nice_s.wav")
}

public nice_rr_timer()
{
set_hudmessage(255, 255, 255, 0.70, 0.30, 0, 6.0, 2.0)
ShowSyncHudMsg(0, nMsg, "Ожидаем игроков!^nЕще %d сек...", nTimer)
switch(nTimer)
{
case 10: client_cmd(0, "spk sector/nice_s.wav")
case 5: client_cmd(0, "spk sector/nice_5.wav")
case 4: client_cmd(0, "spk sector/nice_4.wav")
case 3: client_cmd(0, "spk sector/nice_3.wav")
case 2: client_cmd(0, "spk sector/nice_2.wav")
case 1: client_cmd(0, "spk sector/nice_1.wav")
}
if(nTimer == 1)
{
server_cmd("sv_restartround 1")
set_task(3.0, "nice_rr_end")
}
nTimer--
}

public nice_rr_end()
{
set_hudmessage(255, 255, 255, 0.70, 0.30, 0, 6.0, 8.0)
ShowSyncHudMsg(0, nMsg, "Ожидание завершено!^nПриятной игры!")
new rand = random_num(1,3)
client_cmd(0,"mp3 stop")
client_cmd(0,"mp3 play sound/sector/rr_%d", rand)
}


Отредактировал: hacker63, - 25.1.2014, 15:22
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя RedL1ne
сообщение 25.1.2014, 15:22
Сообщение #3


Стаж: 15 лет

Сообщений: 3828
Благодарностей: 1854
Полезность: 876

Прекеш не забудь
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя hacker63
сообщение 25.1.2014, 15:27
Сообщение #4


Стаж: 13 лет

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

Цитата(RedL1ne @ 25.1.2014, 16:22) *
Прекеш не забудь

Всем спасибо, кто откликнулся. (Я и КраснаяЛиния)
Если кому то нужен исходник полный, обновил первое сообщение темы.
Все работает. Проверил.

Можно закрывать.

Отредактировал: hacker63, - 25.1.2014, 15:29
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Xydojke
сообщение 2.5.2020, 21:39
Сообщение #5
Стаж: 7 лет 9 месяцев

Сообщений: 97
Благодарностей: 19
Полезность: 112

Здравствуйте! помогите вшить эти пути
Код
case 5: client_cmd(0, "spk sector/5.wav")
case 4: client_cmd(0, "spk events/4.wav")
case 3: client_cmd(0, "spk events/3.wav")
case 2: client_cmd(0, "spk events/2.wav")
case 1: client_cmd(0, "spk events/1.wav")

в этот плагин что бы мог прописать свои звуки пожалуйста
Cкрытый текст
[coub]#include <amxmodx>
#include <reapi>

#define TIME_RR 60 // Время разминки
#define NUM_RR 1 // Кол-во рестартов
#define LATENCY 1.5 // Задержка между рестартами
#define PROTECTED 0 // Сколько секунд действует защита после возрождения, 0 - отключить (актуально для DM_MODE)
// отключаемо //
//#define SOUND // Музыка под час разминки
#define STOP_PLUGS // Отключать плагины на время разминки
#define DM_MODE // Бесконечный респавн на время разминки
//#define OFF_RR // Отключать этот плагин на указанных картах
//#define BLOCK // Запрет поднятия оружия с земли [по умолчанию выкл.]
//#define STOP_STATS // Отключать запись статистики на время разминки (Работает только с измененным CSStatsX SQL by serfreeman1337) [по умолчанию выкл.]

#if defined SOUND
new const soundRR[] = "sound/rr/RoundStart.mp3"; // Указывать путь и название файла, например sound/serv/music.mp3
#endif
#if defined STOP_STATS
native stats_set_enabled(params_num)
#endif
#if defined STOP_PLUGS
new g_arPlugins[][] = // Указывать название плагинов, например test.amxx
{
"Respawn_dead.amxx",
"gamecms_present_core_183.amxx",
"awp_off_t.amxx",
"drop_guns.amxx"

}
#endif
new g_iHudSync;
new g_szWeapon[32];
new g_iWp;
new HookChain:fwd_NewRound,
HookChain:fwd_Spawn,
HookChain:fwd_GiveC4,
#if defined BLOCK
HookChain:fwd_BlockEntity,
#endif
#if defined DM_MODE
HookChain:fwd_Killed;
#endif

const TASK_PROTECTION_ID = 33464;

public plugin_init()
{
register_plugin("[ReAPI] Random Weapons WarmUP", "2.4.4", "neugomon");

RegisterHookChain(RG_RoundEnd, "fwdRoundEnd", true);
DisableHookChain(fwd_NewRound = RegisterHookChain(RG_CSGameRules_CheckMapConditions, "fwdRoundStart", true));
DisableHookChain(fwd_Spawn = RegisterHookChain(RG_CBasePlayer_Spawn, "fwdPlayerSpawnPost", true));
DisableHookChain(fwd_GiveC4 = RegisterHookChain(RG_CSGameRules_GiveC4, "fwdGiveC4", false));
#if defined BLOCK
DisableHookChain(fwd_BlockEntity = RegisterHookChain(RG_CBasePlayer_HasRestrictItem, "fwdHasRestrictItemPre", false));
register_clcmd("drop", "ClCmd_Drop");
#endif
#if defined DM_MODE
DisableHookChain(fwd_Killed = RegisterHookChain(RG_CBasePlayer_Killed, "fwdPlayerKilledPost", true));
g_iHudSync = CreateHudSyncObj();
register_clcmd("joinclass", "clCmdJoinClass");
register_clcmd("menuselect","clCmdJoinClass");
#endif
state warmupOff;
#if defined OFF_RR
new sPref[][] = { "awp_", "aim_", "fy_", "$", "cs_", "35hp" }; // Указывать префиксы карт
new map[32]; get_mapname(map, charsmax(map));
for(new i; i < sizeof sPref; i++)
{
if(containi(map, sPref[i]) != -1)
{
pause("ad");
return;
}
}
#endif
}
#if defined BLOCK
public fwdHasRestrictItemPre() {
SetHookChainReturn(ATYPE_INTEGER, true);
return HC_SUPERCEDE;
}

public ClCmd_Drop() <warmupOff>
return PLUGIN_CONTINUE;

public ClCmd_Drop() <warmupOn>
return PLUGIN_HANDLED;
#endif
public client_putinserver(id)
{
remove_task(id + TASK_PROTECTION_ID)
}
#if defined SOUND
public plugin_precache()
{
precache_generic(soundRR);
}
#endif
public fwdRoundEnd(WinStatus:status, ScenarioEventEndRound:event, Float:tmDelay)
if(event == ROUND_GAME_COMMENCE)
EnableHookChain(fwd_NewRound);

public fwdRoundStart()
{
state warmupOn;

#if defined SOUND
client_cmd(0, "mp3 play ^"%s^"", soundRR);
#endif

DisableHookChain(fwd_NewRound);
EnableHookChain(fwd_Spawn);
EnableHookChain(fwd_GiveC4);
#if defined STOP_STATS
stats_set_enabled(0);
#endif
set_cvar_string("mp_round_infinite", "1");
#if defined BLOCK
EnableHookChain(fwd_BlockEntity);
#endif
#if defined DM_MODE
EnableHookChain(fwd_Killed);
#endif
#if defined STOP_PLUGS
PluginController(1);
#endif
switch((g_iWp = random(5)))
{
case 0: formatex(g_szWeapon, charsmax(g_szWeapon), "SCOUT");
case 1: formatex(g_szWeapon, charsmax(g_szWeapon), "AWP");
case 2: formatex(g_szWeapon, charsmax(g_szWeapon), "Elite");
}
set_task(1.0, "ShowTimer", .flags = "a", .repeat = TIME_RR);
}
#if defined DM_MODE
public clCmdJoinClass(id) <warmupOff>
return;

public clCmdJoinClass(id) <warmupOn>
if(get_member(id, m_iMenu) == Menu_ChooseAppearance)
set_task(0.5, "SpawnPlayer", id);
#endif
public fwdPlayerSpawnPost(const id)
{
if(!is_user_alive(id))
return;

BuyZone_ToogleSolid(SOLID_NOT);
SetProtection(id)
rg_remove_all_items(id);
set_member_game(m_bMapHasBuyZone, true);

switch(g_iWp)
{
case 0:
{
rg_give_item(id, "weapon_scout");
rg_give_item(id, "weapon_knife");
rg_set_user_bpammo(id, WEAPON_SCOUT, 90);
}
case 1:
{
rg_give_item(id, "weapon_awp");
rg_give_item(id, "weapon_knife");
rg_set_user_bpammo(id, WEAPON_AWP, 90);
}
case 2:
{
rg_give_item(id, "weapon_elite");
rg_give_item(id, "weapon_knife");
rg_set_user_bpammo(id, WEAPON_ELITE, 90);
}
}
}
#if defined DM_MODE
public fwdPlayerKilledPost(pVictim)
set_task(1.0, "SpawnPlayer", pVictim);
#endif
public fwdGiveC4()
{
return HC_SUPERCEDE
}

public ShowTimer()
{
static timer = -1;
if(timer == -1) timer = TIME_RR;

switch(--timer)
{
case 0:
{
state warmupOff;

BuyZone_ToogleSolid(SOLID_TRIGGER);
DisableHookChain(fwd_Spawn);
DisableHookChain(fwd_GiveC4);
#if defined STOP_STATS
stats_set_enabled(1);
#endif
set_cvar_string("mp_round_infinite", "0");
#if defined BLOCK
DisableHookChain(fwd_BlockEntity);
#endif
#if defined DM_MODE
DisableHookChain(fwd_Killed);
#endif
#if defined STOP_PLUGS
PluginController(0);
#endif
#if NUM_RR > 1
set_task(LATENCY, "SV_Restart", .flags = "a", .repeat = NUM_RR);
#else
SV_Restart();
#endif
timer = -1;
}
default:
{
#if defined STOP_STATS
set_hudmessage(255, 0, 0, .x = -1.0, .y = 0.55, .holdtime = 0.9, .channel = -1);
show_hudmessage(0, "[Статистика Отключена]");
#endif
set_hudmessage(135, 206, 235, .x = -1.0, .y = 0.08, .holdtime = 0.9, .channel = -1);
ShowSyncHudMsg(0, g_iHudSync, "Разминка на %s!^nРестарт через %d сек", g_szWeapon, timer);
}
}
}

public SV_Restart()
{
set_cvar_num("sv_restart", 1);
set_task(2.0, "End_RR");
}

public End_RR()
{
#if defined STOP_STATS
set_hudmessage(255, 0, 0, .x = -1.0, .y = 0.55, .holdtime = 5.0, .channel = -1);
show_hudmessage(0, "[Статистика Включена]");
#endif
set_hudmessage(135, 206, 235, .x = -1.0, .y = 0.80, .holdtime = 5.0, .channel = -1);
show_hudmessage(0, "Ожидание завершено!^nПриятной игры!");
}
#if defined DM_MODE
public SpawnPlayer(id)
{
if(!is_user_connected(id))
return;
if(is_user_alive(id))
return;

switch(get_member(id, m_iTeam))
{
case 1, 2: rg_round_respawn(id);
}
}
#endif

public SetProtection(id)
{
set_entvar(id, var_takedamage, DAMAGE_NO)

switch(get_member(id, m_iTeam))
{
case TEAM_TERRORIST: rg_set_rendering(id, kRenderFxGlowShell, 255, 0, 0, 10);
case TEAM_CT: rg_set_rendering(id, kRenderFxGlowShell, 0, 0, 255, 10);
}

remove_task(TASK_PROTECTION_ID + id)
set_task( PROTECTED.0, "EndProtection", TASK_PROTECTION_ID + id)
}

public EndProtection(TaskID)
{
new id = TaskID - TASK_PROTECTION_ID

if(!is_user_connected(id))
return

set_entvar(id, var_takedamage, DAMAGE_AIM)
rg_set_rendering(id)
}

stock rg_set_rendering(index, fx = kRenderFxNone, r=255, g=255, b=255, amount=16)
{
new Float:RenderColor[3]
RenderColor[0] = float®
RenderColor[1] = float(g)
RenderColor[2] = float(b)

set_entvar(index, var_renderfx, fx)
set_entvar(index, var_rendercolor, RenderColor)
set_entvar(index, var_renderamt, float(amount))
}

stock PluginController(stop)
{
for(new i; i < sizeof g_arPlugins; i++)
{
if(stop)pause ("ac", g_arPlugins[i]);
else unpause("ac", g_arPlugins[i]);
}
}

stock BuyZone_ToogleSolid(const solid)
{
new entityIndex = 0;
while ((entityIndex = rg_find_ent_by_class(entityIndex, "func_buyzone")))
set_entvar(entityIndex, var_solid, solid);
}[/coub]

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