-WorcOut-
«I'am WorcOut» ♫
Добрый день вот решил написал простенькую систему на Mysql - основа система бизнесов !!!
Начнём !
[HR][/HR]
[2] #include a_mysql моя версия R39-2
[3] #include streamer
[HR][/HR]
Далее в
[HR][/HR]
После в pInfo добавим
[HR][/HR]
После создам
enum, после которого идёт имя перечисления и в фигурных скобках объявляются его элементы - поля:
Таким образом мы перечислили набор констант, значения которых будут определены автоматически.
[HR][/HR]
В public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
[HR][/HR]
В public OnPlayerPickUpDynamicPickup(playerid, pickupid)
Создаём 2 переменные
Целый (не имеет названия) - целые числа
Почему switch ?
Главное преимущество switch перед if - эффективность: если в конструкции switch указано несколько диапазонов, принадлежность к одному из них определяется быстрее, чем в if.
[HR][/HR]
В сохранения Аккаунта добавляем
[HR][/HR]
В загрузку Аккаунта
[HR][/HR]
Далее делаем загрузку BD
[HR][/HR]
В сохранения Аккаунта
[HR][/HR]
Добавим Updat иконки и пикапа
И
[HR][/HR]
В загрузку аккаунта добавим
BD Кому надо
Если нужен FS пишите в лс снизу есть данные
Начнём !
[HR][/HR]
Нам потребуются include
[1] #include a_samp[2] #include a_mysql моя версия R39-2
[3] #include streamer
[HR][/HR]
Далее в
PHP:
#define publics:%0(%1) forward %0(%1); \
public %0(%1)
После в pInfo добавим
PHP:
pCash,//Скок денег у игрока
pBizzWorc // Бизнесы
После создам
enum, после которого идёт имя перечисления и в фигурных скобках объявляются его элементы - поля:
PHP:
enum bInfo
{
bID, // id бизнеса
bOwner[64], // владелиц бизнеса
bOwned, // 0 нету бизнеса , 1 есть
bNameBizz, // название бизнеса
bName[MAX_PLAYER_NAME],
bCash, // Цена бизнеса
Float: bEnterX, // Координаты расположения по X
Float: bEnterY, // Координаты расположения по Y
Float: bEnterZ, // Координаты расположения по Z
bPick, // Пикам бизнеса
bMap // Иконка бизнеса
}
new BussinesInfo[5][bInfo]; // Количества Бизнес , в моём случий 5 проверка
[HR][/HR]
В public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
PHP:
case 1:
{
if(!response) return false;
for(new b = 0; b < sizeof(BussinesInfo); b++)
{
if(IsPlayerInRangeOfPoint(playerid, 2.0, BussinesInfo[b][bEnterX], BussinesInfo[b][bEnterY], BussinesInfo[b][bEnterZ]))
{
if(PlayerInfo[playerid][pBizzWorc] != 255) return SendClientMessage(playerid, 0xAFAFAFAA,"Сначала продайте свой бизнес!");
if(PlayerInfo[playerid][pCash] <= BussinesInfo[b][bCash])
{
SendClientMessage(playerid, 0xAFAFAFAA,"У вас нехватает средств на покупку этого бизнеса!");
return true;
}
PlayerInfo[playerid][pCash] -= BussinesInfo[b][bCash];
BussinesInfo[b][bOwned] = 1;
PlayerInfo[playerid][pBizzWorc] = b;
strmid(BussinesInfo[b][bOwner], GN(playerid), 0, strlen(GN(playerid)), 64);
SendClientMessage(playerid, 0xFFFFFFFF, "Вы успешно приобрели бизнес!");
SendClientMessage(playerid, 0xFFFFFFFF, "{00FF00}Помощь: Для управления бизнесом используйте команду /bizz");
SaveBizzInfo(b);
}
}
}
В public OnPlayerPickUpDynamicPickup(playerid, pickupid)
Создаём 2 переменные
Целый (не имеет названия) - целые числа
PHP:
new str[360]; // format
new namesbizz[32]; // name bizz
PHP:
for(new b = 0; b < sizeof(BussinesInfo); b++)
{
if(pickupid == BussinesInfo[b][bPick])
{
if(BussinesInfo[b][bOwned] == 0)
{
switch(BussinesInfo[b][bNameBizz])
{
case 0: namesbizz = "{0BDA51}24/7{FFFFFF}";
case 1: namesbizz = "{0BDA51}Ларёк{FFFFFF}";
case 2: namesbizz = "{0BDA51}Автостанция{FFFFFF}";
case 3: namesbizz = "{0BDA51}Лодояная{FFFFFF}";
}
format(str, sizeof(str), "{FFFFFF}Название бизнеса:\t\t{0080FF}%s{FFFFFF}\
\nСтоимость:\t\t\t{00FF00}%i",namesbizz, BussinesInfo[b][bCash]);
ShowPlayerDialog(playerid, 1, DIALOG_STYLE_MSGBOX, "Покупка бизнеса", str, "Купить", "Отмена");
}
else
{
switch(BussinesInfo[b][bNameBizz])
{
case 0: namesbizz = "{0BDA51}24/7{FFFFFF}";
case 1: namesbizz = "{0BDA51}Ларёк{FFFFFF}";
case 2: namesbizz = "{0BDA51}Автостанция{FFFFFF}";
case 3: namesbizz = "{0BDA51}Лодояная{FFFFFF}";
}
format(str, sizeof(str), "{FFFFFF}Название бизнеса:\t\t{0080FF}%s{FFFFFF}\
\nСтоимость:\t\t\t{00FF00}%i{FFFFFF}\
\nВладелец:\t\t\t%s",namesbizz, BussinesInfo[b][bCash], BussinesInfo[b][bOwner]);
ShowPlayerDialog(playerid, 3, DIALOG_STYLE_MSGBOX, "Информация о бизнесе", str, "Купить", "Отмена");
}
}
}
Главное преимущество switch перед if - эффективность: если в конструкции switch указано несколько диапазонов, принадлежность к одному из них определяется быстрее, чем в if.
[HR][/HR]
В сохранения Аккаунта добавляем
PHP:
format(query, sizeof(query), "%s `BizzKey` = '%d'", query, PlayerInfo[playerid][pBizzWorc]);
В загрузку Аккаунта
PHP:
cache_get_field_content(0, "BizzKey", maximum), PlayerInfo[playerid][pBizzWorc] = strval(maximum);
Далее делаем загрузку BD
PHP:
publics: LoadBizzInfo()
{
new temp[64], i=0;
static rows, fields;
cache_get_data(rows, fields);
if(rows)
{
for(new he = 0;he < rows; he++)
{
cache_get_row(he, 0, temp), BussinesInfo[he][bID] = strval(temp);
cache_get_row(he, 1, temp), BussinesInfo[he][bOwned] = strval(temp);
cache_get_row(he, 2, temp), strmid(BussinesInfo[he][bOwner], temp, 0, strlen(temp), 64);
cache_get_row(he, 3, temp), BussinesInfo[he][bNameBizz] = strval(temp);
cache_get_row(he, 4, temp), strmid(BussinesInfo[he][bName], temp, 0, strlen(temp), 128);
cache_get_row(he, 5, temp), BussinesInfo[he][bCash] = strval(temp);
cache_get_row(he, 6, temp), BussinesInfo[he][bEnterX] = floatstr(temp);
cache_get_row(he, 7, temp), BussinesInfo[he][bEnterY] = floatstr(temp);
cache_get_row(he, 8, temp), BussinesInfo[he][bEnterZ] = floatstr(temp);
i++;
UpdateBizzInfo(he);
}
}
printf("%i",i);
return true;
}
В сохранения Аккаунта
PHP:
stock SaveBizzInfo(id)
{
new update[500];
format(update, sizeof(update), "UPDATE `bussines` SET `Owned` = '%i' `Owner` = '%s' WHERE `id` = '%i'",
BussinesInfo[id][bOwned],
BussinesInfo[id][bOwner], id);
mysql_query(update, -1, 0, MysqlConnect);
}
Добавим Updat иконки и пикапа
PHP:
stock UpdateBizzInfo(id)
{
BussinesInfo[id][bPick] = CreateDynamicPickup(19132, 2, BussinesInfo[id][bEnterX], BussinesInfo[id][bEnterY], BussinesInfo[id][bEnterZ], -1);
BussinesInfo[id][bMap] = CreateDynamicMapIcon(BussinesInfo[id][bEnterX], BussinesInfo[id][bEnterY], BussinesInfo[id][bEnterZ], 52, 0xFFFFFFAA, 0, -1, -1);
return true;
}
PHP:
stock GN(playerid) { new name[MAX_PLAYER_NAME]; GetPlayerName(playerid, name, sizeof(name)); return name; }
В загрузку аккаунта добавим
PHP:
mysql_function_query(MysqlConnect,"SELECT * FROM `buzz`",true,"LoadBizzInfo","");
Чтобы видеть скрытое содержание Зарегистрируйтесь на форуме!
Если нужен FS пишите в лс снизу есть данные
