Editare shop furien/anti furien

Modificari necesare ale pluginurilor

Moderators: Moderatori ajutatori, Moderatori, Echipa eXtreamCS.com

Locked
Puyol
Membru, skill 0
Membru, skill 0
Posts: 76
Joined: 08 May 2018, 14:46
Detinator Steam: Nu
CS Status: Citesc forumul eXtreamCS.com...!
Fond eXtream: 0
Contact:

13 May 2018, 11:51

Salut. Doresc sa imi modificati acest shop furien/anti-furien.
Doresc ca sa se poata cumpara 50 hp si ap doar de 4 ori pe runda.
Adica sa cumperi doar de 4 ori hp si ap.
Si sa se scoata din shop dual katana si horse axe.
Multumesc ! :heart_eyes:
| Afiseaza codul
/* Plugin generated by AMXX-Studio */

#include <amxmodx>
#include <cstrike>
#include <fakemeta>
#include <hamsandwich>
#include <dhudmessage>
#include <fun>

new const PLUGIN[] = "Furien: Shop Ultimate";
new const VERSION[] = "0.3.1";

#pragma semicolon 1

#define is_user_valid(%0)	(1 <= %0 <= g_iMaxPlayers)
#define is_user_vip(%1)		(get_user_flags(%1) & ADMIN_RESERVATION)   
#define is_user_admin(%1)	(get_user_flags(%1) & ADMIN_IMMUNITY)   

//Models
new const DualKatanaModel_V[66] = "models/v_katanad.mdl";
new const DualKatanaModel_P[66] = "models/p_katanad.mdl";
new const HorseAxeModel_V[66] = "models/v_horseaxe.mdl";
new const HorseAxeModel_P[66] = "models/p_horseaxe.mdl";

//Sounds
new const szPickAmmoSound[66] = "items/9mmclip1.wav";
new const szFmuPackEnergy[66] = "misc/fmu_energy.wav";
new const szFlashSound[66] = "misc/fmu_flash_sound.mp3";

//Sounds Knife
new const KatanaKnife_SoundList[][] =
{
	"weapons/knife_deploy1.wav",
	"weapons/knife_hit1.wav",
	"weapons/knife_hit2.wav",
	"weapons/knife_hitwall1.wav",
	"weapons/knife_slash1.wav",
	"weapons/knife_slash2.wav",
	"weapons/knife_stab.wav"
};

new const DualKatana_SoundList[][] =
{
	"weapons/katanad_draw.wav",
	"weapons/katanad_hit1.wav",
	"weapons/katanad_hit2.wav",
	"weapons/katanad_hitwall.wav",
	"weapons/katanad_slash1.wav",
	"weapons/katanad_slash2.wav",
	"weapons/katanad_stab.wav"
};

new const HorseAxeKnife_SoundList[][] =
{
	"weapons/knife_deploy1.wav",
	"weapons/knife_hit1.wav",
	"weapons/knife_hit2.wav",
	"weapons/knife_hitwall1.wav",
	"weapons/knife_slash1.wav",
	"weapons/knife_stab.wav"
};

new const HorseAxe_SoundList[][] =
{
	"weapons/hatchet_deploy1.wav",
	"weapons/hatchet1.wav",
	"weapons/hatchet2.wav",
	"weapons/hatchel_hwall.wav",
	"weapons/hatchet_slash1.wav",
	"weapons/hatchel_stab.wav"
};

//Boolean
new bool: g_HaveNoFlash[33];
new bool: g_HaveHorseAxe[33];
new bool: g_HaveDefuseKit[33];
new bool: g_HaveDualKatana[33];
new bool: g_HavePackEnergy[33];
new bool: g_HaveAnimalsPet[33];

//Vectors
new g_iMaxPlayers;
new g_msgScreenFade;

//Native Credits
native get_user_credits(id);
native set_user_credits(id, credits);

//Native Pet
native set_user_pet(id);

//Bow
native set_user_bow(id);

public plugin_init()
{
	register_plugin(PLUGIN, VERSION, "Adventx");
	register_cvar("fmu_shop_ecila", VERSION, FCVAR_SERVER | FCVAR_SPONLY);
	
	//Register Command
	register_clcmd("say shop","ClCmdShop");
	register_clcmd("say /shop","ClCmdShop");
	
	//Register Event's
	register_event("DeathMsg", "evDeathMsg", "a");
	register_event("CurWeapon", "CurrentWeapon", "be", "1=1");
	register_event("ScreenFade", "eventFlash", "be", "4=255", "5=255", "6=255", "7>199");
	
	//Register Forward
	register_forward(FM_EmitSound, "fw_EmitSounds");
	
	//Register Hamsandwich
	RegisterHam(Ham_Spawn, "player", "hamPlayerSpawnPost", 1);
	RegisterHam(Ham_TakeDamage, "player", "Player_TakeDamage");
	
	//Get Max Players
	g_iMaxPlayers = get_maxplayers ();
	
	//Screen Fade
	g_msgScreenFade = get_user_msgid("ScreenFade");
	
	//ClCorpse
	set_msg_block(get_user_msgid("ClCorpse"), BLOCK_SET);
}

public plugin_precache()
{
	//Sound
	precache_sound(szPickAmmoSound);
	precache_sound(szFmuPackEnergy);
	
	//Hosrse Axe
	precache_model(HorseAxeModel_V);
	precache_model(HorseAxeModel_P);
	
	//Dual Katana
	precache_model(DualKatanaModel_V);
	precache_model(DualKatanaModel_P);
	
	static i;
	for(i = 0; i <= charsmax(DualKatana_SoundList); i++)
	{
		precache_sound(DualKatana_SoundList);
	}
	
	for(i = 0; i <= charsmax(HorseAxe_SoundList); i++)
	{
		precache_sound(HorseAxe_SoundList);
	}
}

public client_putinserver(id)
{
	g_HaveNoFlash[id] = false;
	g_HaveHorseAxe[id] = false;
	g_HaveDefuseKit[id] = false;
	g_HaveDualKatana[id] = false;
	g_HavePackEnergy[id] = false;
	g_HaveAnimalsPet[id] = false;
}

public client_disconnect(id)
{
	g_HaveNoFlash[id] = false;
	g_HaveHorseAxe[id] = false;
	g_HaveDefuseKit[id] = false;
	g_HaveDualKatana[id] = false;
	g_HavePackEnergy[id] = false;
	g_HaveAnimalsPet[id] = false;
}

public hamPlayerSpawnPost(id)
{
	if(is_user_alive(id))
	{
		if(get_user_team(id) == 2)
		{
			//Return Knife
			g_HaveHorseAxe[id] = false;
			g_HaveDualKatana[id] = false;
		
			//Defuse Kit
			if(g_HaveDefuseKit[id] == true)
			{
				cs_set_user_defuse(id, 0);
				g_HaveDefuseKit[id] = false;
			}
		}
	
		//Strip User Weapons
		strip_user_weapons(id);
	
		//Give Equipment
		FmuGiveEquipment(id);
	
		//Booleans
		g_HavePackEnergy[id] = false;
		g_HaveAnimalsPet[id] = false;
	}
}

public FmuGiveEquipment(id)
{
	if(is_user_alive(id))
	{
		if(get_user_team(id) == 1)
		{
			give_item(id, "weapon_knife");
			give_item(id, "weapon_hegrenade");
			give_item(id, "weapon_flashbang");
		}

		if(get_user_team(id) == 2)
		{
			give_item(id, "weapon_knife");
			give_item(id, "weapon_flashbang");
		
			if(is_user_vip(id))
			{
				give_item(id, "weapon_smokegrenade");
			}
		}
	}
}

public ClCmdShop(id)
{
	if(get_user_team(id) == 1)
	{
		FurienShop(id);
	}
	
	if(get_user_team(id) == 2)
	{
		AntiFurienShop(id);
	}
}

public FurienShop(id)
{
	new szFormatex[128];
	formatex(szFormatex, charsmax(szFormatex), "\yFurien Shop \r^n\yCredite: \w%d", get_user_credits(id));
	
	new szMenu = menu_create(szFormatex, "FurienShopHandler");
	
	menu_additem(szMenu, "\y50 \wHP - \r[ \y5 Credite \r]", "1");
	menu_additem(szMenu, "\y50 \wAP - \r[ \y5 Credite \r]", "2");
	menu_additem(szMenu, "\yHE \wGrenade - \r[ \y10 Credite \r]^n", "3");
	
	menu_additem(szMenu, "\wNo Flash - \r[ \y15 Credite \r]", "4");
	menu_additem(szMenu, "\yCompound \rBow \w - \r[ \y20 Credite \r]^n", "5");
	
	menu_additem(szMenu, "\yHorse Axe \w - \r[ \y25 Credite \r]", "6");
	menu_additem(szMenu, "\wDual Katana \w - \r[ \y30 Credite \r]", "7");
	
	menu_setprop(szMenu, MPROP_EXIT, MEXIT_ALL);
	menu_display(id, szMenu, 0);
	
	return PLUGIN_HANDLED;
}

public AntiFurienShop(id)
{
	new szFormatex[128];
	formatex(szFormatex, charsmax(szFormatex), "\yAntiFurien Shop \r^n\yCredite: \w%d", get_user_credits(id));
	
	new szMenu = menu_create(szFormatex, "AntiFurienShopHandler");
	
	menu_additem(szMenu, "\y50 \wHP - \r[ \y5 Credite \r]", "1");
	menu_additem(szMenu, "\y50 \wAP - \r[ \y5 Credite \r]", "2");
	menu_additem(szMenu, "\yHE \wGrenade - \r[ \y10 Credite \r]^n", "3");
	
	menu_additem(szMenu, "\wNo Flash - \r[ \y15 Credite \r]", "4");
	menu_additem(szMenu, "\yPack \rEnergy \w - \r[ \y20 Credite \r]^n", "5");
	
	menu_additem(szMenu, "\wDefuse Kit \w - \r[ \y10 Credite \r]", "6");
	menu_additem(szMenu, "\yAnimals \rPet \w - \r[ \y35 Credite \r]", "7");
	
	menu_setprop(szMenu, MPROP_EXIT, MEXIT_ALL);
	menu_display(id, szMenu, 0);
	
	return PLUGIN_HANDLED;
}

public FurienShopHandler(id, szMenu, item)
{
	if(item == MENU_EXIT || !is_user_alive(id))
	{
		return PLUGIN_HANDLED;
	}
	
	new data[6], szName[64];
	new access, callback;
	menu_item_getinfo(szMenu, item, access, data, charsmax(data), szName, charsmax(szName), callback);
	new key = str_to_num(data);
	
	switch(key)
	{
		case 1:
		{
			if(get_user_credits(id) < 5)
			{
				ChatColor(id, "!g[Furien] !nYou don't have enough credits to buy !t50 HP");
				return PLUGIN_HANDLED;
			}
			
			if(get_user_health(id) >= 200)	//200 Health
			{	
				ChatColor(id, "!g[Furien] !nYou have reached your maximum !tHealth");
				return PLUGIN_HANDLED;
			}
			
			else
			{
				//set DHUD
				set_dhudmessage(0, 255, 255, 0.01, 0.90, 0, 6.0, 3.0);
				show_dhudmessage(id, "+ 50");
				
				//Add Health
				set_user_health(id, min(get_user_health(id) + 50, 200));
				
				//Sound
				client_cmd(id, "spk %s", szPickAmmoSound);
				
				//Set/Get User Credits
				set_user_credits(id, get_user_credits(id) - 5);
				ChatColor(id, "!g[Furien] !nYou bought !t50 HP !nfor !t5 credits");
			}
		}
		
		case 2:
		{
			if(get_user_credits(id) < 5)
			{
				ChatColor(id, "!g[Furien] !nYou don't have enough credits to buy !t50 AP");
				return PLUGIN_HANDLED;
			}
			
			if(get_user_armor(id) >= 150)	//150 Armor
			{
				ChatColor(id, "!g[Furien] !nYou have reached your maximum !tArmor");
				return PLUGIN_HANDLED;
			}
			
			else
			{
				//Set DUHD
				set_dhudmessage(0, 255, 255, 0.25, 0.90, 0, 6.0, 3.0);
				show_dhudmessage(id, "+ 50");
				
				//Add Armor
				set_user_armor(id, min(get_user_armor(id) + 50, 150));
				
				//Sound
				client_cmd(id, "spk %s", szPickAmmoSound);
				
				//Set/Get User Credits
				set_user_credits(id, get_user_credits(id) - 5);
				ChatColor(id, "!g[Furien] !nYou bought !t50 AP !nfor !t5 credits");
			}
		}
		
		case 3:
		{
			if(get_user_credits(id) < 10)
			{
				ChatColor(id, "!g[Furien] !nYou don't have enough credits to buy !tHE Grenade");
				return PLUGIN_HANDLED;
			}
			
			if(user_has_weapon(id, CSW_HEGRENADE))
			{
				ChatColor(id, "!g[Furien] !nYou have already a !tHE Grenade");
				return PLUGIN_HANDLED;
			}
			
			else
			{
				//Give HE Grenade
				give_item(id, "weapon_hegrenade");
				
				//Set/Get User Credits
				set_user_credits(id, get_user_credits(id) - 10);
				ChatColor(id, "!g[Furien] !nYou bought !tHE Grenade !nfor !t10 credits");
			}
		}
		
		case 4:
		{
			if(get_user_credits(id) < 15)
			{
				ChatColor(id, "!g[Furien] !nYou don't have enough credits to buy !tNo Flash");
				return PLUGIN_HANDLED;
			}
			
			if(g_HaveNoFlash[id] == true)
			{
				ChatColor(id, "!g[Furien] !nYou have already a !tNo Flash");
				return PLUGIN_HANDLED;
			}
			
			else
			{
				//Give No Flash
				g_HaveNoFlash[id] = true;
				
				//Sound
				client_cmd(id, "spk %s", szPickAmmoSound);
				
				//Set/Get User Credits
				set_user_credits(id, get_user_credits(id) - 15);
				ChatColor(id, "!g[Furien] !nYou bought !tNo Flash !nfor !t15 credits");
			}
		}
		
		case 5:
		{
			if(get_user_credits(id) < 20)
			{
				ChatColor(id, "!g[Furien] !nYou don't have enough credits to buy !tCompound Bow");
				return PLUGIN_HANDLED;
			}
			
			if(!is_user_admin(id))
			{
				ChatColor(id, "!g[Furien] !nThis item is only for !tVIP");
				return PLUGIN_HANDLED;
			}
			
			else
			{
				//Give Bow
				set_user_bow(id);
				
				//Sound
				client_cmd(id, "spk %s", szFmuPackEnergy);
				
				//Set/Get User Credits
				set_user_credits(id, get_user_credits(id) - 20);
				ChatColor(id, "!g[Furien] !nYou bought !tCompound Bow !nfor !t20 credits");
			}
		}
		
		case 6:
		{
			if(get_user_credits(id) < 25)
			{
				ChatColor(id, "!g[Furien] !nYou don't have enough credits to buy !tHorse Axe");
				return PLUGIN_HANDLED;
			}
			
			if(g_HaveHorseAxe[id] == true)
			{
				ChatColor(id, "!g[Furien] !nYou have already a !tHorse Axe");
				return PLUGIN_HANDLED;
			}
			
			else
			{
				//Give Knife Horse Axe
				g_HaveHorseAxe[id] = true;
				
				//Return Dual Katana
				g_HaveDualKatana[id] = false;
				
				//Current Weapons
				CurrentWeapon(id);
				
				//Sound
				client_cmd(id, "spk %s", szPickAmmoSound);
				
				//Set/Get User Credits
				set_user_credits(id, get_user_credits(id) - 25);
				ChatColor(id, "!g[Furien] !nYou bought !tHorse Axe !nfor !t25 credits");
			}
		}
		
		case 7:
		{
			if(get_user_credits(id) < 30)
			{
				ChatColor(id, "!g[Furien] !nYou don't have enough credits to buy !tDual Katana");
				return PLUGIN_HANDLED;
			}
			
			if(g_HaveDualKatana[id] == true)
			{
				ChatColor(id, "!g[Furien] !nYou have already a !tDual Katana");
				return PLUGIN_HANDLED;
			}
			
			else
			{
				//Give Knife Horse Axe
				g_HaveDualKatana[id] = true;
				
				//Return Horse Axe
				g_HaveHorseAxe[id] = false;
				
				//Current Weapons
				CurrentWeapon(id);
				
				//Sound
				client_cmd(id, "spk %s", szPickAmmoSound);
				
				//Set/Get User Credits
				set_user_credits(id, get_user_credits(id) - 25);
				ChatColor(id, "!g[Furien] !nYou bought !tDual Katana !nfor !t25 credits");
			}
		}
	}
	
	menu_destroy(szMenu);
	return PLUGIN_HANDLED;
}

public AntiFurienShopHandler(id, szMenu, item)
{
	if(item == MENU_EXIT || !is_user_alive(id))
	{
		return PLUGIN_HANDLED;
	}
	
	new data[6], szName[64];
	new access, callback;
	menu_item_getinfo(szMenu, item, access, data, charsmax(data), szName, charsmax(szName), callback);
	new key = str_to_num(data);
	
	switch(key)
	{
		case 1:
		{
			if(get_user_credits(id) < 5)
			{
				ChatColor(id, "!g[AntiFurien] !nYou don't have enough credits to buy !t50 HP");
				return PLUGIN_HANDLED;
			}
			
			if(get_user_health(id) >= 200)	//250 Health
			{	
				ChatColor(id, "!g[AntiFurien] !nYou have reached your maximum !tHealth");
				return PLUGIN_HANDLED;
			}
			
			else
			{
				//Set DUHD
				set_dhudmessage(0, 255, 255, 0.01, 0.90, 0, 6.0, 3.0);
				show_dhudmessage(id, "+ 50");
				
				//Add Health
				set_user_health(id, min(get_user_health(id) + 50, 200));
				
				//Sound
				client_cmd(id, "spk %s", szPickAmmoSound);
				
				//Set/Get User Credits
				set_user_credits(id, get_user_credits(id) - 5);
				ChatColor(id, "!g[AntiFurien] !nYou bought !t50 HP !nfor !t5 credits");
			}
		}
		
		case 2:
		{
			if(get_user_credits(id) < 5)
			{
				ChatColor(id, "!g[AntiFurien] !nYou don't have enough credits to buy !t50 AP");
				return PLUGIN_HANDLED;
			}
			
			if(get_user_armor(id) >= 200)	//200 Armor
			{
				ChatColor(id, "!g[AntiFurien] !nYou have reached your maximum !tArmor");
				return PLUGIN_HANDLED;
			}
			
			else
			{
				//Set DUHD
				set_dhudmessage(0, 255, 255, 0.25, 0.90, 0, 6.0, 3.0);
				show_dhudmessage(id, "+ 50");
				
				//Add Armor
				set_user_armor(id, min(get_user_armor(id) + 50, 200));
				
				//Sound
				client_cmd(id, "spk %s", szPickAmmoSound);
				
				//Set/Get User Credits
				set_user_credits(id, get_user_credits(id) - 5);
				ChatColor(id, "!g[AntiFurien] !nYou bought !t50 AP !nfor !t5 credits");
			}
		}
		
		case 3:
		{
			if(get_user_credits(id) < 10)
			{
				ChatColor(id, "!g[AntiFurien] !nYou don't have enough credits to buy !tHE Grenade");
				return PLUGIN_HANDLED;
			}
			
			if(user_has_weapon(id, CSW_HEGRENADE))
			{
				ChatColor(id, "!g[AntiFurien] !nYou have already a !tHE Grenade");
				return PLUGIN_HANDLED;
			}
			
			else
			{
				//Give HE Grenade
				give_item(id, "weapon_hegrenade");
				
				//Set/Get User Credits
				set_user_credits(id, get_user_credits(id) - 10);
				ChatColor(id, "!g[AntiFurien] !nYou bought !tHE Grenade !nfor !t10 credits");
			}
		}
		
		case 4:
		{
			if(get_user_credits(id) < 15)
			{
				ChatColor(id, "!g[AntiFurien] !nYou don't have enough credits to buy !tNo Flash");
				return PLUGIN_HANDLED;
			}
			
			if(g_HaveNoFlash[id] == true)
			{
				ChatColor(id, "!g[Furien] !nYou have already a !tNo Flash");
				return PLUGIN_HANDLED;
			}
			
			else
			{
				//Give No Flash
				g_HaveNoFlash[id] = true;
				
				//Sound
				client_cmd(id, "spk %s", szPickAmmoSound);
				
				//Set/Get User Credits
				set_user_credits(id, get_user_credits(id) - 15);
				ChatColor(id, "!g[AntiFurien] !nYou bought !tNo Flash !nfor !t15 credits");
			}
		}
		
		case 5:
		{
			if(get_user_credits(id) < 20)
			{
				ChatColor(id, "!g[AntiFurien] !nYou don't have enough credits to buy !tPack Energy");
				return PLUGIN_HANDLED;
			}
			
			if(g_HavePackEnergy[id] == true)
			{
				ChatColor(id, "!g[Furien] !nYou have already a !tPack Energy");
				return PLUGIN_HANDLED;
			}
			
			if(g_HaveAnimalsPet[id] == true)
			{
				return PLUGIN_HANDLED;
			}
			
			else
			{
				//Set Health/Armor
				set_user_armor(id, 200);
				set_user_health(id, 200);
				
				//Set Boolean Pack Enegry
				g_HavePackEnergy[id] = true;
				
				//Add Effects
				ShakeScreen(id, 0.9);
				
				//Sound
				client_cmd(id, "spk %s", szFmuPackEnergy);
				
				//Set/Get User Credits
				set_user_credits(id, get_user_credits(id) - 20);
				ChatColor(id, "!g[AntiFurien] !nYou bought !tPack Energy !nfor !t20 credits");
			}
		}
		
		case 6:
		{
			if(get_user_credits(id) < 10)
			{
				ChatColor(id, "!g[AntiFurien] !nYou don't have enough credits to buy !tDefuse Kit");
				return PLUGIN_HANDLED;
			}
			
			if(g_HaveDefuseKit[id] == true)
			{
				ChatColor(id, "!g[AntiFurien] !nYou have already a !tDefuse Kit");
				return PLUGIN_HANDLED;
			}
			
			else
			{
				//Give Defuse Kit
				g_HaveDefuseKit[id] = true;
				cs_set_user_defuse(id, 1);
				
				//Sound
				client_cmd(id, "spk %s", szPickAmmoSound);
				
				//Set/Get User Credits
				set_user_credits(id, get_user_credits(id) - 10);
				ChatColor(id, "!g[AntiFurien] !nYou bought !tDefuse Kit !nfor !t10 credits");
			}
		}
		
		case 7:
		{
			if(g_HavePackEnergy[id] == true)
			{
				return PLUGIN_HANDLED;
			}
			
			else
			{
				//Give Animals Pet
				set_user_pet(id);
				
				//Set Boolean
				g_HaveAnimalsPet[id] = true;
			}
		}
	}
	
	menu_destroy(szMenu);
	return PLUGIN_HANDLED;
}

public evDeathMsg()
{
	new iVictim = read_data(2);
	g_HaveNoFlash[iVictim] = false;
	g_HaveHorseAxe[iVictim] = false;
	g_HaveDualKatana[iVictim] = false;
}

public CurrentWeapon(id)
{
	if(g_HaveDualKatana[id] && get_user_weapon(id) == CSW_KNIFE)
	{
		set_pev(id, pev_viewmodel2, DualKatanaModel_V);
		set_pev(id, pev_weaponmodel2, DualKatanaModel_P);
	}
	
	if(g_HaveHorseAxe[id] && get_user_weapon(id) == CSW_KNIFE)
	{
		set_pev(id, pev_viewmodel2, HorseAxeModel_V);
		set_pev(id, pev_weaponmodel2, HorseAxeModel_P);
	}
}

public fw_EmitSounds(const id, const channel, const sample[])
{
	if(is_user_alive(id))
	{
		if(g_HaveDualKatana[id])
		{
			for(new i = 0; i < sizeof DualKatana_SoundList; i++)
			{
				if(equal(sample, KatanaKnife_SoundList))
				{
					emit_sound(id, channel, DualKatana_SoundList, 1.0, ATTN_NORM, 0, PITCH_NORM);
					return FMRES_SUPERCEDE;
				}
			}
		}
		
		if(g_HaveHorseAxe[id])
		{
			for(new i = 0; i < sizeof HorseAxe_SoundList; i++)
			{
				if(equal(sample, HorseAxeKnife_SoundList))
				{
					emit_sound(id, channel, HorseAxe_SoundList, 1.0, ATTN_NORM, 0, PITCH_NORM);
					return FMRES_SUPERCEDE;
				}
			}
		}
	}

	return FMRES_IGNORED;
}

public Player_TakeDamage(iVictim, iInflictor, iAttacker, Float:fDamage, iDamageBits)
{
	if(iInflictor == iAttacker && is_user_valid(iAttacker) && g_HaveHorseAxe[iAttacker] && is_user_connected(iAttacker) && get_user_weapon(iAttacker) == CSW_KNIFE)
	{
		SetHamParamFloat(4, fDamage * 2.2);
		return HAM_HANDLED;
	}
	
	if(iInflictor == iAttacker && is_user_valid(iAttacker) && g_HaveDualKatana[iAttacker] && is_user_connected(iAttacker) && get_user_weapon(iAttacker) == CSW_KNIFE )
	{
		SetHamParamFloat(4, fDamage * 2.0);
		return HAM_HANDLED;
	}
	
	return HAM_IGNORED;
}

public eventFlash(id)
{
	if(is_user_connected(id) && g_HaveNoFlash[id])
	{
		message_begin(MSG_ONE, g_msgScreenFade, {0,0,0}, id);
		write_short(1);
		write_short(1);
		write_short(1);
		write_byte(0);
		write_byte(0);
		write_byte(0);
		write_byte(255);
		message_end();
		
		FadeScreen(id, 0.6, 230, 0, 0, 50);
		ShakeScreen(id, 7.0);
		client_cmd(id, "mp3 play sound/%s", szFlashSound);
		set_task(7.0, "StoppedSound", id);
	}
}

public FadeScreen(id, const Float:seconds, const red, const green, const blue, const alpha)
{      
	message_begin(MSG_ONE, get_user_msgid("ScreenFade"), _, id);
	write_short(floatround(4096.0 * seconds, floatround_round));
	write_short(floatround(4096.0 * seconds, floatround_round));
	write_short(0x0000);
	write_byte(red);
	write_byte(green);
	write_byte(blue);
	write_byte(alpha);
	message_end( );
}


public ShakeScreen(id, const Float:seconds)
{
	message_begin(MSG_ONE, get_user_msgid("ScreenShake"), {0, 0, 0}, id);
	write_short(floatround(4096.0 * seconds, floatround_round));
	write_short(floatround(4096.0 * seconds, floatround_round));
	write_short(1<<13);
	message_end();
}

public StoppedSound(id)
{
	client_cmd(id, "mp3 stop sound/%s", szFlashSound);
}

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)) {
                                message_begin(MSG_ONE_UNRELIABLE, get_user_msgid("SayText"), _, players);
                                write_byte(players);
                                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 }
*/
RoyalServer 2
User avatar
EleCtr0zZz
Membru, skill +1
Membru, skill +1
Posts: 428
Joined: 25 May 2015, 07:27
Detinator Steam: Da
SteamID: =
Fond eXtream: 0
Has thanked: 3 times
Contact:

14 May 2018, 14:54

Am si eu nevoie !! UP :up: :up:
*Or!g!naL*
Fost moderator
Fost moderator
Posts: 1367
Joined: 16 Feb 2014, 16:28
Detinator Steam: Nu
CS Status: N-avem!
Detinator server CS: Zm.Darkcs.ro
Reputatie: Fost moderator ajutator
Has thanked: 3 times
Been thanked: 1 time

14 May 2018, 20:18

| Afiseaza codul
#include <amxmodx>
#include <cstrike>
#include <fakemeta>
#include <hamsandwich>
#include <dhudmessage>
#include <fun>

new const PLUGIN[] = "Furien: Shop Ultimate";
new const VERSION[] = "0.3.1";

#pragma semicolon 1

#define is_user_valid(%0)	(1 <= %0 <= g_iMaxPlayers)
#define is_user_vip(%1)		(get_user_flags(%1) & ADMIN_RESERVATION)   
#define is_user_admin(%1)	(get_user_flags(%1) & ADMIN_IMMUNITY)   

//Sounds
new const szPickAmmoSound[66] = "items/9mmclip1.wav";
new const szFmuPackEnergy[66] = "misc/fmu_energy.wav";
new const szFlashSound[66] = "misc/fmu_flash_sound.mp3";

//Boolean
new bool: g_HaveNoFlash[33];
new bool: g_HaveDefuseKit[33];
new bool: g_HavePackEnergy[33];
new bool: g_HaveAnimalsPet[33];
new CountHP[33] = 0;
//Vectors
new g_msgScreenFade;

//Native Credits
native get_user_credits(id);
native set_user_credits(id, credits);

//Native Pet
native set_user_pet(id);

//Bow
native set_user_bow(id);

public plugin_init()
{
	register_plugin(PLUGIN, VERSION, "Adventx");
	register_cvar("fmu_shop_ecila", VERSION, FCVAR_SERVER | FCVAR_SPONLY);
	
	//Register Command
	register_clcmd("say shop","ClCmdShop");
	register_clcmd("say /shop","ClCmdShop");
	
	register_event("DeathMsg", "evDeathMsg", "a");
	register_event("ScreenFade", "eventFlash", "be", "4=255", "5=255", "6=255", "7>199");
	RegisterHam(Ham_Spawn, "player", "hamPlayerSpawnPost", 1);
	
	g_msgScreenFade = get_user_msgid("ScreenFade");
	
	set_msg_block(get_user_msgid("ClCorpse"), BLOCK_SET);
}

public plugin_precache()
{
	//Sound
	precache_sound(szPickAmmoSound);
	precache_sound(szFmuPackEnergy);
	
}

public client_putinserver(id)
{
	g_HaveNoFlash[id] = false;
	g_HaveDefuseKit[id] = false;
	g_HavePackEnergy[id] = false;
	g_HaveAnimalsPet[id] = false;
}

public client_disconnect(id)
{
	g_HaveNoFlash[id] = false;
	g_HaveDefuseKit[id] = false;
	g_HavePackEnergy[id] = false;
	g_HaveAnimalsPet[id] = false;
}

public hamPlayerSpawnPost(id)
{
	CountHP[id] = 0;
	if(is_user_alive(id))
	{
		if(get_user_team(id) == 2)
		{
			
			//Defuse Kit
			if(g_HaveDefuseKit[id] == true)
			{
				cs_set_user_defuse(id, 0);
				g_HaveDefuseKit[id] = false;
			}
		}
		
		//Strip User Weapons
		strip_user_weapons(id);
		
		//Give Equipment
		FmuGiveEquipment(id);
		
		//Booleans
		g_HavePackEnergy[id] = false;
		g_HaveAnimalsPet[id] = false;
	}
}

public FmuGiveEquipment(id)
{
	if(is_user_alive(id))
	{
		if(get_user_team(id) == 1)
		{
			give_item(id, "weapon_knife");
			give_item(id, "weapon_hegrenade");
			give_item(id, "weapon_flashbang");
		}
		
		if(get_user_team(id) == 2)
		{
			give_item(id, "weapon_knife");
			give_item(id, "weapon_flashbang");
			
			if(is_user_vip(id))
			{
				give_item(id, "weapon_smokegrenade");
			}
		}
	}
}

public ClCmdShop(id)
{
	if(get_user_team(id) == 1)
	{
		FurienShop(id);
	}
	
	if(get_user_team(id) == 2)
	{
		AntiFurienShop(id);
	}
}

public FurienShop(id)
{
	new szFormatex[128];
	formatex(szFormatex, charsmax(szFormatex), "\yFurien Shop \r^n\yCredite: \w%d", get_user_credits(id));
	
	new szMenu = menu_create(szFormatex, "FurienShopHandler");
	
	menu_additem(szMenu, "\y50 \wHP - \r[ \y5 Credite \r]", "1");
	menu_additem(szMenu, "\y50 \wAP - \r[ \y5 Credite \r]", "2");
	menu_additem(szMenu, "\yHE \wGrenade - \r[ \y10 Credite \r]^n", "3");
	
	menu_additem(szMenu, "\wNo Flash - \r[ \y15 Credite \r]", "4");
	menu_additem(szMenu, "\yCompound \rBow \w - \r[ \y20 Credite \r]^n", "5");
	
	
	menu_setprop(szMenu, MPROP_EXIT, MEXIT_ALL);
	menu_display(id, szMenu, 0);
	
	return PLUGIN_HANDLED;
}

public AntiFurienShop(id)
{
	new szFormatex[128];
	formatex(szFormatex, charsmax(szFormatex), "\yAntiFurien Shop \r^n\yCredite: \w%d", get_user_credits(id));
	
	new szMenu = menu_create(szFormatex, "AntiFurienShopHandler");
	
	menu_additem(szMenu, "\y50 \wHP - \r[ \y5 Credite \r]", "1");
	menu_additem(szMenu, "\y50 \wAP - \r[ \y5 Credite \r]", "2");
	menu_additem(szMenu, "\yHE \wGrenade - \r[ \y10 Credite \r]^n", "3");
	
	menu_additem(szMenu, "\wNo Flash - \r[ \y15 Credite \r]", "4");
	menu_additem(szMenu, "\yPack \rEnergy \w - \r[ \y20 Credite \r]^n", "5");
	
	menu_additem(szMenu, "\wDefuse Kit \w - \r[ \y10 Credite \r]", "6");
	menu_additem(szMenu, "\yAnimals \rPet \w - \r[ \y35 Credite \r]", "7");
	
	menu_setprop(szMenu, MPROP_EXIT, MEXIT_ALL);
	menu_display(id, szMenu, 0);
	
	return PLUGIN_HANDLED;
}

public FurienShopHandler(id, szMenu, item)
{
	if(item == MENU_EXIT || !is_user_alive(id))
	{
		return PLUGIN_HANDLED;
	}
	
	new data[6], szName[64];
	new access, callback;
	menu_item_getinfo(szMenu, item, access, data, charsmax(data), szName, charsmax(szName), callback);
	new key = str_to_num(data);
	
	switch(key)
	{
		case 1:
		{
			if(get_user_credits(id) < 5)
			{
				ChatColor(id, "!g[Furien] !nYou don't have enough credits to buy !t50 HP");
				return PLUGIN_HANDLED;
			}
			
			if(CountHP[id] == 3) {
				ChatColor(id, "!g[Furien] !nYou bought !t50 HP !nfor !t5 credits");
				return 1;
			}
			else
			{
				//set DHUD
				set_dhudmessage(0, 255, 255, 0.01, 0.90, 0, 6.0, 3.0);
				show_dhudmessage(id, "+ 50");
				CountHP[id]++;
				//Add Health
				set_user_health(id, min(get_user_health(id) + 50, 200));
				
				//Sound
				client_cmd(id, "spk %s", szPickAmmoSound);
				
				//Set/Get User Credits
				set_user_credits(id, get_user_credits(id) - 5);
				ChatColor(id, "!g[Furien] !nYou bought !t50 HP !nfor !t5 credits");
				if(get_user_health(id) >= 200)	//200 Health
				{	
					ChatColor(id, "!g[Furien] !nYou have reached your maximum !tHealth");
					return PLUGIN_HANDLED;
				}
			}
			
		}
		
		case 2:
		{
			if(get_user_credits(id) < 5)
			{
				ChatColor(id, "!g[Furien] !nYou don't have enough credits to buy !t50 AP");
				return PLUGIN_HANDLED;
			}
			
			if(get_user_armor(id) >= 150)	//150 Armor
			{
				ChatColor(id, "!g[Furien] !nYou have reached your maximum !tArmor");
				return PLUGIN_HANDLED;
			}
			
			else
			{
				//Set DUHD
				set_dhudmessage(0, 255, 255, 0.25, 0.90, 0, 6.0, 3.0);
				show_dhudmessage(id, "+ 50");
				
				//Add Armor
				set_user_armor(id, min(get_user_armor(id) + 50, 150));
				
				//Sound
				client_cmd(id, "spk %s", szPickAmmoSound);
				
				//Set/Get User Credits
				set_user_credits(id, get_user_credits(id) - 5);
				ChatColor(id, "!g[Furien] !nYou bought !t50 AP !nfor !t5 credits");
			}
		}
		
		case 3:
		{
			if(get_user_credits(id) < 10)
			{
				ChatColor(id, "!g[Furien] !nYou don't have enough credits to buy !tHE Grenade");
				return PLUGIN_HANDLED;
			}
			
			if(user_has_weapon(id, CSW_HEGRENADE))
			{
				ChatColor(id, "!g[Furien] !nYou have already a !tHE Grenade");
				return PLUGIN_HANDLED;
			}
			
			else
			{
				//Give HE Grenade
				give_item(id, "weapon_hegrenade");
				
				//Set/Get User Credits
				set_user_credits(id, get_user_credits(id) - 10);
				ChatColor(id, "!g[Furien] !nYou bought !tHE Grenade !nfor !t10 credits");
			}
		}
		
		case 4:
		{
			if(get_user_credits(id) < 15)
			{
				ChatColor(id, "!g[Furien] !nYou don't have enough credits to buy !tNo Flash");
				return PLUGIN_HANDLED;
			}
			
			if(g_HaveNoFlash[id] == true)
			{
				ChatColor(id, "!g[Furien] !nYou have already a !tNo Flash");
				return PLUGIN_HANDLED;
			}
			
			else
			{
				//Give No Flash
				g_HaveNoFlash[id] = true;
				
				//Sound
				client_cmd(id, "spk %s", szPickAmmoSound);
				
				//Set/Get User Credits
				set_user_credits(id, get_user_credits(id) - 15);
				ChatColor(id, "!g[Furien] !nYou bought !tNo Flash !nfor !t15 credits");
			}
		}
		
		case 5:
		{
			if(get_user_credits(id) < 20)
			{
				ChatColor(id, "!g[Furien] !nYou don't have enough credits to buy !tCompound Bow");
				return PLUGIN_HANDLED;
			}
			
			if(!is_user_admin(id))
			{
				ChatColor(id, "!g[Furien] !nThis item is only for !tVIP");
				return PLUGIN_HANDLED;
			}
			
			else
			{
				//Give Bow
				set_user_bow(id);
				
				//Sound
				client_cmd(id, "spk %s", szFmuPackEnergy);
				
				//Set/Get User Credits
				set_user_credits(id, get_user_credits(id) - 20);
				ChatColor(id, "!g[Furien] !nYou bought !tCompound Bow !nfor !t20 credits");
			}
		}
		
	}
	
	menu_destroy(szMenu);
	return PLUGIN_HANDLED;
}

public AntiFurienShopHandler(id, szMenu, item)
{
	if(item == MENU_EXIT || !is_user_alive(id))
	{
		return PLUGIN_HANDLED;
	}
	
	new data[6], szName[64];
	new access, callback;
	menu_item_getinfo(szMenu, item, access, data, charsmax(data), szName, charsmax(szName), callback);
	new key = str_to_num(data);
	
	switch(key)
	{
		case 1:
		{
			if(get_user_credits(id) < 5)
			{
				ChatColor(id, "!g[AntiFurien] !nYou don't have enough credits to buy !t50 HP");
				return PLUGIN_HANDLED;
			}
			
			if(CountHP[id] == 3) {
				ChatColor(id, "!g[Furien] !nYou bought !t50 HP !nfor !t5 credits");
				return 1;
			}
			else
			{
				//Set DUHD
				set_dhudmessage(0, 255, 255, 0.01, 0.90, 0, 6.0, 3.0);
				show_dhudmessage(id, "+ 50");
				
				//Add Health
				set_user_health(id, min(get_user_health(id) + 50, 200));
				
				//Sound
				client_cmd(id, "spk %s", szPickAmmoSound);
				
				//Set/Get User Credits
				set_user_credits(id, get_user_credits(id) - 5);
				ChatColor(id, "!g[AntiFurien] !nYou bought !t50 HP !nfor !t5 credits");
				if(get_user_health(id) >= 200)	//250 Health
				{	
					ChatColor(id, "!g[AntiFurien] !nYou have reached your maximum !tHealth");
					return PLUGIN_HANDLED;
				}
			}
		}
		
		case 2:
		{
			if(get_user_credits(id) < 5)
			{
				ChatColor(id, "!g[AntiFurien] !nYou don't have enough credits to buy !t50 AP");
				return PLUGIN_HANDLED;
			}
			
			if(get_user_armor(id) >= 200)	//200 Armor
			{
				ChatColor(id, "!g[AntiFurien] !nYou have reached your maximum !tArmor");
				return PLUGIN_HANDLED;
			}
			
			else
			{
				//Set DUHD
				set_dhudmessage(0, 255, 255, 0.25, 0.90, 0, 6.0, 3.0);
				show_dhudmessage(id, "+ 50");
				
				//Add Armor
				set_user_armor(id, min(get_user_armor(id) + 50, 200));
				
				//Sound
				client_cmd(id, "spk %s", szPickAmmoSound);
				
				//Set/Get User Credits
				set_user_credits(id, get_user_credits(id) - 5);
				ChatColor(id, "!g[AntiFurien] !nYou bought !t50 AP !nfor !t5 credits");
			}
		}
		
		case 3:
		{
			if(get_user_credits(id) < 10)
			{
				ChatColor(id, "!g[AntiFurien] !nYou don't have enough credits to buy !tHE Grenade");
				return PLUGIN_HANDLED;
			}
			
			if(user_has_weapon(id, CSW_HEGRENADE))
			{
				ChatColor(id, "!g[AntiFurien] !nYou have already a !tHE Grenade");
				return PLUGIN_HANDLED;
			}
			
			else
			{
				//Give HE Grenade
				give_item(id, "weapon_hegrenade");
				
				//Set/Get User Credits
				set_user_credits(id, get_user_credits(id) - 10);
				ChatColor(id, "!g[AntiFurien] !nYou bought !tHE Grenade !nfor !t10 credits");
			}
		}
		
		case 4:
		{
			if(get_user_credits(id) < 15)
			{
				ChatColor(id, "!g[AntiFurien] !nYou don't have enough credits to buy !tNo Flash");
				return PLUGIN_HANDLED;
			}
			
			if(g_HaveNoFlash[id] == true)
			{
				ChatColor(id, "!g[Furien] !nYou have already a !tNo Flash");
				return PLUGIN_HANDLED;
			}
			
			else
			{
				//Give No Flash
				g_HaveNoFlash[id] = true;
				
				//Sound
				client_cmd(id, "spk %s", szPickAmmoSound);
				
				//Set/Get User Credits
				set_user_credits(id, get_user_credits(id) - 15);
				ChatColor(id, "!g[AntiFurien] !nYou bought !tNo Flash !nfor !t15 credits");
			}
		}
		
		case 5:
		{
			if(get_user_credits(id) < 20)
			{
				ChatColor(id, "!g[AntiFurien] !nYou don't have enough credits to buy !tPack Energy");
				return PLUGIN_HANDLED;
			}
			
			if(g_HavePackEnergy[id] == true)
			{
				ChatColor(id, "!g[Furien] !nYou have already a !tPack Energy");
				return PLUGIN_HANDLED;
			}
			
			if(g_HaveAnimalsPet[id] == true)
			{
				return PLUGIN_HANDLED;
			}
			
			else
			{
				//Set Health/Armor
				set_user_armor(id, 200);
				set_user_health(id, 200);
				
				//Set Boolean Pack Enegry
				g_HavePackEnergy[id] = true;
				
				//Add Effects
				ShakeScreen(id, 0.9);
				
				//Sound
				client_cmd(id, "spk %s", szFmuPackEnergy);
				
				//Set/Get User Credits
				set_user_credits(id, get_user_credits(id) - 20);
				ChatColor(id, "!g[AntiFurien] !nYou bought !tPack Energy !nfor !t20 credits");
			}
		}
		
		case 6:
		{
			if(get_user_credits(id) < 10)
			{
				ChatColor(id, "!g[AntiFurien] !nYou don't have enough credits to buy !tDefuse Kit");
				return PLUGIN_HANDLED;
			}
			
			if(g_HaveDefuseKit[id] == true)
			{
				ChatColor(id, "!g[AntiFurien] !nYou have already a !tDefuse Kit");
				return PLUGIN_HANDLED;
			}
			
			else
			{
				//Give Defuse Kit
				g_HaveDefuseKit[id] = true;
				cs_set_user_defuse(id, 1);
				
				//Sound
				client_cmd(id, "spk %s", szPickAmmoSound);
				
				//Set/Get User Credits
				set_user_credits(id, get_user_credits(id) - 10);
				ChatColor(id, "!g[AntiFurien] !nYou bought !tDefuse Kit !nfor !t10 credits");
			}
		}
		
		case 7:
		{
			if(g_HavePackEnergy[id] == true)
			{
				return PLUGIN_HANDLED;
			}
			
			else
			{
				//Give Animals Pet
				set_user_pet(id);
				
				//Set Boolean
				g_HaveAnimalsPet[id] = true;
			}
		}
	}
	
	menu_destroy(szMenu);
	return PLUGIN_HANDLED;
}

public evDeathMsg()
{
	new iVictim = read_data(2);
	g_HaveNoFlash[iVictim] = false;
	
}

public eventFlash(id)
{
	if(is_user_connected(id) && g_HaveNoFlash[id])
	{
		message_begin(MSG_ONE, g_msgScreenFade, {0,0,0}, id);
		write_short(1);
		write_short(1);
		write_short(1);
		write_byte(0);
		write_byte(0);
		write_byte(0);
		write_byte(255);
		message_end();
		
		FadeScreen(id, 0.6, 230, 0, 0, 50);
		ShakeScreen(id, 7.0);
		client_cmd(id, "mp3 play sound/%s", szFlashSound);
		set_task(7.0, "StoppedSound", id);
	}
}

public FadeScreen(id, const Float:seconds, const red, const green, const blue, const alpha)
{      
	message_begin(MSG_ONE, get_user_msgid("ScreenFade"), _, id);
	write_short(floatround(4096.0 * seconds, floatround_round));
	write_short(floatround(4096.0 * seconds, floatround_round));
	write_short(0x0000);
	write_byte(red);
	write_byte(green);
	write_byte(blue);
	write_byte(alpha);
	message_end( );
}


public ShakeScreen(id, const Float:seconds)
{
	message_begin(MSG_ONE, get_user_msgid("ScreenShake"), {0, 0, 0}, id);
	write_short(floatround(4096.0 * seconds, floatround_round));
	write_short(floatround(4096.0 * seconds, floatround_round));
	write_short(1<<13);
	message_end();
}

public StoppedSound(id)
{
	client_cmd(id, "mp3 stop sound/%s", szFlashSound);
}

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)) {
				message_begin(MSG_ONE_UNRELIABLE, get_user_msgid("SayText"), _, players);
				write_byte(players);
				write_string(msg);
				message_end();
			}
		}
	}
}

plus o mica optimizare
Image
User avatar
EleCtr0zZz
Membru, skill +1
Membru, skill +1
Posts: 428
Joined: 25 May 2015, 07:27
Detinator Steam: Da
SteamID: =
Fond eXtream: 0
Has thanked: 3 times
Contact:

14 May 2018, 22:02

*Or!g!naL* wrote:
| Afiseaza codul
#include <amxmodx>
#include <cstrike>
#include <fakemeta>
#include <hamsandwich>
#include <dhudmessage>
#include <fun>

new const PLUGIN[] = "Furien: Shop Ultimate";
new const VERSION[] = "0.3.1";

#pragma semicolon 1

#define is_user_valid(%0)	(1 <= %0 <= g_iMaxPlayers)
#define is_user_vip(%1)		(get_user_flags(%1) & ADMIN_RESERVATION)   
#define is_user_admin(%1)	(get_user_flags(%1) & ADMIN_IMMUNITY)   

//Sounds
new const szPickAmmoSound[66] = "items/9mmclip1.wav";
new const szFmuPackEnergy[66] = "misc/fmu_energy.wav";
new const szFlashSound[66] = "misc/fmu_flash_sound.mp3";

//Boolean
new bool: g_HaveNoFlash[33];
new bool: g_HaveDefuseKit[33];
new bool: g_HavePackEnergy[33];
new bool: g_HaveAnimalsPet[33];
new CountHP[33] = 0;
//Vectors
new g_msgScreenFade;

//Native Credits
native get_user_credits(id);
native set_user_credits(id, credits);

//Native Pet
native set_user_pet(id);

//Bow
native set_user_bow(id);

public plugin_init()
{
	register_plugin(PLUGIN, VERSION, "Adventx");
	register_cvar("fmu_shop_ecila", VERSION, FCVAR_SERVER | FCVAR_SPONLY);
	
	//Register Command
	register_clcmd("say shop","ClCmdShop");
	register_clcmd("say /shop","ClCmdShop");
	
	register_event("DeathMsg", "evDeathMsg", "a");
	register_event("ScreenFade", "eventFlash", "be", "4=255", "5=255", "6=255", "7>199");
	RegisterHam(Ham_Spawn, "player", "hamPlayerSpawnPost", 1);
	
	g_msgScreenFade = get_user_msgid("ScreenFade");
	
	set_msg_block(get_user_msgid("ClCorpse"), BLOCK_SET);
}

public plugin_precache()
{
	//Sound
	precache_sound(szPickAmmoSound);
	precache_sound(szFmuPackEnergy);
	
}

public client_putinserver(id)
{
	g_HaveNoFlash[id] = false;
	g_HaveDefuseKit[id] = false;
	g_HavePackEnergy[id] = false;
	g_HaveAnimalsPet[id] = false;
}

public client_disconnect(id)
{
	g_HaveNoFlash[id] = false;
	g_HaveDefuseKit[id] = false;
	g_HavePackEnergy[id] = false;
	g_HaveAnimalsPet[id] = false;
}

public hamPlayerSpawnPost(id)
{
	CountHP[id] = 0;
	if(is_user_alive(id))
	{
		if(get_user_team(id) == 2)
		{
			
			//Defuse Kit
			if(g_HaveDefuseKit[id] == true)
			{
				cs_set_user_defuse(id, 0);
				g_HaveDefuseKit[id] = false;
			}
		}
		
		//Strip User Weapons
		strip_user_weapons(id);
		
		//Give Equipment
		FmuGiveEquipment(id);
		
		//Booleans
		g_HavePackEnergy[id] = false;
		g_HaveAnimalsPet[id] = false;
	}
}

public FmuGiveEquipment(id)
{
	if(is_user_alive(id))
	{
		if(get_user_team(id) == 1)
		{
			give_item(id, "weapon_knife");
			give_item(id, "weapon_hegrenade");
			give_item(id, "weapon_flashbang");
		}
		
		if(get_user_team(id) == 2)
		{
			give_item(id, "weapon_knife");
			give_item(id, "weapon_flashbang");
			
			if(is_user_vip(id))
			{
				give_item(id, "weapon_smokegrenade");
			}
		}
	}
}

public ClCmdShop(id)
{
	if(get_user_team(id) == 1)
	{
		FurienShop(id);
	}
	
	if(get_user_team(id) == 2)
	{
		AntiFurienShop(id);
	}
}

public FurienShop(id)
{
	new szFormatex[128];
	formatex(szFormatex, charsmax(szFormatex), "\yFurien Shop \r^n\yCredite: \w%d", get_user_credits(id));
	
	new szMenu = menu_create(szFormatex, "FurienShopHandler");
	
	menu_additem(szMenu, "\y50 \wHP - \r[ \y5 Credite \r]", "1");
	menu_additem(szMenu, "\y50 \wAP - \r[ \y5 Credite \r]", "2");
	menu_additem(szMenu, "\yHE \wGrenade - \r[ \y10 Credite \r]^n", "3");
	
	menu_additem(szMenu, "\wNo Flash - \r[ \y15 Credite \r]", "4");
	menu_additem(szMenu, "\yCompound \rBow \w - \r[ \y20 Credite \r]^n", "5");
	
	
	menu_setprop(szMenu, MPROP_EXIT, MEXIT_ALL);
	menu_display(id, szMenu, 0);
	
	return PLUGIN_HANDLED;
}

public AntiFurienShop(id)
{
	new szFormatex[128];
	formatex(szFormatex, charsmax(szFormatex), "\yAntiFurien Shop \r^n\yCredite: \w%d", get_user_credits(id));
	
	new szMenu = menu_create(szFormatex, "AntiFurienShopHandler");
	
	menu_additem(szMenu, "\y50 \wHP - \r[ \y5 Credite \r]", "1");
	menu_additem(szMenu, "\y50 \wAP - \r[ \y5 Credite \r]", "2");
	menu_additem(szMenu, "\yHE \wGrenade - \r[ \y10 Credite \r]^n", "3");
	
	menu_additem(szMenu, "\wNo Flash - \r[ \y15 Credite \r]", "4");
	menu_additem(szMenu, "\yPack \rEnergy \w - \r[ \y20 Credite \r]^n", "5");
	
	menu_additem(szMenu, "\wDefuse Kit \w - \r[ \y10 Credite \r]", "6");
	menu_additem(szMenu, "\yAnimals \rPet \w - \r[ \y35 Credite \r]", "7");
	
	menu_setprop(szMenu, MPROP_EXIT, MEXIT_ALL);
	menu_display(id, szMenu, 0);
	
	return PLUGIN_HANDLED;
}

public FurienShopHandler(id, szMenu, item)
{
	if(item == MENU_EXIT || !is_user_alive(id))
	{
		return PLUGIN_HANDLED;
	}
	
	new data[6], szName[64];
	new access, callback;
	menu_item_getinfo(szMenu, item, access, data, charsmax(data), szName, charsmax(szName), callback);
	new key = str_to_num(data);
	
	switch(key)
	{
		case 1:
		{
			if(get_user_credits(id) < 5)
			{
				ChatColor(id, "!g[Furien] !nYou don't have enough credits to buy !t50 HP");
				return PLUGIN_HANDLED;
			}
			
			if(CountHP[id] == 3) {
				ChatColor(id, "!g[Furien] !nYou bought !t50 HP !nfor !t5 credits");
				return 1;
			}
			else
			{
				//set DHUD
				set_dhudmessage(0, 255, 255, 0.01, 0.90, 0, 6.0, 3.0);
				show_dhudmessage(id, "+ 50");
				CountHP[id]++;
				//Add Health
				set_user_health(id, min(get_user_health(id) + 50, 200));
				
				//Sound
				client_cmd(id, "spk %s", szPickAmmoSound);
				
				//Set/Get User Credits
				set_user_credits(id, get_user_credits(id) - 5);
				ChatColor(id, "!g[Furien] !nYou bought !t50 HP !nfor !t5 credits");
				if(get_user_health(id) >= 200)	//200 Health
				{	
					ChatColor(id, "!g[Furien] !nYou have reached your maximum !tHealth");
					return PLUGIN_HANDLED;
				}
			}
			
		}
		
		case 2:
		{
			if(get_user_credits(id) < 5)
			{
				ChatColor(id, "!g[Furien] !nYou don't have enough credits to buy !t50 AP");
				return PLUGIN_HANDLED;
			}
			
			if(get_user_armor(id) >= 150)	//150 Armor
			{
				ChatColor(id, "!g[Furien] !nYou have reached your maximum !tArmor");
				return PLUGIN_HANDLED;
			}
			
			else
			{
				//Set DUHD
				set_dhudmessage(0, 255, 255, 0.25, 0.90, 0, 6.0, 3.0);
				show_dhudmessage(id, "+ 50");
				
				//Add Armor
				set_user_armor(id, min(get_user_armor(id) + 50, 150));
				
				//Sound
				client_cmd(id, "spk %s", szPickAmmoSound);
				
				//Set/Get User Credits
				set_user_credits(id, get_user_credits(id) - 5);
				ChatColor(id, "!g[Furien] !nYou bought !t50 AP !nfor !t5 credits");
			}
		}
		
		case 3:
		{
			if(get_user_credits(id) < 10)
			{
				ChatColor(id, "!g[Furien] !nYou don't have enough credits to buy !tHE Grenade");
				return PLUGIN_HANDLED;
			}
			
			if(user_has_weapon(id, CSW_HEGRENADE))
			{
				ChatColor(id, "!g[Furien] !nYou have already a !tHE Grenade");
				return PLUGIN_HANDLED;
			}
			
			else
			{
				//Give HE Grenade
				give_item(id, "weapon_hegrenade");
				
				//Set/Get User Credits
				set_user_credits(id, get_user_credits(id) - 10);
				ChatColor(id, "!g[Furien] !nYou bought !tHE Grenade !nfor !t10 credits");
			}
		}
		
		case 4:
		{
			if(get_user_credits(id) < 15)
			{
				ChatColor(id, "!g[Furien] !nYou don't have enough credits to buy !tNo Flash");
				return PLUGIN_HANDLED;
			}
			
			if(g_HaveNoFlash[id] == true)
			{
				ChatColor(id, "!g[Furien] !nYou have already a !tNo Flash");
				return PLUGIN_HANDLED;
			}
			
			else
			{
				//Give No Flash
				g_HaveNoFlash[id] = true;
				
				//Sound
				client_cmd(id, "spk %s", szPickAmmoSound);
				
				//Set/Get User Credits
				set_user_credits(id, get_user_credits(id) - 15);
				ChatColor(id, "!g[Furien] !nYou bought !tNo Flash !nfor !t15 credits");
			}
		}
		
		case 5:
		{
			if(get_user_credits(id) < 20)
			{
				ChatColor(id, "!g[Furien] !nYou don't have enough credits to buy !tCompound Bow");
				return PLUGIN_HANDLED;
			}
			
			if(!is_user_admin(id))
			{
				ChatColor(id, "!g[Furien] !nThis item is only for !tVIP");
				return PLUGIN_HANDLED;
			}
			
			else
			{
				//Give Bow
				set_user_bow(id);
				
				//Sound
				client_cmd(id, "spk %s", szFmuPackEnergy);
				
				//Set/Get User Credits
				set_user_credits(id, get_user_credits(id) - 20);
				ChatColor(id, "!g[Furien] !nYou bought !tCompound Bow !nfor !t20 credits");
			}
		}
		
	}
	
	menu_destroy(szMenu);
	return PLUGIN_HANDLED;
}

public AntiFurienShopHandler(id, szMenu, item)
{
	if(item == MENU_EXIT || !is_user_alive(id))
	{
		return PLUGIN_HANDLED;
	}
	
	new data[6], szName[64];
	new access, callback;
	menu_item_getinfo(szMenu, item, access, data, charsmax(data), szName, charsmax(szName), callback);
	new key = str_to_num(data);
	
	switch(key)
	{
		case 1:
		{
			if(get_user_credits(id) < 5)
			{
				ChatColor(id, "!g[AntiFurien] !nYou don't have enough credits to buy !t50 HP");
				return PLUGIN_HANDLED;
			}
			
			if(CountHP[id] == 3) {
				ChatColor(id, "!g[Furien] !nYou bought !t50 HP !nfor !t5 credits");
				return 1;
			}
			else
			{
				//Set DUHD
				set_dhudmessage(0, 255, 255, 0.01, 0.90, 0, 6.0, 3.0);
				show_dhudmessage(id, "+ 50");
				
				//Add Health
				set_user_health(id, min(get_user_health(id) + 50, 200));
				
				//Sound
				client_cmd(id, "spk %s", szPickAmmoSound);
				
				//Set/Get User Credits
				set_user_credits(id, get_user_credits(id) - 5);
				ChatColor(id, "!g[AntiFurien] !nYou bought !t50 HP !nfor !t5 credits");
				if(get_user_health(id) >= 200)	//250 Health
				{	
					ChatColor(id, "!g[AntiFurien] !nYou have reached your maximum !tHealth");
					return PLUGIN_HANDLED;
				}
			}
		}
		
		case 2:
		{
			if(get_user_credits(id) < 5)
			{
				ChatColor(id, "!g[AntiFurien] !nYou don't have enough credits to buy !t50 AP");
				return PLUGIN_HANDLED;
			}
			
			if(get_user_armor(id) >= 200)	//200 Armor
			{
				ChatColor(id, "!g[AntiFurien] !nYou have reached your maximum !tArmor");
				return PLUGIN_HANDLED;
			}
			
			else
			{
				//Set DUHD
				set_dhudmessage(0, 255, 255, 0.25, 0.90, 0, 6.0, 3.0);
				show_dhudmessage(id, "+ 50");
				
				//Add Armor
				set_user_armor(id, min(get_user_armor(id) + 50, 200));
				
				//Sound
				client_cmd(id, "spk %s", szPickAmmoSound);
				
				//Set/Get User Credits
				set_user_credits(id, get_user_credits(id) - 5);
				ChatColor(id, "!g[AntiFurien] !nYou bought !t50 AP !nfor !t5 credits");
			}
		}
		
		case 3:
		{
			if(get_user_credits(id) < 10)
			{
				ChatColor(id, "!g[AntiFurien] !nYou don't have enough credits to buy !tHE Grenade");
				return PLUGIN_HANDLED;
			}
			
			if(user_has_weapon(id, CSW_HEGRENADE))
			{
				ChatColor(id, "!g[AntiFurien] !nYou have already a !tHE Grenade");
				return PLUGIN_HANDLED;
			}
			
			else
			{
				//Give HE Grenade
				give_item(id, "weapon_hegrenade");
				
				//Set/Get User Credits
				set_user_credits(id, get_user_credits(id) - 10);
				ChatColor(id, "!g[AntiFurien] !nYou bought !tHE Grenade !nfor !t10 credits");
			}
		}
		
		case 4:
		{
			if(get_user_credits(id) < 15)
			{
				ChatColor(id, "!g[AntiFurien] !nYou don't have enough credits to buy !tNo Flash");
				return PLUGIN_HANDLED;
			}
			
			if(g_HaveNoFlash[id] == true)
			{
				ChatColor(id, "!g[Furien] !nYou have already a !tNo Flash");
				return PLUGIN_HANDLED;
			}
			
			else
			{
				//Give No Flash
				g_HaveNoFlash[id] = true;
				
				//Sound
				client_cmd(id, "spk %s", szPickAmmoSound);
				
				//Set/Get User Credits
				set_user_credits(id, get_user_credits(id) - 15);
				ChatColor(id, "!g[AntiFurien] !nYou bought !tNo Flash !nfor !t15 credits");
			}
		}
		
		case 5:
		{
			if(get_user_credits(id) < 20)
			{
				ChatColor(id, "!g[AntiFurien] !nYou don't have enough credits to buy !tPack Energy");
				return PLUGIN_HANDLED;
			}
			
			if(g_HavePackEnergy[id] == true)
			{
				ChatColor(id, "!g[Furien] !nYou have already a !tPack Energy");
				return PLUGIN_HANDLED;
			}
			
			if(g_HaveAnimalsPet[id] == true)
			{
				return PLUGIN_HANDLED;
			}
			
			else
			{
				//Set Health/Armor
				set_user_armor(id, 200);
				set_user_health(id, 200);
				
				//Set Boolean Pack Enegry
				g_HavePackEnergy[id] = true;
				
				//Add Effects
				ShakeScreen(id, 0.9);
				
				//Sound
				client_cmd(id, "spk %s", szFmuPackEnergy);
				
				//Set/Get User Credits
				set_user_credits(id, get_user_credits(id) - 20);
				ChatColor(id, "!g[AntiFurien] !nYou bought !tPack Energy !nfor !t20 credits");
			}
		}
		
		case 6:
		{
			if(get_user_credits(id) < 10)
			{
				ChatColor(id, "!g[AntiFurien] !nYou don't have enough credits to buy !tDefuse Kit");
				return PLUGIN_HANDLED;
			}
			
			if(g_HaveDefuseKit[id] == true)
			{
				ChatColor(id, "!g[AntiFurien] !nYou have already a !tDefuse Kit");
				return PLUGIN_HANDLED;
			}
			
			else
			{
				//Give Defuse Kit
				g_HaveDefuseKit[id] = true;
				cs_set_user_defuse(id, 1);
				
				//Sound
				client_cmd(id, "spk %s", szPickAmmoSound);
				
				//Set/Get User Credits
				set_user_credits(id, get_user_credits(id) - 10);
				ChatColor(id, "!g[AntiFurien] !nYou bought !tDefuse Kit !nfor !t10 credits");
			}
		}
		
		case 7:
		{
			if(g_HavePackEnergy[id] == true)
			{
				return PLUGIN_HANDLED;
			}
			
			else
			{
				//Give Animals Pet
				set_user_pet(id);
				
				//Set Boolean
				g_HaveAnimalsPet[id] = true;
			}
		}
	}
	
	menu_destroy(szMenu);
	return PLUGIN_HANDLED;
}

public evDeathMsg()
{
	new iVictim = read_data(2);
	g_HaveNoFlash[iVictim] = false;
	
}

public eventFlash(id)
{
	if(is_user_connected(id) && g_HaveNoFlash[id])
	{
		message_begin(MSG_ONE, g_msgScreenFade, {0,0,0}, id);
		write_short(1);
		write_short(1);
		write_short(1);
		write_byte(0);
		write_byte(0);
		write_byte(0);
		write_byte(255);
		message_end();
		
		FadeScreen(id, 0.6, 230, 0, 0, 50);
		ShakeScreen(id, 7.0);
		client_cmd(id, "mp3 play sound/%s", szFlashSound);
		set_task(7.0, "StoppedSound", id);
	}
}

public FadeScreen(id, const Float:seconds, const red, const green, const blue, const alpha)
{      
	message_begin(MSG_ONE, get_user_msgid("ScreenFade"), _, id);
	write_short(floatround(4096.0 * seconds, floatround_round));
	write_short(floatround(4096.0 * seconds, floatround_round));
	write_short(0x0000);
	write_byte(red);
	write_byte(green);
	write_byte(blue);
	write_byte(alpha);
	message_end( );
}


public ShakeScreen(id, const Float:seconds)
{
	message_begin(MSG_ONE, get_user_msgid("ScreenShake"), {0, 0, 0}, id);
	write_short(floatround(4096.0 * seconds, floatround_round));
	write_short(floatround(4096.0 * seconds, floatround_round));
	write_short(1<<13);
	message_end();
}

public StoppedSound(id)
{
	client_cmd(id, "mp3 stop sound/%s", szFlashSound);
}

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)) {
				message_begin(MSG_ONE_UNRELIABLE, get_user_msgid("SayText"), _, players);
				write_byte(players);
				write_string(msg);
				message_end();
			}
		}
	}
}

plus o mica optimizare

si care ar fi aceea optimizare? sa stiu
Puyol
Membru, skill 0
Membru, skill 0
Posts: 76
Joined: 08 May 2018, 14:46
Detinator Steam: Nu
CS Status: Citesc forumul eXtreamCS.com...!
Fond eXtream: 0
Contact:

19 May 2018, 15:20

*Or!g!naL* wrote:
| Afiseaza codul
#include <amxmodx>
#include <cstrike>
#include <fakemeta>
#include <hamsandwich>
#include <dhudmessage>
#include <fun>

new const PLUGIN[] = "Furien: Shop Ultimate";
new const VERSION[] = "0.3.1";

#pragma semicolon 1

#define is_user_valid(%0)	(1 <= %0 <= g_iMaxPlayers)
#define is_user_vip(%1)		(get_user_flags(%1) & ADMIN_RESERVATION)   
#define is_user_admin(%1)	(get_user_flags(%1) & ADMIN_IMMUNITY)   

//Sounds
new const szPickAmmoSound[66] = "items/9mmclip1.wav";
new const szFmuPackEnergy[66] = "misc/fmu_energy.wav";
new const szFlashSound[66] = "misc/fmu_flash_sound.mp3";

//Boolean
new bool: g_HaveNoFlash[33];
new bool: g_HaveDefuseKit[33];
new bool: g_HavePackEnergy[33];
new bool: g_HaveAnimalsPet[33];
new CountHP[33] = 0;
//Vectors
new g_msgScreenFade;

//Native Credits
native get_user_credits(id);
native set_user_credits(id, credits);

//Native Pet
native set_user_pet(id);

//Bow
native set_user_bow(id);

public plugin_init()
{
	register_plugin(PLUGIN, VERSION, "Adventx");
	register_cvar("fmu_shop_ecila", VERSION, FCVAR_SERVER | FCVAR_SPONLY);
	
	//Register Command
	register_clcmd("say shop","ClCmdShop");
	register_clcmd("say /shop","ClCmdShop");
	
	register_event("DeathMsg", "evDeathMsg", "a");
	register_event("ScreenFade", "eventFlash", "be", "4=255", "5=255", "6=255", "7>199");
	RegisterHam(Ham_Spawn, "player", "hamPlayerSpawnPost", 1);
	
	g_msgScreenFade = get_user_msgid("ScreenFade");
	
	set_msg_block(get_user_msgid("ClCorpse"), BLOCK_SET);
}

public plugin_precache()
{
	//Sound
	precache_sound(szPickAmmoSound);
	precache_sound(szFmuPackEnergy);
	
}

public client_putinserver(id)
{
	g_HaveNoFlash[id] = false;
	g_HaveDefuseKit[id] = false;
	g_HavePackEnergy[id] = false;
	g_HaveAnimalsPet[id] = false;
}

public client_disconnect(id)
{
	g_HaveNoFlash[id] = false;
	g_HaveDefuseKit[id] = false;
	g_HavePackEnergy[id] = false;
	g_HaveAnimalsPet[id] = false;
}

public hamPlayerSpawnPost(id)
{
	CountHP[id] = 0;
	if(is_user_alive(id))
	{
		if(get_user_team(id) == 2)
		{
			
			//Defuse Kit
			if(g_HaveDefuseKit[id] == true)
			{
				cs_set_user_defuse(id, 0);
				g_HaveDefuseKit[id] = false;
			}
		}
		
		//Strip User Weapons
		strip_user_weapons(id);
		
		//Give Equipment
		FmuGiveEquipment(id);
		
		//Booleans
		g_HavePackEnergy[id] = false;
		g_HaveAnimalsPet[id] = false;
	}
}

public FmuGiveEquipment(id)
{
	if(is_user_alive(id))
	{
		if(get_user_team(id) == 1)
		{
			give_item(id, "weapon_knife");
			give_item(id, "weapon_hegrenade");
			give_item(id, "weapon_flashbang");
		}
		
		if(get_user_team(id) == 2)
		{
			give_item(id, "weapon_knife");
			give_item(id, "weapon_flashbang");
			
			if(is_user_vip(id))
			{
				give_item(id, "weapon_smokegrenade");
			}
		}
	}
}

public ClCmdShop(id)
{
	if(get_user_team(id) == 1)
	{
		FurienShop(id);
	}
	
	if(get_user_team(id) == 2)
	{
		AntiFurienShop(id);
	}
}

public FurienShop(id)
{
	new szFormatex[128];
	formatex(szFormatex, charsmax(szFormatex), "\yFurien Shop \r^n\yCredite: \w%d", get_user_credits(id));
	
	new szMenu = menu_create(szFormatex, "FurienShopHandler");
	
	menu_additem(szMenu, "\y50 \wHP - \r[ \y5 Credite \r]", "1");
	menu_additem(szMenu, "\y50 \wAP - \r[ \y5 Credite \r]", "2");
	menu_additem(szMenu, "\yHE \wGrenade - \r[ \y10 Credite \r]^n", "3");
	
	menu_additem(szMenu, "\wNo Flash - \r[ \y15 Credite \r]", "4");
	menu_additem(szMenu, "\yCompound \rBow \w - \r[ \y20 Credite \r]^n", "5");
	
	
	menu_setprop(szMenu, MPROP_EXIT, MEXIT_ALL);
	menu_display(id, szMenu, 0);
	
	return PLUGIN_HANDLED;
}

public AntiFurienShop(id)
{
	new szFormatex[128];
	formatex(szFormatex, charsmax(szFormatex), "\yAntiFurien Shop \r^n\yCredite: \w%d", get_user_credits(id));
	
	new szMenu = menu_create(szFormatex, "AntiFurienShopHandler");
	
	menu_additem(szMenu, "\y50 \wHP - \r[ \y5 Credite \r]", "1");
	menu_additem(szMenu, "\y50 \wAP - \r[ \y5 Credite \r]", "2");
	menu_additem(szMenu, "\yHE \wGrenade - \r[ \y10 Credite \r]^n", "3");
	
	menu_additem(szMenu, "\wNo Flash - \r[ \y15 Credite \r]", "4");
	menu_additem(szMenu, "\yPack \rEnergy \w - \r[ \y20 Credite \r]^n", "5");
	
	menu_additem(szMenu, "\wDefuse Kit \w - \r[ \y10 Credite \r]", "6");
	menu_additem(szMenu, "\yAnimals \rPet \w - \r[ \y35 Credite \r]", "7");
	
	menu_setprop(szMenu, MPROP_EXIT, MEXIT_ALL);
	menu_display(id, szMenu, 0);
	
	return PLUGIN_HANDLED;
}

public FurienShopHandler(id, szMenu, item)
{
	if(item == MENU_EXIT || !is_user_alive(id))
	{
		return PLUGIN_HANDLED;
	}
	
	new data[6], szName[64];
	new access, callback;
	menu_item_getinfo(szMenu, item, access, data, charsmax(data), szName, charsmax(szName), callback);
	new key = str_to_num(data);
	
	switch(key)
	{
		case 1:
		{
			if(get_user_credits(id) < 5)
			{
				ChatColor(id, "!g[Furien] !nYou don't have enough credits to buy !t50 HP");
				return PLUGIN_HANDLED;
			}
			
			if(CountHP[id] == 3) {
				ChatColor(id, "!g[Furien] !nYou bought !t50 HP !nfor !t5 credits");
				return 1;
			}
			else
			{
				//set DHUD
				set_dhudmessage(0, 255, 255, 0.01, 0.90, 0, 6.0, 3.0);
				show_dhudmessage(id, "+ 50");
				CountHP[id]++;
				//Add Health
				set_user_health(id, min(get_user_health(id) + 50, 200));
				
				//Sound
				client_cmd(id, "spk %s", szPickAmmoSound);
				
				//Set/Get User Credits
				set_user_credits(id, get_user_credits(id) - 5);
				ChatColor(id, "!g[Furien] !nYou bought !t50 HP !nfor !t5 credits");
				if(get_user_health(id) >= 200)	//200 Health
				{	
					ChatColor(id, "!g[Furien] !nYou have reached your maximum !tHealth");
					return PLUGIN_HANDLED;
				}
			}
			
		}
		
		case 2:
		{
			if(get_user_credits(id) < 5)
			{
				ChatColor(id, "!g[Furien] !nYou don't have enough credits to buy !t50 AP");
				return PLUGIN_HANDLED;
			}
			
			if(get_user_armor(id) >= 150)	//150 Armor
			{
				ChatColor(id, "!g[Furien] !nYou have reached your maximum !tArmor");
				return PLUGIN_HANDLED;
			}
			
			else
			{
				//Set DUHD
				set_dhudmessage(0, 255, 255, 0.25, 0.90, 0, 6.0, 3.0);
				show_dhudmessage(id, "+ 50");
				
				//Add Armor
				set_user_armor(id, min(get_user_armor(id) + 50, 150));
				
				//Sound
				client_cmd(id, "spk %s", szPickAmmoSound);
				
				//Set/Get User Credits
				set_user_credits(id, get_user_credits(id) - 5);
				ChatColor(id, "!g[Furien] !nYou bought !t50 AP !nfor !t5 credits");
			}
		}
		
		case 3:
		{
			if(get_user_credits(id) < 10)
			{
				ChatColor(id, "!g[Furien] !nYou don't have enough credits to buy !tHE Grenade");
				return PLUGIN_HANDLED;
			}
			
			if(user_has_weapon(id, CSW_HEGRENADE))
			{
				ChatColor(id, "!g[Furien] !nYou have already a !tHE Grenade");
				return PLUGIN_HANDLED;
			}
			
			else
			{
				//Give HE Grenade
				give_item(id, "weapon_hegrenade");
				
				//Set/Get User Credits
				set_user_credits(id, get_user_credits(id) - 10);
				ChatColor(id, "!g[Furien] !nYou bought !tHE Grenade !nfor !t10 credits");
			}
		}
		
		case 4:
		{
			if(get_user_credits(id) < 15)
			{
				ChatColor(id, "!g[Furien] !nYou don't have enough credits to buy !tNo Flash");
				return PLUGIN_HANDLED;
			}
			
			if(g_HaveNoFlash[id] == true)
			{
				ChatColor(id, "!g[Furien] !nYou have already a !tNo Flash");
				return PLUGIN_HANDLED;
			}
			
			else
			{
				//Give No Flash
				g_HaveNoFlash[id] = true;
				
				//Sound
				client_cmd(id, "spk %s", szPickAmmoSound);
				
				//Set/Get User Credits
				set_user_credits(id, get_user_credits(id) - 15);
				ChatColor(id, "!g[Furien] !nYou bought !tNo Flash !nfor !t15 credits");
			}
		}
		
		case 5:
		{
			if(get_user_credits(id) < 20)
			{
				ChatColor(id, "!g[Furien] !nYou don't have enough credits to buy !tCompound Bow");
				return PLUGIN_HANDLED;
			}
			
			if(!is_user_admin(id))
			{
				ChatColor(id, "!g[Furien] !nThis item is only for !tVIP");
				return PLUGIN_HANDLED;
			}
			
			else
			{
				//Give Bow
				set_user_bow(id);
				
				//Sound
				client_cmd(id, "spk %s", szFmuPackEnergy);
				
				//Set/Get User Credits
				set_user_credits(id, get_user_credits(id) - 20);
				ChatColor(id, "!g[Furien] !nYou bought !tCompound Bow !nfor !t20 credits");
			}
		}
		
	}
	
	menu_destroy(szMenu);
	return PLUGIN_HANDLED;
}

public AntiFurienShopHandler(id, szMenu, item)
{
	if(item == MENU_EXIT || !is_user_alive(id))
	{
		return PLUGIN_HANDLED;
	}
	
	new data[6], szName[64];
	new access, callback;
	menu_item_getinfo(szMenu, item, access, data, charsmax(data), szName, charsmax(szName), callback);
	new key = str_to_num(data);
	
	switch(key)
	{
		case 1:
		{
			if(get_user_credits(id) < 5)
			{
				ChatColor(id, "!g[AntiFurien] !nYou don't have enough credits to buy !t50 HP");
				return PLUGIN_HANDLED;
			}
			
			if(CountHP[id] == 3) {
				ChatColor(id, "!g[Furien] !nYou bought !t50 HP !nfor !t5 credits");
				return 1;
			}
			else
			{
				//Set DUHD
				set_dhudmessage(0, 255, 255, 0.01, 0.90, 0, 6.0, 3.0);
				show_dhudmessage(id, "+ 50");
				
				//Add Health
				set_user_health(id, min(get_user_health(id) + 50, 200));
				
				//Sound
				client_cmd(id, "spk %s", szPickAmmoSound);
				
				//Set/Get User Credits
				set_user_credits(id, get_user_credits(id) - 5);
				ChatColor(id, "!g[AntiFurien] !nYou bought !t50 HP !nfor !t5 credits");
				if(get_user_health(id) >= 200)	//250 Health
				{	
					ChatColor(id, "!g[AntiFurien] !nYou have reached your maximum !tHealth");
					return PLUGIN_HANDLED;
				}
			}
		}
		
		case 2:
		{
			if(get_user_credits(id) < 5)
			{
				ChatColor(id, "!g[AntiFurien] !nYou don't have enough credits to buy !t50 AP");
				return PLUGIN_HANDLED;
			}
			
			if(get_user_armor(id) >= 200)	//200 Armor
			{
				ChatColor(id, "!g[AntiFurien] !nYou have reached your maximum !tArmor");
				return PLUGIN_HANDLED;
			}
			
			else
			{
				//Set DUHD
				set_dhudmessage(0, 255, 255, 0.25, 0.90, 0, 6.0, 3.0);
				show_dhudmessage(id, "+ 50");
				
				//Add Armor
				set_user_armor(id, min(get_user_armor(id) + 50, 200));
				
				//Sound
				client_cmd(id, "spk %s", szPickAmmoSound);
				
				//Set/Get User Credits
				set_user_credits(id, get_user_credits(id) - 5);
				ChatColor(id, "!g[AntiFurien] !nYou bought !t50 AP !nfor !t5 credits");
			}
		}
		
		case 3:
		{
			if(get_user_credits(id) < 10)
			{
				ChatColor(id, "!g[AntiFurien] !nYou don't have enough credits to buy !tHE Grenade");
				return PLUGIN_HANDLED;
			}
			
			if(user_has_weapon(id, CSW_HEGRENADE))
			{
				ChatColor(id, "!g[AntiFurien] !nYou have already a !tHE Grenade");
				return PLUGIN_HANDLED;
			}
			
			else
			{
				//Give HE Grenade
				give_item(id, "weapon_hegrenade");
				
				//Set/Get User Credits
				set_user_credits(id, get_user_credits(id) - 10);
				ChatColor(id, "!g[AntiFurien] !nYou bought !tHE Grenade !nfor !t10 credits");
			}
		}
		
		case 4:
		{
			if(get_user_credits(id) < 15)
			{
				ChatColor(id, "!g[AntiFurien] !nYou don't have enough credits to buy !tNo Flash");
				return PLUGIN_HANDLED;
			}
			
			if(g_HaveNoFlash[id] == true)
			{
				ChatColor(id, "!g[Furien] !nYou have already a !tNo Flash");
				return PLUGIN_HANDLED;
			}
			
			else
			{
				//Give No Flash
				g_HaveNoFlash[id] = true;
				
				//Sound
				client_cmd(id, "spk %s", szPickAmmoSound);
				
				//Set/Get User Credits
				set_user_credits(id, get_user_credits(id) - 15);
				ChatColor(id, "!g[AntiFurien] !nYou bought !tNo Flash !nfor !t15 credits");
			}
		}
		
		case 5:
		{
			if(get_user_credits(id) < 20)
			{
				ChatColor(id, "!g[AntiFurien] !nYou don't have enough credits to buy !tPack Energy");
				return PLUGIN_HANDLED;
			}
			
			if(g_HavePackEnergy[id] == true)
			{
				ChatColor(id, "!g[Furien] !nYou have already a !tPack Energy");
				return PLUGIN_HANDLED;
			}
			
			if(g_HaveAnimalsPet[id] == true)
			{
				return PLUGIN_HANDLED;
			}
			
			else
			{
				//Set Health/Armor
				set_user_armor(id, 200);
				set_user_health(id, 200);
				
				//Set Boolean Pack Enegry
				g_HavePackEnergy[id] = true;
				
				//Add Effects
				ShakeScreen(id, 0.9);
				
				//Sound
				client_cmd(id, "spk %s", szFmuPackEnergy);
				
				//Set/Get User Credits
				set_user_credits(id, get_user_credits(id) - 20);
				ChatColor(id, "!g[AntiFurien] !nYou bought !tPack Energy !nfor !t20 credits");
			}
		}
		
		case 6:
		{
			if(get_user_credits(id) < 10)
			{
				ChatColor(id, "!g[AntiFurien] !nYou don't have enough credits to buy !tDefuse Kit");
				return PLUGIN_HANDLED;
			}
			
			if(g_HaveDefuseKit[id] == true)
			{
				ChatColor(id, "!g[AntiFurien] !nYou have already a !tDefuse Kit");
				return PLUGIN_HANDLED;
			}
			
			else
			{
				//Give Defuse Kit
				g_HaveDefuseKit[id] = true;
				cs_set_user_defuse(id, 1);
				
				//Sound
				client_cmd(id, "spk %s", szPickAmmoSound);
				
				//Set/Get User Credits
				set_user_credits(id, get_user_credits(id) - 10);
				ChatColor(id, "!g[AntiFurien] !nYou bought !tDefuse Kit !nfor !t10 credits");
			}
		}
		
		case 7:
		{
			if(g_HavePackEnergy[id] == true)
			{
				return PLUGIN_HANDLED;
			}
			
			else
			{
				//Give Animals Pet
				set_user_pet(id);
				
				//Set Boolean
				g_HaveAnimalsPet[id] = true;
			}
		}
	}
	
	menu_destroy(szMenu);
	return PLUGIN_HANDLED;
}

public evDeathMsg()
{
	new iVictim = read_data(2);
	g_HaveNoFlash[iVictim] = false;
	
}

public eventFlash(id)
{
	if(is_user_connected(id) && g_HaveNoFlash[id])
	{
		message_begin(MSG_ONE, g_msgScreenFade, {0,0,0}, id);
		write_short(1);
		write_short(1);
		write_short(1);
		write_byte(0);
		write_byte(0);
		write_byte(0);
		write_byte(255);
		message_end();
		
		FadeScreen(id, 0.6, 230, 0, 0, 50);
		ShakeScreen(id, 7.0);
		client_cmd(id, "mp3 play sound/%s", szFlashSound);
		set_task(7.0, "StoppedSound", id);
	}
}

public FadeScreen(id, const Float:seconds, const red, const green, const blue, const alpha)
{      
	message_begin(MSG_ONE, get_user_msgid("ScreenFade"), _, id);
	write_short(floatround(4096.0 * seconds, floatround_round));
	write_short(floatround(4096.0 * seconds, floatround_round));
	write_short(0x0000);
	write_byte(red);
	write_byte(green);
	write_byte(blue);
	write_byte(alpha);
	message_end( );
}


public ShakeScreen(id, const Float:seconds)
{
	message_begin(MSG_ONE, get_user_msgid("ScreenShake"), {0, 0, 0}, id);
	write_short(floatround(4096.0 * seconds, floatround_round));
	write_short(floatround(4096.0 * seconds, floatround_round));
	write_short(1<<13);
	message_end();
}

public StoppedSound(id)
{
	client_cmd(id, "mp3 stop sound/%s", szFlashSound);
}

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)) {
				message_begin(MSG_ONE_UNRELIABLE, get_user_msgid("SayText"), _, players);
				write_byte(players);
				write_string(msg);
				message_end();
			}
		}
	}
}

plus o mica optimizare

Am scris /shop si nu porneste shop-ul...
Locked

Return to “Modificari pluginuri”

  • Information
  • Who is online

    Users browsing this forum: No registered users and 9 guests