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

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

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

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

Система АЗС [MySQL r7]

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

Windows_8

Умник
Прошу помочь с системой АЗС.
Есть система, при добавлении в игру АЗС, в базу записывается файл.
Написано только 2 команды: Покупка АЗС и Создание АЗС | Покупка АЗС вообще не реагирует никак
Текст о продажи АЗС появляется при создании, но при релоге/рестарте текст пропадает, хотя в БД все записано.


Код:
enum azsInfo
{
    Id,
    Float:PosX,
    Float:PosY,
    Float:PosZ,
    Lock,
    Cost,
    Products,
    CostProduct,
    Owner[64],
    Owned,
    Takings,
    Salary,
    SellProd,
    Order,
    OrderStart,
    NameAZS[64],
    Text3D:Text
};
new AZSInfo[14][azsInfo];

Код:
new query[512];
     for(new i = 1; i < sizeof(AZSInfo); i++)
    {
        format(query, sizeof(query), "SELECT `Id` FROM `azs` WHERE `Id`='%d'", i);
        mysql_function_query(connect, query, true, "LoadAZS", "d", i);
    }
    for(new i = 1; i < sizeof(AZSInfo); i++)
    {
        SaveAZS(i);
    }

Код:
CMD:buyazs(playerid, params[])
{
    if(GetPVarInt(playerid, "Logged" ) == 0) return true;
    if(Player[playerid][playerazs] != 0) return  SendClientMessage(playerid, COLOR_GREY, "Вы уже владеете автозаправочной  станцией");
    for(new i = 1; i < sizeof(AZSInfo); i++)
    {
        if(!IsPlayerInRangeOfPoint(playerid, 3.0, AZSInfo[i][PosX], AZSInfo[i][PosY], AZSInfo[i][PosZ])) continue;
        if(AZSInfo[i][Owned] == 1) return SendClientMessage(playerid, COLOR_GREY, "Данная АЗС не продаётся.");
        new text[95];
        format(text, sizeof(text), "Вы действительно хотите купить данную автозаправку?\nЦена заправки: %d$", AZSInfo[i][Cost]);
        ShowPlayerDialog(playerid, 35, 0, "Покупка автозаправочной станции", text, "Купить", "Выход");
    }
    return true;
}

CMD:addazs(playerid, params[])
{
    if(GetPVarInt(playerid, "Logged" ) == 0) return true;
    if(Player[playerid][admins] < 7) return true;
	new Float:Pos[3], query[512];
	GetPlayerPos(playerid, Pos[0], Pos[1], Pos[2]);
 	format(query, sizeof(query), "INSERT INTO `azs`(`PosX`, `PosY`,  `PosZ`, `Cost`, `Owner`, `Owned`) VALUES ('%f', '%f', '%f', '400000',  'The State', '0')", Pos[0], Pos[1], Pos[2]);
	mysql_function_query(1, query, false, "", "");
	Create3DTextLabel("АЗС", COLOR_WHITE, Pos[0], Pos[1], Pos[2] + 1.0, 25.0, 0, 0);
	UpdateAZS(playerid);
	SendMes(playerid, COLOR_ORANGE, "Вы успешно создали АЗС.");
	return true;
}

Код:
case 35:
        {
            if(!response) return true;
            for(new i = 1; i < sizeof(AZSInfo); i++)
            {
                if(!IsPlayerInRangeOfPoint(playerid, 3.0, AZSInfo[i][PosX], AZSInfo[i][PosY], AZSInfo[i][PosZ])) continue;
                if(Player[playerid][moneys] < AZSInfo[i][Cost])  return SendClientMessage(playerid, COLOR_GREY, "На вашем счёте нет  столько средств");
                new text[90];
                Player[playerid][moneys] -= AZSInfo[i][Cost];
                format(text, sizeof(text), "С вашего счёта списано: %d $.", AZSInfo[i][Cost]);
                SendClientMessage(playerid, COLOR_BLUE, text);
                Player[playerid][playerazs] = i;
                AZSInfo[i][Owned] = 1;
                AZSInfo[i][Takings] = AZSInfo[i][Cost]/50;
                strmid(AZSInfo[i][Owner], PlayerName[i], 0, 64, 64);
                UpdateAZS(i);
            }
            return true;
        }

Код:
forward SaveAZS(playerid);
public SaveAZS(playerid)
{
    new query[512];
    format(query, sizeof(query), "UPDATE `azs` SET `PosX`='%f',  `PosY`='%f', `PosZ`='%f', `Lock`='%d', `Products`='%d',  `CostProduct`='%d', `Owner`='%s', `Owned`='%d', `Takings`='%d',  `Salary`='%d', `Name`='%s' WHERE `Id`='%d'",
    AZSInfo[playerid][PosX], AZSInfo[playerid][PosY],  AZSInfo[playerid][PosZ], AZSInfo[playerid][Lock],  AZSInfo[playerid][Products], AZSInfo[playerid][CostProduct],  AZSInfo[playerid][Owner], AZSInfo[playerid][Owned],  AZSInfo[playerid][Takings], AZSInfo[playerid][Salary],  AZSInfo[playerid][NameAZS], id);
    mysql_function_query(connect, query, false, "", "");
}

forward LoadAZS(playerid);
public LoadAZS(playerid)
{
    new rows, fields, text[126], temp[128];
    cache_get_data(rows, fields);
    if(rows)
    {
        cache_get_field_content(0, "Id", temp);             AZSInfo[playerid][Id] = strval(temp);
        cache_get_field_content(0, "PosX", temp);             AZSInfo[playerid][PosX] = floatstr(temp);
        cache_get_field_content(0, "PosY", temp);             AZSInfo[playerid][PosY] = floatstr(temp);
        cache_get_field_content(0, "PosZ", temp);             AZSInfo[playerid][PosZ] = floatstr(temp);
        cache_get_field_content(0, "Lock", temp);             AZSInfo[playerid][Lock] = strval(temp);
        cache_get_field_content(0, "Products", temp);         AZSInfo[playerid][Products] = strval(temp);
        cache_get_field_content(0, "CostProduct", temp);     AZSInfo[playerid][CostProduct] = strval(temp);
        cache_get_field_content(0, "Owner", temp);             strmid(AZSInfo[playerid][Owner], temp, 0, 64, 64);
        cache_get_field_content(0, "Name", temp);             strmid(AZSInfo[playerid][NameAZS], temp, 0, 64, 64);
          cache_get_field_content(0, "Owned", temp);             AZSInfo[playerid][Owned] = strval(temp);
          cache_get_field_content(0, "Takings", temp);         AZSInfo[playerid][Takings] = strval(temp);
          cache_get_field_content(0, "Salary", temp);         AZSInfo[playerid][Salary] = strval(temp);
          AZSInfo[playerid][Cost] = (AZSInfo[playerid][Products] * 15) + 30000;
          if(AZSInfo[playerid][Owned] == 0) AZSInfo[playerid][Text] =  Create3DTextLabel("Автозаправочная станция\nПродаётся\n/buyazs",  COLOR_BLUE, AZSInfo[id][PosX], AZSInfo[id][PosY], AZSInfo[id][PosZ],  90.0, 0, 1);
        else
        {
            format(text, 126, "Автозаправочная станция\nВладелец:  %s\nЗаправка: %d $/л\nНазвание: %s", AZSInfo[playerid][Owner],  AZSInfo[playerid][CostProduct], AZSInfo[playerid][NameAZS]);
             AZSInfo[playerid][Text] = Create3DTextLabel(text,  COLOR_BLUE, AZSInfo[playerid][PosX], AZSInfo[playerid][PosY],  AZSInfo[playerid][PosZ], 90.0, 0, 1);
        }
    }
    return printf("[MySQL] Всего загружено АЗС %d", AZSInfo[playerid][Id]);
}

Код:
stock UpdateAZS(playerid)
{
    if(AZSInfo[playerid][Owned] == 0)  Update3DTextLabelText(AZSInfo[playerid][Text], COLOR_BLUE,  "Автозаправочная станция\nПродаётся\n/buyazs");
    else
    {
        new text[126];
        format(text, sizeof(text), "Автозаправочная станция\nВладелец:  %s\nЗаправка: %d $/л\nНазвание: %s", AZSInfo[id][Owner],  AZSInfo[id][CostProduct], AZSInfo[id][NameAZS]);
         Update3DTextLabelText(AZSInfo[playerid][Text], COLOR_BLUE, text);
    }
    SaveAZS(playerid);
    return true;
}
 
Статус
В этой теме нельзя размещать новые ответы.
Сверху Снизу