|
Форум Counter-Strike 1.6 Сервер Counter-Strike 1.6 Помощь по скриптингу Косячность разминки (Knife WarmUP) (Хотел добавить музыку, а в итоге...) |
Косячность разминки (Knife WarmUP) |
Дата: Среда, 12.09.2018, 14:30 | Сообщение # 1
Любитель
Offline
![]()
Код #include <amxmodx> #include <amxmisc> #include <hamsandwich> #include <fakemeta> new Timer, SecondsCvar; new bool:g_knife = true new const track[] = { "sound/knife_warm/knife.mp3" } #define MAP35HP // закомментируй если не хочешь чтобы в ножевом раунде у игроков было по 35 ХП new Count[33] public plugin_init() { register_plugin( "Knife WarnUP" , "1.0", "ill" ) register_event("DeathMsg", "on_death", "a") register_event( "CurWeapon", "EventCurWeapon", "be", "2!29" ) #if defined MAP35HP RegisterHam(Ham_Spawn, "player", "Spawn_Player") #endif register_clcmd("say /count", "CC") SecondsCvar = register_cvar("auto_rr_time","61.0") Timer = get_pcvar_num(SecondsCvar) set_task(1.0, "start_rr_timer", _, _, _, "a", Timer) } public CC (id) { client_print_color(id, print_team_default, "^3[^4LCSDM^3] ^1Каунтов: %d", Count[id]) } public plugin_precache() { precache_generic(track) } public client_connect(id) { Count [id]= 0 } public on_death() { new victim victim = read_data(2) if(g_knife) set_task(1.0, "fnRevivePlayer", victim) } #if defined MAP35HP public Spawn_Player(id) { if(g_knife) { set_pev( id, pev_health, 35.0 ) } } #endif public fnRevivePlayer(id) { if(!is_user_alive(id)) ExecuteHamB(Ham_CS_RoundRespawn, id) } public EventCurWeapon(id) { if(g_knife) engclient_cmd(id, "weapon_knife") } public start_rr_timer(id) { if(g_knife) { client_cmd(0, "mp3 play %s", track) } if(Count [id]< 1) { Count[id]++ } else { client_cmd(0, "mp3 play %s", track) } Timer-- set_hudmessage(0, 255, 0, -1.0, 0.08, 0, _, 1.0) show_hudmessage(0, "Спокойный CSDM ©^nРестарт через: [ %d ]", Timer) if(Timer < 1) { server_cmd("sv_restartround 1") set_task(3.0, "rr_end") g_knife = false } } public rr_end() { client_cmd(0, "mp3 stop") set_hudmessage(random_num(0, 255), random_num(0, 255), random_num(0, 255), -1.0, 0.78, 0, 1.0, 5.0, 0.1, 2.0, -1) show_hudmessage(0, "Ну теперь за стволы!^nПриятного хаоса!") } Музыка просто повторяется уже даже в ушах стоит этот звук столько раз изменял. Пытался даже с счётом (Count), но всё равно никак Думал попробовать написать самому, но отложил эту идею. Добавлено (12.09.2018, 15:11) |
Дата: Среда, 12.09.2018, 15:13 | Сообщение # 2
![]()
Попробуй так:
Код #include <amxmodx> #include <amxmisc> #include <dhudmessage> #include <hamsandwich> #include <fun> new Timer, SecondsCvar new bool:g_knife = true public plugin_init() { register_plugin( " [Public]Restart" , "1.0", "DRAGON" ) register_event("DeathMsg", "on_death", "a") register_event( "CurWeapon", "EventCurWeapon", "be", "2!29" ) RegisterHam(Ham_Spawn, "player", "fw_PlayerSpawn_Post", 1) SecondsCvar = register_cvar("auto_rr_time","35") // Время разминка(в секундах,по умалчанию "35") Timer = get_pcvar_num(SecondsCvar) set_task(1.0, "start_rr_timer", _, _, _, "a", Timer) } public plugin_precache() { precache_sound("sound/12.mp3") } public fw_PlayerSpawn_Post(id) { if(!is_user_alive(id)) return if(g_knife) set_user_health(id, 35) //Выдаёт 35 HP каждому игроку (Изменить значение можешь с 35 = 100 ) } public on_death() { new victim victim = read_data(2) if(g_knife) set_task(1.0, "fnRevivePlayer", victim) } public client_putinserver(id) { if(g_knife) set_task(3.0, "Start_sound", id) } public Start_sound(id) { if(g_knife) { client_cmd(id, "mp3 play sound/12.mp3") if(!is_user_alive(id) && (get_user_team(id) == 1 || get_user_team(id) == 2) ) ExecuteHamB(Ham_CS_RoundRespawn, id) } } public fnRevivePlayer(id) { if(!is_user_alive(id)) ExecuteHamB(Ham_CS_RoundRespawn, id) } public EventCurWeapon(id) { if(g_knife) engclient_cmd(id, "weapon_knife") // Оружие по умолчанию - нож } public start_rr_timer() { Timer-- set_dhudmessage(135, 206, 235, -1.0, 0.08, 0, 0.0, 0.01) show_dhudmessage(0, "Разминка на ножах!^nРестарт через [%d] секунд", Timer) if(Timer < 1) { server_cmd("sv_restartround 1") set_task(3.0, "rr_end") client_cmd(0, "mp3 stop"); g_knife = false } } public rr_end() { set_dhudmessage( random_num(0, 255), random_num(0, 255), random_num(0, 255), -1.0, 0.78, 2, 6.0, 3.0, 0.1, 1.5, false ) show_dhudmessage(0, "Разминка завершена^nПриятной игры! :)") }
Сообщение отредактировал Maxee - Среда, 12.09.2018, 15:13
|
Дата: Среда, 12.09.2018, 15:51 | Сообщение # 3
Скриптер
Мастер
Offline
![]()
Maxee, precache_sound не поддерживает mp3 формат)
https://github.com/alliedmodders/amxmodx/blob/879b061bc835ec1ed1a43855a74b54b2f4ab370a/plugins/include/amxmodx.inc#L271 |
Дата: Среда, 12.09.2018, 17:21 | Сообщение # 4
|
Дата: Пятница, 14.09.2018, 20:24 | Сообщение # 5
Любитель
Offline
![]()
Даже если .mp3 и он рабочий (То есть воспроизводится), все равно рекомендую перекомпилировать его в .wav (Можно обратиться ко мне, я скомпилирую) и закинуть туда.
Вроде заметил что у тебя стоит Count[id], а потом ты проверяешь каждого игрока, меньше ли Count, если нет, то ты играешь звук всем. Конечно так себе уши раздробить можно. P.s у Maxee должно быть правильно сделано. |
| |||
| |||