
Стаж: 7 лет 11 месяцев
Сообщений: 33
Благодарностей: 2
Полезность: 48
|
Дорогие участники сообщества, помогите пожалуйста. Редактировал исходник плагина и что-то наворотил, заменял колличество воспроизводимых звуков. Как я понимаю проблема с массивами, а разобраться неполучается. Код /* Ultimate KillStreak Advanced Автор перевода Sho0ter Воспроизводит звуки убийств противников , убийства в голову, убийств ножом, первая кровь , двойных убийств, начала раунда.
1) 10 звуков убийств противников: Проигрывает звук TripleKill Проигрывает звук MultiKill (не стандартный) Проигрывает звук UltraKill (не стандартный) Проигрывает звук KillingSpree (не стандартный) Проигрывает звук MegaKill Проигрывает звук Holy Shit Проигрывает звук Ludicrouskill Проигрывает звук Rampage Проигрывает звук Unstoppable (не стандартный) Проигрывает звук Monster Kill (не стандартный)
2) 3 звука Headshot (в случайном порядке) 3) 3 звука Knife Kill (в случайном порядке) 4) 2 звука First Blood (в случайном порядке)) 5) 3 звука Round Counter ((в случайном порядке)) 6) 1 звук Grenade Kill Events 7) 6 звуков самоубийства (в случайном порядке) 8) 2 звука Double Kill (в случайном порядке)
Переменные:
- ut_killstreak_advanced (по умолчанию 3) - переключение режима работы 1 = Только цветные сообщения 2 = Только звуки 3 = Звуки и цветные сообщения Другие цифры выключают плагин
- ut_killstreak_hs (по умолчанию 1) -> вкл/выкл убийства в голову Включает 2 звука, цветные сообщения
- ut_killstreak_knife (по умолчанию 1) -> вкл/выкл убийства ножом Включает 3 звука, цветные сообщения
- ut_firstblood (по умолчанию 1) -> вкл/выкл первую кровь Включает 2 звука, цветные сообщения
- ut_nade_events (по умолчанию 1) -> вкл/выкл убийства гранатой Включает 2 звука, цветные сообщения
- ut_suicide_events (по умолчанию 1) -> вкл/выкл самоубийства Включает 6 звуков, цветные сообщения
- ut_doublekill_events (по умолчанию 1) -> вкл/выкл двойные убийства Включает 2 звука, цветные сообщения
- ut_roundcout_sounds (по умолчанию 1) -> вкл/выкл начало раунда Включает 3 звука, цветные сообщения
* Авторы: - xxAvalancheXx for double kill codes - jim_yang for some sugestion and grenade events codes - bo0m! for help me with an register event function - Duca for Streak Mode Example
*/
#include <amxmodx> #include <amxmisc>
#define PLUGIN_NAME "Ultimate KillStreak Advanced" #define PLUGIN_VERSION "0.7" #define PLUGIN_AUTHOR "SAMURAI"
new kills[33] = {0,...}; new deaths[33] = {0,...}; new firstblood new kill[33][24];
#define LEVELS 10 #define hsounds 1 #define knsounds 1 #define fbsounds 1 #define prpsounds 2 #define suicidesounds 1 #define maxdbsounds 1 #define TASK_CLEAR_KILL 100
new hsenable new knifeenable new firstbloodenable new nadecvar new suicidecvar new cvardouble new rnstartcvar new killstreaktype
new levels[10] = {3, 4, 6, 8, 10, 12,14,15,16,18};
new sounds[10][] = { "ultimate_reggae/tkreggae", "ultimate_reggae/mulkreggae", "ultimate_reggae/ukreggae", "ultimate_reggae/ksreggae", "ultimate_reggae/megakreggae", "ultimate_reggae/holyreggae", "ultimate_reggae/lkreggae", "ultimate_reggae/rampreggae", "ultimate_reggae/unstreggae", "ultimate_reggae/monkreggae" };
new messages[10][] = { "%s сделал тройное убийство!", "%s сделал несколько убийств!", "%s ультра убийца!", "%s в убийственном кутеже!", "%s мега убийца!", "%s, святое гомно !", "%s, это уже не смешно !", "%s буйствует !", "%s НЕПОБЕДИМЫЙ !", "%s МОНСТР ! ! !" };
new hslist[hsounds][] = { "ultimate_reggae/hsreggae", }
new fblist[fbsounds][]= { "ultimate_reggae/fbreggae", }
new preplist[prpsounds][]= { "ultimate_reggae/prepreggae1", "ultimate_reggae/prepreggae2", }
new fbmessages[2][]= { "%s сделал первое убийство !", "%s почувствувал вкус первой крови !" }
new hsmessages[4][]= { "%s снес башку %s !", "%s попал прямо в голову %s !", "%s превратил голову %s в месиво !", "%s положил %s превосходным выстрелом в голову !" }
new knlist[knsounds][]= { "ultimate_reggae/kkreggae", }
new knmessages[3][]= { "%s вспорол %s", "%s подкрался с ножом к %s", "%s сделал нарезочку с %s" }
new nademessages[3][]= { "%s кинул прямо в %s", "%s преподнес подарок %s", "%s метко кинул! Так держать..." }
new suicidemess[3][]= { "%s самоубийца", "%s камикадзе", "%s убился" }
new suicidelist[suicidesounds][]= { "ultimate_reggae/suicreggae", }
new doublelist[maxdbsounds][]= { "ultimate_reggae/dkreggae", }
is_mode_set(bits) { new mode[9]; get_cvar_string("ut_killstreak_advanced", mode, 8); return read_flags(mode) & bits; }
public plugin_init() { register_plugin(PLUGIN_NAME, PLUGIN_VERSION, PLUGIN_AUTHOR); killstreaktype = register_cvar("ut_killstreak_advanced", "3"); register_event("ResetHUD", "reset_hud", "b"); register_event("HLTV","rnstart","a", "1=0", "2=0"); register_event("DeathMsg", "event_death", "a"); hsenable = register_cvar("ut_killstreak_hs","1"); knifeenable = register_cvar("ut_killstreak_knife","1"); firstbloodenable = register_cvar("ut_firstblood","1"); nadecvar = register_cvar("ut_nade_events","1"); suicidecvar = register_cvar("ut_suicide_events","1"); cvardouble = register_cvar("ut_doublekill_events","1"); rnstartcvar = register_cvar("ut_roundcout_sounds","1");
return PLUGIN_CONTINUE; }
public event_death(id) { new killer = read_data(1); new victim = read_data(2); new headshot = read_data(3); new weapon[24], vicname[32], killname[32] read_data(4,weapon,23) get_user_name(victim,vicname,31) get_user_name(killer,killname,31) if(headshot == 1 && get_pcvar_num(hsenable) ==1) { set_hudmessage(0, 0, 255, -1.0, 0.30, 0, 6.0, 6.0) show_hudmessage(0, (hsmessages[random_num(0,3)]), killname, vicname) new i i = random_num(0,hsounds-1) client_cmd(0,"spk %s",hslist[i]) }
if(weapon[0] == 'k' && get_pcvar_num(knifeenable) ==1) { set_hudmessage(255, 0, 255, -1.0, 0.30, 0, 6.0, 6.0) show_hudmessage(0, (knmessages[random_num(0,2)]), killname, vicname) new r r = random_num(0,knsounds-1) client_cmd(0,"spk %s",knlist[r]) } if(firstblood && killer!=victim && killer>0 && get_pcvar_num(firstbloodenable) ==1) { set_hudmessage(255, 0, 255, -1.0, 0.30, 0, 6.0, 6.0) show_hudmessage(0, (fbmessages[random_num(0,1)]), killname) new t t = random_num(0,fbsounds-1) client_cmd(0,"spk %s",fblist[t]) firstblood = 0 } if(weapon[1] == 'r' && get_pcvar_num(nadecvar) ==1) { set_hudmessage(255, 0, 255, -1.0, 0.30, 0, 6.0, 6.0) show_hudmessage(0,(nademessages[random_num(0,2)]),killname,vicname) client_cmd(0,"spk ultimate_sounds/nade1") }
if(killer == victim && get_pcvar_num(suicidecvar) ==1) { set_hudmessage(255, 0, 255, -1.0, 0.30, 0, 6.0, 6.0) show_hudmessage(0,(suicidemess[random_num(0,2)]), vicname) new z z = random_num(0,suicidesounds-1) client_cmd(0,"spk %s",suicidelist[z]) } if(kill[killer][0] && equal(kill[killer],weapon) && get_pcvar_num(cvardouble) == 1) { set_hudmessage(255, 0, 255, -1.0, 0.30, 0, 6.0, 6.0) show_hudmessage(0,"Ух-ты! %s положил сразу двоих!", killname) kill[killer][0] = 0; new q q= random_num(0,maxdbsounds-1) client_cmd(0,"spk %s",doublelist[q]) } else { kill[killer] = weapon; set_task(0.1,"clear_kill",TASK_CLEAR_KILL+killer); } kills[killer] += 1; kills[victim] = 0; deaths[killer] = 0; deaths[victim] += 1;
for (new i = 0; i < LEVELS; i++) { if (kills[killer] == levels[i]) { announce(killer, i); return PLUGIN_CONTINUE; } }
return PLUGIN_CONTINUE; }
announce(killer, level) { new name[33] new r = random(256) new g = random(256) new b = random(256)
get_user_name(killer, name, 32); set_hudmessage(r,g,b, 0.05, 0.65, 2, 0.02, 6.0, 0.01, 0.1, 2);
if( (get_pcvar_num(killstreaktype) <= 0 ) || get_pcvar_num(killstreaktype) > 3) return PLUGIN_HANDLED; if(get_pcvar_num(killstreaktype) == 1) { show_hudmessage(0, messages[level], name); } if(get_pcvar_num(killstreaktype) == 2) { client_cmd(0, "spk %s", sounds[level]); }
if(get_pcvar_num(killstreaktype) == 3) { show_hudmessage(0, messages[level], name); client_cmd(0, "spk %s", sounds[level]); } return PLUGIN_CONTINUE; }
public reset_hud(id) { firstblood = 1 if (is_mode_set(16)) { if (kills[id] > levels[0]) { client_print(id, print_chat, "* Вы убили %d не умерев ни разу.", kills[id]); } else if (deaths[id] > 1) { client_print(id, print_chat, "* Осторожней, вы умираете %d раунд подряд.", deaths[id]);
} } }
public rnstart(id) { if(get_pcvar_num(rnstartcvar) == 1) { firstblood = 1 set_hudmessage(255, 0, 255, -1.0, 0.30, 0, 6.0, 6.0) show_hudmessage(0, "Приготовтесь к бою!") new q q = random_num(0,prpsounds-1) client_cmd(0,"spk %s",preplist[q]) } }
public client_connect(id) { kills[id] = 0; deaths[id] = 0; }
public clear_kill(taskid) { new id = taskid-TASK_CLEAR_KILL; kill[id][0] = 0; }
public plugin_precache() { precache_sound("ultimate_reggae/prepreggae1.wav") precache_sound("ultimate_reggae/prepreggae2.wav") precache_sound("ultimate_reggae/suicreggae.wav") precache_sound("ultimate_reggae/kkreggae.wav") precache_sound("ultimate_reggae/gkreggae.wav") precache_sound("ultimate_reggae/hsreggae.wav") precache_sound("ultimate_reggae/fbreggae.wav") precache_sound("ultimate_reggae/dkreggae.wav") precache_sound("ultimate_reggae/tkreggae.wav") precache_sound("ultimate_reggae/mulkreggae.wav") precache_sound("ultimate_reggae/rampreggae.wav") precache_sound("ultimate_reggae/ksreggae.wav") precache_sound("ultimate_reggae/unstreggae.wav") precache_sound("ultimate_reggae/megakreggae.wav") precache_sound("ultimate_reggae/ukreggae.wav") precache_sound("ultimate_reggae/lkreggae.wav") precache_sound("ultimate_reggae/monkreggae.wav") precache_sound("ultimate_reggae/holyreggae.wav") } Код /* Ultimate KillStreak Advanced Автор перевода Sho0ter Воспроизводит звуки убийств противников , убийства в голову, убийств ножом, первая кровь , двойных убийств, начала раунда.
1) 10 звуков убийств противников: Проигрывает звук TripleKill Проигрывает звук MultiKill (не стандартный) Проигрывает звук UltraKill (не стандартный) Проигрывает звук KillingSpree (не стандартный) Проигрывает звук MegaKill Проигрывает звук Holy Shit Проигрывает звук Ludicrouskill Проигрывает звук Rampage Проигрывает звук Unstoppable (не стандартный) Проигрывает звук Monster Kill (не стандартный)
2) 3 звука Headshot (в случайном порядке) 3) 3 звука Knife Kill (в случайном порядке) 4) 2 звука First Blood (в случайном порядке)) 5) 3 звука Round Counter ((в случайном порядке)) 6) 1 звук Grenade Kill Events 7) 6 звуков самоубийства (в случайном порядке) 8) 2 звука Double Kill (в случайном порядке)
Переменные:
- ut_killstreak_advanced (по умолчанию 3) - переключение режима работы 1 = Только цветные сообщения 2 = Только звуки 3 = Звуки и цветные сообщения Другие цифры выключают плагин
- ut_killstreak_hs (по умолчанию 1) -> вкл/выкл убийства в голову Включает 2 звука, цветные сообщения
- ut_killstreak_knife (по умолчанию 1) -> вкл/выкл убийства ножом Включает 3 звука, цветные сообщения
- ut_firstblood (по умолчанию 1) -> вкл/выкл первую кровь Включает 2 звука, цветные сообщения
- ut_nade_events (по умолчанию 1) -> вкл/выкл убийства гранатой Включает 2 звука, цветные сообщения
- ut_suicide_events (по умолчанию 1) -> вкл/выкл самоубийства Включает 6 звуков, цветные сообщения
- ut_doublekill_events (по умолчанию 1) -> вкл/выкл двойные убийства Включает 2 звука, цветные сообщения
- ut_roundcout_sounds (по умолчанию 1) -> вкл/выкл начало раунда Включает 3 звука, цветные сообщения
* Авторы: - xxAvalancheXx for double kill codes - jim_yang for some sugestion and grenade events codes - bo0m! for help me with an register event function - Duca for Streak Mode Example
*/
#include <amxmodx> #include <amxmisc>
#define PLUGIN_NAME "Ultimate KillStreak Advanced" #define PLUGIN_VERSION "0.7" #define PLUGIN_AUTHOR "SAMURAI"
new kills[33] = {0,...}; new deaths[33] = {0,...}; new firstblood new kill[33][24];
#define LEVELS 10 #define hsounds 2 #define knsounds 3 #define fbsounds 2 #define prpsounds 3 #define suicidesounds 6 #define maxdbsounds 2 #define TASK_CLEAR_KILL 100
new hsenable new knifeenable new firstbloodenable new nadecvar new suicidecvar new cvardouble new rnstartcvar new killstreaktype
new levels[10] = {3, 4, 6, 8, 10, 12,14,15,16,18};
new sounds[10][] = { "ultimate_sounds/triplekill1", "ultimate_sounds/multikill1", "ultimate_sounds/ultrakill1", "ultimate_sounds/killingspree1", "ultimate_sounds/megakill1", "ultimate_sounds/holyshit1", "ultimate_sounds/ludicrouskill1", "ultimate_sounds/rampage1", "ultimate_sounds/unstoppable1", "ultimate_sounds/monsterkill1" };
new messages[10][] = { "%s сделал тройное убийство!", "%s сделал несколько убийств!", "%s ультра убийца!", "%s в убийственном кутеже!", "%s мега убийца!", "%s, святое гомно !", "%s, это уже не смешно !", "%s буйствует !", "%s НЕПОБЕДИМЫЙ !", "%s МОНСТР ! ! !" };
new hslist[hsounds][] = { "ultimate_sounds/headshot1", "ultimate_sounds/headshot2" }
new fblist[fbsounds][]= { "ultimate_sounds/firstblood1", "ultimate_sounds/firstblood2" }
new preplist[prpsounds][]= { "ultimate_sounds/prepare1", "ultimate_sounds/prepare2", "ultimate_sounds/prepare3" }
new fbmessages[2][]= { "%s сделал первое убийство !", "%s почувствувал вкус первой крови !" }
new hsmessages[4][]= { "%s снес башку %s !", "%s попал прямо в голову %s !", "%s превратил голову %s в месиво !", "%s положил %s превосходным выстрелом в голову !" }
new knlist[knsounds][]= { "ultimate_sounds/knife1", "ultimate_sounds/knife2", "ultimate_sounds/knife3" }
new knmessages[3][]= { "%s вспорол %s", "%s подкрался с ножом к %s", "%s сделал нарезочку с %s" }
new nademessages[3][]= { "%s кинул прямо в %s", "%s преподнес подарок %s", "%s метко кинул! Так держать..." }
new suicidemess[3][]= { "%s самоубийца", "%s камикадзе", "%s убился" }
new suicidelist[suicidesounds][]= { "ultimate_sounds/suicide1", "ultimate_sounds/suicide2", "ultimate_sounds/suicide3", "ultimate_sounds/suicide4", "ultimate_sounds/suicide5", "ultimate_sounds/suicide6" }
new doublelist[maxdbsounds][]= { "ultimate_sounds/doublekill1", "ultimate_sounds/doublekill2" }
is_mode_set(bits) { new mode[9]; get_cvar_string("ut_killstreak_advanced", mode, 8); return read_flags(mode) & bits; }
public plugin_init() { register_plugin(PLUGIN_NAME, PLUGIN_VERSION, PLUGIN_AUTHOR); killstreaktype = register_cvar("ut_killstreak_advanced", "3"); register_event("ResetHUD", "reset_hud", "b"); register_event("HLTV","rnstart","a", "1=0", "2=0"); register_event("DeathMsg", "event_death", "a"); hsenable = register_cvar("ut_killstreak_hs","1"); knifeenable = register_cvar("ut_killstreak_knife","1"); firstbloodenable = register_cvar("ut_firstblood","1"); nadecvar = register_cvar("ut_nade_events","1"); suicidecvar = register_cvar("ut_suicide_events","1"); cvardouble = register_cvar("ut_doublekill_events","1"); rnstartcvar = register_cvar("ut_roundcout_sounds","1");
return PLUGIN_CONTINUE; }
public event_death(id) { new killer = read_data(1); new victim = read_data(2); new headshot = read_data(3); new weapon[24], vicname[32], killname[32] read_data(4,weapon,23) get_user_name(victim,vicname,31) get_user_name(killer,killname,31) if(headshot == 1 && get_pcvar_num(hsenable) ==1) { set_hudmessage(0, 0, 255, -1.0, 0.30, 0, 6.0, 6.0) show_hudmessage(0, (hsmessages[random_num(0,3)]), killname, vicname) new i i = random_num(0,hsounds-1) client_cmd(0,"spk %s",hslist[i]) }
if(weapon[0] == 'k' && get_pcvar_num(knifeenable) ==1) { set_hudmessage(255, 0, 255, -1.0, 0.30, 0, 6.0, 6.0) show_hudmessage(0, (knmessages[random_num(0,2)]), killname, vicname) new r r = random_num(0,knsounds-1) client_cmd(0,"spk %s",knlist[r]) } if(firstblood && killer!=victim && killer>0 && get_pcvar_num(firstbloodenable) ==1) { set_hudmessage(255, 0, 255, -1.0, 0.30, 0, 6.0, 6.0) show_hudmessage(0, (fbmessages[random_num(0,1)]), killname) new t t = random_num(0,fbsounds-1) client_cmd(0,"spk %s",fblist[t]) firstblood = 0 } if(weapon[1] == 'r' && get_pcvar_num(nadecvar) ==1) { set_hudmessage(255, 0, 255, -1.0, 0.30, 0, 6.0, 6.0) show_hudmessage(0,(nademessages[random_num(0,2)]),killname,vicname) client_cmd(0,"spk ultimate_sounds/nade1") }
if(killer == victim && get_pcvar_num(suicidecvar) ==1) { set_hudmessage(255, 0, 255, -1.0, 0.30, 0, 6.0, 6.0) show_hudmessage(0,(suicidemess[random_num(0,2)]), vicname) new z z = random_num(0,suicidesounds-1) client_cmd(0,"spk %s",suicidelist[z]) } if(kill[killer][0] && equal(kill[killer],weapon) && get_pcvar_num(cvardouble) == 1) { set_hudmessage(255, 0, 255, -1.0, 0.30, 0, 6.0, 6.0) show_hudmessage(0,"Ух-ты! %s положил сразу двоих!", killname) kill[killer][0] = 0; new q q= random_num(0,maxdbsounds-1) client_cmd(0,"spk %s",doublelist[q]) } else { kill[killer] = weapon; set_task(0.1,"clear_kill",TASK_CLEAR_KILL+killer); } kills[killer] += 1; kills[victim] = 0; deaths[killer] = 0; deaths[victim] += 1;
for (new i = 0; i < LEVELS; i++) { if (kills[killer] == levels[i]) { announce(killer, i); return PLUGIN_CONTINUE; } }
return PLUGIN_CONTINUE; }
announce(killer, level) { new name[33] new r = random(256) new g = random(256) new b = random(256)
get_user_name(killer, name, 32); set_hudmessage(r,g,b, 0.05, 0.65, 2, 0.02, 6.0, 0.01, 0.1, 2);
if( (get_pcvar_num(killstreaktype) <= 0 ) || get_pcvar_num(killstreaktype) > 3) return PLUGIN_HANDLED; if(get_pcvar_num(killstreaktype) == 1) { show_hudmessage(0, messages[level], name); } if(get_pcvar_num(killstreaktype) == 2) { client_cmd(0, "spk %s", sounds[level]); }
if(get_pcvar_num(killstreaktype) == 3) { show_hudmessage(0, messages[level], name); client_cmd(0, "spk %s", sounds[level]); } return PLUGIN_CONTINUE; }
public reset_hud(id) { firstblood = 1 if (is_mode_set(16)) { if (kills[id] > levels[0]) { client_print(id, print_chat, "* Вы убили %d не умерев ни разу.", kills[id]); } else if (deaths[id] > 1) { client_print(id, print_chat, "* Осторожней, вы умираете %d раунд подряд.", deaths[id]);
} } }
public rnstart(id) { if(get_pcvar_num(rnstartcvar) == 1) { firstblood = 1 set_hudmessage(255, 0, 255, -1.0, 0.30, 0, 6.0, 6.0) show_hudmessage(0, "Приготовтесь к бою!") new q q = random_num(0,prpsounds-1) client_cmd(0,"spk %s",preplist[q]) } }
public client_connect(id) { kills[id] = 0; deaths[id] = 0; }
public clear_kill(taskid) { new id = taskid-TASK_CLEAR_KILL; kill[id][0] = 0; }
public plugin_precache() { precache_sound("ultimate_sounds/triplekill1.wav") precache_sound("ultimate_sounds/multikill1.wav") precache_sound("ultimate_sounds/ultrakill1.wav") precache_sound("ultimate_sounds/killingspree1.wav") precache_sound("ultimate_sounds/megakill1.wav") precache_sound("ultimate_sounds/holyshit1.wav") precache_sound("ultimate_sounds/ludicrouskill1.wav") precache_sound("ultimate_sounds/rampage1.wav") precache_sound("ultimate_sounds/unstoppable1.wav") precache_sound("ultimate_sounds/monsterkill1.wav") precache_sound("ultimate_sounds/headshot1.wav") precache_sound("ultimate_sounds/headshot2.wav") precache_sound("ultimate_sounds/headshot3.wav") precache_sound("ultimate_sounds/knife1.wav") precache_sound("ultimate_sounds/knife2.wav") precache_sound("ultimate_sounds/knife3.wav") precache_sound("ultimate_sounds/firstblood1.wav") precache_sound("ultimate_sounds/firstblood2.wav") precache_sound("ultimate_sounds/prepare1.wav") precache_sound("ultimate_sounds/prepare2.wav") precache_sound("ultimate_sounds/prepare3.wav") precache_sound("ultimate_sounds/nade1.wav") precache_sound("ultimate_sounds/suicide1.wav") precache_sound("ultimate_sounds/suicide2.wav") precache_sound("ultimate_sounds/suicide3.wav") precache_sound("ultimate_sounds/suicide4.wav") precache_sound("ultimate_sounds/suicide5.wav") precache_sound("ultimate_sounds/suicide6.wav") precache_sound("ultimate_sounds/doublekill1.wav") precache_sound("ultimate_sounds/doublekill2.wav") }
|