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 } */