圖 1.
new kills[33];
new deaths[33];
new firstblood;
new kill[33][24];
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/triplekill_ultimate",
"ultimate_sounds/multikill_ultimate",
"ultimate_sounds/ultrakill_ultimate",
"ultimate_sounds/killingspree_ultimate",
"ultimate_sounds/megakill_ultimate",
"ultimate_sounds/holyshit_ultimate",
"ultimate_sounds/ludicrouskill_ultimate",
"ultimate_sounds/rampage_ultimate",
"ultimate_sounds/unstoppable_ultimate",
"ultimate_sounds/monsterkill_ultimate"
};
new messages[10][0];
new hslist[2][] =
{
"ultimate_sounds/headshot1_ultimate",
"ultimate_sounds/headshot2_ultimate"
};
new fblist[2][] =
{
"ultimate_sounds/firstblood1_ultimate",
"ultimate_sounds/firstblood2_ultimate"
};
new preplist[3][] =
{
"ultimate_sounds/prepare1_ultimate",
"ultimate_sounds/prepare2_ultimate",
"ultimate_sounds/prepare3_ultimate"
};
new fbmessages[3][0];
new hsmessages[4][0];
new knlist[2][] =
{
"ultimate_sounds/knife1_ultimate",
"ultimate_sounds/knife2_ultimate"
};
new knmessages[3][0];
new nademessages[3][0];
new suicidemess[2][0];
new suicidelist[4][] =
{
"ultimate_sounds/suicide1_ultimate",
"ultimate_sounds/suicide2_ultimate",
"ultimate_sounds/suicide3_ultimate",
"ultimate_sounds/suicide4_ultimate"
};
new doublelist[2][] =
{
"ultimate_sounds/doublekill1_ultimate",
"ultimate_sounds/doublekill2_ultimate"
};
is_mode_set(bits)
{
new mode[9];
get_cvar_string("ut_killstreak_advanced", mode, 8);
return bits & read_flags(mode);
}
public plugin_init()
{
register_plugin("Ultimate KillStreak Advanced", "0.7", "SAMURAI");
killstreaktype = register_cvar("ut_killstreak_advanced", "3", 0, 0.00);
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", 0, 0.00);
knifeenable = register_cvar("ut_killstreak_knife", "1", 0, 0.00);
firstbloodenable = register_cvar("ut_firstblood", "1", 0, 0.00);
nadecvar = register_cvar("ut_nade_events", "1", 0, 0.00);
suicidecvar = register_cvar("ut_suicide_events", "1", 0, 0.00);
cvardouble = register_cvar("ut_doublekill_events", "1", 0, 0.00);
rnstartcvar = register_cvar("ut_roundcout_sounds", "1", 0, 0.00);
return 0;
}
public event_death(id)
{
if (headshot == 1 && get_pcvar_num(hsenable) == 1)
{
set_hudmessage(0, 0, 255, -1.00, 0.30, 0, 6.00, 6.00, 0.10, 0.20, 4);
show_hudmessage(0, hsmessages[random_num(0, 3)][0][0], killname, vicname);
new i = 0;
i = random_num(0, 1);
client_cmd(0, "spk %s", hslist[i][0][0]);
}
if (weapon[0] == 107 && get_pcvar_num(knifeenable) == 1)
{
set_hudmessage(255, 0, 255, -1.00, 0.30, 0, 6.00, 6.00, 0.10, 0.20, 4);
show_hudmessage(0, knmessages[random_num(0, 2)][0][0], killname, vicname);
new r = 0;
r = random_num(0, 1);
client_cmd(0, "spk %s", knlist[r][0][0]);
}
if (firstblood && victim != killer && killer > 0 && get_pcvar_num(firstbloodenable) == 1)
{
set_hudmessage(255, 0, 255, -1.00, 0.30, 0, 6.00, 6.00, 0.10, 0.20, 4);
show_hudmessage(0, fbmessages[random_num(0, 2)][0][0], killname);
new t = 0;
t = random_num(0, 1);
client_cmd(0, "spk %s", fblist[t][0][0]);
firstblood = 0;
}
if (weapon[1] == 114 && get_pcvar_num(nadecvar) == 1)
{
set_hudmessage(255, 0, 255, -1.00, 0.30, 0, 6.00, 6.00, 0.10, 0.20, 4);
show_hudmessage(0, nademessages[random_num(0, 2)][0][0], killname, vicname);
client_cmd(0, "spk ultimate_sounds/nade_ultimate");
}
if (victim == killer && get_pcvar_num(suicidecvar) == 1)
{
set_hudmessage(255, 0, 255, -1.00, 0.30, 0, 6.00, 6.00, 0.10, 0.20, 4);
show_hudmessage(0, suicidemess[random_num(0, 1)][0][0], vicname);
new z = 0;
z = random_num(0, 3);
client_cmd(0, "spk %s", suicidelist[z][0][0]);
}
if (kill[killer][0][0][0] && equal(kill[killer][0][0], weapon, 0) && get_pcvar_num(cvardouble) == 1)
{
set_hudmessage(255, 0, 255, -1.00, 0.30, 0, 6.00, 6.00, 0.10, 0.20, 4);
show_hudmessage(0, "老天阿 %s 連殺兩人", killname);
kill[killer][0][0][0] = 0;
new q = 0;
q = random_num(0, 1);
client_cmd(0, "spk %s", doublelist[q][0][0]);
}
else
{
new var7 = kill[killer][0][0];
var7[0] = weapon;
set_task(0.10, "clear_kill", killer + 100, "", 0, "", 0);
}
new var8 = kills[killer];
var8 = var8[0][0] + 1;
kills[victim] = 0;
deaths[killer] = 0;
new var9 = deaths[victim];
var9 = var9[0][0] + 1;
new i = 0;
while (i < 10)
{
if (levels[i][0][0] == kills[killer][0][0])
{
announce(killer, i);
return 0;
}
i++;
}
return 0;
}
announce(killer, level)
{
if (get_pcvar_num(killstreaktype) <= 0 || get_pcvar_num(killstreaktype) > 3)
{
return 1;
}
if (get_pcvar_num(killstreaktype) == 1)
{
show_hudmessage(0, messages[level][0][0], name);
}
if (get_pcvar_num(killstreaktype) == 2)
{
client_cmd(0, "spk %s", sounds[level][0][0]);
}
if (get_pcvar_num(killstreaktype) == 3)
{
show_hudmessage(0, messages[level][0][0], name);
client_cmd(0, "spk %s", sounds[level][0][0]);
}
return 0;
}
public reset_hud(id)
{
firstblood = 1;
if (is_mode_set(16))
{
if (levels[0][0] < kills[id][0][0])
{
client_print(id, print_chat, "* 漂亮,你連續殺了 %d 個人.", kills[id]);
}
if (1 < deaths[id][0][0])
{
client_print(id, print_chat, "* 小心, 你已經連續被殺 %d 次 .", deaths[id]);
}
}
return 0;
}
public rnstart(id)
{
if (get_pcvar_num(rnstartcvar) == 1)
{
firstblood = 1;
set_hudmessage(255, 0, 255, -1.00, 0.30, 0, 6.00, 6.00, 0.10, 0.20, 4);
show_hudmessage(0, "準備戰鬥!");
new q = 0;
q = random_num(0, 2);
client_cmd(0, "spk %s", preplist[q][0][0]);
}
return 0;
}
public client_connect(id)
{
kills[id] = 0;
deaths[id] = 0;
return 0;
}
public clear_kill(taskid)
{
new id = taskid + -100;
kill[id][0][0][0] = 0;
return 0;
}
public plugin_precache()
{
precache_sound("ultimate_sounds/triplekill_ultimate.wav");
precache_sound("ultimate_sounds/multikill_ultimate.wav");
precache_sound("ultimate_sounds/ultrakill_ultimate.wav");
precache_sound("ultimate_sounds/killingspree_ultimate.wav");
precache_sound("ultimate_sounds/megakill_ultimate.wav");
precache_sound("ultimate_sounds/holyshit_ultimate.wav");
precache_sound("ultimate_sounds/ludicrouskill_ultimate.wav");
precache_sound("ultimate_sounds/rampage_ultimate.wav");
precache_sound("ultimate_sounds/unstoppable_ultimate.wav");
precache_sound("ultimate_sounds/monsterkill_ultimate.wav");
precache_sound("ultimate_sounds/headshot1_ultimate.wav");
precache_sound("ultimate_sounds/headshot2_ultimate.wav");
precache_sound("ultimate_sounds/knife1_ultimate.wav");
precache_sound("ultimate_sounds/knife2_ultimate.wav");
precache_sound("ultimate_sounds/firstblood1_ultimate.wav");
precache_sound("ultimate_sounds/firstblood2_ultimate.wav");
precache_sound("ultimate_sounds/prepare1_ultimate.wav");
precache_sound("ultimate_sounds/prepare2_ultimate.wav");
precache_sound("ultimate_sounds/prepare3_ultimate.wav");
precache_sound("ultimate_sounds/nade_ultimate.wav");
precache_sound("ultimate_sounds/suicide1_ultimate.wav");
precache_sound("ultimate_sounds/suicide2_ultimate.wav");
precache_sound("ultimate_sounds/suicide3_ultimate.wav");
precache_sound("ultimate_sounds/suicide4_ultimate.wav");
precache_sound("ultimate_sounds/doublekill1_ultimate.wav");
precache_sound("ultimate_sounds/doublekill2_ultimate.wav");
return 0;
}