Diego_Malkov
Специалист
Здравствуйте.
У меня возникла проблема с сист.домов
Суть проблемы:
Я создаю дом.
Все нормально я его покупаю,но после рестарта у меня происходят хреновые вещи.
До рестарта:
Дом номер:1
Владелец:Бла_бла
Клас:Люкс
После рестарта:
Дом номер:0
Владелец:Бла_бла
Клас:
Но вот в чем 2 проблема,
я делаю 2 рестарт и у меня нет дома вообще,не пикапа нечего,и удаляется строка с домом из файла.
Вот код создания домов,посмотрите,может тут что-то не верно?
И еще вопросик,людям знающим Мускул
Прошу перевести 2 маленьких стока
У меня возникла проблема с сист.домов
Суть проблемы:
Я создаю дом.
Все нормально я его покупаю,но после рестарта у меня происходят хреновые вещи.
До рестарта:
Дом номер:1
Владелец:Бла_бла
Клас:Люкс
После рестарта:
Дом номер:0
Владелец:Бла_бла
Клас:
Но вот в чем 2 проблема,
я делаю 2 рестарт и у меня нет дома вообще,не пикапа нечего,и удаляется строка с домом из файла.
Вот код создания домов,посмотрите,может тут что-то не верно?
PHP:
case ADD:
{
if(response)
{
AllHouse ++;
new Float:x,Float:y,Float:z;
GetPlayerPos(playerid,x,y,z);
HouseInfo[AllHouse][hEnterx] = x;
HouseInfo[AllHouse][hEntery] = y;
HouseInfo[AllHouse][hEnterz] = z;
BuyHouse();
ShowPlayerDialog(playerid,ADD+1,DIALOG_STYLE_LIST,"Стиль","Эконом\nСредний\nЛюкс","Далее","");
}
}
case ADD+1:
{
if(response)
{
switch(listitem)
{
case 0:SetPVarInt(playerid,"hous",1);
case 1:SetPVarInt(playerid,"hous",2);
case 2:SetPVarInt(playerid,"hous",3);
}
if(GetPVarInt(playerid,"hous") == 1)
{
SetPlayerInterior(playerid,9);
ChangeSkin[playerid] = 1;
TogglePlayerControllable(playerid, 0);
SetPlayerPos(playerid, 2251.85,-1138.16,1050.63);
SetPlayerVirtualWorld(playerid,playerid);
ShowMenuForPlayer(HouseMenu, playerid);
}
else if(GetPVarInt(playerid,"hous") == 2)
{
SetPlayerInterior(playerid,2);
ChangeSkin[playerid] = 1;
TogglePlayerControllable(playerid, 0);
SetPlayerPos(playerid, 225.756989,1240.000000,1082.149902);
SetPlayerVirtualWorld(playerid,playerid);
ShowMenuForPlayer(HouseMenu, playerid);
}
else if(GetPVarInt(playerid,"hous") == 3)
{
SetPlayerInterior(playerid,3);
ChangeSkin[playerid] = 1;
TogglePlayerControllable(playerid, 0);
SetPlayerPos(playerid, 235.508994,1189.169897,1080.339966);
SetPlayerVirtualWorld(playerid,playerid);
ShowMenuForPlayer(HouseMenu, playerid);
}
}
}
case ADD+2:
{
if(response)
{
if(sscanf(inputtext, "i",HouseInfo[AllHouse][hPrice])) return ShowPlayerDialog(playerid,ADD+2,DIALOG_STYLE_INPUT,"Цена","Введите цену","Далее","");
CreateHouse(playerid);
SetPlayerPos(playerid,HouseInfo[AllHouse][hEnterx],HouseInfo[AllHouse][hEntery],HouseInfo[AllHouse][hEnterz]);
SetPlayerInterior(playerid,0);
SetPlayerVirtualWorld(playerid,0);
TogglePlayerControllable(playerid, 1);
}
}
PHP:
stock CreateHouse(playerid)
{
new clas;
if(GetPVarInt(playerid,"hous") == 1) clas = 1;
else if(GetPVarInt(playerid,"hous") == 2) clas = 2;
else if(GetPVarInt(playerid,"hous") == 3) clas = 3;
HouseInfo[AllHouse][hClass] = clas;
new Float:x,Float:y,Float:z;
GetPlayerPos(playerid,x,y,z);
HouseInfo[AllHouse][hExitx] = x;
HouseInfo[AllHouse][hExity] = y;
HouseInfo[AllHouse][hExitz] = z;
HouseInfo[AllHouse][hInt] = GetPlayerInterior(playerid);
HouseInfo[AllHouse][hVirtual] = AllHouse+1;
strmid(HouseInfo[AllHouse][hOwner], "None", 0, strlen("None"), MAX_PLAYER_NAME);
HouseInfo[AllHouse][hIcon] = CreateDynamicMapIcon(HouseInfo[AllHouse][hEnterx], HouseInfo[AllHouse][hEntery], HouseInfo[AllHouse][hEnterz], 31, 0,-1,-1,-1,200.0);
HouseInfo[AllHouse][hPickup] = CreatePickup(1273,1, HouseInfo[AllHouse][hEnterx], HouseInfo[AllHouse][hEntery], HouseInfo[AllHouse][hEnterz]);
DeletePVar(playerid,"hous");
BuyHouse();
SaveHouse();
return SendClientMessage(playerid,COLOR_ORANGE,"Дом Создан");
}
PHP:
stock BuyHouse(idx)
{
DestroyDynamicMapIcon(HouseInfo[idx][hIcon]);
DestroyDynamicPickup(HouseInfo[idx][hPickup]);
if(HouseInfo[idx][hOwned] == 0)
{
HouseInfo[idx][hIcon] = CreateDynamicMapIcon(HouseInfo[idx][hEnterx], HouseInfo[idx][hEntery], HouseInfo[idx][hEnterz], 31, COLOR_WHITE, 0, -1, -1, 90.0);
HouseInfo[idx][hPickup] = CreatePickup(1272, 23, HouseInfo[idx][hEnterx], HouseInfo[idx][hEntery], HouseInfo[idx][hEnterz],-1);
}
else if(HouseInfo[idx][hOwned] == 1)
{
HouseInfo[idx][hIcon] = CreateDynamicMapIcon(HouseInfo[idx][hEnterx], HouseInfo[idx][hEntery], HouseInfo[idx][hEnterz], 32, COLOR_WHITE, 0, -1, -1, 90.0);
HouseInfo[idx][hPickup] = CreatePickup(1273, 23, HouseInfo[idx][hEnterx], HouseInfo[idx][hEntery], HouseInfo[idx][hEnterz],-1);
}
HouseInfo[idx][hPickupExit] = CreatePickup(1273, 1, HouseInfo[idx][hExitx], HouseInfo[idx][hExity], HouseInfo[idx][hExitz], HouseInfo[idx][hVirtual]);
}
PHP:
stock SaveHouse()
{
if(!fexist("houses.cfg")) return printf("file 'houses.cfg' not found");
new string[256],File:GetFile = fopen("houses.cfg", io_write);
for(new i=1; i<AllHouse+1; i++)
{
if(HouseInfo[i][hPrice] == 0) continue;
format(string, sizeof(string), "%f|%f|%f|%f|%f|%f|%d|%d|%s|%d|%i|%i|%i|%i|%i\r\n",
HouseInfo[i][hEnterx],
HouseInfo[i][hEntery],
HouseInfo[i][hEnterz],
HouseInfo[i][hExitx],
HouseInfo[i][hExity],
HouseInfo[i][hExitz],
HouseInfo[i][hOwner],
HouseInfo[i][hVirtual],
HouseInfo[i][hInt],
HouseInfo[i][hLock],
HouseInfo[i][hOwned],
HouseInfo[i][hBank],
HouseInfo[i][hClass],
HouseInfo[i][hSafe]);
fwrite(GetFile, string);
}
fclose(GetFile);
return true;
}
Прошу перевести 2 маленьких стока
PHP:
stock SetPlayerInt(username[], stolb[], znach) // öåëûå ÷èñëà
{
new Query[128];
format(Query, sizeof(Query), "UPDATE `accounts` SET %s = '%d' WHERE Name = '%s' LIMIT 1", stolb, znach, username);
return mysql_query(Query);
}
stock SetOtherInt(stolb[], znach)
{
new Query[128];
format(Query, sizeof(Query), "UPDATE "TABLE_OTHER" SET %s = '%d'", stolb, znach);
return mysql_query(Query);
}
Последнее редактирование:
