Senior Member
|
04-24-2024
, 08:38
Edit PVIP Shop
|
#1
|
Hello, could someone edit my pvipshop and make a .ini file for it?
For example:
Create a ini file called zp_pvipshop.ini
And inside that file i want it to be like this
[Extraitems]
"Name of the item in menu" "Item" "Price" "RoundLimit" "MapLimit"
"Shining Heart" "Shining Heart Rod" "65000" "" "1" // also if the "" for the respective function is empty that means there wont be any round limit or map limit
* You can remove the hardcoded armor and health, i have another plugin for them.
HTML Code:
#include <amxmodx>
#include <amxmisc>
#include <fun>
#include <cstrike>
#include <zp_buymenu>
#include <colorchat>
#include <zombieplague>
#define PLUGIN "PVIP Shop"
#define VERSION "1.0"
#define AUTHOR "tedaimlocks"
#define PVIP_FLAG ADMIN_LEVEL_D
#define MAX_USES_PER_ROUND 5
#define MAX_USES_PER_MAP 1
new HasUsedItemArmorPerRoundLimit[33][MAX_USES_PER_ROUND]
new HasUsedItemHealthPerRoundLimit[33][MAX_USES_PER_ROUND]
new HasUsedItem1PerMapLimit[33][MAX_USES_PER_MAP]
new HasUsedItem2PerMapLimit[33][MAX_USES_PER_MAP]
new HasUsedItem3PerMapLimit[33][MAX_USES_PER_MAP]
public plugin_init() {
register_plugin(PLUGIN, VERSION, AUTHOR)
register_clcmd("say /pvip", "PVIPMenu")
register_logevent("logevent_RoundStart", 2, "1=Round_Start");
}
public logevent_RoundStart() {
new i, j;
for (i = 0; i < sizeof(HasUsedItemArmorPerRoundLimit); i++) {
for (j = 0; j < MAX_USES_PER_ROUND; j++) {
HasUsedItemArmorPerRoundLimit[i][j] = false;
}
}
for (i = 0; i < sizeof(HasUsedItemHealthPerRoundLimit); i++) {
for (j = 0; j < MAX_USES_PER_ROUND; j++) {
HasUsedItemHealthPerRoundLimit[i][j] = false;
}
}
}
public PVIPMenu(id) {
if(!(get_user_flags(id) & PVIP_FLAG) || !is_user_alive(id) || zp_get_user_zombie(id) || zp_get_user_survivor(id)) {
return PLUGIN_HANDLED;
}
new title[198];
new money = zp_cs_get_user_money(id);
formatex(title, charsmax(title), "\ySPK - Zombie Plague \r[CSO] \d | PVIP Shop^nMoney: %d", money);
new menu = menu_create(title, "PVIPMenuHandler");
new ArmorUsesRound = GetNumUsesRound(id, HasUsedItemArmorPerRoundLimit);
new HealthUsesRound = GetNumUsesRound(id, HasUsedItemHealthPerRoundLimit);
new ShiningHeartRodUsesMap = GetNumUsesMap(id, HasUsedItem1PerMapLimit);
new NemesisUsesMap = GetNumUsesMap(id, HasUsedItem2PerMapLimit);
new SurvivorUsesMap = GetNumUsesMap(id, HasUsedItem3PerMapLimit);
new ArmorMenuItemRoundLimit[128];
new HealthMenuItemRoundLimit[128];
new ItemShiningHeartRodMapLimit[128];
new ItemNemesisMapLimit[128];
new ItemSurvivorMapLimit[128];
if(zp_cs_get_user_money(id) <= 2499) {
format(ArmorMenuItemRoundLimit, sizeof(ArmorMenuItemRoundLimit), "\d100 Armor \d[\r%d\d/\y%d \rper round\d] \d| \y[\r2500$\y]", ArmorUsesRound, MAX_USES_PER_ROUND);
format(HealthMenuItemRoundLimit, sizeof(HealthMenuItemRoundLimit), "\d100 Health \d[\r%d\d/\y%d \rper round\d] \d| \y[\r2500$\y]", HealthUsesRound, MAX_USES_PER_ROUND);
format(ItemShiningHeartRodMapLimit, sizeof(ItemShiningHeartRodMapLimit), "\dShining Heart Rod \d[\r%d\d/\y%d \rper map\d] \d| \y[\r65000$\y]", ShiningHeartRodUsesMap, MAX_USES_PER_MAP);
format(ItemNemesisMapLimit, sizeof(ItemNemesisMapLimit), "\dNemesis \d[\r%d\d/\y%d \rper map\d] \d| \y[\r150000$\y]", NemesisUsesMap, MAX_USES_PER_MAP);
format(ItemSurvivorMapLimit, sizeof(ItemSurvivorMapLimit), "\dSurvivor \d[\r%d\d/\y%d \rper map\d] \d| \y[\r150000$\y]", SurvivorUsesMap, MAX_USES_PER_MAP);
}
else if(zp_cs_get_user_money(id) <= 64999) {
format(ArmorMenuItemRoundLimit, sizeof(ArmorMenuItemRoundLimit), "100 Armor \d[\r%d\d/\y%d \rper round\d] \d| \y[\r2500$\y]", ArmorUsesRound, MAX_USES_PER_ROUND);
format(HealthMenuItemRoundLimit, sizeof(HealthMenuItemRoundLimit), "100 Health \d[\r%d\d/\y%d \rper round\d] \d| \y[\r2500$\y]", HealthUsesRound, MAX_USES_PER_ROUND);
format(ItemShiningHeartRodMapLimit, sizeof(ItemShiningHeartRodMapLimit), "\dShining Heart Rod \d[\r%d\d/\y%d \rper map\d] \d| \y[\r65000$\y]", ShiningHeartRodUsesMap, MAX_USES_PER_MAP);
format(ItemNemesisMapLimit, sizeof(ItemNemesisMapLimit), "\dNemesis \d[\r%d\d/\y%d \rper map\d] \d| \y[\r150000$\y]", NemesisUsesMap, MAX_USES_PER_MAP);
format(ItemSurvivorMapLimit, sizeof(ItemSurvivorMapLimit), "\dSurvivor \d[\r%d\d/\y%d \rper map\d] \d| \y[\r150000$\y]", SurvivorUsesMap, MAX_USES_PER_MAP);
}
else if(zp_cs_get_user_money(id) <= 149999) {
format(ArmorMenuItemRoundLimit, sizeof(ArmorMenuItemRoundLimit), "100 Armor \d[\r%d\d/\y%d \rper round\d] \d| \y[\r2500$\y]", ArmorUsesRound, MAX_USES_PER_ROUND);
format(HealthMenuItemRoundLimit, sizeof(HealthMenuItemRoundLimit), "100 Health \d[\r%d\d/\y%d \rper round\d] \d| \y[\r2500$\y]", HealthUsesRound, MAX_USES_PER_ROUND);
format(ItemShiningHeartRodMapLimit, sizeof(ItemShiningHeartRodMapLimit), "Shining Heart Rod \d[\r%d\d/\y%d \rper map\d] \d| \y[\r65000$\y]", ShiningHeartRodUsesMap, MAX_USES_PER_MAP);
format(ItemNemesisMapLimit, sizeof(ItemNemesisMapLimit), "\dNemesis \d[\r%d\d/\y%d \rper map\d] \d| \y[\r150000$\y]", NemesisUsesMap, MAX_USES_PER_MAP);
format(ItemSurvivorMapLimit, sizeof(ItemSurvivorMapLimit), "\dSurvivor \d[\r%d\d/\y%d \rper map\d] \d| \y[\r150000$\y]", SurvivorUsesMap, MAX_USES_PER_MAP);
}
else {
format(ArmorMenuItemRoundLimit, sizeof(ArmorMenuItemRoundLimit), "100 Armor \d[\r%d\d/\y%d \rper round\d] \d| \y[\r2500$\y]", ArmorUsesRound, MAX_USES_PER_ROUND);
format(HealthMenuItemRoundLimit, sizeof(HealthMenuItemRoundLimit), "100 Health \d[\r%d\d/\y%d \rper round\d] \d| \y[\r2500$\y]", HealthUsesRound, MAX_USES_PER_ROUND);
format(ItemShiningHeartRodMapLimit, sizeof(ItemShiningHeartRodMapLimit), "Shining Heart Rod \d[\r%d\d/\y%d \rper map\d] \d| \y[\r65000$\y]", ShiningHeartRodUsesMap, MAX_USES_PER_MAP);
format(ItemNemesisMapLimit, sizeof(ItemNemesisMapLimit), "Nemesis \d[\r%d\d/\y%d \rper map\d] \d| \y[\r150000$\y]", NemesisUsesMap, MAX_USES_PER_MAP);
format(ItemSurvivorMapLimit, sizeof(ItemSurvivorMapLimit), "Survivor \d[\r%d\d/\y%d \rper map\d] \d| \y[\r150000$\y]", SurvivorUsesMap, MAX_USES_PER_MAP);
}
menu_additem(menu, ArmorMenuItemRoundLimit, "1");
menu_additem(menu, HealthMenuItemRoundLimit, "2");
menu_additem(menu, ItemShiningHeartRodMapLimit, "3");
menu_additem(menu, ItemNemesisMapLimit, "4");
menu_additem(menu, ItemSurvivorMapLimit, "5");
menu_setprop(menu, MPROP_EXITNAME, "Exit");
menu_display(id, menu);
return PLUGIN_CONTINUE;
}
public PVIPMenuHandler(id, menu, item) {
switch(item) {
case 0: {
if(is_user_alive(id))
PVIPMenuItemArmorPerRoundLimit(id);
else
return PLUGIN_HANDLED;
}
case 1: {
if(is_user_alive(id))
PVIPMenuItemHealthPerRoundLimit(id);
else
return PLUGIN_HANDLED;
}
case 2: {
if(is_user_alive(id))
PVIPMenuItem1PerMapLimit(id);
else
return PLUGIN_HANDLED;
}
case 3: {
if(is_user_alive(id))
PVIPMenuItem2PerMapLimit(id);
else
return PLUGIN_HANDLED;
}
case 4: {
if(is_user_alive(id))
PVIPMenuItem3PerMapLimit(id);
else
return PLUGIN_HANDLED;
}
}
return PLUGIN_CONTINUE;
}
public PVIPMenuItemArmorPerRoundLimit(id) {
new uses = GetNumUsesRound(id, HasUsedItemArmorPerRoundLimit);
if (uses >= MAX_USES_PER_ROUND) {
ColorChat(id, GREEN, "^x01[^x04SPK ZM^x01]^x03 You have reached the maximum uses of^x04 Armor^x03 for this round.");
return PLUGIN_HANDLED;
}
if(zp_cs_get_user_money(id) <= 2499) {
return PLUGIN_HANDLED;
}
zp_cs_set_user_money(id, zp_cs_get_user_money(id) - 2500);
set_user_armor(id, get_user_armor(id) + 100);
HasUsedItemArmorPerRoundLimit[id][uses] = true;
return PLUGIN_CONTINUE;
}
public PVIPMenuItemHealthPerRoundLimit(id) {
new uses = GetNumUsesRound(id, HasUsedItemHealthPerRoundLimit);
if (uses >= MAX_USES_PER_ROUND) {
ColorChat(id, GREEN, "^x01[^x04SPK ZM^x01]^x03 You have reached the maximum uses of^x04 Health^x03 for this round.");
return PLUGIN_HANDLED;
}
if(zp_cs_get_user_money(id) <= 2499) {
return PLUGIN_HANDLED;
}
zp_cs_set_user_money(id, zp_cs_get_user_money(id) - 2500);
set_user_health(id, get_user_health(id) + 100);
HasUsedItemHealthPerRoundLimit[id][uses] = true;
return PLUGIN_CONTINUE;
}
public PVIPMenuItem1PerMapLimit(id) {
new uses = GetNumUsesMap(id, HasUsedItem1PerMapLimit);
if (uses >= MAX_USES_PER_MAP) {
ColorChat(id, GREEN, "^x01[^x04SPK ZM^x01]^x03 You have reached the maximum uses of^x04 Shining Heart Rod^x03 for this map.");
return PLUGIN_HANDLED;
}
if (zp_get_extra_item_id("Shining Heart Rod") != -1) {
if(zp_cs_get_user_money(id) <= 64999) {
return PLUGIN_HANDLED;
}
zp_cs_set_user_money(id, zp_cs_get_user_money(id) - 65000);
zp_force_buy_extra_item(id, zp_get_extra_item_id("Shining Heart Rod"), 1);
HasUsedItem1PerMapLimit[id][uses] = true;
}
else {
if(zp_cs_get_user_money(id) <= 64999) {
return PLUGIN_HANDLED;
}
else {
ColorChat(id, GREEN, "^x01[^x04SPK ZM^x01]^x03 The item^x04 Shining Heart Rod^x03 was not found.");
HasUsedItem1PerMapLimit[id][uses] = false;
}
}
return PLUGIN_CONTINUE;
}
public PVIPMenuItem2PerMapLimit(id) {
new uses = GetNumUsesMap(id, HasUsedItem2PerMapLimit);
if (uses >= MAX_USES_PER_MAP) {
ColorChat(id, GREEN, "^x01[^x04SPK ZM^x01]^x03 You have reached the maximum uses of^x04 Nemesis^x03 for this map.");
return PLUGIN_HANDLED;
}
if(zp_has_round_started()) {
return PLUGIN_HANDLED;
}
if (zp_get_extra_item_id("Nemesis") != -1) {
if(zp_cs_get_user_money(id) <= 149999) {
return PLUGIN_HANDLED;
}
zp_cs_set_user_money(id, zp_cs_get_user_money(id) - 150000);
zp_force_buy_extra_item(id, zp_get_extra_item_id("Nemesis"), 1);
HasUsedItem2PerMapLimit[id][uses] = true;
}
else {
if(zp_cs_get_user_money(id) <= 149999) {
return PLUGIN_HANDLED;
}
else {
ColorChat(id, GREEN, "^x01[^x04SPK ZM^x01]^x03 The item^x04 Nemesis^x03 was not found.");
HasUsedItem2PerMapLimit[id][uses] = false;
}
}
return PLUGIN_CONTINUE;
}
public PVIPMenuItem3PerMapLimit(id) {
new uses = GetNumUsesMap(id, HasUsedItem3PerMapLimit);
if (uses >= MAX_USES_PER_MAP) {
ColorChat(id, GREEN, "^x01[^x04SPK ZM^x01]^x03 You have reached the maximum uses of^x04 Survivor^x03 for this map.");
return PLUGIN_HANDLED;
}
if(zp_has_round_started()) {
return PLUGIN_HANDLED;
}
if (zp_get_extra_item_id("Survivor") != -1) {
if(zp_cs_get_user_money(id) <= 149999) {
return PLUGIN_HANDLED;
}
zp_cs_set_user_money(id, zp_cs_get_user_money(id) - 150000);
zp_force_buy_extra_item(id, zp_get_extra_item_id("Survivor"), 1);
HasUsedItem3PerMapLimit[id][uses] = true;
}
else {
if(zp_cs_get_user_money(id) <= 149999) {
return PLUGIN_HANDLED;
}
else {
ColorChat(id, GREEN, "^x01[^x04SPK ZM^x01]^x03 The item^x04 Survivor^x03 was not found.");
HasUsedItem3PerMapLimit[id][uses] = false;
}
}
return PLUGIN_CONTINUE;
}
public GetNumUsesRound(id, array[][])
{
new uses = 0;
new i;
for (i = 0; i < MAX_USES_PER_ROUND; i++)
{
if (array[id][i])
{
uses++;
}
}
return uses;
}
public GetNumUsesMap(id, array[][])
{
new uses = 0;
new i;
for (i = 0; i < MAX_USES_PER_MAP; i++)
{
if (array[id][i])
{
uses++;
}
}
return uses;
}
Last edited by tedaimlocks; 04-24-2024 at 13:00.
|
|