Доступ к архиву

Переход в группу "Пользователь"

300.00 ₽
Одноразовый платёж
Быстрый переход в группу "Пользователи", без надобности написания постов и ожидания.

Покупка дает возможность:
Быть полноправным участником форума
Нормальное копирование кода
Создавать темы
Скачивать файлы
Доступ к архиву Pawno-Info

Бар

Статус
В этой теме нельзя размещать новые ответы.

dtse

Ученик
Мини-система бара.​
Думаю, уже все с ней ознакомлены, но здесь немного другая структура.
Смотрите сами.


Автор: velix

Скриншоты:



* Лечу в небе потому, что не перемешал игрока в интерьер кафе.
PHP:
#define MAX_DRINKS 8// Количество напитков 
#define MAX_BAR_POS 4 // Количество позиций баров

enum DrinkBar//By velix
{
    DrinkName[10],
    Float:DrinkHP,
    DrinkPrice
};

new DrinkInfo[ MAX_DRINKS ][ DrinkBar ] = {// Напитки
/* Название, хп, цена */
    {"Водка", 20.0, 5},
    {"Вино", 25.0, 5},
    {"Коньяк", 23.0, 5},
    {"Пиво", 25.0, 3},
    {"Coca-Cola", 15.0, 2},
    {"Sprite", 15.0, 2},
    {"Кофе", 30.0, 2},
    {"Какао", 5.0, 2}
};

enum DrinkBarCoords
{
    Float:drX,
    Float:drY,
    Float:drZ
};

new DrinkCoordsInfo[ MAX_BAR_POS ][ DrinkBarCoords ] = {// Координаты
    {495.7801,-76.0305,998.7578},// Бар на грув
    {499.9654,-20.2515,1000.6797},// Бар
    {1215.9480,-13.3519,1000.9219},// Стрип 1
    {-2658.9749,1407.4136,906.2734}// Стрип 2
};
Далее, идем в public OnPlayerCommandText:

PHP:
if(strcmp(cmd, "/drink", true) == 0)
    {
        if(!IsAtBar(playerid))
            return SendClientMessage(playerid, 0xFFFFFFFF, "* Чувак, ты не около бара!");
        return ShowBarDialog(playerid);
    }
Это, желательно, в конец мода:
PHP:
stock ShowBarDialog(playerid)
{
    new string[600];
    for(new i=0;i<sizeof(DrinkInfo);i++)
        format(string,sizeof(string),"%s{FFFFFF}[{00D900}%d{FFFFFF}] {00D900}%s{FFFFFF}\t [{00D900}$%d{FFFFFF}]\n",string,i,DrinkInfo[i][DrinkName],DrinkInfo[i][DrinkPrice]);
    return ShowPlayerDialog(playerid,200,DIALOG_STYLE_LIST,"{FFFFFF}Покупка алкоголя",string,"Выпить","Отмена");
}

stock IsAtBar(playerid)
{
    for(new id=0;id<sizeof(DrinkCoordsInfo);id++)
        if(IsPlayerInRangeOfPoint(playerid, 2.0, DrinkCoordsInfo[id][drX], DrinkCoordsInfo[id][drY], DrinkCoordsInfo[id][drZ]))
            return 1;
    return 0;
}
Идем в public OnDialogResponse:

PHP:
    else if(dialogid == 200)
    {
        if(response == 0) return 1;
        if(GetPlayerMoney(playerid) < DrinkInfo
[listitem][DrinkPrice]) return SendClientMessage(playerid, 0xFFFFFFAA, "* Братка, подзаработаешь бабосов - приходи!");
        GivePlayerMoney(playerid,-DrinkInfo
[listitem][DrinkPrice]);
        ApplyAnimation(playerid,"FOOD","EAT_Burger",4.0,1,1,1,1,1);
        new Float:health;
        GetPlayerHealth(playerid, health);
        SetPlayerHealth(playerid, health+DrinkInfo
[listitem][DrinkHP]);
    }
 
Последнее редактирование:
Статус
В этой теме нельзя размещать новые ответы.
Сверху Снизу