#include <amxmodx>
#include <cstrike>
#include <fakemeta>
#include <hamsandwich>
#include <fun>
new const PLUGIN[] = "Furien Weapons T";
new const VERSION[] = "1.0";
new const AUTHOR[] = "*BoOoM*";
#pragma semicolon 1
#define VIP_FLAG ADMIN_LEVEL_H
new const Knife1Model[66] = "models/furienknife/v_lava_knife.mdl";
new const Knife2Model[66] = "models/furienknife/v_karambit_knife.mdl";
new const Knife3Model[66] = "models/furienknife/v_wolverin_knife.mdl";
new const Knife4Model[66] = "models/furienknife/v_neon_knife.mdl";
new const Knife5Model[66] = "models/furienknife/v_celurit_knife.mdl";
new const Knife6Model[66] = "models/furienknife/v_model_knife.mdl";
new const KnifeGold1Model[66] = "models/furienknife/v_default_goldknife.mdl";
new const KnifeGold2Model[66] = "models/furienknife/v_hilius_goldknife.mdl";
new const KnifeGold3Model[66] = "models/furienknife/v_axe_goldknife.mdl";
new const KnifeGold4Model[66] = "models/furienknife/v_model_goldknife.mdl";
new const KnifeGold5Model[66] = "models/furienknife/v_model_goldknife.mdl";
new const KnifeGold6Model[66] = "models/furienknife/v_model_goldknife.mdl";
new bool: Knife1[33];
new bool: Knife2[33];
new bool: Knife3[33];
new bool: Knife4[33];
new bool: Knife5[33];
new bool: Knife6[33];
new bool: KnifeGold1[33];
new bool: KnifeGold2[33];
new bool: KnifeGold3[33];
new bool: KnifeGold4[33];
new bool: KnifeGold5[33];
new bool: KnifeGold6[33];
new bool: KnifeChoosen[33];
public plugin_init() {
register_plugin(PLUGIN, VERSION, AUTHOR);
register_clcmd("say /knife","SayKnife");
register_event("CurWeapon", "CurentWeapon", "be", "1=1");
RegisterHam(Ham_Spawn, "player", "Spawn", 1);
RegisterHam(Ham_TakeDamage, "player", "DamageKnife");
}
public Spawn(id) {
if(is_user_alive(id))
{
KnifeChoosen[id] = false;
Knife1[id] = false;
Knife2[id] = false;
Knife3[id] = false;
Knife4[id] = false;
Knife5[id] = false;
Knife6[id] = false;
KnifeGold1[id] = false;
KnifeGold2[id] = false;
KnifeGold3[id] = false;
KnifeGold4[id] = false;
KnifeGold5[id] = false;
KnifeGold6[id] = false;
if(cs_get_user_team(id) == CS_TEAM_T) {
MenuKnife(id);
}
}
}
public plugin_precache() {
precache_model(Knife1Model);
precache_model(Knife2Model);
precache_model(Knife3Model);
precache_model(Knife4Model);
precache_model(Knife5Model);
precache_model(Knife6Model);
precache_model(KnifeGold1Model);
precache_model(KnifeGold2Model);
precache_model(KnifeGold3Model);
precache_model(KnifeGold4Model);
precache_model(KnifeGold5Model);
precache_model(KnifeGold6Model);
}
public client_putinserver(id) {
Knife1[id] = false;
Knife2[id] = false;
Knife3[id] = false;
Knife4[id] = false;
Knife5[id] = false;
Knife6[id] = false;
KnifeGold1[id] = false;
KnifeGold2[id] = false;
KnifeGold3[id] = false;
KnifeGold4[id] = false;
KnifeGold5[id] = false;
KnifeGold6[id] = false;
}
public MenuKnife(id)
{
new menu = menu_create ("\rNume\w.\yNume\w.\rRo \yKnife \rMenu", "CaseMenu");
menu_additem(menu, "\yPlayer \rKnife", "1");
menu_additem(menu, "\yV\w.\yI\w.\yP \rKnife", "2");
menu_setprop(menu, MPROP_EXIT, MEXIT_ALL);
menu_display(id, menu, 0 );
return 1;
}
public CaseMenu(id, menu, item) {
if(item == MENU_EXIT) {
return 1;
}
new data [7], szName [64];
new access, callback;
menu_item_getinfo (menu, item, access, data,charsmax (data), szName,charsmax (szName), callback);
new key = str_to_num (data);
switch (key)
{
case 1:
{
MenuPlayeri(id);
}
case 2:
{
if( get_user_flags( id ) & VIP_FLAG ) {
MenuVIP(id);
}
else
{
ChatColor(id, "!g[Furien Knife]!nAcest meniu poate fi accesat doar de membri !gVIP");
MenuKnife(id);
}
}
}
menu_destroy (menu);
return 1;
}
public MenuPlayeri(id) {
new menu = menu_create ("\yFurien \rPlayer \yKnife \rMenu", "CaseKnifePlayeri");
menu_additem(menu, "\yLava \rKnife", "1");
menu_additem(menu, "\yKarambit \rKnife", "2");
menu_additem(menu, "\yWolverin \rKnife", "3");
menu_additem(menu, "\yNeon \rKnife", "4");
menu_additem(menu, "\yCelurit \rKnife", "5");
menu_additem(menu, "\yModel \rKnife", "6");
menu_setprop(menu, MPROP_EXIT, MEXIT_ALL);
menu_display(id, menu, 0 );
return 1;
}
public CaseKnifePlayeri(id, menu, item) {
if(item == MENU_EXIT) {
return 1;
}
if(!(is_user_alive(id))) {
ChatColor(id, "!g[Furien Knife] !nNu poti alege cutitul atunci când esti mort");
return 1;
}
new data [6], szName [64];
new access, callback;
menu_item_getinfo (menu, item, access, data,charsmax (data), szName,charsmax (szName), callback);
new key = str_to_num (data);
switch (key)
{
case 1:
{
KnifeChoosen[id] = true;
Knife1[id] = true;
CurentWeapon(id);
ChatColor(id, "!g[Furien Knife] !nAi Ales !gLava Knife");
}
case 2:
{
KnifeChoosen[id] = true;
Knife2[id] = true;
CurentWeapon(id);
ChatColor(id, "!g[Furien Knife] !nAi Ales !gKarambit Knife");
}
case 3:
{
KnifeChoosen[id] = true;
Knife3[id] = true;
CurentWeapon(id);
ChatColor(id, "!g[Furien Knife] !nAi ales !gWolverin Knife");
}
case 4:
{
KnifeChoosen[id] = true;
Knife4[id] = true;
CurentWeapon(id);
ChatColor(id, "!g[Furien Knife] !nAi ales !gNeon Knife");
}
case 5:
{
KnifeChoosen[id] = true;
Knife5[id] = true;
CurentWeapon(id);
ChatColor(id, "!g[Furien Knife] !nAi ales !gCelurit Knife");
}
case 6:
{ KnifeChoosen[id] = true;
Knife6[id] = true;
CurentWeapon(id);
ChatColor(id, "!g[Furien Knife] !nAi ales !gModel Knife");
}
}
menu_destroy (menu);
return 1;
}
public MenuVIP(id) {
new menu = menu_create ("\yFurien \rVIP \yKnife \rMenu", "CaseKnifeVIP");
menu_additem(menu, "\wDefault \yGold \rKnife", "1");
menu_additem(menu, "\wHilius \yGold \rKnife ", "2");
menu_additem(menu, "\wAxe \yGold \rKnife", "3");
menu_additem(menu, "\wModel \yGold \rKnife", "4");
menu_additem(menu, "\wModel \yGold \rKnife", "5");
menu_additem(menu, "\wModel \yGold \rKnife", "6");
menu_setprop(menu, MPROP_EXIT, MEXIT_ALL);
menu_display(id, menu, 0 );
return 1;
}
public CaseKnifeVIP(id, menu, item) {
if(item == MENU_EXIT) {
return 1;
}
if(!(is_user_alive(id))) {
ChatColor(id, "!g[Furien Knife] !nNu poti alege cutitul atunci când esti mort");
return 1;
}
new data [6], szName [64];
new access, callback;
menu_item_getinfo (menu, item, access, data,charsmax (data), szName,charsmax (szName), callback);
new key = str_to_num (data);
switch (key)
{
case 1:
{
KnifeChoosen[id] = true;
KnifeGold1[id] = true;
CurentWeapon(id);
ChatColor(id, "!g[Furien Knife] !nAi ales !gKnife Gold");
}
case 2:
{
KnifeChoosen[id] = true;
KnifeGold2[id] = true;
CurentWeapon(id);
ChatColor(id, "!g[Furien Knife] !nAi ales !gHilius Gold");
}
case 3:
{
KnifeChoosen[id] = true;
KnifeGold3[id] = true;
CurentWeapon(id);
ChatColor(id, "!g[Furien Knife] !nAi ales !gAxe Gold");
}
case 4:
{
KnifeChoosen[id] = true;
KnifeGold4[id] = true;
CurentWeapon(id);
ChatColor(id, "!g[Furien Knife] !nAi ales !gModel Gold");
}
case 5:
{
KnifeChoosen[id] = true;
KnifeGold5[id] = true;
CurentWeapon(id);
ChatColor(id, "!g[Furien Knfie] !nAi ales !gModel Gold");
}
case 6:
{
KnifeChoosen[id] = true;
KnifeGold6[id] = true;
CurentWeapon(id);
ChatColor(id, "!g[Furine Knife] !nAi ales !gModel Gold");
}
}
menu_destroy (menu);
return 1;
}
public CurentWeapon(id) {
if(get_user_weapon(id) == CSW_KNIFE) {
if(Knife1[id])
set_pev(id, pev_viewmodel2, Knife1Model);
if(Knife2[id])
set_pev(id, pev_viewmodel2, Knife2Model);
if(Knife3[id])
set_pev(id, pev_viewmodel2, Knife3Model);
if(Knife4[id])
set_pev(id, pev_viewmodel2, Knife4Model);
if(Knife5[id])
set_pev(id, pev_viewmodel2, Knife5Model);
if(Knife6[id])
set_pev(id, pev_viewmodel2, Knife6Model);
if(KnifeGold1[id])
set_pev(id, pev_viewmodel2, KnifeGold1Model);
if(KnifeGold2[id])
set_pev(id, pev_viewmodel2, KnifeGold2Model);
if(KnifeGold3[id])
set_pev(id, pev_viewmodel2, KnifeGold3Model);
if(KnifeGold4[id])
set_pev(id, pev_viewmodel2, KnifeGold4Model);
if(KnifeGold5[id])
set_pev(id, pev_viewmodel2, KnifeGold5Model);
if(KnifeGold6[id])
set_pev(id, pev_viewmodel2, KnifeGold6Model);
}
}
public DamageKnife ( Victim, Inflictor, Attacker, Float:fDamage ) {
if(is_user_connected(Attacker) && Attacker != Victim) {
if(get_user_weapon(Attacker) == CSW_KNIFE) {
if(Knife1[Attacker])
SetHamParamFloat(4, fDamage * 2.0);
if(Knife2[Attacker])
SetHamParamFloat(4, fDamage * 2.0);
if(Knife3[Attacker])
SetHamParamFloat(4, fDamage * 2.0);
if(Knife4[Attacker])
SetHamParamFloat(4, fDamage * 2.0);
if(Knife5[Attacker])
SetHamParamFloat(4, fDamage * 2.0);
if(Knife6[Attacker])
SetHamParamFloat(4, fDamage * 2.0);
if(KnifeGold1[Attacker])
SetHamParamFloat(4, fDamage * 4.0);
if(KnifeGold2[Attacker])
SetHamParamFloat(4, fDamage * 4.0);
if(KnifeGold3[Attacker])
SetHamParamFloat(4, fDamage * 4.0);
if(KnifeGold4[Attacker])
SetHamParamFloat(4, fDamage * 4.0);
if(KnifeGold5[Attacker])
SetHamParamFloat(4, fDamage * 4.0);
if(KnifeGold6[Attacker])
SetHamParamFloat(4, fDamage * 4.0);
}
}
}
public SayKnife(id) {
if(KnifeChoosen[id]) {
ChatColor(id, "!g[Furien Knife] !nAti ales deja un cutit în aceasta runda");
return;
}
if(cs_get_user_team(id) == CS_TEAM_T) {
MenuKnife(id);
}
}
stock ChatColor(const id, const input[], any:...) {
new count = 1, players[32];
static msg[191];
vformat(msg, 190, input, 3);
replace_all(msg, 190, "!g", "^4"); // verde
replace_all(msg, 190, "!n", "^1"); // galben/alb/negru
replace_all(msg, 190, "!t", "^3"); // rosu/albastru/gri
replace_all(msg, 190, "!t2", "^0"); // rosu2/albastru2/gri2
if (id) players[0] = id; else get_players(players, count, "ch");
{
for (new i = 0; i < count; i++)
{
if (is_user_connected(players))
{
message_begin(MSG_ONE_UNRELIABLE, get_user_msgid("SayText"), _, players);
write_byte(players);
write_string(msg);
message_end();
}
}
}
}