Skocz do zawartości

Nowy szablon forum

mygo.pl

Stworzyliśmy dla Was nowy wygląd forum. Z pewnością znajdziesz rzeczy, które wg Ciebie mogą zostać zmienione - wspomnij o tym w specjalnym wątku.

Czytaj więcej

Jak założyć własną sieć

serwerów CS

Zastanawiasz się nad prowadzeniem własnej sieci serwerów? Przeczytaj podstawowe informacje, na które należy zwrócić uwagę, przy takim projekcie.

Czytaj więcej

Tworzymy spis sieci

dodaj swoją

Dodaj sieć do której należysz, pozwoli to na promocję i budowę ogólnopolskiej bazy sieci CS.

Czytaj więcej

RSSEdit PVIP Shop


MYGO.pl
 Udostępnij

Rekomendowane odpowiedzi

  • RSSy
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) <= 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("Shining Heart Rod"), 1);
        HasUsedItem1PerMapLimit[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 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_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_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;
}

Przeczytaj cały wpis

Odnośnik do komentarza
Udostępnij na innych stronach

Gość
Ten temat został zamknięty. Brak możliwości dodania odpowiedzi.
 Udostępnij

  • Ostatnio przeglądający   0 użytkowników

    • Brak zarejestrowanych użytkowników przeglądających tę stronę.
×
×
  • Dodaj nową pozycję...