/////////////////////////////////////////////////////////////////////////////////////////////////////////////
//---------------------------------------| Furien Shop |-----------------------------------------------------
//======================================= sDs|Aragon* =======================================================
#include <amxmodx>
#include <amxmisc>
#include <cstrike>
#include <csx>
#include <engine>
#include <fakemeta>
#include <fakemeta_util>
#include <furien30>
#include <hamsandwich>
#define PLUGIN "Shop"
#define VERSION "3.0"
#define AUTHOR "Aragon*"
#define GOLD_SISTEM
#if defined GOLD_SISTEM
#define VIP_GOLD_MULTIPLIER 2.0
// Objective Modifiers
#define DEFUSING_BOMB 400.0 // Gold awarded when the user starts to defuse the bomb
#define DEFUSED_BOMB 800.0 // Gold awarded when the user defuses the bomb
#define PLANTING_BOMB 400.0 // Gold awarded when the user starts planting the bomb
#define PLANT_BOMB 800.0 // Gold awarded when the user plants the bomb
#define BOMB_PICKUP 400.0 // Gold awarded when the user picks up the bomb
#define TOUCH_HOSTAGE 400.0 // Gold awarded when the user touches a hostage
#define RESCUE_HOSTAGE 800.0 // Gold awarded when the user rescues the hostage
#define KILL_HOSTAGE 400.0 // Gold lost when killing a hostage
#define SPAWN_VIP 400.0 // Gold awarded for spawning as the VIP
#define ESCAPE_VIP 800.0 // Gold awarded for escaping as the VIP
// Kill modifiers
#define KILL 200.0 // Gold awarded for getting a headshot
#define KILL_HEADSHOT 400.0 // Gold awarded for getting a headshot
#define KILL_HOSTAGE_SAVER 400.0 // Gold awarded for killing the hostage saver
#define KILL_DEFUSER 400.0 // Gold awarded for killing the defuser
#define KILL_PLANTER 400.0 // Gold awarded for killing the planter
#define KILL_BOMB_CARRIER 400.0 // Gold awarded for killing the bomb carrier
#define KILL_VIP 800.0 // Gold awarded for killing the VIP
#define WIN_ROUND 2500.0 // Gold awarded for winning the round
enum {
PLR_BOMB_DEFUSER = 1,
PLR_BOMB_PLANTER,
PLR_HOSTAGE_RESCUER,
PLR_VIP,
PLR_BOMB_CARRIER,
};
new bool:HasBegunPlantingOrDefusing[33], PlayerRole[33], EndRound;
#endif
/* Activate or Dezactivate Item's, put // to dezactivate */
#define BOW
#define SUPERCLAWS
#define DUALKATANA
#define AXE
#define HEALTH
#define ARMOR
#define DEFUSE
#define HE
#define FLASH
//#define SMOKE
//--| Sounds |--//
/*#define BUY_SND "furien30_shop/Buy.wav"
#define SELL_SND "furien30_shop/Sell.wav"
#define ERROR_SND "furien30_shop/Error.wav"
*/
// VIP
#define OWNER_LEVEL ADMIN_IMMUNITY
#define ADMIN_LEVEL ADMIN_LEVEL_H
#define VIP_LEVEL ADMIN_LEVEL_G
new Menu;
new Prefix[] = "[Furien]";
new Mesaj, vip;
#if defined GOLD_SISTEM
new PlayerGold[33]
new GoldFile[128];
#endif
//------| Furien Shop Menu |------//
new const Knife_Sound[][] = {
"weapons/knife_deploy1.wav",
"weapons/knife_hit1.wav",
"weapons/knife_hit2.wav",
"weapons/knife_hit3.wav",
"weapons/knife_hit4.wav",
"weapons/knife_hitwall1.wav",
"weapons/knife_slash1.wav",
"weapons/knife_slash2.wav",
"weapons/knife_stab.wav"
};
new BloodSpray, BloodDrop;
new PRIMARY_WEAPONS_BITSUM = (1<<CSW_SCOUT)|(1<<CSW_XM1014)|(1<<CSW_MAC10)|(1<<CSW_AUG)|(1<<CSW_UMP45)|(1<<CSW_SG550)|(1<<CSW_GALIL)|(1<<CSW_FAMAS)|(1<<CSW_AWP)|(1<<CSW_MP5NAVY)|(1<<CSW_M249)|(1<<CSW_M3)|(1<<CSW_M4A1)|(1<<CSW_TMP)|(1<<CSW_G3SG1)|(1<<CSW_SG552)|(1<<CSW_AK47)|(1<<CSW_P90);
#if defined BOW
//#define BOW_WEAPONKEY 425757
#define weapon_bow "weapon_galil"
#define CSW_BOW CSW_GALIL
#define BOW_CLASS "bow_bolt"
#define bow_shotdelay 0.6 // Refire rate
new BowModel_V[] = "models/furien30_shop/Primary/v_bow2.mdl";
new BowModel_P[] = "models/furien30_shop/Primary/p_bow.mdl";
//new BowModel_W[] = "models/furien30_shop/Primary/w_bow.mdl";
new BowModel_S[] = "models/furien30_shop/Primary/s_bowbolt.mdl";
new Bow_Sound[][] = {
"weapons/bow_shoot1.wav",
"weapons/bow_draw.wav",
"weapons/bow_charge_start1.wav",
"weapons/bow_charge_start2.wav",
"weapons/bow_charge_finish1.wav",
"weapons/bow_charge_shoot1_empty.wav",
"weapons/bow_charge_shoot2.wav"
};
new Bow_Generic[][] = {
"sprites/furien30_bow.txt",
"sprites/furien30_shop/Bow.spr",
"sprites/furien30_shop/640hud12.spr"
};
new bool:HaveBow[33], bool:Bow_CanAttack[33], bool:Bow_SecondaryAttack[33], Float:Bow_SecondaryAttackIdle[33], Float:Bow_PrepareAttack[33], bow_clip[33], bow_reload[33], bow_event, bow_trail;
new acces_bow, bowdamage, bowknockback, bowreloadtime, bowcost, vip_bowcost;
#endif
#if defined SUPERCLAWS
new SuperClawsModel_V[] = "models/furien_knife/v_ignes.mdl";
new SuperClawsModel_P[] = "models/furien_knife/p_ignes.mdl";
new bool:HaveSuperClaws[33];
new acces_superclaws, superclawsdamage, superclawscost, vip_superclawscost;
#endif
#if defined DUALKATANA
new DualKatanaModel_V[] = "models/furien_knife/v_dual_katana.mdl";
new DualKatanaModel_P[] = "models/furien_knife/p_dual_katana.mdl";
new const DualKatana_Sound[][] = {
"weapons/katanad_draw.wav",
"weapons/katanad_hit1.wav",
"weapons/katanad_hit2.wav",
"weapons/katanad_hit1.wav",
"weapons/katanad_hit2.wav",
"weapons/katanad_hitwall.wav",
"weapons/katanad_slash1.wav",
"weapons/katanad_slash2.wav",
"weapons/katanad_stab_miss.wav"
};
new bool:HaveDualKatana[33];
new acces_dualkatana, dualkatanadamage, dualkatanacost, vip_dualkatanacost;
#endif
#if defined AXE
new AXEModel_V[] = "models/furien_knife/v_katana.mdl";
new AXEModel_P[] = "models/furien_knife/p_katana.mdl";
new const AXE_Sound[][] = {
"weapons/tomahawk_draw.wav",
"weapons/tomahawk_slash1_hit.wav",
"weapons/tomahawk_slash2_hit.wav",
"weapons/tomahawk_slash1_hit.wav",
"weapons/tomahawk_slash2_hit.wav",
"weapons/tomahawk_wall.wav",
"weapons/tomahawk_slash2.wav",
"weapons/tomahawk_slash2.wav",
"weapons/tomahawk_stab_miss.wav"
};
new bool:HaveAXE[33];
new acces_axe, axedamage, axecost, vip_axecost;
#endif
#if defined HEALTH
//#define HEALTH_SND "furien30_shop/Health.wav"
#define CHECK_HEALTH 50
new acces_health, maxhealth, healthcost, vip_healthcost
#endif
#if defined ARMOR
//#define ARMOR_SND "furien30_shop/Armor.wav"
#define CHECK_ARMOR 50
new acces_armor, maxarmor, armorcost, vip_armorcost
#endif
#if defined DEFUSE
new bool:MapHasBomb = false
new acces_defuse, defusecost, vip_defusecost
#endif
#if defined HE
new acces_he, hecost, vip_hecost;
#endif
#if defined FLASH
new acces_flash, flashcost, vip_flashcost;
#endif
#if defined SMOKE
new acces_smoke, smokecost, vip_smokecost;
#endif
////////////////////////////////////////////////////////////////////////////////////////////////////////////
// Plugin Init |
//=========================================================================================================
public plugin_init() {
register_clcmd("shop","CMD_Shop");
register_clcmd("furienshop","CMD_Shop");
register_clcmd("say /shop","CMD_Shop");
register_clcmd("say /furienshop","CMD_Shop");
register_clcmd("say_team /shop","CMD_Shop");
register_clcmd("say_team /furienshop","CMD_Shop");
register_clcmd("say shop","CMD_Shop");
register_clcmd("say furienshop","CMD_Shop");
register_clcmd("say_team shop","CMD_Shop");
register_clcmd("say_team furienshop","CMD_Shop");
register_event("TextMsg", "EVENT_Restart", "a", "2=#Game_will_restart_in");
register_event("DeathMsg", "EVENT_Death", "a");
RegisterHam(Ham_Spawn, "player", "HAM_Spawn_Post", 1);
Mesaj = register_cvar("display_msgtime", "130"); //| Time interval to display the message |//
vip = register_cvar("furien30_vip_enabled", "1"); //| VIP 0 Disable -> 1 Enable |//
#if defined GOLD_SISTEM
register_concmd("amx_give_gold", "GiveGold", ADMIN_CVAR, "Name/@All -> Amount");
register_concmd("amx_reset_gold", "ResetGold", ADMIN_CVAR, "Name/@All -> Amount");
register_logevent("LOGEVENT_RoundStart", 2, "1=Round_Start");
register_logevent("LOGEVENT_RoundEnd", 2, "1=Round_End");
register_logevent("LOGEVENT_PlayerAction", 3, "1=triggered");
register_event("SendAudio","EVENT_FurienWin","a","2=%!MRAD_terwin");
register_event("SendAudio","EVENT_AntiFurienWin","a","2=%!MRAD_ctwin");
new DataDir[64]
get_datadir(DataDir, 63)
format(GoldFile, 127, "%s/Gold.dat", DataDir)
set_task(0.5, "TASK_HudInfo", _, _, _, "b")
#endif
#if defined SUPERCLAWS
SuperClaws_Init();
#endif
#if defined BOW
Bow_Init();
#endif
#if defined DUALKATANA
DualKatana_Init();
#endif
#if defined AXE
AXE_Init();
#endif
#if defined HEALTH
Health_Init();
#endif
#if defined ARMOR
Armor_Init();
#endif
#if defined DEFUSE
new Bomb1 = engfunc(EngFunc_FindEntityByString,-1, "classname", "func_bomb_target");
new Bomb2 = engfunc(EngFunc_FindEntityByString,-1, "classname", "info_bomb_target");
if(is_valid_ent(Bomb1) || is_valid_ent(Bomb2))
MapHasBomb = true
if(MapHasBomb)
Defuse_Init();
#endif
#if defined HE
HE_Init();
#endif
#if defined FLASH
Flash_Init();
#endif
#if defined SMOKE
Smoke_Init();
#endif
set_task(get_pcvar_float(Mesaj), "MesajHud", 0, _, _, "b");
}
////////////////////////////////////////////////////////////////////////////////////////////////////////////
// Plugin Precache |
//==========================================================================================================
//------| Parecache Sounds and Models |------//
public plugin_precache() {
BloodSpray = precache_model("sprites/bloodspray.spr");
BloodDrop = precache_model("sprites/blood.spr");
#if defined BOW
Bow_Precache();
#endif
#if defined SUPERCLAWS
SuperClaws_Precache();
#endif
#if defined DUALKATANA
DualKatana_Precache();
#endif
#if defined AXE
AXE_Precache();
#endif
#if defined HEALTH
Health_Precache();
#endif
#if defined ARMOR
Armor_Precache();
#endif
/*
precache_sound(BUY_SND);
precache_sound(SELL_SND);
precache_sound(ERROR_SND);*/
}
////////////////////////////////////////////////////////////////////////////////////////////////////////////
// Plugin Natives |
//==========================================================================================================
public plugin_natives() {
#if defined GOLD_SISTEM
register_native("set_user_gold", "set_user_gold", 1);
register_native("get_user_gold", "get_user_gold", 1);
#endif
#if defined BOW
Bow_Natives();
#endif
#if defined SUPERCLAWS
SuperClaws_Natives();
#endif
#if defined DUALKATANA
DualKatana_Natives();
#endif
#if defined AXE
AXE_Natives();
#endif
}
#if defined GOLD_SISTEM
public set_user_gold(id, gold) {
if(is_user_connected(id)) {
if(gold > PlayerGold[id]) {
new Message[64];
formatex(Message,sizeof(Message)-1,"+ %d", gold - PlayerGold[id]);
HudMessage(id, Message, 0, 200, 0, 0.86, 0.87, _, _, 0.3)
}
if(gold < PlayerGold[id]) {
new Message[64];
formatex(Message,sizeof(Message)-1,"- %d", PlayerGold[id] - gold);
HudMessage(id, Message, 200, 0, 0, 0.86, 0.87, _, _, 0.3)
}
PlayerGold[id] = gold;
SaveGold(id);
}
}
public get_user_gold(id) {
return is_user_connected(id) ? PlayerGold[id] : 0
}
#endif
////////////////////////////////////////////////////////////////////////////////////////////////////////////
// Plugin CFG |
//==========================================================================================================
public plugin_cfg() {
new CfgDir[32], File[192];
get_configsdir(CfgDir, charsmax(CfgDir));
formatex(File, charsmax(File), "%s/Furien30_Shop.cfg", CfgDir);
if(file_exists(File)) {
server_cmd("exec %s", File);
}
}
////////////////////////////////////////////////////////////////////////////////////////////////////////////
// Message Hud |
//==========================================================================================================
public MesajHud(id) {
ColorChat(0, "!g%s!t Pentru a utiliza Shop-ul scrie!g /shop!t in chat",Prefix);
}
////////////////////////////////////////////////////////////////////////////////////////////////////////////
// Furien Shop Menu |
//==========================================================================================================
public CMD_Shop(id) {
if(cs_get_user_team(id) == CS_TEAM_SPECTATOR) {
//emit_sound(id,CHAN_ITEM,ERROR_SND,VOL_NORM,ATTN_NORM,0,PITCH_NORM);
return PLUGIN_HANDLED;
}
else {
new Title[64];
#if defined GOLD_SISTEM
if(get_pcvar_num(vip) && get_user_flags(id) & VIP_LEVEL)
formatex(Title,sizeof(Title)-1,"\rShop \yVIP^n\rGold: \y%i \r", get_user_gold(id));
else
formatex(Title,sizeof(Title)-1,"\rShop^n\rGold: \y%i \r", get_user_gold(id));
#else
if(get_pcvar_num(vip) && get_user_flags(id) & VIP_LEVEL)
formatex(Title,sizeof(Title)-1,"\rShop \yVIP^n\rMoney: \y$%i", cs_get_user_money(id));
else
formatex(Title,sizeof(Title)-1,"\rShop^n\rMoney: \y$%i", cs_get_user_money(id));
#endif
Menu = menu_create(Title, "ShopCmd");
}
if(!is_user_alive(id)) {
}
else {
#if defined BOW
Bow_Menu(id, "1");
#endif
#if defined SUPERCLAWS
SuperClaws_Menu(id, "2");
#endif
#if defined DUALKATANA
DualKatana_Menu(id, "3");
#endif
#if defined AXE
AXE_Menu(id, "4");
#endif
#if defined HEALTH
Health_Menu(id, "5");
#endif
#if defined DEFUSE
Armor_Menu(id, "6");
#endif
#if defined DEFUSE
if(MapHasBomb)
Defuse_Menu(id, "7");
#endif
menu_additem(Menu, "\wGrenades - \rSubMenu", "8", 0);
}
menu_setprop(Menu, MPROP_EXIT, MEXIT_ALL);
menu_display(id, Menu, 0);
return PLUGIN_HANDLED;
}
public ShopCmd(id, menu, item) {
if(item == MENU_EXIT) {
menu_destroy(menu);
return PLUGIN_HANDLED;
}
new Data[6], Name[64];
new Access, CallBack;
menu_item_getinfo(menu, item, Access, Data,5, Name, 63, CallBack);
new Key = str_to_num(Data);
switch(Key) {
#if defined SUPERCLAWS
case 1: Buy_Bow(id);
#endif
#if defined SUPERCLAWS
case 2: Buy_SuperClaws(id);
#endif
#if defined DUALKATANA
case 3: Buy_DualKatana(id);
#endif
#if defined AXE
case 4: Buy_AXE(id);
#endif
#if defined HEALTH
case 5: Buy_Health(id);
#endif
#if defined ARMOR
case 6: Buy_Armor(id);
#endif
#if defined DEFUSE
case 7: {
if(MapHasBomb)
Buy_Defuse(id);
}
#endif
case 8: CMD_Grenades(id);
default: return PLUGIN_HANDLED;
}
menu_destroy(menu);
return PLUGIN_HANDLED;
}
////////////////////////////////////////////////////////////////////////////////////////////////////////////
// Grenades Menu |
//==========================================================================================================
public CMD_Grenades(id) {
new Title[64];
#if defined GOLD_SISTEM
if(get_pcvar_num(vip) && get_user_flags(id) & VIP_LEVEL)
formatex(Title,sizeof(Title)-1,"\rGrenades Menu \yVIP^n\rGold: \y%i \r", get_user_gold(id)) ;
else
formatex(Title,sizeof(Title)-1,"\rGrenades Menu^n\rGold: \y%i \r", get_user_gold(id));
#else
if(get_pcvar_num(vip) && get_user_flags(id) & VIP_LEVEL)
formatex(Title,sizeof(Title)-1,"\rGrenades Menu \yVIP^n\rMoney: \y$%i", cs_get_user_money(id));
else
formatex(Title,sizeof(Title)-1,"\rGrenades Menu^n\rMoney: \y$%i", cs_get_user_money(id));
#endif
Menu = menu_create(Title, "GrenadesCmd");
#if defined HE
HE_Menu(id, "1");
#endif
#if defined FLASH
Flash_Menu(id, "2");
#endif
#if defined SMOKE
Smoke_Menu(id, "3");
#endif
menu_setprop(Menu, MPROP_EXIT, MEXIT_ALL);
menu_display(id, Menu, 0);
return PLUGIN_HANDLED;
}
public GrenadesCmd(id, menu, item) {
if(item == MENU_EXIT) {
menu_destroy(menu);
return PLUGIN_HANDLED;
}
new Data[6], Name[64];
new Access, CallBack;
menu_item_getinfo(menu, item, Access, Data,5, Name, 63, CallBack);
new Key = str_to_num(Data);
switch(Key) {
#if defined HE
case 1: Buy_HE(id);
#endif
#if defined FLASH
case 2: Buy_Flash(id);
#endif
#if defined SMOKE
case 3: Buy_Smoke(id);
#endif
default: return PLUGIN_HANDLED;
}
menu_destroy(menu);
return PLUGIN_HANDLED;
}
////////////////////////////////////////////////////////////////////////////////////////////////////////////
// Client |
//==========================================================================================================
public client_putinserver(id) {
#if defined GOLD_SISTEM
LoadGold(id);
#endif
#if defined BOW
set_user_bow(id, false);
#endif
#if defined SUPERCLAWS
HaveSuperClaws[id] = false;
#endif
#if defined DUALKATANA
HaveDualKatana[id] = false;
#endif
#if defined AXE
HaveAXE[id] = false;
#endif
}
public EVENT_Restart() {
static id;
for(id = 1; id <= get_maxplayers(); id++) {
if(is_user_connected(id)) {
#if defined BOW
set_user_bow(id, false);
#endif
#if defined SUPERCLAWS
set_user_superclaws(id, false);
#endif
#if defined DUALKATANA
set_user_dualkatana(id, false);
#endif
#if defined AXE
set_user_axe(id, false);
#endif
}
}
}
public EVENT_Death() {
new Victim = read_data(2)
#if defined GOLD_SISTEM
new Attacker = read_data(1)
new Headshot = read_data(4)
if(is_user_connected(Attacker) && Attacker != Victim) {
new Float:BonusGold
(get_user_flags(Attacker) & VIP_LEVEL) ? (BonusGold = (KILL * VIP_GOLD_MULTIPLIER)) : (BonusGold = KILL)
new Gold = floatround(BonusGold)
set_user_gold(Attacker, get_user_gold(Attacker) + Gold)
if(Headshot) {
(get_user_flags(Attacker) & VIP_LEVEL) ? (BonusGold = (KILL_HEADSHOT * VIP_GOLD_MULTIPLIER)) : (BonusGold = KILL_HEADSHOT)
Gold = floatround(BonusGold)
set_user_gold(Attacker, get_user_gold(Attacker) + Gold)
}
if(PlayerRole[Victim] == PLR_HOSTAGE_RESCUER) {
(get_user_flags(Attacker) & VIP_LEVEL) ? (BonusGold = (KILL_HOSTAGE_SAVER * VIP_GOLD_MULTIPLIER)) : (BonusGold = KILL_HOSTAGE_SAVER)
Gold = floatround(BonusGold)
set_user_gold(Attacker, get_user_gold(Attacker) + Gold)
}
else if(PlayerRole[Victim] == PLR_BOMB_DEFUSER) {
(get_user_flags(Attacker) & VIP_LEVEL) ? (BonusGold = (KILL_DEFUSER * VIP_GOLD_MULTIPLIER)) : (BonusGold = KILL_DEFUSER)
Gold = floatround(BonusGold)
set_user_gold(Attacker, get_user_gold(Attacker) + Gold)
}
else if(PlayerRole[Victim] == PLR_BOMB_PLANTER) {
(get_user_flags(Attacker) & VIP_LEVEL) ? (BonusGold = (KILL_PLANTER * VIP_GOLD_MULTIPLIER)) : (BonusGold = KILL_PLANTER)
Gold = floatround(BonusGold)
set_user_gold(Attacker, get_user_gold(Attacker) + Gold)
}
else if(PlayerRole[Victim] == PLR_BOMB_CARRIER) {
(get_user_flags(Attacker) & VIP_LEVEL) ? (BonusGold = (KILL_BOMB_CARRIER * VIP_GOLD_MULTIPLIER)) : (BonusGold = KILL_BOMB_CARRIER)
Gold = floatround(BonusGold)
set_user_gold(Attacker, get_user_gold(Attacker) + Gold)
}
else if(PlayerRole[Victim] == PLR_VIP) {
(get_user_flags(Attacker) & VIP_LEVEL) ? (BonusGold = (KILL_VIP * VIP_GOLD_MULTIPLIER)) : (BonusGold = KILL_VIP)
Gold = floatround(BonusGold)
set_user_gold(Attacker, get_user_gold(Attacker) + Gold)
}
}
PlayerRole[Victim] = 0;
#endif
#if defined BOW
set_user_bow(Victim, false);
#endif
#if defined SUPERCLAWS
set_user_superclaws(Victim, false);
#endif
#if defined DUALKATANA
set_user_dualkatana(Victim, false);
#endif
#if defined AXE
set_user_axe(Victim, false);
#endif
}
#if defined GOLD_SISTEM
public LOGEVENT_RoundStart() {
EndRound = false
}
public LOGEVENT_RoundEnd() {
EndRound = true
}
public LOGEVENT_PlayerAction() {
new Arg[64], Action[64], Name[64];
new UserId, id;
read_logargv(0, Arg, 64);
read_logargv(2, Action, 64);
parse_loguser(Arg, Name, 64, UserId);
id = find_player("k", UserId);
if(is_user_connected(id) && !EndRound) {
if(equal(Action,"Dropped_The_Bomb")) {
PlayerRole[id] = 0;
new Float:BonusGold
(get_user_flags(id) & VIP_LEVEL) ? (BonusGold = (BOMB_PICKUP * VIP_GOLD_MULTIPLIER)) : (BonusGold = BOMB_PICKUP)
new Gold = floatround(BonusGold)
set_user_gold(id, get_user_gold(id) - Gold)
}
else if(equal(Action,"Got_The_Bomb")) {
PlayerRole[id] = PLR_BOMB_CARRIER;
new Float:BonusGold
(get_user_flags(id) & VIP_LEVEL) ? (BonusGold = (BOMB_PICKUP * VIP_GOLD_MULTIPLIER)) : (BonusGold = BOMB_PICKUP)
new Gold = floatround(BonusGold)
set_user_gold(id, get_user_gold(id) + Gold)
}
else if(equal(Action,"Touched_A_Hostage")) {
PlayerRole[id] = PLR_HOSTAGE_RESCUER;
new Float:BonusGold
(get_user_flags(id) & VIP_LEVEL) ? (BonusGold = (TOUCH_HOSTAGE * VIP_GOLD_MULTIPLIER)) : (BonusGold = TOUCH_HOSTAGE)
new Gold = floatround(BonusGold)
set_user_gold(id, get_user_gold(id) + Gold)
}
else if(equal(Action,"Rescued_A_Hostage")) {
new Float:BonusGold
(get_user_flags(id) & VIP_LEVEL) ? (BonusGold = (RESCUE_HOSTAGE * VIP_GOLD_MULTIPLIER)) : (BonusGold = RESCUE_HOSTAGE)
new Gold = floatround(BonusGold)
set_user_gold(id, get_user_gold(id) + Gold)
}
else if(equal(Action,"Killed_A_Hostage")) {
new Float:BonusGold
(get_user_flags(id) & VIP_LEVEL) ? (BonusGold = (KILL_HOSTAGE * VIP_GOLD_MULTIPLIER)) : (BonusGold = KILL_HOSTAGE)
new Gold = floatround(BonusGold)
set_user_gold(id, get_user_gold(id) - Gold)
}
else if(equal(Action,"Became_VIP")) {
PlayerRole[id] = PLR_VIP;
new Float:BonusGold
(get_user_flags(id) & VIP_LEVEL) ? (BonusGold = (SPAWN_VIP * VIP_GOLD_MULTIPLIER)) : (BonusGold = SPAWN_VIP)
new Gold = floatround(BonusGold)
set_user_gold(id, get_user_gold(id) + Gold)
}
else if(equal(Action,"Escaped_As_VIP")) {
new Float:BonusGold
(get_user_flags(id) & VIP_LEVEL) ? (BonusGold = (ESCAPE_VIP * VIP_GOLD_MULTIPLIER)) : (BonusGold = ESCAPE_VIP)
new Gold = floatround(BonusGold)
set_user_gold(id, get_user_gold(id) + Gold)
}
}
}
public EVENT_FurienWin() {
Gold_WinRound(1)
}
public EVENT_AntiFurienWin() {
Gold_WinRound(2)
}
public bomb_defusing(defuser) {
if(is_user_connected(defuser) && !HasBegunPlantingOrDefusing[defuser]) {
new Float:BonusGold
(get_user_flags(defuser) & VIP_LEVEL) ? (BonusGold = (DEFUSING_BOMB * VIP_GOLD_MULTIPLIER)) : (BonusGold = DEFUSING_BOMB)
new Gold = floatround(BonusGold)
set_user_gold(defuser, get_user_gold(defuser) + Gold)
PlayerRole[defuser] = PLR_BOMB_DEFUSER;
HasBegunPlantingOrDefusing[defuser] = true;
}
}
public bomb_defused(defuser) {
if(is_user_connected(defuser)) {
new Float:BonusGold
(get_user_flags(defuser) & VIP_LEVEL) ? (BonusGold = (DEFUSED_BOMB * VIP_GOLD_MULTIPLIER)) : (BonusGold = DEFUSED_BOMB)
new Gold = floatround(BonusGold)
set_user_gold(defuser, get_user_gold(defuser) + Gold)
PlayerRole[defuser] = 0;
}
}
public bomb_planting(planter) {
if(is_user_connected(planter) && !HasBegunPlantingOrDefusing[planter]) {
new Float:BonusGold
(get_user_flags(planter) & VIP_LEVEL) ? (BonusGold = (PLANTING_BOMB * VIP_GOLD_MULTIPLIER)) : (BonusGold = PLANTING_BOMB)
new Gold = floatround(BonusGold)
set_user_gold(planter, get_user_gold(planter) + Gold)
PlayerRole[planter] = PLR_BOMB_PLANTER;
HasBegunPlantingOrDefusing[planter] = true;
}
}
public bomb_planted(planter) {
if(is_user_connected(planter)) {
new Float:BonusGold
(get_user_flags(planter) & VIP_LEVEL) ? (BonusGold = (PLANT_BOMB * VIP_GOLD_MULTIPLIER)) : (BonusGold = PLANT_BOMB)
new Gold = floatround(BonusGold)
set_user_gold(planter, get_user_gold(planter) + Gold)
PlayerRole[planter] = 0;
}
}
public Gold_WinRound(Winner) {
new Players[32], Num, i, id;
get_players(Players, Num);
for(i = 0; i < Num; i++) {
id = Players;
if(get_user_team(id) == Winner) {
new Float:BonusGold
(get_user_flags(id) & VIP_LEVEL) ? (BonusGold = (WIN_ROUND * VIP_GOLD_MULTIPLIER)) : (BonusGold = WIN_ROUND)
new Gold = floatround(BonusGold)
set_user_gold(id, get_user_gold(id) + Gold)
}
}
}
public TASK_HudInfo() {
static id
for(id = 1; id <= get_maxplayers(); id++) {
if(is_user_alive(id) && is_user_connected(id)) {
new Message[64];
formatex(Message,sizeof(Message)-1,"G: %d", get_user_gold(id));
HudMessage(id, Message, 200, 100, 0, 0.85, 0.90, _, _, 0.5)
set_pdata_int(id, 361, get_pdata_int(id, 361) | (1<<5));
}
new Players[32], Num, Spectator;
get_players(Players, Num, "bch");
for(new index = 0; index < Num; ++index) {
Spectator = Players[index];
if(pev(Spectator, pev_iuser2) == id) {
if(is_user_connected(id) && is_user_connected(Spectator) && is_user_alive(id) && id != Spectator) {
new Message[64];
formatex(Message,sizeof(Message)-1,"G: %d", get_user_gold(id));
HudMessage(Spectator, Message, 200, 100, 0, 0.85, 0.90, _, _, 0.5)
}
}
}
}
}
#endif
public HAM_Spawn_Post(id) {
if(is_user_alive(id) && is_user_connected(id)) {
#if defined BOW
set_user_bow(id, false);
#endif
#if defined SUPERCLAWS
if(get_user_team(id) != 1)
set_user_superclaws(id, false);
#endif
#if defined DUALKATANA
if(get_user_team(id) != 1)
set_user_dualkatana(id, false);
#endif
#if defined AXE
if(get_user_team(id) != 1)
set_user_axe(id, false);
#endif
}
}
/////////////////////////////////////////////////////////////////////////////////////////////////////////////
//-----------------------------------------| Bow |-----------------------------------------------------------
//======================================= sDs|Aragon* =======================================================
#if defined BOW
Bow_Init() {
register_clcmd("furien30_bow", "Hook_Bow");
register_clcmd("drop", "Bow_Drop");
register_clcmd("buy_bow", "Buy_Bow");
register_clcmd("bow", "Buy_Bow");
register_clcmd("say buy_bow", "Buy_Bow");
register_clcmd("say /bow", "Buy_Bow");
register_clcmd("say /buy_bow", "Buy_Bow");
register_clcmd("say_team buy_bow", "Buy_Bow");
register_clcmd("say_team /bow", "Buy_Bow");
register_clcmd("say_team /buy_bow", "Buy_Bow");
register_event("CurWeapon", "Bow_ViewModel", "be", "1=1");
register_event("WeapPickup","Bow_ViewModel","b","1=19");
//register_forward(FM_SetModel, "Bow_WorldModel");
register_forward(FM_UpdateClientData, "Bow_UpdateClientData_Post", 1);
register_forward(FM_PlaybackEvent, "Bow_PlaybackEvent");
register_forward(FM_CmdStart, "Bow_CmdStart");
RegisterHam(Ham_Item_Deploy , weapon_bow, "Bow_Deploy_Post", 1);
//RegisterHam(Ham_Item_AddToPlayer, weapon_bow, "Bow_AddToPlayer");
RegisterHam(Ham_Weapon_Reload, weapon_bow, "Bow_Reload");
RegisterHam(Ham_Weapon_Reload, weapon_bow, "Bow_Reload_Post", 1);
RegisterHam(Ham_Item_PostFrame, weapon_bow, "Bow_PostFrame");
register_think(BOW_CLASS, "Bow_Think");
register_touch(BOW_CLASS, "*", "Bow_Touch");
acces_bow = register_cvar("furien30_acces_bow", "0"); //| Bow Only for 0 Admin -> 1 TS |//
bowdamage = register_cvar("furien30_bow_damage", "100"); //| Bow Damage |//
bowreloadtime = register_cvar("furien30_bow_reload_time", "0.6"); //| Bow Reload Time |//
bowknockback = register_cvar("furien30_bow_knockback", "1.0"); //| Bow Bolt Knockback |//
bowcost = register_cvar("furien30_bow_cost", "16000"); //| Bow Cost |//
vip_bowcost = register_cvar("vip_bow_cost", "14000"); //| Bow Cost VIP |//
}
Bow_Precache() {
register_forward(FM_PrecacheEvent, "Bow_PrecacheEvent_Post", 1);
bow_trail = precache_model("sprites/xbeam3.spr");
precache_model(BowModel_V);
precache_model(BowModel_P);
//precache_model(BowModel_W);
precache_model(BowModel_S);
for(new i = 0; i < sizeof(Bow_Sound); i++)
engfunc(EngFunc_PrecacheSound, Bow_Sound);
for(new i = 0; i < sizeof(Bow_Generic); i++)
engfunc(EngFunc_PrecacheGeneric, Bow_Generic);
}
Bow_Natives() {
register_native("get_user_bow", "get_user_bow", 1);
register_native("set_user_bow", "set_user_bow", 1);
}
Bow_Menu(id, const Num[] = "1") {
new bow_cost = (get_pcvar_num(vip) && get_user_flags(id) & VIP_LEVEL ? get_pcvar_num(vip_bowcost) : get_pcvar_num(bowcost));
if(get_user_team(id) == 1) {
new _Bow[64];
if(!get_pcvar_num(acces_bow) && !(get_user_flags(id) & OWNER_LEVEL)) {
formatex(_Bow,sizeof(_Bow)-1,"\dCompound Bow - \rOnly OWNER\w");
}
else if(!get_user_bow(id)) {
if(!bow_cost)
formatex(_Bow,sizeof(_Bow)-1,"\wCompound Bow - \rFree\w");
else {
#if defined GOLD_SISTEM
formatex(_Bow,sizeof(_Bow)-1,"%sCompound Bow - \y%i Gold\w", (get_user_gold(id) >= bow_cost) ? "\w" : "\d", bow_cost);
#else
formatex(_Bow,sizeof(_Bow)-1,"%sCompound Bow - \y%i$\w",(cs_get_user_money(id) >= bow_cost) ? "\w" : "\d", bow_cost);
#endif
}
}
else if(get_user_bow(id)) {
formatex(_Bow,sizeof(_Bow)-1,"\wCompound Bow - \rAlready Have\w");
}
menu_additem(Menu, _Bow, Num, 0);
}
}
public Bow_Drop(id) {
if(get_user_weapon(id) == CSW_BOW && get_user_bow(id))
return PLUGIN_HANDLED;
return PLUGIN_CONTINUE;
}
public Bow_ViewModel(id) {
if(get_user_weapon(id) == CSW_BOW && get_user_bow(id)) {
set_pev(id, pev_viewmodel2, BowModel_V);
set_pev(id, pev_weaponmodel2, BowModel_P);
}
}
/*
public Bow_WorldModel(entity, model[]) {
if(!is_valid_ent(entity))
return FMRES_IGNORED;
static ClassName[33];
entity_get_string(entity, EV_SZ_classname, ClassName, charsmax(ClassName));
if(!equal(ClassName, "weaponbox"))
return FMRES_IGNORED;
new Owner = entity_get_edict(entity, EV_ENT_owner);
new _Bow = find_ent_by_owner(-1, weapon_bow, entity);
if(get_user_bow(Owner) && is_valid_ent(_Bow) && equal(model, "models/w_galil.mdl")) {
entity_set_int(_Bow, EV_INT_impulse, BOW_WEAPONKEY);
HaveBow[Owner] = false;
special_primary(Owner, false);
entity_set_model(entity, BowModel_W);
return FMRES_SUPERCEDE;
}
return FMRES_IGNORED;
}
*/
public Bow_UpdateClientData_Post(id, sendweapons, cd_handle) {
if(is_user_alive(id) && is_user_connected(id)) {
if(get_user_weapon(id) == CSW_BOW && get_user_bow(id))
set_cd(cd_handle, CD_flNextAttack, halflife_time() + 0.001);
}
}
public Bow_PlaybackEvent(flags, invoker, eventid, Float:delay, Float:origin[3], Float:angles[3], Float:fparam1, Float:fparam2, iParam1, iParam2, bParam1, bParam2) {
if(!is_user_connected(invoker))
return FMRES_IGNORED;
if(eventid != bow_event)
return FMRES_IGNORED;
playback_event(flags | FEV_HOSTONLY, invoker, eventid, delay, origin, angles, fparam1, fparam2, iParam1, iParam2, bParam1, bParam2);
return FMRES_SUPERCEDE;
}
public Bow_PrecacheEvent_Post(type, const name[]) {
if (equal("events/galil.sc", name)) {
bow_event = get_orig_retval();
return FMRES_HANDLED;
}
return FMRES_IGNORED;
}
public Bow_CmdStart(id, uc_handle, seed) {
if(is_user_alive(id) && is_user_connected(id)) {
static CurButton;
CurButton = get_uc(uc_handle, UC_Buttons);
new Float:NextAttack = get_pdata_float(id, 83, 5);
static _BOW;
_BOW = fm_find_ent_by_owner(-1, weapon_bow, id);
if(!(CurButton & IN_ATTACK2) && (pev(id, pev_oldbuttons) & IN_ATTACK2)) {
if(get_user_weapon(id) == CSW_BOW && get_user_bow(id)) {
if(Bow_CanAttack[id]) {
set_weapon_anim(id, 10);
emit_sound(id, CHAN_WEAPON, Bow_Sound[0], 1.0, ATTN_NORM, 0, PITCH_NORM);
Bow_Fire(id, 1);
static Float:PunchAngles[3];
PunchAngles[0] = random_float(-1.0, -3.0);
PunchAngles[1] = 0.0;
PunchAngles[2] = 0.0;
set_pev(id, pev_punchangle, PunchAngles);
cs_set_weapon_ammo(_BOW, cs_get_weapon_ammo(_BOW) - 1);
if(cs_get_weapon_ammo(_BOW) > 0 && !bow_reload[id] && NextAttack <= 0.0)
set_pdata_float(id, 83, 0.3, 5);
}
else {
set_weapon_anim(id, 0);
Bow_SecondaryAttack[id] = false
}
}
}
else if(CurButton & IN_ATTACK2) {
if(get_user_weapon(id) == CSW_BOW && get_user_bow(id)) {
if(Bow_SecondaryAttack[id] && Bow_SecondaryAttackIdle[id] <= get_gametime() && Bow_PrepareAttack[id] <= get_gametime() && !Bow_CanAttack[id]) {
Bow_CanAttack[id] = true
HudMessage(id, "SHOOT!", 200, 0, 0, -1.0, -1.0, 0, _, 0.5);
}
if(Bow_SecondaryAttack[id] && Bow_SecondaryAttackIdle[id] <= get_gametime()) {
set_weapon_anim(id, 8);
Bow_SecondaryAttackIdle[id] = get_gametime() + 0.43
if(!Bow_CanAttack[id])
Bow_PrepareAttack[id] = get_gametime() + 0.40
if(cs_get_weapon_ammo(_BOW) > 0 && !bow_reload[id])
set_pdata_float(id, 83, 0.44, 5);
}
else if(!Bow_SecondaryAttack[id] && cs_get_weapon_ammo(_BOW) > 0 && !bow_reload[id] && NextAttack <= 0.0) {
set_weapon_anim(id, 6);
Bow_CanAttack[id] = false;
Bow_SecondaryAttack[id] = true
Bow_SecondaryAttackIdle[id] = get_gametime() + 0.63
if(cs_get_weapon_ammo(_BOW) > 0 && !bow_reload[id])
set_pdata_float(id, 83, 0.64, 5);
}
}
}
else if(CurButton & IN_ATTACK) {
if(get_user_weapon(id) == CSW_BOW && get_user_bow(id)) {
if(cs_get_weapon_ammo(_BOW) > 0 && !bow_reload[id] && NextAttack <= 0.0) {
set_weapon_anim(id, 2);
emit_sound(id, CHAN_WEAPON, Bow_Sound[0], 1.0, ATTN_NORM, 0, PITCH_NORM);
Bow_Fire(id, 0);
cs_set_weapon_ammo(_BOW, cs_get_weapon_ammo(_BOW) - 1);
if(cs_get_weapon_ammo(_BOW) > 0 && !bow_reload[id] && NextAttack <= 0.0)
set_pdata_float(id, 83, bow_shotdelay, 5);
}
CurButton &= ~IN_ATTACK;
set_uc(uc_handle, UC_Buttons, CurButton);
}
}
}
}
/*
public Bow_AddToPlayer(Weapon, id) {
if(is_valid_ent(Weapon) && is_user_connected(id) && entity_get_int(Weapon, EV_INT_impulse) == BOW_WEAPONKEY) {
special_primary(id, true);
HaveBow[id] = true;
entity_set_int(Weapon, EV_INT_impulse, 0);
message_begin(MSG_ONE, get_user_msgid("WeaponList"), _, id);
write_string(HaveBow[id] ? "furien30_bow" : "weapon_galil"); // WeaponName
write_byte(4); // PrimaryAmmoID
write_byte(90); // PrimaryAmmoMaxAmount
write_byte(-1); // SecondaryAmmoID
write_byte(-1); // SecondaryAmmoMaxAmount
write_byte(0); // SlotID (0...N)
write_byte(17); // NumberInSlot (1...N)
write_byte(CSW_BOW); // WeaponID
write_byte(0); // Flags
message_end();
}
}
*/
public Bow_Deploy_Post(entity) {
static Owner;
Owner = get_pdata_cbase(entity, 41, 4);
if(get_user_bow(Owner)) {
set_pev(Owner, pev_viewmodel2, BowModel_V);
set_pev(Owner, pev_weaponmodel2, BowModel_P);
set_pdata_float(Owner, 83, 1.0, 5);
set_weapon_anim(Owner, 5)
static clip;
clip = cs_get_weapon_ammo(entity);
if(clip > 0)
bow_reload[Owner] = 0;
Bow_CanAttack[Owner] = false;
Bow_SecondaryAttack[Owner] = false;
}
}
public Bow_Reload(ent) {
if(!pev_valid(ent))
return HAM_IGNORED;
new id;
id = pev(ent, pev_owner);
if(!is_user_alive(id) || !get_user_bow(id))
return HAM_IGNORED;
bow_clip[id] = -1;
new Ammo = cs_get_user_bpammo(id, CSW_BOW);
if(Ammo <= 0)
return HAM_SUPERCEDE;
new Clip = get_pdata_int(ent, 51, 4);
if(Clip >= 1)
return HAM_SUPERCEDE;
bow_clip[id] = Clip;
bow_reload[id] = 1;
return HAM_IGNORED;
}
public Bow_Reload_Post(ent) {
if(!pev_valid(ent))
return HAM_IGNORED;
new id;
id = pev(ent, pev_owner);
if(!is_user_alive(id) || !get_user_bow(id))
return HAM_IGNORED;
if(bow_clip[id] == -1)
return HAM_IGNORED;
new Float:reload_time = get_pcvar_float(bowreloadtime);
set_pdata_int(ent, 51, bow_clip[id], 4);
set_pdata_float(ent, 48, reload_time, 4);
set_pdata_float(id, 83, reload_time, 5);
set_pdata_int(ent, 54, 1, 4);
return HAM_IGNORED;
}
public Bow_PostFrame(ent) {
if(!pev_valid(ent))
return HAM_IGNORED;
new id;
id = pev(ent, pev_owner);
if(!is_user_alive(id) || !get_user_bow(id))
return HAM_IGNORED;
new Float:NextAttack = get_pdata_float(id, 83, 5);
new Ammo = cs_get_user_bpammo(id, CSW_BOW);
new Clip = get_pdata_int(ent, 51, 4);
new InReload = get_pdata_int(ent, 54, 4);
if(InReload && NextAttack <= 0.0) {
new Temp = min(1 - Clip, Ammo);
set_pdata_int(ent, 51, Clip + Temp, 4);
cs_set_user_bpammo(id, CSW_BOW, Ammo - Temp);
set_pdata_int(ent, 54, 0, 4);
InReload = 0;
bow_reload[id] = 0;
}
return HAM_IGNORED;
}
public Bow_Fire(id, type) {
Bow_CanAttack[id] = false;
Bow_SecondaryAttack[id] = false;
new ent, Float:Origin[3], Float:Angles[3], Float:Velocity[3];
ent = engfunc(EngFunc_CreateNamedEntity, engfunc(EngFunc_AllocString, "info_target"));
engfunc(EngFunc_GetAttachment, id, 0, Origin, Angles);
pev(id, pev_angles, Angles);
set_pev(ent, pev_origin, Origin);
set_pev(ent, pev_angles, Angles);
set_pev(ent, pev_solid, 2);
set_pev(ent, pev_movetype, MOVETYPE_FLY);
set_pev(ent, pev_classname, BOW_CLASS);
set_pev(ent, pev_owner, id);
engfunc(EngFunc_SetModel, ent, BowModel_S);
set_pev(ent, pev_mins, {-1.0, -1.0, -1.0});
set_pev(ent, pev_maxs, {1.0, 1.0, 1.0});
if(type) {
velocity_by_aim(id, 2000, Velocity);
set_pev(ent, pev_fuser1, 2.0);
}
else {
velocity_by_aim(id, 1900, Velocity);
set_pev(ent, pev_fuser1, 1.0);
}
set_pev(ent, pev_velocity, Velocity);
message_begin(MSG_BROADCAST, SVC_TEMPENTITY);
write_byte(TE_BEAMFOLLOW); // TE id
write_short(ent); // entity:attachment to follow
write_short(bow_trail); // sprite index
write_byte(1); // life in 0.1's
write_byte(1); // line width in 0.1's
write_byte(255); // r
write_byte(255); // g
write_byte(255); // b
write_byte(200); // brightness
message_end();
}
public Bow_Think(bolt) {
if(pev_valid(bolt))
engfunc(EngFunc_RemoveEntity, bolt);
}
public Bow_Touch(bolt, touch) {
if(is_valid_ent(bolt)) {
static ClassName[32];
pev(touch, pev_classname, ClassName, charsmax(ClassName));
static Float:BoltOrigin[3];
pev(bolt, pev_origin, BoltOrigin);
new id = pev(bolt, pev_owner);
if(is_user_connected(touch) && is_user_alive(touch) && !fm_get_user_godmode(touch) && get_user_team(touch) != get_user_team(id) && touch != id) {
new DamageMulti = pev(bolt, pev_fuser1)
new Float:Damage = float(get_pcvar_num(bowdamage) * DamageMulti);
new Float:VictimOrigin[3]
pev(touch, pev_origin, VictimOrigin);
new BloodColor = ExecuteHam(Ham_BloodColor, touch);
if(BloodColor != -1) {
new Amount = floatround(Damage);
Amount *= 2; //according to HLSDK
message_begin(MSG_BROADCAST, SVC_TEMPENTITY);
write_byte(TE_BLOODSPRITE);
write_coord(floatround(VictimOrigin[0]));
write_coord(floatround(VictimOrigin[1]));
write_coord(floatround(VictimOrigin[2]));
write_short(BloodSpray);
write_short(BloodDrop);
write_byte(BloodColor);
write_byte(min(max(3, Amount/10), 16));
message_end();
}
make_knockback(touch, BoltOrigin, get_pcvar_float(bowknockback) * Damage);
if(get_user_health(touch) - Damage >= 1) {
ExecuteHam(Ham_TakeDamage, touch, id, id, Damage, DMG_BLAST);
message_begin(MSG_ONE_UNRELIABLE, get_user_msgid("Damage"), _, touch);
write_byte(0);
write_byte(0);
write_long(DMG_PARALYZE);
write_coord(0) ;
write_coord(0);
write_coord(0);
message_end();
message_begin(MSG_ONE_UNRELIABLE, get_user_msgid("ScreenFade"), {0,0,0}, touch);
write_short(1<<13);
write_short(1<<14);
write_short(0x0000);
write_byte(255);
write_byte(255);
write_byte(255);
write_byte(100) ;
message_end();
message_begin(MSG_ONE, get_user_msgid("ScreenShake"), {0,0,0}, touch);
write_short(0xFFFF);
write_short(1<<13);
write_short(0xFFFF) ;
message_end();
}
else {
death_message(id, touch, "BOW");
}
engfunc(EngFunc_RemoveEntity, bolt);
}
else {
set_pev(bolt, pev_movetype, MOVETYPE_NONE);
set_pev(bolt, pev_solid, SOLID_NOT);
set_pev(bolt, pev_animtime, get_gametime());
set_pev(bolt, pev_framerate, 1.0);
set_pev(bolt, pev_nextthink, get_gametime() + 15,0);
}
}
}
public Hook_Bow(id) {
engclient_cmd(id, weapon_bow);
return PLUGIN_HANDLED;
}
public Buy_Bow(id) {
new bow_cost = (get_pcvar_num(vip) && get_user_flags(id) & VIP_LEVEL ? get_pcvar_num(vip_bowcost) : get_pcvar_num(bowcost));
if(get_user_team(id) != 1) {
ColorChat(id, "!t%s!g Doar!t Furieni!g pot cumpara!t Compound Bow.",Prefix);
//emit_sound(id,CHAN_ITEM,ERROR_SND,VOL_NORM,ATTN_NORM,0,PITCH_NORM);
}
else if(!get_pcvar_num(acces_bow) && !(get_user_flags(id) & OWNER_LEVEL)) {
ColorChat(id, "!t%s!g Doar!t Co-Owner's!g pot cumpara!t Compound Bow.",Prefix);
//emit_sound(id,CHAN_ITEM,ERROR_SND,VOL_NORM,ATTN_NORM,0,PITCH_NORM);
}
else if(!is_user_alive(id)) {
ColorChat(id, "!t%s!g Nu poti cumpara!t Compound Bow!g cat timp esti mort.",Prefix);
//emit_sound(id,CHAN_ITEM,ERROR_SND,VOL_NORM,ATTN_NORM,0,PITCH_NORM);
}
else if(cs_get_user_team(id) == CS_TEAM_SPECTATOR) {
ColorChat(id, "!t%s!g Nu poti cumpara!t Compound Bow!g cat timp esti Spectator.",Prefix);
//emit_sound(id,CHAN_ITEM,ERROR_SND,VOL_NORM,ATTN_NORM,0,PITCH_NORM);
}
else if(get_user_bow(id)) {
ColorChat(id, "!t%s!g Ai deja!t Compound Bow.",Prefix);
//emit_sound(id,CHAN_ITEM,ERROR_SND,VOL_NORM,ATTN_NORM,0,PITCH_NORM);
}
#if defined GOLD_SISTEM
else if(get_user_gold(id) < bow_cost) {
ColorChat(id, "!t%s!g Nu ai suficiente fonduri pentru a cumpara!t Compound Bow!g. Necesar:!t %i Gold",Prefix, bow_cost);
//emit_sound(id,CHAN_ITEM,ERROR_SND,VOL_NORM,ATTN_NORM,0,PITCH_NORM);
}
#else
else if(cs_get_user_money(id) < bow_cost) {
ColorChat(id, "!t%s!g Nu ai suficiente fonduri pentru a cumpara!t Compound Bow!g. Necesar:!t %i$",Prefix, bow_cost);
//emit_sound(id,CHAN_ITEM,ERROR_SND,VOL_NORM,ATTN_NORM,0,PITCH_NORM);
}
#endif
else {
#if defined GOLD_SISTEM
set_user_gold(id, get_user_gold(id) - bow_cost);
#else
cs_set_user_money(id, cs_get_user_money(id) - bow_cost);
#endif
//emit_sound(id,CHAN_ITEM,BUY_SND,VOL_NORM,ATTN_NORM,0,PITCH_NORM);
ColorChat(id, "!t%s!g Ai cumparat!t Compound Bow.",Prefix);
set_user_bow(id, true);
}
return PLUGIN_HANDLED;
}
public get_user_bow(id) {
return HaveBow[id];
}
public set_user_bow(id, bow) {
if(bow) {
if(!HaveBow[id]) {
drop_primary_weapons(id);
special_primary(id, true);
HaveBow[id] = true;
bow_reload[id] = 0;
message_begin(MSG_ONE, get_user_msgid("WeaponList"), _, id);
write_string(HaveBow[id] ? "furien30_bow" : "weapon_galil"); // WeaponName
write_byte(4); // PrimaryAmmoID
write_byte(90); // PrimaryAmmoMaxAmount
write_byte(-1); // SecondaryAmmoID
write_byte(-1); // SecondaryAmmoMaxAmount
write_byte(0); // SlotID (0...N)
write_byte(17); // NumberInSlot (1...N)
write_byte(CSW_BOW); // WeaponID
write_byte(0); // Flags
message_end();
fm_give_item(id, weapon_bow);
new Clip = fm_get_user_weapon_entity(id, CSW_BOW);
cs_set_weapon_ammo(Clip, 1);
}
}
else {
if(HaveBow[id]) {
special_primary(id, false);
HaveBow[id] = false;
}
}
}
#endif
/////////////////////////////////////////////////////////////////////////////////////////////////////////////
//-------------------------------------| Dragon Sword |-------------------------------------------------------
//======================================= sDs|Aragon* =======================================================
#if defined SUPERCLAWS
SuperClaws_Init() {
register_clcmd("buy_superclaws", "Buy_SuperClaws");
register_clcmd("superclaws", "Buy_SuperClaws");
register_clcmd("say buy_superclaws", "Buy_SuperClaws");
register_clcmd("say /superclaws", "Buy_SuperClaws");
register_clcmd("say /buy_superclaws", "Buy_SuperClaws");
register_clcmd("say_team buy_superclaws", "Buy_SuperClaws");
register_clcmd("say_team /superclaws", "Buy_SuperClaws");
register_clcmd("say_team /buy_superclaws", "Buy_SuperClaws");
RegisterHam(Ham_TakeDamage, "player", "SuperClaws_TakeDamage");
RegisterHam(Ham_Item_Deploy, "weapon_knife", "SuperClaws_Deploy_Post", 1);
acces_superclaws = register_cvar("furien30_acces_superclaws", "0"); //| SuperClaws Only for 0 Admin -> 1 All |//
superclawsdamage = register_cvar("furien30_superclaws_damage", "3.5"); //| SuperClaws Damage |//
superclawscost = register_cvar("furien30_superclaws_cost", "12000"); //| SuperClaws Cost |//
vip_superclawscost = register_cvar("vip_superclaws_cost", "10000"); //| SuperClaws Cost VIP |//
}
SuperClaws_Precache() {
precache_model(SuperClawsModel_V);
//precache_model(SuperClawsModel_P);
}
SuperClaws_Natives() {
register_native("get_user_superclaws", "get_user_superclaws", 1);
register_native("set_user_superclaws", "set_user_superclaws", 1);
}
SuperClaws_Menu(id, const Num[] = "1") {
new superclaws_cost = (get_pcvar_num(vip) && get_user_flags(id) & VIP_LEVEL ? get_pcvar_num(vip_superclawscost) : get_pcvar_num(superclawscost));
if(get_user_team(id) == 1) {
new SuperClaws[64];
if(!get_pcvar_num(acces_superclaws) && !(get_user_flags(id) & ADMIN_LEVEL)) {
formatex(SuperClaws,sizeof(SuperClaws)-1,"\dSuper Claws - \rOnly VIP Gold\w");
}
else if(!get_user_superclaws(id)) {
if(!superclaws_cost)
formatex(SuperClaws,sizeof(SuperClaws)-1,"\wSuper Claws - \rFree\w");
else {
#if defined GOLD_SISTEM
formatex(SuperClaws,sizeof(SuperClaws)-1,"%sSuper Claws - \y%i Gold\w", (get_user_gold(id) >= superclaws_cost) ? "\w" : "\d", superclaws_cost);
#else
formatex(SuperClaws,sizeof(SuperClaws)-1,"%sSuper Claws - \y%i$\w",(cs_get_user_money(id) >= superclaws_cost) ? "\w" : "\d", superclaws_cost);
#endif
}
}
else if(get_user_superclaws(id)) {
formatex(SuperClaws,sizeof(SuperClaws)-1,"\wSuper Claws - \rAlready Have\w");
}
menu_additem(Menu, SuperClaws, Num, 0);
}
}
public SuperClaws_TakeDamage(victim, inflictor, attacker, Float:damage, damagetype) {
if(is_user_connected(attacker) && !(damagetype & (1<<24))) {
if(get_user_weapon(attacker) == CSW_KNIFE && HaveSuperClaws[attacker])
SetHamParamFloat(4, damage * get_pcvar_float(superclawsdamage));
}
}
public SuperClaws_Deploy_Post(entity) {
static Owner;
Owner = get_pdata_cbase(entity, 41, 4);
if(HaveSuperClaws[Owner]) {
set_pev(Owner, pev_viewmodel2, SuperClawsModel_V);
set_pev(Owner, pev_weaponmodel2, "");
}
}
public Buy_SuperClaws(id) {
new superclaws_cost = (get_pcvar_num(vip) && get_user_flags(id) & VIP_LEVEL ? get_pcvar_num(vip_superclawscost) : get_pcvar_num(superclawscost));
if(get_user_team(id) != 1) {
ColorChat(id, "!t%s!g Doar!t Furieni!g pot cumpara!t Super Claws.",Prefix);
//emit_sound(id,CHAN_ITEM,ERROR_SND,VOL_NORM,ATTN_NORM,0,PITCH_NORM);
}
else if(!get_pcvar_num(acces_superclaws) && !(get_user_flags(id) & ADMIN_LEVEL)) {
ColorChat(id, "!t%s!g Doar!t Co-Owner's!g pot cumpara!t Super Claws.",Prefix);
//emit_sound(id,CHAN_ITEM,ERROR_SND,VOL_NORM,ATTN_NORM,0,PITCH_NORM);
}
else if(!is_user_alive(id)) {
ColorChat(id, "!t%s!g Nu poti cumpara!t Super Claws!g cat timp esti mort.",Prefix);
//emit_sound(id,CHAN_ITEM,ERROR_SND,VOL_NORM,ATTN_NORM,0,PITCH_NORM);
}
else if(cs_get_user_team(id) == CS_TEAM_SPECTATOR) {
ColorChat(id, "!t%s!g Nu poti cumpara!t Super Claws!g cat timp esti Spectator.",Prefix);
//emit_sound(id,CHAN_ITEM,ERROR_SND,VOL_NORM,ATTN_NORM,0,PITCH_NORM);
}
else if(get_user_superclaws(id)) {
ColorChat(id, "!t%s!g Ai deja!t Super Claws.",Prefix);
//emit_sound(id,CHAN_ITEM,ERROR_SND,VOL_NORM,ATTN_NORM,0,PITCH_NORM);
}
#if defined GOLD_SISTEM
else if(get_user_gold(id) < superclaws_cost) {
ColorChat(id, "!t%s!g Nu ai suficiente fonduri pentru a cumpara!t Super Claws!g. Necesar:!t %i Gold",Prefix, superclaws_cost);
//emit_sound(id,CHAN_ITEM,ERROR_SND,VOL_NORM,ATTN_NORM,0,PITCH_NORM);
}
#else
else if(cs_get_user_money(id) < superclaws_cost) {
ColorChat(id, "!t%s!g Nu ai suficiente fonduri pentru a cumpara!t Super Claws!g. Necesar:!t %i$",Prefix, superclaws_cost);
//emit_sound(id,CHAN_ITEM,ERROR_SND,VOL_NORM,ATTN_NORM,0,PITCH_NORM);
}
#endif
else {
#if defined GOLD_SISTEM
set_user_gold(id, get_user_gold(id) - superclaws_cost);
#else
cs_set_user_money(id, cs_get_user_money(id) - superclaws_cost);
#endif
//emit_sound(id,CHAN_ITEM,BUY_SND,VOL_NORM,ATTN_NORM,0,PITCH_NORM);
ColorChat(id, "!t%s!g Ai cumparat!t Super Claws.",Prefix);
set_user_superclaws(id, true);
}
return PLUGIN_HANDLED;
}
public get_user_superclaws(id) {
return HaveSuperClaws[id];
}
public set_user_superclaws(id, superclaws) {
if(superclaws) {
#if defined DUALKATANA
HaveDualKatana[id] = false;
#endif
#if defined AXE
HaveAXE[id] = false;
#endif
HaveSuperClaws[id] = true;
if(is_user_connected(id) && is_user_alive(id) && get_user_weapon(id) == CSW_KNIFE)
ExecuteHamB(Ham_Item_Deploy, get_pdata_cbase(id, 373, 5));
}
else {
HaveSuperClaws[id] = false;
if(is_user_connected(id) && is_user_alive(id) && get_user_weapon(id) == CSW_KNIFE)
ExecuteHamB(Ham_Item_Deploy, get_pdata_cbase(id, 373, 5));
}
}
#endif
/////////////////////////////////////////////////////////////////////////////////////////////////////////////
//-------------------------------------| Dual Katana |-------------------------------------------------------
//======================================= sDs|Aragon* =======================================================
#if defined DUALKATANA
DualKatana_Init() {
register_clcmd("buy_dualkatana", "Buy_DualKatana");
register_clcmd("dualkatana", "Buy_DualKatana");
register_clcmd("say buy_dualkatana", "Buy_DualKatana");
register_clcmd("say /dualkatana", "Buy_DualKatana");
register_clcmd("say /buy_dualkatana", "Buy_DualKatana");
register_clcmd("say_team buy_dualkatana", "Buy_DualKatana");
register_clcmd("say_team /dualkatana", "Buy_DualKatana");
register_clcmd("say_team /buy_dualkatana", "Buy_DualKatana");
register_forward(FM_EmitSound, "DualKatana_EmitSound");
RegisterHam(Ham_TakeDamage, "player", "DualKatana_TakeDamage");
RegisterHam(Ham_Item_Deploy, "weapon_knife", "DualKatana_Deploy_Post", 1);
acces_dualkatana = register_cvar("furien30_acces_dualkatana", "1"); //| DualKatana Only for 0 Admin -> 1 All |//
dualkatanadamage = register_cvar("furien30_dualkatana_damage", "2.7"); //| DualKatana Damage |//
dualkatanacost = register_cvar("furien30_dualkatana_cost", "10000"); //| DualKatana Cost |//
vip_dualkatanacost = register_cvar("vip_dualkatana_cost", "8000"); //| DualKatana Cost VIP |//
}
DualKatana_Precache() {
precache_model(DualKatanaModel_V);
precache_model(DualKatanaModel_P);
for(new i;i<sizeof DualKatana_Sound;i++)
precache_sound(DualKatana_Sound);
}
DualKatana_Natives() {
register_native("get_user_dualkatana", "get_user_dualkatana", 1);
register_native("set_user_dualkatana", "set_user_dualkatana", 1);
}
DualKatana_Menu(id, const Num[] = "1") {
new dualkatana_cost = (get_pcvar_num(vip) && get_user_flags(id) & VIP_LEVEL ? get_pcvar_num(vip_dualkatanacost) : get_pcvar_num(dualkatanacost));
if(get_user_team(id) == 1) {
new DualKatana[64];
if(!get_pcvar_num(acces_dualkatana) && !(get_user_flags(id) & VIP_LEVEL)) {
formatex(DualKatana,sizeof(DualKatana)-1,"\dDual Katana - \rOnly VIP Silver\w");
}
else if(!get_user_dualkatana(id)) {
if(!dualkatana_cost)
formatex(DualKatana,sizeof(DualKatana)-1,"\wDual Katana - \rFree\w");
else {
#if defined GOLD_SISTEM
formatex(DualKatana,sizeof(DualKatana)-1,"%sDual Katana - \y%i Gold\w", (get_user_gold(id) >= dualkatana_cost) ? "\w" : "\d", dualkatana_cost);
#else
formatex(DualKatana,sizeof(DualKatana)-1,"%sDual Katana - \y%i$\w",(cs_get_user_money(id) >= dualkatana_cost) ? "\w" : "\d", dualkatana_cost);
#endif
}
}
else if(get_user_dualkatana(id)) {
formatex(DualKatana,sizeof(DualKatana)-1,"\wDual Katana - \rAlready Have\w");
}
menu_additem(Menu, DualKatana, Num, 0);
}
}
public DualKatana_EmitSound(id, channel, const sound[]) {
if(is_user_alive(id) && get_user_weapon(id) == CSW_KNIFE && HaveDualKatana[id]) {
for(new i = 0; i < sizeof Knife_Sound; i++) {
if(equal(sound, Knife_Sound)) {
emit_sound(id, channel, DualKatana_Sound, VOL_NORM, ATTN_NORM, 0, PITCH_NORM);
return FMRES_SUPERCEDE;
}
}
}
return FMRES_IGNORED;
}
public DualKatana_TakeDamage(victim, inflictor, attacker, Float:damage, damagetype) {
if(is_user_connected(attacker) && !(damagetype & (1<<24))) {
if(get_user_weapon(attacker) == CSW_KNIFE && HaveDualKatana[attacker])
SetHamParamFloat(4, damage * get_pcvar_float(dualkatanadamage));
}
}
public DualKatana_Deploy_Post(entity) {
static Owner;
Owner = get_pdata_cbase(entity, 41, 4);
if(HaveDualKatana[Owner]) {
set_pev(Owner, pev_viewmodel2, DualKatanaModel_V);
set_pev(Owner, pev_weaponmodel2, DualKatanaModel_P);
}
}
public Buy_DualKatana(id) {
new dualkatana_cost = (get_pcvar_num(vip) && get_user_flags(id) & VIP_LEVEL ? get_pcvar_num(vip_dualkatanacost) : get_pcvar_num(dualkatanacost));
if(get_user_team(id) != 1) {
ColorChat(id, "!t%s!g Doar!t Furieni!g pot cumpara!t DualKatana.",Prefix);
//emit_sound(id,CHAN_ITEM,ERROR_SND,VOL_NORM,ATTN_NORM,0,PITCH_NORM);
}
else if(!get_pcvar_num(acces_dualkatana) && !(get_user_flags(id) & VIP_LEVEL)) {
ColorChat(id, "!t%s!g Doar!t CO-Owner's!g pot cumpara!t DualKatana.",Prefix);
//emit_sound(id,CHAN_ITEM,ERROR_SND,VOL_NORM,ATTN_NORM,0,PITCH_NORM);
}
else if(!is_user_alive(id)) {
ColorChat(id, "!t%s!g Nu poti cumpara!t DualKatana!g cat timp esti mort.",Prefix);
//emit_sound(id,CHAN_ITEM,ERROR_SND,VOL_NORM,ATTN_NORM,0,PITCH_NORM);
}
else if(cs_get_user_team(id) == CS_TEAM_SPECTATOR) {
ColorChat(id, "!t%s!g Nu poti cumpara!t DualKatana!g cat timp esti Spectator.",Prefix);
//emit_sound(id,CHAN_ITEM,ERROR_SND,VOL_NORM,ATTN_NORM,0,PITCH_NORM);
}
else if(get_user_dualkatana(id)) {
ColorChat(id, "!t%s!g Ai deja!t DualKatana.",Prefix);
//emit_sound(id,CHAN_ITEM,ERROR_SND,VOL_NORM,ATTN_NORM,0,PITCH_NORM);
}
#if defined GOLD_SISTEM
else if(get_user_gold(id) < dualkatana_cost) {
ColorChat(id, "!t%s!g Nu ai suficiente fonduri pentru a cumpara!t DualKatana!g. Necesar:!t %i Gold",Prefix, dualkatana_cost);
//emit_sound(id,CHAN_ITEM,ERROR_SND,VOL_NORM,ATTN_NORM,0,PITCH_NORM);
}
#else
else if(cs_get_user_money(id) < dualkatana_cost) {
ColorChat(id, "!t%s!g Nu ai suficiente fonduri pentru a cumpara!t DualKatana!g. Necesar:!t %i$",Prefix, dualkatana_cost);
//emit_sound(id,CHAN_ITEM,ERROR_SND,VOL_NORM,ATTN_NORM,0,PITCH_NORM);
}
#endif
else {
#if defined GOLD_SISTEM
set_user_gold(id, get_user_gold(id) - dualkatana_cost);
#else
cs_set_user_money(id, cs_get_user_money(id) - dualkatana_cost);
#endif
//emit_sound(id,CHAN_ITEM,BUY_SND,VOL_NORM,ATTN_NORM,0,PITCH_NORM);
ColorChat(id, "!t%s!g Ai cumparat!t DualKatana.",Prefix);
set_user_dualkatana(id, true);
}
return PLUGIN_HANDLED;
}
public get_user_dualkatana(id) {
return HaveDualKatana[id];
}
public set_user_dualkatana(id, dualkatana) {
if(dualkatana) {
#if defined SUPERCLAWS
HaveSuperClaws[id] = false;
#endif
#if defined AXE
HaveAXE[id] = false;
#endif
HaveDualKatana[id] = true;
if(is_user_connected(id) && is_user_alive(id) && get_user_weapon(id) == CSW_KNIFE)
ExecuteHamB(Ham_Item_Deploy, get_pdata_cbase(id, 373, 5));
}
else {
HaveDualKatana[id] = false;
if(is_user_connected(id) && is_user_alive(id) && get_user_weapon(id) == CSW_KNIFE)
ExecuteHamB(Ham_Item_Deploy, get_pdata_cbase(id, 373, 5));
}
}
#endif
/////////////////////////////////////////////////////////////////////////////////////////////////////////////
//-----------------------------------------| AXE |-----------------------------------------------------------
//======================================= sDs|Aragon* =======================================================
#if defined AXE
AXE_Init() {
register_clcmd("buy_axe", "Buy_AXE");
register_clcmd("axe", "Buy_AXE");
register_clcmd("say buy_axe", "Buy_AXE");
register_clcmd("say /axe", "Buy_AXE");
register_clcmd("say /buy_axe", "Buy_AXE");
register_clcmd("say_team buy_axe", "Buy_AXE");
register_clcmd("say_team /axe", "Buy_AXE");
register_clcmd("say_team /buy_axe", "Buy_AXE");
register_forward(FM_EmitSound, "AXE_EmitSound");
RegisterHam(Ham_TakeDamage, "player", "AXE_TakeDamage");
RegisterHam(Ham_Item_Deploy, "weapon_knife", "AXE_Deploy_Post", 1);
acces_axe = register_cvar("furien30_acces_axe", "1"); //| AXE Only for 0 Admin -> 1 All |//
axedamage = register_cvar("furien30_axe_damage", "2.0"); //| AXE Damage |//
axecost = register_cvar("furien30_axe_cost", "6000"); //| AXE Cost |//
vip_axecost = register_cvar("vip_axe_cost", "4000"); //| AXE Cost VIP |//
}
AXE_Precache() {
precache_model(AXEModel_V);
precache_model(AXEModel_P);
for(new i;i<sizeof AXE_Sound;i++)
precache_sound(AXE_Sound);
}
AXE_Natives() {
register_native("get_user_axe", "get_user_axe", 1);
register_native("set_user_axe", "set_user_axe", 1);
}
AXE_Menu(id, const Num[] = "1") {
new axe_cost = (get_pcvar_num(vip) && get_user_flags(id) & VIP_LEVEL ? get_pcvar_num(vip_axecost) : get_pcvar_num(axecost));
if(get_user_team(id) == 1) {
new _AXE[64];
if(!get_pcvar_num(acces_axe) && !(get_user_flags(id) & VIP_LEVEL)) {
formatex(_AXE,sizeof(_AXE)-1,"\dMini AXE - \rOnly VIP\w");
}
else if(!get_user_axe(id)) {
if(!axe_cost)
formatex(_AXE,sizeof(_AXE)-1,"\wMini AXE - \rFree\w");
else {
#if defined GOLD_SISTEM
formatex(_AXE,sizeof(_AXE)-1,"%sMini AXE - \y%i Gold\w", (get_user_gold(id) >= axe_cost) ? "\w" : "\d", axe_cost);
#else
formatex(_AXE,sizeof(_AXE)-1,"%sMini AXE - \y%i$\w",(cs_get_user_money(id) >= axe_cost) ? "\w" : "\d", axe_cost);
#endif
}
}
else if(get_user_axe(id)) {
formatex(_AXE,sizeof(_AXE)-1,"\wMini AXE - \rAlready Have\w");
}
menu_additem(Menu, _AXE, Num, 0);
}
}
public AXE_EmitSound(id, channel, const sound[]) {
if(is_user_alive(id) && get_user_weapon(id) == CSW_KNIFE && HaveAXE[id]) {
for(new i = 0; i < sizeof Knife_Sound; i++) {
if(equal(sound, Knife_Sound)) {
emit_sound(id, channel, AXE_Sound, VOL_NORM, ATTN_NORM, 0, PITCH_NORM);
return FMRES_SUPERCEDE;
}
}
}
return FMRES_IGNORED;
}
public AXE_TakeDamage(victim, inflictor, attacker, Float:damage, damagetype) {
if(is_user_connected(attacker) && !(damagetype & (1<<24))) {
if(get_user_weapon(attacker) == CSW_KNIFE && HaveAXE[attacker])
SetHamParamFloat(4, damage * get_pcvar_float(axedamage));
}
}
public AXE_Deploy_Post(entity) {
static Owner;
Owner = get_pdata_cbase(entity, 41, 4);
if(HaveAXE[Owner]) {
set_pev(Owner, pev_viewmodel2, AXEModel_V);
set_pev(Owner, pev_weaponmodel2, AXEModel_P);
}
}
public Buy_AXE(id) {
new axe_cost = (get_pcvar_num(vip) && get_user_flags(id) & VIP_LEVEL ? get_pcvar_num(vip_axecost) : get_pcvar_num(axecost));
if(get_user_team(id) != 1) {
ColorChat(id, "!t%s!g Doar!t Furieni!g pot cumpara!t AXE.",Prefix);
//emit_sound(id,CHAN_ITEM,ERROR_SND,VOL_NORM,ATTN_NORM,0,PITCH_NORM);
}
else if(!get_pcvar_num(acces_axe) && !(get_user_flags(id) & VIP_LEVEL)) {
ColorChat(id, "!t%s!g Doar!t VIP!g pot cumpara!t AXE.",Prefix);
//emit_sound(id,CHAN_ITEM,ERROR_SND,VOL_NORM,ATTN_NORM,0,PITCH_NORM);
}
else if(!is_user_alive(id)) {
ColorChat(id, "!t%s!g Nu poti cumpara!t AXE!g cat timp esti mort.",Prefix);
//emit_sound(id,CHAN_ITEM,ERROR_SND,VOL_NORM,ATTN_NORM,0,PITCH_NORM);
}
else if(cs_get_user_team(id) == CS_TEAM_SPECTATOR) {
ColorChat(id, "!t%s!g Nu poti cumpara!t AXE!g cat timp esti Spectator.",Prefix);
//emit_sound(id,CHAN_ITEM,ERROR_SND,VOL_NORM,ATTN_NORM,0,PITCH_NORM);
}
else if(get_user_axe(id)) {
ColorChat(id, "!t%s!g Ai deja!t AXE.",Prefix);
//emit_sound(id,CHAN_ITEM,ERROR_SND,VOL_NORM,ATTN_NORM,0,PITCH_NORM);
}
#if defined GOLD_SISTEM
else if(get_user_gold(id) < axe_cost) {
ColorChat(id, "!t%s!g Nu ai suficiente fonduri pentru a cumpara!t AXE!g. Necesar:!t %i Gold",Prefix, axe_cost);
//emit_sound(id,CHAN_ITEM,ERROR_SND,VOL_NORM,ATTN_NORM,0,PITCH_NORM);
}
#else
else if(cs_get_user_money(id) < axe_cost) {
ColorChat(id, "!t%s!g Nu ai suficiente fonduri pentru a cumpara!t AXE!g. Necesar:!t %i$",Prefix, axe_cost);
//emit_sound(id,CHAN_ITEM,ERROR_SND,VOL_NORM,ATTN_NORM,0,PITCH_NORM);
}
#endif
else {
#if defined GOLD_SISTEM
set_user_gold(id, get_user_gold(id) - axe_cost);
#else
cs_set_user_money(id, cs_get_user_money(id) - axe_cost);
#endif
//emit_sound(id,CHAN_ITEM,BUY_SND,VOL_NORM,ATTN_NORM,0,PITCH_NORM);
ColorChat(id, "!t%s!g Ai cumparat!t AXE.",Prefix);
set_user_axe(id, true);
}
return PLUGIN_HANDLED;
}
public get_user_axe(id) {
return HaveAXE[id];
}
public set_user_axe(id, axe) {
if(axe) {
#if defined SUPERCLAWS
HaveSuperClaws[id] = false;
#endif
#if defined DUALKATANA
HaveDualKatana[id] = false;
#endif
HaveAXE[id] = true;
if(is_user_connected(id) && is_user_alive(id) && get_user_weapon(id) == CSW_KNIFE)
ExecuteHamB(Ham_Item_Deploy, get_pdata_cbase(id, 373, 5));
}
else {
HaveAXE[id] = false;
if(is_user_connected(id) && is_user_alive(id) && get_user_weapon(id) == CSW_KNIFE)
ExecuteHamB(Ham_Item_Deploy, get_pdata_cbase(id, 373, 5));
}
}
#endif
/////////////////////////////////////////////////////////////////////////////////////////////////////////////
//-----------------------------------------| Health |-------------------------------------------------------
//======================================= sDs|Aragon* =======================================================
#if defined HEALTH
Health_Init() {
register_clcmd("buy_hp", "Buy_Health");
register_clcmd("hp", "Buy_Health");
register_clcmd("say buy_hp", "Buy_Health");
register_clcmd("say /hp", "Buy_Health");
register_clcmd("say /buy_hp", "Buy_Health");
register_clcmd("say_team buy_hp", "Buy_Health");
register_clcmd("say_team /hp", "Buy_Health");
register_clcmd("say_team /buy_hp", "Buy_Health");
register_clcmd("buy_health", "Buy_Health");
register_clcmd("health", "Buy_Health");
register_clcmd("say buy_health", "Buy_Health");
register_clcmd("say /health", "Buy_Health");
register_clcmd("say /buy_health", "Buy_Health");
register_clcmd("say_team buy_health", "Buy_Health");
register_clcmd("say_team /health", "Buy_Health");
register_clcmd("say_team /buy_health", "Buy_Health");
acces_health = register_cvar("furien30_acces_health", "1"); //| Health Only for 0 Admin -> 1 All |//
maxhealth = register_cvar("furien30_max_health", "250"); //| Max Health |//
healthcost = register_cvar("furien30_health_cost", "30"); //| Health Cost |//
vip_healthcost = register_cvar("vip_health_cost", "15"); //| Health Cost VIP |//
}
Health_Precache() {
//precache_sound(HEALTH_SND);
}
Health_Menu(id, const Num[] = "1") {
new health_cost = (get_pcvar_num(vip) && get_user_flags(id) & VIP_LEVEL ? get_pcvar_num(vip_healthcost) : get_pcvar_num(healthcost));
new _Health[64];
if(!get_pcvar_num(acces_health) && !(get_user_flags(id) & VIP_LEVEL)) {
formatex(_Health,sizeof(_Health)-1,"\dHealth - \rOnly VIP\w");
}
else if(get_user_health(id) < get_pcvar_num(maxhealth)) {
new Health = CheckHealth(id)
if(!health_cost)
formatex(_Health,sizeof(_Health)-1,"\wHealth \r+%d\w - \rFree\w \y(Max Health: %d)\w", Health, get_pcvar_num(maxhealth));
else {
#if defined GOLD_SISTEM
formatex(_Health,sizeof(_Health)-1,"%sHealth \r+%d\w - \y%i Gold\w \y(Max Health: %d)\w", (get_user_gold(id) >= health_cost) ? "\w" : "\d", Health, Health > 0 ? (health_cost * Health) : health_cost, get_pcvar_num(maxhealth));
#else
formatex(_Health,sizeof(_Health)-1,"%sHealth \r+%d\w - \y%i$\w \y(Max Health: %d)\w", (cs_get_user_money(id) >= health_cost ? "\w" : "\d"), Health, Health > 0 ? (health_cost * Health) : health_cost, get_pcvar_num(maxhealth));
#endif
}
}
else if(get_user_health(id) >= get_pcvar_num(maxhealth)) {
formatex(_Health,sizeof(_Health)-1,"\dHealth - \rMax Health\w");
}
menu_additem(Menu, _Health, Num, 0);
}
public CheckHealth(id) {
#if defined GOLD_SISTEM
new bani = get_user_gold(id)
#else
new bani = cs_get_user_money(id)
#endif
new health_cost = (get_pcvar_num(vip) && get_user_flags(id) & VIP_LEVEL ? get_pcvar_num(vip_healthcost) : get_pcvar_num(healthcost));
new Health
for(new HP = 1;HP <= CHECK_HEALTH; HP++) {
if(bani >= health_cost * HP && get_user_health(id) <= get_pcvar_num(maxhealth) - HP)
Health = HP
}
return Health
}
public Buy_Health(id) {
new health_cost = (get_pcvar_num(vip) && get_user_flags(id) & VIP_LEVEL ? get_pcvar_num(vip_healthcost) : get_pcvar_num(healthcost));
if(!get_pcvar_num(acces_health) && !(get_user_flags(id) & VIP_LEVEL)) {
ColorChat(id, "!t%s!g Doar!t VIP!g pot cumpara!t Health.",Prefix);
//emit_sound(id,CHAN_ITEM,ERROR_SND,VOL_NORM,ATTN_NORM,0,PITCH_NORM);
}
else if(!is_user_alive(id)) {
ColorChat(id, "!t%s!g Nu poti cumpara!t Health!g cat timp esti mort.",Prefix);
//emit_sound(id,CHAN_ITEM,ERROR_SND,VOL_NORM,ATTN_NORM,0,PITCH_NORM);
}
else if(cs_get_user_team(id) == CS_TEAM_SPECTATOR) {
ColorChat(id, "!t%s!g Nu poti cumpara!t Health!g cat timp esti Spectator.",Prefix);
//emit_sound(id,CHAN_ITEM,ERROR_SND,VOL_NORM,ATTN_NORM,0,PITCH_NORM);
}
else if(get_user_health(id) >= get_pcvar_num(maxhealth)) {
ColorChat(id, "!t%s!g Ai deja!t %d Health.",Prefix, get_pcvar_num(maxhealth));
//emit_sound(id,CHAN_ITEM,ERROR_SND,VOL_NORM,ATTN_NORM,0,PITCH_NORM);
}
#if defined GOLD_SISTEM
else if(get_user_gold(id) < health_cost) {
ColorChat(id, "!t%s!g Nu ai suficiente fonduri pentru a cumpara!t Health!g. Necesar:!t %i Gold",Prefix, health_cost);
//emit_sound(id,CHAN_ITEM,ERROR_SND,VOL_NORM,ATTN_NORM,0,PITCH_NORM);
}
#else
else if(cs_get_user_money(id) < health_cost) {
ColorChat(id, "!t%s!g Nu ai suficiente fonduri pentru a cumpara!t Health!g. Necesar:!t %i$",Prefix, health_cost);
//emit_sound(id,CHAN_ITEM,ERROR_SND,VOL_NORM,ATTN_NORM,0,PITCH_NORM);
}
#endif
else {
new Health = CheckHealth(id)
#if defined GOLD_SISTEM
set_user_gold(id, get_user_gold(id) - (health_cost * Health));
#else
cs_set_user_money(id, cs_get_user_money(id) - (health_cost * Health));
#endif
fm_set_user_health(id, get_user_health(id) + Health);
//emit_sound(id,CHAN_ITEM,HEALTH_SND,VOL_NORM,ATTN_NORM,0,PITCH_NORM);
ColorChat(id, "!t%s!g Ai cumparat!t %d Health.",Prefix, Health);
if(is_user_connected(id)) {
message_begin(MSG_ONE, get_user_msgid("ItemPickup"), _, id);
write_string("cross");
write_byte(255);
write_byte(0);
write_byte(0);
message_end();
}
}
return PLUGIN_HANDLED;
}
#endif
/////////////////////////////////////////////////////////////////////////////////////////////////////////////
//-----------------------------------------| Armor |-------------------------------------------------------
//======================================= sDs|Aragon* =======================================================
#if defined ARMOR
Armor_Init() {
register_clcmd("buy_ap", "Buy_Armor");
register_clcmd("ap", "Buy_Armor");
register_clcmd("say buy_ap", "Buy_Armor");
register_clcmd("say /ap", "Buy_Armor");
register_clcmd("say /buy_ap", "Buy_Armor");
register_clcmd("say_team buy_ap", "Buy_Armor");
register_clcmd("say_team /ap", "Buy_Armor");
register_clcmd("say_team /buy_ap", "Buy_Armor");
register_clcmd("buy_armor", "Buy_Armor");
register_clcmd("armor", "Buy_Armor");
register_clcmd("say buy_armor", "Buy_Armor");
register_clcmd("say /armor", "Buy_Armor");
register_clcmd("say /buy_armor", "Buy_Armor");
register_clcmd("say_team buy_armor", "Buy_Armor");
register_clcmd("say_team /armor", "Buy_Armor");
register_clcmd("say_team /buy_armor", "Buy_Armor");
acces_armor = register_cvar("furien30_acces_armor", "1"); //| Armor Only for 0 Admin -> 1 All |//
maxarmor = register_cvar("furien30_max_armor", "250"); //| Max Armor |//
armorcost = register_cvar("furien30_armor_cost", "20"); //| Armor Cost |//
vip_armorcost = register_cvar("vip_armor_cost", "10"); //| Armor Cost VIP |//
}
Armor_Precache() {
//precache_sound(ARMOR_SND);
}
Armor_Menu(id, const Num[] = "1") {
new armor_cost = (get_pcvar_num(vip) && get_user_flags(id) & VIP_LEVEL ? get_pcvar_num(vip_armorcost) : get_pcvar_num(armorcost));
new _Armor[64];
if(!get_pcvar_num(acces_armor) && !(get_user_flags(id) & VIP_LEVEL)) {
formatex(_Armor,sizeof(_Armor)-1,"\dArmor - \rOnly VIP\w");
}
else if(get_user_armor(id) < get_pcvar_num(maxarmor)) {
new Armor = CheckArmor(id)
if(!armor_cost)
formatex(_Armor,sizeof(_Armor)-1,"\wArmor \r+%d\w - \rFree\w \y(Max Armor: %d)\w", Armor, get_pcvar_num(maxarmor));
else {
#if defined GOLD_SISTEM
formatex(_Armor,sizeof(_Armor)-1,"%sArmor \r+%d\w - \y%i Gold\w \y(Max Armor: %d)\w", (get_user_gold(id) >= armor_cost) ? "\w" : "\d", Armor, Armor > 0 ? (armor_cost * Armor) : armor_cost, get_pcvar_num(maxarmor));
#else
formatex(_Armor,sizeof(_Armor)-1,"%sArmor \r+%d\w - \y%i$\w \y(Max Armor: %d)\w", (cs_get_user_money(id) >= armor_cost ? "\w" : "\d"), Armor, Armor > 0 ? (armor_cost * Armor) : armor_cost, get_pcvar_num(maxarmor));
#endif
}
}
else if(get_user_armor(id) >= get_pcvar_num(maxarmor)) {
formatex(_Armor,sizeof(_Armor)-1,"\dArmor - \rMax Armor\w");
}
menu_additem(Menu, _Armor, Num, 0);
}
public CheckArmor(id) {
#if defined GOLD_SISTEM
new bani = get_user_gold(id)
#else
new bani = cs_get_user_money(id)
#endif
new armor_cost = (get_pcvar_num(vip) && get_user_flags(id) & VIP_LEVEL ? get_pcvar_num(vip_armorcost) : get_pcvar_num(armorcost));
new Armor
for(new AP = 1; AP <= CHECK_ARMOR; AP++) {
if(bani >= armor_cost * AP && get_user_armor(id) <= get_pcvar_num(maxarmor) - AP)
Armor = AP
}
return Armor
}
public Buy_Armor(id) {
new armor_cost = (get_pcvar_num(vip) && get_user_flags(id) & VIP_LEVEL ? get_pcvar_num(vip_armorcost) : get_pcvar_num(armorcost));
if(!get_pcvar_num(acces_armor) && !(get_user_flags(id) & VIP_LEVEL)) {
ColorChat(id, "!t%s!g Doar!t VIP!g pot cumpara!t Armor.",Prefix);
//emit_sound(id,CHAN_ITEM,ERROR_SND,VOL_NORM,ATTN_NORM,0,PITCH_NORM);
}
else if(!is_user_alive(id)) {
ColorChat(id, "!t%s!g Nu poti cumpara!t Armor!g cat timp esti mort.",Prefix);
//emit_sound(id,CHAN_ITEM,ERROR_SND,VOL_NORM,ATTN_NORM,0,PITCH_NORM);
}
else if(cs_get_user_team(id) == CS_TEAM_SPECTATOR) {
ColorChat(id, "!t%s!g Nu poti cumpara!t Armor!g cat timp esti Spectator.",Prefix);
//emit_sound(id,CHAN_ITEM,ERROR_SND,VOL_NORM,ATTN_NORM,0,PITCH_NORM);
}
else if(get_user_armor(id) >= get_pcvar_num(maxarmor)) {
ColorChat(id, "!t%s!g Ai deja!t %d Armor.",Prefix, get_pcvar_num(maxarmor));
//emit_sound(id,CHAN_ITEM,ERROR_SND,VOL_NORM,ATTN_NORM,0,PITCH_NORM);
}
#if defined GOLD_SISTEM
else if(get_user_gold(id) < armor_cost) {
ColorChat(id, "!t%s!g Nu ai suficiente fonduri pentru a cumpara!t Armor!g. Necesar:!t %i Gold",Prefix, armor_cost);
//emit_sound(id,CHAN_ITEM,ERROR_SND,VOL_NORM,ATTN_NORM,0,PITCH_NORM);
}
#else
else if(cs_get_user_money(id) < armor_cost) {
ColorChat(id, "!t%s!g Nu ai suficiente fonduri pentru a cumpara!t Armor!g. Necesar:!t %i$",Prefix, armor_cost);
//emit_sound(id,CHAN_ITEM,ERROR_SND,VOL_NORM,ATTN_NORM,0,PITCH_NORM);
}
#endif
else {
new Armor = CheckArmor(id)
#if defined GOLD_SISTEM
set_user_gold(id, get_user_gold(id) - (armor_cost * Armor));
#else
cs_set_user_money(id, cs_get_user_money(id) - (armor_cost * Armor));
#endif
fm_set_user_armor(id, get_user_armor(id) + Armor);
//emit_sound(id,CHAN_ITEM,ARMOR_SND,VOL_NORM,ATTN_NORM,0,PITCH_NORM);
ColorChat(id, "!t%s!g Ai cumparat!t %d Armor.",Prefix, Armor);
if(is_user_connected(id)) {
message_begin(MSG_ONE, get_user_msgid("ItemPickup"), _, id);
write_string("suithelmet_full");
write_byte(255);
write_byte(0);
write_byte(0);
message_end();
}
}
return PLUGIN_HANDLED;
}
#endif
/////////////////////////////////////////////////////////////////////////////////////////////////////////////
//-----------------------------------------| Defuse |-------------------------------------------------------
//======================================= sDs|Aragon* =======================================================
#if defined DEFUSE
Defuse_Init() {
if(MapHasBomb) {
register_clcmd("buy_defuse", "Buy_Defuse");
register_clcmd("defuse", "Buy_Defuse");
register_clcmd("say buy_defuse", "Buy_Defuse");
register_clcmd("say /defuse", "Buy_Defuse");
register_clcmd("say /buy_defuse", "Buy_Defuse");
register_clcmd("say_team buy_defuse", "Buy_Defuse");
register_clcmd("say_team /defuse", "Buy_Defuse");
register_clcmd("say_team /buy_defuse", "Buy_Defuse");
acces_defuse = register_cvar("furien30_acces_defuse", "1"); //| Defuse Only for 0 Admin -> 1 CTs |//
defusecost = register_cvar("furien30_defuse_cost", "100"); //| Defuse Cost |//
vip_defusecost = register_cvar("vip_defuse_cost", "50"); //| Defuse Cost VIP |//
}
}
Defuse_Menu(id, const Num[] = "1") {
if(MapHasBomb && get_user_team(id) == 2) {
new defuse_cost = (get_pcvar_num(vip) && get_user_flags(id) & VIP_LEVEL ? get_pcvar_num(vip_defusecost) : get_pcvar_num(defusecost));
new _Defuse[64];
if(!get_pcvar_num(acces_defuse) && !(get_user_flags(id) & VIP_LEVEL)) {
formatex(_Defuse,sizeof(_Defuse)-1,"\dDefuse - \rOnly VIP\w");
}
else if(!cs_get_user_defuse(id)) {
if(!defuse_cost)
formatex(_Defuse,sizeof(_Defuse)-1,"\wDefuse - \rFree");
else {
#if defined GOLD_SISTEM
formatex(_Defuse,sizeof(_Defuse)-1,"%sDefuse - \y%i Gold", (get_user_gold(id) >= defuse_cost) ? "\w" : "\d", defuse_cost);
#else
formatex(_Defuse,sizeof(_Defuse)-1,"%sDefuse - \y%i$", (cs_get_user_money(id) >= defuse_cost ? "\w" : "\d"), defuse_cost);
#endif
}
}
else if(cs_get_user_defuse(id)) {
formatex(_Defuse,sizeof(_Defuse)-1,"\dDefuse - \rAlready Have");
}
menu_additem(Menu, _Defuse, Num, 0);
}
}
public Buy_Defuse(id) {
if(MapHasBomb) {
new defuse_cost = (get_pcvar_num(vip) && get_user_flags(id) & VIP_LEVEL ? get_pcvar_num(vip_defusecost) : get_pcvar_num(defusecost));
if(get_user_team(id) != 2) {
ColorChat(id, "!t%s!g Doar!t Anti Furieni!g pot cumpara!t Defuse.",Prefix);
//emit_sound(id,CHAN_ITEM,ERROR_SND,VOL_NORM,ATTN_NORM,0,PITCH_NORM);
}
else if(!get_pcvar_num(acces_defuse) && !(get_user_flags(id) & VIP_LEVEL)) {
ColorChat(id, "!t%s!g Doar!t VIP!g pot cumpara!t Defuse.",Prefix);
//emit_sound(id,CHAN_ITEM,ERROR_SND,VOL_NORM,ATTN_NORM,0,PITCH_NORM);
}
else if(!is_user_alive(id)) {
ColorChat(id, "!t%s!g Nu poti cumpara!t Defuse!g cat timp esti mort.",Prefix);
//emit_sound(id,CHAN_ITEM,ERROR_SND,VOL_NORM,ATTN_NORM,0,PITCH_NORM);
}
else if(cs_get_user_team(id) == CS_TEAM_SPECTATOR) {
ColorChat(id, "!t%s!g Nu poti cumpara!t Defuse!g cat timp esti Spectator.",Prefix);
//emit_sound(id,CHAN_ITEM,ERROR_SND,VOL_NORM,ATTN_NORM,0,PITCH_NORM);
}
else if(cs_get_user_defuse(id)) {
ColorChat(id, "!t%s!g Ai deja!t Defuse.",Prefix);
//emit_sound(id,CHAN_ITEM,ERROR_SND,VOL_NORM,ATTN_NORM,0,PITCH_NORM);
}
#if defined GOLD_SISTEM
else if(get_user_gold(id) < defuse_cost) {
ColorChat(id, "!t%s!g Nu ai suficiente fonduri pentru a cumpara!t Defuse!g. Necesar:!t %i Gold",Prefix, defuse_cost);
//emit_sound(id,CHAN_ITEM,ERROR_SND,VOL_NORM,ATTN_NORM,0,PITCH_NORM);
}
#else
else if(cs_get_user_money(id) < defuse_cost) {
ColorChat(id, "!t%s!g Nu ai suficiente fonduri pentru a cumpara!t Defuse!g. Necesar:!t %i$",Prefix, defuse_cost);
//emit_sound(id,CHAN_ITEM,ERROR_SND,VOL_NORM,ATTN_NORM,0,PITCH_NORM);
}
#endif
else {
#if defined GOLD_SISTEM
set_user_gold(id, get_user_gold(id) - defuse_cost);
#else
cs_set_user_money(id, cs_get_user_money(id) - defuse_cost);
#endif
cs_set_user_defuse(id, 1);
//emit_sound(id,CHAN_ITEM, BUY_SND,VOL_NORM,ATTN_NORM,0,PITCH_NORM);
ColorChat(id, "!t%s!g Ai cumparat!t Defuse.",Prefix);
if(is_user_connected(id)) {
message_begin(MSG_ONE, get_user_msgid("ItemPickup"), _, id);
write_string("defuser");
write_byte(0);
write_byte(255);
write_byte(0);
message_end();
}
}
}
return PLUGIN_HANDLED;
}
#endif
/////////////////////////////////////////////////////////////////////////////////////////////////////////////
//---------------------------------------| HE Grenade |------------------------------------------------------
//======================================= sDs|Aragon* =======================================================
#if defined HE
HE_Init() {
register_clcmd("he", "Buy_HE");
register_clcmd("buy_he", "Buy_HE");
register_clcmd("say /he", "Buy_HE");
register_clcmd("say /buy_he", "Buy_HE");
register_clcmd("say buy_he", "Buy_HE");
register_clcmd("say_team /he", "Buy_HE");
register_clcmd("say_team /buy_he", "Buy_HE");
register_clcmd("say_team buy_he", "Buy_HE");
acces_he = register_cvar("furien30_acces_he", "1"); //| HE Only for 0 Admin -> 1 All |//
hecost = register_cvar("furien30_he_cost", "2000"); //| HE Cost |//
vip_hecost = register_cvar("vip_he_cost", "1000"); //| HE Cost VIP |//
}
HE_Menu(id, const Num[] = "1") {
new he_cost = (get_pcvar_num(vip) && get_user_flags(id) & VIP_LEVEL ? get_pcvar_num(vip_hecost) : get_pcvar_num(hecost));
new HEGrenade[64];
if(!get_pcvar_num(acces_he) && !(get_user_flags(id) & VIP_LEVEL)) {
formatex(HEGrenade,sizeof(HEGrenade)-1,"\dHE Grenade - \rOnly VIP\w");
}
else if(!user_has_weapon(id, CSW_HEGRENADE)) {
if(!he_cost)
formatex(HEGrenade,sizeof(HEGrenade)-1,"\wHE Grenade\w - \yFree\w");
else {
#if defined GOLD_SISTEM
formatex(HEGrenade,sizeof(HEGrenade)-1,"%sHE Grenade\w - \y%i Gold\w",(get_user_gold(id) >= he_cost) ? "\w" : "\d", he_cost);
#else
formatex(HEGrenade,sizeof(HEGrenade)-1,"%sHE Grenade\w - \y%i$\w",(cs_get_user_money(id) >= he_cost ? "\w" : "\d"), he_cost);
#endif
}
}
else if(user_has_weapon(id, CSW_HEGRENADE)) {
formatex(HEGrenade,sizeof(HEGrenade)-1,"\rHE Grenade\w - \yAlready Have\w");
}
menu_additem(Menu, HEGrenade, Num, 0);
}
public Buy_HE(id) {
new he_cost = (get_pcvar_num(vip) && get_user_flags(id) & VIP_LEVEL ? get_pcvar_num(vip_hecost) : get_pcvar_num(hecost));
if(!get_pcvar_num(acces_he) && !(get_user_flags(id) & VIP_LEVEL)) {
ColorChat(id, "!t%s!g Doar!t VIP!g pot cumpara!t HE Grenade.",Prefix);
//emit_sound(id,CHAN_ITEM,ERROR_SND,VOL_NORM,ATTN_NORM,0,PITCH_NORM);
}
else if(cs_get_user_team(id) == CS_TEAM_SPECTATOR) {
ColorChat(id, "!t%s!g Nu poti cumpara!t HE Grenade!g cat timp esti Spectator.",Prefix);
//emit_sound(id,CHAN_ITEM,ERROR_SND,VOL_NORM,ATTN_NORM,0,PITCH_NORM);
}
else if(!is_user_alive(id)) {
ColorChat(id, "!t%s!g Nu poti cumpara!t HE Grenade!g cat timp esti mort.",Prefix);
//emit_sound(id,CHAN_ITEM,ERROR_SND,VOL_NORM,ATTN_NORM,0,PITCH_NORM);
}
else if(user_has_weapon(id, CSW_HEGRENADE)) {
ColorChat(id, "!t%s!g Ai deja!t HE Grenade.",Prefix);
//emit_sound(id,CHAN_ITEM,ERROR_SND,VOL_NORM,ATTN_NORM,0,PITCH_NORM);
}
#if defined GOLD_SISTEM
else if(get_user_gold(id) < he_cost) {
ColorChat(id, "!t%s!g Nu ai suficiente fonduri pentru a cumpara!t HE Grenade!g. Necesar:!t %i Gold",Prefix, he_cost);
//emit_sound(id,CHAN_ITEM,ERROR_SND,VOL_NORM,ATTN_NORM,0,PITCH_NORM);
}
#else
else if(cs_get_user_money(id) < he_cost) {
ColorChat(id, "!t%s!g Nu ai suficiente fonduri pentru a cumpara!t HE Grenade!g. Necesar:!t %i$",Prefix, he_cost);
//emit_sound(id,CHAN_ITEM,ERROR_SND,VOL_NORM,ATTN_NORM,0,PITCH_NORM);
}
#endif
else {
#if defined GOLD_SISTEM
set_user_gold(id, get_user_gold(id) - he_cost);
#else
cs_set_user_money(id, cs_get_user_money(id) - he_cost);
#endif
//emit_sound(id,CHAN_ITEM,BUY_SND,VOL_NORM,ATTN_NORM,0,PITCH_NORM);
ColorChat(id, "!t%s!g Ai cumparat!t HE Grenade.",Prefix);
fm_give_item(id, "weapon_hegrenade");
}
return PLUGIN_HANDLED;
}
#endif
/////////////////////////////////////////////////////////////////////////////////////////////////////////////
//--------------------------------------| Flash Bang |-------------------------------------------------------
//======================================= sDs|Aragon* =======================================================
#if defined FLASH
Flash_Init() {
register_clcmd("flash", "Buy_Flash");
register_clcmd("buy_flash", "Buy_Flash");
register_clcmd("say /flash", "Buy_Flash");
register_clcmd("say /buy_flash", "Buy_Flash");
register_clcmd("say buy_flash", "Buy_Flash");
register_clcmd("say_team /flash", "Buy_Flash");
register_clcmd("say_team /buy_flash", "Buy_Flash");
register_clcmd("say_team buy_flash", "Buy_Flash");
acces_flash = register_cvar("furien30_acces_flash", "1"); //| Flash Only for 0 Admin -> 1 All |//
flashcost = register_cvar("furien30_flash_cost", "1000"); //| Flash Cost |//
vip_flashcost = register_cvar("vip_flash_cost", "500"); //| Flash Cost VIP |//
}
Flash_Menu(id, const Num[] = "1") {
new flash_cost = (get_pcvar_num(vip) && get_user_flags(id) & VIP_LEVEL ? get_pcvar_num(vip_flashcost) : get_pcvar_num(flashcost));
new Flash[64];
if(!get_pcvar_num(acces_flash) && !(get_user_flags(id) & VIP_LEVEL)) {
formatex(Flash,sizeof(Flash)-1,"\dFlashBang - \rOnly VIP\w");
}
else if(!user_has_weapon(id, CSW_FLASHBANG)) {
if(!flash_cost)
formatex(Flash,sizeof(Flash)-1,"\wFlashBang\w - \yFree\w");
else {
#if defined GOLD_SISTEM
formatex(Flash,sizeof(Flash)-1,"%sFlashBang\w - \y%i Gold\w",(get_user_gold(id) >= flash_cost) ? "\w" : "\d", flash_cost);
#else
formatex(Flash,sizeof(Flash)-1,"%sFlashBang\w - \y%i$\w",(cs_get_user_money(id) >= flash_cost ? "\w" : "\d"), flash_cost);
#endif
}
}
else if(user_has_weapon(id, CSW_FLASHBANG)) {
formatex(Flash,sizeof(Flash)-1,"\rFlashBang\w - \yAlready Have\w");
}
menu_additem(Menu, Flash, Num, 0);
}
public Buy_Flash(id) {
new flash_cost = (get_pcvar_num(vip) && get_user_flags(id) & VIP_LEVEL ? get_pcvar_num(vip_flashcost) : get_pcvar_num(flashcost));
if(!get_pcvar_num(acces_flash) && !(get_user_flags(id) & VIP_LEVEL)) {
ColorChat(id, "!t%s!g Doar!t VIP!g pot cumpara!t FlashBang.",Prefix);
//emit_sound(id,CHAN_ITEM,ERROR_SND,VOL_NORM,ATTN_NORM,0,PITCH_NORM);
}
else if(cs_get_user_team(id) == CS_TEAM_SPECTATOR) {
ColorChat(id, "!t%s!g Nu poti cumpara!t FlashBang!g cat timp esti Spectator.",Prefix);
//emit_sound(id,CHAN_ITEM,ERROR_SND,VOL_NORM,ATTN_NORM,0,PITCH_NORM);
}
else if(!is_user_alive(id)) {
ColorChat(id, "!t%s!g Nu poti cumpara!t FlashBang!g cat timp esti mort.",Prefix);
//emit_sound(id,CHAN_ITEM,ERROR_SND,VOL_NORM,ATTN_NORM,0,PITCH_NORM);
}
else if(user_has_weapon(id, CSW_FLASHBANG)) {
ColorChat(id, "!t%s!g Ai deja!t FlashBang.",Prefix);
//emit_sound(id,CHAN_ITEM,ERROR_SND,VOL_NORM,ATTN_NORM,0,PITCH_NORM);
}
#if defined GOLD_SISTEM
else if(get_user_gold(id) < flash_cost) {
ColorChat(id, "!t%s!g Nu ai suficiente fonduri pentru a cumpara!t FlashBang!g. Necesar:!t %i Gold",Prefix, flash_cost);
//emit_sound(id,CHAN_ITEM,ERROR_SND,VOL_NORM,ATTN_NORM,0,PITCH_NORM);
}
#else
else if(cs_get_user_money(id) < flash_cost) {
ColorChat(id, "!t%s!g Nu ai suficiente fonduri pentru a cumpara!t FlashBang!g. Necesar:!t %i$",Prefix, flash_cost);
//emit_sound(id,CHAN_ITEM,ERROR_SND,VOL_NORM,ATTN_NORM,0,PITCH_NORM);
}
#endif
else {
#if defined GOLD_SISTEM
set_user_gold(id, get_user_gold(id) - flash_cost);
#else
cs_set_user_money(id, cs_get_user_money(id) - flash_cost);
#endif
//emit_sound(id,CHAN_ITEM,BUY_SND,VOL_NORM,ATTN_NORM,0,PITCH_NORM);
ColorChat(id, "!t%s!g Ai cumparat!t FlashBang.",Prefix);
fm_give_item(id, "weapon_flashbang");
}
return PLUGIN_HANDLED;
}
#endif
/////////////////////////////////////////////////////////////////////////////////////////////////////////////
//-------------------------------------| Smoke Grenade |-----------------------------------------------------
//======================================= sDs|Aragon* =======================================================
#if defined SMOKE
Smoke_Init() {
register_clcmd("smoke", "Buy_Smoke");
register_clcmd("buy_smoke", "Buy_Smoke");
register_clcmd("say /smoke", "Buy_Smoke");
register_clcmd("say /buy_smoke", "Buy_Smoke");
register_clcmd("say buy_smoke", "Buy_Smoke");
register_clcmd("say_team /smoke", "Buy_Smoke");
register_clcmd("say_team /buy_smoke", "Buy_Smoke");
register_clcmd("say_team buy_smoke", "Buy_Smoke");
acces_smoke = register_cvar("furien30_acces_smoke", "1"); //| Smoke Only for 0 Admin -> 1 All |//
smokecost = register_cvar("furien30_smoke_cost", "1000"); //| Smoke Cost |//
vip_smokecost = register_cvar("vip_smoke_cost", "500"); //| Smoke Cost VIP |//
}
Smoke_Menu(id, const Num[] = "1") {
new smoke_cost = (get_pcvar_num(vip) && get_user_flags(id) & VIP_LEVEL ? get_pcvar_num(vip_smokecost) : get_pcvar_num(smokecost));
new SmokeGrenade[64];
if(!get_pcvar_num(acces_smoke) && !(get_user_flags(id) & VIP_LEVEL)) {
formatex(SmokeGrenade,sizeof(SmokeGrenade)-1,"\dSmoke Grenade - \rOnly VIP\w");
}
else if(!user_has_weapon(id, CSW_SMOKEGRENADE)) {
if(!smoke_cost)
formatex(SmokeGrenade,sizeof(SmokeGrenade)-1,"\wSmoke Grenade\w - \yFree\w");
else {
#if defined GOLD_SISTEM
formatex(SmokeGrenade,sizeof(SmokeGrenade)-1,"%sSmoke Grenade\w - \y%i Gold\w",(get_user_gold(id) >= smoke_cost) ? "\w" : "\d", smoke_cost);
#else
formatex(SmokeGrenade,sizeof(SmokeGrenade)-1,"%sSmoke Grenade\w - \y%i$\w",(cs_get_user_money(id) >= smoke_cost ? "\w" : "\d"), smoke_cost);
#endif
}
}
else if(user_has_weapon(id, CSW_SMOKEGRENADE)) {
formatex(SmokeGrenade,sizeof(SmokeGrenade)-1,"\rSmoke Grenade\w - \yAlready Have\w");
}
menu_additem(Menu, SmokeGrenade, Num, 0);
}
public Buy_Smoke(id) {
new smoke_cost = (get_pcvar_num(vip) && get_user_flags(id) & VIP_LEVEL ? get_pcvar_num(vip_smokecost) : get_pcvar_num(smokecost));
if(!get_pcvar_num(acces_smoke) && !(get_user_flags(id) & VIP_LEVEL)) {
ColorChat(id, "!t%s!g Doar!t VIP!g pot cumpara!t Smoke Grenade.",Prefix);
//emit_sound(id,CHAN_ITEM,ERROR_SND,VOL_NORM,ATTN_NORM,0,PITCH_NORM);
}
else if(cs_get_user_team(id) == CS_TEAM_SPECTATOR) {
ColorChat(id, "!t%s!g Nu poti cumpara!t Smoke Grenade!g cat timp esti Spectator.",Prefix);
//emit_sound(id,CHAN_ITEM,ERROR_SND,VOL_NORM,ATTN_NORM,0,PITCH_NORM);
}
else if(!is_user_alive(id)) {
ColorChat(id, "!t%s!g Nu poti cumpara!t Smoke Grenade!g cat timp esti mort.",Prefix);
//emit_sound(id,CHAN_ITEM,ERROR_SND,VOL_NORM,ATTN_NORM,0,PITCH_NORM);
}
else if(user_has_weapon(id, CSW_SMOKEGRENADE)) {
ColorChat(id, "!t%s!g Ai deja!t Smoke Grenade.",Prefix);
//emit_sound(id,CHAN_ITEM,ERROR_SND,VOL_NORM,ATTN_NORM,0,PITCH_NORM);
}
#if defined GOLD_SISTEM
else if(get_user_gold(id) < smoke_cost) {
ColorChat(id, "!t%s!g Nu ai suficiente fonduri pentru a cumpara!t Smoke Grenade!g. Necesar:!t %i Gold",Prefix, smoke_cost);
//emit_sound(id,CHAN_ITEM,ERROR_SND,VOL_NORM,ATTN_NORM,0,PITCH_NORM);
}
#else
else if(cs_get_user_money(id) < smoke_cost) {
ColorChat(id, "!t%s!g Nu ai suficiente fonduri pentru a cumpara!t Smoke Grenade!g. Necesar:!t %i$",Prefix, smoke_cost);
//emit_sound(id,CHAN_ITEM,ERROR_SND,VOL_NORM,ATTN_NORM,0,PITCH_NORM);
}
#endif
else {
#if defined GOLD_SISTEM
set_user_gold(id, get_user_gold(id) - smoke_cost);
#else
cs_set_user_money(id, cs_get_user_money(id) - smoke_cost);
#endif
//emit_sound(id,CHAN_ITEM,BUY_SND,VOL_NORM,ATTN_NORM,0,PITCH_NORM);
ColorChat(id, "!t%s!g Ai cumparat!t Smoke Grenade.",Prefix);
fm_give_item(id, "weapon_smokegrenade");
}
return PLUGIN_HANDLED;
}
#endif
////////////////////////////////////////////////////////////////////////////////////////////////////////////
// Stock's |
//==========================================================================================================
stock set_weapon_anim(id, anim) {
set_pev(id, pev_weaponanim, anim);
if(is_user_connected(id)) {
message_begin(MSG_ONE, SVC_WEAPONANIM, _, id);
write_byte(anim);
write_byte(pev(id, pev_body));
message_end();
}
}
#if defined GOLD_SISTEM
public GiveGold(id, level, cid) {
if (cmd_access(id, level, cid, 2)) {
new arg[23], gplayers[32], num, i, players, name[32];
get_user_name(id, name, 31);
read_argv(1, arg, 23);
new give_gold[10];
read_argv(2, give_gold, charsmax(give_gold));
new Gold = str_to_num(give_gold);
if(equali(arg, "@All")) {
get_players(gplayers, num, "ch");
for(i = 0; i < num; i++) {
players = gplayers;
if(!is_user_connected(players))
continue;
set_user_gold(players, get_user_gold(players) + Gold);
}
switch(get_cvar_num("amx_show_activity")) {
case 1: ColorChat(0, "!tADMIN!g give!t %i Gold!g to all!t Players.", Gold);
case 2: ColorChat(0, "!t%s!g give!t %i Gold!g to all!t Players.", name, Gold);
}
}
new player = cmd_target(id, arg, 11);
if(!player) {
console_print(id, "Juctorul cu acel nume nu exista.");
}
else {
set_user_gold(player, get_user_gold(player) + Gold);
switch(get_cvar_num("amx_show_activity")) {
case 1: ColorChat(player, "!tADMIN!g give you!t %i Gold.", Gold);
case 2: ColorChat(player, "!t%s!g give you!t %i Gold.", name, Gold);
}
}
}
}
public ResetGold(id, level, cid) {
if (cmd_access(id, level, cid, 2)) {
new arg[23], gplayers[32], num, i, players, name[32];
get_user_name(id, name, 31);
read_argv(1, arg, 23);
if(equali(arg, "@All")) {
get_players(gplayers, num, "ch");
for(i = 0; i < num; i++) {
players = gplayers[i];
if(!is_user_connected(players))
continue;
set_user_gold(players, 0);
}
switch(get_cvar_num("amx_show_activity")) {
case 1: ColorChat(0, "!tADMIN!g reset!t XP!g to all!t Players.");
case 2: ColorChat(0, "!t%s!g reset!t XP!g to all!t Players.", name);
}
}
new player = cmd_target(id, arg, 11);
if(!player) {
console_print(id, "Juctorul cu acel nume nu exista.");
}
else {
set_user_gold(player, 0);
switch(get_cvar_num("amx_show_activity")) {
case 1: ColorChat(player, "!tADMIN!g reset your!t Experience.");
case 2: ColorChat(player, "!t%s!g reset your!t Experience.", name);
}
}
}
}
// Save Gold
public SaveGold(id) {
new Name[32];
get_user_name(id, Name, 31);
new Save[64]
format(Save,sizeof(Save) - 1, "^"%s^" %d", Name, PlayerGold[id])
new Line[64], Linie, IsPlayer = false, Arg1[64]
new FileOpen = fopen(GoldFile, "rt")
while(!feof(FileOpen)) {
fgets(FileOpen, Line, 63)
trim(Line)
parse(Line, Arg1, 63)
if (equali(Arg1, Name)) {
write_file(GoldFile, Save, Linie)
IsPlayer = true
break
}
Linie++
}
fclose(FileOpen)
if (!IsPlayer) {
write_file(GoldFile, Save, -1)
}
}
// Load Gold
public LoadGold(id) {
new Name[32];
get_user_name(id, Name, 31);
new Line[64], IsPlayer = false, Arg1[32], Arg2[32];
new FileOpen = fopen(GoldFile, "rt")
while(!feof(FileOpen)) {
fgets(FileOpen, Line, 63)
trim(Line)
parse(Line, Arg1, 31, Arg2, 31)
if (equali(Arg1, Name)) {
PlayerGold[id] = str_to_num(Arg2)
IsPlayer = true
break
}
}
fclose(FileOpen)
if (!IsPlayer) {
PlayerGold[id] = 50000
}
}
#endif
stock FixedUnsigned16(Float:flValue, iScale) {
new iOutput;
iOutput = floatround(flValue * iScale);
if (iOutput < 0)
iOutput = 0;
if (iOutput > 0xFFFF)
iOutput = 0xFFFF;
return iOutput;
}
stock UTIL_ScreenFade(id=0,iColor[3]={0,0,0},Float:flFxTime=-1.0,Float:flHoldTime=0.0,iAlpha=0,iFlags=0x0000,bool:bReliable=false,bool:bExternal=false) {
if(id && !is_user_connected(id))
return;
new iFadeTime;
if(flFxTime == -1.0) {
iFadeTime = 4;
}
else {
iFadeTime = FixedUnsigned16(flFxTime , 1<<12);
}
static gmsgScreenFade;
if(!gmsgScreenFade) {
gmsgScreenFade = get_user_msgid("ScreenFade");
}
new MSG_DEST;
if(bReliable)
MSG_DEST = id ? MSG_ONE : MSG_ALL;
else
MSG_DEST = id ? MSG_ONE_UNRELIABLE : MSG_BROADCAST;
if(bExternal) {
emessage_begin(MSG_DEST, gmsgScreenFade, _, id);
ewrite_short(iFadeTime);
ewrite_short(FixedUnsigned16(flHoldTime , 1<<12));
ewrite_short(iFlags);
ewrite_byte(iColor[0]);
ewrite_byte(iColor[1]);
ewrite_byte(iColor[2]);
ewrite_byte(iAlpha);
emessage_end();
}
else {
message_begin(MSG_DEST, gmsgScreenFade, _, id);
write_short(iFadeTime);
write_short(FixedUnsigned16(flHoldTime , 1<<12));
write_short(iFlags);
write_byte(iColor[0]);
write_byte(iColor[1]);
write_byte(iColor[2]);
write_byte(iAlpha);
message_end();
}
}
stock UTIL_FadeToBlack(id,Float:fxtime=3.0,bool:bReliable=false,bool:bExternal=false) {
UTIL_ScreenFade(id, _, fxtime, fxtime, 255, 0x0001|0x0004,bReliable,bExternal);
}
stock death_message(Killer, Victim, const Weapon[]) {
set_msg_block(get_user_msgid("DeathMsg"), BLOCK_SET);
ExecuteHamB(Ham_Killed, Victim, Killer, 2);
set_msg_block(get_user_msgid("DeathMsg"), BLOCK_NOT);
make_deathmsg(Killer, Victim, 0, Weapon);
cs_set_user_money(Killer, cs_get_user_money(Killer) + 300);
message_begin(MSG_BROADCAST, get_user_msgid("ScoreInfo"));
write_byte(Killer); // id
write_short(pev(Killer, pev_frags)); // frags
write_short(cs_get_user_deaths(Killer)); // deaths
write_short(0); // class?
write_short(get_user_team(Killer)); // team
message_end();
message_begin(MSG_BROADCAST, get_user_msgid("ScoreInfo"));
write_byte(Victim); // id
write_short(pev(Victim, pev_frags)); // frags
write_short(cs_get_user_deaths(Victim)); // deaths
write_short(0); // class?
write_short(get_user_team(Victim)); // team
message_end();
}
public make_knockback(Victim, Float:origin[3], Float:maxspeed) {
new Float:fVelocity[3];
kickback(Victim, origin, maxspeed, fVelocity);
entity_set_vector(Victim, EV_VEC_velocity, fVelocity);
return(1);
}
stock kickback(ent, Float:fOrigin[3], Float:fSpeed, Float:fVelocity[3]) {
new Float:fEntOrigin[3];
entity_get_vector(ent, EV_VEC_origin, fEntOrigin);
new Float:fDistance[3];
fDistance[0] = fEntOrigin[0] - fOrigin[0];
fDistance[1] = fEntOrigin[1] - fOrigin[1];
fDistance[2] = fEntOrigin[2] - fOrigin[2];
new Float:fTime = (vector_distance(fEntOrigin,fOrigin) / fSpeed);
fVelocity[0] = fDistance[0] / fTime;
fVelocity[1] = fDistance[1] / fTime;
fVelocity[2] = fDistance[2] / fTime;
return(fVelocity[0] && fVelocity[1] && fVelocity[2]);
}
stock get_damage_body(body, Float:damage) {
switch(body) {
case HIT_HEAD:
damage *= 1.3;
case HIT_STOMACH:
damage *= 1.0;
case HIT_CHEST:
damage *= 1.1;
case HIT_LEFTARM:
damage *= 0.7;
case HIT_RIGHTARM:
damage *= 0.7;
case HIT_LEFTLEG:
damage *= 0.75;
case HIT_RIGHTLEG:
damage *= 0.75;
default:
damage *= 1.0;
}
return floatround(damage);
}
stock drop_primary_weapons(Player) {
static weapons[32], num, i, weaponid;
num = 0;
get_user_weapons(Player, weapons, num);
for(i = 0; i < num; i++) {
weaponid = weapons [i];
if(((1<<weaponid) & PRIMARY_WEAPONS_BITSUM)) {
static wname[32];
get_weaponname(weaponid, wname, charsmax(wname));
engclient_cmd(Player, "drop", wname);
}
}
}
////////////////////////////////////////////////////////////////////////////////////////////////////////////
// HudMessage | ColorChat |
//==========================================================================================================
#define clamp_byte(%1) ( clamp( %1, 0, 255 ) )
#define pack_color(%1,%2,%3) ( %3 + ( %2 << 8 ) + ( %1 << 16 ) )
stock HudMessage(const id, const message[], red = 0, green = 160, blue = 0, Float:x = -1.0, Float:y = 0.65, effects = 2, Float:fxtime = 0.01, Float:holdtime = 3.0, Float:fadeintime = 0.01, Float:fadeouttime = 0.01) {
new count = 1, players[32];
if(id) players[0] = id;
else get_players(players, count, "ch"); {
for(new i = 0; i < count; i++) {
if(is_user_connected(players[i])) {
new color = pack_color(clamp_byte(red), clamp_byte(green), clamp_byte(blue))
message_begin(MSG_ONE_UNRELIABLE, SVC_DIRECTOR, _, players[i]);
write_byte(strlen(message) + 31);
write_byte(DRC_CMD_MESSAGE);
write_byte(effects);
write_long(color);
write_long(_:x);
write_long(_:y);
write_long(_:fadeintime);
write_long(_:fadeouttime);
write_long(_:holdtime);
write_long(_:fxtime);
write_string(message);
message_end();
}
}
}
}
stock ColorChat(const id, const input[], any:...) {
new count = 1, players[32];
static msg[191];
vformat(msg, 190, input, 3);
replace_all(msg, 190, "!g", "^4");
replace_all(msg, 190, "!y", "^1");
replace_all(msg, 190, "!t", "^3");
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();
}
}
}
}
////////////////////////////////////////////////////////////////////////////////////////////////////////////
//---------------------------------------| End Plugin |-----------------------------------------------------
//==========================================================================================================
/* AMXX-Studio Notes - DO NOT MODIFY BELOW HERE
*{\\ rtf1\\ ansi\\ deff0{\\ fonttbl{\\ f0\\ fnil Tahoma;}}\n\\ viewkind4\\ uc1\\ pard\\ lang1033\\ f0\\ fs16 \n\\ par }
*/