И снова здравствуйте, господа. Когда-то вшивал в свой мод интересную системку "баров" от velix'a. Решил написать ее Вам.
Автор: velix
Ко всем new
PHP код:
const MAX_DRINKS = 8;// Количество напитков
const 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]);
}