RSSy MYGO.pl Opublikowano Kwiecień 24, 2024 o 12:38 RSSy Udostępnij Opublikowano Kwiecień 24, 2024 o 12:38 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 Więcej opcji udostępniania...
Rekomendowane odpowiedzi