Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /*
- Furien Spawn Knife Menu
- Copyright (C) 2014 Adventx
- This program is free software: you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation, either version 3 of the License, or
- (at your option) any later version.
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
- You should have received a copy of the GNU General Public License
- along with this program. If not, see <http://www.gnu.org/licenses/>.
- */
- #include <amxmodx>
- #include <cstrike>
- #include <fakemeta>
- #include <hamsandwich>
- #include <fun>
- new const PLUGIN[] = "Furien Spawn Knife Menu";
- new const VERSION[] = "0.0.9";
- #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_bKnifeNataKnife[33],
- bool:g_bKnifeDualKatana[33], bool:g_bKnifeHuntedKnife[33], bool:g_bKnifeRegeneratorElf[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_nata_knife.mdl",
- "models/furien_knife/v_dual_katana.mdl",
- "models/furien_knife/v_hunted_knife.mdl",
- "models/furien_knife/v_elf_christmas.mdl"
- };
- //Native
- native fcs_get_user_credits(id);
- native fcs_set_user_credits(id, credits);
- 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");
- // 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, "Nata Knife \r[ \y15 Credits \r]", "4");
- menu_additem(szMenu, "Dual Katana \r[ \y20 Credits \r]", "5");
- menu_additem(szMenu, "Hunted Knife \r[ \y25 Credits \r]", "6");
- if(is_user_vip(id))
- menu_additem (szMenu, "Regenerator Elf \r[ \rONLY VIP \r]", "7");
- else
- menu_additem (szMenu, "Regenerator Elf \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 !tIgnes");
- }
- 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 !tNata Knife");
- }
- else
- {
- g_bKnifeNataKnife[id] = true;
- g_bKnifeChoosen[id] = true;
- event_CurrentWeapon(id);
- fcs_set_user_credits(id, fcs_get_user_credits(id) - 15);
- ChatColor(id, "!g[Furien] !nYou bought !tNata Knife !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 !tDual Katana");
- }
- 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 !tDual Katana !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 !tHuned Knife");
- }
- else
- {
- g_bKnifeHuntedKnife[id] = true;
- g_bKnifeChoosen[id] = true;
- event_CurrentWeapon(id);
- fcs_set_user_credits(id, fcs_get_user_credits(id) - 25);
- ChatColor(id, "!g[Furien] !nYou bought !tHunted Knife !nfor !t25 credits");
- }
- }
- case 7:
- {
- if(is_user_vip(id))
- {
- g_bKnifeRegeneratorElf[id] = true;
- g_bKnifeChoosen[id] = true;
- event_CurrentWeapon(id);
- ChatColor(id, "!g[Furien VIP] !nYou have chosen knife !tRegenerator Elf");
- }
- else
- {
- ShowMenuKnife(id);
- }
- }
- }
- menu_destroy (szMenu);
- return PLUGIN_HANDLED;
- }
- public fw_PlayerTakeDamage(iVictim, iInflictor, iAttacker, Float:fDamage, iDamageBits)
- {
- if (iInflictor == iAttacker && is_user_valid(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_bKnifeNataKnife[iAttacker])
- SetHamParamFloat(4, fDamage * 2.5);
- if (g_bKnifeDualKatana[iAttacker])
- SetHamParamFloat(4, fDamage * 3.0);
- if (g_bKnifeHuntedKnife[iAttacker])
- SetHamParamFloat(4, fDamage * 3.5);
- if (g_bKnifeRegeneratorElf[iAttacker])
- SetHamParamFloat(4, fDamage * 4.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_bKnifeNataKnife[id])
- set_pev(id, pev_viewmodel2, g_szKnifeModels[3]);
- if(g_bKnifeDualKatana[id])
- set_pev(id, pev_viewmodel2, g_szKnifeModels[4]);
- if(g_bKnifeHuntedKnife[id])
- set_pev(id, pev_viewmodel2, g_szKnifeModels[5]);
- if(g_bKnifeRegeneratorElf[id])
- set_pev(id, pev_viewmodel2, g_szKnifeModels[6]);
- }
- }
- 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)
- {
- g_bKnifeIgnes[id] = false;
- g_bKnifeKatana[id] = false;
- g_bKnifexFother[id] = false;
- g_bKnifeNataKnife[id] = false;
- g_bKnifeDualKatana[id] = false;
- g_bKnifeHuntedKnife[id] = false;
- g_bKnifeRegeneratorElf[id] = false;
- g_bKnifeChoosen[id] = 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();
- }
- }
- }
- }
- /* AMXX-Studio Notes - DO NOT MODIFY BELOW HERE
- *{\\ rtf1\\ ansi\\ deff0{\\ fonttbl{\\ f0\\ fnil Tahoma;}}\n\\ viewkind4\\ uc1\\ pard\\ lang1033\\ f0\\ fs16 \n\\ par }
- */
Advertisement
Add Comment
Please, Sign In to add comment