[code=php]#include <amxmodx>
#include <cstrike>
#include <fun>
#include <fakemeta>
#include <fakemeta_util>
#include <hamsandwich>
#define PLUGIN "Simple Furien Shop"
#define VERSION "1.0(Cred)" // :))
#define AUTHOR "Care vrea" // :-j
#define SUPERKNIFEDAMGE 2 // De cate ori se inmulteste DAMAGE-ul la SuperKnife
#define MAXHEALTH 250 // Limita de Health
#define MAXARMOR 250 // Limita de Armor
#define FLASH 2 // Cate Flashuri primeste la Spawn
new SuperKnifeModel_V[] = "models/FurienShop/v_superknife.mdl";
new SuperKnifeModel_P[] = "models/FurienShop/p_superknife.mdl";
new Prefix[] = "[Shop]";
new bool: HaveSuperKnife[33];
new Mesaj, Menu;
public plugin_init() {
register_plugin(PLUGIN, VERSION, AUTHOR)
register_clcmd("shop", "CMD_Shop");
register_clcmd("say shop", "CMD_Shop");
register_clcmd("say /shop", "CMD_Shop");
register_clcmd("say_team shop", "CMD_Shop");
register_clcmd("say_team /shop", "CMD_Shop");
register_event("CurWeapon", "EVENT_ViewModels", "be", "1=1");
RegisterHam(Ham_TakeDamage, "player", "EVENT_TakeDamage");
RegisterHam(Ham_Spawn, "player", "Ham_Spawn_Post", 1 );
register_event("DeathMsg", "EVENT_Death", "a");
Mesaj = register_cvar("shop_messagedisplay_time", "120");
set_task(get_pcvar_float(Mesaj), "Mesaje", 0, _, _, "b");
set_task(1.0, "TASK_CHECK", _, _, _, "b")
}
public plugin_precache() {
precache_model(SuperKnifeModel_V);
precache_model(SuperKnifeModel_P);
}
public Ham_Spawn_Post(id){
if(is_user_connected(id) && get_user_team(id) == 2) {
HaveSuperKnife[id] = false;
set_task(0.1, "Give_CTItems", id);
}
if(is_user_connected(id) && get_user_team(id) == 1) {
set_task(0.1, "Give_TItems", id);
}
}
public Give_CTItems(id) {
if(is_user_alive(id)) {
give_item(id, "weapon_hegrenade");
give_item(id, "weapon_smokegrenade");
give_item(id, "weapon_flashbang");
cs_set_user_bpammo(id, CSW_FLASHBANG, FLASH)
}
}
public Give_TItems(id) {
if(is_user_alive(id)) {
give_item(id, "weapon_hegrenade");
give_item(id, "weapon_smokegrenade");
give_item(id, "weapon_flashbang");
cs_set_user_bpammo(id, CSW_FLASHBANG, FLASH)
}
}
public EVENT_ViewModels(id) {
if(get_user_weapon(id) == CSW_KNIFE && HaveSuperKnife[id]) {
set_pev(id, pev_viewmodel2, SuperKnifeModel_V)
set_pev(id, pev_weaponmodel2, SuperKnifeModel_P)
}
}
public CMD_Shop(id) {
if(!is_user_alive(id)) {
ColorChat(id, "!t%s!g Nu poti accesa!t Shopul!g cat timp esti mort", Prefix);
}
if(is_user_alive(id)) {
if(get_user_team(id) == 2)
CMD_AntiShop(id)
if(get_user_team(id) == 1)
CMD_FurienShop(id)
}
}
public Mesaje(id) {
ColorChat(id, "!t[Reclama ta]!g Pentru a accesa shopul tasteaza!t /shop!g sau shop!g in chat", Prefix)
}
public CMD_AntiShop(id) {
if(is_user_alive(id) && get_user_team(id) == 2) {
Menu = menu_create("\y[CSTOPZ] Anti-Furien Shop", "CMD_AntiGive")
menu_additem(Menu, "[\wHe Grenade] [\y6000$]", "1", 0)
menu_additem(Menu, "[\wDefuse Kit] [\y500$]", "2", 0)
menu_additem(Menu, "[\w100 HP] [\y4000$]", "3", 0)
menu_additem(Menu, "[\w100 HP] [\y4000$]", "4", 0)
menu_additem(Menu, "[\wFlash] [\y500$]", "5", 0)
menu_setprop(Menu, MPROP_EXITNAME, "\rExit")
menu_setprop(Menu, MPROP_NUMBER_COLOR, "\y")
menu_setprop(Menu, MPROP_EXIT, MEXIT_ALL)
menu_display(id, Menu, 0);
}
}
public CMD_AntiGive(id, menu, item) {
if(item == MENU_EXIT) {
menu_destroy(menu);
return PLUGIN_HANDLED;
}
if(get_user_team(id) != 2) {
ColorChat(id, "!t%s!g Doar!t AntiFurienii!g pot folosi acest shop !", Prefix)
}
if(!is_user_alive(id)) {
ColorChat(id, "!t%s!g Nu poti folosi acest!t shop!g cat timp esti mort !", Prefix)
}
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) {
case 1: {
new Money = cs_get_user_money(id) - 6000
if(Money < 0) {
ColorChat(id, "!t%s!g Nu ai suficiente fonduri pentru a cumpara!t He Grenade!g.", Prefix)
CMD_AntiShop(id)
}
else {
give_item(id, "weapon_hegrenade")
cs_set_user_money(id, Money)
}
}
case 2: {
new Money = cs_get_user_money(id) - 500
if(Money < 0) {
ColorChat(id, "!t%s!g Nu ai suficiente fonduri pentru a cumpara!t Defuse Kit!g.", Prefix)
CMD_AntiShop(id)
}
else {
fm_give_item(id, "item_thighpack")
cs_set_user_money(id, Money)
}
}
case 3: {
new Money = cs_get_user_money(id) - 4000
if(Money < 0) {
ColorChat(id, "!t%s!g Nu ai suficiente fonduri pentru a cumpara!t Health!g.", Prefix)
CMD_AntiShop(id)
}
else {
new Health = get_user_health(id)
if(Health >= MAXHEALTH) {
ColorChat(id, "!t%s!g Ai deja!t %d!g HP", Prefix, MAXHEALTH)
CMD_AntiShop(id)
}
else if(Health < MAXHEALTH) {
fm_set_user_health(id, get_user_health(id) + 100)
cs_set_user_money(id, Money)
}
}
}
case 4: {
new Money = cs_get_user_money(id) - 500
if(Money < 0) {
ColorChat(id, "!t%s!g Nu ai bani", Prefix)
CMD_FurienShop(id)
}
else {
give_item(id, "weapon_flashbang")
cs_set_user_money(id, Money)
}
}
case 5: {
new Money = cs_get_user_money(id) - 500
if(Money < 0) {
ColorChat(id, "!t%s!g Nu ai suficiente fonduri pentru a cumpara!t Armor!g.", Prefix)
CMD_AntiShop(id)
}
else {
new Armor = get_user_armor(id)
if(Armor >= MAXARMOR) {
ColorChat(id, "!t%s!g Ai deja!t %d!g AP", Prefix, MAXARMOR)
CMD_AntiShop(id)
}
else if(Armor < MAXARMOR) {
fm_set_user_armor(id, get_user_armor(id) + 50)
cs_set_user_money(id, Money)
}
}
}
}
return PLUGIN_HANDLED
}
public CMD_FurienShop(id) {
if(is_user_alive(id) && get_user_team(id) == 1) {
Menu = menu_create("\y[CSTOPZ] Furien Shop", "CMD_FurienGive")
menu_additem(Menu, "[\wSuper Knife] [\y9000$]", "1", 0)
menu_additem(Menu, "[\w100 HP] [\y1000$]", "2", 0)
menu_additem(Menu, "[\wHe Grenade] [\y3000$]", "3", 0)
menu_additem(Menu, "[\wFlash] [\y500$]", "4", 0)
menu_additem(Menu, "[\w50 AP] \y500$", "5", 0)
menu_setprop(Menu, MPROP_EXITNAME, "\rExit")
menu_setprop(Menu, MPROP_NUMBER_COLOR, "\y")
menu_setprop(Menu, MPROP_EXIT, MEXIT_ALL)
menu_display(id, Menu, 0);
}
}
public CMD_FurienGive(id, menu, item) {
if(item == MENU_EXIT) {
menu_destroy(menu);
return PLUGIN_HANDLED;
}
if(get_user_team(id) != 1) {
ColorChat(id, "!t%s!g Doar!t Furienii!g pot folosi acest shop !", Prefix)
}
if(!is_user_alive(id)) {
ColorChat(id, "!t%s!g Nu poti folosi acest!t shop!g cat timp esti mort !", Prefix)
}
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) {
case 1: {
new Money = cs_get_user_money(id) - 10000
if(Money < 0) {
ColorChat(id, "!t%s!g Nu ai suficiente fonduri pentru a cumpara!t He Grenade!g.", Prefix)
CMD_FurienShop(id)
}
else {
engclient_cmd(id, "weapon_knife")
EVENT_ViewModels(id);
HaveSuperKnife[id] = true;
cs_set_user_money(id, Money)
}
if(HaveSuperKnife[id]) {
ColorChat(id, "!t%s!g Ai deja!t SuperKnife", Prefix)
CMD_FurienShop(id)
}
}
case 2: {
new Money = cs_get_user_money(id) - 1000
if(Money < 0) {
ColorChat(id, "!t%s!g Nu ai suficiente fonduri pentru a cumpara!t Health!g.", Prefix)
CMD_FurienShop(id)
}
else {
new Health = get_user_health(id)
if(Health >= MAXHEALTH) {
ColorChat(id, "!t%s!g Ai deja!t %d!g HP", Prefix, MAXHEALTH)
CMD_FurienShop(id)
}
else if(Health < MAXHEALTH) {
fm_set_user_health(id, get_user_health(id) + 100)
cs_set_user_money(id, Money)
}
}
}
case 3: {
new Money = cs_get_user_money(id) - 3000
if(Money < 0) {
ColorChat(id, "!t%s!g Nu ai suficiente fonduri pentru a cumpara!t He Grenade!g.", Prefix)
CMD_FurienShop(id)
}
else {
give_item(id, "weapon_hegrenade")
cs_set_user_money(id, Money)
}
}
case 4: {
new Money = cs_get_user_money(id) - 500
if(Money < 0) {
ColorChat(id, "!t%s!g Nu ai bani", Prefix)
CMD_FurienShop(id)
}
else {
give_item(id, "weapon_flashbang")
cs_set_user_money(id, Money)
}
}
case 5: {
new Money = cs_get_user_money(id) - 500
if(Money < 0) {
ColorChat(id, "!t%s!g Nu ai suficiente fonduri pentru a cumpara!t Armor!g.", Prefix)
CMD_FurienShop(id)
}
else {
new Armor = get_user_armor(id)
if(Armor >= MAXARMOR) {
ColorChat(id, "!t%s!g Ai deja!t %d!g AP", Prefix, MAXARMOR)
CMD_FurienShop(id)
}
else if(Armor < MAXARMOR) {
fm_set_user_armor(id, get_user_armor(id) + 50)
cs_set_user_money(id, Money)
}
}
}
}
return PLUGIN_HANDLED
}
public EVENT_TakeDamage(victim, inflictor, attacker, Float:damage, damagetype) {
if(is_user_connected(attacker) && !(damagetype & (1<<24))) {
if(get_user_weapon(attacker) == CSW_KNIFE && HaveSuperKnife[attacker])
SetHamParamFloat(4, damage * SUPERKNIFEDAMGE);
}
}
public EVENT_Death(id) {
new Victim = read_data(2)
HaveSuperKnife[Victim] = false;
}
public TASK_CHECK ( ) {
static id
for(id = 1; id <= get_maxplayers(); id++) {
if(is_user_alive(id) && is_user_connected(id) && get_user_team ( id ) == 2 && HaveSuperKnife [ id ]) {
HaveSuperKnife [ id ] = false;
}
}
}
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)) {
message_begin(MSG_ONE_UNRELIABLE, get_user_msgid("SayText"), _, players);
write_byte(players);
write_string(msg);
message_end();
}
}
}
} [/code]