Правила форума Гаранты форума
Размещение рекламы AMX-X компилятор

Здравствуйте, гость Вход | Регистрация

Наши новости:

14-дек
24-апр
10-апр
11-апр

> Правила форума

Этот раздел, как вы могли заметить по названию, предназначен для решения вопросов по поводу уже существующих модов и плагинов.
Пожалуйста, если у вас проблема с написанием плагина, не путайте этот раздел с разделом по скриптингу.
Для поиска плагинов и модов существует соответствующий раздел.

Название темы должно соответствовать содержанию. Темы с названием типа "Помогите", "Вопрос", "парни подскажите..." - будут удалены.
Все темы, не относящиеся к "Вопросам по модам и плагинам", будут удалены или перемещены в соответствующий раздел.

Правила оформления темы:
1. Помимо заголовка не забудьте верно сформулировать свой вопрос.
2. Выложите исходник (в тег кода + ) или ссылку на плагин который вызывает у вас вопросы.
3. Выложите лог с ошибками (если имеется) под спойлер

Проблема с магазином [array]

Статус пользователя Nixon
сообщение 7.6.2014, 17:03
Сообщение #1


Стаж: 12 лет

Сообщений: 399
Благодарностей: 192
Полезность: 589

На amxxmodx нашёл статью link, как сделать магазин через Array. Сделал, всё отлично получилось, но не хотелось бы иметь 2 плагина и инклюд. Я сделал всё в один, но проблема, в том что при открытие магазина пишет "нету вещей". В чем может быть проблема? Вроде бы делал всё правильно...

Код:
Код:
#include <amxmodx>
#include <cstrike>
#include <fun>

#define PL_NAME "SHOP"
#define PL_VERSION "1.0"
#define PL_AUTHOR "NIXON"

new Array: gItemName; // Название предмета в магазине
new Array: gItemCost; // Стоимость предмета в магазине

new gHealth, gArmor, gDeagle;

public plugin_init() {
register_plugin(PL_NAME, PL_VERSION, PL_AUTHOR);

register_clcmd("say /shop", "clcmd_shop"); // Меню магазина

gItemName = ArrayCreate(32, 1); // array с названием предмета
gItemCost = ArrayCreate(1, 1); // array со стоимостью предмета

gHealth = RegisterItem("Здоровье 150", 1000);
gArmor = RegisterItem("Бронежилет 150", 800);
gDeagle = RegisterItem("Deagle", 2100);
}

public clcmd_shop(id) {
new iSizeShop = ArraySize(gItemName);
if(!iSizeShop) {
client_print(id, print_chat, "В магазине нету вещей!");
return PLUGIN_HANDLED;
}

new iMenu = menu_create("Магазин:", "handled_shop");
new iNameItem[32], iCostItem, iInfoItem[64];

for(new i = 0; i < iSizeShop; i++) {
ArrayGetString(gItemName, i, iNameItem, charsmax(iNameItem));
iCostItem = ArrayGetCell(gItemCost, i);

formatex(iInfoItem, charsmax(iInfoItem), "%s \r%d $", iNameItem, iCostItem);
menu_additem(iMenu, iInfoItem);
}

menu_setprop(iMenu, MPROP_EXITNAME, "Выход");
menu_display(id, iMenu, 0);

return PLUGIN_HANDLED;
}

public handled_shop(id, menu, item) {
new iCostItem = ArrayGetCell(gItemCost, item);
new iMoneyPlayer = cs_get_user_money(id);

if(iMoneyPlayer >= iCostItem) {
switch(item) {
case 1: {
set_user_health(id, get_user_health(id) + 150);
cs_set_user_money(id, iMoneyPlayer - iCostItem);
}

case 2: {
set_user_armor(id, get_user_armor(id) + 150);
cs_set_user_money(id, iMoneyPlayer - iCostItem);
}

case 3: {
give_item(id, "weapon_deagle");
cs_set_user_bpammo(id, CSW_DEAGLE, 120);
cs_set_user_money(id, iMoneyPlayer - iCostItem);
}
}
} else client_print(id, print_chat, "У вас не хватает денег!");

return PLUGIN_HANDLED;
}

stock RegisterItem(const Name[], Cost) {
param_convert(1);

ArrayPushString(gItemName, Name);
ArrayPushCell(gItemCost, Cost);

return ArraySize(gItemName) - 1;
}


Отредактировал: Nixon, - 7.6.2014, 17:04
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   Цитировать сообщение
  Ответить в данную темуНачать новую тему
 
0 пользователей и 1 гостей читают эту тему: