[Преработка]Gold shop за Respawn - ReCSDM
Публикувано на: 07 Апр 2021, 17:34
Здравейте,
пробвах няколко плъгина за златни оръжия обаче повечето не станаха. Този който работи - оръжията остават за винаги и нямат бонус щета.
Също така този ми дава грешка при компилиране с reapi, а без него се компилира без проблем. Може ли някой да преработи този код? Искам оръжието да е валидно докато не умреш, да има мултипликатор на щетата х2 и по възможност да е reapi.
Ето го и въпросния "този" плъгин:
пробвах няколко плъгина за златни оръжия обаче повечето не станаха. Този който работи - оръжията остават за винаги и нямат бонус щета.
Също така този ми дава грешка при компилиране с reapi, а без него се компилира без проблем. Може ли някой да преработи този код? Искам оръжието да е валидно докато не умреш, да има мултипликатор на щетата х2 и по възможност да е reapi.
Ето го и въпросния "този" плъгин:
Код за потвърждение: Избери целия код
#include <amxmodx>
#include <cromchat>
#include <cstrike>
#include <fakemeta>
#include <fun>
#include <hamsandwich>
//#define USING_REAPI
#define REPLACE_OLD_WEAPONS
#if defined USING_REAPI
#include <reapi>
#else
#if defined REPLACE_OLD_WEAPONS
#include <stripweapons>
#endif
#endif
#define PLUGIN_VERSION "1.0-Gold"
#define SOUND_BUY "items/gunpickup2.wav"
#define NO_WEAPON -1
enum _:ItemInfo
{
Name[32],
Price,
Weapon[16],
Ammo,
Csw,
VModel[64],
PModel[64]
}
new const g_eItems[][ItemInfo] =
{
/* "Name", Price, "weapon_id", Bullets, CSW_ID, "v_model", "p_model" */
{ "Golden AK47", 1, "weapon_ak47", 90, CSW_AK47, "models/chrom_gold/v_ak47.mdl", "models/chrom_gold/p_ak47.mdl" },
{ "Golden M4A1", 1, "weapon_m4a1", 90, CSW_M4A1, "models/chrom_gold/v_m4a1.mdl", "models/chrom_gold/p_m4a1.mdl" }
}
new g_iWeapon[33]
public plugin_init()
{
register_plugin("Simple Shop", PLUGIN_VERSION, "OciXCrom")
register_cvar("CRXSimpleShop", PLUGIN_VERSION, FCVAR_SERVER|FCVAR_SPONLY|FCVAR_UNLOGGED)
register_dictionary("gold_shop.txt")
register_event("CurWeapon", "OnChangeWeapon", "be", "1=1")
RegisterHam(Ham_Spawn, "player", "OnPlayerSpawn", 1)
register_clcmd("say /gold", "Cmd_Shop")
register_clcmd("say_team /gold", "Cmd_Shop")
CC_SetPrefix("&x04[&x03Gold Shop&x04]")
}
public plugin_precache()
{
precache_sound(SOUND_BUY)
for(new i; i < sizeof(g_eItems); i++)
{
if(g_eItems[i][VModel][0])
precache_model(g_eItems[i][VModel])
if(g_eItems[i][PModel][0])
precache_model(g_eItems[i][PModel])
}
}
public OnPlayerSpawn(id)
{
if(!is_user_alive(id))
{
g_iWeapon[id] = NO_WEAPON
}
}
public client_putinserver(id)
g_iWeapon[id] = NO_WEAPON
public OnChangeWeapon(id)
{
if(g_iWeapon[id] == NO_WEAPON || read_data(2) != g_eItems[g_iWeapon[id]][Csw])
return
if(g_eItems[g_iWeapon[id]][VModel][0])
set_pev(id, pev_viewmodel2, g_eItems[g_iWeapon[id]][VModel])
if(g_eItems[g_iWeapon[id]][PModel][0])
set_pev(id, pev_weaponmodel2, g_eItems[g_iWeapon[id]][PModel])
}
public Cmd_Shop(id)
{
if(!is_user_alive(id))
CC_SendMessage(id, "%l", "GOLD_ALIVE") // You need to be alive.
else
{
new iMenu = menu_create("\rGold Shop", "Shop_Handler")
new szItem[64], iMoney = cs_get_user_money(id)
for(new i; i < sizeof(g_eItems); i++)
{
if(g_iWeapon[id] == i)
formatex(szItem, charsmax(szItem), "\d%s \y[OWNED]", g_eItems[i][Name])
else
formatex(szItem, charsmax(szItem), "%s%s \r[%i$]", iMoney >= g_eItems[i][Price] ? "\w" : "\d", g_eItems[i][Name], g_eItems[i][Price])
menu_additem(iMenu, szItem)
}
menu_display(id, iMenu)
}
return PLUGIN_HANDLED
}
public Shop_Handler(id, iMenu, iItem)
{
if(iItem != MENU_EXIT && is_user_alive(id))
{
if(g_iWeapon[id] == iItem)
CC_SendMessage(id, "%l", "GOLD_HAVE") // You already have that!
else
{
new iMoney = cs_get_user_money(id)
if(iMoney < g_eItems[iItem][Price])
CC_SendMessage(id, "%l", "GOLD_NOMONEY") // You don't have enough money to purchase this item.
else
{
cs_set_user_money(id, iMoney - g_eItems[iItem][Price])
CC_SendMessage(id, "%l", "GOLD_BUY", g_eItems[iItem][Name], g_eItems[iItem][Price]) // You have bought ^3%s ^1for ^4%i$
emit_sound(id, CHAN_ITEM, SOUND_BUY, 1.0, ATTN_NORM, 0, PITCH_NORM)
g_iWeapon[id] = iItem
#if defined USING_REAPI
#if defined REPLACE_OLD_WEAPONS
rg_give_item(id, g_eItems[iItem][Weapon], GT_REPLACE)
#else
rg_give_item(id, g_eItems[iItem][Weapon], GT_APPEND)
#endif
#else
#if defined REPLACE_OLD_WEAPONS
StripWeapons(id, Primary)
#endif
give_item(id, g_eItems[iItem][Weapon])
#endif
cs_set_user_bpammo(id, g_eItems[iItem][Ammo], g_eItems[iItem][Csw])
OnChangeWeapon(id)
}
}
}
menu_destroy(iMenu)
return PLUGIN_HANDLED
}