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