[Furien V4.0] Weapons (Update 02.04.2014)
Pluginuri facute de utilizatorii forumului eXtream.
Moderators: Moderatori ajutatori, Moderatori, Echipa eXtreamCS.com
- alexx13
- Membru, skill 0
- Posts: 48
- Joined: 19 Apr 2015, 04:17
- Detinator Steam: Da
- Detinator server CS: FR.ECILA.RO
- Fond eXtream: 0
- Contact:
ce tre sa fac sa mearga cutitele,ca nu imi apare cutitele la ct si la t ?
- alexx13
- Membru, skill 0
- Posts: 48
- Joined: 19 Apr 2015, 04:17
- Detinator Steam: Da
- Detinator server CS: FR.ECILA.RO
- Fond eXtream: 0
- Contact:
-
- Membru, skill +1
- Posts: 154
- Joined: 11 Apr 2014, 16:40
- Detinator Steam: Nu
- CS Status: Citesc forumul eXtreamCS.com...!
- Contact:
- > SKanDaL <
- Membru, skill +1
- Posts: 308
- Joined: 20 Dec 2015, 18:11
- Detinator Steam: Da
- SteamID: Privat
- Reputatie: Fost Membru Club eXtreamCS (doua luni)
- Fond eXtream: 0
- Has thanked: 2 times
- Been thanked: 10 times
- 50Cent # HackeR
- Membru, skill +2
- Posts: 755
- Joined: 10 Oct 2015, 16:05
- Detinator Steam: Da
- CS Status: CS GO This Good Game =]]
- Detinator server CS: N-am asa ceva ? =]]
- SteamID: 50Cent # HackeR
- Reputatie: Castigator Membru CLUB eXtream @ Mos Nicolae (4 luni)
Restrictie mesaje private - Fond eXtream: 0
- Location: Caras-Severin-Resita
- Contact:
Hmm, gg pentru metoda #define
My Plugins
Furien Weapons Clasic
Blue VIP Menu
Furien Weapons Gold 2016
Vip Menu Cubanez
- Unic-ul meu Y.M Este [email protected]
Furien Weapons Clasic
Blue VIP Menu
Furien Weapons Gold 2016
Vip Menu Cubanez
- Unic-ul meu Y.M Este [email protected]
-
- Membru, skill 0
- Posts: 28
- Joined: 12 Dec 2015, 16:34
- Detinator Steam: Nu
- CS Status: Citesc forumul eXtreamCS.com...!
- Fond eXtream: 0
- Contact:
-
- Membru, skill 0
- Posts: 83
- Joined: 27 Mar 2015, 22:43
- Detinator Steam: Da
- CS Status: Citesc forumul eXtreamCS.com...!
- Fond eXtream: 0
- Contact:
-
- Membru, skill +1
- Posts: 103
- Joined: 31 Jul 2013, 15:40
- Detinator Steam: Nu
- CS Status: Citesc forumul eXtreamCS.com...!
- Has thanked: 19 times
- Been thanked: 1 time
- Contact:
mi-l poate modifica si mie cineva ? vreau sa ramana doar , meniu de vip si meniu normal , si in meniu de vip sa fie oicw , arma scorpion , DUALMP7A1 ala de e in meniu normal si atat , si in meniu normal sa scoateti DUALMP7A1 cum am zis si sa-l bagati in meniu de vip ! , multumesc
- | Afiseaza codul
//#define POWERS #define MAX_WEAPONS 100 #define EV_INT_WeaponKey EV_INT_impulse #include <amxmodx> #include <amxmisc> #include <cstrike> #include <engine> #include <fakemeta> #include <fakemeta_util> #include <hamsandwich> #include "furien40/furien40.inc" #if defined POWERS #include "furien40/furien40_powers.inc" #endif #define PLUGIN "Weapons Menu" #define VERSION "4.0" #define AUTHOR "Aragon*" //------| Settings |------// #define VIP_LEVEL ADMIN_LEVEL_H #define ADMIN_LEVEL ADMIN_LEVEL_G //--| Primary Weapons |--// #define OICW //#define THANATOS11 //#define THANATOS7 //#define AEOLIS #define JANUS11 //#define JANUS7 #define JANUS3 //#define SPEARGUN //#define PETROLBOOMER //#define SALAMANDER #define AT4 #define ETHEREAL #define RAILCANNON #define PLASMAGUN #define CROSSBOW //#define COMPOUNDBOW #define HK416 //#define AK47KNIFE //#define F2000 #define TAR21 //#define K1ASES #define DUALMP7A1 //#define QUADBARREL #define M1887 #define THOMPSON #define M134 //#define SKULL5 //#define SL8 //#define AW50 //--| Secondary Weapons |--// //#define DRAGONCANNON //#define JANUS1 #define M79 #define DUALDEAGLE #define INFINITY #define SKULL1 #define ANACONDA //--| Knifes |--// //#define CLAWS //#define SUPERCLAWS #define DUALKATANA //#define BALROG9 //#define JANUS9 #define RUYISTICK #define DRAGONSWORD //#define PAPIN //--| Grenades |--// //#define SNARK //#define FIRENADE //#define FROSTNADE //#define SFNADE //--| C4 |--// //#define LASERMINE //------| End Settings |------// enum WeaponsList { WPN_PRIMARY = 0, WPN_SECONDARY, WPN_KNIFE, WPN_GRENADE, WPN_C4 } enum WeaponData { WPN_MENUNAME = 0, WPN_TEAM, WPN_ACCES, WPN_LEVEL, WPN_NAME, WPN_ID, WPN_LIST, WPN_CLIP }; enum WeaponTeam { WPN_TEAM_ALL = 0, WPN_TEAM_T, WPN_TEAM_CT }; enum WeaponAcces { WPN_ACCES_ALL = 0, WPN_ACCES_VIP, WPN_ACCES_ADMIN }; new Menu, bool:ShowMenu[33], Weapons[WeaponsList] = 1, HasChoose[33][WeaponsList][4], WeaponKey[33][WeaponsList][4], PrimaryWeapon[MAX_WEAPONS+1][WeaponData][33], SecondaryWeapon[MAX_WEAPONS+1][WeaponData][33], Knife[MAX_WEAPONS+1][WeaponData][33], Grenade[MAX_WEAPONS+1][WeaponData][33], C4[MAX_WEAPONS+1][WeaponData][33], MSGID_WeaponList, MSGID_DeathMsg, MSGID_ScoreInfo, MSGID_SayText, MSGID_CurWeapon, MSGID_Crosshair/*, MSGID_ScreenFade, MSGID_ScreenShake*/; //------| Weapons Menu |------// #define PRIMARY_WEAPONS_BITSUM (1<<CSW_SCOUT | 1<<CSW_XM1014 | 1<<CSW_MAC10 | 1<<CSW_AUG | 1<<CSW_UMP45 | 1<<CSW_SG550 | 1<<CSW_GALIL | 1<<CSW_FAMAS | 1<<CSW_AWP | 1<<CSW_MP5NAVY | 1<<CSW_M249 | 1<<CSW_M3 | 1<<CSW_M4A1 | 1<<CSW_TMP | 1<<CSW_G3SG1 | 1<<CSW_SG552 | 1<<CSW_AK47 | 1<<CSW_P90) #define SECONDARY_WEAPONS_BITSUM (1<<CSW_GLOCK18 | 1<<CSW_USP | 1<<CSW_P228 | 1<<CSW_DEAGLE | 1<<CSW_FIVESEVEN | 1<<CSW_ELITE) #define AMMOWP_NULL (1<<0 | 1<<CSW_KNIFE | 1<<CSW_FLASHBANG | 1<<CSW_HEGRENADE | 1<<CSW_SMOKEGRENADE | 1<<CSW_C4) new Shell, BloodSpray, BloodDrop, WeaponsAmmo[][] = { { -1, -1 }, { 13, 52 }, { -1, -1 }, { 10, 90 }, { -1, -1 }, { 7, 32 }, { -1, -1 }, { 30, 100 }, { 30, 90 }, { -1, -1 }, { 30, 120 }, { 20, 100 }, { 25, 100 }, { 30, 90 }, { 35, 90 }, { 25, 90 }, { 12, 100 }, { 20, 120 }, { 10, 30 }, { 30, 120 }, { 100, 200 }, { 8, 32 }, { 30, 90 }, { 30, 120 }, { 20, 90 }, { -1, -1 }, { 7, 35 }, { 30, 90 }, { 30, 90 }, { -1, -1 }, { 50, 100 } }, Prefix[] = "[INFO]", Contact[] = "Mihai.Parkour10"; #include "furien40/weapons/Config.h" public plugin_init() { register_plugin(PLUGIN, VERSION, AUTHOR) MSGID_WeaponList = get_user_msgid("WeaponList") MSGID_DeathMsg = get_user_msgid("DeathMsg") MSGID_ScoreInfo = get_user_msgid("ScoreInfo") MSGID_SayText = get_user_msgid("SayText") MSGID_CurWeapon = get_user_msgid("CurWeapon") MSGID_Crosshair = get_user_msgid("Crosshair") /*MSGID_ScreenFade = get_user_msgid("ScreenFade") MSGID_ScreenShake = get_user_msgid("ScreenShake");*/ Shell = engfunc(EngFunc_PrecacheModel, "models/rshell.mdl"); register_clcmd("guns", "CMD_Guns"); register_clcmd("say guns", "CMD_Guns"); register_clcmd("say /guns", "CMD_Guns"); register_clcmd("say_team guns", "CMD_Guns"); register_clcmd("say_team /guns", "CMD_Guns"); register_event("CurWeapon", "EVENT_CurWeapon", "be", "1=1") RegisterHam(Ham_Spawn, "player", "HAM_Spawn_Post", 1); RegisterHam(Ham_Touch, "weaponbox", "HAM_Touch") RegisterHam(Ham_Touch, "armoury_entity", "HAM_Touch") RegisterHam(Ham_Touch, "weapon_shield", "HAM_Touch") weapons_init() } public plugin_precache() { BloodSpray = precache_model("sprites/bloodspray.spr"); BloodDrop = precache_model("sprites/blood.spr"); weapons_precache() } public plugin_natives() { register_native("RegisterPrimary", "native_register_primary", 1) register_native("RegisterSecondary", "native_register_secondary", 1) register_native("RegisterKnife", "native_register_knife", 1) register_native("RegisterGrenade", "native_register_grenade", 1) register_native("RegisterC4", "native_register_c4", 1) register_native("OpenWeaponsMenu", "CMD_Guns", 1) register_native("get_weapon", "get_weapon", 1) register_native("set_weapon", "set_weapon", 1) register_native("get_weapon_data", "get_weapon_data", 1) register_native("set_weapon_data", "set_weapon_data", 1) weapons_natives() } public client_putinserver(id) { ShowMenu[id] = true } public grenade_throw(id, grenade, GrenadeID) { if(is_valid_ent(grenade) && is_user_alive(id)) { for(new i = 1; i < Weapons[WPN_GRENADE]; i++) { if(GrenadeID == str_to_num(Grenade[WPN_ID]) && get_user_weapon(id) == GrenadeID && get_weapon(id, Grenade[WPN_NAME], str_to_num(Grenade[WPN_ID]), i)) entity_set_int(grenade, EV_INT_impulse, i); } } return FMRES_IGNORED; } public EVENT_CurWeapon(id) { if(is_user_connected(id) && is_user_alive(id)) { new Weapon = read_data(2) if(!(AMMOWP_NULL &(1<<Weapon))) { if(fm_get_user_bpammo(id, Weapon) < WeaponsAmmo[Weapon][1]) fm_set_user_bpammo(id, Weapon, WeaponsAmmo[Weapon][1]) } } return PLUGIN_CONTINUE } public HAM_Spawn_Post(id) { if(is_user_alive(id)) { HasChoose[id][WPN_PRIMARY][get_user_team(id)] = false HasChoose[id][WPN_SECONDARY][get_user_team(id)] = false HasChoose[id][WPN_KNIFE][get_user_team(id)] = false HasChoose[id][WPN_GRENADE][get_user_team(id)] = false HasChoose[id][WPN_C4][get_user_team(id)] = false #if defined FIRENADE set_weapon(id, WPN_GRENADE, firenade_id()) #endif #if defined FROSTNADE set_weapon(id, WPN_GRENADE, frostnade_id()) #endif #if defined SFNADE set_weapon(id, WPN_GRENADE, sfnade_id()) #endif if(get_user_team(id) == TEAM_ANTIFURIEN) { if(ShowMenu[id]) EquipmentMenu(id) else if(!ShowMenu[id]) GiveLastWeapons(id) } } return HAM_IGNORED; } public HAM_Touch(ent, id) { if(is_user_alive(id)) { if(get_user_team(id) == TEAM_FURIEN && entity_get_int(ent, EV_INT_impulse) == 2) return HAM_SUPERCEDE if(get_user_team(id) == TEAM_ANTIFURIEN && entity_get_int(ent, EV_INT_impulse) == 1) return HAM_SUPERCEDE } return HAM_IGNORED } public CMD_Guns(id) { if(!ShowMenu[id]) { ShowMenu[id] = true ColorChat(id, "!t%s!gMeniul de!t echipamente!g a fost!t re-activat!g.", Prefix); } if(!HasChoose[id][WPN_PRIMARY][2] && !HasChoose[id][WPN_SECONDARY][2] && !HasChoose[id][WPN_KNIFE][2]) EquipmentMenu(id) else if(!HasChoose[id][WPN_PRIMARY][2]) PrimaryWeaponMenu(id, 0) else if(!HasChoose[id][WPN_SECONDARY][2]) SecondaryWeaponMenu(id) else if(!HasChoose[id][WPN_KNIFE][2]) KnifesMenu(id) return PLUGIN_CONTINUE; } public EquipmentMenu(id) { if(is_user_alive(id) && get_user_team(id) == TEAM_ANTIFURIEN) { menu_cancel(id) Menu = menu_create("\rEchipament", "EquipmentCmd"); menu_additem(Menu, "\wArme noi", "1", 0); if(WeaponKey[id][WPN_PRIMARY][2] && WeaponKey[id][WPN_SECONDARY][2] && WeaponKey[id][WPN_KNIFE][2]) { menu_additem(Menu, "\wArmele anterioare", "2", 0); menu_additem(Menu, "\wNu arata meniul din nou^n", "3", 0); } else { menu_additem(Menu, "\dArmele anterioare", "2", 0); menu_additem(Menu, "\dNu arata meniul din nou^n", "3", 0); } menu_setprop(Menu, MPROP_EXIT, MEXIT_NEVER) menu_display(id, Menu, 0); } } public EquipmentCmd(id, menu, item) { if(item == MENU_EXIT || !is_user_alive(id) || get_user_team(id) != TEAM_ANTIFURIEN) { menu_destroy(menu); return PLUGIN_HANDLED; } new Data[6], Name[64], Access, CallBack; menu_item_getinfo(menu, item, Access, Data, 5, Name, 63, CallBack); menu_destroy(menu); switch(str_to_num(Data)) { case 1: { if(!HasChoose[id][WPN_PRIMARY][2]) PrimaryWeaponMenu(id, 0) else if(!HasChoose[id][WPN_SECONDARY][2]) SecondaryWeaponMenu(id) else if(!HasChoose[id][WPN_KNIFE][2]) KnifesMenu(id) } case 2: { if(WeaponKey[id][WPN_PRIMARY][2] && WeaponKey[id][WPN_SECONDARY][2] && WeaponKey[id][WPN_KNIFE][2]) GiveLastWeapons(id) else EquipmentMenu(id) } case 3: { if(WeaponKey[id][WPN_PRIMARY][2] && WeaponKey[id][WPN_SECONDARY][2] && WeaponKey[id][WPN_KNIFE][2]) { ShowMenu[id] = false GiveLastWeapons(id) } else EquipmentMenu(id) } } return PLUGIN_HANDLED; } public PrimaryWeaponMenu(id, VIP) { if(is_user_alive(id) && get_user_team(id) == TEAM_ANTIFURIEN && !HasChoose[id][WPN_PRIMARY][2]) { menu_cancel(id); Menu = menu_create("\rPrimar", "PrimaryCmd"); if(VIP == 0) { new UltimateWeapon = 0, VIPWeapon = 0 for(new i = 1; i < Weapons[WPN_PRIMARY]; i++) { if(WeaponTeam:str_to_num(PrimaryWeapon[WPN_TEAM]) != WPN_TEAM_T && WeaponAcces:str_to_num(PrimaryWeapon[WPN_ACCES]) == WPN_ACCES_ADMIN) UltimateWeapon++ if(WeaponTeam:str_to_num(PrimaryWeapon[WPN_TEAM]) != WPN_TEAM_T && WeaponAcces:str_to_num(PrimaryWeapon[WPN_ACCES]) == WPN_ACCES_VIP) VIPWeapon++ } if(UltimateWeapon) { if(get_user_flags(id) & ADMIN_LEVEL) menu_additem(Menu, "\rUltimate Weapons", "-2", 0); else menu_additem(Menu, "\dUltimate Weapons \w- \rOnly ADMIN", "-2", 0); } if(VIPWeapon) { if(get_user_flags(id) & VIP_LEVEL) menu_additem(Menu, "\rVIP Weapons", "-1", 0); else menu_additem(Menu, "\dVIP Weapons \w- \rOnly VIP", "-1", 0); } if(UltimateWeapon || VIPWeapon) menu_addblank(Menu, 0); menu_setprop(Menu, MPROP_EXIT, MEXIT_NEVER) } else { menu_setprop(Menu, MPROP_EXITNAME, "Meniu Principal") menu_setprop(Menu, MPROP_EXIT, MEXIT_ALL) } #if defined POWERS for(new i = 0; i < MAX_LEVEL; i++) { for(new k = 1; k < Weapons[WPN_PRIMARY]; k++) { if(str_to_num(PrimaryWeapon[k][WPN_LEVEL]) == i && WeaponTeam:str_to_num(PrimaryWeapon[k][WPN_TEAM]) != WPN_TEAM_T && str_to_num(PrimaryWeapon[k][WPN_ACCES]) == VIP) AddWeapon(id, Menu, PrimaryWeapon[k][WPN_MENUNAME], PrimaryWeapon[k][WPN_ACCES], PrimaryWeapon[k][WPN_LEVEL], k); } } #else for(new i = 1; i < Weapons[WPN_PRIMARY]; i++) { if(WeaponTeam:str_to_num(PrimaryWeapon[WPN_TEAM]) != WPN_TEAM_T && str_to_num(PrimaryWeapon[WPN_ACCES]) == VIP) AddWeapon(id, Menu, PrimaryWeapon[WPN_MENUNAME], PrimaryWeapon[i][WPN_ACCES], PrimaryWeapon[i][WPN_LEVEL], i); } #endif menu_display(id, Menu, 0); } } public PrimaryCmd(id, menu, item) { if(!is_user_alive(id) || get_user_team(id) != TEAM_ANTIFURIEN || HasChoose[id][WPN_PRIMARY][2]) { menu_destroy(menu); return PLUGIN_HANDLED; } else if(item == MENU_EXIT) { menu_destroy(menu); PrimaryWeaponMenu(id, 0) return PLUGIN_HANDLED; } new Data[6], Name[64], Access, CallBack; menu_item_getinfo(menu, item, Access, Data, 5, Name, 63, CallBack); menu_destroy(menu); if(equal(Data, "-2")) { if(get_user_flags(id) & ADMIN_LEVEL) PrimaryWeaponMenu(id, 2) else { if(!HasChoose[id][WPN_PRIMARY][2]) PrimaryWeaponMenu(id, 0) else if(!HasChoose[id][WPN_SECONDARY][2]) SecondaryWeaponMenu(id) else if(!HasChoose[id][WPN_KNIFE][2]) KnifesMenu(id) ColorChat(id, "!t%s!gPentru a cumpara!t Admin!g adauga ID:!t %s", Prefix, Contact); } } else if(equal(Data, "-1")) { if(get_user_flags(id) & VIP_LEVEL) PrimaryWeaponMenu(id, 1) else { if(!HasChoose[id][WPN_PRIMARY][2]) PrimaryWeaponMenu(id, 0) else if(!HasChoose[id][WPN_SECONDARY][2]) SecondaryWeaponMenu(id) else if(!HasChoose[id][WPN_KNIFE][2]) KnifesMenu(id) ColorChat(id, "!t%s!gPentru a cumpara!t VIP!g adauga ID:!t %s", Prefix, Contact); } } else { GivePrimary(id, str_to_num(Data)) if(!HasChoose[id][WPN_PRIMARY][2]) PrimaryWeaponMenu(id, 0) else SecondaryWeaponMenu(id) } return PLUGIN_HANDLED; } public SecondaryWeaponMenu(id) { if(is_user_alive(id) && get_user_team(id) == TEAM_ANTIFURIEN && !HasChoose[id][WPN_SECONDARY][2]) { menu_cancel(id); Menu = menu_create("\rSecundar", "SecondaryCmd"); #if defined POWERS for(new i = 0; i < MAX_LEVEL; i++) { for(new k = 1; k < Weapons[WPN_SECONDARY]; k++) { if(WeaponTeam:str_to_num(SecondaryWeapon[k][WPN_TEAM]) != WPN_TEAM_T && str_to_num(SecondaryWeapon[k][WPN_LEVEL]) == i) AddWeapon(id, Menu, SecondaryWeapon[k][WPN_MENUNAME], SecondaryWeapon[k][WPN_ACCES], SecondaryWeapon[k][WPN_LEVEL], k); } } #else for(new i = 1; i < Weapons[WPN_SECONDARY]; i++) { if(WeaponTeam:str_to_num(SecondaryWeapon[i][WPN_TEAM]) != WPN_TEAM_T) AddWeapon(id, Menu, SecondaryWeapon[i][WPN_MENUNAME], SecondaryWeapon[i][WPN_ACCES], SecondaryWeapon[i][WPN_LEVEL], i); } #endif menu_setprop(Menu, MPROP_EXIT, MEXIT_NEVER) menu_display(id, Menu, 0); } return PLUGIN_CONTINUE; } public SecondaryCmd(id, menu, item) { if(item == MENU_EXIT || !is_user_alive(id) || get_user_team(id) != TEAM_ANTIFURIEN || HasChoose[id][WPN_SECONDARY][2]) { menu_destroy(menu); return PLUGIN_HANDLED; } new Data[6], Name[64], Access, CallBack; menu_item_getinfo(menu, item, Access, Data, 5, Name, 63, CallBack); menu_destroy(menu); GiveSecondary(id, str_to_num(Data)) if(!HasChoose[id][WPN_SECONDARY][2]) SecondaryWeaponMenu(id) else KnifesMenu(id) return PLUGIN_HANDLED; } public KnifesMenu(id) { if(is_user_alive(id) && get_user_team(id) == TEAM_ANTIFURIEN && !HasChoose[id][WPN_KNIFE][2]) { menu_cancel(id); Menu = menu_create("\rCutit", "KnifesCmd"); #if defined POWERS for(new i = 0; i < MAX_LEVEL; i++) { for(new k = 1; k < Weapons[WPN_KNIFE]; k++) { if(WeaponTeam:str_to_num(Knife[k][WPN_TEAM]) != WPN_TEAM_T && str_to_num(Knife[k][WPN_LEVEL]) == i) AddWeapon(id, Menu, Knife[k][WPN_MENUNAME], Knife[k][WPN_ACCES], Knife[k][WPN_LEVEL], k); } } #else for(new i = 1; i < Weapons[WPN_KNIFE]; i++) { if(WeaponTeam:str_to_num(Knife[i][WPN_TEAM]) != WPN_TEAM_T) AddWeapon(id, Menu, Knife[i][WPN_MENUNAME], Knife[i][WPN_ACCES], Knife[i][WPN_LEVEL], i); } #endif menu_setprop(Menu, MPROP_EXIT, MEXIT_NEVER) menu_display(id, Menu, 0); } return PLUGIN_CONTINUE; } public KnifesCmd(id, menu, item) { if(item == MENU_EXIT || !is_user_alive(id) || get_user_team(id) != TEAM_ANTIFURIEN || HasChoose[id][WPN_KNIFE][2]) { menu_destroy(menu); return PLUGIN_HANDLED; } new Data[6], Name[64], Access, CallBack; menu_item_getinfo(menu, item, Access, Data,5, Name, 63, CallBack); menu_destroy(menu); GiveKnife(id, str_to_num(Data)) if(!HasChoose[id][WPN_KNIFE][2]) KnifesMenu(id) return PLUGIN_HANDLED; } public GiveLastWeapons(id) { if(!HasChoose[id][WPN_PRIMARY][2] && WeaponKey[id][WPN_PRIMARY][2] != -1) GivePrimary(id, WeaponKey[id][WPN_PRIMARY][2]) if(!HasChoose[id][WPN_SECONDARY][2] && WeaponKey[id][WPN_SECONDARY][2] != -1) GiveSecondary(id, WeaponKey[id][WPN_SECONDARY][2]) if(!HasChoose[id][WPN_KNIFE][2] && WeaponKey[id][WPN_KNIFE][2] != -1) GiveKnife(id, WeaponKey[id][WPN_KNIFE][2]) if(!HasChoose[id][WPN_PRIMARY][2]) { WeaponKey[id][WPN_PRIMARY][2] = -1 PrimaryWeaponMenu(id, 0) } else if(!HasChoose[id][WPN_SECONDARY][2]) { WeaponKey[id][WPN_SECONDARY][2] = -1 SecondaryWeaponMenu(id) } else if(!HasChoose[id][WPN_KNIFE][2]) { WeaponKey[id][WPN_KNIFE][2] = -1 KnifesMenu(id) } } public native_register_primary(MenuName[], WeaponTeam:Team, WeaponAcces:Acces, Level[], WeaponName[], WeaponID, Weapon_List[], WeaponClip[]) { param_convert(1) param_convert(4) param_convert(5) param_convert(7) param_convert(8) return RegisterPrimary(MenuName, Team, Acces, Level, WeaponName, WeaponID, Weapon_List, WeaponClip) } public native_register_secondary(MenuName[], WeaponTeam:Team, WeaponAcces:Acces, Level[], WeaponName[], WeaponID, Weapon_List[], WeaponClip[]) { param_convert(1) param_convert(4) param_convert(5) param_convert(7) param_convert(8) return RegisterSecondary(MenuName, Team, Acces, Level, WeaponName, WeaponID, Weapon_List, WeaponClip) } public native_register_knife(MenuName[], WeaponTeam:Team, WeaponAcces:Acces, Level[], Weapon_List[]) { param_convert(1) param_convert(4) param_convert(5) return RegisterKnife(MenuName, Team, Acces, Level, Weapon_List) } public native_register_grenade(MenuName[], WeaponTeam:Team, WeaponAcces:Acces, Level[], WeaponName[], WeaponID, Weapon_List[]) { param_convert(1) param_convert(4) param_convert(5) param_convert(7) return RegisterGrenade(MenuName, Team, Acces, Level, WeaponName, WeaponID, Weapon_List) } public native_register_c4(MenuName[], WeaponTeam:Team, WeaponAcces:Acces, Level[], Weapon_List[]) { param_convert(1) param_convert(4) param_convert(5) return RegisterC4(MenuName, Team, Acces, Level, Weapon_List) } public get_weapon(id, weapon_[], CSW_, WeaponID) { if(is_user_connected(id)) { new Weapon = find_ent_by_owner(-1, weapon_, id); if(is_user_alive(id) && user_has_weapon(id, CSW_) && pev_valid(Weapon)) return entity_get_int(Weapon, EV_INT_impulse) == WeaponID ? true : false } return false } public set_weapon(id, WeaponsList:WeaponSet, WeaponID) { switch(WeaponSet) { case WPN_PRIMARY: return GivePrimary(id, WeaponID) case WPN_SECONDARY: return GiveSecondary(id, WeaponID) case WPN_KNIFE: return GiveKnife(id, WeaponID) case WPN_GRENADE: return GiveGrenade(id, WeaponID) case WPN_C4: return GiveC4(id, WeaponID) } return false } public get_weapon_data(WeaponsList:WeaponSet, WeaponID, WeaponData:Data, Buffer[], len) { param_convert(4) if(WeaponID > -1 && WeaponID < Weapons[WeaponSet]) { switch(WeaponSet) { case WPN_PRIMARY: format(Buffer, len, PrimaryWeapon[WeaponID][Data]) case WPN_SECONDARY: format(Buffer, len, SecondaryWeapon[WeaponID][Data]) case WPN_KNIFE: format(Buffer, len, Knife[WeaponID][Data]) case WPN_GRENADE: format(Buffer, len, Grenade[WeaponID][Data]) case WPN_C4: format(Buffer, len, C4[WeaponID][Data]) } } } public set_weapon_data(WeaponsList:WeaponSet, WeaponID, WeaponData:Data, Buffer[]) { param_convert(4) if(WeaponID > -1 && WeaponID < Weapons[WeaponSet]) { switch(WeaponSet) { case WPN_PRIMARY: format(PrimaryWeapon[WeaponID][Data], 32, Buffer) case WPN_SECONDARY: format(PrimaryWeapon[WeaponID][Data], 32, Buffer) case WPN_KNIFE: format(PrimaryWeapon[WeaponID][Data], 32, Buffer) case WPN_GRENADE: format(Grenade[WeaponID][Data], 32, Buffer) case WPN_C4: format(C4[WeaponID][Data], 32, Buffer) } } } //////////////////////////////////////////////////////////////////////////////////////////////////////////// // Stock's | //========================================================================================================== public AddWeapon(id, Menu, Name[], Acces[], Level[], WeaponID) { new Weapon[64], Num[32]; if(WeaponAcces:str_to_num(Acces) == WPN_ACCES_VIP && !(get_user_flags(id) & VIP_LEVEL)) formatex(Weapon, sizeof(Weapon)-1, "\d%s \w- \rOnly VIP", Name); else if(WeaponAcces:str_to_num(Acces) == WPN_ACCES_ADMIN && !(get_user_flags(id) & ADMIN_LEVEL)) formatex(Weapon, sizeof(Weapon)-1, "\d%s \w- \rOnly ADMIN", Name); #if defined POWERS else if(get_user_level(id) < (str_to_num(Level) > MAX_LEVEL ? MAX_LEVEL : str_to_num(Level))) formatex(Weapon, sizeof(Weapon)-1, "\d%s \w- \rLocked \r[\yLevel: \r%d]", Name, (str_to_num(Level) > MAX_LEVEL) ? MAX_LEVEL : str_to_num(Level)); #endif else formatex(Weapon, sizeof(Weapon)-1, "\w%s", Name); formatex(Num, sizeof(Num)-1, "%d", WeaponID); menu_additem(Menu, Weapon, Num, 0); return } public CanAcces(id, Team[], Acces[], Level[]) { if(WeaponAcces:str_to_num(Acces) == WPN_ACCES_VIP && !(get_user_flags(id) & VIP_LEVEL) || WeaponAcces:str_to_num(Acces) == WPN_ACCES_ADMIN && !(get_user_flags(id) & ADMIN_LEVEL)) return false; if(WeaponTeam:str_to_num(Team) == WPN_TEAM_T && WeaponTeam:get_user_team(id) != WPN_TEAM_T || WeaponTeam:str_to_num(Team) == WPN_TEAM_CT && WeaponTeam:get_user_team(id) != WPN_TEAM_CT) return false; #if defined POWERS else if(get_user_level(id) < (str_to_num(Level) > MAX_LEVEL ? MAX_LEVEL : str_to_num(Level))) return false; #endif return true; } stock RegisterPrimary(MenuName[], WeaponTeam:Team, WeaponAcces:Acces, Level[] = "0", WeaponName[], WeaponID, Weapon_List[] = "None", WeaponClip[] = "0") { if(Weapons[WPN_PRIMARY] < 1) Weapons[WPN_PRIMARY] = 1 format(PrimaryWeapon[Weapons[WPN_PRIMARY]][WPN_MENUNAME], 32, MenuName) if(Team > WeaponTeam || Team < WPN_TEAM_ALL) format(PrimaryWeapon[Weapons[WPN_PRIMARY]][WPN_TEAM], 32, "%d", WPN_TEAM_ALL) else format(PrimaryWeapon[Weapons[WPN_PRIMARY]][WPN_TEAM], 32, "%d", Team) if(Acces > WeaponAcces || Acces < WPN_ACCES_ALL) format(PrimaryWeapon[Weapons[WPN_PRIMARY]][WPN_ACCES], 32, "%d", WPN_ACCES_ALL) else format(PrimaryWeapon[Weapons[WPN_PRIMARY]][WPN_ACCES], 32, "%d", Acces) format(PrimaryWeapon[Weapons[WPN_PRIMARY]][WPN_LEVEL], 32, Level) format(PrimaryWeapon[Weapons[WPN_PRIMARY]][WPN_NAME], 32, WeaponName) format(PrimaryWeapon[Weapons[WPN_PRIMARY]][WPN_ID], 32, "%d", WeaponID) format(PrimaryWeapon[Weapons[WPN_PRIMARY]][WPN_LIST], 32, Weapon_List) format(PrimaryWeapon[Weapons[WPN_PRIMARY]][WPN_CLIP], 32, WeaponClip) Weapons[WPN_PRIMARY]++ return Weapons[WPN_PRIMARY] - 1 } stock RegisterSecondary(MenuName[], WeaponTeam:Team, WeaponAcces:Acces, Level[] = "0", WeaponName[], WeaponID, Weapon_List[] = "None", WeaponClip[] = "0") { if(Weapons[WPN_SECONDARY] < 1) Weapons[WPN_SECONDARY] = 1 format(SecondaryWeapon[Weapons[WPN_SECONDARY]][WPN_MENUNAME], 32, MenuName) if(Team > WeaponTeam || Team < WPN_TEAM_ALL) format(SecondaryWeapon[Weapons[WPN_SECONDARY]][WPN_TEAM], 32, "%d", WPN_TEAM_ALL) else format(SecondaryWeapon[Weapons[WPN_SECONDARY]][WPN_TEAM], 32, "%d", Team) if(Acces > WeaponAcces || Acces < WPN_ACCES_ALL) format(SecondaryWeapon[Weapons[WPN_SECONDARY]][WPN_ACCES], 32, "%d", WPN_ACCES_ALL) else format(SecondaryWeapon[Weapons[WPN_SECONDARY]][WPN_ACCES], 32, "%d", Acces) format(SecondaryWeapon[Weapons[WPN_SECONDARY]][WPN_LEVEL], 32, Level) format(SecondaryWeapon[Weapons[WPN_SECONDARY]][WPN_NAME], 32, WeaponName) format(SecondaryWeapon[Weapons[WPN_SECONDARY]][WPN_ID], 32, "%d", WeaponID) format(SecondaryWeapon[Weapons[WPN_SECONDARY]][WPN_LIST], 32, Weapon_List) format(SecondaryWeapon[Weapons[WPN_SECONDARY]][WPN_CLIP], 32, WeaponClip) Weapons[WPN_SECONDARY]++ return Weapons[WPN_SECONDARY] - 1 } stock RegisterKnife(MenuName[], WeaponTeam:Team, WeaponAcces:Acces, Level[] = "0", Weapon_List[] = "None") { if(Weapons[WPN_KNIFE] < 1) Weapons[WPN_KNIFE] = 1 format(Knife[Weapons[WPN_KNIFE]][WPN_MENUNAME], 32, MenuName) if(Team > WeaponTeam || Team < WPN_TEAM_ALL) format(Knife[Weapons[WPN_KNIFE]][WPN_TEAM], 32, "%d", WPN_TEAM_ALL) else format(Knife[Weapons[WPN_KNIFE]][WPN_TEAM], 32, "%d", Team) if(Acces > WeaponAcces || Acces < WPN_ACCES_ALL) format(Knife[Weapons[WPN_KNIFE]][WPN_ACCES], 32, "%d", WPN_ACCES_ALL) else format(Knife[Weapons[WPN_KNIFE]][WPN_ACCES], 32, "%d", Acces) format(Knife[Weapons[WPN_KNIFE]][WPN_LEVEL], 32, Level) format(Knife[Weapons[WPN_KNIFE]][WPN_LIST], 32, Weapon_List) Weapons[WPN_KNIFE]++ return Weapons[WPN_KNIFE] - 1 } stock RegisterGrenade(MenuName[], WeaponTeam:Team, WeaponAcces:Acces, Level[] = "0", WeaponName[], WeaponID, Weapon_List[] = "None") { if(Weapons[WPN_GRENADE] < 1) Weapons[WPN_GRENADE] = 1 format(Grenade[Weapons[WPN_GRENADE]][WPN_MENUNAME], 32, MenuName) if(Team > WeaponTeam || Team < WPN_TEAM_ALL) format(Grenade[Weapons[WPN_GRENADE]][WPN_TEAM], 32, "%d", WPN_TEAM_ALL) else format(Grenade[Weapons[WPN_GRENADE]][WPN_TEAM], 32, "%d", Team) if(Acces > WeaponAcces || Acces < WPN_ACCES_ALL) format(Grenade[Weapons[WPN_GRENADE]][WPN_ACCES], 32, "%d", WPN_ACCES_ALL) else format(Grenade[Weapons[WPN_GRENADE]][WPN_ACCES], 32, "%d", Acces) format(Grenade[Weapons[WPN_GRENADE]][WPN_LEVEL], 32, Level) format(Grenade[Weapons[WPN_GRENADE]][WPN_NAME], 32, WeaponName) format(Grenade[Weapons[WPN_GRENADE]][WPN_ID], 32, "%d", WeaponID) format(Grenade[Weapons[WPN_GRENADE]][WPN_LIST], 32, Weapon_List) Weapons[WPN_GRENADE]++ return Weapons[WPN_GRENADE] - 1 } stock RegisterC4(MenuName[], WeaponTeam:Team, WeaponAcces:Acces, Level[] = "0", Weapon_List[] = "None") { if(Weapons[WPN_C4] < 1) Weapons[WPN_C4] = 1 format(C4[Weapons[WPN_C4]][WPN_MENUNAME], 32, MenuName) if(Team > WeaponTeam || Team < WPN_TEAM_ALL) format(C4[Weapons[WPN_C4]][WPN_TEAM], 32, "%d", WPN_TEAM_ALL) else format(C4[Weapons[WPN_C4]][WPN_TEAM], 32, "%d", Team) if(Acces > WeaponAcces || Acces < WPN_ACCES_ALL) format(C4[Weapons[WPN_C4]][WPN_ACCES], 32, "%d", WPN_ACCES_ALL) else format(C4[Weapons[WPN_C4]][WPN_ACCES], 32, "%d", Acces) format(C4[Weapons[WPN_C4]][WPN_LEVEL], 32, Level) format(C4[Weapons[WPN_C4]][WPN_LIST], 32, Weapon_List) Weapons[WPN_C4]++ return Weapons[WPN_C4] - 1 } public GivePrimary(id, WeaponID) { if(is_user_alive(id)) { if(WeaponID > 0 && WeaponID < Weapons[WPN_PRIMARY]) { if(CanAcces(id, PrimaryWeapon[WeaponID][WPN_TEAM], PrimaryWeapon[WeaponID][WPN_ACCES], PrimaryWeapon[WeaponID][WPN_LEVEL])) { new Weapon, Impulse = entity_get_int(id, EV_INT_impulse) HasChoose[id][WPN_PRIMARY][get_user_team(id)] = true WeaponKey[id][WPN_PRIMARY][get_user_team(id)] = WeaponID /*if(get_user_team(id) == TEAM_FURIEN) special_primary(id, true)*/ drop_primary_weapons(id); if(equal(PrimaryWeapon[WeaponID][WPN_LIST], "None")) WeaponList(id, str_to_num(PrimaryWeapon[WeaponID][WPN_ID]), PrimaryWeapon[WeaponID][WPN_NAME], 0) else WeaponList(id, str_to_num(PrimaryWeapon[WeaponID][WPN_ID]), PrimaryWeapon[WeaponID][WPN_LIST], 0) entity_set_int(id, EV_INT_impulse, WeaponID); Weapon = fm_give_item(id, PrimaryWeapon[WeaponID][WPN_NAME]); entity_set_int(Weapon, EV_INT_impulse, WeaponID) entity_set_int(id, EV_INT_impulse, Impulse); if(!equal(PrimaryWeapon[WeaponID][WPN_CLIP], "0")) cs_set_weapon_ammo(Weapon, str_to_num(PrimaryWeapon[WeaponID][WPN_CLIP])) return true } } } return false } public GiveSecondary(id, WeaponID) { if(is_user_alive(id)) { if(WeaponID > 0 && WeaponID < Weapons[WPN_SECONDARY]) { if(CanAcces(id, SecondaryWeapon[WeaponID][WPN_TEAM], SecondaryWeapon[WeaponID][WPN_ACCES], SecondaryWeapon[WeaponID][WPN_LEVEL])) { new Weapon, Impulse = entity_get_int(id, EV_INT_impulse) HasChoose[id][WPN_SECONDARY][get_user_team(id)] = true WeaponKey[id][WPN_SECONDARY][get_user_team(id)] = WeaponID /*if(get_user_team(id) == TEAM_FURIEN) special_secondary(id, true)*/ drop_secondary_weapons(id); if(equal(SecondaryWeapon[WeaponID][WPN_LIST], "None")) WeaponList(id, str_to_num(SecondaryWeapon[WeaponID][WPN_ID]), SecondaryWeapon[WeaponID][WPN_NAME], 0) else WeaponList(id, str_to_num(SecondaryWeapon[WeaponID][WPN_ID]), SecondaryWeapon[WeaponID][WPN_LIST], 0) entity_set_int(id, EV_INT_impulse, WeaponID); Weapon = fm_give_item(id, SecondaryWeapon[WeaponID][WPN_NAME]); entity_set_int(Weapon, EV_INT_impulse, WeaponID) entity_set_int(id, EV_INT_impulse, Impulse); if(!equal(SecondaryWeapon[WeaponID][WPN_CLIP], "0")) cs_set_weapon_ammo(Weapon, str_to_num(SecondaryWeapon[WeaponID][WPN_CLIP])) return true } } } return false } public GiveKnife(id, WeaponID) { if(is_user_alive(id)) { if(WeaponID > 0 && WeaponID < Weapons[WPN_KNIFE]) { if(CanAcces(id, Knife[WeaponID][WPN_TEAM], Knife[WeaponID][WPN_ACCES], Knife[WeaponID][WPN_LEVEL])) { new Weapon, Impulse = entity_get_int(id, EV_INT_impulse) HasChoose[id][WPN_KNIFE][get_user_team(id)] = true WeaponKey[id][WPN_KNIFE][get_user_team(id)] = WeaponID bacon_strip_weapon(id, "weapon_knife"); if(equal(Knife[WeaponID][WPN_LIST], "None")) WeaponList(id, CSW_KNIFE, Knife[WeaponID][WPN_NAME], 0) else WeaponList(id, CSW_KNIFE, Knife[WeaponID][WPN_LIST], 0) entity_set_int(id, EV_INT_impulse, WeaponID); Weapon = fm_give_item(id, "weapon_knife"); entity_set_int(Weapon, EV_INT_impulse, WeaponID) entity_set_int(id, EV_INT_impulse, Impulse); return true } } } return false } public GiveGrenade(id, WeaponID) { if(is_user_alive(id)) { if(WeaponID > 0 && WeaponID < Weapons[WPN_GRENADE]) { if(CanAcces(id, Grenade[WeaponID][WPN_TEAM], Grenade[WeaponID][WPN_ACCES], Grenade[WeaponID][WPN_LEVEL])) { new Weapon, Impulse = entity_get_int(id, EV_INT_impulse) HasChoose[id][WPN_GRENADE][get_user_team(id)] = true WeaponKey[id][WPN_GRENADE][get_user_team(id)] = WeaponID bacon_strip_weapon(id, Grenade[WeaponID][WPN_NAME]); if(equal(Grenade[WeaponID][WPN_LIST], "None")) WeaponList(id, str_to_num(Grenade[WeaponID][WPN_ID]), Grenade[WeaponID][WPN_NAME], 0) else WeaponList(id, str_to_num(Grenade[WeaponID][WPN_ID]), Grenade[WeaponID][WPN_LIST], 0) entity_set_int(id, EV_INT_impulse, WeaponID); Weapon = fm_give_item(id, Grenade[WeaponID][WPN_NAME]); entity_set_int(Weapon, EV_INT_impulse, WeaponID) entity_set_int(id, EV_INT_impulse, Impulse); return true } } } return false } public GiveC4(id, WeaponID) { if(is_user_alive(id)) { if(WeaponID > 0 && WeaponID < Weapons[WPN_C4]) { if(CanAcces(id, C4[WeaponID][WPN_TEAM], C4[WeaponID][WPN_ACCES], C4[WeaponID][WPN_LEVEL])) { new Weapon, Impulse = entity_get_int(id, EV_INT_impulse) HasChoose[id][WPN_C4][get_user_team(id)] = true WeaponKey[id][WPN_C4][get_user_team(id)] = WeaponID bacon_strip_weapon(id, "weapon_c4"); if(equal(C4[WeaponID][WPN_LIST], "None")) WeaponList(id, CSW_C4, C4[WeaponID][WPN_NAME], 0) else WeaponList(id, CSW_C4, C4[WeaponID][WPN_LIST], 0) entity_set_int(id, EV_INT_impulse, WeaponID); Weapon = fm_give_item(id, "weapon_c4"); entity_set_int(Weapon, EV_INT_impulse, WeaponID) entity_set_int(id, EV_INT_impulse, Impulse); return true } } } return false } stock WeaponList(id, CSW_WEAPON, const Weapon[], Flag=0) { switch(CSW_WEAPON) { case CSW_P228: { message_begin(MSG_ONE, MSGID_WeaponList, _, id); write_string(Weapon); // WeaponName write_byte(9); // PrimaryAmmoID write_byte(52); // PrimaryAmmoMaxAmount write_byte(-1); // SecondaryAmmoID write_byte(-1); // SecondaryAmmoMaxAmount write_byte(1); // SlotID (0...N) write_byte(3); // NumberInSlot (1...N) write_byte(CSW_P228); // WeaponID write_byte(Flag); // Flags message_end(); } case CSW_SCOUT: { message_begin(MSG_ONE, MSGID_WeaponList, _, id); write_string(Weapon); // WeaponName write_byte(2); // PrimaryAmmoID write_byte(90); // PrimaryAmmoMaxAmount write_byte(-1); // SecondaryAmmoID write_byte(-1); // SecondaryAmmoMaxAmount write_byte(0); // SlotID (0...N) write_byte(9); // NumberInSlot (1...N) write_byte(CSW_SCOUT); // WeaponID write_byte(Flag); // Flags message_end(); } case CSW_HEGRENADE: { message_begin(MSG_ONE, MSGID_WeaponList, _, id); write_string(Weapon); // WeaponName write_byte(12); // PrimaryAmmoID write_byte(1); // PrimaryAmmoMaxAmount write_byte(-1); // SecondaryAmmoID write_byte(-1); // SecondaryAmmoMaxAmount write_byte(3); // SlotID (0...N) write_byte(1); // NumberInSlot (1...N) write_byte(CSW_HEGRENADE); // WeaponID write_byte(Flag); // Flags message_end(); } case CSW_XM1014: { message_begin(MSG_ONE, MSGID_WeaponList, _, id); write_string(Weapon); // WeaponName write_byte(5); // PrimaryAmmoID write_byte(32); // PrimaryAmmoMaxAmount write_byte(-1); // SecondaryAmmoID write_byte(-1); // SecondaryAmmoMaxAmount write_byte(0); // SlotID (0...N) write_byte(12); // NumberInSlot (1...N) write_byte(CSW_XM1014); // WeaponID write_byte(Flag); // Flags message_end(); } case CSW_C4: { message_begin(MSG_ONE, MSGID_WeaponList, _, id); write_string(Weapon); // WeaponName write_byte(14); // PrimaryAmmoID write_byte(1); // PrimaryAmmoMaxAmount write_byte(-1); // SecondaryAmmoID write_byte(-1); // SecondaryAmmoMaxAmount write_byte(4); // SlotID (0...N) write_byte(3); // NumberInSlot (1...N) write_byte(CSW_C4); // WeaponID write_byte(Flag); // Flags message_end(); } case CSW_MAC10: { message_begin(MSG_ONE, MSGID_WeaponList, _, id); write_string(Weapon); // WeaponName write_byte(6); // PrimaryAmmoID write_byte(100); // PrimaryAmmoMaxAmount write_byte(-1); // SecondaryAmmoID write_byte(-1); // SecondaryAmmoMaxAmount write_byte(0); // SlotID (0...N) write_byte(13); // NumberInSlot (1...N) write_byte(CSW_MAC10); // WeaponID write_byte(Flag); // Flags message_end(); } case CSW_AUG: { message_begin(MSG_ONE, MSGID_WeaponList, _, id); write_string(Weapon); // WeaponName write_byte(4); // PrimaryAmmoID write_byte(90); // PrimaryAmmoMaxAmount write_byte(-1); // SecondaryAmmoID write_byte(-1); // SecondaryAmmoMaxAmount write_byte(0); // SlotID (0...N) write_byte(14); // NumberInSlot (1...N) write_byte(CSW_AUG); // WeaponID write_byte(Flag); // Flags message_end(); } case CSW_SMOKEGRENADE: { message_begin(MSG_ONE, MSGID_WeaponList, _, id); write_string(Weapon); // WeaponName write_byte(13); // PrimaryAmmoID write_byte(1); // PrimaryAmmoMaxAmount write_byte(-1); // SecondaryAmmoID write_byte(-1); // SecondaryAmmoMaxAmount write_byte(3); // SlotID (0...N) write_byte(3); // NumberInSlot (1...N) write_byte(CSW_SMOKEGRENADE); // WeaponID write_byte(Flag); // Flags message_end(); } case CSW_ELITE: { message_begin(MSG_ONE, MSGID_WeaponList, _, id); write_string(Weapon); // WeaponName write_byte(10); // PrimaryAmmoID write_byte(120); // PrimaryAmmoMaxAmount write_byte(-1); // SecondaryAmmoID write_byte(-1); // SecondaryAmmoMaxAmount write_byte(1); // SlotID (0...N) write_byte(5); // NumberInSlot (1...N) write_byte(CSW_ELITE); // WeaponID write_byte(Flag); // Flags message_end(); } case CSW_FIVESEVEN: { message_begin(MSG_ONE, MSGID_WeaponList, _, id); write_string(Weapon); // WeaponName write_byte(7); // PrimaryAmmoID write_byte(100); // PrimaryAmmoMaxAmount write_byte(-1); // SecondaryAmmoID write_byte(-1); // SecondaryAmmoMaxAmount write_byte(1); // SlotID (0...N) write_byte(6); // NumberInSlot (1...N) write_byte(CSW_FIVESEVEN); // WeaponID write_byte(Flag); // Flags message_end(); } case CSW_UMP45: { message_begin(MSG_ONE, MSGID_WeaponList, _, id); write_string(Weapon); // WeaponName write_byte(6); // PrimaryAmmoID write_byte(100); // PrimaryAmmoMaxAmount write_byte(-1); // SecondaryAmmoID write_byte(-1); // SecondaryAmmoMaxAmount write_byte(0); // SlotID (0...N) write_byte(15); // NumberInSlot (1...N) write_byte(CSW_UMP45); // WeaponID write_byte(Flag); // Flags message_end(); } case CSW_SG550: { message_begin(MSG_ONE, MSGID_WeaponList, _, id); write_string(Weapon); // WeaponName write_byte(4); // PrimaryAmmoID write_byte(90); // PrimaryAmmoMaxAmount write_byte(-1); // SecondaryAmmoID write_byte(-1); // SecondaryAmmoMaxAmount write_byte(0); // SlotID (0...N) write_byte(16); // NumberInSlot (1...N) write_byte(CSW_SG550); // WeaponID write_byte(Flag); // Flags message_end(); } case CSW_GALIL: { message_begin(MSG_ONE, MSGID_WeaponList, _, id); write_string(Weapon); // WeaponName write_byte(4); // PrimaryAmmoID write_byte(90); // PrimaryAmmoMaxAmount write_byte(-1); // SecondaryAmmoID write_byte(-1); // SecondaryAmmoMaxAmount write_byte(0); // SlotID (0...N) write_byte(17); // NumberInSlot (1...N) write_byte(CSW_GALIL); // WeaponID write_byte(Flag); // Flags message_end(); } case CSW_FAMAS: { message_begin(MSG_ONE, MSGID_WeaponList, _, id); write_string(Weapon); // WeaponName write_byte(4); // PrimaryAmmoID write_byte(90); // PrimaryAmmoMaxAmount write_byte(-1); // SecondaryAmmoID write_byte(-1); // SecondaryAmmoMaxAmount write_byte(0); // SlotID (0...N) write_byte(18); // NumberInSlot (1...N) write_byte(CSW_FAMAS); // WeaponID write_byte(Flag); // Flags message_end(); } case CSW_USP: { message_begin(MSG_ONE, MSGID_WeaponList, _, id); write_string(Weapon); // WeaponName write_byte(6); // PrimaryAmmoID write_byte(100); // PrimaryAmmoMaxAmount write_byte(-1); // SecondaryAmmoID write_byte(-1); // SecondaryAmmoMaxAmount write_byte(1); // SlotID (0...N) write_byte(4); // NumberInSlot (1...N) write_byte(CSW_USP); // WeaponID write_byte(Flag); // Flags message_end(); } case CSW_GLOCK18: { message_begin(MSG_ONE, MSGID_WeaponList, _, id); write_string(Weapon); // WeaponName write_byte(10); // PrimaryAmmoID write_byte(120); // PrimaryAmmoMaxAmount write_byte(-1); // SecondaryAmmoID write_byte(-1); // SecondaryAmmoMaxAmount write_byte(1); // SlotID (0...N) write_byte(2); // NumberInSlot (1...N) write_byte(CSW_GLOCK18); // WeaponID write_byte(Flag); // Flags message_end(); } case CSW_AWP: { message_begin(MSG_ONE, MSGID_WeaponList, _, id); write_string(Weapon); // WeaponName write_byte(1); // PrimaryAmmoID write_byte(30); // PrimaryAmmoMaxAmount write_byte(-1); // SecondaryAmmoID write_byte(-1); // SecondaryAmmoMaxAmount write_byte(0); // SlotID (0...N) write_byte(2); // NumberInSlot (1...N) write_byte(CSW_AWP); // WeaponID write_byte(Flag); // Flags message_end(); } case CSW_MP5NAVY: { message_begin(MSG_ONE, MSGID_WeaponList, _, id); write_string(Weapon); // WeaponName write_byte(10); // PrimaryAmmoID write_byte(120); // PrimaryAmmoMaxAmount write_byte(-1); // SecondaryAmmoID write_byte(-1); // SecondaryAmmoMaxAmount write_byte(0); // SlotID (0...N) write_byte(7); // NumberInSlot (1...N) write_byte(CSW_MP5NAVY); // WeaponID write_byte(Flag); // Flags message_end(); } case CSW_M249: { message_begin(MSG_ONE, MSGID_WeaponList, _, id); write_string(Weapon); // WeaponName write_byte(3); // PrimaryAmmoID write_byte(200); // PrimaryAmmoMaxAmount write_byte(-1); // SecondaryAmmoID write_byte(-1); // SecondaryAmmoMaxAmount write_byte(0); // SlotID (0...N) write_byte(4); // NumberInSlot (1...N) write_byte(CSW_M249); // WeaponID write_byte(Flag); // Flags message_end(); } case CSW_M3: { message_begin(MSG_ONE, MSGID_WeaponList, _, id); write_string(Weapon); // WeaponName write_byte(5); // PrimaryAmmoID write_byte(32); // PrimaryAmmoMaxAmount write_byte(-1); // SecondaryAmmoID write_byte(-1); // SecondaryAmmoMaxAmount write_byte(0); // SlotID (0...N) write_byte(5); // NumberInSlot (1...N) write_byte(CSW_M3); // WeaponID write_byte(Flag); // Flags message_end(); } case CSW_M4A1: { message_begin(MSG_ONE, MSGID_WeaponList, _, id); write_string(Weapon); // WeaponName write_byte(4); // PrimaryAmmoID write_byte(90); // PrimaryAmmoMaxAmount write_byte(-1); // SecondaryAmmoID write_byte(-1); // SecondaryAmmoMaxAmount write_byte(0); // SlotID (0...N) write_byte(6); // NumberInSlot (1...N) write_byte(CSW_M4A1); // WeaponID write_byte(Flag); // Flags message_end(); } case CSW_TMP: { message_begin(MSG_ONE, MSGID_WeaponList, _, id); write_string(Weapon); // WeaponName write_byte(10); // PrimaryAmmoID write_byte(120); // PrimaryAmmoMaxAmount write_byte(-1); // SecondaryAmmoID write_byte(-1); // SecondaryAmmoMaxAmount write_byte(0); // SlotID (0...N) write_byte(11); // NumberInSlot (1...N) write_byte(CSW_TMP); // WeaponID write_byte(Flag); // Flags message_end(); } case CSW_G3SG1: { message_begin(MSG_ONE, MSGID_WeaponList, _, id); write_string(Weapon); // WeaponName write_byte(2); // PrimaryAmmoID write_byte(90); // PrimaryAmmoMaxAmount write_byte(-1); // SecondaryAmmoID write_byte(-1); // SecondaryAmmoMaxAmount write_byte(0); // SlotID (0...N) write_byte(3); // NumberInSlot (1...N) write_byte(CSW_G3SG1); // WeaponID write_byte(Flag); // Flags message_end(); } case CSW_FLASHBANG: { message_begin(MSG_ONE, MSGID_WeaponList, _, id); write_string(Weapon); // WeaponName write_byte(11); // PrimaryAmmoID write_byte(2); // PrimaryAmmoMaxAmount write_byte(-1); // SecondaryAmmoID write_byte(-1); // SecondaryAmmoMaxAmount write_byte(3); // SlotID (0...N) write_byte(2); // NumberInSlot (1...N) write_byte(CSW_FLASHBANG); // WeaponID write_byte(Flag); // Flags message_end(); } case CSW_DEAGLE: { message_begin(MSG_ONE, MSGID_WeaponList, _, id); write_string(Weapon); // WeaponName write_byte(8); // PrimaryAmmoID write_byte(35); // PrimaryAmmoMaxAmount write_byte(-1); // SecondaryAmmoID write_byte(-1); // SecondaryAmmoMaxAmount write_byte(1); // SlotID (0...N) write_byte(1); // NumberInSlot (1...N) write_byte(CSW_DEAGLE); // WeaponID write_byte(Flag); // Flags message_end(); } case CSW_SG552: { message_begin(MSG_ONE, MSGID_WeaponList, _, id); write_string(Weapon); // WeaponName write_byte(4); // PrimaryAmmoID write_byte(90); // PrimaryAmmoMaxAmount write_byte(-1); // SecondaryAmmoID write_byte(-1); // SecondaryAmmoMaxAmount write_byte(0); // SlotID (0...N) write_byte(10); // NumberInSlot (1...N) write_byte(CSW_SG552); // WeaponID write_byte(Flag); // Flags message_end(); } case CSW_AK47: { message_begin(MSG_ONE, MSGID_WeaponList, _, id); write_string(Weapon); // WeaponName write_byte(2); // PrimaryAmmoID write_byte(90); // PrimaryAmmoMaxAmount write_byte(-1); // SecondaryAmmoID write_byte(-1); // SecondaryAmmoMaxAmount write_byte(0); // SlotID (0...N) write_byte(1); // NumberInSlot (1...N) write_byte(CSW_AK47); // WeaponID write_byte(Flag); // Flags message_end(); } case CSW_KNIFE: { message_begin(MSG_ONE, MSGID_WeaponList, _, id); write_string(Weapon); // WeaponName write_byte(-1); // PrimaryAmmoID write_byte(-1); // PrimaryAmmoMaxAmount write_byte(-1); // SecondaryAmmoID write_byte(-1); // SecondaryAmmoMaxAmount write_byte(2); // SlotID (0...N) write_byte(1); // NumberInSlot (1...N) write_byte(CSW_KNIFE); // WeaponID write_byte(Flag); // Flags message_end(); } case CSW_P90: { message_begin(MSG_ONE, MSGID_WeaponList, _, id); write_string(Weapon); // WeaponName write_byte(7); // PrimaryAmmoID write_byte(100); // PrimaryAmmoMaxAmount write_byte(-1); // SecondaryAmmoID write_byte(-1); // SecondaryAmmoMaxAmount write_byte(0); // SlotID (0...N) write_byte(8); // NumberInSlot (1...N) write_byte(CSW_P90); // WeaponID write_byte(Flag); // Flags message_end(); } } } public death_message(killer, victim, const WeaponName[]) { if(is_user_connected(killer) && is_user_alive(victim)) { set_msg_block(MSGID_DeathMsg, BLOCK_SET); ExecuteHamB(Ham_Killed, victim, killer); set_msg_block(MSGID_DeathMsg, BLOCK_NOT); cs_set_user_money(killer, cs_get_user_money(killer) + 300); make_deathmsg(killer, victim, 0, WeaponName); message_begin(MSG_BROADCAST, MSGID_ScoreInfo); write_byte(killer); // id write_short(pev(killer, pev_frags)); // frags write_short(cs_get_user_deaths(killer)); // deaths write_short(0); // class? write_short(get_user_team(killer)); // team message_end(); message_begin(MSG_BROADCAST, MSGID_ScoreInfo); write_byte(victim); // id write_short(pev(victim, pev_frags)); // frags write_short(cs_get_user_deaths(victim)); // deaths write_short(0); // class? write_short(get_user_team(victim)); // team message_end(); } } public make_knockback(id, Float:origin[3], Float:maxspeed) { if(is_user_alive(id)) { new Float:Velocity[3], Float:Origin[3], Float:Distance[3], Float:Time = (vector_distance(Origin,origin) / maxspeed); entity_get_vector(id, EV_VEC_origin, Origin); Distance[0] = Origin[0] - origin[0], Distance[1] = Origin[1] - origin[1], Distance[2] = Origin[2] - origin[2]; Velocity[0] = Distance[0] / Time, Velocity[1] = Distance[1] / Time, Velocity[2] = Distance[2] / Time; entity_set_vector(id, EV_VEC_velocity, Velocity); } } public make_blood(id, Amount) { if(is_user_alive(id)) { new BloodColor = ExecuteHam(Ham_BloodColor, id); if(BloodColor != -1) { new Float:Origin[3] pev(id, pev_origin, Origin); Amount *= 2; //according to HLSDK message_begin(MSG_BROADCAST, SVC_TEMPENTITY); write_byte(TE_BLOODSPRITE); write_coord(floatround(Origin[0])); write_coord(floatround(Origin[1])); write_coord(floatround(Origin[2])); write_short(BloodSpray); write_short(BloodDrop); write_byte(BloodColor); write_byte(min(max(3, Amount/10), 16)); message_end(); } } } public make_bullet(id, Float:Origin[3]) { if(is_user_alive(id)) { new Target, Body; get_user_aiming(id, Target, Body, 999999); if(is_user_connected(Target)) { new Float:Start[3], Float:End[3], Float:Res[3], Float:Vel[3], Res2; pev(id, pev_origin, Start); velocity_by_aim(id, 64, Vel); Start[0] = Origin[0]; Start[1] = Origin[1]; Start[2] = Origin[2]; End[0] = Start[0]+Vel[0]; End[1] = Start[1]+Vel[1]; End[2] = Start[2]+Vel[2]; engfunc(EngFunc_TraceLine, Start, End, 0, Target, Res2); get_tr2(Res2, TR_vecEndPos, Res); message_begin(MSG_BROADCAST, SVC_TEMPENTITY) ; write_byte(TE_BLOODSPRITE); write_coord(floatround(Start[0])); write_coord(floatround(Start[1])); write_coord(floatround(Start[2])); write_short(BloodSpray); write_short(BloodDrop); write_byte(70); write_byte(random_num(1,2)); message_end(); } else { if(Target) { message_begin(MSG_BROADCAST, SVC_TEMPENTITY); write_byte(TE_DECAL); write_coord(floatround(Origin[0])); write_coord(floatround(Origin[1])); write_coord(floatround(Origin[2])); write_byte(41); write_short(Target); message_end(); } else { message_begin(MSG_BROADCAST, SVC_TEMPENTITY); write_byte(TE_WORLDDECAL); write_coord(floatround(Origin[0])); write_coord(floatround(Origin[1])); write_coord(floatround(Origin[2])); write_byte(41); message_end(); } message_begin(MSG_BROADCAST, SVC_TEMPENTITY); write_byte(TE_GUNSHOTDECAL); write_coord(floatround(Origin[0])); write_coord(floatround(Origin[1])); write_coord(floatround(Origin[2])); write_short(id); write_byte(41); message_end(); } } } public set_weapon_anim(id, anim) { if(is_user_connected(id)) { set_pev(id, pev_weaponanim, anim); message_begin(MSG_ONE, SVC_WEAPONANIM, _, id); write_byte(anim); write_byte(pev(id, pev_body)); message_end(); } } public get_damage_body(body, Float:damage) { switch(body) { case HIT_HEAD: damage *= 2.0; case HIT_STOMACH: damage *= 1.0; case HIT_CHEST: damage *= 1.5; case HIT_LEFTARM: damage *= 0.75; case HIT_RIGHTARM: damage *= 0.75; case HIT_LEFTLEG: damage *= 0.75; case HIT_RIGHTLEG: damage *= 0.75; default: damage *= 1.0; } return floatround(damage); } public velocity_to_aim(id, Float:Origin[3], Speed, Float:Velocity[3]) { if(is_user_alive(id)) { new Float:AimOrigin[3] fm_get_aim_origin(id, AimOrigin) Velocity[0] = AimOrigin[0] - Origin[0] Velocity[1] = AimOrigin[1] - Origin[1] Velocity[2] = AimOrigin[2] - Origin[2] new Float:X X = floatsqroot(Speed*Speed / (Velocity[0]*Velocity[0] + Velocity[1]*Velocity[1] + Velocity[2]*Velocity[2])) Velocity[0] *= X Velocity[1] *= X Velocity[2] *= X } } public get_position(id, Float:forw, Float:right, Float:up, Float:Start[]) { if(is_user_alive(id)) { new Float:Origin[3], Float:Angle[3], Float:Forward[3], Float:Right[3], Float:Up[3] pev(id, pev_origin, Origin) pev(id, pev_view_ofs, Up) xs_vec_add(Origin, Up, Origin) if(id <= get_maxplayers()) pev(id, pev_v_angle, Angle) else pev(id, pev_angles, Angle) angle_vector(Angle, ANGLEVECTOR_FORWARD, Forward) angle_vector(Angle, ANGLEVECTOR_RIGHT, Right) angle_vector(Angle, ANGLEVECTOR_UP, Up) Start[0] = Origin[0] + Forward[0] * forw + Right[0] * right + Up[0] * up Start[1] = Origin[1] + Forward[1] * forw + Right[1] * right + Up[1] * up Start[2] = Origin[2] + Forward[2] * forw + Right[2] * right + Up[2] * up } } public fm_get_user_bpammo(id, CSW_WEAPON) { if(is_user_alive(id)) { switch(CSW_WEAPON) { case CSW_AWP: return get_pdata_int(id, 377) case CSW_SCOUT, CSW_AK47, CSW_G3SG1: return get_pdata_int(id, 378) case CSW_M249: return get_pdata_int(id, 379) case CSW_FAMAS, CSW_M4A1, CSW_AUG, CSW_SG550, CSW_GALI, CSW_SG552: return get_pdata_int(id, 380) case CSW_M3, CSW_XM1014: return get_pdata_int(id, 381) case CSW_USP, CSW_UMP45, CSW_MAC10: return get_pdata_int(id, 382) case CSW_FIVESEVEN, CSW_P90: return get_pdata_int(id, 383) case CSW_DEAGLE: return get_pdata_int(id, 384) case CSW_P228: return get_pdata_int(id, 385) case CSW_GLOCK18, CSW_TMP, CSW_ELITE, CSW_MP5NAVY: return get_pdata_int(id, 386) default: return 0 } } return 0 } public fm_set_user_bpammo(id, CSW_WEAPON, Amount) { if(is_user_alive(id)) { switch(CSW_WEAPON) { case CSW_AWP: set_pdata_int(id, 377, Amount) case CSW_SCOUT, CSW_AK47, CSW_G3SG1: set_pdata_int(id, 378, Amount) case CSW_M249: set_pdata_int(id, 379, Amount) case CSW_FAMAS, CSW_M4A1, CSW_AUG, CSW_SG550, CSW_GALI, CSW_SG552: set_pdata_int(id, 380, Amount) case CSW_M3, CSW_XM1014: set_pdata_int(id, 381, Amount) case CSW_USP, CSW_UMP45, CSW_MAC10: set_pdata_int(id, 382, Amount) case CSW_FIVESEVEN, CSW_P90: set_pdata_int(id, 383, Amount) case CSW_DEAGLE: set_pdata_int(id, 384, Amount) case CSW_P228: set_pdata_int(id, 385, Amount) case CSW_GLOCK18, CSW_TMP, CSW_ELITE, CSW_MP5NAVY: set_pdata_int(id, 386, Amount) default: return 0 } } return 1 } public drop_primary_weapons(id) { if(is_user_alive(id)) { new Weapons[32], Num = 0, WeaponID; get_user_weapons(id, Weapons, Num); for(new i = 0; i < Num; i++) { WeaponID = Weapons[i]; if(((1<<WeaponID) & PRIMARY_WEAPONS_BITSUM)) { new WName[32]; get_weaponname(WeaponID, WName, charsmax(WName)); engclient_cmd(id, "drop", WName); } } } } public drop_secondary_weapons(id) { if(is_user_alive(id)) { new Weapons[32], Num = 0, WeaponID; get_user_weapons(id, Weapons, Num); for(new i = 0; i < Num; i++) { WeaponID = Weapons[i]; if(((1<<WeaponID) & SECONDARY_WEAPONS_BITSUM)) { new WName[32]; get_weaponname(WeaponID, WName, charsmax(WName)); engclient_cmd(id, "drop", WName); } } } } public bacon_strip_weapon(index, weapon[]) { if(is_user_alive(index) && equal(weapon, "weapon_", 7)) { new WeaponID = get_weaponid(weapon) if(WeaponID) { new WeaponEnt = fm_find_ent_by_owner(-1, weapon, index) if(WeaponEnt) { if(get_user_weapon(index) == WeaponID) ExecuteHamB(Ham_Weapon_RetireWeapon, WeaponEnt) ExecuteHamB(Ham_RemovePlayerItem, index, WeaponEnt) ExecuteHamB(Ham_Item_Kill, WeaponEnt) set_pev(index, pev_weapons, pev(index, pev_weapons) & ~(1<<WeaponID)) } } } } stock HudMessage(const id, const message[], red = 0, green = 160, blue = 0, Float:x = -1.0, Float:y = 0.65, effects = 2, Float:fxtime = 0.01, Float:holdtime = 3.0, Float:fadeintime = 0.01, Float:fadeouttime = 0.01) { new Players[32], Num = 1, Player; if(id) Players[0] = id; else get_players(Players, Num, "ch"); { for(new i = 0; i < Num; i++) { Player = Players[i] if(is_user_connected(Player)) { new color = (clamp(blue, 0, 255) + (clamp(green, 0, 255) << 8) + (clamp(red, 0, 255) << 16)) message_begin(MSG_ONE_UNRELIABLE, SVC_DIRECTOR, _, Player); write_byte(strlen(message) + 31); write_byte(DRC_CMD_MESSAGE); write_byte(effects); write_long(color); write_long(_:x); write_long(_:y); write_long(_:fadeintime); write_long(_:fadeouttime); write_long(_:holdtime); write_long(_:fxtime); write_string(message); message_end(); } } } } stock ColorChat(const id, const input[], any:...) { new Players[32], Message[191], Num = 1, Player; vformat(Message, 190, input, 3); replace_all(Message, 190, "!g", "^4"); replace_all(Message, 190, "!y", "^1"); replace_all(Message, 190, "!t", "^3"); if(id) Players[0] = id; else get_players(Players, Num, "ch"); { for(new i = 0; i < Num; i++) { Player = Players[i] if(is_user_connected(Player)) { message_begin(MSG_ONE_UNRELIABLE, MSGID_SayText, _, Player); write_byte(Player); write_string(Message); 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 } */
- sDs|Aragon*
- Membru, skill +2
- Posts: 576
- Joined: 29 Dec 2011, 21:38
- Detinator Steam: Da
- SteamID: Mihai_Parkour10
- Reputatie: Fost scripter eXtreamCS
- Has thanked: 4 times
- Been thanked: 132 times
Hmm, nu imi amintesc daca versiunea asta are si cutite, meniul ar trebui sa apara automat dupa ce selectezi un pistolalexx13 wrote:ce tre sa fac sa mearga cutitele,ca nu imi apare cutitele la ct si la t ?
Da, o sa fac asta, se poate baga si manual de catre voi destul de usor, folositi un singur native, RegisterPrimary..stephano141 wrote:poti baga si un meniu de arme clasice ? :D
Se poate modifica sa fie cu un sistem de genu.> SKanDaL < wrote:Sunt free toate ? Nu le poti pune pe credite :D ?
Multumesc50Cent # HackeR wrote:Hmm, gg pentru metoda #define
mamamea123 wrote:mi-l poate modifica si mie cineva ? vreau sa ramana doar , meniu de vip si meniu normal , si in meniu de vip sa fie oicw , arma scorpion , DUALMP7A1 ala de e in meniu normal si atat , si in meniu normal sa scoateti DUALMP7A1 cum am zis si sa-l bagati in meniu de vip ! , multumesc
- | Afiseaza codul
//#define POWERS #define MAX_WEAPONS 100 #define EV_INT_WeaponKey EV_INT_impulse #include <amxmodx> #include <amxmisc> #include <cstrike> #include <engine> #include <fakemeta> #include <fakemeta_util> #include <hamsandwich> #include "furien40/furien40.inc" #if defined POWERS #include "furien40/furien40_powers.inc" #endif #define PLUGIN "Weapons Menu" #define VERSION "4.0" #define AUTHOR "Aragon*" //------| Settings |------// #define VIP_LEVEL ADMIN_LEVEL_H #define ADMIN_LEVEL ADMIN_LEVEL_G //--| Primary Weapons |--// #define OICW //#define THANATOS11 //#define THANATOS7 //#define AEOLIS #define JANUS11 //#define JANUS7 #define JANUS3 //#define SPEARGUN //#define PETROLBOOMER //#define SALAMANDER #define AT4 #define ETHEREAL #define RAILCANNON #define PLASMAGUN #define CROSSBOW //#define COMPOUNDBOW #define HK416 //#define AK47KNIFE //#define F2000 #define TAR21 //#define K1ASES #define DUALMP7A1 //#define QUADBARREL #define M1887 #define THOMPSON #define M134 //#define SKULL5 //#define SL8 //#define AW50 //--| Secondary Weapons |--// //#define DRAGONCANNON //#define JANUS1 #define M79 #define DUALDEAGLE #define INFINITY #define SKULL1 #define ANACONDA //--| Knifes |--// //#define CLAWS //#define SUPERCLAWS #define DUALKATANA //#define BALROG9 //#define JANUS9 #define RUYISTICK #define DRAGONSWORD //#define PAPIN //--| Grenades |--// //#define SNARK //#define FIRENADE //#define FROSTNADE //#define SFNADE //--| C4 |--// //#define LASERMINE //------| End Settings |------// enum WeaponsList { WPN_PRIMARY = 0, WPN_SECONDARY, WPN_KNIFE, WPN_GRENADE, WPN_C4 } enum WeaponData { WPN_MENUNAME = 0, WPN_TEAM, WPN_ACCES, WPN_LEVEL, WPN_NAME, WPN_ID, WPN_LIST, WPN_CLIP }; enum WeaponTeam { WPN_TEAM_ALL = 0, WPN_TEAM_T, WPN_TEAM_CT }; enum WeaponAcces { WPN_ACCES_ALL = 0, WPN_ACCES_VIP, WPN_ACCES_ADMIN }; new Menu, bool:ShowMenu[33], Weapons[WeaponsList] = 1, HasChoose[33][WeaponsList][4], WeaponKey[33][WeaponsList][4], PrimaryWeapon[MAX_WEAPONS+1][WeaponData][33], SecondaryWeapon[MAX_WEAPONS+1][WeaponData][33], Knife[MAX_WEAPONS+1][WeaponData][33], Grenade[MAX_WEAPONS+1][WeaponData][33], C4[MAX_WEAPONS+1][WeaponData][33], MSGID_WeaponList, MSGID_DeathMsg, MSGID_ScoreInfo, MSGID_SayText, MSGID_CurWeapon, MSGID_Crosshair/*, MSGID_ScreenFade, MSGID_ScreenShake*/; //------| Weapons Menu |------// #define PRIMARY_WEAPONS_BITSUM (1<<CSW_SCOUT | 1<<CSW_XM1014 | 1<<CSW_MAC10 | 1<<CSW_AUG | 1<<CSW_UMP45 | 1<<CSW_SG550 | 1<<CSW_GALIL | 1<<CSW_FAMAS | 1<<CSW_AWP | 1<<CSW_MP5NAVY | 1<<CSW_M249 | 1<<CSW_M3 | 1<<CSW_M4A1 | 1<<CSW_TMP | 1<<CSW_G3SG1 | 1<<CSW_SG552 | 1<<CSW_AK47 | 1<<CSW_P90) #define SECONDARY_WEAPONS_BITSUM (1<<CSW_GLOCK18 | 1<<CSW_USP | 1<<CSW_P228 | 1<<CSW_DEAGLE | 1<<CSW_FIVESEVEN | 1<<CSW_ELITE) #define AMMOWP_NULL (1<<0 | 1<<CSW_KNIFE | 1<<CSW_FLASHBANG | 1<<CSW_HEGRENADE | 1<<CSW_SMOKEGRENADE | 1<<CSW_C4) new Shell, BloodSpray, BloodDrop, WeaponsAmmo[][] = { { -1, -1 }, { 13, 52 }, { -1, -1 }, { 10, 90 }, { -1, -1 }, { 7, 32 }, { -1, -1 }, { 30, 100 }, { 30, 90 }, { -1, -1 }, { 30, 120 }, { 20, 100 }, { 25, 100 }, { 30, 90 }, { 35, 90 }, { 25, 90 }, { 12, 100 }, { 20, 120 }, { 10, 30 }, { 30, 120 }, { 100, 200 }, { 8, 32 }, { 30, 90 }, { 30, 120 }, { 20, 90 }, { -1, -1 }, { 7, 35 }, { 30, 90 }, { 30, 90 }, { -1, -1 }, { 50, 100 } }, Prefix[] = "[INFO]", Contact[] = "Mihai.Parkour10"; #include "furien40/weapons/Config.h" public plugin_init() { register_plugin(PLUGIN, VERSION, AUTHOR) MSGID_WeaponList = get_user_msgid("WeaponList") MSGID_DeathMsg = get_user_msgid("DeathMsg") MSGID_ScoreInfo = get_user_msgid("ScoreInfo") MSGID_SayText = get_user_msgid("SayText") MSGID_CurWeapon = get_user_msgid("CurWeapon") MSGID_Crosshair = get_user_msgid("Crosshair") /*MSGID_ScreenFade = get_user_msgid("ScreenFade") MSGID_ScreenShake = get_user_msgid("ScreenShake");*/ Shell = engfunc(EngFunc_PrecacheModel, "models/rshell.mdl"); register_clcmd("guns", "CMD_Guns"); register_clcmd("say guns", "CMD_Guns"); register_clcmd("say /guns", "CMD_Guns"); register_clcmd("say_team guns", "CMD_Guns"); register_clcmd("say_team /guns", "CMD_Guns"); register_event("CurWeapon", "EVENT_CurWeapon", "be", "1=1") RegisterHam(Ham_Spawn, "player", "HAM_Spawn_Post", 1); RegisterHam(Ham_Touch, "weaponbox", "HAM_Touch") RegisterHam(Ham_Touch, "armoury_entity", "HAM_Touch") RegisterHam(Ham_Touch, "weapon_shield", "HAM_Touch") weapons_init() } public plugin_precache() { BloodSpray = precache_model("sprites/bloodspray.spr"); BloodDrop = precache_model("sprites/blood.spr"); weapons_precache() } public plugin_natives() { register_native("RegisterPrimary", "native_register_primary", 1) register_native("RegisterSecondary", "native_register_secondary", 1) register_native("RegisterKnife", "native_register_knife", 1) register_native("RegisterGrenade", "native_register_grenade", 1) register_native("RegisterC4", "native_register_c4", 1) register_native("OpenWeaponsMenu", "CMD_Guns", 1) register_native("get_weapon", "get_weapon", 1) register_native("set_weapon", "set_weapon", 1) register_native("get_weapon_data", "get_weapon_data", 1) register_native("set_weapon_data", "set_weapon_data", 1) weapons_natives() } public client_putinserver(id) { ShowMenu[id] = true } public grenade_throw(id, grenade, GrenadeID) { if(is_valid_ent(grenade) && is_user_alive(id)) { for(new i = 1; i < Weapons[WPN_GRENADE]; i++) { if(GrenadeID == str_to_num(Grenade[WPN_ID]) && get_user_weapon(id) == GrenadeID && get_weapon(id, Grenade[WPN_NAME], str_to_num(Grenade[WPN_ID]), i)) entity_set_int(grenade, EV_INT_impulse, i); } } return FMRES_IGNORED; } public EVENT_CurWeapon(id) { if(is_user_connected(id) && is_user_alive(id)) { new Weapon = read_data(2) if(!(AMMOWP_NULL &(1<<Weapon))) { if(fm_get_user_bpammo(id, Weapon) < WeaponsAmmo[Weapon][1]) fm_set_user_bpammo(id, Weapon, WeaponsAmmo[Weapon][1]) } } return PLUGIN_CONTINUE } public HAM_Spawn_Post(id) { if(is_user_alive(id)) { HasChoose[id][WPN_PRIMARY][get_user_team(id)] = false HasChoose[id][WPN_SECONDARY][get_user_team(id)] = false HasChoose[id][WPN_KNIFE][get_user_team(id)] = false HasChoose[id][WPN_GRENADE][get_user_team(id)] = false HasChoose[id][WPN_C4][get_user_team(id)] = false #if defined FIRENADE set_weapon(id, WPN_GRENADE, firenade_id()) #endif #if defined FROSTNADE set_weapon(id, WPN_GRENADE, frostnade_id()) #endif #if defined SFNADE set_weapon(id, WPN_GRENADE, sfnade_id()) #endif if(get_user_team(id) == TEAM_ANTIFURIEN) { if(ShowMenu[id]) EquipmentMenu(id) else if(!ShowMenu[id]) GiveLastWeapons(id) } } return HAM_IGNORED; } public HAM_Touch(ent, id) { if(is_user_alive(id)) { if(get_user_team(id) == TEAM_FURIEN && entity_get_int(ent, EV_INT_impulse) == 2) return HAM_SUPERCEDE if(get_user_team(id) == TEAM_ANTIFURIEN && entity_get_int(ent, EV_INT_impulse) == 1) return HAM_SUPERCEDE } return HAM_IGNORED } public CMD_Guns(id) { if(!ShowMenu[id]) { ShowMenu[id] = true ColorChat(id, "!t%s!gMeniul de!t echipamente!g a fost!t re-activat!g.", Prefix); } if(!HasChoose[id][WPN_PRIMARY][2] && !HasChoose[id][WPN_SECONDARY][2] && !HasChoose[id][WPN_KNIFE][2]) EquipmentMenu(id) else if(!HasChoose[id][WPN_PRIMARY][2]) PrimaryWeaponMenu(id, 0) else if(!HasChoose[id][WPN_SECONDARY][2]) SecondaryWeaponMenu(id) else if(!HasChoose[id][WPN_KNIFE][2]) KnifesMenu(id) return PLUGIN_CONTINUE; } public EquipmentMenu(id) { if(is_user_alive(id) && get_user_team(id) == TEAM_ANTIFURIEN) { menu_cancel(id) Menu = menu_create("\rEchipament", "EquipmentCmd"); menu_additem(Menu, "\wArme noi", "1", 0); if(WeaponKey[id][WPN_PRIMARY][2] && WeaponKey[id][WPN_SECONDARY][2] && WeaponKey[id][WPN_KNIFE][2]) { menu_additem(Menu, "\wArmele anterioare", "2", 0); menu_additem(Menu, "\wNu arata meniul din nou^n", "3", 0); } else { menu_additem(Menu, "\dArmele anterioare", "2", 0); menu_additem(Menu, "\dNu arata meniul din nou^n", "3", 0); } menu_setprop(Menu, MPROP_EXIT, MEXIT_NEVER) menu_display(id, Menu, 0); } } public EquipmentCmd(id, menu, item) { if(item == MENU_EXIT || !is_user_alive(id) || get_user_team(id) != TEAM_ANTIFURIEN) { menu_destroy(menu); return PLUGIN_HANDLED; } new Data[6], Name[64], Access, CallBack; menu_item_getinfo(menu, item, Access, Data, 5, Name, 63, CallBack); menu_destroy(menu); switch(str_to_num(Data)) { case 1: { if(!HasChoose[id][WPN_PRIMARY][2]) PrimaryWeaponMenu(id, 0) else if(!HasChoose[id][WPN_SECONDARY][2]) SecondaryWeaponMenu(id) else if(!HasChoose[id][WPN_KNIFE][2]) KnifesMenu(id) } case 2: { if(WeaponKey[id][WPN_PRIMARY][2] && WeaponKey[id][WPN_SECONDARY][2] && WeaponKey[id][WPN_KNIFE][2]) GiveLastWeapons(id) else EquipmentMenu(id) } case 3: { if(WeaponKey[id][WPN_PRIMARY][2] && WeaponKey[id][WPN_SECONDARY][2] && WeaponKey[id][WPN_KNIFE][2]) { ShowMenu[id] = false GiveLastWeapons(id) } else EquipmentMenu(id) } } return PLUGIN_HANDLED; } public PrimaryWeaponMenu(id, VIP) { if(is_user_alive(id) && get_user_team(id) == TEAM_ANTIFURIEN && !HasChoose[id][WPN_PRIMARY][2]) { menu_cancel(id); Menu = menu_create("\rPrimar", "PrimaryCmd"); if(VIP == 0) { new UltimateWeapon = 0, VIPWeapon = 0 for(new i = 1; i < Weapons[WPN_PRIMARY]; i++) { if(WeaponTeam:str_to_num(PrimaryWeapon[WPN_TEAM]) != WPN_TEAM_T && WeaponAcces:str_to_num(PrimaryWeapon[WPN_ACCES]) == WPN_ACCES_ADMIN) UltimateWeapon++ if(WeaponTeam:str_to_num(PrimaryWeapon[WPN_TEAM]) != WPN_TEAM_T && WeaponAcces:str_to_num(PrimaryWeapon[WPN_ACCES]) == WPN_ACCES_VIP) VIPWeapon++ } if(UltimateWeapon) { if(get_user_flags(id) & ADMIN_LEVEL) menu_additem(Menu, "\rUltimate Weapons", "-2", 0); else menu_additem(Menu, "\dUltimate Weapons \w- \rOnly ADMIN", "-2", 0); } if(VIPWeapon) { if(get_user_flags(id) & VIP_LEVEL) menu_additem(Menu, "\rVIP Weapons", "-1", 0); else menu_additem(Menu, "\dVIP Weapons \w- \rOnly VIP", "-1", 0); } if(UltimateWeapon || VIPWeapon) menu_addblank(Menu, 0); menu_setprop(Menu, MPROP_EXIT, MEXIT_NEVER) } else { menu_setprop(Menu, MPROP_EXITNAME, "Meniu Principal") menu_setprop(Menu, MPROP_EXIT, MEXIT_ALL) } #if defined POWERS for(new i = 0; i < MAX_LEVEL; i++) { for(new k = 1; k < Weapons[WPN_PRIMARY]; k++) { if(str_to_num(PrimaryWeapon[k][WPN_LEVEL]) == i && WeaponTeam:str_to_num(PrimaryWeapon[k][WPN_TEAM]) != WPN_TEAM_T && str_to_num(PrimaryWeapon[k][WPN_ACCES]) == VIP) AddWeapon(id, Menu, PrimaryWeapon[k][WPN_MENUNAME], PrimaryWeapon[k][WPN_ACCES], PrimaryWeapon[k][WPN_LEVEL], k); } } #else for(new i = 1; i < Weapons[WPN_PRIMARY]; i++) { if(WeaponTeam:str_to_num(PrimaryWeapon[WPN_TEAM]) != WPN_TEAM_T && str_to_num(PrimaryWeapon[WPN_ACCES]) == VIP) AddWeapon(id, Menu, PrimaryWeapon[WPN_MENUNAME], PrimaryWeapon[i][WPN_ACCES], PrimaryWeapon[i][WPN_LEVEL], i); } #endif menu_display(id, Menu, 0); } } public PrimaryCmd(id, menu, item) { if(!is_user_alive(id) || get_user_team(id) != TEAM_ANTIFURIEN || HasChoose[id][WPN_PRIMARY][2]) { menu_destroy(menu); return PLUGIN_HANDLED; } else if(item == MENU_EXIT) { menu_destroy(menu); PrimaryWeaponMenu(id, 0) return PLUGIN_HANDLED; } new Data[6], Name[64], Access, CallBack; menu_item_getinfo(menu, item, Access, Data, 5, Name, 63, CallBack); menu_destroy(menu); if(equal(Data, "-2")) { if(get_user_flags(id) & ADMIN_LEVEL) PrimaryWeaponMenu(id, 2) else { if(!HasChoose[id][WPN_PRIMARY][2]) PrimaryWeaponMenu(id, 0) else if(!HasChoose[id][WPN_SECONDARY][2]) SecondaryWeaponMenu(id) else if(!HasChoose[id][WPN_KNIFE][2]) KnifesMenu(id) ColorChat(id, "!t%s!gPentru a cumpara!t Admin!g adauga ID:!t %s", Prefix, Contact); } } else if(equal(Data, "-1")) { if(get_user_flags(id) & VIP_LEVEL) PrimaryWeaponMenu(id, 1) else { if(!HasChoose[id][WPN_PRIMARY][2]) PrimaryWeaponMenu(id, 0) else if(!HasChoose[id][WPN_SECONDARY][2]) SecondaryWeaponMenu(id) else if(!HasChoose[id][WPN_KNIFE][2]) KnifesMenu(id) ColorChat(id, "!t%s!gPentru a cumpara!t VIP!g adauga ID:!t %s", Prefix, Contact); } } else { GivePrimary(id, str_to_num(Data)) if(!HasChoose[id][WPN_PRIMARY][2]) PrimaryWeaponMenu(id, 0) else SecondaryWeaponMenu(id) } return PLUGIN_HANDLED; } public SecondaryWeaponMenu(id) { if(is_user_alive(id) && get_user_team(id) == TEAM_ANTIFURIEN && !HasChoose[id][WPN_SECONDARY][2]) { menu_cancel(id); Menu = menu_create("\rSecundar", "SecondaryCmd"); #if defined POWERS for(new i = 0; i < MAX_LEVEL; i++) { for(new k = 1; k < Weapons[WPN_SECONDARY]; k++) { if(WeaponTeam:str_to_num(SecondaryWeapon[k][WPN_TEAM]) != WPN_TEAM_T && str_to_num(SecondaryWeapon[k][WPN_LEVEL]) == i) AddWeapon(id, Menu, SecondaryWeapon[k][WPN_MENUNAME], SecondaryWeapon[k][WPN_ACCES], SecondaryWeapon[k][WPN_LEVEL], k); } } #else for(new i = 1; i < Weapons[WPN_SECONDARY]; i++) { if(WeaponTeam:str_to_num(SecondaryWeapon[i][WPN_TEAM]) != WPN_TEAM_T) AddWeapon(id, Menu, SecondaryWeapon[i][WPN_MENUNAME], SecondaryWeapon[i][WPN_ACCES], SecondaryWeapon[i][WPN_LEVEL], i); } #endif menu_setprop(Menu, MPROP_EXIT, MEXIT_NEVER) menu_display(id, Menu, 0); } return PLUGIN_CONTINUE; } public SecondaryCmd(id, menu, item) { if(item == MENU_EXIT || !is_user_alive(id) || get_user_team(id) != TEAM_ANTIFURIEN || HasChoose[id][WPN_SECONDARY][2]) { menu_destroy(menu); return PLUGIN_HANDLED; } new Data[6], Name[64], Access, CallBack; menu_item_getinfo(menu, item, Access, Data, 5, Name, 63, CallBack); menu_destroy(menu); GiveSecondary(id, str_to_num(Data)) if(!HasChoose[id][WPN_SECONDARY][2]) SecondaryWeaponMenu(id) else KnifesMenu(id) return PLUGIN_HANDLED; } public KnifesMenu(id) { if(is_user_alive(id) && get_user_team(id) == TEAM_ANTIFURIEN && !HasChoose[id][WPN_KNIFE][2]) { menu_cancel(id); Menu = menu_create("\rCutit", "KnifesCmd"); #if defined POWERS for(new i = 0; i < MAX_LEVEL; i++) { for(new k = 1; k < Weapons[WPN_KNIFE]; k++) { if(WeaponTeam:str_to_num(Knife[k][WPN_TEAM]) != WPN_TEAM_T && str_to_num(Knife[k][WPN_LEVEL]) == i) AddWeapon(id, Menu, Knife[k][WPN_MENUNAME], Knife[k][WPN_ACCES], Knife[k][WPN_LEVEL], k); } } #else for(new i = 1; i < Weapons[WPN_KNIFE]; i++) { if(WeaponTeam:str_to_num(Knife[i][WPN_TEAM]) != WPN_TEAM_T) AddWeapon(id, Menu, Knife[i][WPN_MENUNAME], Knife[i][WPN_ACCES], Knife[i][WPN_LEVEL], i); } #endif menu_setprop(Menu, MPROP_EXIT, MEXIT_NEVER) menu_display(id, Menu, 0); } return PLUGIN_CONTINUE; } public KnifesCmd(id, menu, item) { if(item == MENU_EXIT || !is_user_alive(id) || get_user_team(id) != TEAM_ANTIFURIEN || HasChoose[id][WPN_KNIFE][2]) { menu_destroy(menu); return PLUGIN_HANDLED; } new Data[6], Name[64], Access, CallBack; menu_item_getinfo(menu, item, Access, Data,5, Name, 63, CallBack); menu_destroy(menu); GiveKnife(id, str_to_num(Data)) if(!HasChoose[id][WPN_KNIFE][2]) KnifesMenu(id) return PLUGIN_HANDLED; } public GiveLastWeapons(id) { if(!HasChoose[id][WPN_PRIMARY][2] && WeaponKey[id][WPN_PRIMARY][2] != -1) GivePrimary(id, WeaponKey[id][WPN_PRIMARY][2]) if(!HasChoose[id][WPN_SECONDARY][2] && WeaponKey[id][WPN_SECONDARY][2] != -1) GiveSecondary(id, WeaponKey[id][WPN_SECONDARY][2]) if(!HasChoose[id][WPN_KNIFE][2] && WeaponKey[id][WPN_KNIFE][2] != -1) GiveKnife(id, WeaponKey[id][WPN_KNIFE][2]) if(!HasChoose[id][WPN_PRIMARY][2]) { WeaponKey[id][WPN_PRIMARY][2] = -1 PrimaryWeaponMenu(id, 0) } else if(!HasChoose[id][WPN_SECONDARY][2]) { WeaponKey[id][WPN_SECONDARY][2] = -1 SecondaryWeaponMenu(id) } else if(!HasChoose[id][WPN_KNIFE][2]) { WeaponKey[id][WPN_KNIFE][2] = -1 KnifesMenu(id) } } public native_register_primary(MenuName[], WeaponTeam:Team, WeaponAcces:Acces, Level[], WeaponName[], WeaponID, Weapon_List[], WeaponClip[]) { param_convert(1) param_convert(4) param_convert(5) param_convert(7) param_convert(8) return RegisterPrimary(MenuName, Team, Acces, Level, WeaponName, WeaponID, Weapon_List, WeaponClip) } public native_register_secondary(MenuName[], WeaponTeam:Team, WeaponAcces:Acces, Level[], WeaponName[], WeaponID, Weapon_List[], WeaponClip[]) { param_convert(1) param_convert(4) param_convert(5) param_convert(7) param_convert(8) return RegisterSecondary(MenuName, Team, Acces, Level, WeaponName, WeaponID, Weapon_List, WeaponClip) } public native_register_knife(MenuName[], WeaponTeam:Team, WeaponAcces:Acces, Level[], Weapon_List[]) { param_convert(1) param_convert(4) param_convert(5) return RegisterKnife(MenuName, Team, Acces, Level, Weapon_List) } public native_register_grenade(MenuName[], WeaponTeam:Team, WeaponAcces:Acces, Level[], WeaponName[], WeaponID, Weapon_List[]) { param_convert(1) param_convert(4) param_convert(5) param_convert(7) return RegisterGrenade(MenuName, Team, Acces, Level, WeaponName, WeaponID, Weapon_List) } public native_register_c4(MenuName[], WeaponTeam:Team, WeaponAcces:Acces, Level[], Weapon_List[]) { param_convert(1) param_convert(4) param_convert(5) return RegisterC4(MenuName, Team, Acces, Level, Weapon_List) } public get_weapon(id, weapon_[], CSW_, WeaponID) { if(is_user_connected(id)) { new Weapon = find_ent_by_owner(-1, weapon_, id); if(is_user_alive(id) && user_has_weapon(id, CSW_) && pev_valid(Weapon)) return entity_get_int(Weapon, EV_INT_impulse) == WeaponID ? true : false } return false } public set_weapon(id, WeaponsList:WeaponSet, WeaponID) { switch(WeaponSet) { case WPN_PRIMARY: return GivePrimary(id, WeaponID) case WPN_SECONDARY: return GiveSecondary(id, WeaponID) case WPN_KNIFE: return GiveKnife(id, WeaponID) case WPN_GRENADE: return GiveGrenade(id, WeaponID) case WPN_C4: return GiveC4(id, WeaponID) } return false } public get_weapon_data(WeaponsList:WeaponSet, WeaponID, WeaponData:Data, Buffer[], len) { param_convert(4) if(WeaponID > -1 && WeaponID < Weapons[WeaponSet]) { switch(WeaponSet) { case WPN_PRIMARY: format(Buffer, len, PrimaryWeapon[WeaponID][Data]) case WPN_SECONDARY: format(Buffer, len, SecondaryWeapon[WeaponID][Data]) case WPN_KNIFE: format(Buffer, len, Knife[WeaponID][Data]) case WPN_GRENADE: format(Buffer, len, Grenade[WeaponID][Data]) case WPN_C4: format(Buffer, len, C4[WeaponID][Data]) } } } public set_weapon_data(WeaponsList:WeaponSet, WeaponID, WeaponData:Data, Buffer[]) { param_convert(4) if(WeaponID > -1 && WeaponID < Weapons[WeaponSet]) { switch(WeaponSet) { case WPN_PRIMARY: format(PrimaryWeapon[WeaponID][Data], 32, Buffer) case WPN_SECONDARY: format(PrimaryWeapon[WeaponID][Data], 32, Buffer) case WPN_KNIFE: format(PrimaryWeapon[WeaponID][Data], 32, Buffer) case WPN_GRENADE: format(Grenade[WeaponID][Data], 32, Buffer) case WPN_C4: format(C4[WeaponID][Data], 32, Buffer) } } } //////////////////////////////////////////////////////////////////////////////////////////////////////////// // Stock's | //========================================================================================================== public AddWeapon(id, Menu, Name[], Acces[], Level[], WeaponID) { new Weapon[64], Num[32]; if(WeaponAcces:str_to_num(Acces) == WPN_ACCES_VIP && !(get_user_flags(id) & VIP_LEVEL)) formatex(Weapon, sizeof(Weapon)-1, "\d%s \w- \rOnly VIP", Name); else if(WeaponAcces:str_to_num(Acces) == WPN_ACCES_ADMIN && !(get_user_flags(id) & ADMIN_LEVEL)) formatex(Weapon, sizeof(Weapon)-1, "\d%s \w- \rOnly ADMIN", Name); #if defined POWERS else if(get_user_level(id) < (str_to_num(Level) > MAX_LEVEL ? MAX_LEVEL : str_to_num(Level))) formatex(Weapon, sizeof(Weapon)-1, "\d%s \w- \rLocked \r[\yLevel: \r%d]", Name, (str_to_num(Level) > MAX_LEVEL) ? MAX_LEVEL : str_to_num(Level)); #endif else formatex(Weapon, sizeof(Weapon)-1, "\w%s", Name); formatex(Num, sizeof(Num)-1, "%d", WeaponID); menu_additem(Menu, Weapon, Num, 0); return } public CanAcces(id, Team[], Acces[], Level[]) { if(WeaponAcces:str_to_num(Acces) == WPN_ACCES_VIP && !(get_user_flags(id) & VIP_LEVEL) || WeaponAcces:str_to_num(Acces) == WPN_ACCES_ADMIN && !(get_user_flags(id) & ADMIN_LEVEL)) return false; if(WeaponTeam:str_to_num(Team) == WPN_TEAM_T && WeaponTeam:get_user_team(id) != WPN_TEAM_T || WeaponTeam:str_to_num(Team) == WPN_TEAM_CT && WeaponTeam:get_user_team(id) != WPN_TEAM_CT) return false; #if defined POWERS else if(get_user_level(id) < (str_to_num(Level) > MAX_LEVEL ? MAX_LEVEL : str_to_num(Level))) return false; #endif return true; } stock RegisterPrimary(MenuName[], WeaponTeam:Team, WeaponAcces:Acces, Level[] = "0", WeaponName[], WeaponID, Weapon_List[] = "None", WeaponClip[] = "0") { if(Weapons[WPN_PRIMARY] < 1) Weapons[WPN_PRIMARY] = 1 format(PrimaryWeapon[Weapons[WPN_PRIMARY]][WPN_MENUNAME], 32, MenuName) if(Team > WeaponTeam || Team < WPN_TEAM_ALL) format(PrimaryWeapon[Weapons[WPN_PRIMARY]][WPN_TEAM], 32, "%d", WPN_TEAM_ALL) else format(PrimaryWeapon[Weapons[WPN_PRIMARY]][WPN_TEAM], 32, "%d", Team) if(Acces > WeaponAcces || Acces < WPN_ACCES_ALL) format(PrimaryWeapon[Weapons[WPN_PRIMARY]][WPN_ACCES], 32, "%d", WPN_ACCES_ALL) else format(PrimaryWeapon[Weapons[WPN_PRIMARY]][WPN_ACCES], 32, "%d", Acces) format(PrimaryWeapon[Weapons[WPN_PRIMARY]][WPN_LEVEL], 32, Level) format(PrimaryWeapon[Weapons[WPN_PRIMARY]][WPN_NAME], 32, WeaponName) format(PrimaryWeapon[Weapons[WPN_PRIMARY]][WPN_ID], 32, "%d", WeaponID) format(PrimaryWeapon[Weapons[WPN_PRIMARY]][WPN_LIST], 32, Weapon_List) format(PrimaryWeapon[Weapons[WPN_PRIMARY]][WPN_CLIP], 32, WeaponClip) Weapons[WPN_PRIMARY]++ return Weapons[WPN_PRIMARY] - 1 } stock RegisterSecondary(MenuName[], WeaponTeam:Team, WeaponAcces:Acces, Level[] = "0", WeaponName[], WeaponID, Weapon_List[] = "None", WeaponClip[] = "0") { if(Weapons[WPN_SECONDARY] < 1) Weapons[WPN_SECONDARY] = 1 format(SecondaryWeapon[Weapons[WPN_SECONDARY]][WPN_MENUNAME], 32, MenuName) if(Team > WeaponTeam || Team < WPN_TEAM_ALL) format(SecondaryWeapon[Weapons[WPN_SECONDARY]][WPN_TEAM], 32, "%d", WPN_TEAM_ALL) else format(SecondaryWeapon[Weapons[WPN_SECONDARY]][WPN_TEAM], 32, "%d", Team) if(Acces > WeaponAcces || Acces < WPN_ACCES_ALL) format(SecondaryWeapon[Weapons[WPN_SECONDARY]][WPN_ACCES], 32, "%d", WPN_ACCES_ALL) else format(SecondaryWeapon[Weapons[WPN_SECONDARY]][WPN_ACCES], 32, "%d", Acces) format(SecondaryWeapon[Weapons[WPN_SECONDARY]][WPN_LEVEL], 32, Level) format(SecondaryWeapon[Weapons[WPN_SECONDARY]][WPN_NAME], 32, WeaponName) format(SecondaryWeapon[Weapons[WPN_SECONDARY]][WPN_ID], 32, "%d", WeaponID) format(SecondaryWeapon[Weapons[WPN_SECONDARY]][WPN_LIST], 32, Weapon_List) format(SecondaryWeapon[Weapons[WPN_SECONDARY]][WPN_CLIP], 32, WeaponClip) Weapons[WPN_SECONDARY]++ return Weapons[WPN_SECONDARY] - 1 } stock RegisterKnife(MenuName[], WeaponTeam:Team, WeaponAcces:Acces, Level[] = "0", Weapon_List[] = "None") { if(Weapons[WPN_KNIFE] < 1) Weapons[WPN_KNIFE] = 1 format(Knife[Weapons[WPN_KNIFE]][WPN_MENUNAME], 32, MenuName) if(Team > WeaponTeam || Team < WPN_TEAM_ALL) format(Knife[Weapons[WPN_KNIFE]][WPN_TEAM], 32, "%d", WPN_TEAM_ALL) else format(Knife[Weapons[WPN_KNIFE]][WPN_TEAM], 32, "%d", Team) if(Acces > WeaponAcces || Acces < WPN_ACCES_ALL) format(Knife[Weapons[WPN_KNIFE]][WPN_ACCES], 32, "%d", WPN_ACCES_ALL) else format(Knife[Weapons[WPN_KNIFE]][WPN_ACCES], 32, "%d", Acces) format(Knife[Weapons[WPN_KNIFE]][WPN_LEVEL], 32, Level) format(Knife[Weapons[WPN_KNIFE]][WPN_LIST], 32, Weapon_List) Weapons[WPN_KNIFE]++ return Weapons[WPN_KNIFE] - 1 } stock RegisterGrenade(MenuName[], WeaponTeam:Team, WeaponAcces:Acces, Level[] = "0", WeaponName[], WeaponID, Weapon_List[] = "None") { if(Weapons[WPN_GRENADE] < 1) Weapons[WPN_GRENADE] = 1 format(Grenade[Weapons[WPN_GRENADE]][WPN_MENUNAME], 32, MenuName) if(Team > WeaponTeam || Team < WPN_TEAM_ALL) format(Grenade[Weapons[WPN_GRENADE]][WPN_TEAM], 32, "%d", WPN_TEAM_ALL) else format(Grenade[Weapons[WPN_GRENADE]][WPN_TEAM], 32, "%d", Team) if(Acces > WeaponAcces || Acces < WPN_ACCES_ALL) format(Grenade[Weapons[WPN_GRENADE]][WPN_ACCES], 32, "%d", WPN_ACCES_ALL) else format(Grenade[Weapons[WPN_GRENADE]][WPN_ACCES], 32, "%d", Acces) format(Grenade[Weapons[WPN_GRENADE]][WPN_LEVEL], 32, Level) format(Grenade[Weapons[WPN_GRENADE]][WPN_NAME], 32, WeaponName) format(Grenade[Weapons[WPN_GRENADE]][WPN_ID], 32, "%d", WeaponID) format(Grenade[Weapons[WPN_GRENADE]][WPN_LIST], 32, Weapon_List) Weapons[WPN_GRENADE]++ return Weapons[WPN_GRENADE] - 1 } stock RegisterC4(MenuName[], WeaponTeam:Team, WeaponAcces:Acces, Level[] = "0", Weapon_List[] = "None") { if(Weapons[WPN_C4] < 1) Weapons[WPN_C4] = 1 format(C4[Weapons[WPN_C4]][WPN_MENUNAME], 32, MenuName) if(Team > WeaponTeam || Team < WPN_TEAM_ALL) format(C4[Weapons[WPN_C4]][WPN_TEAM], 32, "%d", WPN_TEAM_ALL) else format(C4[Weapons[WPN_C4]][WPN_TEAM], 32, "%d", Team) if(Acces > WeaponAcces || Acces < WPN_ACCES_ALL) format(C4[Weapons[WPN_C4]][WPN_ACCES], 32, "%d", WPN_ACCES_ALL) else format(C4[Weapons[WPN_C4]][WPN_ACCES], 32, "%d", Acces) format(C4[Weapons[WPN_C4]][WPN_LEVEL], 32, Level) format(C4[Weapons[WPN_C4]][WPN_LIST], 32, Weapon_List) Weapons[WPN_C4]++ return Weapons[WPN_C4] - 1 } public GivePrimary(id, WeaponID) { if(is_user_alive(id)) { if(WeaponID > 0 && WeaponID < Weapons[WPN_PRIMARY]) { if(CanAcces(id, PrimaryWeapon[WeaponID][WPN_TEAM], PrimaryWeapon[WeaponID][WPN_ACCES], PrimaryWeapon[WeaponID][WPN_LEVEL])) { new Weapon, Impulse = entity_get_int(id, EV_INT_impulse) HasChoose[id][WPN_PRIMARY][get_user_team(id)] = true WeaponKey[id][WPN_PRIMARY][get_user_team(id)] = WeaponID /*if(get_user_team(id) == TEAM_FURIEN) special_primary(id, true)*/ drop_primary_weapons(id); if(equal(PrimaryWeapon[WeaponID][WPN_LIST], "None")) WeaponList(id, str_to_num(PrimaryWeapon[WeaponID][WPN_ID]), PrimaryWeapon[WeaponID][WPN_NAME], 0) else WeaponList(id, str_to_num(PrimaryWeapon[WeaponID][WPN_ID]), PrimaryWeapon[WeaponID][WPN_LIST], 0) entity_set_int(id, EV_INT_impulse, WeaponID); Weapon = fm_give_item(id, PrimaryWeapon[WeaponID][WPN_NAME]); entity_set_int(Weapon, EV_INT_impulse, WeaponID) entity_set_int(id, EV_INT_impulse, Impulse); if(!equal(PrimaryWeapon[WeaponID][WPN_CLIP], "0")) cs_set_weapon_ammo(Weapon, str_to_num(PrimaryWeapon[WeaponID][WPN_CLIP])) return true } } } return false } public GiveSecondary(id, WeaponID) { if(is_user_alive(id)) { if(WeaponID > 0 && WeaponID < Weapons[WPN_SECONDARY]) { if(CanAcces(id, SecondaryWeapon[WeaponID][WPN_TEAM], SecondaryWeapon[WeaponID][WPN_ACCES], SecondaryWeapon[WeaponID][WPN_LEVEL])) { new Weapon, Impulse = entity_get_int(id, EV_INT_impulse) HasChoose[id][WPN_SECONDARY][get_user_team(id)] = true WeaponKey[id][WPN_SECONDARY][get_user_team(id)] = WeaponID /*if(get_user_team(id) == TEAM_FURIEN) special_secondary(id, true)*/ drop_secondary_weapons(id); if(equal(SecondaryWeapon[WeaponID][WPN_LIST], "None")) WeaponList(id, str_to_num(SecondaryWeapon[WeaponID][WPN_ID]), SecondaryWeapon[WeaponID][WPN_NAME], 0) else WeaponList(id, str_to_num(SecondaryWeapon[WeaponID][WPN_ID]), SecondaryWeapon[WeaponID][WPN_LIST], 0) entity_set_int(id, EV_INT_impulse, WeaponID); Weapon = fm_give_item(id, SecondaryWeapon[WeaponID][WPN_NAME]); entity_set_int(Weapon, EV_INT_impulse, WeaponID) entity_set_int(id, EV_INT_impulse, Impulse); if(!equal(SecondaryWeapon[WeaponID][WPN_CLIP], "0")) cs_set_weapon_ammo(Weapon, str_to_num(SecondaryWeapon[WeaponID][WPN_CLIP])) return true } } } return false } public GiveKnife(id, WeaponID) { if(is_user_alive(id)) { if(WeaponID > 0 && WeaponID < Weapons[WPN_KNIFE]) { if(CanAcces(id, Knife[WeaponID][WPN_TEAM], Knife[WeaponID][WPN_ACCES], Knife[WeaponID][WPN_LEVEL])) { new Weapon, Impulse = entity_get_int(id, EV_INT_impulse) HasChoose[id][WPN_KNIFE][get_user_team(id)] = true WeaponKey[id][WPN_KNIFE][get_user_team(id)] = WeaponID bacon_strip_weapon(id, "weapon_knife"); if(equal(Knife[WeaponID][WPN_LIST], "None")) WeaponList(id, CSW_KNIFE, Knife[WeaponID][WPN_NAME], 0) else WeaponList(id, CSW_KNIFE, Knife[WeaponID][WPN_LIST], 0) entity_set_int(id, EV_INT_impulse, WeaponID); Weapon = fm_give_item(id, "weapon_knife"); entity_set_int(Weapon, EV_INT_impulse, WeaponID) entity_set_int(id, EV_INT_impulse, Impulse); return true } } } return false } public GiveGrenade(id, WeaponID) { if(is_user_alive(id)) { if(WeaponID > 0 && WeaponID < Weapons[WPN_GRENADE]) { if(CanAcces(id, Grenade[WeaponID][WPN_TEAM], Grenade[WeaponID][WPN_ACCES], Grenade[WeaponID][WPN_LEVEL])) { new Weapon, Impulse = entity_get_int(id, EV_INT_impulse) HasChoose[id][WPN_GRENADE][get_user_team(id)] = true WeaponKey[id][WPN_GRENADE][get_user_team(id)] = WeaponID bacon_strip_weapon(id, Grenade[WeaponID][WPN_NAME]); if(equal(Grenade[WeaponID][WPN_LIST], "None")) WeaponList(id, str_to_num(Grenade[WeaponID][WPN_ID]), Grenade[WeaponID][WPN_NAME], 0) else WeaponList(id, str_to_num(Grenade[WeaponID][WPN_ID]), Grenade[WeaponID][WPN_LIST], 0) entity_set_int(id, EV_INT_impulse, WeaponID); Weapon = fm_give_item(id, Grenade[WeaponID][WPN_NAME]); entity_set_int(Weapon, EV_INT_impulse, WeaponID) entity_set_int(id, EV_INT_impulse, Impulse); return true } } } return false } public GiveC4(id, WeaponID) { if(is_user_alive(id)) { if(WeaponID > 0 && WeaponID < Weapons[WPN_C4]) { if(CanAcces(id, C4[WeaponID][WPN_TEAM], C4[WeaponID][WPN_ACCES], C4[WeaponID][WPN_LEVEL])) { new Weapon, Impulse = entity_get_int(id, EV_INT_impulse) HasChoose[id][WPN_C4][get_user_team(id)] = true WeaponKey[id][WPN_C4][get_user_team(id)] = WeaponID bacon_strip_weapon(id, "weapon_c4"); if(equal(C4[WeaponID][WPN_LIST], "None")) WeaponList(id, CSW_C4, C4[WeaponID][WPN_NAME], 0) else WeaponList(id, CSW_C4, C4[WeaponID][WPN_LIST], 0) entity_set_int(id, EV_INT_impulse, WeaponID); Weapon = fm_give_item(id, "weapon_c4"); entity_set_int(Weapon, EV_INT_impulse, WeaponID) entity_set_int(id, EV_INT_impulse, Impulse); return true } } } return false } stock WeaponList(id, CSW_WEAPON, const Weapon[], Flag=0) { switch(CSW_WEAPON) { case CSW_P228: { message_begin(MSG_ONE, MSGID_WeaponList, _, id); write_string(Weapon); // WeaponName write_byte(9); // PrimaryAmmoID write_byte(52); // PrimaryAmmoMaxAmount write_byte(-1); // SecondaryAmmoID write_byte(-1); // SecondaryAmmoMaxAmount write_byte(1); // SlotID (0...N) write_byte(3); // NumberInSlot (1...N) write_byte(CSW_P228); // WeaponID write_byte(Flag); // Flags message_end(); } case CSW_SCOUT: { message_begin(MSG_ONE, MSGID_WeaponList, _, id); write_string(Weapon); // WeaponName write_byte(2); // PrimaryAmmoID write_byte(90); // PrimaryAmmoMaxAmount write_byte(-1); // SecondaryAmmoID write_byte(-1); // SecondaryAmmoMaxAmount write_byte(0); // SlotID (0...N) write_byte(9); // NumberInSlot (1...N) write_byte(CSW_SCOUT); // WeaponID write_byte(Flag); // Flags message_end(); } case CSW_HEGRENADE: { message_begin(MSG_ONE, MSGID_WeaponList, _, id); write_string(Weapon); // WeaponName write_byte(12); // PrimaryAmmoID write_byte(1); // PrimaryAmmoMaxAmount write_byte(-1); // SecondaryAmmoID write_byte(-1); // SecondaryAmmoMaxAmount write_byte(3); // SlotID (0...N) write_byte(1); // NumberInSlot (1...N) write_byte(CSW_HEGRENADE); // WeaponID write_byte(Flag); // Flags message_end(); } case CSW_XM1014: { message_begin(MSG_ONE, MSGID_WeaponList, _, id); write_string(Weapon); // WeaponName write_byte(5); // PrimaryAmmoID write_byte(32); // PrimaryAmmoMaxAmount write_byte(-1); // SecondaryAmmoID write_byte(-1); // SecondaryAmmoMaxAmount write_byte(0); // SlotID (0...N) write_byte(12); // NumberInSlot (1...N) write_byte(CSW_XM1014); // WeaponID write_byte(Flag); // Flags message_end(); } case CSW_C4: { message_begin(MSG_ONE, MSGID_WeaponList, _, id); write_string(Weapon); // WeaponName write_byte(14); // PrimaryAmmoID write_byte(1); // PrimaryAmmoMaxAmount write_byte(-1); // SecondaryAmmoID write_byte(-1); // SecondaryAmmoMaxAmount write_byte(4); // SlotID (0...N) write_byte(3); // NumberInSlot (1...N) write_byte(CSW_C4); // WeaponID write_byte(Flag); // Flags message_end(); } case CSW_MAC10: { message_begin(MSG_ONE, MSGID_WeaponList, _, id); write_string(Weapon); // WeaponName write_byte(6); // PrimaryAmmoID write_byte(100); // PrimaryAmmoMaxAmount write_byte(-1); // SecondaryAmmoID write_byte(-1); // SecondaryAmmoMaxAmount write_byte(0); // SlotID (0...N) write_byte(13); // NumberInSlot (1...N) write_byte(CSW_MAC10); // WeaponID write_byte(Flag); // Flags message_end(); } case CSW_AUG: { message_begin(MSG_ONE, MSGID_WeaponList, _, id); write_string(Weapon); // WeaponName write_byte(4); // PrimaryAmmoID write_byte(90); // PrimaryAmmoMaxAmount write_byte(-1); // SecondaryAmmoID write_byte(-1); // SecondaryAmmoMaxAmount write_byte(0); // SlotID (0...N) write_byte(14); // NumberInSlot (1...N) write_byte(CSW_AUG); // WeaponID write_byte(Flag); // Flags message_end(); } case CSW_SMOKEGRENADE: { message_begin(MSG_ONE, MSGID_WeaponList, _, id); write_string(Weapon); // WeaponName write_byte(13); // PrimaryAmmoID write_byte(1); // PrimaryAmmoMaxAmount write_byte(-1); // SecondaryAmmoID write_byte(-1); // SecondaryAmmoMaxAmount write_byte(3); // SlotID (0...N) write_byte(3); // NumberInSlot (1...N) write_byte(CSW_SMOKEGRENADE); // WeaponID write_byte(Flag); // Flags message_end(); } case CSW_ELITE: { message_begin(MSG_ONE, MSGID_WeaponList, _, id); write_string(Weapon); // WeaponName write_byte(10); // PrimaryAmmoID write_byte(120); // PrimaryAmmoMaxAmount write_byte(-1); // SecondaryAmmoID write_byte(-1); // SecondaryAmmoMaxAmount write_byte(1); // SlotID (0...N) write_byte(5); // NumberInSlot (1...N) write_byte(CSW_ELITE); // WeaponID write_byte(Flag); // Flags message_end(); } case CSW_FIVESEVEN: { message_begin(MSG_ONE, MSGID_WeaponList, _, id); write_string(Weapon); // WeaponName write_byte(7); // PrimaryAmmoID write_byte(100); // PrimaryAmmoMaxAmount write_byte(-1); // SecondaryAmmoID write_byte(-1); // SecondaryAmmoMaxAmount write_byte(1); // SlotID (0...N) write_byte(6); // NumberInSlot (1...N) write_byte(CSW_FIVESEVEN); // WeaponID write_byte(Flag); // Flags message_end(); } case CSW_UMP45: { message_begin(MSG_ONE, MSGID_WeaponList, _, id); write_string(Weapon); // WeaponName write_byte(6); // PrimaryAmmoID write_byte(100); // PrimaryAmmoMaxAmount write_byte(-1); // SecondaryAmmoID write_byte(-1); // SecondaryAmmoMaxAmount write_byte(0); // SlotID (0...N) write_byte(15); // NumberInSlot (1...N) write_byte(CSW_UMP45); // WeaponID write_byte(Flag); // Flags message_end(); } case CSW_SG550: { message_begin(MSG_ONE, MSGID_WeaponList, _, id); write_string(Weapon); // WeaponName write_byte(4); // PrimaryAmmoID write_byte(90); // PrimaryAmmoMaxAmount write_byte(-1); // SecondaryAmmoID write_byte(-1); // SecondaryAmmoMaxAmount write_byte(0); // SlotID (0...N) write_byte(16); // NumberInSlot (1...N) write_byte(CSW_SG550); // WeaponID write_byte(Flag); // Flags message_end(); } case CSW_GALIL: { message_begin(MSG_ONE, MSGID_WeaponList, _, id); write_string(Weapon); // WeaponName write_byte(4); // PrimaryAmmoID write_byte(90); // PrimaryAmmoMaxAmount write_byte(-1); // SecondaryAmmoID write_byte(-1); // SecondaryAmmoMaxAmount write_byte(0); // SlotID (0...N) write_byte(17); // NumberInSlot (1...N) write_byte(CSW_GALIL); // WeaponID write_byte(Flag); // Flags message_end(); } case CSW_FAMAS: { message_begin(MSG_ONE, MSGID_WeaponList, _, id); write_string(Weapon); // WeaponName write_byte(4); // PrimaryAmmoID write_byte(90); // PrimaryAmmoMaxAmount write_byte(-1); // SecondaryAmmoID write_byte(-1); // SecondaryAmmoMaxAmount write_byte(0); // SlotID (0...N) write_byte(18); // NumberInSlot (1...N) write_byte(CSW_FAMAS); // WeaponID write_byte(Flag); // Flags message_end(); } case CSW_USP: { message_begin(MSG_ONE, MSGID_WeaponList, _, id); write_string(Weapon); // WeaponName write_byte(6); // PrimaryAmmoID write_byte(100); // PrimaryAmmoMaxAmount write_byte(-1); // SecondaryAmmoID write_byte(-1); // SecondaryAmmoMaxAmount write_byte(1); // SlotID (0...N) write_byte(4); // NumberInSlot (1...N) write_byte(CSW_USP); // WeaponID write_byte(Flag); // Flags message_end(); } case CSW_GLOCK18: { message_begin(MSG_ONE, MSGID_WeaponList, _, id); write_string(Weapon); // WeaponName write_byte(10); // PrimaryAmmoID write_byte(120); // PrimaryAmmoMaxAmount write_byte(-1); // SecondaryAmmoID write_byte(-1); // SecondaryAmmoMaxAmount write_byte(1); // SlotID (0...N) write_byte(2); // NumberInSlot (1...N) write_byte(CSW_GLOCK18); // WeaponID write_byte(Flag); // Flags message_end(); } case CSW_AWP: { message_begin(MSG_ONE, MSGID_WeaponList, _, id); write_string(Weapon); // WeaponName write_byte(1); // PrimaryAmmoID write_byte(30); // PrimaryAmmoMaxAmount write_byte(-1); // SecondaryAmmoID write_byte(-1); // SecondaryAmmoMaxAmount write_byte(0); // SlotID (0...N) write_byte(2); // NumberInSlot (1...N) write_byte(CSW_AWP); // WeaponID write_byte(Flag); // Flags message_end(); } case CSW_MP5NAVY: { message_begin(MSG_ONE, MSGID_WeaponList, _, id); write_string(Weapon); // WeaponName write_byte(10); // PrimaryAmmoID write_byte(120); // PrimaryAmmoMaxAmount write_byte(-1); // SecondaryAmmoID write_byte(-1); // SecondaryAmmoMaxAmount write_byte(0); // SlotID (0...N) write_byte(7); // NumberInSlot (1...N) write_byte(CSW_MP5NAVY); // WeaponID write_byte(Flag); // Flags message_end(); } case CSW_M249: { message_begin(MSG_ONE, MSGID_WeaponList, _, id); write_string(Weapon); // WeaponName write_byte(3); // PrimaryAmmoID write_byte(200); // PrimaryAmmoMaxAmount write_byte(-1); // SecondaryAmmoID write_byte(-1); // SecondaryAmmoMaxAmount write_byte(0); // SlotID (0...N) write_byte(4); // NumberInSlot (1...N) write_byte(CSW_M249); // WeaponID write_byte(Flag); // Flags message_end(); } case CSW_M3: { message_begin(MSG_ONE, MSGID_WeaponList, _, id); write_string(Weapon); // WeaponName write_byte(5); // PrimaryAmmoID write_byte(32); // PrimaryAmmoMaxAmount write_byte(-1); // SecondaryAmmoID write_byte(-1); // SecondaryAmmoMaxAmount write_byte(0); // SlotID (0...N) write_byte(5); // NumberInSlot (1...N) write_byte(CSW_M3); // WeaponID write_byte(Flag); // Flags message_end(); } case CSW_M4A1: { message_begin(MSG_ONE, MSGID_WeaponList, _, id); write_string(Weapon); // WeaponName write_byte(4); // PrimaryAmmoID write_byte(90); // PrimaryAmmoMaxAmount write_byte(-1); // SecondaryAmmoID write_byte(-1); // SecondaryAmmoMaxAmount write_byte(0); // SlotID (0...N) write_byte(6); // NumberInSlot (1...N) write_byte(CSW_M4A1); // WeaponID write_byte(Flag); // Flags message_end(); } case CSW_TMP: { message_begin(MSG_ONE, MSGID_WeaponList, _, id); write_string(Weapon); // WeaponName write_byte(10); // PrimaryAmmoID write_byte(120); // PrimaryAmmoMaxAmount write_byte(-1); // SecondaryAmmoID write_byte(-1); // SecondaryAmmoMaxAmount write_byte(0); // SlotID (0...N) write_byte(11); // NumberInSlot (1...N) write_byte(CSW_TMP); // WeaponID write_byte(Flag); // Flags message_end(); } case CSW_G3SG1: { message_begin(MSG_ONE, MSGID_WeaponList, _, id); write_string(Weapon); // WeaponName write_byte(2); // PrimaryAmmoID write_byte(90); // PrimaryAmmoMaxAmount write_byte(-1); // SecondaryAmmoID write_byte(-1); // SecondaryAmmoMaxAmount write_byte(0); // SlotID (0...N) write_byte(3); // NumberInSlot (1...N) write_byte(CSW_G3SG1); // WeaponID write_byte(Flag); // Flags message_end(); } case CSW_FLASHBANG: { message_begin(MSG_ONE, MSGID_WeaponList, _, id); write_string(Weapon); // WeaponName write_byte(11); // PrimaryAmmoID write_byte(2); // PrimaryAmmoMaxAmount write_byte(-1); // SecondaryAmmoID write_byte(-1); // SecondaryAmmoMaxAmount write_byte(3); // SlotID (0...N) write_byte(2); // NumberInSlot (1...N) write_byte(CSW_FLASHBANG); // WeaponID write_byte(Flag); // Flags message_end(); } case CSW_DEAGLE: { message_begin(MSG_ONE, MSGID_WeaponList, _, id); write_string(Weapon); // WeaponName write_byte(8); // PrimaryAmmoID write_byte(35); // PrimaryAmmoMaxAmount write_byte(-1); // SecondaryAmmoID write_byte(-1); // SecondaryAmmoMaxAmount write_byte(1); // SlotID (0...N) write_byte(1); // NumberInSlot (1...N) write_byte(CSW_DEAGLE); // WeaponID write_byte(Flag); // Flags message_end(); } case CSW_SG552: { message_begin(MSG_ONE, MSGID_WeaponList, _, id); write_string(Weapon); // WeaponName write_byte(4); // PrimaryAmmoID write_byte(90); // PrimaryAmmoMaxAmount write_byte(-1); // SecondaryAmmoID write_byte(-1); // SecondaryAmmoMaxAmount write_byte(0); // SlotID (0...N) write_byte(10); // NumberInSlot (1...N) write_byte(CSW_SG552); // WeaponID write_byte(Flag); // Flags message_end(); } case CSW_AK47: { message_begin(MSG_ONE, MSGID_WeaponList, _, id); write_string(Weapon); // WeaponName write_byte(2); // PrimaryAmmoID write_byte(90); // PrimaryAmmoMaxAmount write_byte(-1); // SecondaryAmmoID write_byte(-1); // SecondaryAmmoMaxAmount write_byte(0); // SlotID (0...N) write_byte(1); // NumberInSlot (1...N) write_byte(CSW_AK47); // WeaponID write_byte(Flag); // Flags message_end(); } case CSW_KNIFE: { message_begin(MSG_ONE, MSGID_WeaponList, _, id); write_string(Weapon); // WeaponName write_byte(-1); // PrimaryAmmoID write_byte(-1); // PrimaryAmmoMaxAmount write_byte(-1); // SecondaryAmmoID write_byte(-1); // SecondaryAmmoMaxAmount write_byte(2); // SlotID (0...N) write_byte(1); // NumberInSlot (1...N) write_byte(CSW_KNIFE); // WeaponID write_byte(Flag); // Flags message_end(); } case CSW_P90: { message_begin(MSG_ONE, MSGID_WeaponList, _, id); write_string(Weapon); // WeaponName write_byte(7); // PrimaryAmmoID write_byte(100); // PrimaryAmmoMaxAmount write_byte(-1); // SecondaryAmmoID write_byte(-1); // SecondaryAmmoMaxAmount write_byte(0); // SlotID (0...N) write_byte(8); // NumberInSlot (1...N) write_byte(CSW_P90); // WeaponID write_byte(Flag); // Flags message_end(); } } } public death_message(killer, victim, const WeaponName[]) { if(is_user_connected(killer) && is_user_alive(victim)) { set_msg_block(MSGID_DeathMsg, BLOCK_SET); ExecuteHamB(Ham_Killed, victim, killer); set_msg_block(MSGID_DeathMsg, BLOCK_NOT); cs_set_user_money(killer, cs_get_user_money(killer) + 300); make_deathmsg(killer, victim, 0, WeaponName); message_begin(MSG_BROADCAST, MSGID_ScoreInfo); write_byte(killer); // id write_short(pev(killer, pev_frags)); // frags write_short(cs_get_user_deaths(killer)); // deaths write_short(0); // class? write_short(get_user_team(killer)); // team message_end(); message_begin(MSG_BROADCAST, MSGID_ScoreInfo); write_byte(victim); // id write_short(pev(victim, pev_frags)); // frags write_short(cs_get_user_deaths(victim)); // deaths write_short(0); // class? write_short(get_user_team(victim)); // team message_end(); } } public make_knockback(id, Float:origin[3], Float:maxspeed) { if(is_user_alive(id)) { new Float:Velocity[3], Float:Origin[3], Float:Distance[3], Float:Time = (vector_distance(Origin,origin) / maxspeed); entity_get_vector(id, EV_VEC_origin, Origin); Distance[0] = Origin[0] - origin[0], Distance[1] = Origin[1] - origin[1], Distance[2] = Origin[2] - origin[2]; Velocity[0] = Distance[0] / Time, Velocity[1] = Distance[1] / Time, Velocity[2] = Distance[2] / Time; entity_set_vector(id, EV_VEC_velocity, Velocity); } } public make_blood(id, Amount) { if(is_user_alive(id)) { new BloodColor = ExecuteHam(Ham_BloodColor, id); if(BloodColor != -1) { new Float:Origin[3] pev(id, pev_origin, Origin); Amount *= 2; //according to HLSDK message_begin(MSG_BROADCAST, SVC_TEMPENTITY); write_byte(TE_BLOODSPRITE); write_coord(floatround(Origin[0])); write_coord(floatround(Origin[1])); write_coord(floatround(Origin[2])); write_short(BloodSpray); write_short(BloodDrop); write_byte(BloodColor); write_byte(min(max(3, Amount/10), 16)); message_end(); } } } public make_bullet(id, Float:Origin[3]) { if(is_user_alive(id)) { new Target, Body; get_user_aiming(id, Target, Body, 999999); if(is_user_connected(Target)) { new Float:Start[3], Float:End[3], Float:Res[3], Float:Vel[3], Res2; pev(id, pev_origin, Start); velocity_by_aim(id, 64, Vel); Start[0] = Origin[0]; Start[1] = Origin[1]; Start[2] = Origin[2]; End[0] = Start[0]+Vel[0]; End[1] = Start[1]+Vel[1]; End[2] = Start[2]+Vel[2]; engfunc(EngFunc_TraceLine, Start, End, 0, Target, Res2); get_tr2(Res2, TR_vecEndPos, Res); message_begin(MSG_BROADCAST, SVC_TEMPENTITY) ; write_byte(TE_BLOODSPRITE); write_coord(floatround(Start[0])); write_coord(floatround(Start[1])); write_coord(floatround(Start[2])); write_short(BloodSpray); write_short(BloodDrop); write_byte(70); write_byte(random_num(1,2)); message_end(); } else { if(Target) { message_begin(MSG_BROADCAST, SVC_TEMPENTITY); write_byte(TE_DECAL); write_coord(floatround(Origin[0])); write_coord(floatround(Origin[1])); write_coord(floatround(Origin[2])); write_byte(41); write_short(Target); message_end(); } else { message_begin(MSG_BROADCAST, SVC_TEMPENTITY); write_byte(TE_WORLDDECAL); write_coord(floatround(Origin[0])); write_coord(floatround(Origin[1])); write_coord(floatround(Origin[2])); write_byte(41); message_end(); } message_begin(MSG_BROADCAST, SVC_TEMPENTITY); write_byte(TE_GUNSHOTDECAL); write_coord(floatround(Origin[0])); write_coord(floatround(Origin[1])); write_coord(floatround(Origin[2])); write_short(id); write_byte(41); message_end(); } } } public set_weapon_anim(id, anim) { if(is_user_connected(id)) { set_pev(id, pev_weaponanim, anim); message_begin(MSG_ONE, SVC_WEAPONANIM, _, id); write_byte(anim); write_byte(pev(id, pev_body)); message_end(); } } public get_damage_body(body, Float:damage) { switch(body) { case HIT_HEAD: damage *= 2.0; case HIT_STOMACH: damage *= 1.0; case HIT_CHEST: damage *= 1.5; case HIT_LEFTARM: damage *= 0.75; case HIT_RIGHTARM: damage *= 0.75; case HIT_LEFTLEG: damage *= 0.75; case HIT_RIGHTLEG: damage *= 0.75; default: damage *= 1.0; } return floatround(damage); } public velocity_to_aim(id, Float:Origin[3], Speed, Float:Velocity[3]) { if(is_user_alive(id)) { new Float:AimOrigin[3] fm_get_aim_origin(id, AimOrigin) Velocity[0] = AimOrigin[0] - Origin[0] Velocity[1] = AimOrigin[1] - Origin[1] Velocity[2] = AimOrigin[2] - Origin[2] new Float:X X = floatsqroot(Speed*Speed / (Velocity[0]*Velocity[0] + Velocity[1]*Velocity[1] + Velocity[2]*Velocity[2])) Velocity[0] *= X Velocity[1] *= X Velocity[2] *= X } } public get_position(id, Float:forw, Float:right, Float:up, Float:Start[]) { if(is_user_alive(id)) { new Float:Origin[3], Float:Angle[3], Float:Forward[3], Float:Right[3], Float:Up[3] pev(id, pev_origin, Origin) pev(id, pev_view_ofs, Up) xs_vec_add(Origin, Up, Origin) if(id <= get_maxplayers()) pev(id, pev_v_angle, Angle) else pev(id, pev_angles, Angle) angle_vector(Angle, ANGLEVECTOR_FORWARD, Forward) angle_vector(Angle, ANGLEVECTOR_RIGHT, Right) angle_vector(Angle, ANGLEVECTOR_UP, Up) Start[0] = Origin[0] + Forward[0] * forw + Right[0] * right + Up[0] * up Start[1] = Origin[1] + Forward[1] * forw + Right[1] * right + Up[1] * up Start[2] = Origin[2] + Forward[2] * forw + Right[2] * right + Up[2] * up } } public fm_get_user_bpammo(id, CSW_WEAPON) { if(is_user_alive(id)) { switch(CSW_WEAPON) { case CSW_AWP: return get_pdata_int(id, 377) case CSW_SCOUT, CSW_AK47, CSW_G3SG1: return get_pdata_int(id, 378) case CSW_M249: return get_pdata_int(id, 379) case CSW_FAMAS, CSW_M4A1, CSW_AUG, CSW_SG550, CSW_GALI, CSW_SG552: return get_pdata_int(id, 380) case CSW_M3, CSW_XM1014: return get_pdata_int(id, 381) case CSW_USP, CSW_UMP45, CSW_MAC10: return get_pdata_int(id, 382) case CSW_FIVESEVEN, CSW_P90: return get_pdata_int(id, 383) case CSW_DEAGLE: return get_pdata_int(id, 384) case CSW_P228: return get_pdata_int(id, 385) case CSW_GLOCK18, CSW_TMP, CSW_ELITE, CSW_MP5NAVY: return get_pdata_int(id, 386) default: return 0 } } return 0 } public fm_set_user_bpammo(id, CSW_WEAPON, Amount) { if(is_user_alive(id)) { switch(CSW_WEAPON) { case CSW_AWP: set_pdata_int(id, 377, Amount) case CSW_SCOUT, CSW_AK47, CSW_G3SG1: set_pdata_int(id, 378, Amount) case CSW_M249: set_pdata_int(id, 379, Amount) case CSW_FAMAS, CSW_M4A1, CSW_AUG, CSW_SG550, CSW_GALI, CSW_SG552: set_pdata_int(id, 380, Amount) case CSW_M3, CSW_XM1014: set_pdata_int(id, 381, Amount) case CSW_USP, CSW_UMP45, CSW_MAC10: set_pdata_int(id, 382, Amount) case CSW_FIVESEVEN, CSW_P90: set_pdata_int(id, 383, Amount) case CSW_DEAGLE: set_pdata_int(id, 384, Amount) case CSW_P228: set_pdata_int(id, 385, Amount) case CSW_GLOCK18, CSW_TMP, CSW_ELITE, CSW_MP5NAVY: set_pdata_int(id, 386, Amount) default: return 0 } } return 1 } public drop_primary_weapons(id) { if(is_user_alive(id)) { new Weapons[32], Num = 0, WeaponID; get_user_weapons(id, Weapons, Num); for(new i = 0; i < Num; i++) { WeaponID = Weapons[i]; if(((1<<WeaponID) & PRIMARY_WEAPONS_BITSUM)) { new WName[32]; get_weaponname(WeaponID, WName, charsmax(WName)); engclient_cmd(id, "drop", WName); } } } } public drop_secondary_weapons(id) { if(is_user_alive(id)) { new Weapons[32], Num = 0, WeaponID; get_user_weapons(id, Weapons, Num); for(new i = 0; i < Num; i++) { WeaponID = Weapons[i]; if(((1<<WeaponID) & SECONDARY_WEAPONS_BITSUM)) { new WName[32]; get_weaponname(WeaponID, WName, charsmax(WName)); engclient_cmd(id, "drop", WName); } } } } public bacon_strip_weapon(index, weapon[]) { if(is_user_alive(index) && equal(weapon, "weapon_", 7)) { new WeaponID = get_weaponid(weapon) if(WeaponID) { new WeaponEnt = fm_find_ent_by_owner(-1, weapon, index) if(WeaponEnt) { if(get_user_weapon(index) == WeaponID) ExecuteHamB(Ham_Weapon_RetireWeapon, WeaponEnt) ExecuteHamB(Ham_RemovePlayerItem, index, WeaponEnt) ExecuteHamB(Ham_Item_Kill, WeaponEnt) set_pev(index, pev_weapons, pev(index, pev_weapons) & ~(1<<WeaponID)) } } } } stock HudMessage(const id, const message[], red = 0, green = 160, blue = 0, Float:x = -1.0, Float:y = 0.65, effects = 2, Float:fxtime = 0.01, Float:holdtime = 3.0, Float:fadeintime = 0.01, Float:fadeouttime = 0.01) { new Players[32], Num = 1, Player; if(id) Players[0] = id; else get_players(Players, Num, "ch"); { for(new i = 0; i < Num; i++) { Player = Players[i] if(is_user_connected(Player)) { new color = (clamp(blue, 0, 255) + (clamp(green, 0, 255) << 8) + (clamp(red, 0, 255) << 16)) message_begin(MSG_ONE_UNRELIABLE, SVC_DIRECTOR, _, Player); write_byte(strlen(message) + 31); write_byte(DRC_CMD_MESSAGE); write_byte(effects); write_long(color); write_long(_:x); write_long(_:y); write_long(_:fadeintime); write_long(_:fadeouttime); write_long(_:holdtime); write_long(_:fxtime); write_string(message); message_end(); } } } } stock ColorChat(const id, const input[], any:...) { new Players[32], Message[191], Num = 1, Player; vformat(Message, 190, input, 3); replace_all(Message, 190, "!g", "^4"); replace_all(Message, 190, "!y", "^1"); replace_all(Message, 190, "!t", "^3"); if(id) Players[0] = id; else get_players(Players, Num, "ch"); { for(new i = 0; i < Num; i++) { Player = Players[i] if(is_user_connected(Player)) { message_begin(MSG_ONE_UNRELIABLE, MSGID_SayText, _, Player); write_byte(Player); write_string(Message); 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 } */
Daca intri in .inl-ul de la arme, vezi acolo la ACCES, 0 este pentru totii jucatorii, 1 pentru VIP si 2 pentru ADMIN.
Acum o intrebare, are rost sa pun un update din acest an?
Armele find refacute, modelele modificate, multe chestii noi, sunt interesat daca il foloseste cineva, sa nu pierd timp degeaba, lasati reply sau PM.
- MzQ*
- Membru eXtream
- Posts: 3473
- Joined: 07 Jul 2014, 18:30
- Detinator Steam: Da
- Fond eXtream: 0
- Has thanked: 10 times
- Been thanked: 8 times
- Contact:
sDs|Aragon* wrote:Hmm, nu imi amintesc daca versiunea asta are si cutite, meniul ar trebui sa apara automat dupa ce selectezi un pistolalexx13 wrote:ce tre sa fac sa mearga cutitele,ca nu imi apare cutitele la ct si la t ?
Da, o sa fac asta, se poate baga si manual de catre voi destul de usor, folositi un singur native, RegisterPrimary..stephano141 wrote:poti baga si un meniu de arme clasice ? :D
Se poate modifica sa fie cu un sistem de genu.> SKanDaL < wrote:Sunt free toate ? Nu le poti pune pe credite :D ?
Multumesc50Cent # HackeR wrote:Hmm, gg pentru metoda #define
mamamea123 wrote:mi-l poate modifica si mie cineva ? vreau sa ramana doar , meniu de vip si meniu normal , si in meniu de vip sa fie oicw , arma scorpion , DUALMP7A1 ala de e in meniu normal si atat , si in meniu normal sa scoateti DUALMP7A1 cum am zis si sa-l bagati in meniu de vip ! , multumesc
- | Afiseaza codul
//#define POWERS #define MAX_WEAPONS 100 #define EV_INT_WeaponKey EV_INT_impulse #include <amxmodx> #include <amxmisc> #include <cstrike> #include <engine> #include <fakemeta> #include <fakemeta_util> #include <hamsandwich> #include "furien40/furien40.inc" #if defined POWERS #include "furien40/furien40_powers.inc" #endif #define PLUGIN "Weapons Menu" #define VERSION "4.0" #define AUTHOR "Aragon*" //------| Settings |------// #define VIP_LEVEL ADMIN_LEVEL_H #define ADMIN_LEVEL ADMIN_LEVEL_G //--| Primary Weapons |--// #define OICW //#define THANATOS11 //#define THANATOS7 //#define AEOLIS #define JANUS11 //#define JANUS7 #define JANUS3 //#define SPEARGUN //#define PETROLBOOMER //#define SALAMANDER #define AT4 #define ETHEREAL #define RAILCANNON #define PLASMAGUN #define CROSSBOW //#define COMPOUNDBOW #define HK416 //#define AK47KNIFE //#define F2000 #define TAR21 //#define K1ASES #define DUALMP7A1 //#define QUADBARREL #define M1887 #define THOMPSON #define M134 //#define SKULL5 //#define SL8 //#define AW50 //--| Secondary Weapons |--// //#define DRAGONCANNON //#define JANUS1 #define M79 #define DUALDEAGLE #define INFINITY #define SKULL1 #define ANACONDA //--| Knifes |--// //#define CLAWS //#define SUPERCLAWS #define DUALKATANA //#define BALROG9 //#define JANUS9 #define RUYISTICK #define DRAGONSWORD //#define PAPIN //--| Grenades |--// //#define SNARK //#define FIRENADE //#define FROSTNADE //#define SFNADE //--| C4 |--// //#define LASERMINE //------| End Settings |------// enum WeaponsList { WPN_PRIMARY = 0, WPN_SECONDARY, WPN_KNIFE, WPN_GRENADE, WPN_C4 } enum WeaponData { WPN_MENUNAME = 0, WPN_TEAM, WPN_ACCES, WPN_LEVEL, WPN_NAME, WPN_ID, WPN_LIST, WPN_CLIP }; enum WeaponTeam { WPN_TEAM_ALL = 0, WPN_TEAM_T, WPN_TEAM_CT }; enum WeaponAcces { WPN_ACCES_ALL = 0, WPN_ACCES_VIP, WPN_ACCES_ADMIN }; new Menu, bool:ShowMenu[33], Weapons[WeaponsList] = 1, HasChoose[33][WeaponsList][4], WeaponKey[33][WeaponsList][4], PrimaryWeapon[MAX_WEAPONS+1][WeaponData][33], SecondaryWeapon[MAX_WEAPONS+1][WeaponData][33], Knife[MAX_WEAPONS+1][WeaponData][33], Grenade[MAX_WEAPONS+1][WeaponData][33], C4[MAX_WEAPONS+1][WeaponData][33], MSGID_WeaponList, MSGID_DeathMsg, MSGID_ScoreInfo, MSGID_SayText, MSGID_CurWeapon, MSGID_Crosshair/*, MSGID_ScreenFade, MSGID_ScreenShake*/; //------| Weapons Menu |------// #define PRIMARY_WEAPONS_BITSUM (1<<CSW_SCOUT | 1<<CSW_XM1014 | 1<<CSW_MAC10 | 1<<CSW_AUG | 1<<CSW_UMP45 | 1<<CSW_SG550 | 1<<CSW_GALIL | 1<<CSW_FAMAS | 1<<CSW_AWP | 1<<CSW_MP5NAVY | 1<<CSW_M249 | 1<<CSW_M3 | 1<<CSW_M4A1 | 1<<CSW_TMP | 1<<CSW_G3SG1 | 1<<CSW_SG552 | 1<<CSW_AK47 | 1<<CSW_P90) #define SECONDARY_WEAPONS_BITSUM (1<<CSW_GLOCK18 | 1<<CSW_USP | 1<<CSW_P228 | 1<<CSW_DEAGLE | 1<<CSW_FIVESEVEN | 1<<CSW_ELITE) #define AMMOWP_NULL (1<<0 | 1<<CSW_KNIFE | 1<<CSW_FLASHBANG | 1<<CSW_HEGRENADE | 1<<CSW_SMOKEGRENADE | 1<<CSW_C4) new Shell, BloodSpray, BloodDrop, WeaponsAmmo[][] = { { -1, -1 }, { 13, 52 }, { -1, -1 }, { 10, 90 }, { -1, -1 }, { 7, 32 }, { -1, -1 }, { 30, 100 }, { 30, 90 }, { -1, -1 }, { 30, 120 }, { 20, 100 }, { 25, 100 }, { 30, 90 }, { 35, 90 }, { 25, 90 }, { 12, 100 }, { 20, 120 }, { 10, 30 }, { 30, 120 }, { 100, 200 }, { 8, 32 }, { 30, 90 }, { 30, 120 }, { 20, 90 }, { -1, -1 }, { 7, 35 }, { 30, 90 }, { 30, 90 }, { -1, -1 }, { 50, 100 } }, Prefix[] = "[INFO]", Contact[] = "Mihai.Parkour10"; #include "furien40/weapons/Config.h" public plugin_init() { register_plugin(PLUGIN, VERSION, AUTHOR) MSGID_WeaponList = get_user_msgid("WeaponList") MSGID_DeathMsg = get_user_msgid("DeathMsg") MSGID_ScoreInfo = get_user_msgid("ScoreInfo") MSGID_SayText = get_user_msgid("SayText") MSGID_CurWeapon = get_user_msgid("CurWeapon") MSGID_Crosshair = get_user_msgid("Crosshair") /*MSGID_ScreenFade = get_user_msgid("ScreenFade") MSGID_ScreenShake = get_user_msgid("ScreenShake");*/ Shell = engfunc(EngFunc_PrecacheModel, "models/rshell.mdl"); register_clcmd("guns", "CMD_Guns"); register_clcmd("say guns", "CMD_Guns"); register_clcmd("say /guns", "CMD_Guns"); register_clcmd("say_team guns", "CMD_Guns"); register_clcmd("say_team /guns", "CMD_Guns"); register_event("CurWeapon", "EVENT_CurWeapon", "be", "1=1") RegisterHam(Ham_Spawn, "player", "HAM_Spawn_Post", 1); RegisterHam(Ham_Touch, "weaponbox", "HAM_Touch") RegisterHam(Ham_Touch, "armoury_entity", "HAM_Touch") RegisterHam(Ham_Touch, "weapon_shield", "HAM_Touch") weapons_init() } public plugin_precache() { BloodSpray = precache_model("sprites/bloodspray.spr"); BloodDrop = precache_model("sprites/blood.spr"); weapons_precache() } public plugin_natives() { register_native("RegisterPrimary", "native_register_primary", 1) register_native("RegisterSecondary", "native_register_secondary", 1) register_native("RegisterKnife", "native_register_knife", 1) register_native("RegisterGrenade", "native_register_grenade", 1) register_native("RegisterC4", "native_register_c4", 1) register_native("OpenWeaponsMenu", "CMD_Guns", 1) register_native("get_weapon", "get_weapon", 1) register_native("set_weapon", "set_weapon", 1) register_native("get_weapon_data", "get_weapon_data", 1) register_native("set_weapon_data", "set_weapon_data", 1) weapons_natives() } public client_putinserver(id) { ShowMenu[id] = true } public grenade_throw(id, grenade, GrenadeID) { if(is_valid_ent(grenade) && is_user_alive(id)) { for(new i = 1; i < Weapons[WPN_GRENADE]; i++) { if(GrenadeID == str_to_num(Grenade[WPN_ID]) && get_user_weapon(id) == GrenadeID && get_weapon(id, Grenade[WPN_NAME], str_to_num(Grenade[WPN_ID]), i)) entity_set_int(grenade, EV_INT_impulse, i); } } return FMRES_IGNORED; } public EVENT_CurWeapon(id) { if(is_user_connected(id) && is_user_alive(id)) { new Weapon = read_data(2) if(!(AMMOWP_NULL &(1<<Weapon))) { if(fm_get_user_bpammo(id, Weapon) < WeaponsAmmo[Weapon][1]) fm_set_user_bpammo(id, Weapon, WeaponsAmmo[Weapon][1]) } } return PLUGIN_CONTINUE } public HAM_Spawn_Post(id) { if(is_user_alive(id)) { HasChoose[id][WPN_PRIMARY][get_user_team(id)] = false HasChoose[id][WPN_SECONDARY][get_user_team(id)] = false HasChoose[id][WPN_KNIFE][get_user_team(id)] = false HasChoose[id][WPN_GRENADE][get_user_team(id)] = false HasChoose[id][WPN_C4][get_user_team(id)] = false #if defined FIRENADE set_weapon(id, WPN_GRENADE, firenade_id()) #endif #if defined FROSTNADE set_weapon(id, WPN_GRENADE, frostnade_id()) #endif #if defined SFNADE set_weapon(id, WPN_GRENADE, sfnade_id()) #endif if(get_user_team(id) == TEAM_ANTIFURIEN) { if(ShowMenu[id]) EquipmentMenu(id) else if(!ShowMenu[id]) GiveLastWeapons(id) } } return HAM_IGNORED; } public HAM_Touch(ent, id) { if(is_user_alive(id)) { if(get_user_team(id) == TEAM_FURIEN && entity_get_int(ent, EV_INT_impulse) == 2) return HAM_SUPERCEDE if(get_user_team(id) == TEAM_ANTIFURIEN && entity_get_int(ent, EV_INT_impulse) == 1) return HAM_SUPERCEDE } return HAM_IGNORED } public CMD_Guns(id) { if(!ShowMenu[id]) { ShowMenu[id] = true ColorChat(id, "!t%s!gMeniul de!t echipamente!g a fost!t re-activat!g.", Prefix); } if(!HasChoose[id][WPN_PRIMARY][2] && !HasChoose[id][WPN_SECONDARY][2] && !HasChoose[id][WPN_KNIFE][2]) EquipmentMenu(id) else if(!HasChoose[id][WPN_PRIMARY][2]) PrimaryWeaponMenu(id, 0) else if(!HasChoose[id][WPN_SECONDARY][2]) SecondaryWeaponMenu(id) else if(!HasChoose[id][WPN_KNIFE][2]) KnifesMenu(id) return PLUGIN_CONTINUE; } public EquipmentMenu(id) { if(is_user_alive(id) && get_user_team(id) == TEAM_ANTIFURIEN) { menu_cancel(id) Menu = menu_create("\rEchipament", "EquipmentCmd"); menu_additem(Menu, "\wArme noi", "1", 0); if(WeaponKey[id][WPN_PRIMARY][2] && WeaponKey[id][WPN_SECONDARY][2] && WeaponKey[id][WPN_KNIFE][2]) { menu_additem(Menu, "\wArmele anterioare", "2", 0); menu_additem(Menu, "\wNu arata meniul din nou^n", "3", 0); } else { menu_additem(Menu, "\dArmele anterioare", "2", 0); menu_additem(Menu, "\dNu arata meniul din nou^n", "3", 0); } menu_setprop(Menu, MPROP_EXIT, MEXIT_NEVER) menu_display(id, Menu, 0); } } public EquipmentCmd(id, menu, item) { if(item == MENU_EXIT || !is_user_alive(id) || get_user_team(id) != TEAM_ANTIFURIEN) { menu_destroy(menu); return PLUGIN_HANDLED; } new Data[6], Name[64], Access, CallBack; menu_item_getinfo(menu, item, Access, Data, 5, Name, 63, CallBack); menu_destroy(menu); switch(str_to_num(Data)) { case 1: { if(!HasChoose[id][WPN_PRIMARY][2]) PrimaryWeaponMenu(id, 0) else if(!HasChoose[id][WPN_SECONDARY][2]) SecondaryWeaponMenu(id) else if(!HasChoose[id][WPN_KNIFE][2]) KnifesMenu(id) } case 2: { if(WeaponKey[id][WPN_PRIMARY][2] && WeaponKey[id][WPN_SECONDARY][2] && WeaponKey[id][WPN_KNIFE][2]) GiveLastWeapons(id) else EquipmentMenu(id) } case 3: { if(WeaponKey[id][WPN_PRIMARY][2] && WeaponKey[id][WPN_SECONDARY][2] && WeaponKey[id][WPN_KNIFE][2]) { ShowMenu[id] = false GiveLastWeapons(id) } else EquipmentMenu(id) } } return PLUGIN_HANDLED; } public PrimaryWeaponMenu(id, VIP) { if(is_user_alive(id) && get_user_team(id) == TEAM_ANTIFURIEN && !HasChoose[id][WPN_PRIMARY][2]) { menu_cancel(id); Menu = menu_create("\rPrimar", "PrimaryCmd"); if(VIP == 0) { new UltimateWeapon = 0, VIPWeapon = 0 for(new i = 1; i < Weapons[WPN_PRIMARY]; i++) { if(WeaponTeam:str_to_num(PrimaryWeapon[WPN_TEAM]) != WPN_TEAM_T && WeaponAcces:str_to_num(PrimaryWeapon[WPN_ACCES]) == WPN_ACCES_ADMIN) UltimateWeapon++ if(WeaponTeam:str_to_num(PrimaryWeapon[WPN_TEAM]) != WPN_TEAM_T && WeaponAcces:str_to_num(PrimaryWeapon[WPN_ACCES]) == WPN_ACCES_VIP) VIPWeapon++ } if(UltimateWeapon) { if(get_user_flags(id) & ADMIN_LEVEL) menu_additem(Menu, "\rUltimate Weapons", "-2", 0); else menu_additem(Menu, "\dUltimate Weapons \w- \rOnly ADMIN", "-2", 0); } if(VIPWeapon) { if(get_user_flags(id) & VIP_LEVEL) menu_additem(Menu, "\rVIP Weapons", "-1", 0); else menu_additem(Menu, "\dVIP Weapons \w- \rOnly VIP", "-1", 0); } if(UltimateWeapon || VIPWeapon) menu_addblank(Menu, 0); menu_setprop(Menu, MPROP_EXIT, MEXIT_NEVER) } else { menu_setprop(Menu, MPROP_EXITNAME, "Meniu Principal") menu_setprop(Menu, MPROP_EXIT, MEXIT_ALL) } #if defined POWERS for(new i = 0; i < MAX_LEVEL; i++) { for(new k = 1; k < Weapons[WPN_PRIMARY]; k++) { if(str_to_num(PrimaryWeapon[k][WPN_LEVEL]) == i && WeaponTeam:str_to_num(PrimaryWeapon[k][WPN_TEAM]) != WPN_TEAM_T && str_to_num(PrimaryWeapon[k][WPN_ACCES]) == VIP) AddWeapon(id, Menu, PrimaryWeapon[k][WPN_MENUNAME], PrimaryWeapon[k][WPN_ACCES], PrimaryWeapon[k][WPN_LEVEL], k); } } #else for(new i = 1; i < Weapons[WPN_PRIMARY]; i++) { if(WeaponTeam:str_to_num(PrimaryWeapon[WPN_TEAM]) != WPN_TEAM_T && str_to_num(PrimaryWeapon[WPN_ACCES]) == VIP) AddWeapon(id, Menu, PrimaryWeapon[WPN_MENUNAME], PrimaryWeapon[i][WPN_ACCES], PrimaryWeapon[i][WPN_LEVEL], i); } #endif menu_display(id, Menu, 0); } } public PrimaryCmd(id, menu, item) { if(!is_user_alive(id) || get_user_team(id) != TEAM_ANTIFURIEN || HasChoose[id][WPN_PRIMARY][2]) { menu_destroy(menu); return PLUGIN_HANDLED; } else if(item == MENU_EXIT) { menu_destroy(menu); PrimaryWeaponMenu(id, 0) return PLUGIN_HANDLED; } new Data[6], Name[64], Access, CallBack; menu_item_getinfo(menu, item, Access, Data, 5, Name, 63, CallBack); menu_destroy(menu); if(equal(Data, "-2")) { if(get_user_flags(id) & ADMIN_LEVEL) PrimaryWeaponMenu(id, 2) else { if(!HasChoose[id][WPN_PRIMARY][2]) PrimaryWeaponMenu(id, 0) else if(!HasChoose[id][WPN_SECONDARY][2]) SecondaryWeaponMenu(id) else if(!HasChoose[id][WPN_KNIFE][2]) KnifesMenu(id) ColorChat(id, "!t%s!gPentru a cumpara!t Admin!g adauga ID:!t %s", Prefix, Contact); } } else if(equal(Data, "-1")) { if(get_user_flags(id) & VIP_LEVEL) PrimaryWeaponMenu(id, 1) else { if(!HasChoose[id][WPN_PRIMARY][2]) PrimaryWeaponMenu(id, 0) else if(!HasChoose[id][WPN_SECONDARY][2]) SecondaryWeaponMenu(id) else if(!HasChoose[id][WPN_KNIFE][2]) KnifesMenu(id) ColorChat(id, "!t%s!gPentru a cumpara!t VIP!g adauga ID:!t %s", Prefix, Contact); } } else { GivePrimary(id, str_to_num(Data)) if(!HasChoose[id][WPN_PRIMARY][2]) PrimaryWeaponMenu(id, 0) else SecondaryWeaponMenu(id) } return PLUGIN_HANDLED; } public SecondaryWeaponMenu(id) { if(is_user_alive(id) && get_user_team(id) == TEAM_ANTIFURIEN && !HasChoose[id][WPN_SECONDARY][2]) { menu_cancel(id); Menu = menu_create("\rSecundar", "SecondaryCmd"); #if defined POWERS for(new i = 0; i < MAX_LEVEL; i++) { for(new k = 1; k < Weapons[WPN_SECONDARY]; k++) { if(WeaponTeam:str_to_num(SecondaryWeapon[k][WPN_TEAM]) != WPN_TEAM_T && str_to_num(SecondaryWeapon[k][WPN_LEVEL]) == i) AddWeapon(id, Menu, SecondaryWeapon[k][WPN_MENUNAME], SecondaryWeapon[k][WPN_ACCES], SecondaryWeapon[k][WPN_LEVEL], k); } } #else for(new i = 1; i < Weapons[WPN_SECONDARY]; i++) { if(WeaponTeam:str_to_num(SecondaryWeapon[i][WPN_TEAM]) != WPN_TEAM_T) AddWeapon(id, Menu, SecondaryWeapon[i][WPN_MENUNAME], SecondaryWeapon[i][WPN_ACCES], SecondaryWeapon[i][WPN_LEVEL], i); } #endif menu_setprop(Menu, MPROP_EXIT, MEXIT_NEVER) menu_display(id, Menu, 0); } return PLUGIN_CONTINUE; } public SecondaryCmd(id, menu, item) { if(item == MENU_EXIT || !is_user_alive(id) || get_user_team(id) != TEAM_ANTIFURIEN || HasChoose[id][WPN_SECONDARY][2]) { menu_destroy(menu); return PLUGIN_HANDLED; } new Data[6], Name[64], Access, CallBack; menu_item_getinfo(menu, item, Access, Data, 5, Name, 63, CallBack); menu_destroy(menu); GiveSecondary(id, str_to_num(Data)) if(!HasChoose[id][WPN_SECONDARY][2]) SecondaryWeaponMenu(id) else KnifesMenu(id) return PLUGIN_HANDLED; } public KnifesMenu(id) { if(is_user_alive(id) && get_user_team(id) == TEAM_ANTIFURIEN && !HasChoose[id][WPN_KNIFE][2]) { menu_cancel(id); Menu = menu_create("\rCutit", "KnifesCmd"); #if defined POWERS for(new i = 0; i < MAX_LEVEL; i++) { for(new k = 1; k < Weapons[WPN_KNIFE]; k++) { if(WeaponTeam:str_to_num(Knife[k][WPN_TEAM]) != WPN_TEAM_T && str_to_num(Knife[k][WPN_LEVEL]) == i) AddWeapon(id, Menu, Knife[k][WPN_MENUNAME], Knife[k][WPN_ACCES], Knife[k][WPN_LEVEL], k); } } #else for(new i = 1; i < Weapons[WPN_KNIFE]; i++) { if(WeaponTeam:str_to_num(Knife[i][WPN_TEAM]) != WPN_TEAM_T) AddWeapon(id, Menu, Knife[i][WPN_MENUNAME], Knife[i][WPN_ACCES], Knife[i][WPN_LEVEL], i); } #endif menu_setprop(Menu, MPROP_EXIT, MEXIT_NEVER) menu_display(id, Menu, 0); } return PLUGIN_CONTINUE; } public KnifesCmd(id, menu, item) { if(item == MENU_EXIT || !is_user_alive(id) || get_user_team(id) != TEAM_ANTIFURIEN || HasChoose[id][WPN_KNIFE][2]) { menu_destroy(menu); return PLUGIN_HANDLED; } new Data[6], Name[64], Access, CallBack; menu_item_getinfo(menu, item, Access, Data,5, Name, 63, CallBack); menu_destroy(menu); GiveKnife(id, str_to_num(Data)) if(!HasChoose[id][WPN_KNIFE][2]) KnifesMenu(id) return PLUGIN_HANDLED; } public GiveLastWeapons(id) { if(!HasChoose[id][WPN_PRIMARY][2] && WeaponKey[id][WPN_PRIMARY][2] != -1) GivePrimary(id, WeaponKey[id][WPN_PRIMARY][2]) if(!HasChoose[id][WPN_SECONDARY][2] && WeaponKey[id][WPN_SECONDARY][2] != -1) GiveSecondary(id, WeaponKey[id][WPN_SECONDARY][2]) if(!HasChoose[id][WPN_KNIFE][2] && WeaponKey[id][WPN_KNIFE][2] != -1) GiveKnife(id, WeaponKey[id][WPN_KNIFE][2]) if(!HasChoose[id][WPN_PRIMARY][2]) { WeaponKey[id][WPN_PRIMARY][2] = -1 PrimaryWeaponMenu(id, 0) } else if(!HasChoose[id][WPN_SECONDARY][2]) { WeaponKey[id][WPN_SECONDARY][2] = -1 SecondaryWeaponMenu(id) } else if(!HasChoose[id][WPN_KNIFE][2]) { WeaponKey[id][WPN_KNIFE][2] = -1 KnifesMenu(id) } } public native_register_primary(MenuName[], WeaponTeam:Team, WeaponAcces:Acces, Level[], WeaponName[], WeaponID, Weapon_List[], WeaponClip[]) { param_convert(1) param_convert(4) param_convert(5) param_convert(7) param_convert(8) return RegisterPrimary(MenuName, Team, Acces, Level, WeaponName, WeaponID, Weapon_List, WeaponClip) } public native_register_secondary(MenuName[], WeaponTeam:Team, WeaponAcces:Acces, Level[], WeaponName[], WeaponID, Weapon_List[], WeaponClip[]) { param_convert(1) param_convert(4) param_convert(5) param_convert(7) param_convert(8) return RegisterSecondary(MenuName, Team, Acces, Level, WeaponName, WeaponID, Weapon_List, WeaponClip) } public native_register_knife(MenuName[], WeaponTeam:Team, WeaponAcces:Acces, Level[], Weapon_List[]) { param_convert(1) param_convert(4) param_convert(5) return RegisterKnife(MenuName, Team, Acces, Level, Weapon_List) } public native_register_grenade(MenuName[], WeaponTeam:Team, WeaponAcces:Acces, Level[], WeaponName[], WeaponID, Weapon_List[]) { param_convert(1) param_convert(4) param_convert(5) param_convert(7) return RegisterGrenade(MenuName, Team, Acces, Level, WeaponName, WeaponID, Weapon_List) } public native_register_c4(MenuName[], WeaponTeam:Team, WeaponAcces:Acces, Level[], Weapon_List[]) { param_convert(1) param_convert(4) param_convert(5) return RegisterC4(MenuName, Team, Acces, Level, Weapon_List) } public get_weapon(id, weapon_[], CSW_, WeaponID) { if(is_user_connected(id)) { new Weapon = find_ent_by_owner(-1, weapon_, id); if(is_user_alive(id) && user_has_weapon(id, CSW_) && pev_valid(Weapon)) return entity_get_int(Weapon, EV_INT_impulse) == WeaponID ? true : false } return false } public set_weapon(id, WeaponsList:WeaponSet, WeaponID) { switch(WeaponSet) { case WPN_PRIMARY: return GivePrimary(id, WeaponID) case WPN_SECONDARY: return GiveSecondary(id, WeaponID) case WPN_KNIFE: return GiveKnife(id, WeaponID) case WPN_GRENADE: return GiveGrenade(id, WeaponID) case WPN_C4: return GiveC4(id, WeaponID) } return false } public get_weapon_data(WeaponsList:WeaponSet, WeaponID, WeaponData:Data, Buffer[], len) { param_convert(4) if(WeaponID > -1 && WeaponID < Weapons[WeaponSet]) { switch(WeaponSet) { case WPN_PRIMARY: format(Buffer, len, PrimaryWeapon[WeaponID][Data]) case WPN_SECONDARY: format(Buffer, len, SecondaryWeapon[WeaponID][Data]) case WPN_KNIFE: format(Buffer, len, Knife[WeaponID][Data]) case WPN_GRENADE: format(Buffer, len, Grenade[WeaponID][Data]) case WPN_C4: format(Buffer, len, C4[WeaponID][Data]) } } } public set_weapon_data(WeaponsList:WeaponSet, WeaponID, WeaponData:Data, Buffer[]) { param_convert(4) if(WeaponID > -1 && WeaponID < Weapons[WeaponSet]) { switch(WeaponSet) { case WPN_PRIMARY: format(PrimaryWeapon[WeaponID][Data], 32, Buffer) case WPN_SECONDARY: format(PrimaryWeapon[WeaponID][Data], 32, Buffer) case WPN_KNIFE: format(PrimaryWeapon[WeaponID][Data], 32, Buffer) case WPN_GRENADE: format(Grenade[WeaponID][Data], 32, Buffer) case WPN_C4: format(C4[WeaponID][Data], 32, Buffer) } } } //////////////////////////////////////////////////////////////////////////////////////////////////////////// // Stock's | //========================================================================================================== public AddWeapon(id, Menu, Name[], Acces[], Level[], WeaponID) { new Weapon[64], Num[32]; if(WeaponAcces:str_to_num(Acces) == WPN_ACCES_VIP && !(get_user_flags(id) & VIP_LEVEL)) formatex(Weapon, sizeof(Weapon)-1, "\d%s \w- \rOnly VIP", Name); else if(WeaponAcces:str_to_num(Acces) == WPN_ACCES_ADMIN && !(get_user_flags(id) & ADMIN_LEVEL)) formatex(Weapon, sizeof(Weapon)-1, "\d%s \w- \rOnly ADMIN", Name); #if defined POWERS else if(get_user_level(id) < (str_to_num(Level) > MAX_LEVEL ? MAX_LEVEL : str_to_num(Level))) formatex(Weapon, sizeof(Weapon)-1, "\d%s \w- \rLocked \r[\yLevel: \r%d]", Name, (str_to_num(Level) > MAX_LEVEL) ? MAX_LEVEL : str_to_num(Level)); #endif else formatex(Weapon, sizeof(Weapon)-1, "\w%s", Name); formatex(Num, sizeof(Num)-1, "%d", WeaponID); menu_additem(Menu, Weapon, Num, 0); return } public CanAcces(id, Team[], Acces[], Level[]) { if(WeaponAcces:str_to_num(Acces) == WPN_ACCES_VIP && !(get_user_flags(id) & VIP_LEVEL) || WeaponAcces:str_to_num(Acces) == WPN_ACCES_ADMIN && !(get_user_flags(id) & ADMIN_LEVEL)) return false; if(WeaponTeam:str_to_num(Team) == WPN_TEAM_T && WeaponTeam:get_user_team(id) != WPN_TEAM_T || WeaponTeam:str_to_num(Team) == WPN_TEAM_CT && WeaponTeam:get_user_team(id) != WPN_TEAM_CT) return false; #if defined POWERS else if(get_user_level(id) < (str_to_num(Level) > MAX_LEVEL ? MAX_LEVEL : str_to_num(Level))) return false; #endif return true; } stock RegisterPrimary(MenuName[], WeaponTeam:Team, WeaponAcces:Acces, Level[] = "0", WeaponName[], WeaponID, Weapon_List[] = "None", WeaponClip[] = "0") { if(Weapons[WPN_PRIMARY] < 1) Weapons[WPN_PRIMARY] = 1 format(PrimaryWeapon[Weapons[WPN_PRIMARY]][WPN_MENUNAME], 32, MenuName) if(Team > WeaponTeam || Team < WPN_TEAM_ALL) format(PrimaryWeapon[Weapons[WPN_PRIMARY]][WPN_TEAM], 32, "%d", WPN_TEAM_ALL) else format(PrimaryWeapon[Weapons[WPN_PRIMARY]][WPN_TEAM], 32, "%d", Team) if(Acces > WeaponAcces || Acces < WPN_ACCES_ALL) format(PrimaryWeapon[Weapons[WPN_PRIMARY]][WPN_ACCES], 32, "%d", WPN_ACCES_ALL) else format(PrimaryWeapon[Weapons[WPN_PRIMARY]][WPN_ACCES], 32, "%d", Acces) format(PrimaryWeapon[Weapons[WPN_PRIMARY]][WPN_LEVEL], 32, Level) format(PrimaryWeapon[Weapons[WPN_PRIMARY]][WPN_NAME], 32, WeaponName) format(PrimaryWeapon[Weapons[WPN_PRIMARY]][WPN_ID], 32, "%d", WeaponID) format(PrimaryWeapon[Weapons[WPN_PRIMARY]][WPN_LIST], 32, Weapon_List) format(PrimaryWeapon[Weapons[WPN_PRIMARY]][WPN_CLIP], 32, WeaponClip) Weapons[WPN_PRIMARY]++ return Weapons[WPN_PRIMARY] - 1 } stock RegisterSecondary(MenuName[], WeaponTeam:Team, WeaponAcces:Acces, Level[] = "0", WeaponName[], WeaponID, Weapon_List[] = "None", WeaponClip[] = "0") { if(Weapons[WPN_SECONDARY] < 1) Weapons[WPN_SECONDARY] = 1 format(SecondaryWeapon[Weapons[WPN_SECONDARY]][WPN_MENUNAME], 32, MenuName) if(Team > WeaponTeam || Team < WPN_TEAM_ALL) format(SecondaryWeapon[Weapons[WPN_SECONDARY]][WPN_TEAM], 32, "%d", WPN_TEAM_ALL) else format(SecondaryWeapon[Weapons[WPN_SECONDARY]][WPN_TEAM], 32, "%d", Team) if(Acces > WeaponAcces || Acces < WPN_ACCES_ALL) format(SecondaryWeapon[Weapons[WPN_SECONDARY]][WPN_ACCES], 32, "%d", WPN_ACCES_ALL) else format(SecondaryWeapon[Weapons[WPN_SECONDARY]][WPN_ACCES], 32, "%d", Acces) format(SecondaryWeapon[Weapons[WPN_SECONDARY]][WPN_LEVEL], 32, Level) format(SecondaryWeapon[Weapons[WPN_SECONDARY]][WPN_NAME], 32, WeaponName) format(SecondaryWeapon[Weapons[WPN_SECONDARY]][WPN_ID], 32, "%d", WeaponID) format(SecondaryWeapon[Weapons[WPN_SECONDARY]][WPN_LIST], 32, Weapon_List) format(SecondaryWeapon[Weapons[WPN_SECONDARY]][WPN_CLIP], 32, WeaponClip) Weapons[WPN_SECONDARY]++ return Weapons[WPN_SECONDARY] - 1 } stock RegisterKnife(MenuName[], WeaponTeam:Team, WeaponAcces:Acces, Level[] = "0", Weapon_List[] = "None") { if(Weapons[WPN_KNIFE] < 1) Weapons[WPN_KNIFE] = 1 format(Knife[Weapons[WPN_KNIFE]][WPN_MENUNAME], 32, MenuName) if(Team > WeaponTeam || Team < WPN_TEAM_ALL) format(Knife[Weapons[WPN_KNIFE]][WPN_TEAM], 32, "%d", WPN_TEAM_ALL) else format(Knife[Weapons[WPN_KNIFE]][WPN_TEAM], 32, "%d", Team) if(Acces > WeaponAcces || Acces < WPN_ACCES_ALL) format(Knife[Weapons[WPN_KNIFE]][WPN_ACCES], 32, "%d", WPN_ACCES_ALL) else format(Knife[Weapons[WPN_KNIFE]][WPN_ACCES], 32, "%d", Acces) format(Knife[Weapons[WPN_KNIFE]][WPN_LEVEL], 32, Level) format(Knife[Weapons[WPN_KNIFE]][WPN_LIST], 32, Weapon_List) Weapons[WPN_KNIFE]++ return Weapons[WPN_KNIFE] - 1 } stock RegisterGrenade(MenuName[], WeaponTeam:Team, WeaponAcces:Acces, Level[] = "0", WeaponName[], WeaponID, Weapon_List[] = "None") { if(Weapons[WPN_GRENADE] < 1) Weapons[WPN_GRENADE] = 1 format(Grenade[Weapons[WPN_GRENADE]][WPN_MENUNAME], 32, MenuName) if(Team > WeaponTeam || Team < WPN_TEAM_ALL) format(Grenade[Weapons[WPN_GRENADE]][WPN_TEAM], 32, "%d", WPN_TEAM_ALL) else format(Grenade[Weapons[WPN_GRENADE]][WPN_TEAM], 32, "%d", Team) if(Acces > WeaponAcces || Acces < WPN_ACCES_ALL) format(Grenade[Weapons[WPN_GRENADE]][WPN_ACCES], 32, "%d", WPN_ACCES_ALL) else format(Grenade[Weapons[WPN_GRENADE]][WPN_ACCES], 32, "%d", Acces) format(Grenade[Weapons[WPN_GRENADE]][WPN_LEVEL], 32, Level) format(Grenade[Weapons[WPN_GRENADE]][WPN_NAME], 32, WeaponName) format(Grenade[Weapons[WPN_GRENADE]][WPN_ID], 32, "%d", WeaponID) format(Grenade[Weapons[WPN_GRENADE]][WPN_LIST], 32, Weapon_List) Weapons[WPN_GRENADE]++ return Weapons[WPN_GRENADE] - 1 } stock RegisterC4(MenuName[], WeaponTeam:Team, WeaponAcces:Acces, Level[] = "0", Weapon_List[] = "None") { if(Weapons[WPN_C4] < 1) Weapons[WPN_C4] = 1 format(C4[Weapons[WPN_C4]][WPN_MENUNAME], 32, MenuName) if(Team > WeaponTeam || Team < WPN_TEAM_ALL) format(C4[Weapons[WPN_C4]][WPN_TEAM], 32, "%d", WPN_TEAM_ALL) else format(C4[Weapons[WPN_C4]][WPN_TEAM], 32, "%d", Team) if(Acces > WeaponAcces || Acces < WPN_ACCES_ALL) format(C4[Weapons[WPN_C4]][WPN_ACCES], 32, "%d", WPN_ACCES_ALL) else format(C4[Weapons[WPN_C4]][WPN_ACCES], 32, "%d", Acces) format(C4[Weapons[WPN_C4]][WPN_LEVEL], 32, Level) format(C4[Weapons[WPN_C4]][WPN_LIST], 32, Weapon_List) Weapons[WPN_C4]++ return Weapons[WPN_C4] - 1 } public GivePrimary(id, WeaponID) { if(is_user_alive(id)) { if(WeaponID > 0 && WeaponID < Weapons[WPN_PRIMARY]) { if(CanAcces(id, PrimaryWeapon[WeaponID][WPN_TEAM], PrimaryWeapon[WeaponID][WPN_ACCES], PrimaryWeapon[WeaponID][WPN_LEVEL])) { new Weapon, Impulse = entity_get_int(id, EV_INT_impulse) HasChoose[id][WPN_PRIMARY][get_user_team(id)] = true WeaponKey[id][WPN_PRIMARY][get_user_team(id)] = WeaponID /*if(get_user_team(id) == TEAM_FURIEN) special_primary(id, true)*/ drop_primary_weapons(id); if(equal(PrimaryWeapon[WeaponID][WPN_LIST], "None")) WeaponList(id, str_to_num(PrimaryWeapon[WeaponID][WPN_ID]), PrimaryWeapon[WeaponID][WPN_NAME], 0) else WeaponList(id, str_to_num(PrimaryWeapon[WeaponID][WPN_ID]), PrimaryWeapon[WeaponID][WPN_LIST], 0) entity_set_int(id, EV_INT_impulse, WeaponID); Weapon = fm_give_item(id, PrimaryWeapon[WeaponID][WPN_NAME]); entity_set_int(Weapon, EV_INT_impulse, WeaponID) entity_set_int(id, EV_INT_impulse, Impulse); if(!equal(PrimaryWeapon[WeaponID][WPN_CLIP], "0")) cs_set_weapon_ammo(Weapon, str_to_num(PrimaryWeapon[WeaponID][WPN_CLIP])) return true } } } return false } public GiveSecondary(id, WeaponID) { if(is_user_alive(id)) { if(WeaponID > 0 && WeaponID < Weapons[WPN_SECONDARY]) { if(CanAcces(id, SecondaryWeapon[WeaponID][WPN_TEAM], SecondaryWeapon[WeaponID][WPN_ACCES], SecondaryWeapon[WeaponID][WPN_LEVEL])) { new Weapon, Impulse = entity_get_int(id, EV_INT_impulse) HasChoose[id][WPN_SECONDARY][get_user_team(id)] = true WeaponKey[id][WPN_SECONDARY][get_user_team(id)] = WeaponID /*if(get_user_team(id) == TEAM_FURIEN) special_secondary(id, true)*/ drop_secondary_weapons(id); if(equal(SecondaryWeapon[WeaponID][WPN_LIST], "None")) WeaponList(id, str_to_num(SecondaryWeapon[WeaponID][WPN_ID]), SecondaryWeapon[WeaponID][WPN_NAME], 0) else WeaponList(id, str_to_num(SecondaryWeapon[WeaponID][WPN_ID]), SecondaryWeapon[WeaponID][WPN_LIST], 0) entity_set_int(id, EV_INT_impulse, WeaponID); Weapon = fm_give_item(id, SecondaryWeapon[WeaponID][WPN_NAME]); entity_set_int(Weapon, EV_INT_impulse, WeaponID) entity_set_int(id, EV_INT_impulse, Impulse); if(!equal(SecondaryWeapon[WeaponID][WPN_CLIP], "0")) cs_set_weapon_ammo(Weapon, str_to_num(SecondaryWeapon[WeaponID][WPN_CLIP])) return true } } } return false } public GiveKnife(id, WeaponID) { if(is_user_alive(id)) { if(WeaponID > 0 && WeaponID < Weapons[WPN_KNIFE]) { if(CanAcces(id, Knife[WeaponID][WPN_TEAM], Knife[WeaponID][WPN_ACCES], Knife[WeaponID][WPN_LEVEL])) { new Weapon, Impulse = entity_get_int(id, EV_INT_impulse) HasChoose[id][WPN_KNIFE][get_user_team(id)] = true WeaponKey[id][WPN_KNIFE][get_user_team(id)] = WeaponID bacon_strip_weapon(id, "weapon_knife"); if(equal(Knife[WeaponID][WPN_LIST], "None")) WeaponList(id, CSW_KNIFE, Knife[WeaponID][WPN_NAME], 0) else WeaponList(id, CSW_KNIFE, Knife[WeaponID][WPN_LIST], 0) entity_set_int(id, EV_INT_impulse, WeaponID); Weapon = fm_give_item(id, "weapon_knife"); entity_set_int(Weapon, EV_INT_impulse, WeaponID) entity_set_int(id, EV_INT_impulse, Impulse); return true } } } return false } public GiveGrenade(id, WeaponID) { if(is_user_alive(id)) { if(WeaponID > 0 && WeaponID < Weapons[WPN_GRENADE]) { if(CanAcces(id, Grenade[WeaponID][WPN_TEAM], Grenade[WeaponID][WPN_ACCES], Grenade[WeaponID][WPN_LEVEL])) { new Weapon, Impulse = entity_get_int(id, EV_INT_impulse) HasChoose[id][WPN_GRENADE][get_user_team(id)] = true WeaponKey[id][WPN_GRENADE][get_user_team(id)] = WeaponID bacon_strip_weapon(id, Grenade[WeaponID][WPN_NAME]); if(equal(Grenade[WeaponID][WPN_LIST], "None")) WeaponList(id, str_to_num(Grenade[WeaponID][WPN_ID]), Grenade[WeaponID][WPN_NAME], 0) else WeaponList(id, str_to_num(Grenade[WeaponID][WPN_ID]), Grenade[WeaponID][WPN_LIST], 0) entity_set_int(id, EV_INT_impulse, WeaponID); Weapon = fm_give_item(id, Grenade[WeaponID][WPN_NAME]); entity_set_int(Weapon, EV_INT_impulse, WeaponID) entity_set_int(id, EV_INT_impulse, Impulse); return true } } } return false } public GiveC4(id, WeaponID) { if(is_user_alive(id)) { if(WeaponID > 0 && WeaponID < Weapons[WPN_C4]) { if(CanAcces(id, C4[WeaponID][WPN_TEAM], C4[WeaponID][WPN_ACCES], C4[WeaponID][WPN_LEVEL])) { new Weapon, Impulse = entity_get_int(id, EV_INT_impulse) HasChoose[id][WPN_C4][get_user_team(id)] = true WeaponKey[id][WPN_C4][get_user_team(id)] = WeaponID bacon_strip_weapon(id, "weapon_c4"); if(equal(C4[WeaponID][WPN_LIST], "None")) WeaponList(id, CSW_C4, C4[WeaponID][WPN_NAME], 0) else WeaponList(id, CSW_C4, C4[WeaponID][WPN_LIST], 0) entity_set_int(id, EV_INT_impulse, WeaponID); Weapon = fm_give_item(id, "weapon_c4"); entity_set_int(Weapon, EV_INT_impulse, WeaponID) entity_set_int(id, EV_INT_impulse, Impulse); return true } } } return false } stock WeaponList(id, CSW_WEAPON, const Weapon[], Flag=0) { switch(CSW_WEAPON) { case CSW_P228: { message_begin(MSG_ONE, MSGID_WeaponList, _, id); write_string(Weapon); // WeaponName write_byte(9); // PrimaryAmmoID write_byte(52); // PrimaryAmmoMaxAmount write_byte(-1); // SecondaryAmmoID write_byte(-1); // SecondaryAmmoMaxAmount write_byte(1); // SlotID (0...N) write_byte(3); // NumberInSlot (1...N) write_byte(CSW_P228); // WeaponID write_byte(Flag); // Flags message_end(); } case CSW_SCOUT: { message_begin(MSG_ONE, MSGID_WeaponList, _, id); write_string(Weapon); // WeaponName write_byte(2); // PrimaryAmmoID write_byte(90); // PrimaryAmmoMaxAmount write_byte(-1); // SecondaryAmmoID write_byte(-1); // SecondaryAmmoMaxAmount write_byte(0); // SlotID (0...N) write_byte(9); // NumberInSlot (1...N) write_byte(CSW_SCOUT); // WeaponID write_byte(Flag); // Flags message_end(); } case CSW_HEGRENADE: { message_begin(MSG_ONE, MSGID_WeaponList, _, id); write_string(Weapon); // WeaponName write_byte(12); // PrimaryAmmoID write_byte(1); // PrimaryAmmoMaxAmount write_byte(-1); // SecondaryAmmoID write_byte(-1); // SecondaryAmmoMaxAmount write_byte(3); // SlotID (0...N) write_byte(1); // NumberInSlot (1...N) write_byte(CSW_HEGRENADE); // WeaponID write_byte(Flag); // Flags message_end(); } case CSW_XM1014: { message_begin(MSG_ONE, MSGID_WeaponList, _, id); write_string(Weapon); // WeaponName write_byte(5); // PrimaryAmmoID write_byte(32); // PrimaryAmmoMaxAmount write_byte(-1); // SecondaryAmmoID write_byte(-1); // SecondaryAmmoMaxAmount write_byte(0); // SlotID (0...N) write_byte(12); // NumberInSlot (1...N) write_byte(CSW_XM1014); // WeaponID write_byte(Flag); // Flags message_end(); } case CSW_C4: { message_begin(MSG_ONE, MSGID_WeaponList, _, id); write_string(Weapon); // WeaponName write_byte(14); // PrimaryAmmoID write_byte(1); // PrimaryAmmoMaxAmount write_byte(-1); // SecondaryAmmoID write_byte(-1); // SecondaryAmmoMaxAmount write_byte(4); // SlotID (0...N) write_byte(3); // NumberInSlot (1...N) write_byte(CSW_C4); // WeaponID write_byte(Flag); // Flags message_end(); } case CSW_MAC10: { message_begin(MSG_ONE, MSGID_WeaponList, _, id); write_string(Weapon); // WeaponName write_byte(6); // PrimaryAmmoID write_byte(100); // PrimaryAmmoMaxAmount write_byte(-1); // SecondaryAmmoID write_byte(-1); // SecondaryAmmoMaxAmount write_byte(0); // SlotID (0...N) write_byte(13); // NumberInSlot (1...N) write_byte(CSW_MAC10); // WeaponID write_byte(Flag); // Flags message_end(); } case CSW_AUG: { message_begin(MSG_ONE, MSGID_WeaponList, _, id); write_string(Weapon); // WeaponName write_byte(4); // PrimaryAmmoID write_byte(90); // PrimaryAmmoMaxAmount write_byte(-1); // SecondaryAmmoID write_byte(-1); // SecondaryAmmoMaxAmount write_byte(0); // SlotID (0...N) write_byte(14); // NumberInSlot (1...N) write_byte(CSW_AUG); // WeaponID write_byte(Flag); // Flags message_end(); } case CSW_SMOKEGRENADE: { message_begin(MSG_ONE, MSGID_WeaponList, _, id); write_string(Weapon); // WeaponName write_byte(13); // PrimaryAmmoID write_byte(1); // PrimaryAmmoMaxAmount write_byte(-1); // SecondaryAmmoID write_byte(-1); // SecondaryAmmoMaxAmount write_byte(3); // SlotID (0...N) write_byte(3); // NumberInSlot (1...N) write_byte(CSW_SMOKEGRENADE); // WeaponID write_byte(Flag); // Flags message_end(); } case CSW_ELITE: { message_begin(MSG_ONE, MSGID_WeaponList, _, id); write_string(Weapon); // WeaponName write_byte(10); // PrimaryAmmoID write_byte(120); // PrimaryAmmoMaxAmount write_byte(-1); // SecondaryAmmoID write_byte(-1); // SecondaryAmmoMaxAmount write_byte(1); // SlotID (0...N) write_byte(5); // NumberInSlot (1...N) write_byte(CSW_ELITE); // WeaponID write_byte(Flag); // Flags message_end(); } case CSW_FIVESEVEN: { message_begin(MSG_ONE, MSGID_WeaponList, _, id); write_string(Weapon); // WeaponName write_byte(7); // PrimaryAmmoID write_byte(100); // PrimaryAmmoMaxAmount write_byte(-1); // SecondaryAmmoID write_byte(-1); // SecondaryAmmoMaxAmount write_byte(1); // SlotID (0...N) write_byte(6); // NumberInSlot (1...N) write_byte(CSW_FIVESEVEN); // WeaponID write_byte(Flag); // Flags message_end(); } case CSW_UMP45: { message_begin(MSG_ONE, MSGID_WeaponList, _, id); write_string(Weapon); // WeaponName write_byte(6); // PrimaryAmmoID write_byte(100); // PrimaryAmmoMaxAmount write_byte(-1); // SecondaryAmmoID write_byte(-1); // SecondaryAmmoMaxAmount write_byte(0); // SlotID (0...N) write_byte(15); // NumberInSlot (1...N) write_byte(CSW_UMP45); // WeaponID write_byte(Flag); // Flags message_end(); } case CSW_SG550: { message_begin(MSG_ONE, MSGID_WeaponList, _, id); write_string(Weapon); // WeaponName write_byte(4); // PrimaryAmmoID write_byte(90); // PrimaryAmmoMaxAmount write_byte(-1); // SecondaryAmmoID write_byte(-1); // SecondaryAmmoMaxAmount write_byte(0); // SlotID (0...N) write_byte(16); // NumberInSlot (1...N) write_byte(CSW_SG550); // WeaponID write_byte(Flag); // Flags message_end(); } case CSW_GALIL: { message_begin(MSG_ONE, MSGID_WeaponList, _, id); write_string(Weapon); // WeaponName write_byte(4); // PrimaryAmmoID write_byte(90); // PrimaryAmmoMaxAmount write_byte(-1); // SecondaryAmmoID write_byte(-1); // SecondaryAmmoMaxAmount write_byte(0); // SlotID (0...N) write_byte(17); // NumberInSlot (1...N) write_byte(CSW_GALIL); // WeaponID write_byte(Flag); // Flags message_end(); } case CSW_FAMAS: { message_begin(MSG_ONE, MSGID_WeaponList, _, id); write_string(Weapon); // WeaponName write_byte(4); // PrimaryAmmoID write_byte(90); // PrimaryAmmoMaxAmount write_byte(-1); // SecondaryAmmoID write_byte(-1); // SecondaryAmmoMaxAmount write_byte(0); // SlotID (0...N) write_byte(18); // NumberInSlot (1...N) write_byte(CSW_FAMAS); // WeaponID write_byte(Flag); // Flags message_end(); } case CSW_USP: { message_begin(MSG_ONE, MSGID_WeaponList, _, id); write_string(Weapon); // WeaponName write_byte(6); // PrimaryAmmoID write_byte(100); // PrimaryAmmoMaxAmount write_byte(-1); // SecondaryAmmoID write_byte(-1); // SecondaryAmmoMaxAmount write_byte(1); // SlotID (0...N) write_byte(4); // NumberInSlot (1...N) write_byte(CSW_USP); // WeaponID write_byte(Flag); // Flags message_end(); } case CSW_GLOCK18: { message_begin(MSG_ONE, MSGID_WeaponList, _, id); write_string(Weapon); // WeaponName write_byte(10); // PrimaryAmmoID write_byte(120); // PrimaryAmmoMaxAmount write_byte(-1); // SecondaryAmmoID write_byte(-1); // SecondaryAmmoMaxAmount write_byte(1); // SlotID (0...N) write_byte(2); // NumberInSlot (1...N) write_byte(CSW_GLOCK18); // WeaponID write_byte(Flag); // Flags message_end(); } case CSW_AWP: { message_begin(MSG_ONE, MSGID_WeaponList, _, id); write_string(Weapon); // WeaponName write_byte(1); // PrimaryAmmoID write_byte(30); // PrimaryAmmoMaxAmount write_byte(-1); // SecondaryAmmoID write_byte(-1); // SecondaryAmmoMaxAmount write_byte(0); // SlotID (0...N) write_byte(2); // NumberInSlot (1...N) write_byte(CSW_AWP); // WeaponID write_byte(Flag); // Flags message_end(); } case CSW_MP5NAVY: { message_begin(MSG_ONE, MSGID_WeaponList, _, id); write_string(Weapon); // WeaponName write_byte(10); // PrimaryAmmoID write_byte(120); // PrimaryAmmoMaxAmount write_byte(-1); // SecondaryAmmoID write_byte(-1); // SecondaryAmmoMaxAmount write_byte(0); // SlotID (0...N) write_byte(7); // NumberInSlot (1...N) write_byte(CSW_MP5NAVY); // WeaponID write_byte(Flag); // Flags message_end(); } case CSW_M249: { message_begin(MSG_ONE, MSGID_WeaponList, _, id); write_string(Weapon); // WeaponName write_byte(3); // PrimaryAmmoID write_byte(200); // PrimaryAmmoMaxAmount write_byte(-1); // SecondaryAmmoID write_byte(-1); // SecondaryAmmoMaxAmount write_byte(0); // SlotID (0...N) write_byte(4); // NumberInSlot (1...N) write_byte(CSW_M249); // WeaponID write_byte(Flag); // Flags message_end(); } case CSW_M3: { message_begin(MSG_ONE, MSGID_WeaponList, _, id); write_string(Weapon); // WeaponName write_byte(5); // PrimaryAmmoID write_byte(32); // PrimaryAmmoMaxAmount write_byte(-1); // SecondaryAmmoID write_byte(-1); // SecondaryAmmoMaxAmount write_byte(0); // SlotID (0...N) write_byte(5); // NumberInSlot (1...N) write_byte(CSW_M3); // WeaponID write_byte(Flag); // Flags message_end(); } case CSW_M4A1: { message_begin(MSG_ONE, MSGID_WeaponList, _, id); write_string(Weapon); // WeaponName write_byte(4); // PrimaryAmmoID write_byte(90); // PrimaryAmmoMaxAmount write_byte(-1); // SecondaryAmmoID write_byte(-1); // SecondaryAmmoMaxAmount write_byte(0); // SlotID (0...N) write_byte(6); // NumberInSlot (1...N) write_byte(CSW_M4A1); // WeaponID write_byte(Flag); // Flags message_end(); } case CSW_TMP: { message_begin(MSG_ONE, MSGID_WeaponList, _, id); write_string(Weapon); // WeaponName write_byte(10); // PrimaryAmmoID write_byte(120); // PrimaryAmmoMaxAmount write_byte(-1); // SecondaryAmmoID write_byte(-1); // SecondaryAmmoMaxAmount write_byte(0); // SlotID (0...N) write_byte(11); // NumberInSlot (1...N) write_byte(CSW_TMP); // WeaponID write_byte(Flag); // Flags message_end(); } case CSW_G3SG1: { message_begin(MSG_ONE, MSGID_WeaponList, _, id); write_string(Weapon); // WeaponName write_byte(2); // PrimaryAmmoID write_byte(90); // PrimaryAmmoMaxAmount write_byte(-1); // SecondaryAmmoID write_byte(-1); // SecondaryAmmoMaxAmount write_byte(0); // SlotID (0...N) write_byte(3); // NumberInSlot (1...N) write_byte(CSW_G3SG1); // WeaponID write_byte(Flag); // Flags message_end(); } case CSW_FLASHBANG: { message_begin(MSG_ONE, MSGID_WeaponList, _, id); write_string(Weapon); // WeaponName write_byte(11); // PrimaryAmmoID write_byte(2); // PrimaryAmmoMaxAmount write_byte(-1); // SecondaryAmmoID write_byte(-1); // SecondaryAmmoMaxAmount write_byte(3); // SlotID (0...N) write_byte(2); // NumberInSlot (1...N) write_byte(CSW_FLASHBANG); // WeaponID write_byte(Flag); // Flags message_end(); } case CSW_DEAGLE: { message_begin(MSG_ONE, MSGID_WeaponList, _, id); write_string(Weapon); // WeaponName write_byte(8); // PrimaryAmmoID write_byte(35); // PrimaryAmmoMaxAmount write_byte(-1); // SecondaryAmmoID write_byte(-1); // SecondaryAmmoMaxAmount write_byte(1); // SlotID (0...N) write_byte(1); // NumberInSlot (1...N) write_byte(CSW_DEAGLE); // WeaponID write_byte(Flag); // Flags message_end(); } case CSW_SG552: { message_begin(MSG_ONE, MSGID_WeaponList, _, id); write_string(Weapon); // WeaponName write_byte(4); // PrimaryAmmoID write_byte(90); // PrimaryAmmoMaxAmount write_byte(-1); // SecondaryAmmoID write_byte(-1); // SecondaryAmmoMaxAmount write_byte(0); // SlotID (0...N) write_byte(10); // NumberInSlot (1...N) write_byte(CSW_SG552); // WeaponID write_byte(Flag); // Flags message_end(); } case CSW_AK47: { message_begin(MSG_ONE, MSGID_WeaponList, _, id); write_string(Weapon); // WeaponName write_byte(2); // PrimaryAmmoID write_byte(90); // PrimaryAmmoMaxAmount write_byte(-1); // SecondaryAmmoID write_byte(-1); // SecondaryAmmoMaxAmount write_byte(0); // SlotID (0...N) write_byte(1); // NumberInSlot (1...N) write_byte(CSW_AK47); // WeaponID write_byte(Flag); // Flags message_end(); } case CSW_KNIFE: { message_begin(MSG_ONE, MSGID_WeaponList, _, id); write_string(Weapon); // WeaponName write_byte(-1); // PrimaryAmmoID write_byte(-1); // PrimaryAmmoMaxAmount write_byte(-1); // SecondaryAmmoID write_byte(-1); // SecondaryAmmoMaxAmount write_byte(2); // SlotID (0...N) write_byte(1); // NumberInSlot (1...N) write_byte(CSW_KNIFE); // WeaponID write_byte(Flag); // Flags message_end(); } case CSW_P90: { message_begin(MSG_ONE, MSGID_WeaponList, _, id); write_string(Weapon); // WeaponName write_byte(7); // PrimaryAmmoID write_byte(100); // PrimaryAmmoMaxAmount write_byte(-1); // SecondaryAmmoID write_byte(-1); // SecondaryAmmoMaxAmount write_byte(0); // SlotID (0...N) write_byte(8); // NumberInSlot (1...N) write_byte(CSW_P90); // WeaponID write_byte(Flag); // Flags message_end(); } } } public death_message(killer, victim, const WeaponName[]) { if(is_user_connected(killer) && is_user_alive(victim)) { set_msg_block(MSGID_DeathMsg, BLOCK_SET); ExecuteHamB(Ham_Killed, victim, killer); set_msg_block(MSGID_DeathMsg, BLOCK_NOT); cs_set_user_money(killer, cs_get_user_money(killer) + 300); make_deathmsg(killer, victim, 0, WeaponName); message_begin(MSG_BROADCAST, MSGID_ScoreInfo); write_byte(killer); // id write_short(pev(killer, pev_frags)); // frags write_short(cs_get_user_deaths(killer)); // deaths write_short(0); // class? write_short(get_user_team(killer)); // team message_end(); message_begin(MSG_BROADCAST, MSGID_ScoreInfo); write_byte(victim); // id write_short(pev(victim, pev_frags)); // frags write_short(cs_get_user_deaths(victim)); // deaths write_short(0); // class? write_short(get_user_team(victim)); // team message_end(); } } public make_knockback(id, Float:origin[3], Float:maxspeed) { if(is_user_alive(id)) { new Float:Velocity[3], Float:Origin[3], Float:Distance[3], Float:Time = (vector_distance(Origin,origin) / maxspeed); entity_get_vector(id, EV_VEC_origin, Origin); Distance[0] = Origin[0] - origin[0], Distance[1] = Origin[1] - origin[1], Distance[2] = Origin[2] - origin[2]; Velocity[0] = Distance[0] / Time, Velocity[1] = Distance[1] / Time, Velocity[2] = Distance[2] / Time; entity_set_vector(id, EV_VEC_velocity, Velocity); } } public make_blood(id, Amount) { if(is_user_alive(id)) { new BloodColor = ExecuteHam(Ham_BloodColor, id); if(BloodColor != -1) { new Float:Origin[3] pev(id, pev_origin, Origin); Amount *= 2; //according to HLSDK message_begin(MSG_BROADCAST, SVC_TEMPENTITY); write_byte(TE_BLOODSPRITE); write_coord(floatround(Origin[0])); write_coord(floatround(Origin[1])); write_coord(floatround(Origin[2])); write_short(BloodSpray); write_short(BloodDrop); write_byte(BloodColor); write_byte(min(max(3, Amount/10), 16)); message_end(); } } } public make_bullet(id, Float:Origin[3]) { if(is_user_alive(id)) { new Target, Body; get_user_aiming(id, Target, Body, 999999); if(is_user_connected(Target)) { new Float:Start[3], Float:End[3], Float:Res[3], Float:Vel[3], Res2; pev(id, pev_origin, Start); velocity_by_aim(id, 64, Vel); Start[0] = Origin[0]; Start[1] = Origin[1]; Start[2] = Origin[2]; End[0] = Start[0]+Vel[0]; End[1] = Start[1]+Vel[1]; End[2] = Start[2]+Vel[2]; engfunc(EngFunc_TraceLine, Start, End, 0, Target, Res2); get_tr2(Res2, TR_vecEndPos, Res); message_begin(MSG_BROADCAST, SVC_TEMPENTITY) ; write_byte(TE_BLOODSPRITE); write_coord(floatround(Start[0])); write_coord(floatround(Start[1])); write_coord(floatround(Start[2])); write_short(BloodSpray); write_short(BloodDrop); write_byte(70); write_byte(random_num(1,2)); message_end(); } else { if(Target) { message_begin(MSG_BROADCAST, SVC_TEMPENTITY); write_byte(TE_DECAL); write_coord(floatround(Origin[0])); write_coord(floatround(Origin[1])); write_coord(floatround(Origin[2])); write_byte(41); write_short(Target); message_end(); } else { message_begin(MSG_BROADCAST, SVC_TEMPENTITY); write_byte(TE_WORLDDECAL); write_coord(floatround(Origin[0])); write_coord(floatround(Origin[1])); write_coord(floatround(Origin[2])); write_byte(41); message_end(); } message_begin(MSG_BROADCAST, SVC_TEMPENTITY); write_byte(TE_GUNSHOTDECAL); write_coord(floatround(Origin[0])); write_coord(floatround(Origin[1])); write_coord(floatround(Origin[2])); write_short(id); write_byte(41); message_end(); } } } public set_weapon_anim(id, anim) { if(is_user_connected(id)) { set_pev(id, pev_weaponanim, anim); message_begin(MSG_ONE, SVC_WEAPONANIM, _, id); write_byte(anim); write_byte(pev(id, pev_body)); message_end(); } } public get_damage_body(body, Float:damage) { switch(body) { case HIT_HEAD: damage *= 2.0; case HIT_STOMACH: damage *= 1.0; case HIT_CHEST: damage *= 1.5; case HIT_LEFTARM: damage *= 0.75; case HIT_RIGHTARM: damage *= 0.75; case HIT_LEFTLEG: damage *= 0.75; case HIT_RIGHTLEG: damage *= 0.75; default: damage *= 1.0; } return floatround(damage); } public velocity_to_aim(id, Float:Origin[3], Speed, Float:Velocity[3]) { if(is_user_alive(id)) { new Float:AimOrigin[3] fm_get_aim_origin(id, AimOrigin) Velocity[0] = AimOrigin[0] - Origin[0] Velocity[1] = AimOrigin[1] - Origin[1] Velocity[2] = AimOrigin[2] - Origin[2] new Float:X X = floatsqroot(Speed*Speed / (Velocity[0]*Velocity[0] + Velocity[1]*Velocity[1] + Velocity[2]*Velocity[2])) Velocity[0] *= X Velocity[1] *= X Velocity[2] *= X } } public get_position(id, Float:forw, Float:right, Float:up, Float:Start[]) { if(is_user_alive(id)) { new Float:Origin[3], Float:Angle[3], Float:Forward[3], Float:Right[3], Float:Up[3] pev(id, pev_origin, Origin) pev(id, pev_view_ofs, Up) xs_vec_add(Origin, Up, Origin) if(id <= get_maxplayers()) pev(id, pev_v_angle, Angle) else pev(id, pev_angles, Angle) angle_vector(Angle, ANGLEVECTOR_FORWARD, Forward) angle_vector(Angle, ANGLEVECTOR_RIGHT, Right) angle_vector(Angle, ANGLEVECTOR_UP, Up) Start[0] = Origin[0] + Forward[0] * forw + Right[0] * right + Up[0] * up Start[1] = Origin[1] + Forward[1] * forw + Right[1] * right + Up[1] * up Start[2] = Origin[2] + Forward[2] * forw + Right[2] * right + Up[2] * up } } public fm_get_user_bpammo(id, CSW_WEAPON) { if(is_user_alive(id)) { switch(CSW_WEAPON) { case CSW_AWP: return get_pdata_int(id, 377) case CSW_SCOUT, CSW_AK47, CSW_G3SG1: return get_pdata_int(id, 378) case CSW_M249: return get_pdata_int(id, 379) case CSW_FAMAS, CSW_M4A1, CSW_AUG, CSW_SG550, CSW_GALI, CSW_SG552: return get_pdata_int(id, 380) case CSW_M3, CSW_XM1014: return get_pdata_int(id, 381) case CSW_USP, CSW_UMP45, CSW_MAC10: return get_pdata_int(id, 382) case CSW_FIVESEVEN, CSW_P90: return get_pdata_int(id, 383) case CSW_DEAGLE: return get_pdata_int(id, 384) case CSW_P228: return get_pdata_int(id, 385) case CSW_GLOCK18, CSW_TMP, CSW_ELITE, CSW_MP5NAVY: return get_pdata_int(id, 386) default: return 0 } } return 0 } public fm_set_user_bpammo(id, CSW_WEAPON, Amount) { if(is_user_alive(id)) { switch(CSW_WEAPON) { case CSW_AWP: set_pdata_int(id, 377, Amount) case CSW_SCOUT, CSW_AK47, CSW_G3SG1: set_pdata_int(id, 378, Amount) case CSW_M249: set_pdata_int(id, 379, Amount) case CSW_FAMAS, CSW_M4A1, CSW_AUG, CSW_SG550, CSW_GALI, CSW_SG552: set_pdata_int(id, 380, Amount) case CSW_M3, CSW_XM1014: set_pdata_int(id, 381, Amount) case CSW_USP, CSW_UMP45, CSW_MAC10: set_pdata_int(id, 382, Amount) case CSW_FIVESEVEN, CSW_P90: set_pdata_int(id, 383, Amount) case CSW_DEAGLE: set_pdata_int(id, 384, Amount) case CSW_P228: set_pdata_int(id, 385, Amount) case CSW_GLOCK18, CSW_TMP, CSW_ELITE, CSW_MP5NAVY: set_pdata_int(id, 386, Amount) default: return 0 } } return 1 } public drop_primary_weapons(id) { if(is_user_alive(id)) { new Weapons[32], Num = 0, WeaponID; get_user_weapons(id, Weapons, Num); for(new i = 0; i < Num; i++) { WeaponID = Weapons[i]; if(((1<<WeaponID) & PRIMARY_WEAPONS_BITSUM)) { new WName[32]; get_weaponname(WeaponID, WName, charsmax(WName)); engclient_cmd(id, "drop", WName); } } } } public drop_secondary_weapons(id) { if(is_user_alive(id)) { new Weapons[32], Num = 0, WeaponID; get_user_weapons(id, Weapons, Num); for(new i = 0; i < Num; i++) { WeaponID = Weapons[i]; if(((1<<WeaponID) & SECONDARY_WEAPONS_BITSUM)) { new WName[32]; get_weaponname(WeaponID, WName, charsmax(WName)); engclient_cmd(id, "drop", WName); } } } } public bacon_strip_weapon(index, weapon[]) { if(is_user_alive(index) && equal(weapon, "weapon_", 7)) { new WeaponID = get_weaponid(weapon) if(WeaponID) { new WeaponEnt = fm_find_ent_by_owner(-1, weapon, index) if(WeaponEnt) { if(get_user_weapon(index) == WeaponID) ExecuteHamB(Ham_Weapon_RetireWeapon, WeaponEnt) ExecuteHamB(Ham_RemovePlayerItem, index, WeaponEnt) ExecuteHamB(Ham_Item_Kill, WeaponEnt) set_pev(index, pev_weapons, pev(index, pev_weapons) & ~(1<<WeaponID)) } } } } stock HudMessage(const id, const message[], red = 0, green = 160, blue = 0, Float:x = -1.0, Float:y = 0.65, effects = 2, Float:fxtime = 0.01, Float:holdtime = 3.0, Float:fadeintime = 0.01, Float:fadeouttime = 0.01) { new Players[32], Num = 1, Player; if(id) Players[0] = id; else get_players(Players, Num, "ch"); { for(new i = 0; i < Num; i++) { Player = Players[i] if(is_user_connected(Player)) { new color = (clamp(blue, 0, 255) + (clamp(green, 0, 255) << 8) + (clamp(red, 0, 255) << 16)) message_begin(MSG_ONE_UNRELIABLE, SVC_DIRECTOR, _, Player); write_byte(strlen(message) + 31); write_byte(DRC_CMD_MESSAGE); write_byte(effects); write_long(color); write_long(_:x); write_long(_:y); write_long(_:fadeintime); write_long(_:fadeouttime); write_long(_:holdtime); write_long(_:fxtime); write_string(message); message_end(); } } } } stock ColorChat(const id, const input[], any:...) { new Players[32], Message[191], Num = 1, Player; vformat(Message, 190, input, 3); replace_all(Message, 190, "!g", "^4"); replace_all(Message, 190, "!y", "^1"); replace_all(Message, 190, "!t", "^3"); if(id) Players[0] = id; else get_players(Players, Num, "ch"); { for(new i = 0; i < Num; i++) { Player = Players[i] if(is_user_connected(Player)) { message_begin(MSG_ONE_UNRELIABLE, MSGID_SayText, _, Player); write_byte(Player); write_string(Message); 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 } */
Daca intri in .inl-ul de la arme, vezi acolo la ACCES, 0 este pentru totii jucatorii, 1 pentru VIP si 2 pentru ADMIN.
Acum o intrebare, are rost sa pun un update din acest an?
Armele find refacute, modelele modificate, multe chestii noi, sunt interesat daca il foloseste cineva, sa nu pierd timp degeaba, lasati reply sau PM.
Eu sincer sa fiu pe cate sv de furien am fost nici un plugin de genu , so... mai smecher era serveru complet , doar sa aiba cin e sa se ocupe de el ma refer la boost,donatii
Eu pe servere cum le-ai avut tu as juca, dar pe servere precum cele cu credite ca ale lui capy imi vine a varsa, stiu ca si acolo a muncit , dar neh fiecare cu gusturile lui.
- sDs|Aragon*
- Membru, skill +2
- Posts: 576
- Joined: 29 Dec 2011, 21:38
- Detinator Steam: Da
- SteamID: Mihai_Parkour10
- Reputatie: Fost scripter eXtreamCS
- Has thanked: 4 times
- Been thanked: 132 times
MzQ* wrote:sDs|Aragon* wrote:Hmm, nu imi amintesc daca versiunea asta are si cutite, meniul ar trebui sa apara automat dupa ce selectezi un pistolalexx13 wrote:ce tre sa fac sa mearga cutitele,ca nu imi apare cutitele la ct si la t ?
Da, o sa fac asta, se poate baga si manual de catre voi destul de usor, folositi un singur native, RegisterPrimary..stephano141 wrote:poti baga si un meniu de arme clasice ? :D
Se poate modifica sa fie cu un sistem de genu.> SKanDaL < wrote:Sunt free toate ? Nu le poti pune pe credite :D ?
Multumesc50Cent # HackeR wrote:Hmm, gg pentru metoda #define
mamamea123 wrote:mi-l poate modifica si mie cineva ? vreau sa ramana doar , meniu de vip si meniu normal , si in meniu de vip sa fie oicw , arma scorpion , DUALMP7A1 ala de e in meniu normal si atat , si in meniu normal sa scoateti DUALMP7A1 cum am zis si sa-l bagati in meniu de vip ! , multumesc
- | Afiseaza codul
//#define POWERS #define MAX_WEAPONS 100 #define EV_INT_WeaponKey EV_INT_impulse #include <amxmodx> #include <amxmisc> #include <cstrike> #include <engine> #include <fakemeta> #include <fakemeta_util> #include <hamsandwich> #include "furien40/furien40.inc" #if defined POWERS #include "furien40/furien40_powers.inc" #endif #define PLUGIN "Weapons Menu" #define VERSION "4.0" #define AUTHOR "Aragon*" //------| Settings |------// #define VIP_LEVEL ADMIN_LEVEL_H #define ADMIN_LEVEL ADMIN_LEVEL_G //--| Primary Weapons |--// #define OICW //#define THANATOS11 //#define THANATOS7 //#define AEOLIS #define JANUS11 //#define JANUS7 #define JANUS3 //#define SPEARGUN //#define PETROLBOOMER //#define SALAMANDER #define AT4 #define ETHEREAL #define RAILCANNON #define PLASMAGUN #define CROSSBOW //#define COMPOUNDBOW #define HK416 //#define AK47KNIFE //#define F2000 #define TAR21 //#define K1ASES #define DUALMP7A1 //#define QUADBARREL #define M1887 #define THOMPSON #define M134 //#define SKULL5 //#define SL8 //#define AW50 //--| Secondary Weapons |--// //#define DRAGONCANNON //#define JANUS1 #define M79 #define DUALDEAGLE #define INFINITY #define SKULL1 #define ANACONDA //--| Knifes |--// //#define CLAWS //#define SUPERCLAWS #define DUALKATANA //#define BALROG9 //#define JANUS9 #define RUYISTICK #define DRAGONSWORD //#define PAPIN //--| Grenades |--// //#define SNARK //#define FIRENADE //#define FROSTNADE //#define SFNADE //--| C4 |--// //#define LASERMINE //------| End Settings |------// enum WeaponsList { WPN_PRIMARY = 0, WPN_SECONDARY, WPN_KNIFE, WPN_GRENADE, WPN_C4 } enum WeaponData { WPN_MENUNAME = 0, WPN_TEAM, WPN_ACCES, WPN_LEVEL, WPN_NAME, WPN_ID, WPN_LIST, WPN_CLIP }; enum WeaponTeam { WPN_TEAM_ALL = 0, WPN_TEAM_T, WPN_TEAM_CT }; enum WeaponAcces { WPN_ACCES_ALL = 0, WPN_ACCES_VIP, WPN_ACCES_ADMIN }; new Menu, bool:ShowMenu[33], Weapons[WeaponsList] = 1, HasChoose[33][WeaponsList][4], WeaponKey[33][WeaponsList][4], PrimaryWeapon[MAX_WEAPONS+1][WeaponData][33], SecondaryWeapon[MAX_WEAPONS+1][WeaponData][33], Knife[MAX_WEAPONS+1][WeaponData][33], Grenade[MAX_WEAPONS+1][WeaponData][33], C4[MAX_WEAPONS+1][WeaponData][33], MSGID_WeaponList, MSGID_DeathMsg, MSGID_ScoreInfo, MSGID_SayText, MSGID_CurWeapon, MSGID_Crosshair/*, MSGID_ScreenFade, MSGID_ScreenShake*/; //------| Weapons Menu |------// #define PRIMARY_WEAPONS_BITSUM (1<<CSW_SCOUT | 1<<CSW_XM1014 | 1<<CSW_MAC10 | 1<<CSW_AUG | 1<<CSW_UMP45 | 1<<CSW_SG550 | 1<<CSW_GALIL | 1<<CSW_FAMAS | 1<<CSW_AWP | 1<<CSW_MP5NAVY | 1<<CSW_M249 | 1<<CSW_M3 | 1<<CSW_M4A1 | 1<<CSW_TMP | 1<<CSW_G3SG1 | 1<<CSW_SG552 | 1<<CSW_AK47 | 1<<CSW_P90) #define SECONDARY_WEAPONS_BITSUM (1<<CSW_GLOCK18 | 1<<CSW_USP | 1<<CSW_P228 | 1<<CSW_DEAGLE | 1<<CSW_FIVESEVEN | 1<<CSW_ELITE) #define AMMOWP_NULL (1<<0 | 1<<CSW_KNIFE | 1<<CSW_FLASHBANG | 1<<CSW_HEGRENADE | 1<<CSW_SMOKEGRENADE | 1<<CSW_C4) new Shell, BloodSpray, BloodDrop, WeaponsAmmo[][] = { { -1, -1 }, { 13, 52 }, { -1, -1 }, { 10, 90 }, { -1, -1 }, { 7, 32 }, { -1, -1 }, { 30, 100 }, { 30, 90 }, { -1, -1 }, { 30, 120 }, { 20, 100 }, { 25, 100 }, { 30, 90 }, { 35, 90 }, { 25, 90 }, { 12, 100 }, { 20, 120 }, { 10, 30 }, { 30, 120 }, { 100, 200 }, { 8, 32 }, { 30, 90 }, { 30, 120 }, { 20, 90 }, { -1, -1 }, { 7, 35 }, { 30, 90 }, { 30, 90 }, { -1, -1 }, { 50, 100 } }, Prefix[] = "[INFO]", Contact[] = "Mihai.Parkour10"; #include "furien40/weapons/Config.h" public plugin_init() { register_plugin(PLUGIN, VERSION, AUTHOR) MSGID_WeaponList = get_user_msgid("WeaponList") MSGID_DeathMsg = get_user_msgid("DeathMsg") MSGID_ScoreInfo = get_user_msgid("ScoreInfo") MSGID_SayText = get_user_msgid("SayText") MSGID_CurWeapon = get_user_msgid("CurWeapon") MSGID_Crosshair = get_user_msgid("Crosshair") /*MSGID_ScreenFade = get_user_msgid("ScreenFade") MSGID_ScreenShake = get_user_msgid("ScreenShake");*/ Shell = engfunc(EngFunc_PrecacheModel, "models/rshell.mdl"); register_clcmd("guns", "CMD_Guns"); register_clcmd("say guns", "CMD_Guns"); register_clcmd("say /guns", "CMD_Guns"); register_clcmd("say_team guns", "CMD_Guns"); register_clcmd("say_team /guns", "CMD_Guns"); register_event("CurWeapon", "EVENT_CurWeapon", "be", "1=1") RegisterHam(Ham_Spawn, "player", "HAM_Spawn_Post", 1); RegisterHam(Ham_Touch, "weaponbox", "HAM_Touch") RegisterHam(Ham_Touch, "armoury_entity", "HAM_Touch") RegisterHam(Ham_Touch, "weapon_shield", "HAM_Touch") weapons_init() } public plugin_precache() { BloodSpray = precache_model("sprites/bloodspray.spr"); BloodDrop = precache_model("sprites/blood.spr"); weapons_precache() } public plugin_natives() { register_native("RegisterPrimary", "native_register_primary", 1) register_native("RegisterSecondary", "native_register_secondary", 1) register_native("RegisterKnife", "native_register_knife", 1) register_native("RegisterGrenade", "native_register_grenade", 1) register_native("RegisterC4", "native_register_c4", 1) register_native("OpenWeaponsMenu", "CMD_Guns", 1) register_native("get_weapon", "get_weapon", 1) register_native("set_weapon", "set_weapon", 1) register_native("get_weapon_data", "get_weapon_data", 1) register_native("set_weapon_data", "set_weapon_data", 1) weapons_natives() } public client_putinserver(id) { ShowMenu[id] = true } public grenade_throw(id, grenade, GrenadeID) { if(is_valid_ent(grenade) && is_user_alive(id)) { for(new i = 1; i < Weapons[WPN_GRENADE]; i++) { if(GrenadeID == str_to_num(Grenade[WPN_ID]) && get_user_weapon(id) == GrenadeID && get_weapon(id, Grenade[WPN_NAME], str_to_num(Grenade[WPN_ID]), i)) entity_set_int(grenade, EV_INT_impulse, i); } } return FMRES_IGNORED; } public EVENT_CurWeapon(id) { if(is_user_connected(id) && is_user_alive(id)) { new Weapon = read_data(2) if(!(AMMOWP_NULL &(1<<Weapon))) { if(fm_get_user_bpammo(id, Weapon) < WeaponsAmmo[Weapon][1]) fm_set_user_bpammo(id, Weapon, WeaponsAmmo[Weapon][1]) } } return PLUGIN_CONTINUE } public HAM_Spawn_Post(id) { if(is_user_alive(id)) { HasChoose[id][WPN_PRIMARY][get_user_team(id)] = false HasChoose[id][WPN_SECONDARY][get_user_team(id)] = false HasChoose[id][WPN_KNIFE][get_user_team(id)] = false HasChoose[id][WPN_GRENADE][get_user_team(id)] = false HasChoose[id][WPN_C4][get_user_team(id)] = false #if defined FIRENADE set_weapon(id, WPN_GRENADE, firenade_id()) #endif #if defined FROSTNADE set_weapon(id, WPN_GRENADE, frostnade_id()) #endif #if defined SFNADE set_weapon(id, WPN_GRENADE, sfnade_id()) #endif if(get_user_team(id) == TEAM_ANTIFURIEN) { if(ShowMenu[id]) EquipmentMenu(id) else if(!ShowMenu[id]) GiveLastWeapons(id) } } return HAM_IGNORED; } public HAM_Touch(ent, id) { if(is_user_alive(id)) { if(get_user_team(id) == TEAM_FURIEN && entity_get_int(ent, EV_INT_impulse) == 2) return HAM_SUPERCEDE if(get_user_team(id) == TEAM_ANTIFURIEN && entity_get_int(ent, EV_INT_impulse) == 1) return HAM_SUPERCEDE } return HAM_IGNORED } public CMD_Guns(id) { if(!ShowMenu[id]) { ShowMenu[id] = true ColorChat(id, "!t%s!gMeniul de!t echipamente!g a fost!t re-activat!g.", Prefix); } if(!HasChoose[id][WPN_PRIMARY][2] && !HasChoose[id][WPN_SECONDARY][2] && !HasChoose[id][WPN_KNIFE][2]) EquipmentMenu(id) else if(!HasChoose[id][WPN_PRIMARY][2]) PrimaryWeaponMenu(id, 0) else if(!HasChoose[id][WPN_SECONDARY][2]) SecondaryWeaponMenu(id) else if(!HasChoose[id][WPN_KNIFE][2]) KnifesMenu(id) return PLUGIN_CONTINUE; } public EquipmentMenu(id) { if(is_user_alive(id) && get_user_team(id) == TEAM_ANTIFURIEN) { menu_cancel(id) Menu = menu_create("\rEchipament", "EquipmentCmd"); menu_additem(Menu, "\wArme noi", "1", 0); if(WeaponKey[id][WPN_PRIMARY][2] && WeaponKey[id][WPN_SECONDARY][2] && WeaponKey[id][WPN_KNIFE][2]) { menu_additem(Menu, "\wArmele anterioare", "2", 0); menu_additem(Menu, "\wNu arata meniul din nou^n", "3", 0); } else { menu_additem(Menu, "\dArmele anterioare", "2", 0); menu_additem(Menu, "\dNu arata meniul din nou^n", "3", 0); } menu_setprop(Menu, MPROP_EXIT, MEXIT_NEVER) menu_display(id, Menu, 0); } } public EquipmentCmd(id, menu, item) { if(item == MENU_EXIT || !is_user_alive(id) || get_user_team(id) != TEAM_ANTIFURIEN) { menu_destroy(menu); return PLUGIN_HANDLED; } new Data[6], Name[64], Access, CallBack; menu_item_getinfo(menu, item, Access, Data, 5, Name, 63, CallBack); menu_destroy(menu); switch(str_to_num(Data)) { case 1: { if(!HasChoose[id][WPN_PRIMARY][2]) PrimaryWeaponMenu(id, 0) else if(!HasChoose[id][WPN_SECONDARY][2]) SecondaryWeaponMenu(id) else if(!HasChoose[id][WPN_KNIFE][2]) KnifesMenu(id) } case 2: { if(WeaponKey[id][WPN_PRIMARY][2] && WeaponKey[id][WPN_SECONDARY][2] && WeaponKey[id][WPN_KNIFE][2]) GiveLastWeapons(id) else EquipmentMenu(id) } case 3: { if(WeaponKey[id][WPN_PRIMARY][2] && WeaponKey[id][WPN_SECONDARY][2] && WeaponKey[id][WPN_KNIFE][2]) { ShowMenu[id] = false GiveLastWeapons(id) } else EquipmentMenu(id) } } return PLUGIN_HANDLED; } public PrimaryWeaponMenu(id, VIP) { if(is_user_alive(id) && get_user_team(id) == TEAM_ANTIFURIEN && !HasChoose[id][WPN_PRIMARY][2]) { menu_cancel(id); Menu = menu_create("\rPrimar", "PrimaryCmd"); if(VIP == 0) { new UltimateWeapon = 0, VIPWeapon = 0 for(new i = 1; i < Weapons[WPN_PRIMARY]; i++) { if(WeaponTeam:str_to_num(PrimaryWeapon[WPN_TEAM]) != WPN_TEAM_T && WeaponAcces:str_to_num(PrimaryWeapon[WPN_ACCES]) == WPN_ACCES_ADMIN) UltimateWeapon++ if(WeaponTeam:str_to_num(PrimaryWeapon[WPN_TEAM]) != WPN_TEAM_T && WeaponAcces:str_to_num(PrimaryWeapon[WPN_ACCES]) == WPN_ACCES_VIP) VIPWeapon++ } if(UltimateWeapon) { if(get_user_flags(id) & ADMIN_LEVEL) menu_additem(Menu, "\rUltimate Weapons", "-2", 0); else menu_additem(Menu, "\dUltimate Weapons \w- \rOnly ADMIN", "-2", 0); } if(VIPWeapon) { if(get_user_flags(id) & VIP_LEVEL) menu_additem(Menu, "\rVIP Weapons", "-1", 0); else menu_additem(Menu, "\dVIP Weapons \w- \rOnly VIP", "-1", 0); } if(UltimateWeapon || VIPWeapon) menu_addblank(Menu, 0); menu_setprop(Menu, MPROP_EXIT, MEXIT_NEVER) } else { menu_setprop(Menu, MPROP_EXITNAME, "Meniu Principal") menu_setprop(Menu, MPROP_EXIT, MEXIT_ALL) } #if defined POWERS for(new i = 0; i < MAX_LEVEL; i++) { for(new k = 1; k < Weapons[WPN_PRIMARY]; k++) { if(str_to_num(PrimaryWeapon[k][WPN_LEVEL]) == i && WeaponTeam:str_to_num(PrimaryWeapon[k][WPN_TEAM]) != WPN_TEAM_T && str_to_num(PrimaryWeapon[k][WPN_ACCES]) == VIP) AddWeapon(id, Menu, PrimaryWeapon[k][WPN_MENUNAME], PrimaryWeapon[k][WPN_ACCES], PrimaryWeapon[k][WPN_LEVEL], k); } } #else for(new i = 1; i < Weapons[WPN_PRIMARY]; i++) { if(WeaponTeam:str_to_num(PrimaryWeapon[WPN_TEAM]) != WPN_TEAM_T && str_to_num(PrimaryWeapon[WPN_ACCES]) == VIP) AddWeapon(id, Menu, PrimaryWeapon[WPN_MENUNAME], PrimaryWeapon[i][WPN_ACCES], PrimaryWeapon[i][WPN_LEVEL], i); } #endif menu_display(id, Menu, 0); } } public PrimaryCmd(id, menu, item) { if(!is_user_alive(id) || get_user_team(id) != TEAM_ANTIFURIEN || HasChoose[id][WPN_PRIMARY][2]) { menu_destroy(menu); return PLUGIN_HANDLED; } else if(item == MENU_EXIT) { menu_destroy(menu); PrimaryWeaponMenu(id, 0) return PLUGIN_HANDLED; } new Data[6], Name[64], Access, CallBack; menu_item_getinfo(menu, item, Access, Data, 5, Name, 63, CallBack); menu_destroy(menu); if(equal(Data, "-2")) { if(get_user_flags(id) & ADMIN_LEVEL) PrimaryWeaponMenu(id, 2) else { if(!HasChoose[id][WPN_PRIMARY][2]) PrimaryWeaponMenu(id, 0) else if(!HasChoose[id][WPN_SECONDARY][2]) SecondaryWeaponMenu(id) else if(!HasChoose[id][WPN_KNIFE][2]) KnifesMenu(id) ColorChat(id, "!t%s!gPentru a cumpara!t Admin!g adauga ID:!t %s", Prefix, Contact); } } else if(equal(Data, "-1")) { if(get_user_flags(id) & VIP_LEVEL) PrimaryWeaponMenu(id, 1) else { if(!HasChoose[id][WPN_PRIMARY][2]) PrimaryWeaponMenu(id, 0) else if(!HasChoose[id][WPN_SECONDARY][2]) SecondaryWeaponMenu(id) else if(!HasChoose[id][WPN_KNIFE][2]) KnifesMenu(id) ColorChat(id, "!t%s!gPentru a cumpara!t VIP!g adauga ID:!t %s", Prefix, Contact); } } else { GivePrimary(id, str_to_num(Data)) if(!HasChoose[id][WPN_PRIMARY][2]) PrimaryWeaponMenu(id, 0) else SecondaryWeaponMenu(id) } return PLUGIN_HANDLED; } public SecondaryWeaponMenu(id) { if(is_user_alive(id) && get_user_team(id) == TEAM_ANTIFURIEN && !HasChoose[id][WPN_SECONDARY][2]) { menu_cancel(id); Menu = menu_create("\rSecundar", "SecondaryCmd"); #if defined POWERS for(new i = 0; i < MAX_LEVEL; i++) { for(new k = 1; k < Weapons[WPN_SECONDARY]; k++) { if(WeaponTeam:str_to_num(SecondaryWeapon[k][WPN_TEAM]) != WPN_TEAM_T && str_to_num(SecondaryWeapon[k][WPN_LEVEL]) == i) AddWeapon(id, Menu, SecondaryWeapon[k][WPN_MENUNAME], SecondaryWeapon[k][WPN_ACCES], SecondaryWeapon[k][WPN_LEVEL], k); } } #else for(new i = 1; i < Weapons[WPN_SECONDARY]; i++) { if(WeaponTeam:str_to_num(SecondaryWeapon[i][WPN_TEAM]) != WPN_TEAM_T) AddWeapon(id, Menu, SecondaryWeapon[i][WPN_MENUNAME], SecondaryWeapon[i][WPN_ACCES], SecondaryWeapon[i][WPN_LEVEL], i); } #endif menu_setprop(Menu, MPROP_EXIT, MEXIT_NEVER) menu_display(id, Menu, 0); } return PLUGIN_CONTINUE; } public SecondaryCmd(id, menu, item) { if(item == MENU_EXIT || !is_user_alive(id) || get_user_team(id) != TEAM_ANTIFURIEN || HasChoose[id][WPN_SECONDARY][2]) { menu_destroy(menu); return PLUGIN_HANDLED; } new Data[6], Name[64], Access, CallBack; menu_item_getinfo(menu, item, Access, Data, 5, Name, 63, CallBack); menu_destroy(menu); GiveSecondary(id, str_to_num(Data)) if(!HasChoose[id][WPN_SECONDARY][2]) SecondaryWeaponMenu(id) else KnifesMenu(id) return PLUGIN_HANDLED; } public KnifesMenu(id) { if(is_user_alive(id) && get_user_team(id) == TEAM_ANTIFURIEN && !HasChoose[id][WPN_KNIFE][2]) { menu_cancel(id); Menu = menu_create("\rCutit", "KnifesCmd"); #if defined POWERS for(new i = 0; i < MAX_LEVEL; i++) { for(new k = 1; k < Weapons[WPN_KNIFE]; k++) { if(WeaponTeam:str_to_num(Knife[k][WPN_TEAM]) != WPN_TEAM_T && str_to_num(Knife[k][WPN_LEVEL]) == i) AddWeapon(id, Menu, Knife[k][WPN_MENUNAME], Knife[k][WPN_ACCES], Knife[k][WPN_LEVEL], k); } } #else for(new i = 1; i < Weapons[WPN_KNIFE]; i++) { if(WeaponTeam:str_to_num(Knife[i][WPN_TEAM]) != WPN_TEAM_T) AddWeapon(id, Menu, Knife[i][WPN_MENUNAME], Knife[i][WPN_ACCES], Knife[i][WPN_LEVEL], i); } #endif menu_setprop(Menu, MPROP_EXIT, MEXIT_NEVER) menu_display(id, Menu, 0); } return PLUGIN_CONTINUE; } public KnifesCmd(id, menu, item) { if(item == MENU_EXIT || !is_user_alive(id) || get_user_team(id) != TEAM_ANTIFURIEN || HasChoose[id][WPN_KNIFE][2]) { menu_destroy(menu); return PLUGIN_HANDLED; } new Data[6], Name[64], Access, CallBack; menu_item_getinfo(menu, item, Access, Data,5, Name, 63, CallBack); menu_destroy(menu); GiveKnife(id, str_to_num(Data)) if(!HasChoose[id][WPN_KNIFE][2]) KnifesMenu(id) return PLUGIN_HANDLED; } public GiveLastWeapons(id) { if(!HasChoose[id][WPN_PRIMARY][2] && WeaponKey[id][WPN_PRIMARY][2] != -1) GivePrimary(id, WeaponKey[id][WPN_PRIMARY][2]) if(!HasChoose[id][WPN_SECONDARY][2] && WeaponKey[id][WPN_SECONDARY][2] != -1) GiveSecondary(id, WeaponKey[id][WPN_SECONDARY][2]) if(!HasChoose[id][WPN_KNIFE][2] && WeaponKey[id][WPN_KNIFE][2] != -1) GiveKnife(id, WeaponKey[id][WPN_KNIFE][2]) if(!HasChoose[id][WPN_PRIMARY][2]) { WeaponKey[id][WPN_PRIMARY][2] = -1 PrimaryWeaponMenu(id, 0) } else if(!HasChoose[id][WPN_SECONDARY][2]) { WeaponKey[id][WPN_SECONDARY][2] = -1 SecondaryWeaponMenu(id) } else if(!HasChoose[id][WPN_KNIFE][2]) { WeaponKey[id][WPN_KNIFE][2] = -1 KnifesMenu(id) } } public native_register_primary(MenuName[], WeaponTeam:Team, WeaponAcces:Acces, Level[], WeaponName[], WeaponID, Weapon_List[], WeaponClip[]) { param_convert(1) param_convert(4) param_convert(5) param_convert(7) param_convert(8) return RegisterPrimary(MenuName, Team, Acces, Level, WeaponName, WeaponID, Weapon_List, WeaponClip) } public native_register_secondary(MenuName[], WeaponTeam:Team, WeaponAcces:Acces, Level[], WeaponName[], WeaponID, Weapon_List[], WeaponClip[]) { param_convert(1) param_convert(4) param_convert(5) param_convert(7) param_convert(8) return RegisterSecondary(MenuName, Team, Acces, Level, WeaponName, WeaponID, Weapon_List, WeaponClip) } public native_register_knife(MenuName[], WeaponTeam:Team, WeaponAcces:Acces, Level[], Weapon_List[]) { param_convert(1) param_convert(4) param_convert(5) return RegisterKnife(MenuName, Team, Acces, Level, Weapon_List) } public native_register_grenade(MenuName[], WeaponTeam:Team, WeaponAcces:Acces, Level[], WeaponName[], WeaponID, Weapon_List[]) { param_convert(1) param_convert(4) param_convert(5) param_convert(7) return RegisterGrenade(MenuName, Team, Acces, Level, WeaponName, WeaponID, Weapon_List) } public native_register_c4(MenuName[], WeaponTeam:Team, WeaponAcces:Acces, Level[], Weapon_List[]) { param_convert(1) param_convert(4) param_convert(5) return RegisterC4(MenuName, Team, Acces, Level, Weapon_List) } public get_weapon(id, weapon_[], CSW_, WeaponID) { if(is_user_connected(id)) { new Weapon = find_ent_by_owner(-1, weapon_, id); if(is_user_alive(id) && user_has_weapon(id, CSW_) && pev_valid(Weapon)) return entity_get_int(Weapon, EV_INT_impulse) == WeaponID ? true : false } return false } public set_weapon(id, WeaponsList:WeaponSet, WeaponID) { switch(WeaponSet) { case WPN_PRIMARY: return GivePrimary(id, WeaponID) case WPN_SECONDARY: return GiveSecondary(id, WeaponID) case WPN_KNIFE: return GiveKnife(id, WeaponID) case WPN_GRENADE: return GiveGrenade(id, WeaponID) case WPN_C4: return GiveC4(id, WeaponID) } return false } public get_weapon_data(WeaponsList:WeaponSet, WeaponID, WeaponData:Data, Buffer[], len) { param_convert(4) if(WeaponID > -1 && WeaponID < Weapons[WeaponSet]) { switch(WeaponSet) { case WPN_PRIMARY: format(Buffer, len, PrimaryWeapon[WeaponID][Data]) case WPN_SECONDARY: format(Buffer, len, SecondaryWeapon[WeaponID][Data]) case WPN_KNIFE: format(Buffer, len, Knife[WeaponID][Data]) case WPN_GRENADE: format(Buffer, len, Grenade[WeaponID][Data]) case WPN_C4: format(Buffer, len, C4[WeaponID][Data]) } } } public set_weapon_data(WeaponsList:WeaponSet, WeaponID, WeaponData:Data, Buffer[]) { param_convert(4) if(WeaponID > -1 && WeaponID < Weapons[WeaponSet]) { switch(WeaponSet) { case WPN_PRIMARY: format(PrimaryWeapon[WeaponID][Data], 32, Buffer) case WPN_SECONDARY: format(PrimaryWeapon[WeaponID][Data], 32, Buffer) case WPN_KNIFE: format(PrimaryWeapon[WeaponID][Data], 32, Buffer) case WPN_GRENADE: format(Grenade[WeaponID][Data], 32, Buffer) case WPN_C4: format(C4[WeaponID][Data], 32, Buffer) } } } //////////////////////////////////////////////////////////////////////////////////////////////////////////// // Stock's | //========================================================================================================== public AddWeapon(id, Menu, Name[], Acces[], Level[], WeaponID) { new Weapon[64], Num[32]; if(WeaponAcces:str_to_num(Acces) == WPN_ACCES_VIP && !(get_user_flags(id) & VIP_LEVEL)) formatex(Weapon, sizeof(Weapon)-1, "\d%s \w- \rOnly VIP", Name); else if(WeaponAcces:str_to_num(Acces) == WPN_ACCES_ADMIN && !(get_user_flags(id) & ADMIN_LEVEL)) formatex(Weapon, sizeof(Weapon)-1, "\d%s \w- \rOnly ADMIN", Name); #if defined POWERS else if(get_user_level(id) < (str_to_num(Level) > MAX_LEVEL ? MAX_LEVEL : str_to_num(Level))) formatex(Weapon, sizeof(Weapon)-1, "\d%s \w- \rLocked \r[\yLevel: \r%d]", Name, (str_to_num(Level) > MAX_LEVEL) ? MAX_LEVEL : str_to_num(Level)); #endif else formatex(Weapon, sizeof(Weapon)-1, "\w%s", Name); formatex(Num, sizeof(Num)-1, "%d", WeaponID); menu_additem(Menu, Weapon, Num, 0); return } public CanAcces(id, Team[], Acces[], Level[]) { if(WeaponAcces:str_to_num(Acces) == WPN_ACCES_VIP && !(get_user_flags(id) & VIP_LEVEL) || WeaponAcces:str_to_num(Acces) == WPN_ACCES_ADMIN && !(get_user_flags(id) & ADMIN_LEVEL)) return false; if(WeaponTeam:str_to_num(Team) == WPN_TEAM_T && WeaponTeam:get_user_team(id) != WPN_TEAM_T || WeaponTeam:str_to_num(Team) == WPN_TEAM_CT && WeaponTeam:get_user_team(id) != WPN_TEAM_CT) return false; #if defined POWERS else if(get_user_level(id) < (str_to_num(Level) > MAX_LEVEL ? MAX_LEVEL : str_to_num(Level))) return false; #endif return true; } stock RegisterPrimary(MenuName[], WeaponTeam:Team, WeaponAcces:Acces, Level[] = "0", WeaponName[], WeaponID, Weapon_List[] = "None", WeaponClip[] = "0") { if(Weapons[WPN_PRIMARY] < 1) Weapons[WPN_PRIMARY] = 1 format(PrimaryWeapon[Weapons[WPN_PRIMARY]][WPN_MENUNAME], 32, MenuName) if(Team > WeaponTeam || Team < WPN_TEAM_ALL) format(PrimaryWeapon[Weapons[WPN_PRIMARY]][WPN_TEAM], 32, "%d", WPN_TEAM_ALL) else format(PrimaryWeapon[Weapons[WPN_PRIMARY]][WPN_TEAM], 32, "%d", Team) if(Acces > WeaponAcces || Acces < WPN_ACCES_ALL) format(PrimaryWeapon[Weapons[WPN_PRIMARY]][WPN_ACCES], 32, "%d", WPN_ACCES_ALL) else format(PrimaryWeapon[Weapons[WPN_PRIMARY]][WPN_ACCES], 32, "%d", Acces) format(PrimaryWeapon[Weapons[WPN_PRIMARY]][WPN_LEVEL], 32, Level) format(PrimaryWeapon[Weapons[WPN_PRIMARY]][WPN_NAME], 32, WeaponName) format(PrimaryWeapon[Weapons[WPN_PRIMARY]][WPN_ID], 32, "%d", WeaponID) format(PrimaryWeapon[Weapons[WPN_PRIMARY]][WPN_LIST], 32, Weapon_List) format(PrimaryWeapon[Weapons[WPN_PRIMARY]][WPN_CLIP], 32, WeaponClip) Weapons[WPN_PRIMARY]++ return Weapons[WPN_PRIMARY] - 1 } stock RegisterSecondary(MenuName[], WeaponTeam:Team, WeaponAcces:Acces, Level[] = "0", WeaponName[], WeaponID, Weapon_List[] = "None", WeaponClip[] = "0") { if(Weapons[WPN_SECONDARY] < 1) Weapons[WPN_SECONDARY] = 1 format(SecondaryWeapon[Weapons[WPN_SECONDARY]][WPN_MENUNAME], 32, MenuName) if(Team > WeaponTeam || Team < WPN_TEAM_ALL) format(SecondaryWeapon[Weapons[WPN_SECONDARY]][WPN_TEAM], 32, "%d", WPN_TEAM_ALL) else format(SecondaryWeapon[Weapons[WPN_SECONDARY]][WPN_TEAM], 32, "%d", Team) if(Acces > WeaponAcces || Acces < WPN_ACCES_ALL) format(SecondaryWeapon[Weapons[WPN_SECONDARY]][WPN_ACCES], 32, "%d", WPN_ACCES_ALL) else format(SecondaryWeapon[Weapons[WPN_SECONDARY]][WPN_ACCES], 32, "%d", Acces) format(SecondaryWeapon[Weapons[WPN_SECONDARY]][WPN_LEVEL], 32, Level) format(SecondaryWeapon[Weapons[WPN_SECONDARY]][WPN_NAME], 32, WeaponName) format(SecondaryWeapon[Weapons[WPN_SECONDARY]][WPN_ID], 32, "%d", WeaponID) format(SecondaryWeapon[Weapons[WPN_SECONDARY]][WPN_LIST], 32, Weapon_List) format(SecondaryWeapon[Weapons[WPN_SECONDARY]][WPN_CLIP], 32, WeaponClip) Weapons[WPN_SECONDARY]++ return Weapons[WPN_SECONDARY] - 1 } stock RegisterKnife(MenuName[], WeaponTeam:Team, WeaponAcces:Acces, Level[] = "0", Weapon_List[] = "None") { if(Weapons[WPN_KNIFE] < 1) Weapons[WPN_KNIFE] = 1 format(Knife[Weapons[WPN_KNIFE]][WPN_MENUNAME], 32, MenuName) if(Team > WeaponTeam || Team < WPN_TEAM_ALL) format(Knife[Weapons[WPN_KNIFE]][WPN_TEAM], 32, "%d", WPN_TEAM_ALL) else format(Knife[Weapons[WPN_KNIFE]][WPN_TEAM], 32, "%d", Team) if(Acces > WeaponAcces || Acces < WPN_ACCES_ALL) format(Knife[Weapons[WPN_KNIFE]][WPN_ACCES], 32, "%d", WPN_ACCES_ALL) else format(Knife[Weapons[WPN_KNIFE]][WPN_ACCES], 32, "%d", Acces) format(Knife[Weapons[WPN_KNIFE]][WPN_LEVEL], 32, Level) format(Knife[Weapons[WPN_KNIFE]][WPN_LIST], 32, Weapon_List) Weapons[WPN_KNIFE]++ return Weapons[WPN_KNIFE] - 1 } stock RegisterGrenade(MenuName[], WeaponTeam:Team, WeaponAcces:Acces, Level[] = "0", WeaponName[], WeaponID, Weapon_List[] = "None") { if(Weapons[WPN_GRENADE] < 1) Weapons[WPN_GRENADE] = 1 format(Grenade[Weapons[WPN_GRENADE]][WPN_MENUNAME], 32, MenuName) if(Team > WeaponTeam || Team < WPN_TEAM_ALL) format(Grenade[Weapons[WPN_GRENADE]][WPN_TEAM], 32, "%d", WPN_TEAM_ALL) else format(Grenade[Weapons[WPN_GRENADE]][WPN_TEAM], 32, "%d", Team) if(Acces > WeaponAcces || Acces < WPN_ACCES_ALL) format(Grenade[Weapons[WPN_GRENADE]][WPN_ACCES], 32, "%d", WPN_ACCES_ALL) else format(Grenade[Weapons[WPN_GRENADE]][WPN_ACCES], 32, "%d", Acces) format(Grenade[Weapons[WPN_GRENADE]][WPN_LEVEL], 32, Level) format(Grenade[Weapons[WPN_GRENADE]][WPN_NAME], 32, WeaponName) format(Grenade[Weapons[WPN_GRENADE]][WPN_ID], 32, "%d", WeaponID) format(Grenade[Weapons[WPN_GRENADE]][WPN_LIST], 32, Weapon_List) Weapons[WPN_GRENADE]++ return Weapons[WPN_GRENADE] - 1 } stock RegisterC4(MenuName[], WeaponTeam:Team, WeaponAcces:Acces, Level[] = "0", Weapon_List[] = "None") { if(Weapons[WPN_C4] < 1) Weapons[WPN_C4] = 1 format(C4[Weapons[WPN_C4]][WPN_MENUNAME], 32, MenuName) if(Team > WeaponTeam || Team < WPN_TEAM_ALL) format(C4[Weapons[WPN_C4]][WPN_TEAM], 32, "%d", WPN_TEAM_ALL) else format(C4[Weapons[WPN_C4]][WPN_TEAM], 32, "%d", Team) if(Acces > WeaponAcces || Acces < WPN_ACCES_ALL) format(C4[Weapons[WPN_C4]][WPN_ACCES], 32, "%d", WPN_ACCES_ALL) else format(C4[Weapons[WPN_C4]][WPN_ACCES], 32, "%d", Acces) format(C4[Weapons[WPN_C4]][WPN_LEVEL], 32, Level) format(C4[Weapons[WPN_C4]][WPN_LIST], 32, Weapon_List) Weapons[WPN_C4]++ return Weapons[WPN_C4] - 1 } public GivePrimary(id, WeaponID) { if(is_user_alive(id)) { if(WeaponID > 0 && WeaponID < Weapons[WPN_PRIMARY]) { if(CanAcces(id, PrimaryWeapon[WeaponID][WPN_TEAM], PrimaryWeapon[WeaponID][WPN_ACCES], PrimaryWeapon[WeaponID][WPN_LEVEL])) { new Weapon, Impulse = entity_get_int(id, EV_INT_impulse) HasChoose[id][WPN_PRIMARY][get_user_team(id)] = true WeaponKey[id][WPN_PRIMARY][get_user_team(id)] = WeaponID /*if(get_user_team(id) == TEAM_FURIEN) special_primary(id, true)*/ drop_primary_weapons(id); if(equal(PrimaryWeapon[WeaponID][WPN_LIST], "None")) WeaponList(id, str_to_num(PrimaryWeapon[WeaponID][WPN_ID]), PrimaryWeapon[WeaponID][WPN_NAME], 0) else WeaponList(id, str_to_num(PrimaryWeapon[WeaponID][WPN_ID]), PrimaryWeapon[WeaponID][WPN_LIST], 0) entity_set_int(id, EV_INT_impulse, WeaponID); Weapon = fm_give_item(id, PrimaryWeapon[WeaponID][WPN_NAME]); entity_set_int(Weapon, EV_INT_impulse, WeaponID) entity_set_int(id, EV_INT_impulse, Impulse); if(!equal(PrimaryWeapon[WeaponID][WPN_CLIP], "0")) cs_set_weapon_ammo(Weapon, str_to_num(PrimaryWeapon[WeaponID][WPN_CLIP])) return true } } } return false } public GiveSecondary(id, WeaponID) { if(is_user_alive(id)) { if(WeaponID > 0 && WeaponID < Weapons[WPN_SECONDARY]) { if(CanAcces(id, SecondaryWeapon[WeaponID][WPN_TEAM], SecondaryWeapon[WeaponID][WPN_ACCES], SecondaryWeapon[WeaponID][WPN_LEVEL])) { new Weapon, Impulse = entity_get_int(id, EV_INT_impulse) HasChoose[id][WPN_SECONDARY][get_user_team(id)] = true WeaponKey[id][WPN_SECONDARY][get_user_team(id)] = WeaponID /*if(get_user_team(id) == TEAM_FURIEN) special_secondary(id, true)*/ drop_secondary_weapons(id); if(equal(SecondaryWeapon[WeaponID][WPN_LIST], "None")) WeaponList(id, str_to_num(SecondaryWeapon[WeaponID][WPN_ID]), SecondaryWeapon[WeaponID][WPN_NAME], 0) else WeaponList(id, str_to_num(SecondaryWeapon[WeaponID][WPN_ID]), SecondaryWeapon[WeaponID][WPN_LIST], 0) entity_set_int(id, EV_INT_impulse, WeaponID); Weapon = fm_give_item(id, SecondaryWeapon[WeaponID][WPN_NAME]); entity_set_int(Weapon, EV_INT_impulse, WeaponID) entity_set_int(id, EV_INT_impulse, Impulse); if(!equal(SecondaryWeapon[WeaponID][WPN_CLIP], "0")) cs_set_weapon_ammo(Weapon, str_to_num(SecondaryWeapon[WeaponID][WPN_CLIP])) return true } } } return false } public GiveKnife(id, WeaponID) { if(is_user_alive(id)) { if(WeaponID > 0 && WeaponID < Weapons[WPN_KNIFE]) { if(CanAcces(id, Knife[WeaponID][WPN_TEAM], Knife[WeaponID][WPN_ACCES], Knife[WeaponID][WPN_LEVEL])) { new Weapon, Impulse = entity_get_int(id, EV_INT_impulse) HasChoose[id][WPN_KNIFE][get_user_team(id)] = true WeaponKey[id][WPN_KNIFE][get_user_team(id)] = WeaponID bacon_strip_weapon(id, "weapon_knife"); if(equal(Knife[WeaponID][WPN_LIST], "None")) WeaponList(id, CSW_KNIFE, Knife[WeaponID][WPN_NAME], 0) else WeaponList(id, CSW_KNIFE, Knife[WeaponID][WPN_LIST], 0) entity_set_int(id, EV_INT_impulse, WeaponID); Weapon = fm_give_item(id, "weapon_knife"); entity_set_int(Weapon, EV_INT_impulse, WeaponID) entity_set_int(id, EV_INT_impulse, Impulse); return true } } } return false } public GiveGrenade(id, WeaponID) { if(is_user_alive(id)) { if(WeaponID > 0 && WeaponID < Weapons[WPN_GRENADE]) { if(CanAcces(id, Grenade[WeaponID][WPN_TEAM], Grenade[WeaponID][WPN_ACCES], Grenade[WeaponID][WPN_LEVEL])) { new Weapon, Impulse = entity_get_int(id, EV_INT_impulse) HasChoose[id][WPN_GRENADE][get_user_team(id)] = true WeaponKey[id][WPN_GRENADE][get_user_team(id)] = WeaponID bacon_strip_weapon(id, Grenade[WeaponID][WPN_NAME]); if(equal(Grenade[WeaponID][WPN_LIST], "None")) WeaponList(id, str_to_num(Grenade[WeaponID][WPN_ID]), Grenade[WeaponID][WPN_NAME], 0) else WeaponList(id, str_to_num(Grenade[WeaponID][WPN_ID]), Grenade[WeaponID][WPN_LIST], 0) entity_set_int(id, EV_INT_impulse, WeaponID); Weapon = fm_give_item(id, Grenade[WeaponID][WPN_NAME]); entity_set_int(Weapon, EV_INT_impulse, WeaponID) entity_set_int(id, EV_INT_impulse, Impulse); return true } } } return false } public GiveC4(id, WeaponID) { if(is_user_alive(id)) { if(WeaponID > 0 && WeaponID < Weapons[WPN_C4]) { if(CanAcces(id, C4[WeaponID][WPN_TEAM], C4[WeaponID][WPN_ACCES], C4[WeaponID][WPN_LEVEL])) { new Weapon, Impulse = entity_get_int(id, EV_INT_impulse) HasChoose[id][WPN_C4][get_user_team(id)] = true WeaponKey[id][WPN_C4][get_user_team(id)] = WeaponID bacon_strip_weapon(id, "weapon_c4"); if(equal(C4[WeaponID][WPN_LIST], "None")) WeaponList(id, CSW_C4, C4[WeaponID][WPN_NAME], 0) else WeaponList(id, CSW_C4, C4[WeaponID][WPN_LIST], 0) entity_set_int(id, EV_INT_impulse, WeaponID); Weapon = fm_give_item(id, "weapon_c4"); entity_set_int(Weapon, EV_INT_impulse, WeaponID) entity_set_int(id, EV_INT_impulse, Impulse); return true } } } return false } stock WeaponList(id, CSW_WEAPON, const Weapon[], Flag=0) { switch(CSW_WEAPON) { case CSW_P228: { message_begin(MSG_ONE, MSGID_WeaponList, _, id); write_string(Weapon); // WeaponName write_byte(9); // PrimaryAmmoID write_byte(52); // PrimaryAmmoMaxAmount write_byte(-1); // SecondaryAmmoID write_byte(-1); // SecondaryAmmoMaxAmount write_byte(1); // SlotID (0...N) write_byte(3); // NumberInSlot (1...N) write_byte(CSW_P228); // WeaponID write_byte(Flag); // Flags message_end(); } case CSW_SCOUT: { message_begin(MSG_ONE, MSGID_WeaponList, _, id); write_string(Weapon); // WeaponName write_byte(2); // PrimaryAmmoID write_byte(90); // PrimaryAmmoMaxAmount write_byte(-1); // SecondaryAmmoID write_byte(-1); // SecondaryAmmoMaxAmount write_byte(0); // SlotID (0...N) write_byte(9); // NumberInSlot (1...N) write_byte(CSW_SCOUT); // WeaponID write_byte(Flag); // Flags message_end(); } case CSW_HEGRENADE: { message_begin(MSG_ONE, MSGID_WeaponList, _, id); write_string(Weapon); // WeaponName write_byte(12); // PrimaryAmmoID write_byte(1); // PrimaryAmmoMaxAmount write_byte(-1); // SecondaryAmmoID write_byte(-1); // SecondaryAmmoMaxAmount write_byte(3); // SlotID (0...N) write_byte(1); // NumberInSlot (1...N) write_byte(CSW_HEGRENADE); // WeaponID write_byte(Flag); // Flags message_end(); } case CSW_XM1014: { message_begin(MSG_ONE, MSGID_WeaponList, _, id); write_string(Weapon); // WeaponName write_byte(5); // PrimaryAmmoID write_byte(32); // PrimaryAmmoMaxAmount write_byte(-1); // SecondaryAmmoID write_byte(-1); // SecondaryAmmoMaxAmount write_byte(0); // SlotID (0...N) write_byte(12); // NumberInSlot (1...N) write_byte(CSW_XM1014); // WeaponID write_byte(Flag); // Flags message_end(); } case CSW_C4: { message_begin(MSG_ONE, MSGID_WeaponList, _, id); write_string(Weapon); // WeaponName write_byte(14); // PrimaryAmmoID write_byte(1); // PrimaryAmmoMaxAmount write_byte(-1); // SecondaryAmmoID write_byte(-1); // SecondaryAmmoMaxAmount write_byte(4); // SlotID (0...N) write_byte(3); // NumberInSlot (1...N) write_byte(CSW_C4); // WeaponID write_byte(Flag); // Flags message_end(); } case CSW_MAC10: { message_begin(MSG_ONE, MSGID_WeaponList, _, id); write_string(Weapon); // WeaponName write_byte(6); // PrimaryAmmoID write_byte(100); // PrimaryAmmoMaxAmount write_byte(-1); // SecondaryAmmoID write_byte(-1); // SecondaryAmmoMaxAmount write_byte(0); // SlotID (0...N) write_byte(13); // NumberInSlot (1...N) write_byte(CSW_MAC10); // WeaponID write_byte(Flag); // Flags message_end(); } case CSW_AUG: { message_begin(MSG_ONE, MSGID_WeaponList, _, id); write_string(Weapon); // WeaponName write_byte(4); // PrimaryAmmoID write_byte(90); // PrimaryAmmoMaxAmount write_byte(-1); // SecondaryAmmoID write_byte(-1); // SecondaryAmmoMaxAmount write_byte(0); // SlotID (0...N) write_byte(14); // NumberInSlot (1...N) write_byte(CSW_AUG); // WeaponID write_byte(Flag); // Flags message_end(); } case CSW_SMOKEGRENADE: { message_begin(MSG_ONE, MSGID_WeaponList, _, id); write_string(Weapon); // WeaponName write_byte(13); // PrimaryAmmoID write_byte(1); // PrimaryAmmoMaxAmount write_byte(-1); // SecondaryAmmoID write_byte(-1); // SecondaryAmmoMaxAmount write_byte(3); // SlotID (0...N) write_byte(3); // NumberInSlot (1...N) write_byte(CSW_SMOKEGRENADE); // WeaponID write_byte(Flag); // Flags message_end(); } case CSW_ELITE: { message_begin(MSG_ONE, MSGID_WeaponList, _, id); write_string(Weapon); // WeaponName write_byte(10); // PrimaryAmmoID write_byte(120); // PrimaryAmmoMaxAmount write_byte(-1); // SecondaryAmmoID write_byte(-1); // SecondaryAmmoMaxAmount write_byte(1); // SlotID (0...N) write_byte(5); // NumberInSlot (1...N) write_byte(CSW_ELITE); // WeaponID write_byte(Flag); // Flags message_end(); } case CSW_FIVESEVEN: { message_begin(MSG_ONE, MSGID_WeaponList, _, id); write_string(Weapon); // WeaponName write_byte(7); // PrimaryAmmoID write_byte(100); // PrimaryAmmoMaxAmount write_byte(-1); // SecondaryAmmoID write_byte(-1); // SecondaryAmmoMaxAmount write_byte(1); // SlotID (0...N) write_byte(6); // NumberInSlot (1...N) write_byte(CSW_FIVESEVEN); // WeaponID write_byte(Flag); // Flags message_end(); } case CSW_UMP45: { message_begin(MSG_ONE, MSGID_WeaponList, _, id); write_string(Weapon); // WeaponName write_byte(6); // PrimaryAmmoID write_byte(100); // PrimaryAmmoMaxAmount write_byte(-1); // SecondaryAmmoID write_byte(-1); // SecondaryAmmoMaxAmount write_byte(0); // SlotID (0...N) write_byte(15); // NumberInSlot (1...N) write_byte(CSW_UMP45); // WeaponID write_byte(Flag); // Flags message_end(); } case CSW_SG550: { message_begin(MSG_ONE, MSGID_WeaponList, _, id); write_string(Weapon); // WeaponName write_byte(4); // PrimaryAmmoID write_byte(90); // PrimaryAmmoMaxAmount write_byte(-1); // SecondaryAmmoID write_byte(-1); // SecondaryAmmoMaxAmount write_byte(0); // SlotID (0...N) write_byte(16); // NumberInSlot (1...N) write_byte(CSW_SG550); // WeaponID write_byte(Flag); // Flags message_end(); } case CSW_GALIL: { message_begin(MSG_ONE, MSGID_WeaponList, _, id); write_string(Weapon); // WeaponName write_byte(4); // PrimaryAmmoID write_byte(90); // PrimaryAmmoMaxAmount write_byte(-1); // SecondaryAmmoID write_byte(-1); // SecondaryAmmoMaxAmount write_byte(0); // SlotID (0...N) write_byte(17); // NumberInSlot (1...N) write_byte(CSW_GALIL); // WeaponID write_byte(Flag); // Flags message_end(); } case CSW_FAMAS: { message_begin(MSG_ONE, MSGID_WeaponList, _, id); write_string(Weapon); // WeaponName write_byte(4); // PrimaryAmmoID write_byte(90); // PrimaryAmmoMaxAmount write_byte(-1); // SecondaryAmmoID write_byte(-1); // SecondaryAmmoMaxAmount write_byte(0); // SlotID (0...N) write_byte(18); // NumberInSlot (1...N) write_byte(CSW_FAMAS); // WeaponID write_byte(Flag); // Flags message_end(); } case CSW_USP: { message_begin(MSG_ONE, MSGID_WeaponList, _, id); write_string(Weapon); // WeaponName write_byte(6); // PrimaryAmmoID write_byte(100); // PrimaryAmmoMaxAmount write_byte(-1); // SecondaryAmmoID write_byte(-1); // SecondaryAmmoMaxAmount write_byte(1); // SlotID (0...N) write_byte(4); // NumberInSlot (1...N) write_byte(CSW_USP); // WeaponID write_byte(Flag); // Flags message_end(); } case CSW_GLOCK18: { message_begin(MSG_ONE, MSGID_WeaponList, _, id); write_string(Weapon); // WeaponName write_byte(10); // PrimaryAmmoID write_byte(120); // PrimaryAmmoMaxAmount write_byte(-1); // SecondaryAmmoID write_byte(-1); // SecondaryAmmoMaxAmount write_byte(1); // SlotID (0...N) write_byte(2); // NumberInSlot (1...N) write_byte(CSW_GLOCK18); // WeaponID write_byte(Flag); // Flags message_end(); } case CSW_AWP: { message_begin(MSG_ONE, MSGID_WeaponList, _, id); write_string(Weapon); // WeaponName write_byte(1); // PrimaryAmmoID write_byte(30); // PrimaryAmmoMaxAmount write_byte(-1); // SecondaryAmmoID write_byte(-1); // SecondaryAmmoMaxAmount write_byte(0); // SlotID (0...N) write_byte(2); // NumberInSlot (1...N) write_byte(CSW_AWP); // WeaponID write_byte(Flag); // Flags message_end(); } case CSW_MP5NAVY: { message_begin(MSG_ONE, MSGID_WeaponList, _, id); write_string(Weapon); // WeaponName write_byte(10); // PrimaryAmmoID write_byte(120); // PrimaryAmmoMaxAmount write_byte(-1); // SecondaryAmmoID write_byte(-1); // SecondaryAmmoMaxAmount write_byte(0); // SlotID (0...N) write_byte(7); // NumberInSlot (1...N) write_byte(CSW_MP5NAVY); // WeaponID write_byte(Flag); // Flags message_end(); } case CSW_M249: { message_begin(MSG_ONE, MSGID_WeaponList, _, id); write_string(Weapon); // WeaponName write_byte(3); // PrimaryAmmoID write_byte(200); // PrimaryAmmoMaxAmount write_byte(-1); // SecondaryAmmoID write_byte(-1); // SecondaryAmmoMaxAmount write_byte(0); // SlotID (0...N) write_byte(4); // NumberInSlot (1...N) write_byte(CSW_M249); // WeaponID write_byte(Flag); // Flags message_end(); } case CSW_M3: { message_begin(MSG_ONE, MSGID_WeaponList, _, id); write_string(Weapon); // WeaponName write_byte(5); // PrimaryAmmoID write_byte(32); // PrimaryAmmoMaxAmount write_byte(-1); // SecondaryAmmoID write_byte(-1); // SecondaryAmmoMaxAmount write_byte(0); // SlotID (0...N) write_byte(5); // NumberInSlot (1...N) write_byte(CSW_M3); // WeaponID write_byte(Flag); // Flags message_end(); } case CSW_M4A1: { message_begin(MSG_ONE, MSGID_WeaponList, _, id); write_string(Weapon); // WeaponName write_byte(4); // PrimaryAmmoID write_byte(90); // PrimaryAmmoMaxAmount write_byte(-1); // SecondaryAmmoID write_byte(-1); // SecondaryAmmoMaxAmount write_byte(0); // SlotID (0...N) write_byte(6); // NumberInSlot (1...N) write_byte(CSW_M4A1); // WeaponID write_byte(Flag); // Flags message_end(); } case CSW_TMP: { message_begin(MSG_ONE, MSGID_WeaponList, _, id); write_string(Weapon); // WeaponName write_byte(10); // PrimaryAmmoID write_byte(120); // PrimaryAmmoMaxAmount write_byte(-1); // SecondaryAmmoID write_byte(-1); // SecondaryAmmoMaxAmount write_byte(0); // SlotID (0...N) write_byte(11); // NumberInSlot (1...N) write_byte(CSW_TMP); // WeaponID write_byte(Flag); // Flags message_end(); } case CSW_G3SG1: { message_begin(MSG_ONE, MSGID_WeaponList, _, id); write_string(Weapon); // WeaponName write_byte(2); // PrimaryAmmoID write_byte(90); // PrimaryAmmoMaxAmount write_byte(-1); // SecondaryAmmoID write_byte(-1); // SecondaryAmmoMaxAmount write_byte(0); // SlotID (0...N) write_byte(3); // NumberInSlot (1...N) write_byte(CSW_G3SG1); // WeaponID write_byte(Flag); // Flags message_end(); } case CSW_FLASHBANG: { message_begin(MSG_ONE, MSGID_WeaponList, _, id); write_string(Weapon); // WeaponName write_byte(11); // PrimaryAmmoID write_byte(2); // PrimaryAmmoMaxAmount write_byte(-1); // SecondaryAmmoID write_byte(-1); // SecondaryAmmoMaxAmount write_byte(3); // SlotID (0...N) write_byte(2); // NumberInSlot (1...N) write_byte(CSW_FLASHBANG); // WeaponID write_byte(Flag); // Flags message_end(); } case CSW_DEAGLE: { message_begin(MSG_ONE, MSGID_WeaponList, _, id); write_string(Weapon); // WeaponName write_byte(8); // PrimaryAmmoID write_byte(35); // PrimaryAmmoMaxAmount write_byte(-1); // SecondaryAmmoID write_byte(-1); // SecondaryAmmoMaxAmount write_byte(1); // SlotID (0...N) write_byte(1); // NumberInSlot (1...N) write_byte(CSW_DEAGLE); // WeaponID write_byte(Flag); // Flags message_end(); } case CSW_SG552: { message_begin(MSG_ONE, MSGID_WeaponList, _, id); write_string(Weapon); // WeaponName write_byte(4); // PrimaryAmmoID write_byte(90); // PrimaryAmmoMaxAmount write_byte(-1); // SecondaryAmmoID write_byte(-1); // SecondaryAmmoMaxAmount write_byte(0); // SlotID (0...N) write_byte(10); // NumberInSlot (1...N) write_byte(CSW_SG552); // WeaponID write_byte(Flag); // Flags message_end(); } case CSW_AK47: { message_begin(MSG_ONE, MSGID_WeaponList, _, id); write_string(Weapon); // WeaponName write_byte(2); // PrimaryAmmoID write_byte(90); // PrimaryAmmoMaxAmount write_byte(-1); // SecondaryAmmoID write_byte(-1); // SecondaryAmmoMaxAmount write_byte(0); // SlotID (0...N) write_byte(1); // NumberInSlot (1...N) write_byte(CSW_AK47); // WeaponID write_byte(Flag); // Flags message_end(); } case CSW_KNIFE: { message_begin(MSG_ONE, MSGID_WeaponList, _, id); write_string(Weapon); // WeaponName write_byte(-1); // PrimaryAmmoID write_byte(-1); // PrimaryAmmoMaxAmount write_byte(-1); // SecondaryAmmoID write_byte(-1); // SecondaryAmmoMaxAmount write_byte(2); // SlotID (0...N) write_byte(1); // NumberInSlot (1...N) write_byte(CSW_KNIFE); // WeaponID write_byte(Flag); // Flags message_end(); } case CSW_P90: { message_begin(MSG_ONE, MSGID_WeaponList, _, id); write_string(Weapon); // WeaponName write_byte(7); // PrimaryAmmoID write_byte(100); // PrimaryAmmoMaxAmount write_byte(-1); // SecondaryAmmoID write_byte(-1); // SecondaryAmmoMaxAmount write_byte(0); // SlotID (0...N) write_byte(8); // NumberInSlot (1...N) write_byte(CSW_P90); // WeaponID write_byte(Flag); // Flags message_end(); } } } public death_message(killer, victim, const WeaponName[]) { if(is_user_connected(killer) && is_user_alive(victim)) { set_msg_block(MSGID_DeathMsg, BLOCK_SET); ExecuteHamB(Ham_Killed, victim, killer); set_msg_block(MSGID_DeathMsg, BLOCK_NOT); cs_set_user_money(killer, cs_get_user_money(killer) + 300); make_deathmsg(killer, victim, 0, WeaponName); message_begin(MSG_BROADCAST, MSGID_ScoreInfo); write_byte(killer); // id write_short(pev(killer, pev_frags)); // frags write_short(cs_get_user_deaths(killer)); // deaths write_short(0); // class? write_short(get_user_team(killer)); // team message_end(); message_begin(MSG_BROADCAST, MSGID_ScoreInfo); write_byte(victim); // id write_short(pev(victim, pev_frags)); // frags write_short(cs_get_user_deaths(victim)); // deaths write_short(0); // class? write_short(get_user_team(victim)); // team message_end(); } } public make_knockback(id, Float:origin[3], Float:maxspeed) { if(is_user_alive(id)) { new Float:Velocity[3], Float:Origin[3], Float:Distance[3], Float:Time = (vector_distance(Origin,origin) / maxspeed); entity_get_vector(id, EV_VEC_origin, Origin); Distance[0] = Origin[0] - origin[0], Distance[1] = Origin[1] - origin[1], Distance[2] = Origin[2] - origin[2]; Velocity[0] = Distance[0] / Time, Velocity[1] = Distance[1] / Time, Velocity[2] = Distance[2] / Time; entity_set_vector(id, EV_VEC_velocity, Velocity); } } public make_blood(id, Amount) { if(is_user_alive(id)) { new BloodColor = ExecuteHam(Ham_BloodColor, id); if(BloodColor != -1) { new Float:Origin[3] pev(id, pev_origin, Origin); Amount *= 2; //according to HLSDK message_begin(MSG_BROADCAST, SVC_TEMPENTITY); write_byte(TE_BLOODSPRITE); write_coord(floatround(Origin[0])); write_coord(floatround(Origin[1])); write_coord(floatround(Origin[2])); write_short(BloodSpray); write_short(BloodDrop); write_byte(BloodColor); write_byte(min(max(3, Amount/10), 16)); message_end(); } } } public make_bullet(id, Float:Origin[3]) { if(is_user_alive(id)) { new Target, Body; get_user_aiming(id, Target, Body, 999999); if(is_user_connected(Target)) { new Float:Start[3], Float:End[3], Float:Res[3], Float:Vel[3], Res2; pev(id, pev_origin, Start); velocity_by_aim(id, 64, Vel); Start[0] = Origin[0]; Start[1] = Origin[1]; Start[2] = Origin[2]; End[0] = Start[0]+Vel[0]; End[1] = Start[1]+Vel[1]; End[2] = Start[2]+Vel[2]; engfunc(EngFunc_TraceLine, Start, End, 0, Target, Res2); get_tr2(Res2, TR_vecEndPos, Res); message_begin(MSG_BROADCAST, SVC_TEMPENTITY) ; write_byte(TE_BLOODSPRITE); write_coord(floatround(Start[0])); write_coord(floatround(Start[1])); write_coord(floatround(Start[2])); write_short(BloodSpray); write_short(BloodDrop); write_byte(70); write_byte(random_num(1,2)); message_end(); } else { if(Target) { message_begin(MSG_BROADCAST, SVC_TEMPENTITY); write_byte(TE_DECAL); write_coord(floatround(Origin[0])); write_coord(floatround(Origin[1])); write_coord(floatround(Origin[2])); write_byte(41); write_short(Target); message_end(); } else { message_begin(MSG_BROADCAST, SVC_TEMPENTITY); write_byte(TE_WORLDDECAL); write_coord(floatround(Origin[0])); write_coord(floatround(Origin[1])); write_coord(floatround(Origin[2])); write_byte(41); message_end(); } message_begin(MSG_BROADCAST, SVC_TEMPENTITY); write_byte(TE_GUNSHOTDECAL); write_coord(floatround(Origin[0])); write_coord(floatround(Origin[1])); write_coord(floatround(Origin[2])); write_short(id); write_byte(41); message_end(); } } } public set_weapon_anim(id, anim) { if(is_user_connected(id)) { set_pev(id, pev_weaponanim, anim); message_begin(MSG_ONE, SVC_WEAPONANIM, _, id); write_byte(anim); write_byte(pev(id, pev_body)); message_end(); } } public get_damage_body(body, Float:damage) { switch(body) { case HIT_HEAD: damage *= 2.0; case HIT_STOMACH: damage *= 1.0; case HIT_CHEST: damage *= 1.5; case HIT_LEFTARM: damage *= 0.75; case HIT_RIGHTARM: damage *= 0.75; case HIT_LEFTLEG: damage *= 0.75; case HIT_RIGHTLEG: damage *= 0.75; default: damage *= 1.0; } return floatround(damage); } public velocity_to_aim(id, Float:Origin[3], Speed, Float:Velocity[3]) { if(is_user_alive(id)) { new Float:AimOrigin[3] fm_get_aim_origin(id, AimOrigin) Velocity[0] = AimOrigin[0] - Origin[0] Velocity[1] = AimOrigin[1] - Origin[1] Velocity[2] = AimOrigin[2] - Origin[2] new Float:X X = floatsqroot(Speed*Speed / (Velocity[0]*Velocity[0] + Velocity[1]*Velocity[1] + Velocity[2]*Velocity[2])) Velocity[0] *= X Velocity[1] *= X Velocity[2] *= X } } public get_position(id, Float:forw, Float:right, Float:up, Float:Start[]) { if(is_user_alive(id)) { new Float:Origin[3], Float:Angle[3], Float:Forward[3], Float:Right[3], Float:Up[3] pev(id, pev_origin, Origin) pev(id, pev_view_ofs, Up) xs_vec_add(Origin, Up, Origin) if(id <= get_maxplayers()) pev(id, pev_v_angle, Angle) else pev(id, pev_angles, Angle) angle_vector(Angle, ANGLEVECTOR_FORWARD, Forward) angle_vector(Angle, ANGLEVECTOR_RIGHT, Right) angle_vector(Angle, ANGLEVECTOR_UP, Up) Start[0] = Origin[0] + Forward[0] * forw + Right[0] * right + Up[0] * up Start[1] = Origin[1] + Forward[1] * forw + Right[1] * right + Up[1] * up Start[2] = Origin[2] + Forward[2] * forw + Right[2] * right + Up[2] * up } } public fm_get_user_bpammo(id, CSW_WEAPON) { if(is_user_alive(id)) { switch(CSW_WEAPON) { case CSW_AWP: return get_pdata_int(id, 377) case CSW_SCOUT, CSW_AK47, CSW_G3SG1: return get_pdata_int(id, 378) case CSW_M249: return get_pdata_int(id, 379) case CSW_FAMAS, CSW_M4A1, CSW_AUG, CSW_SG550, CSW_GALI, CSW_SG552: return get_pdata_int(id, 380) case CSW_M3, CSW_XM1014: return get_pdata_int(id, 381) case CSW_USP, CSW_UMP45, CSW_MAC10: return get_pdata_int(id, 382) case CSW_FIVESEVEN, CSW_P90: return get_pdata_int(id, 383) case CSW_DEAGLE: return get_pdata_int(id, 384) case CSW_P228: return get_pdata_int(id, 385) case CSW_GLOCK18, CSW_TMP, CSW_ELITE, CSW_MP5NAVY: return get_pdata_int(id, 386) default: return 0 } } return 0 } public fm_set_user_bpammo(id, CSW_WEAPON, Amount) { if(is_user_alive(id)) { switch(CSW_WEAPON) { case CSW_AWP: set_pdata_int(id, 377, Amount) case CSW_SCOUT, CSW_AK47, CSW_G3SG1: set_pdata_int(id, 378, Amount) case CSW_M249: set_pdata_int(id, 379, Amount) case CSW_FAMAS, CSW_M4A1, CSW_AUG, CSW_SG550, CSW_GALI, CSW_SG552: set_pdata_int(id, 380, Amount) case CSW_M3, CSW_XM1014: set_pdata_int(id, 381, Amount) case CSW_USP, CSW_UMP45, CSW_MAC10: set_pdata_int(id, 382, Amount) case CSW_FIVESEVEN, CSW_P90: set_pdata_int(id, 383, Amount) case CSW_DEAGLE: set_pdata_int(id, 384, Amount) case CSW_P228: set_pdata_int(id, 385, Amount) case CSW_GLOCK18, CSW_TMP, CSW_ELITE, CSW_MP5NAVY: set_pdata_int(id, 386, Amount) default: return 0 } } return 1 } public drop_primary_weapons(id) { if(is_user_alive(id)) { new Weapons[32], Num = 0, WeaponID; get_user_weapons(id, Weapons, Num); for(new i = 0; i < Num; i++) { WeaponID = Weapons[i]; if(((1<<WeaponID) & PRIMARY_WEAPONS_BITSUM)) { new WName[32]; get_weaponname(WeaponID, WName, charsmax(WName)); engclient_cmd(id, "drop", WName); } } } } public drop_secondary_weapons(id) { if(is_user_alive(id)) { new Weapons[32], Num = 0, WeaponID; get_user_weapons(id, Weapons, Num); for(new i = 0; i < Num; i++) { WeaponID = Weapons[i]; if(((1<<WeaponID) & SECONDARY_WEAPONS_BITSUM)) { new WName[32]; get_weaponname(WeaponID, WName, charsmax(WName)); engclient_cmd(id, "drop", WName); } } } } public bacon_strip_weapon(index, weapon[]) { if(is_user_alive(index) && equal(weapon, "weapon_", 7)) { new WeaponID = get_weaponid(weapon) if(WeaponID) { new WeaponEnt = fm_find_ent_by_owner(-1, weapon, index) if(WeaponEnt) { if(get_user_weapon(index) == WeaponID) ExecuteHamB(Ham_Weapon_RetireWeapon, WeaponEnt) ExecuteHamB(Ham_RemovePlayerItem, index, WeaponEnt) ExecuteHamB(Ham_Item_Kill, WeaponEnt) set_pev(index, pev_weapons, pev(index, pev_weapons) & ~(1<<WeaponID)) } } } } stock HudMessage(const id, const message[], red = 0, green = 160, blue = 0, Float:x = -1.0, Float:y = 0.65, effects = 2, Float:fxtime = 0.01, Float:holdtime = 3.0, Float:fadeintime = 0.01, Float:fadeouttime = 0.01) { new Players[32], Num = 1, Player; if(id) Players[0] = id; else get_players(Players, Num, "ch"); { for(new i = 0; i < Num; i++) { Player = Players[i] if(is_user_connected(Player)) { new color = (clamp(blue, 0, 255) + (clamp(green, 0, 255) << 8) + (clamp(red, 0, 255) << 16)) message_begin(MSG_ONE_UNRELIABLE, SVC_DIRECTOR, _, Player); write_byte(strlen(message) + 31); write_byte(DRC_CMD_MESSAGE); write_byte(effects); write_long(color); write_long(_:x); write_long(_:y); write_long(_:fadeintime); write_long(_:fadeouttime); write_long(_:holdtime); write_long(_:fxtime); write_string(message); message_end(); } } } } stock ColorChat(const id, const input[], any:...) { new Players[32], Message[191], Num = 1, Player; vformat(Message, 190, input, 3); replace_all(Message, 190, "!g", "^4"); replace_all(Message, 190, "!y", "^1"); replace_all(Message, 190, "!t", "^3"); if(id) Players[0] = id; else get_players(Players, Num, "ch"); { for(new i = 0; i < Num; i++) { Player = Players[i] if(is_user_connected(Player)) { message_begin(MSG_ONE_UNRELIABLE, MSGID_SayText, _, Player); write_byte(Player); write_string(Message); 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 } */
Daca intri in .inl-ul de la arme, vezi acolo la ACCES, 0 este pentru totii jucatorii, 1 pentru VIP si 2 pentru ADMIN.
Acum o intrebare, are rost sa pun un update din acest an?
Armele find refacute, modelele modificate, multe chestii noi, sunt interesat daca il foloseste cineva, sa nu pierd timp degeaba, lasati reply sau PM.
Eu sincer sa fiu pe cate sv de furien am fost nici un plugin de genu , so... mai smecher era serveru complet , doar sa aiba cin e sa se ocupe de el ma refer la boost,donatii
Eu pe servere cum le-ai avut tu as juca, dar pe servere precum cele cu credite ca ale lui capy imi vine a varsa, stiu ca si acolo a muncit , dar neh fiecare cu gusturile lui.
Sunt "alergic" la credite de asemenea :)), addons-ul complet este la vanzare, poate o sa pun si cate ceva pe aici.
-
- Membru, skill +1
- Posts: 489
- Joined: 23 Oct 2015, 22:42
- Detinator Steam: Nu
- Fond eXtream: 0
- Been thanked: 1 time
sDs|Aragon* wrote:Hmm, nu imi amintesc daca versiunea asta are si cutite, meniul ar trebui sa apara automat dupa ce selectezi un pistolalexx13 wrote:ce tre sa fac sa mearga cutitele,ca nu imi apare cutitele la ct si la t ?
Da, o sa fac asta, se poate baga si manual de catre voi destul de usor, folositi un singur native, RegisterPrimary..stephano141 wrote:poti baga si un meniu de arme clasice ? :D
Se poate modifica sa fie cu un sistem de genu.> SKanDaL < wrote:Sunt free toate ? Nu le poti pune pe credite :D ?
Multumesc50Cent # HackeR wrote:Hmm, gg pentru metoda #define
mamamea123 wrote:mi-l poate modifica si mie cineva ? vreau sa ramana doar , meniu de vip si meniu normal , si in meniu de vip sa fie oicw , arma scorpion , DUALMP7A1 ala de e in meniu normal si atat , si in meniu normal sa scoateti DUALMP7A1 cum am zis si sa-l bagati in meniu de vip ! , multumesc
- | Afiseaza codul
//#define POWERS #define MAX_WEAPONS 100 #define EV_INT_WeaponKey EV_INT_impulse #include <amxmodx> #include <amxmisc> #include <cstrike> #include <engine> #include <fakemeta> #include <fakemeta_util> #include <hamsandwich> #include "furien40/furien40.inc" #if defined POWERS #include "furien40/furien40_powers.inc" #endif #define PLUGIN "Weapons Menu" #define VERSION "4.0" #define AUTHOR "Aragon*" //------| Settings |------// #define VIP_LEVEL ADMIN_LEVEL_H #define ADMIN_LEVEL ADMIN_LEVEL_G //--| Primary Weapons |--// #define OICW //#define THANATOS11 //#define THANATOS7 //#define AEOLIS #define JANUS11 //#define JANUS7 #define JANUS3 //#define SPEARGUN //#define PETROLBOOMER //#define SALAMANDER #define AT4 #define ETHEREAL #define RAILCANNON #define PLASMAGUN #define CROSSBOW //#define COMPOUNDBOW #define HK416 //#define AK47KNIFE //#define F2000 #define TAR21 //#define K1ASES #define DUALMP7A1 //#define QUADBARREL #define M1887 #define THOMPSON #define M134 //#define SKULL5 //#define SL8 //#define AW50 //--| Secondary Weapons |--// //#define DRAGONCANNON //#define JANUS1 #define M79 #define DUALDEAGLE #define INFINITY #define SKULL1 #define ANACONDA //--| Knifes |--// //#define CLAWS //#define SUPERCLAWS #define DUALKATANA //#define BALROG9 //#define JANUS9 #define RUYISTICK #define DRAGONSWORD //#define PAPIN //--| Grenades |--// //#define SNARK //#define FIRENADE //#define FROSTNADE //#define SFNADE //--| C4 |--// //#define LASERMINE //------| End Settings |------// enum WeaponsList { WPN_PRIMARY = 0, WPN_SECONDARY, WPN_KNIFE, WPN_GRENADE, WPN_C4 } enum WeaponData { WPN_MENUNAME = 0, WPN_TEAM, WPN_ACCES, WPN_LEVEL, WPN_NAME, WPN_ID, WPN_LIST, WPN_CLIP }; enum WeaponTeam { WPN_TEAM_ALL = 0, WPN_TEAM_T, WPN_TEAM_CT }; enum WeaponAcces { WPN_ACCES_ALL = 0, WPN_ACCES_VIP, WPN_ACCES_ADMIN }; new Menu, bool:ShowMenu[33], Weapons[WeaponsList] = 1, HasChoose[33][WeaponsList][4], WeaponKey[33][WeaponsList][4], PrimaryWeapon[MAX_WEAPONS+1][WeaponData][33], SecondaryWeapon[MAX_WEAPONS+1][WeaponData][33], Knife[MAX_WEAPONS+1][WeaponData][33], Grenade[MAX_WEAPONS+1][WeaponData][33], C4[MAX_WEAPONS+1][WeaponData][33], MSGID_WeaponList, MSGID_DeathMsg, MSGID_ScoreInfo, MSGID_SayText, MSGID_CurWeapon, MSGID_Crosshair/*, MSGID_ScreenFade, MSGID_ScreenShake*/; //------| Weapons Menu |------// #define PRIMARY_WEAPONS_BITSUM (1<<CSW_SCOUT | 1<<CSW_XM1014 | 1<<CSW_MAC10 | 1<<CSW_AUG | 1<<CSW_UMP45 | 1<<CSW_SG550 | 1<<CSW_GALIL | 1<<CSW_FAMAS | 1<<CSW_AWP | 1<<CSW_MP5NAVY | 1<<CSW_M249 | 1<<CSW_M3 | 1<<CSW_M4A1 | 1<<CSW_TMP | 1<<CSW_G3SG1 | 1<<CSW_SG552 | 1<<CSW_AK47 | 1<<CSW_P90) #define SECONDARY_WEAPONS_BITSUM (1<<CSW_GLOCK18 | 1<<CSW_USP | 1<<CSW_P228 | 1<<CSW_DEAGLE | 1<<CSW_FIVESEVEN | 1<<CSW_ELITE) #define AMMOWP_NULL (1<<0 | 1<<CSW_KNIFE | 1<<CSW_FLASHBANG | 1<<CSW_HEGRENADE | 1<<CSW_SMOKEGRENADE | 1<<CSW_C4) new Shell, BloodSpray, BloodDrop, WeaponsAmmo[][] = { { -1, -1 }, { 13, 52 }, { -1, -1 }, { 10, 90 }, { -1, -1 }, { 7, 32 }, { -1, -1 }, { 30, 100 }, { 30, 90 }, { -1, -1 }, { 30, 120 }, { 20, 100 }, { 25, 100 }, { 30, 90 }, { 35, 90 }, { 25, 90 }, { 12, 100 }, { 20, 120 }, { 10, 30 }, { 30, 120 }, { 100, 200 }, { 8, 32 }, { 30, 90 }, { 30, 120 }, { 20, 90 }, { -1, -1 }, { 7, 35 }, { 30, 90 }, { 30, 90 }, { -1, -1 }, { 50, 100 } }, Prefix[] = "[INFO]", Contact[] = "Mihai.Parkour10"; #include "furien40/weapons/Config.h" public plugin_init() { register_plugin(PLUGIN, VERSION, AUTHOR) MSGID_WeaponList = get_user_msgid("WeaponList") MSGID_DeathMsg = get_user_msgid("DeathMsg") MSGID_ScoreInfo = get_user_msgid("ScoreInfo") MSGID_SayText = get_user_msgid("SayText") MSGID_CurWeapon = get_user_msgid("CurWeapon") MSGID_Crosshair = get_user_msgid("Crosshair") /*MSGID_ScreenFade = get_user_msgid("ScreenFade") MSGID_ScreenShake = get_user_msgid("ScreenShake");*/ Shell = engfunc(EngFunc_PrecacheModel, "models/rshell.mdl"); register_clcmd("guns", "CMD_Guns"); register_clcmd("say guns", "CMD_Guns"); register_clcmd("say /guns", "CMD_Guns"); register_clcmd("say_team guns", "CMD_Guns"); register_clcmd("say_team /guns", "CMD_Guns"); register_event("CurWeapon", "EVENT_CurWeapon", "be", "1=1") RegisterHam(Ham_Spawn, "player", "HAM_Spawn_Post", 1); RegisterHam(Ham_Touch, "weaponbox", "HAM_Touch") RegisterHam(Ham_Touch, "armoury_entity", "HAM_Touch") RegisterHam(Ham_Touch, "weapon_shield", "HAM_Touch") weapons_init() } public plugin_precache() { BloodSpray = precache_model("sprites/bloodspray.spr"); BloodDrop = precache_model("sprites/blood.spr"); weapons_precache() } public plugin_natives() { register_native("RegisterPrimary", "native_register_primary", 1) register_native("RegisterSecondary", "native_register_secondary", 1) register_native("RegisterKnife", "native_register_knife", 1) register_native("RegisterGrenade", "native_register_grenade", 1) register_native("RegisterC4", "native_register_c4", 1) register_native("OpenWeaponsMenu", "CMD_Guns", 1) register_native("get_weapon", "get_weapon", 1) register_native("set_weapon", "set_weapon", 1) register_native("get_weapon_data", "get_weapon_data", 1) register_native("set_weapon_data", "set_weapon_data", 1) weapons_natives() } public client_putinserver(id) { ShowMenu[id] = true } public grenade_throw(id, grenade, GrenadeID) { if(is_valid_ent(grenade) && is_user_alive(id)) { for(new i = 1; i < Weapons[WPN_GRENADE]; i++) { if(GrenadeID == str_to_num(Grenade[WPN_ID]) && get_user_weapon(id) == GrenadeID && get_weapon(id, Grenade[WPN_NAME], str_to_num(Grenade[WPN_ID]), i)) entity_set_int(grenade, EV_INT_impulse, i); } } return FMRES_IGNORED; } public EVENT_CurWeapon(id) { if(is_user_connected(id) && is_user_alive(id)) { new Weapon = read_data(2) if(!(AMMOWP_NULL &(1<<Weapon))) { if(fm_get_user_bpammo(id, Weapon) < WeaponsAmmo[Weapon][1]) fm_set_user_bpammo(id, Weapon, WeaponsAmmo[Weapon][1]) } } return PLUGIN_CONTINUE } public HAM_Spawn_Post(id) { if(is_user_alive(id)) { HasChoose[id][WPN_PRIMARY][get_user_team(id)] = false HasChoose[id][WPN_SECONDARY][get_user_team(id)] = false HasChoose[id][WPN_KNIFE][get_user_team(id)] = false HasChoose[id][WPN_GRENADE][get_user_team(id)] = false HasChoose[id][WPN_C4][get_user_team(id)] = false #if defined FIRENADE set_weapon(id, WPN_GRENADE, firenade_id()) #endif #if defined FROSTNADE set_weapon(id, WPN_GRENADE, frostnade_id()) #endif #if defined SFNADE set_weapon(id, WPN_GRENADE, sfnade_id()) #endif if(get_user_team(id) == TEAM_ANTIFURIEN) { if(ShowMenu[id]) EquipmentMenu(id) else if(!ShowMenu[id]) GiveLastWeapons(id) } } return HAM_IGNORED; } public HAM_Touch(ent, id) { if(is_user_alive(id)) { if(get_user_team(id) == TEAM_FURIEN && entity_get_int(ent, EV_INT_impulse) == 2) return HAM_SUPERCEDE if(get_user_team(id) == TEAM_ANTIFURIEN && entity_get_int(ent, EV_INT_impulse) == 1) return HAM_SUPERCEDE } return HAM_IGNORED } public CMD_Guns(id) { if(!ShowMenu[id]) { ShowMenu[id] = true ColorChat(id, "!t%s!gMeniul de!t echipamente!g a fost!t re-activat!g.", Prefix); } if(!HasChoose[id][WPN_PRIMARY][2] && !HasChoose[id][WPN_SECONDARY][2] && !HasChoose[id][WPN_KNIFE][2]) EquipmentMenu(id) else if(!HasChoose[id][WPN_PRIMARY][2]) PrimaryWeaponMenu(id, 0) else if(!HasChoose[id][WPN_SECONDARY][2]) SecondaryWeaponMenu(id) else if(!HasChoose[id][WPN_KNIFE][2]) KnifesMenu(id) return PLUGIN_CONTINUE; } public EquipmentMenu(id) { if(is_user_alive(id) && get_user_team(id) == TEAM_ANTIFURIEN) { menu_cancel(id) Menu = menu_create("\rEchipament", "EquipmentCmd"); menu_additem(Menu, "\wArme noi", "1", 0); if(WeaponKey[id][WPN_PRIMARY][2] && WeaponKey[id][WPN_SECONDARY][2] && WeaponKey[id][WPN_KNIFE][2]) { menu_additem(Menu, "\wArmele anterioare", "2", 0); menu_additem(Menu, "\wNu arata meniul din nou^n", "3", 0); } else { menu_additem(Menu, "\dArmele anterioare", "2", 0); menu_additem(Menu, "\dNu arata meniul din nou^n", "3", 0); } menu_setprop(Menu, MPROP_EXIT, MEXIT_NEVER) menu_display(id, Menu, 0); } } public EquipmentCmd(id, menu, item) { if(item == MENU_EXIT || !is_user_alive(id) || get_user_team(id) != TEAM_ANTIFURIEN) { menu_destroy(menu); return PLUGIN_HANDLED; } new Data[6], Name[64], Access, CallBack; menu_item_getinfo(menu, item, Access, Data, 5, Name, 63, CallBack); menu_destroy(menu); switch(str_to_num(Data)) { case 1: { if(!HasChoose[id][WPN_PRIMARY][2]) PrimaryWeaponMenu(id, 0) else if(!HasChoose[id][WPN_SECONDARY][2]) SecondaryWeaponMenu(id) else if(!HasChoose[id][WPN_KNIFE][2]) KnifesMenu(id) } case 2: { if(WeaponKey[id][WPN_PRIMARY][2] && WeaponKey[id][WPN_SECONDARY][2] && WeaponKey[id][WPN_KNIFE][2]) GiveLastWeapons(id) else EquipmentMenu(id) } case 3: { if(WeaponKey[id][WPN_PRIMARY][2] && WeaponKey[id][WPN_SECONDARY][2] && WeaponKey[id][WPN_KNIFE][2]) { ShowMenu[id] = false GiveLastWeapons(id) } else EquipmentMenu(id) } } return PLUGIN_HANDLED; } public PrimaryWeaponMenu(id, VIP) { if(is_user_alive(id) && get_user_team(id) == TEAM_ANTIFURIEN && !HasChoose[id][WPN_PRIMARY][2]) { menu_cancel(id); Menu = menu_create("\rPrimar", "PrimaryCmd"); if(VIP == 0) { new UltimateWeapon = 0, VIPWeapon = 0 for(new i = 1; i < Weapons[WPN_PRIMARY]; i++) { if(WeaponTeam:str_to_num(PrimaryWeapon[WPN_TEAM]) != WPN_TEAM_T && WeaponAcces:str_to_num(PrimaryWeapon[WPN_ACCES]) == WPN_ACCES_ADMIN) UltimateWeapon++ if(WeaponTeam:str_to_num(PrimaryWeapon[WPN_TEAM]) != WPN_TEAM_T && WeaponAcces:str_to_num(PrimaryWeapon[WPN_ACCES]) == WPN_ACCES_VIP) VIPWeapon++ } if(UltimateWeapon) { if(get_user_flags(id) & ADMIN_LEVEL) menu_additem(Menu, "\rUltimate Weapons", "-2", 0); else menu_additem(Menu, "\dUltimate Weapons \w- \rOnly ADMIN", "-2", 0); } if(VIPWeapon) { if(get_user_flags(id) & VIP_LEVEL) menu_additem(Menu, "\rVIP Weapons", "-1", 0); else menu_additem(Menu, "\dVIP Weapons \w- \rOnly VIP", "-1", 0); } if(UltimateWeapon || VIPWeapon) menu_addblank(Menu, 0); menu_setprop(Menu, MPROP_EXIT, MEXIT_NEVER) } else { menu_setprop(Menu, MPROP_EXITNAME, "Meniu Principal") menu_setprop(Menu, MPROP_EXIT, MEXIT_ALL) } #if defined POWERS for(new i = 0; i < MAX_LEVEL; i++) { for(new k = 1; k < Weapons[WPN_PRIMARY]; k++) { if(str_to_num(PrimaryWeapon[k][WPN_LEVEL]) == i && WeaponTeam:str_to_num(PrimaryWeapon[k][WPN_TEAM]) != WPN_TEAM_T && str_to_num(PrimaryWeapon[k][WPN_ACCES]) == VIP) AddWeapon(id, Menu, PrimaryWeapon[k][WPN_MENUNAME], PrimaryWeapon[k][WPN_ACCES], PrimaryWeapon[k][WPN_LEVEL], k); } } #else for(new i = 1; i < Weapons[WPN_PRIMARY]; i++) { if(WeaponTeam:str_to_num(PrimaryWeapon[WPN_TEAM]) != WPN_TEAM_T && str_to_num(PrimaryWeapon[WPN_ACCES]) == VIP) AddWeapon(id, Menu, PrimaryWeapon[WPN_MENUNAME], PrimaryWeapon[i][WPN_ACCES], PrimaryWeapon[i][WPN_LEVEL], i); } #endif menu_display(id, Menu, 0); } } public PrimaryCmd(id, menu, item) { if(!is_user_alive(id) || get_user_team(id) != TEAM_ANTIFURIEN || HasChoose[id][WPN_PRIMARY][2]) { menu_destroy(menu); return PLUGIN_HANDLED; } else if(item == MENU_EXIT) { menu_destroy(menu); PrimaryWeaponMenu(id, 0) return PLUGIN_HANDLED; } new Data[6], Name[64], Access, CallBack; menu_item_getinfo(menu, item, Access, Data, 5, Name, 63, CallBack); menu_destroy(menu); if(equal(Data, "-2")) { if(get_user_flags(id) & ADMIN_LEVEL) PrimaryWeaponMenu(id, 2) else { if(!HasChoose[id][WPN_PRIMARY][2]) PrimaryWeaponMenu(id, 0) else if(!HasChoose[id][WPN_SECONDARY][2]) SecondaryWeaponMenu(id) else if(!HasChoose[id][WPN_KNIFE][2]) KnifesMenu(id) ColorChat(id, "!t%s!gPentru a cumpara!t Admin!g adauga ID:!t %s", Prefix, Contact); } } else if(equal(Data, "-1")) { if(get_user_flags(id) & VIP_LEVEL) PrimaryWeaponMenu(id, 1) else { if(!HasChoose[id][WPN_PRIMARY][2]) PrimaryWeaponMenu(id, 0) else if(!HasChoose[id][WPN_SECONDARY][2]) SecondaryWeaponMenu(id) else if(!HasChoose[id][WPN_KNIFE][2]) KnifesMenu(id) ColorChat(id, "!t%s!gPentru a cumpara!t VIP!g adauga ID:!t %s", Prefix, Contact); } } else { GivePrimary(id, str_to_num(Data)) if(!HasChoose[id][WPN_PRIMARY][2]) PrimaryWeaponMenu(id, 0) else SecondaryWeaponMenu(id) } return PLUGIN_HANDLED; } public SecondaryWeaponMenu(id) { if(is_user_alive(id) && get_user_team(id) == TEAM_ANTIFURIEN && !HasChoose[id][WPN_SECONDARY][2]) { menu_cancel(id); Menu = menu_create("\rSecundar", "SecondaryCmd"); #if defined POWERS for(new i = 0; i < MAX_LEVEL; i++) { for(new k = 1; k < Weapons[WPN_SECONDARY]; k++) { if(WeaponTeam:str_to_num(SecondaryWeapon[k][WPN_TEAM]) != WPN_TEAM_T && str_to_num(SecondaryWeapon[k][WPN_LEVEL]) == i) AddWeapon(id, Menu, SecondaryWeapon[k][WPN_MENUNAME], SecondaryWeapon[k][WPN_ACCES], SecondaryWeapon[k][WPN_LEVEL], k); } } #else for(new i = 1; i < Weapons[WPN_SECONDARY]; i++) { if(WeaponTeam:str_to_num(SecondaryWeapon[i][WPN_TEAM]) != WPN_TEAM_T) AddWeapon(id, Menu, SecondaryWeapon[i][WPN_MENUNAME], SecondaryWeapon[i][WPN_ACCES], SecondaryWeapon[i][WPN_LEVEL], i); } #endif menu_setprop(Menu, MPROP_EXIT, MEXIT_NEVER) menu_display(id, Menu, 0); } return PLUGIN_CONTINUE; } public SecondaryCmd(id, menu, item) { if(item == MENU_EXIT || !is_user_alive(id) || get_user_team(id) != TEAM_ANTIFURIEN || HasChoose[id][WPN_SECONDARY][2]) { menu_destroy(menu); return PLUGIN_HANDLED; } new Data[6], Name[64], Access, CallBack; menu_item_getinfo(menu, item, Access, Data, 5, Name, 63, CallBack); menu_destroy(menu); GiveSecondary(id, str_to_num(Data)) if(!HasChoose[id][WPN_SECONDARY][2]) SecondaryWeaponMenu(id) else KnifesMenu(id) return PLUGIN_HANDLED; } public KnifesMenu(id) { if(is_user_alive(id) && get_user_team(id) == TEAM_ANTIFURIEN && !HasChoose[id][WPN_KNIFE][2]) { menu_cancel(id); Menu = menu_create("\rCutit", "KnifesCmd"); #if defined POWERS for(new i = 0; i < MAX_LEVEL; i++) { for(new k = 1; k < Weapons[WPN_KNIFE]; k++) { if(WeaponTeam:str_to_num(Knife[k][WPN_TEAM]) != WPN_TEAM_T && str_to_num(Knife[k][WPN_LEVEL]) == i) AddWeapon(id, Menu, Knife[k][WPN_MENUNAME], Knife[k][WPN_ACCES], Knife[k][WPN_LEVEL], k); } } #else for(new i = 1; i < Weapons[WPN_KNIFE]; i++) { if(WeaponTeam:str_to_num(Knife[i][WPN_TEAM]) != WPN_TEAM_T) AddWeapon(id, Menu, Knife[i][WPN_MENUNAME], Knife[i][WPN_ACCES], Knife[i][WPN_LEVEL], i); } #endif menu_setprop(Menu, MPROP_EXIT, MEXIT_NEVER) menu_display(id, Menu, 0); } return PLUGIN_CONTINUE; } public KnifesCmd(id, menu, item) { if(item == MENU_EXIT || !is_user_alive(id) || get_user_team(id) != TEAM_ANTIFURIEN || HasChoose[id][WPN_KNIFE][2]) { menu_destroy(menu); return PLUGIN_HANDLED; } new Data[6], Name[64], Access, CallBack; menu_item_getinfo(menu, item, Access, Data,5, Name, 63, CallBack); menu_destroy(menu); GiveKnife(id, str_to_num(Data)) if(!HasChoose[id][WPN_KNIFE][2]) KnifesMenu(id) return PLUGIN_HANDLED; } public GiveLastWeapons(id) { if(!HasChoose[id][WPN_PRIMARY][2] && WeaponKey[id][WPN_PRIMARY][2] != -1) GivePrimary(id, WeaponKey[id][WPN_PRIMARY][2]) if(!HasChoose[id][WPN_SECONDARY][2] && WeaponKey[id][WPN_SECONDARY][2] != -1) GiveSecondary(id, WeaponKey[id][WPN_SECONDARY][2]) if(!HasChoose[id][WPN_KNIFE][2] && WeaponKey[id][WPN_KNIFE][2] != -1) GiveKnife(id, WeaponKey[id][WPN_KNIFE][2]) if(!HasChoose[id][WPN_PRIMARY][2]) { WeaponKey[id][WPN_PRIMARY][2] = -1 PrimaryWeaponMenu(id, 0) } else if(!HasChoose[id][WPN_SECONDARY][2]) { WeaponKey[id][WPN_SECONDARY][2] = -1 SecondaryWeaponMenu(id) } else if(!HasChoose[id][WPN_KNIFE][2]) { WeaponKey[id][WPN_KNIFE][2] = -1 KnifesMenu(id) } } public native_register_primary(MenuName[], WeaponTeam:Team, WeaponAcces:Acces, Level[], WeaponName[], WeaponID, Weapon_List[], WeaponClip[]) { param_convert(1) param_convert(4) param_convert(5) param_convert(7) param_convert(8) return RegisterPrimary(MenuName, Team, Acces, Level, WeaponName, WeaponID, Weapon_List, WeaponClip) } public native_register_secondary(MenuName[], WeaponTeam:Team, WeaponAcces:Acces, Level[], WeaponName[], WeaponID, Weapon_List[], WeaponClip[]) { param_convert(1) param_convert(4) param_convert(5) param_convert(7) param_convert(8) return RegisterSecondary(MenuName, Team, Acces, Level, WeaponName, WeaponID, Weapon_List, WeaponClip) } public native_register_knife(MenuName[], WeaponTeam:Team, WeaponAcces:Acces, Level[], Weapon_List[]) { param_convert(1) param_convert(4) param_convert(5) return RegisterKnife(MenuName, Team, Acces, Level, Weapon_List) } public native_register_grenade(MenuName[], WeaponTeam:Team, WeaponAcces:Acces, Level[], WeaponName[], WeaponID, Weapon_List[]) { param_convert(1) param_convert(4) param_convert(5) param_convert(7) return RegisterGrenade(MenuName, Team, Acces, Level, WeaponName, WeaponID, Weapon_List) } public native_register_c4(MenuName[], WeaponTeam:Team, WeaponAcces:Acces, Level[], Weapon_List[]) { param_convert(1) param_convert(4) param_convert(5) return RegisterC4(MenuName, Team, Acces, Level, Weapon_List) } public get_weapon(id, weapon_[], CSW_, WeaponID) { if(is_user_connected(id)) { new Weapon = find_ent_by_owner(-1, weapon_, id); if(is_user_alive(id) && user_has_weapon(id, CSW_) && pev_valid(Weapon)) return entity_get_int(Weapon, EV_INT_impulse) == WeaponID ? true : false } return false } public set_weapon(id, WeaponsList:WeaponSet, WeaponID) { switch(WeaponSet) { case WPN_PRIMARY: return GivePrimary(id, WeaponID) case WPN_SECONDARY: return GiveSecondary(id, WeaponID) case WPN_KNIFE: return GiveKnife(id, WeaponID) case WPN_GRENADE: return GiveGrenade(id, WeaponID) case WPN_C4: return GiveC4(id, WeaponID) } return false } public get_weapon_data(WeaponsList:WeaponSet, WeaponID, WeaponData:Data, Buffer[], len) { param_convert(4) if(WeaponID > -1 && WeaponID < Weapons[WeaponSet]) { switch(WeaponSet) { case WPN_PRIMARY: format(Buffer, len, PrimaryWeapon[WeaponID][Data]) case WPN_SECONDARY: format(Buffer, len, SecondaryWeapon[WeaponID][Data]) case WPN_KNIFE: format(Buffer, len, Knife[WeaponID][Data]) case WPN_GRENADE: format(Buffer, len, Grenade[WeaponID][Data]) case WPN_C4: format(Buffer, len, C4[WeaponID][Data]) } } } public set_weapon_data(WeaponsList:WeaponSet, WeaponID, WeaponData:Data, Buffer[]) { param_convert(4) if(WeaponID > -1 && WeaponID < Weapons[WeaponSet]) { switch(WeaponSet) { case WPN_PRIMARY: format(PrimaryWeapon[WeaponID][Data], 32, Buffer) case WPN_SECONDARY: format(PrimaryWeapon[WeaponID][Data], 32, Buffer) case WPN_KNIFE: format(PrimaryWeapon[WeaponID][Data], 32, Buffer) case WPN_GRENADE: format(Grenade[WeaponID][Data], 32, Buffer) case WPN_C4: format(C4[WeaponID][Data], 32, Buffer) } } } //////////////////////////////////////////////////////////////////////////////////////////////////////////// // Stock's | //========================================================================================================== public AddWeapon(id, Menu, Name[], Acces[], Level[], WeaponID) { new Weapon[64], Num[32]; if(WeaponAcces:str_to_num(Acces) == WPN_ACCES_VIP && !(get_user_flags(id) & VIP_LEVEL)) formatex(Weapon, sizeof(Weapon)-1, "\d%s \w- \rOnly VIP", Name); else if(WeaponAcces:str_to_num(Acces) == WPN_ACCES_ADMIN && !(get_user_flags(id) & ADMIN_LEVEL)) formatex(Weapon, sizeof(Weapon)-1, "\d%s \w- \rOnly ADMIN", Name); #if defined POWERS else if(get_user_level(id) < (str_to_num(Level) > MAX_LEVEL ? MAX_LEVEL : str_to_num(Level))) formatex(Weapon, sizeof(Weapon)-1, "\d%s \w- \rLocked \r[\yLevel: \r%d]", Name, (str_to_num(Level) > MAX_LEVEL) ? MAX_LEVEL : str_to_num(Level)); #endif else formatex(Weapon, sizeof(Weapon)-1, "\w%s", Name); formatex(Num, sizeof(Num)-1, "%d", WeaponID); menu_additem(Menu, Weapon, Num, 0); return } public CanAcces(id, Team[], Acces[], Level[]) { if(WeaponAcces:str_to_num(Acces) == WPN_ACCES_VIP && !(get_user_flags(id) & VIP_LEVEL) || WeaponAcces:str_to_num(Acces) == WPN_ACCES_ADMIN && !(get_user_flags(id) & ADMIN_LEVEL)) return false; if(WeaponTeam:str_to_num(Team) == WPN_TEAM_T && WeaponTeam:get_user_team(id) != WPN_TEAM_T || WeaponTeam:str_to_num(Team) == WPN_TEAM_CT && WeaponTeam:get_user_team(id) != WPN_TEAM_CT) return false; #if defined POWERS else if(get_user_level(id) < (str_to_num(Level) > MAX_LEVEL ? MAX_LEVEL : str_to_num(Level))) return false; #endif return true; } stock RegisterPrimary(MenuName[], WeaponTeam:Team, WeaponAcces:Acces, Level[] = "0", WeaponName[], WeaponID, Weapon_List[] = "None", WeaponClip[] = "0") { if(Weapons[WPN_PRIMARY] < 1) Weapons[WPN_PRIMARY] = 1 format(PrimaryWeapon[Weapons[WPN_PRIMARY]][WPN_MENUNAME], 32, MenuName) if(Team > WeaponTeam || Team < WPN_TEAM_ALL) format(PrimaryWeapon[Weapons[WPN_PRIMARY]][WPN_TEAM], 32, "%d", WPN_TEAM_ALL) else format(PrimaryWeapon[Weapons[WPN_PRIMARY]][WPN_TEAM], 32, "%d", Team) if(Acces > WeaponAcces || Acces < WPN_ACCES_ALL) format(PrimaryWeapon[Weapons[WPN_PRIMARY]][WPN_ACCES], 32, "%d", WPN_ACCES_ALL) else format(PrimaryWeapon[Weapons[WPN_PRIMARY]][WPN_ACCES], 32, "%d", Acces) format(PrimaryWeapon[Weapons[WPN_PRIMARY]][WPN_LEVEL], 32, Level) format(PrimaryWeapon[Weapons[WPN_PRIMARY]][WPN_NAME], 32, WeaponName) format(PrimaryWeapon[Weapons[WPN_PRIMARY]][WPN_ID], 32, "%d", WeaponID) format(PrimaryWeapon[Weapons[WPN_PRIMARY]][WPN_LIST], 32, Weapon_List) format(PrimaryWeapon[Weapons[WPN_PRIMARY]][WPN_CLIP], 32, WeaponClip) Weapons[WPN_PRIMARY]++ return Weapons[WPN_PRIMARY] - 1 } stock RegisterSecondary(MenuName[], WeaponTeam:Team, WeaponAcces:Acces, Level[] = "0", WeaponName[], WeaponID, Weapon_List[] = "None", WeaponClip[] = "0") { if(Weapons[WPN_SECONDARY] < 1) Weapons[WPN_SECONDARY] = 1 format(SecondaryWeapon[Weapons[WPN_SECONDARY]][WPN_MENUNAME], 32, MenuName) if(Team > WeaponTeam || Team < WPN_TEAM_ALL) format(SecondaryWeapon[Weapons[WPN_SECONDARY]][WPN_TEAM], 32, "%d", WPN_TEAM_ALL) else format(SecondaryWeapon[Weapons[WPN_SECONDARY]][WPN_TEAM], 32, "%d", Team) if(Acces > WeaponAcces || Acces < WPN_ACCES_ALL) format(SecondaryWeapon[Weapons[WPN_SECONDARY]][WPN_ACCES], 32, "%d", WPN_ACCES_ALL) else format(SecondaryWeapon[Weapons[WPN_SECONDARY]][WPN_ACCES], 32, "%d", Acces) format(SecondaryWeapon[Weapons[WPN_SECONDARY]][WPN_LEVEL], 32, Level) format(SecondaryWeapon[Weapons[WPN_SECONDARY]][WPN_NAME], 32, WeaponName) format(SecondaryWeapon[Weapons[WPN_SECONDARY]][WPN_ID], 32, "%d", WeaponID) format(SecondaryWeapon[Weapons[WPN_SECONDARY]][WPN_LIST], 32, Weapon_List) format(SecondaryWeapon[Weapons[WPN_SECONDARY]][WPN_CLIP], 32, WeaponClip) Weapons[WPN_SECONDARY]++ return Weapons[WPN_SECONDARY] - 1 } stock RegisterKnife(MenuName[], WeaponTeam:Team, WeaponAcces:Acces, Level[] = "0", Weapon_List[] = "None") { if(Weapons[WPN_KNIFE] < 1) Weapons[WPN_KNIFE] = 1 format(Knife[Weapons[WPN_KNIFE]][WPN_MENUNAME], 32, MenuName) if(Team > WeaponTeam || Team < WPN_TEAM_ALL) format(Knife[Weapons[WPN_KNIFE]][WPN_TEAM], 32, "%d", WPN_TEAM_ALL) else format(Knife[Weapons[WPN_KNIFE]][WPN_TEAM], 32, "%d", Team) if(Acces > WeaponAcces || Acces < WPN_ACCES_ALL) format(Knife[Weapons[WPN_KNIFE]][WPN_ACCES], 32, "%d", WPN_ACCES_ALL) else format(Knife[Weapons[WPN_KNIFE]][WPN_ACCES], 32, "%d", Acces) format(Knife[Weapons[WPN_KNIFE]][WPN_LEVEL], 32, Level) format(Knife[Weapons[WPN_KNIFE]][WPN_LIST], 32, Weapon_List) Weapons[WPN_KNIFE]++ return Weapons[WPN_KNIFE] - 1 } stock RegisterGrenade(MenuName[], WeaponTeam:Team, WeaponAcces:Acces, Level[] = "0", WeaponName[], WeaponID, Weapon_List[] = "None") { if(Weapons[WPN_GRENADE] < 1) Weapons[WPN_GRENADE] = 1 format(Grenade[Weapons[WPN_GRENADE]][WPN_MENUNAME], 32, MenuName) if(Team > WeaponTeam || Team < WPN_TEAM_ALL) format(Grenade[Weapons[WPN_GRENADE]][WPN_TEAM], 32, "%d", WPN_TEAM_ALL) else format(Grenade[Weapons[WPN_GRENADE]][WPN_TEAM], 32, "%d", Team) if(Acces > WeaponAcces || Acces < WPN_ACCES_ALL) format(Grenade[Weapons[WPN_GRENADE]][WPN_ACCES], 32, "%d", WPN_ACCES_ALL) else format(Grenade[Weapons[WPN_GRENADE]][WPN_ACCES], 32, "%d", Acces) format(Grenade[Weapons[WPN_GRENADE]][WPN_LEVEL], 32, Level) format(Grenade[Weapons[WPN_GRENADE]][WPN_NAME], 32, WeaponName) format(Grenade[Weapons[WPN_GRENADE]][WPN_ID], 32, "%d", WeaponID) format(Grenade[Weapons[WPN_GRENADE]][WPN_LIST], 32, Weapon_List) Weapons[WPN_GRENADE]++ return Weapons[WPN_GRENADE] - 1 } stock RegisterC4(MenuName[], WeaponTeam:Team, WeaponAcces:Acces, Level[] = "0", Weapon_List[] = "None") { if(Weapons[WPN_C4] < 1) Weapons[WPN_C4] = 1 format(C4[Weapons[WPN_C4]][WPN_MENUNAME], 32, MenuName) if(Team > WeaponTeam || Team < WPN_TEAM_ALL) format(C4[Weapons[WPN_C4]][WPN_TEAM], 32, "%d", WPN_TEAM_ALL) else format(C4[Weapons[WPN_C4]][WPN_TEAM], 32, "%d", Team) if(Acces > WeaponAcces || Acces < WPN_ACCES_ALL) format(C4[Weapons[WPN_C4]][WPN_ACCES], 32, "%d", WPN_ACCES_ALL) else format(C4[Weapons[WPN_C4]][WPN_ACCES], 32, "%d", Acces) format(C4[Weapons[WPN_C4]][WPN_LEVEL], 32, Level) format(C4[Weapons[WPN_C4]][WPN_LIST], 32, Weapon_List) Weapons[WPN_C4]++ return Weapons[WPN_C4] - 1 } public GivePrimary(id, WeaponID) { if(is_user_alive(id)) { if(WeaponID > 0 && WeaponID < Weapons[WPN_PRIMARY]) { if(CanAcces(id, PrimaryWeapon[WeaponID][WPN_TEAM], PrimaryWeapon[WeaponID][WPN_ACCES], PrimaryWeapon[WeaponID][WPN_LEVEL])) { new Weapon, Impulse = entity_get_int(id, EV_INT_impulse) HasChoose[id][WPN_PRIMARY][get_user_team(id)] = true WeaponKey[id][WPN_PRIMARY][get_user_team(id)] = WeaponID /*if(get_user_team(id) == TEAM_FURIEN) special_primary(id, true)*/ drop_primary_weapons(id); if(equal(PrimaryWeapon[WeaponID][WPN_LIST], "None")) WeaponList(id, str_to_num(PrimaryWeapon[WeaponID][WPN_ID]), PrimaryWeapon[WeaponID][WPN_NAME], 0) else WeaponList(id, str_to_num(PrimaryWeapon[WeaponID][WPN_ID]), PrimaryWeapon[WeaponID][WPN_LIST], 0) entity_set_int(id, EV_INT_impulse, WeaponID); Weapon = fm_give_item(id, PrimaryWeapon[WeaponID][WPN_NAME]); entity_set_int(Weapon, EV_INT_impulse, WeaponID) entity_set_int(id, EV_INT_impulse, Impulse); if(!equal(PrimaryWeapon[WeaponID][WPN_CLIP], "0")) cs_set_weapon_ammo(Weapon, str_to_num(PrimaryWeapon[WeaponID][WPN_CLIP])) return true } } } return false } public GiveSecondary(id, WeaponID) { if(is_user_alive(id)) { if(WeaponID > 0 && WeaponID < Weapons[WPN_SECONDARY]) { if(CanAcces(id, SecondaryWeapon[WeaponID][WPN_TEAM], SecondaryWeapon[WeaponID][WPN_ACCES], SecondaryWeapon[WeaponID][WPN_LEVEL])) { new Weapon, Impulse = entity_get_int(id, EV_INT_impulse) HasChoose[id][WPN_SECONDARY][get_user_team(id)] = true WeaponKey[id][WPN_SECONDARY][get_user_team(id)] = WeaponID /*if(get_user_team(id) == TEAM_FURIEN) special_secondary(id, true)*/ drop_secondary_weapons(id); if(equal(SecondaryWeapon[WeaponID][WPN_LIST], "None")) WeaponList(id, str_to_num(SecondaryWeapon[WeaponID][WPN_ID]), SecondaryWeapon[WeaponID][WPN_NAME], 0) else WeaponList(id, str_to_num(SecondaryWeapon[WeaponID][WPN_ID]), SecondaryWeapon[WeaponID][WPN_LIST], 0) entity_set_int(id, EV_INT_impulse, WeaponID); Weapon = fm_give_item(id, SecondaryWeapon[WeaponID][WPN_NAME]); entity_set_int(Weapon, EV_INT_impulse, WeaponID) entity_set_int(id, EV_INT_impulse, Impulse); if(!equal(SecondaryWeapon[WeaponID][WPN_CLIP], "0")) cs_set_weapon_ammo(Weapon, str_to_num(SecondaryWeapon[WeaponID][WPN_CLIP])) return true } } } return false } public GiveKnife(id, WeaponID) { if(is_user_alive(id)) { if(WeaponID > 0 && WeaponID < Weapons[WPN_KNIFE]) { if(CanAcces(id, Knife[WeaponID][WPN_TEAM], Knife[WeaponID][WPN_ACCES], Knife[WeaponID][WPN_LEVEL])) { new Weapon, Impulse = entity_get_int(id, EV_INT_impulse) HasChoose[id][WPN_KNIFE][get_user_team(id)] = true WeaponKey[id][WPN_KNIFE][get_user_team(id)] = WeaponID bacon_strip_weapon(id, "weapon_knife"); if(equal(Knife[WeaponID][WPN_LIST], "None")) WeaponList(id, CSW_KNIFE, Knife[WeaponID][WPN_NAME], 0) else WeaponList(id, CSW_KNIFE, Knife[WeaponID][WPN_LIST], 0) entity_set_int(id, EV_INT_impulse, WeaponID); Weapon = fm_give_item(id, "weapon_knife"); entity_set_int(Weapon, EV_INT_impulse, WeaponID) entity_set_int(id, EV_INT_impulse, Impulse); return true } } } return false } public GiveGrenade(id, WeaponID) { if(is_user_alive(id)) { if(WeaponID > 0 && WeaponID < Weapons[WPN_GRENADE]) { if(CanAcces(id, Grenade[WeaponID][WPN_TEAM], Grenade[WeaponID][WPN_ACCES], Grenade[WeaponID][WPN_LEVEL])) { new Weapon, Impulse = entity_get_int(id, EV_INT_impulse) HasChoose[id][WPN_GRENADE][get_user_team(id)] = true WeaponKey[id][WPN_GRENADE][get_user_team(id)] = WeaponID bacon_strip_weapon(id, Grenade[WeaponID][WPN_NAME]); if(equal(Grenade[WeaponID][WPN_LIST], "None")) WeaponList(id, str_to_num(Grenade[WeaponID][WPN_ID]), Grenade[WeaponID][WPN_NAME], 0) else WeaponList(id, str_to_num(Grenade[WeaponID][WPN_ID]), Grenade[WeaponID][WPN_LIST], 0) entity_set_int(id, EV_INT_impulse, WeaponID); Weapon = fm_give_item(id, Grenade[WeaponID][WPN_NAME]); entity_set_int(Weapon, EV_INT_impulse, WeaponID) entity_set_int(id, EV_INT_impulse, Impulse); return true } } } return false } public GiveC4(id, WeaponID) { if(is_user_alive(id)) { if(WeaponID > 0 && WeaponID < Weapons[WPN_C4]) { if(CanAcces(id, C4[WeaponID][WPN_TEAM], C4[WeaponID][WPN_ACCES], C4[WeaponID][WPN_LEVEL])) { new Weapon, Impulse = entity_get_int(id, EV_INT_impulse) HasChoose[id][WPN_C4][get_user_team(id)] = true WeaponKey[id][WPN_C4][get_user_team(id)] = WeaponID bacon_strip_weapon(id, "weapon_c4"); if(equal(C4[WeaponID][WPN_LIST], "None")) WeaponList(id, CSW_C4, C4[WeaponID][WPN_NAME], 0) else WeaponList(id, CSW_C4, C4[WeaponID][WPN_LIST], 0) entity_set_int(id, EV_INT_impulse, WeaponID); Weapon = fm_give_item(id, "weapon_c4"); entity_set_int(Weapon, EV_INT_impulse, WeaponID) entity_set_int(id, EV_INT_impulse, Impulse); return true } } } return false } stock WeaponList(id, CSW_WEAPON, const Weapon[], Flag=0) { switch(CSW_WEAPON) { case CSW_P228: { message_begin(MSG_ONE, MSGID_WeaponList, _, id); write_string(Weapon); // WeaponName write_byte(9); // PrimaryAmmoID write_byte(52); // PrimaryAmmoMaxAmount write_byte(-1); // SecondaryAmmoID write_byte(-1); // SecondaryAmmoMaxAmount write_byte(1); // SlotID (0...N) write_byte(3); // NumberInSlot (1...N) write_byte(CSW_P228); // WeaponID write_byte(Flag); // Flags message_end(); } case CSW_SCOUT: { message_begin(MSG_ONE, MSGID_WeaponList, _, id); write_string(Weapon); // WeaponName write_byte(2); // PrimaryAmmoID write_byte(90); // PrimaryAmmoMaxAmount write_byte(-1); // SecondaryAmmoID write_byte(-1); // SecondaryAmmoMaxAmount write_byte(0); // SlotID (0...N) write_byte(9); // NumberInSlot (1...N) write_byte(CSW_SCOUT); // WeaponID write_byte(Flag); // Flags message_end(); } case CSW_HEGRENADE: { message_begin(MSG_ONE, MSGID_WeaponList, _, id); write_string(Weapon); // WeaponName write_byte(12); // PrimaryAmmoID write_byte(1); // PrimaryAmmoMaxAmount write_byte(-1); // SecondaryAmmoID write_byte(-1); // SecondaryAmmoMaxAmount write_byte(3); // SlotID (0...N) write_byte(1); // NumberInSlot (1...N) write_byte(CSW_HEGRENADE); // WeaponID write_byte(Flag); // Flags message_end(); } case CSW_XM1014: { message_begin(MSG_ONE, MSGID_WeaponList, _, id); write_string(Weapon); // WeaponName write_byte(5); // PrimaryAmmoID write_byte(32); // PrimaryAmmoMaxAmount write_byte(-1); // SecondaryAmmoID write_byte(-1); // SecondaryAmmoMaxAmount write_byte(0); // SlotID (0...N) write_byte(12); // NumberInSlot (1...N) write_byte(CSW_XM1014); // WeaponID write_byte(Flag); // Flags message_end(); } case CSW_C4: { message_begin(MSG_ONE, MSGID_WeaponList, _, id); write_string(Weapon); // WeaponName write_byte(14); // PrimaryAmmoID write_byte(1); // PrimaryAmmoMaxAmount write_byte(-1); // SecondaryAmmoID write_byte(-1); // SecondaryAmmoMaxAmount write_byte(4); // SlotID (0...N) write_byte(3); // NumberInSlot (1...N) write_byte(CSW_C4); // WeaponID write_byte(Flag); // Flags message_end(); } case CSW_MAC10: { message_begin(MSG_ONE, MSGID_WeaponList, _, id); write_string(Weapon); // WeaponName write_byte(6); // PrimaryAmmoID write_byte(100); // PrimaryAmmoMaxAmount write_byte(-1); // SecondaryAmmoID write_byte(-1); // SecondaryAmmoMaxAmount write_byte(0); // SlotID (0...N) write_byte(13); // NumberInSlot (1...N) write_byte(CSW_MAC10); // WeaponID write_byte(Flag); // Flags message_end(); } case CSW_AUG: { message_begin(MSG_ONE, MSGID_WeaponList, _, id); write_string(Weapon); // WeaponName write_byte(4); // PrimaryAmmoID write_byte(90); // PrimaryAmmoMaxAmount write_byte(-1); // SecondaryAmmoID write_byte(-1); // SecondaryAmmoMaxAmount write_byte(0); // SlotID (0...N) write_byte(14); // NumberInSlot (1...N) write_byte(CSW_AUG); // WeaponID write_byte(Flag); // Flags message_end(); } case CSW_SMOKEGRENADE: { message_begin(MSG_ONE, MSGID_WeaponList, _, id); write_string(Weapon); // WeaponName write_byte(13); // PrimaryAmmoID write_byte(1); // PrimaryAmmoMaxAmount write_byte(-1); // SecondaryAmmoID write_byte(-1); // SecondaryAmmoMaxAmount write_byte(3); // SlotID (0...N) write_byte(3); // NumberInSlot (1...N) write_byte(CSW_SMOKEGRENADE); // WeaponID write_byte(Flag); // Flags message_end(); } case CSW_ELITE: { message_begin(MSG_ONE, MSGID_WeaponList, _, id); write_string(Weapon); // WeaponName write_byte(10); // PrimaryAmmoID write_byte(120); // PrimaryAmmoMaxAmount write_byte(-1); // SecondaryAmmoID write_byte(-1); // SecondaryAmmoMaxAmount write_byte(1); // SlotID (0...N) write_byte(5); // NumberInSlot (1...N) write_byte(CSW_ELITE); // WeaponID write_byte(Flag); // Flags message_end(); } case CSW_FIVESEVEN: { message_begin(MSG_ONE, MSGID_WeaponList, _, id); write_string(Weapon); // WeaponName write_byte(7); // PrimaryAmmoID write_byte(100); // PrimaryAmmoMaxAmount write_byte(-1); // SecondaryAmmoID write_byte(-1); // SecondaryAmmoMaxAmount write_byte(1); // SlotID (0...N) write_byte(6); // NumberInSlot (1...N) write_byte(CSW_FIVESEVEN); // WeaponID write_byte(Flag); // Flags message_end(); } case CSW_UMP45: { message_begin(MSG_ONE, MSGID_WeaponList, _, id); write_string(Weapon); // WeaponName write_byte(6); // PrimaryAmmoID write_byte(100); // PrimaryAmmoMaxAmount write_byte(-1); // SecondaryAmmoID write_byte(-1); // SecondaryAmmoMaxAmount write_byte(0); // SlotID (0...N) write_byte(15); // NumberInSlot (1...N) write_byte(CSW_UMP45); // WeaponID write_byte(Flag); // Flags message_end(); } case CSW_SG550: { message_begin(MSG_ONE, MSGID_WeaponList, _, id); write_string(Weapon); // WeaponName write_byte(4); // PrimaryAmmoID write_byte(90); // PrimaryAmmoMaxAmount write_byte(-1); // SecondaryAmmoID write_byte(-1); // SecondaryAmmoMaxAmount write_byte(0); // SlotID (0...N) write_byte(16); // NumberInSlot (1...N) write_byte(CSW_SG550); // WeaponID write_byte(Flag); // Flags message_end(); } case CSW_GALIL: { message_begin(MSG_ONE, MSGID_WeaponList, _, id); write_string(Weapon); // WeaponName write_byte(4); // PrimaryAmmoID write_byte(90); // PrimaryAmmoMaxAmount write_byte(-1); // SecondaryAmmoID write_byte(-1); // SecondaryAmmoMaxAmount write_byte(0); // SlotID (0...N) write_byte(17); // NumberInSlot (1...N) write_byte(CSW_GALIL); // WeaponID write_byte(Flag); // Flags message_end(); } case CSW_FAMAS: { message_begin(MSG_ONE, MSGID_WeaponList, _, id); write_string(Weapon); // WeaponName write_byte(4); // PrimaryAmmoID write_byte(90); // PrimaryAmmoMaxAmount write_byte(-1); // SecondaryAmmoID write_byte(-1); // SecondaryAmmoMaxAmount write_byte(0); // SlotID (0...N) write_byte(18); // NumberInSlot (1...N) write_byte(CSW_FAMAS); // WeaponID write_byte(Flag); // Flags message_end(); } case CSW_USP: { message_begin(MSG_ONE, MSGID_WeaponList, _, id); write_string(Weapon); // WeaponName write_byte(6); // PrimaryAmmoID write_byte(100); // PrimaryAmmoMaxAmount write_byte(-1); // SecondaryAmmoID write_byte(-1); // SecondaryAmmoMaxAmount write_byte(1); // SlotID (0...N) write_byte(4); // NumberInSlot (1...N) write_byte(CSW_USP); // WeaponID write_byte(Flag); // Flags message_end(); } case CSW_GLOCK18: { message_begin(MSG_ONE, MSGID_WeaponList, _, id); write_string(Weapon); // WeaponName write_byte(10); // PrimaryAmmoID write_byte(120); // PrimaryAmmoMaxAmount write_byte(-1); // SecondaryAmmoID write_byte(-1); // SecondaryAmmoMaxAmount write_byte(1); // SlotID (0...N) write_byte(2); // NumberInSlot (1...N) write_byte(CSW_GLOCK18); // WeaponID write_byte(Flag); // Flags message_end(); } case CSW_AWP: { message_begin(MSG_ONE, MSGID_WeaponList, _, id); write_string(Weapon); // WeaponName write_byte(1); // PrimaryAmmoID write_byte(30); // PrimaryAmmoMaxAmount write_byte(-1); // SecondaryAmmoID write_byte(-1); // SecondaryAmmoMaxAmount write_byte(0); // SlotID (0...N) write_byte(2); // NumberInSlot (1...N) write_byte(CSW_AWP); // WeaponID write_byte(Flag); // Flags message_end(); } case CSW_MP5NAVY: { message_begin(MSG_ONE, MSGID_WeaponList, _, id); write_string(Weapon); // WeaponName write_byte(10); // PrimaryAmmoID write_byte(120); // PrimaryAmmoMaxAmount write_byte(-1); // SecondaryAmmoID write_byte(-1); // SecondaryAmmoMaxAmount write_byte(0); // SlotID (0...N) write_byte(7); // NumberInSlot (1...N) write_byte(CSW_MP5NAVY); // WeaponID write_byte(Flag); // Flags message_end(); } case CSW_M249: { message_begin(MSG_ONE, MSGID_WeaponList, _, id); write_string(Weapon); // WeaponName write_byte(3); // PrimaryAmmoID write_byte(200); // PrimaryAmmoMaxAmount write_byte(-1); // SecondaryAmmoID write_byte(-1); // SecondaryAmmoMaxAmount write_byte(0); // SlotID (0...N) write_byte(4); // NumberInSlot (1...N) write_byte(CSW_M249); // WeaponID write_byte(Flag); // Flags message_end(); } case CSW_M3: { message_begin(MSG_ONE, MSGID_WeaponList, _, id); write_string(Weapon); // WeaponName write_byte(5); // PrimaryAmmoID write_byte(32); // PrimaryAmmoMaxAmount write_byte(-1); // SecondaryAmmoID write_byte(-1); // SecondaryAmmoMaxAmount write_byte(0); // SlotID (0...N) write_byte(5); // NumberInSlot (1...N) write_byte(CSW_M3); // WeaponID write_byte(Flag); // Flags message_end(); } case CSW_M4A1: { message_begin(MSG_ONE, MSGID_WeaponList, _, id); write_string(Weapon); // WeaponName write_byte(4); // PrimaryAmmoID write_byte(90); // PrimaryAmmoMaxAmount write_byte(-1); // SecondaryAmmoID write_byte(-1); // SecondaryAmmoMaxAmount write_byte(0); // SlotID (0...N) write_byte(6); // NumberInSlot (1...N) write_byte(CSW_M4A1); // WeaponID write_byte(Flag); // Flags message_end(); } case CSW_TMP: { message_begin(MSG_ONE, MSGID_WeaponList, _, id); write_string(Weapon); // WeaponName write_byte(10); // PrimaryAmmoID write_byte(120); // PrimaryAmmoMaxAmount write_byte(-1); // SecondaryAmmoID write_byte(-1); // SecondaryAmmoMaxAmount write_byte(0); // SlotID (0...N) write_byte(11); // NumberInSlot (1...N) write_byte(CSW_TMP); // WeaponID write_byte(Flag); // Flags message_end(); } case CSW_G3SG1: { message_begin(MSG_ONE, MSGID_WeaponList, _, id); write_string(Weapon); // WeaponName write_byte(2); // PrimaryAmmoID write_byte(90); // PrimaryAmmoMaxAmount write_byte(-1); // SecondaryAmmoID write_byte(-1); // SecondaryAmmoMaxAmount write_byte(0); // SlotID (0...N) write_byte(3); // NumberInSlot (1...N) write_byte(CSW_G3SG1); // WeaponID write_byte(Flag); // Flags message_end(); } case CSW_FLASHBANG: { message_begin(MSG_ONE, MSGID_WeaponList, _, id); write_string(Weapon); // WeaponName write_byte(11); // PrimaryAmmoID write_byte(2); // PrimaryAmmoMaxAmount write_byte(-1); // SecondaryAmmoID write_byte(-1); // SecondaryAmmoMaxAmount write_byte(3); // SlotID (0...N) write_byte(2); // NumberInSlot (1...N) write_byte(CSW_FLASHBANG); // WeaponID write_byte(Flag); // Flags message_end(); } case CSW_DEAGLE: { message_begin(MSG_ONE, MSGID_WeaponList, _, id); write_string(Weapon); // WeaponName write_byte(8); // PrimaryAmmoID write_byte(35); // PrimaryAmmoMaxAmount write_byte(-1); // SecondaryAmmoID write_byte(-1); // SecondaryAmmoMaxAmount write_byte(1); // SlotID (0...N) write_byte(1); // NumberInSlot (1...N) write_byte(CSW_DEAGLE); // WeaponID write_byte(Flag); // Flags message_end(); } case CSW_SG552: { message_begin(MSG_ONE, MSGID_WeaponList, _, id); write_string(Weapon); // WeaponName write_byte(4); // PrimaryAmmoID write_byte(90); // PrimaryAmmoMaxAmount write_byte(-1); // SecondaryAmmoID write_byte(-1); // SecondaryAmmoMaxAmount write_byte(0); // SlotID (0...N) write_byte(10); // NumberInSlot (1...N) write_byte(CSW_SG552); // WeaponID write_byte(Flag); // Flags message_end(); } case CSW_AK47: { message_begin(MSG_ONE, MSGID_WeaponList, _, id); write_string(Weapon); // WeaponName write_byte(2); // PrimaryAmmoID write_byte(90); // PrimaryAmmoMaxAmount write_byte(-1); // SecondaryAmmoID write_byte(-1); // SecondaryAmmoMaxAmount write_byte(0); // SlotID (0...N) write_byte(1); // NumberInSlot (1...N) write_byte(CSW_AK47); // WeaponID write_byte(Flag); // Flags message_end(); } case CSW_KNIFE: { message_begin(MSG_ONE, MSGID_WeaponList, _, id); write_string(Weapon); // WeaponName write_byte(-1); // PrimaryAmmoID write_byte(-1); // PrimaryAmmoMaxAmount write_byte(-1); // SecondaryAmmoID write_byte(-1); // SecondaryAmmoMaxAmount write_byte(2); // SlotID (0...N) write_byte(1); // NumberInSlot (1...N) write_byte(CSW_KNIFE); // WeaponID write_byte(Flag); // Flags message_end(); } case CSW_P90: { message_begin(MSG_ONE, MSGID_WeaponList, _, id); write_string(Weapon); // WeaponName write_byte(7); // PrimaryAmmoID write_byte(100); // PrimaryAmmoMaxAmount write_byte(-1); // SecondaryAmmoID write_byte(-1); // SecondaryAmmoMaxAmount write_byte(0); // SlotID (0...N) write_byte(8); // NumberInSlot (1...N) write_byte(CSW_P90); // WeaponID write_byte(Flag); // Flags message_end(); } } } public death_message(killer, victim, const WeaponName[]) { if(is_user_connected(killer) && is_user_alive(victim)) { set_msg_block(MSGID_DeathMsg, BLOCK_SET); ExecuteHamB(Ham_Killed, victim, killer); set_msg_block(MSGID_DeathMsg, BLOCK_NOT); cs_set_user_money(killer, cs_get_user_money(killer) + 300); make_deathmsg(killer, victim, 0, WeaponName); message_begin(MSG_BROADCAST, MSGID_ScoreInfo); write_byte(killer); // id write_short(pev(killer, pev_frags)); // frags write_short(cs_get_user_deaths(killer)); // deaths write_short(0); // class? write_short(get_user_team(killer)); // team message_end(); message_begin(MSG_BROADCAST, MSGID_ScoreInfo); write_byte(victim); // id write_short(pev(victim, pev_frags)); // frags write_short(cs_get_user_deaths(victim)); // deaths write_short(0); // class? write_short(get_user_team(victim)); // team message_end(); } } public make_knockback(id, Float:origin[3], Float:maxspeed) { if(is_user_alive(id)) { new Float:Velocity[3], Float:Origin[3], Float:Distance[3], Float:Time = (vector_distance(Origin,origin) / maxspeed); entity_get_vector(id, EV_VEC_origin, Origin); Distance[0] = Origin[0] - origin[0], Distance[1] = Origin[1] - origin[1], Distance[2] = Origin[2] - origin[2]; Velocity[0] = Distance[0] / Time, Velocity[1] = Distance[1] / Time, Velocity[2] = Distance[2] / Time; entity_set_vector(id, EV_VEC_velocity, Velocity); } } public make_blood(id, Amount) { if(is_user_alive(id)) { new BloodColor = ExecuteHam(Ham_BloodColor, id); if(BloodColor != -1) { new Float:Origin[3] pev(id, pev_origin, Origin); Amount *= 2; //according to HLSDK message_begin(MSG_BROADCAST, SVC_TEMPENTITY); write_byte(TE_BLOODSPRITE); write_coord(floatround(Origin[0])); write_coord(floatround(Origin[1])); write_coord(floatround(Origin[2])); write_short(BloodSpray); write_short(BloodDrop); write_byte(BloodColor); write_byte(min(max(3, Amount/10), 16)); message_end(); } } } public make_bullet(id, Float:Origin[3]) { if(is_user_alive(id)) { new Target, Body; get_user_aiming(id, Target, Body, 999999); if(is_user_connected(Target)) { new Float:Start[3], Float:End[3], Float:Res[3], Float:Vel[3], Res2; pev(id, pev_origin, Start); velocity_by_aim(id, 64, Vel); Start[0] = Origin[0]; Start[1] = Origin[1]; Start[2] = Origin[2]; End[0] = Start[0]+Vel[0]; End[1] = Start[1]+Vel[1]; End[2] = Start[2]+Vel[2]; engfunc(EngFunc_TraceLine, Start, End, 0, Target, Res2); get_tr2(Res2, TR_vecEndPos, Res); message_begin(MSG_BROADCAST, SVC_TEMPENTITY) ; write_byte(TE_BLOODSPRITE); write_coord(floatround(Start[0])); write_coord(floatround(Start[1])); write_coord(floatround(Start[2])); write_short(BloodSpray); write_short(BloodDrop); write_byte(70); write_byte(random_num(1,2)); message_end(); } else { if(Target) { message_begin(MSG_BROADCAST, SVC_TEMPENTITY); write_byte(TE_DECAL); write_coord(floatround(Origin[0])); write_coord(floatround(Origin[1])); write_coord(floatround(Origin[2])); write_byte(41); write_short(Target); message_end(); } else { message_begin(MSG_BROADCAST, SVC_TEMPENTITY); write_byte(TE_WORLDDECAL); write_coord(floatround(Origin[0])); write_coord(floatround(Origin[1])); write_coord(floatround(Origin[2])); write_byte(41); message_end(); } message_begin(MSG_BROADCAST, SVC_TEMPENTITY); write_byte(TE_GUNSHOTDECAL); write_coord(floatround(Origin[0])); write_coord(floatround(Origin[1])); write_coord(floatround(Origin[2])); write_short(id); write_byte(41); message_end(); } } } public set_weapon_anim(id, anim) { if(is_user_connected(id)) { set_pev(id, pev_weaponanim, anim); message_begin(MSG_ONE, SVC_WEAPONANIM, _, id); write_byte(anim); write_byte(pev(id, pev_body)); message_end(); } } public get_damage_body(body, Float:damage) { switch(body) { case HIT_HEAD: damage *= 2.0; case HIT_STOMACH: damage *= 1.0; case HIT_CHEST: damage *= 1.5; case HIT_LEFTARM: damage *= 0.75; case HIT_RIGHTARM: damage *= 0.75; case HIT_LEFTLEG: damage *= 0.75; case HIT_RIGHTLEG: damage *= 0.75; default: damage *= 1.0; } return floatround(damage); } public velocity_to_aim(id, Float:Origin[3], Speed, Float:Velocity[3]) { if(is_user_alive(id)) { new Float:AimOrigin[3] fm_get_aim_origin(id, AimOrigin) Velocity[0] = AimOrigin[0] - Origin[0] Velocity[1] = AimOrigin[1] - Origin[1] Velocity[2] = AimOrigin[2] - Origin[2] new Float:X X = floatsqroot(Speed*Speed / (Velocity[0]*Velocity[0] + Velocity[1]*Velocity[1] + Velocity[2]*Velocity[2])) Velocity[0] *= X Velocity[1] *= X Velocity[2] *= X } } public get_position(id, Float:forw, Float:right, Float:up, Float:Start[]) { if(is_user_alive(id)) { new Float:Origin[3], Float:Angle[3], Float:Forward[3], Float:Right[3], Float:Up[3] pev(id, pev_origin, Origin) pev(id, pev_view_ofs, Up) xs_vec_add(Origin, Up, Origin) if(id <= get_maxplayers()) pev(id, pev_v_angle, Angle) else pev(id, pev_angles, Angle) angle_vector(Angle, ANGLEVECTOR_FORWARD, Forward) angle_vector(Angle, ANGLEVECTOR_RIGHT, Right) angle_vector(Angle, ANGLEVECTOR_UP, Up) Start[0] = Origin[0] + Forward[0] * forw + Right[0] * right + Up[0] * up Start[1] = Origin[1] + Forward[1] * forw + Right[1] * right + Up[1] * up Start[2] = Origin[2] + Forward[2] * forw + Right[2] * right + Up[2] * up } } public fm_get_user_bpammo(id, CSW_WEAPON) { if(is_user_alive(id)) { switch(CSW_WEAPON) { case CSW_AWP: return get_pdata_int(id, 377) case CSW_SCOUT, CSW_AK47, CSW_G3SG1: return get_pdata_int(id, 378) case CSW_M249: return get_pdata_int(id, 379) case CSW_FAMAS, CSW_M4A1, CSW_AUG, CSW_SG550, CSW_GALI, CSW_SG552: return get_pdata_int(id, 380) case CSW_M3, CSW_XM1014: return get_pdata_int(id, 381) case CSW_USP, CSW_UMP45, CSW_MAC10: return get_pdata_int(id, 382) case CSW_FIVESEVEN, CSW_P90: return get_pdata_int(id, 383) case CSW_DEAGLE: return get_pdata_int(id, 384) case CSW_P228: return get_pdata_int(id, 385) case CSW_GLOCK18, CSW_TMP, CSW_ELITE, CSW_MP5NAVY: return get_pdata_int(id, 386) default: return 0 } } return 0 } public fm_set_user_bpammo(id, CSW_WEAPON, Amount) { if(is_user_alive(id)) { switch(CSW_WEAPON) { case CSW_AWP: set_pdata_int(id, 377, Amount) case CSW_SCOUT, CSW_AK47, CSW_G3SG1: set_pdata_int(id, 378, Amount) case CSW_M249: set_pdata_int(id, 379, Amount) case CSW_FAMAS, CSW_M4A1, CSW_AUG, CSW_SG550, CSW_GALI, CSW_SG552: set_pdata_int(id, 380, Amount) case CSW_M3, CSW_XM1014: set_pdata_int(id, 381, Amount) case CSW_USP, CSW_UMP45, CSW_MAC10: set_pdata_int(id, 382, Amount) case CSW_FIVESEVEN, CSW_P90: set_pdata_int(id, 383, Amount) case CSW_DEAGLE: set_pdata_int(id, 384, Amount) case CSW_P228: set_pdata_int(id, 385, Amount) case CSW_GLOCK18, CSW_TMP, CSW_ELITE, CSW_MP5NAVY: set_pdata_int(id, 386, Amount) default: return 0 } } return 1 } public drop_primary_weapons(id) { if(is_user_alive(id)) { new Weapons[32], Num = 0, WeaponID; get_user_weapons(id, Weapons, Num); for(new i = 0; i < Num; i++) { WeaponID = Weapons[i]; if(((1<<WeaponID) & PRIMARY_WEAPONS_BITSUM)) { new WName[32]; get_weaponname(WeaponID, WName, charsmax(WName)); engclient_cmd(id, "drop", WName); } } } } public drop_secondary_weapons(id) { if(is_user_alive(id)) { new Weapons[32], Num = 0, WeaponID; get_user_weapons(id, Weapons, Num); for(new i = 0; i < Num; i++) { WeaponID = Weapons[i]; if(((1<<WeaponID) & SECONDARY_WEAPONS_BITSUM)) { new WName[32]; get_weaponname(WeaponID, WName, charsmax(WName)); engclient_cmd(id, "drop", WName); } } } } public bacon_strip_weapon(index, weapon[]) { if(is_user_alive(index) && equal(weapon, "weapon_", 7)) { new WeaponID = get_weaponid(weapon) if(WeaponID) { new WeaponEnt = fm_find_ent_by_owner(-1, weapon, index) if(WeaponEnt) { if(get_user_weapon(index) == WeaponID) ExecuteHamB(Ham_Weapon_RetireWeapon, WeaponEnt) ExecuteHamB(Ham_RemovePlayerItem, index, WeaponEnt) ExecuteHamB(Ham_Item_Kill, WeaponEnt) set_pev(index, pev_weapons, pev(index, pev_weapons) & ~(1<<WeaponID)) } } } } stock HudMessage(const id, const message[], red = 0, green = 160, blue = 0, Float:x = -1.0, Float:y = 0.65, effects = 2, Float:fxtime = 0.01, Float:holdtime = 3.0, Float:fadeintime = 0.01, Float:fadeouttime = 0.01) { new Players[32], Num = 1, Player; if(id) Players[0] = id; else get_players(Players, Num, "ch"); { for(new i = 0; i < Num; i++) { Player = Players[i] if(is_user_connected(Player)) { new color = (clamp(blue, 0, 255) + (clamp(green, 0, 255) << 8) + (clamp(red, 0, 255) << 16)) message_begin(MSG_ONE_UNRELIABLE, SVC_DIRECTOR, _, Player); write_byte(strlen(message) + 31); write_byte(DRC_CMD_MESSAGE); write_byte(effects); write_long(color); write_long(_:x); write_long(_:y); write_long(_:fadeintime); write_long(_:fadeouttime); write_long(_:holdtime); write_long(_:fxtime); write_string(message); message_end(); } } } } stock ColorChat(const id, const input[], any:...) { new Players[32], Message[191], Num = 1, Player; vformat(Message, 190, input, 3); replace_all(Message, 190, "!g", "^4"); replace_all(Message, 190, "!y", "^1"); replace_all(Message, 190, "!t", "^3"); if(id) Players[0] = id; else get_players(Players, Num, "ch"); { for(new i = 0; i < Num; i++) { Player = Players[i] if(is_user_connected(Player)) { message_begin(MSG_ONE_UNRELIABLE, MSGID_SayText, _, Player); write_byte(Player); write_string(Message); 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 } */
Daca intri in .inl-ul de la arme, vezi acolo la ACCES, 0 este pentru totii jucatorii, 1 pentru VIP si 2 pentru ADMIN.
Acum o intrebare, are rost sa pun un update din acest an?
Armele find refacute, modelele modificate, multe chestii noi, sunt interesat daca il foloseste cineva, sa nu pierd timp degeaba, lasati reply sau PM.
Folosesc eu. M-am saturat de furien clasic acum incerc varianta cso :D
Jump to
- eXtream - Forum
- ↳ Steam
- ↳ Forum
- ↳ WebDesign
- ↳ Incepatori
- ↳ Cos de reciclare
- ↳ Discutii generale
- ↳ Anunturi
- ↳ Security zone
- ↳ Filme si seriale
- ↳ Reclamatii
- ↳ Entertainment
- ↳ Distractie
- ↳ Clubul eXtreamCS - Intra si tu ! [noi oportunitati]
- eXtream - Counter-Strike 2
- ↳ Counter-Strike 2
- eXtream - Counter-Strike 1.6
- ↳ Diverse
- ↳ Filme gaming
- ↳ Meciuri
- ↳ Tutoriale
- ↳ Tutoriale
- ↳ Cereri
- ↳ Discutii generale
- ↳ Probleme la servere dedicate de Counter-Strike
- ↳ Cereri admin / slot
- ↳ Probleme in jocul Counter-Strike
- ↳ Pluginuri
- ↳ Pluginuri eXtream
- ↳ Cereri
- ↳ AdminMod
- ↳ AmxModX
- ↳ Resurse
- ↳ Moduri
- ↳ Addon-uri
- ↳ Kit-uri
- ↳ Harti
- ↳ Diverse
- ↳ Cereri
- ↳ Servere
- ↳ Programarea CS-ului
- ↳ Scripting
- ↳ Modificari pluginuri
- ↳ CStrike
- ↳ Cereri
- eXtream - Echipa
- ↳ Productia eXtream
- ↳ Harti eXtream
- ↳ CS.eXtreamCS.com - Server oficial eXtreamCS
- ↳ Zona administrativă
- ↳ Cereri acces
- ↳ Cereri unban
- ↳ Reclamații
- ↳ Admin zone
- ↳ CS2.eXtreamCS.com - Server official eXtreamCS
- ↳ XMAS.eXtreamCS.com
- ↳ Cereri admin
- ↳ Cereri unban
- ↳ Reclamatii / Sugestii
- ↳ eXtreamCS #PubMasters
- eXtream - Counter Strike Global Offensive
- ↳ Diverse
- ↳ Meciuri
- ↳ Tutoriale
- ↳ Probleme la servere dedicate de Counter-Strike: Global Offensive
- ↳ Probleme in jocul Counter-Strike: Global Offensive
- ↳ Pluginuri
- ↳ Cereri
- ↳ Resurse
- ↳ Addons-uri
- ↳ Hărți
- ↳ Diverse
- ↳ Servere
- eXtream - Counter-Strike Source
- ↳ Tutoriale
- ↳ Pluginuri
- ↳ Servere
- ↳ Resurse
- ↳ Harti
- ↳ Moduri
- ↳ Diverse
- ↳ Classic » CS
- ↳ Anunțuri administrative
- ↳ Cereri admin/slot
- ↳ Cereri unban
- ↳ Reclamații
- ↳ Banlist
- ↳ Admins Only
- ↳ Discord