Cod: Selectaţi tot
#include <amxmodx>
#include <cstrike>
#include <fakemeta>
#include <hamsandwich>
#include <fun>
new const PLUGIN[] = "Furien Spawn Knife Menu";
new const VERSION[] = "0.1.1";
#define is_user_valid(%0) (1 <= %0 <= g_iMaxPlayers)
#define is_user_vip(%1) (get_user_flags(%1) & ADMIN_LEVEL_H)
// Customization vars
new g_iMaxPlayers, bool:g_bKnifeIgnes[33], bool:g_bKnifeKatana[33], bool:g_bKnifexFother[33],
bool:g_bKnifeDualKatana[33], bool:g_bKnifeChoosen[33];
new const g_szKnifeModels[][] =
{
"models/furien_knife/v_ignes.mdl",
"models/furien_knife/v_katana.mdl",
"models/furien_knife/v_xfother.mdl",
"models/furien_knife/v_psiho.mdl"
};
//Native
native fcs_get_user_credits(id);
native fcs_set_user_credits(id, credits);
native give_saber(id, value);
//native remove_saber(id);
native set_user_ruyistick(id, value);
//native remove_ruyi(id);
native give_barlog9(id);
#define IsPlayer(%0) ( 1 <= %0 <= g_iMaxPlayers )
public plugin_init()
{
register_plugin(PLUGIN, VERSION, "Adventx");
// Events
register_event("CurWeapon", "event_CurrentWeapon", "be", "1=1");
// HAM Forwards
RegisterHam(Ham_Spawn, "player", "fw_PalyerSpawn_Post", 1);
RegisterHam(Ham_TakeDamage, "player", "fw_PlayerTakeDamage");
RegisterHam( Ham_Killed, "player", "fw_PlayerKilled" );
// Client Commands
register_clcmd("say /knife","clcmd_knife");
// Vars
g_iMaxPlayers = get_maxplayers();
}
public plugin_precache()
{
// Precache Models
for (new i = 0; i < sizeof g_szKnifeModels; i++)
engfunc(EngFunc_PrecacheModel, g_szKnifeModels[i]);
}
public client_putinserver(id)
{
// reset boolean's
fm_reset_variable(id);
}
public fw_PalyerSpawn_Post(id)
{
if (!is_user_alive(id) || cs_get_user_team(id) != CS_TEAM_T)
return;
ShowMenuKnife(id);
fm_reset_variable(id);
}
public ShowMenuKnife(id)
{
new szTitle[128];
formatex(szTitle, charsmax(szTitle), "\rFurien Knife Menu^n\yCredite: \w%d", fcs_get_user_credits(id));
new szMenu = menu_create(szTitle, "KnifeMenuHandler");
menu_additem(szMenu, "Ignes", "1");
menu_additem(szMenu, "Katana", "2");
menu_additem(szMenu, "xFother^n", "3");
menu_additem(szMenu, "Ruyi \r[ \y15 Credits \r]", "4");
menu_additem(szMenu, "Psiho \r[ \y20 Credits \r]", "5");
menu_additem(szMenu, "Saber Light \r[ \y25 Credits \r]", "6");
if(is_user_vip(id))
menu_additem (szMenu, "Balrog XI \r[ \rONLY VIP \r]", "7");
else
menu_additem (szMenu, "Balrog XI \r[ \dONLY VIP \r]", "7");
menu_setprop(szMenu, MPROP_EXIT, MEXIT_ALL);
menu_display(id, szMenu, 0);
return PLUGIN_HANDLED;
}
public KnifeMenuHandler(id, szMenu, item)
{
if(item == MENU_EXIT || !is_user_alive(id) || cs_get_user_team(id) != CS_TEAM_T)
{
menu_destroy(szMenu);
return PLUGIN_HANDLED;
}
new data[6], szName[64], iaccess, callback;
menu_item_getinfo(szMenu, item, iaccess, data,charsmax (data), szName,charsmax (szName), callback);
new key = str_to_num(data);
switch (key)
{
case 1:
{
g_bKnifeIgnes[id] = true;
g_bKnifeChoosen[id] = true;
event_CurrentWeapon(id);
ChatColor(id, "!g[Furien] !nYou have chosen knife !tSkull");
}
case 2:
{
g_bKnifeKatana[id] = true;
g_bKnifeChoosen[id] = true;
event_CurrentWeapon(id);
ChatColor(id, "!g[Furien] !nYou have chosen knife !tKatana");
}
case 3:
{
g_bKnifexFother[id] = true;
g_bKnifeChoosen[id] = true;
event_CurrentWeapon(id);
ChatColor(id, "!g[Furien] !nYou have chosen knife !txFother");
}
case 4:
{
if (fcs_get_user_credits(id) < 15)
{
ShowMenuKnife(id);
ChatColor(id, "!g[Furien] !nYou don't have enough credits to buy !tRuyi");
}
else
{
set_user_ruyistick(id, 1);
g_bKnifeChoosen[id] = true;
event_CurrentWeapon(id);
fcs_set_user_credits(id, fcs_get_user_credits(id) - 15);
ChatColor(id, "!g[Furien] !nYou bought !tRuyi !nfor !t15 credits");
}
}
case 5:
{
if (fcs_get_user_credits(id) < 20)
{
ShowMenuKnife(id);
ChatColor(id, "!g[Furien] !nYou don't have enough credits to buy !tPsiho");
}
else
{
g_bKnifeDualKatana[id] = true;
g_bKnifeChoosen[id] = true;
event_CurrentWeapon(id);
fcs_set_user_credits(id, fcs_get_user_credits(id) - 20);
ChatColor(id, "!g[Furien] !nYou bought !tPsiho !nfor !t20 credits");
}
}
case 6:
{
if (fcs_get_user_credits(id) < 25)
{
ShowMenuKnife(id);
ChatColor(id, "!g[Furien] !nYou don't have enough credits to buy !tSaber Light");
}
else
{
give_saber(id, 1);
g_bKnifeChoosen[id] = true;
event_CurrentWeapon(id);
fcs_set_user_credits(id, fcs_get_user_credits(id) - 25);
ChatColor(id, "!g[Furien] !nYou bought !tSaber Light !nfor !t25 credits");
}
}
case 7:
{
if(is_user_vip(id))
{
give_barlog9(id);
g_bKnifeChoosen[id] = true;
event_CurrentWeapon(id);
ChatColor(id, "!g[Furien VIP] !nYou have chosen knife !tBalrog XI");
}
else
{
ChatColor(id, "!g[Furien VIP] !nFor more details contact owner.");
ShowMenuKnife(id);
}
}
}
menu_destroy (szMenu);
return PLUGIN_HANDLED;
}
public fw_PlayerTakeDamage(iVictim, iInflictor, iAttacker, Float:fDamage, iDamageBits)
{
if (IsPlayer ( iAttacker ) && get_user_weapon(iAttacker) == CSW_KNIFE)
{
if (g_bKnifeIgnes[iAttacker])
SetHamParamFloat(4, fDamage * 1.5);
if (g_bKnifeKatana[iAttacker])
SetHamParamFloat(4, fDamage * 1.8);
if (g_bKnifexFother[iAttacker])
SetHamParamFloat(4, fDamage * 2.0);
if (g_bKnifeDualKatana[iAttacker])
SetHamParamFloat(4, fDamage * 3.0);
}
}
public fw_PlayerKilled( victim, attacker, shouldgib ) {
give_saber(victim, 0)
}
public event_CurrentWeapon(id)
{
if (get_user_weapon(id) == CSW_KNIFE)
{
if(g_bKnifeIgnes[id])
set_pev(id, pev_viewmodel2, g_szKnifeModels[0]);
if(g_bKnifeKatana[id])
set_pev(id, pev_viewmodel2, g_szKnifeModels[1]);
if(g_bKnifexFother[id])
set_pev(id, pev_viewmodel2, g_szKnifeModels[2]);
if(g_bKnifeDualKatana[id])
set_pev(id, pev_viewmodel2, g_szKnifeModels[3]);
}
}
public ClCmdSayKnife(id)
{
if (!is_user_alive(id) || cs_get_user_team(id) != CS_TEAM_T && g_bKnifeChoosen[id])
return;
ShowMenuKnife(id);
}
public fm_reset_variable(id)
{
give_saber(id, 0)
g_bKnifeIgnes[id] = false;
g_bKnifeKatana[id] = false;
g_bKnifexFother[id] = false;
g_bKnifeDualKatana[id] = false;
g_bKnifeChoosen[id] = false;
set_user_ruyistick(id, 0);// pe false
}
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"); // Green Color
replace_all(msg, 190, "!n", "^1"); // Default Color
replace_all(msg, 190, "!t", "^3"); // Team Color
replace_all(msg, 190, "!t2", "^0"); // Team2 Color
if (id) players[0] = id; else get_players(players, count, "ch"); {
for (new i = 0; i < count; i++) {
if (is_user_connected(players[i])) {
message_begin(MSG_ONE_UNRELIABLE, get_user_msgid("SayText"), _, players[i]);
write_byte(players[i]);
write_string(msg);
message_end();
}
}
}
}