Junior Member
Join Date: May 2020
Location: Cordoba, Argentina
|
10-23-2020
, 17:04
Rebuy and FullAmmo Primary and secondary
|
#1
|
Hello again xd. As you can see, I'm creating my first shopping menu, and I was needing 2 little things. A rebuy to give you the weapons you bought in the menu and 2 commands for the primary and secondary ammunition (I adapted some stocks but as a test). (Like the one in the default menu of the cs, and to be charged the price of bullets)
PHP Code:
#include <amxmodx>
#include <cstrike>
#include <fun>
#include <hamsandwich>
#include <fakemeta>
#include <nst_weapons>
#include <jctf>
#define BuySound "NST_WeaponMenu/BuySound.wav"
#define PickWeapon "items/gunpickup2.wav"
const m_pNext = 42
const m_rgpPlayerItems = 367
enum _:iListWeapon
{
iName[20],
iCost
}
enum _:iListSpecialWeapon
{
iName[20],
iCost,
iAdrenaline
}
enum _:WEAPON_SLOT
{
WPN_RIFLE = 1,
WPN_PISTOL,
WPN_KNIFE,
WPN_HE,
WPN_C4
}
new const iPistols[][iListWeapon] =
{ //Nombre - Dinero
{"Glock", 400},
{"Usp", 500},
{"Fiveseven", 600},
{"Desert Deagle", 650},
{"Dual Elites", 750}
}
new const iShotguns[][iListWeapon] =
{
{"M3", 1700},
{"XM1014", 3000}
}
new const iSubMachineGuns[][iListWeapon] =
{
{"Tmp", 1250},
{"Mp5 Navy", 1500},
{"Ump45", 1700},
{"P90", 2350}
}
new const iRifles[][iListWeapon] =
{
{"Famas", 2250},
{"Scout", 2750},
{"M4A1", 3100},
{"Aug", 3500},
{"PlasmaGun", 5000}
}
/*new const iMachineGuns[][iListWeapon] =
{
{"M249", 0}
}*/
new const iEquipment[][iListWeapon] =
{
{"Kevlar", 1000},
{"HE Grenade", 300},
{"Flashbang", 200},
{"Smoke Grenade", 300}
}
/*new const iKnifes[][iListWeapon] =
{
{"Default", 0}
}*/
new const iAdre[][iListSpecialWeapon] =
{ //Nombre - Dinero - Adrenalina
{"M249", 5750, 10},
{"Sg550", 4200, 20},
{"G3SG1", 5000, 30},
{"Awp", 4750, 40},
{"VVIP Weapons", 16000, 100}
}
public plugin_init()
{
register_plugin("[CTF] Menu de Compra", "1.0", "GoodbayKOD")
register_clcmd("buymenu", "MenuNst") // Comando para abrir el menu
register_clcmd("F2", "Stock_Rebuy") // Comando Rebuy
}
public plugin_natives()
{
register_native("MenuNst", "MenuNst", 1) // Native para abrir el menu por Include
}
public MenuNst(id)
{
new iMenu = menu_create("\r[\wCTF\r]\y Menu de Compra^n\yComprar Anterior\r[\wF2\r]", "MenuNst_Handler")
menu_additem(iMenu, "Pistola", "")
menu_additem(iMenu, "Escopetas", "")
menu_additem(iMenu, "SubAmetralladoras", "")
menu_additem(iMenu, "Rifles", "")
menu_additem(iMenu, "Equipamiento", "")
menu_additem(iMenu, "\yAdrenalina^n", "")
menu_additem(iMenu, "Municion Primaria", "")
menu_additem(iMenu, "Municion Secundaria", "")
menu_additem(iMenu, "Salir", "")
menu_setprop(iMenu, MPROP_PERPAGE, 0)
menu_display(id, iMenu)
return PLUGIN_CONTINUE
}
public MenuNst_Handler(id, iMenu, iItem)
{
if(!is_user_alive(id)) { menu_destroy(iMenu); return; }
if(iItem == MENU_EXIT) { menu_destroy(iMenu); return; }
switch(iItem)
{
case 0: MenuPistols(id)
case 1: MenuShotguns(id)
case 2: MenuSubMachineGuns(id)
case 3: MenuRifles(id)
case 4: MenuEquipment(id)
case 5: MenuAdrenalina(id)
case 6: { FullAmmoPrimary(id); MenuNst(id); }
case 7: { FullAmmoSecondary(id); MenuNst(id); }
}
menu_destroy(iMenu)
}
public MenuPistols(id)
{
new szText[100]
new iMenu = menu_create("\r[\wCTF\r]\y Menu de compra: \rPistolas", "MenuPistols_Handler")
for(new i = 0; i < sizeof(iPistols); i++)
{
format(szText, charsmax(szText), "%s%s \d[ \y$%d \d]", cs_get_user_money(id) < iPistols[i][iCost] ? "\d" : "", iPistols[i][iName], iPistols[i][iCost])
menu_additem(iMenu, szText, "")
}
menu_display(id, iMenu)
}
public MenuPistols_Handler(id, iMenu, iItem)
{
if(iItem == MENU_EXIT) return
if(cs_get_user_money(id) < iPistols[iItem][iCost])
{
Stock_MsgSayText(id, "!g[CTF] !nTe falta dinero para comprar !t%s!n.", iPistols[iItem][iName])
menu_destroy(iMenu)
return
}
switch(iItem)
{
case 0: { Stock_SetWeaponDropSlot(id, WPN_PISTOL); give_item(id, "weapon_glock18"); cs_set_user_bpammo(id, CSW_GLOCK18, 90); }
case 1: { Stock_SetWeaponDropSlot(id, WPN_PISTOL); give_item(id, "weapon_usp"); cs_set_user_bpammo(id, CSW_USP, 90); }
case 2: { Stock_SetWeaponDropSlot(id, WPN_PISTOL); give_item(id, "weapon_fiveseven"); cs_set_user_bpammo(id, CSW_FIVESEVEN, 90); }
case 3: { Stock_SetWeaponDropSlot(id, WPN_PISTOL); give_item(id, "weapon_deagle"); cs_set_user_bpammo(id, CSW_DEAGLE, 90); }
case 4: { Stock_SetWeaponDropSlot(id, WPN_PISTOL); give_item(id, "weapon_elite"); cs_set_user_bpammo(id, CSW_ELITE, 90); }
}
PlaySound(0, BuySound)
cs_set_user_money(id, cs_get_user_money(id) - iPistols[iItem][iCost])
Stock_MsgSayText(id, "!g[CTF] !nCompraste !t%s!n.", iPistols[iItem][iName])
menu_destroy(iMenu)
}
public MenuShotguns(id)
{
new szText[100]
new iMenu = menu_create("\r[\wCTF\r]\y Menu de compra: \rEscopetas", "MenuShotguns_Handler")
for(new i = 0; i < sizeof(iShotguns); i++)
{
format(szText, charsmax(szText), "%s%s \d[ \y$%d \d]", cs_get_user_money(id) < iShotguns[i][iCost] ? "\d" : "", iShotguns[i][iName], iShotguns[i][iCost])
menu_additem(iMenu, szText, "")
}
menu_display(id, iMenu)
}
public MenuShotguns_Handler(id, iMenu, iItem)
{
if(iItem == MENU_EXIT) return
if(cs_get_user_money(id) < iShotguns[iItem][iCost])
{
Stock_MsgSayText(id, "!g[CTF] !nTe falta dinero para comprar !t%s!n.", iShotguns[iItem][iName])
menu_destroy(iMenu)
return
}
switch(iItem)
{
case 0: { Stock_SetWeaponDropSlot(id, WPN_RIFLE); give_item(id, "weapon_m3"); cs_set_user_bpammo(id, CSW_M3, 90); }
case 1: { Stock_SetWeaponDropSlot(id, WPN_RIFLE); give_item(id, "weapon_xm1014"); cs_set_user_bpammo(id, CSW_XM1014, 90); }
}
PlaySound(0, BuySound)
cs_set_user_money(id, cs_get_user_money(id) - iShotguns[iItem][iCost])
Stock_MsgSayText(id, "!g[CTF] !nCompraste !t%s!n.", iShotguns[iItem][iName])
menu_destroy(iMenu)
}
public MenuSubMachineGuns(id)
{
new szText[100]
new iMenu = menu_create("\r[\wCTF\r]\y Menu de compra: \rSubAutomaticas", "MenuSubMachineGuns_Handler")
for(new i = 0; i < sizeof(iSubMachineGuns); i++)
{
format(szText, charsmax(szText), "%s%s \d[ \y$%d \d]", cs_get_user_money(id) < iSubMachineGuns[i][iCost] ? "\d" : "", iSubMachineGuns[i][iName], iSubMachineGuns[i][iCost])
menu_additem(iMenu, szText, "")
}
menu_display(id, iMenu)
}
public MenuSubMachineGuns_Handler(id, iMenu, iItem)
{
if(iItem == MENU_EXIT) return
if(cs_get_user_money(id) < iSubMachineGuns[iItem][iCost])
{
Stock_MsgSayText(id, "!g[CTF] !nTe falta dinero para comprar !t%s!n.", iSubMachineGuns[iItem][iName])
menu_destroy(iMenu)
return
}
switch(iItem)
{
case 0: { Stock_SetWeaponDropSlot(id, WPN_RIFLE); give_item(id, "weapon_tmp"); cs_set_user_bpammo(id, CSW_TMP, 90); }
case 1: { Stock_SetWeaponDropSlot(id, WPN_RIFLE); give_item(id, "weapon_mp5navy"); cs_set_user_bpammo(id, CSW_MP5NAVY, 90); }
case 2: { Stock_SetWeaponDropSlot(id, WPN_RIFLE); give_item(id, "weapon_ump45"); cs_set_user_bpammo(id, CSW_UMP45, 90); }
case 3: { Stock_SetWeaponDropSlot(id, WPN_RIFLE); give_item(id, "weapon_p90"); cs_set_user_bpammo(id, CSW_P90, 90); }
}
PlaySound(0, BuySound)
cs_set_user_money(id, cs_get_user_money(id) - iSubMachineGuns[iItem][iCost])
Stock_MsgSayText(id, "!g[CTF] !nCompraste !t%s!n.", iSubMachineGuns[iItem][iName])
menu_destroy(iMenu)
}
public MenuRifles(id)
{
new szText[100]
new iMenu = menu_create("\r[\wCTF\r]\y Menu de compra: \rRifles", "MenuRifles_Handler")
for(new i = 0; i < sizeof(iRifles); i++)
{
format(szText, charsmax(szText), "%s%s \d[ \y$%d \d]", cs_get_user_money(id) < iRifles[i][iCost] ? "\d" : "", iRifles[i][iName], iRifles[i][iCost])
menu_additem(iMenu, szText, "")
}
menu_display(id, iMenu)
}
public MenuRifles_Handler(id, iMenu, iItem)
{
if(iItem == MENU_EXIT) return
if(cs_get_user_money(id) < iRifles[iItem][iCost])
{
Stock_MsgSayText(id, "!g[CTF] !nTe falta dinero para comprar !t%s!n.", iRifles[iItem][iName])
menu_destroy(iMenu)
return
}
switch(iItem)
{
case 0: { Stock_SetWeaponDropSlot(id, WPN_RIFLE); give_item(id, "weapon_famas"); cs_set_user_bpammo(id, CSW_FAMAS, 90); }
case 1: { Stock_SetWeaponDropSlot(id, WPN_RIFLE); give_item(id, "weapon_scout"); cs_set_user_bpammo(id, CSW_SCOUT, 90); }
case 2: { Stock_SetWeaponDropSlot(id, WPN_RIFLE); give_item(id, "weapon_m4a1"); cs_set_user_bpammo(id, CSW_M4A1, 90); }
case 3: { Stock_SetWeaponDropSlot(id, WPN_RIFLE); give_item(id, "weapon_aug"); cs_set_user_bpammo(id, CSW_AUG, 90); }
case 4: { Stock_SetWeaponDropSlot(id, WPN_RIFLE); give_plasma(id); }
}
PlaySound(0, BuySound)
cs_set_user_money(id, cs_get_user_money(id) - iRifles[iItem][iCost])
Stock_MsgSayText(id, "!g[CTF] !nCompraste !t%s!n.", iRifles[iItem][iName])
menu_destroy(iMenu)
}
/*public MenuMachineGuns(id)
{
new szText[100]
new iMenu = menu_create("\r[\wCTT\r]\y Menu de compra: \rAmetralladoras", "MenuMachineGuns_Handler")
for(new i = 0; i < sizeof(iMachineGuns); i++)
{
format(szText, charsmax(szText), "%s%s \d[ \y$Free \d]", cs_get_user_money(id) < iMachineGuns[i][iCost] ? "\d" : "", iMachineGuns[i][iName], iMachineGuns[i][iCost])
menu_additem(iMenu, szText, "")
}
menu_display(id, iMenu)
}
public MenuMachineGuns_Handler(id, iMenu, iItem)
{
if(iItem == MENU_EXIT) return
if(cs_get_user_money(id) < iMachineGuns[iItem][iCost])
{
Stock_MsgSayText(id, "!g[CTF] !nTe falta dinero para comprar !t%s!n.", iMachineGuns[iItem][iName])
menu_destroy(iMenu)
return
}
switch(iItem)
{
case 0:
{
Stock_SetWeaponDropSlot(id, WPN_RIFLE)
give_item(id, "weapon_m249"); cs_set_user_bpammo(id, CSW_M249, 90)
}
}
PlaySound(0, BuySound)
cs_set_user_money(id, cs_get_user_money(id) - iMachineGuns[iItem][iCost])
Stock_MsgSayText(id, "!g[CTF] !nCompraste !t%s!n.", iMachineGuns[iItem][iName])
menu_destroy(iMenu)
}*/
public MenuEquipment(id)
{
new szText[100]
new iMenu = menu_create("\r[\wCTF\r]\y Menu de compra: \rEquipamiento", "MenuEquipment_Handler")
for(new i = 0; i < sizeof(iEquipment); i++)
{
format(szText, charsmax(szText), "%s%s \d[ \y$%d \d]", cs_get_user_money(id) < iEquipment[i][iCost] ? "\d" : "", iEquipment[i][iName], iEquipment[i][iCost])
menu_additem(iMenu, szText, "")
}
menu_display(id, iMenu)
}
public MenuEquipment_Handler(id, iMenu, iItem)
{
if(iItem == MENU_EXIT) return
if(cs_get_user_money(id) < iEquipment[iItem][iCost])
{
Stock_MsgSayText(id, "!g[CTF] !nTe falta dinero para comprar !t%s!n.", iEquipment[iItem][iName])
menu_destroy(iMenu)
return
}
switch(iItem)
{
case 0: cs_set_user_armor(id, 100, CS_ARMOR_VESTHELM)
case 1: give_item(id, "weapon_hegrenade")
case 2: give_item(id, "weapon_flashbang")
case 3: give_item(id, "weapon_smokegrenade")
}
PlaySound(0, BuySound)
cs_set_user_money(id, cs_get_user_money(id) - iEquipment[iItem][iCost])
Stock_MsgSayText(id, "!g[CTF] !nCompraste !t%s!n.", iEquipment[iItem][iName])
menu_destroy(iMenu)
}
/*public MenuKnifes(id)
{
new szText[100]
new iMenu = menu_create("\r[\wCTT\r]\y Menu de compra: \rCuchillos", "MenuMenuKnifes_Handler")
for(new i = 0; i < sizeof(iKnifes); i++)
{
format(szText, charsmax(szText), "%s%s \d[ \y$Free \d]", cs_get_user_money(id) < iKnifes[i][iCost] ? "\d" : "", iKnifes[i][iName], iKnifes[i][iCost])
menu_additem(iMenu, szText, "")
}
menu_display(id, iMenu)
}
public MenuMenuKnifes_Handler(id, iMenu, iItem)
{
if(iItem == MENU_EXIT) return
if(cs_get_user_money(id) < iKnifes[iItem][iCost])
{
Stock_MsgSayText(id, "!g[CTF] !nTe falta dinero para comprar !t%s!n.", iKnifes[iItem][iName])
menu_destroy(iMenu)
return
}
switch(iItem)
{
case 0:
{
Stock_SetWeaponDropSlot(id, WPN_RIFLE)
give_item(id, "weapon_m249"); cs_set_user_bpammo(id, CSW_M249, 90)
}
}
PlaySound(0, BuySound)
cs_set_user_money(id, cs_get_user_money(id) - iKnifes[iItem][iCost])
Stock_MsgSayText(id, "!g[CTF] !nCompraste !t%s!n.", iKnifes[iItem][iName])
menu_destroy(iMenu)
}*/
public MenuAdrenalina(id)
{
new szText[100]
new iMenu = menu_create("\r[\wCTF\r]\y Menu de compra: \rAdrenalina", "MenuAdre_Handler")
for(new i = 0; i < sizeof(iAdre); i++)
{
format(szText, charsmax(szText), "%s%s \d[ \y%d \d] \d[ \y$%d \d] ", jctf_get_adrenaline(id) < iAdre[i][iAdrenaline] || cs_get_user_money(id) < iAdre[i][iCost] ? "\d" : "", iAdre[i][iName], iAdre[i][iAdrenaline], iAdre[i][iCost])
menu_additem(iMenu, szText, "")
}
menu_display(id, iMenu)
}
public MenuAdre_Handler(id, iMenu, iItem)
{
if(iItem == MENU_EXIT) return
if(jctf_get_adrenaline(id) < iAdre[iItem][iAdrenaline] || cs_get_user_money(id) < iAdre[iItem][iCost])
{
Stock_MsgSayText(id, "!g[CTF] !nTe falta adrenalina para comprar !t%s!n.", iAdre[iItem][iName])
menu_destroy(iMenu)
return
}
switch(iItem)
{
case 0: { Stock_SetWeaponDropSlot(id, WPN_RIFLE); give_item(id, "weapon_m249"); cs_set_user_bpammo(id, CSW_M249, 90); }
case 1: { Stock_SetWeaponDropSlot(id, WPN_RIFLE); give_item(id, "weapon_sg550"); cs_set_user_bpammo(id, CSW_SG550, 90); }
case 2: { Stock_SetWeaponDropSlot(id, WPN_RIFLE); give_item(id, "weapon_g3sg1"); cs_set_user_bpammo(id, CSW_G3SG1, 90); }
case 3: { Stock_SetWeaponDropSlot(id, WPN_RIFLE); give_item(id, "weapon_awp"); cs_set_user_bpammo(id, CSW_AWP, 90); }
case 4: { Stock_SetWeaponDropSlot(id, WPN_PISTOL); Stock_SetWeaponDropSlot(id, WPN_RIFLE); give_void(id); give_lf(id); }
}
PlaySound(0, BuySound)
jctf_add_adrenaline(id, - iAdre[iItem][iAdrenaline])
cs_set_user_money(id, cs_get_user_money(id) - iAdre[iItem][iCost])
Stock_MsgSayText(id, "!g[CTF] !nCompraste !t%s!n.", iAdre[iItem][iName])
menu_destroy(iMenu)
}
stock Stock_MsgSayText(id, const szText[], any:...) // Stock de ColorChat New
{
static szMsg[128]
vformat(szMsg, charsmax(szMsg), szText, 3)
replace_all(szMsg, charsmax(szMsg), "!g", "^x04") // Color Verde
replace_all(szMsg, charsmax(szMsg), "!n", "^x01") // Color Normal (Amarillo)
replace_all(szMsg, charsmax(szMsg), "!t", "^x03") // Color de equipo (CT = Celeste | TT = Rojo)
static iMsgSayText
if(!iMsgSayText) iMsgSayText = get_user_msgid("SayText")
message_begin(id ? MSG_ONE : MSG_ALL, iMsgSayText, {0,0,0}, id)
write_byte(1)
write_string(szMsg)
message_end()
}
stock Stock_SetWeaponDropSlot(id, iSlot) // Stock de Dropeo de Arma
{
new szName[24]
new iItem = get_pdata_cbase(id, m_rgpPlayerItems + iSlot, 5)
while(iItem > 0)
{
pev(iItem, pev_classname, szName, 23)
engclient_cmd(id, "drop", szName)
iItem = get_pdata_cbase(iItem, m_pNext, 4)
}
set_pdata_cbase(id, m_rgpPlayerItems + iSlot, -1, 5)
}
stock FullAmmoPrimary(id) // Stock de Full Municion Primaria
{
PlaySound(0, PickWeapon)
cs_set_user_bpammo(id, CSW_UMP45, 90)
cs_set_user_bpammo(id, CSW_AK47, 90)
cs_set_user_bpammo(id, CSW_AUG, 90)
cs_set_user_bpammo(id, CSW_AWP, 90)
cs_set_user_bpammo(id, CSW_FAMAS, 90)
cs_set_user_bpammo(id, CSW_G3SG1, 90)
cs_set_user_bpammo(id, CSW_GALIL, 90)
cs_set_user_bpammo(id, CSW_M249, 90)
cs_set_user_bpammo(id, CSW_M3, 90)
cs_set_user_bpammo(id, CSW_M4A1, 90)
cs_set_user_bpammo(id, CSW_MAC10, 90)
cs_set_user_bpammo(id, CSW_MP5NAVY, 90)
cs_set_user_bpammo(id, CSW_P228, 90)
cs_set_user_bpammo(id, CSW_P90, 90)
cs_set_user_bpammo(id, CSW_SG550, 90)
cs_set_user_bpammo(id, CSW_SG552, 90)
cs_set_user_bpammo(id, CSW_TMP, 90)
cs_set_user_bpammo(id, CSW_XM1014, 90)
}
stock FullAmmoSecondary(id) // Stock de Full Municion Secundaria
{
PlaySound(0, PickWeapon)
cs_set_user_bpammo(id, CSW_DEAGLE, 90)
cs_set_user_bpammo(id, CSW_ELITE, 90)
cs_set_user_bpammo(id, CSW_FIVESEVEN, 90)
cs_set_user_bpammo(id, CSW_GLOCK18, 90)
cs_set_user_bpammo(id, CSW_P228, 90)
cs_set_user_bpammo(id, CSW_USP, 90)
}
stock PlaySound(id, const iSound[]) // Stock de Sonido/Musica
{
if (equal(iSound[strlen(iSound)-4], ".mp3"))
client_cmd(id, "mp3 play ^"sound/%s^"", iSound)
else
client_cmd(id, "spk ^"%s^"", iSound)
}
|
|