Перейти к содержанию
Авторизация  
floZZy

[ Вопрос ] Команда

Рекомендуемые сообщения

floZZy

В общем. Столкнулся с такой бедой. При покупке дома, дом записывается с БД ( к игроку ) , но после ввода команды /sellhouse, пишет что у Вас нету дома, хотя я его только что купил.

А после рестарта сервера, пишет в чат " владелец продал дом который вы снимали " хотя я не снимал, а купил его.

В общем, помогите.

p/s После рестарта хоть и пишет что дом продан, но в БД всё равно написал владелец я

if(pTemp[playerid][pSellHouseOffee] == playerid) //Согласился купить дом


{
new houseid = pTemp[playerid][pSellHouseID];
new price = pTemp[playerid][pSellHousePrice];
new offerid = pTemp[playerid][pSellHouseOffer];
if(!gHouses[houseid][houseOwnerID] || !pData[offerid][pHouse])
{
SendClientMessage(playerid,CGRAY,"Дом был продан в гос.");
pTemp[offerid][pSellHouseOffer] = INVALID_PLAYER_ID;
pTemp[playerid][pSellHouseOffer] = INVALID_PLAYER_ID;
pTemp[playerid][pSellHouseOffee] = INVALID_PLAYER_ID;
pTemp[playerid][pSellHousePrice] = 0;
pTemp[playerid][pSellHouseID] = 0;
return 1;
}
if(pTemp[offerid][pSellHouseOffer] == INVALID_PLAYER_ID || !IsPlayerConnected(offerid))
{
SendClientMessage(playerid,CGRAY,"Продавец вышел из игры, либо продал дом другому игроку");
pTemp[offerid][pSellHouseOffer] = INVALID_PLAYER_ID;
pTemp[playerid][pSellHouseOffer] = INVALID_PLAYER_ID;
pTemp[playerid][pSellHouseOffee] = INVALID_PLAYER_ID;
pTemp[playerid][pSellHousePrice] = 0;
pTemp[playerid][pSellHouseID] = 0;
return 1;
}
if(GetPlayerMoneyEx(playerid) {
SendClientMessage(playerid,CGRAY,"У Вас недостаточно денег на руках");
SendClientMessage(offerid,CGRAY,"У покупателя недостаточно денег");
pTemp[offerid][pSellHouseOffer] = INVALID_PLAYER_ID;
pTemp[playerid][pSellHouseOffer] = INVALID_PLAYER_ID;
pTemp[playerid][pSellHouseOffee] = INVALID_PLAYER_ID;
pTemp[playerid][pSellHousePrice] = 0;
pTemp[playerid][pSellHouseID] = 0;
return 1;
}
UpdatePlayerData(offerid,"house",0);
UpdatePlayerData(playerid,"house",houseid+1);
new query[512];
format(query,sizeof(query),"UPDATE `houses` SET `ownerid` = '%d', owner = '%s',inhabit2id = '0',inhabit3id = '0',inhabit4id = '0',inhabit2='',inhabit3='',inhabit4='' WHERE `id` = '%d'",pData[playerid][pMysqlID],pData[playerid][pNickname],houseid+1);
sql_query(dbserv, query);
TransferMoney(playerid,offerid,price,"sellhouse");
pData[playerid][pHouse] = houseid+1;
pData[offerid][pHouse] = 0;
gHouses[houseid][houseOwnerID] = pData[playerid][pMysqlID];
format(gHouses[houseid][houseOwner],MAX_PLAYER_NAME,"%s",pData[playerid][pNickname]);
strdel(gHouseHabits[houseid][0],0,24);
strdel(gHouseHabits[houseid][1],0,24);
strdel(gHouseHabits[houseid][2],0,24);
gHouses[houseid][houseHabitID][0] = 0;
gHouses[houseid][houseHabitID][1] = 0;
gHouses[houseid][houseHabitID][2] = 0;
gHouses[houseid][houseSkin][1] = 0;
gHouses[houseid][houseSkin][2] = 0;
gHouses[houseid][houseSkin][3] = 0;
if(pData[playerid][pFraction]) gHouses[houseid][houseSkin][3] = pData[playerid][pFractionSkin];
UpdateHouseDress(houseid);
if(pData[offerid][pFraction]) SetPlayerSkin(offerid,pData[offerid][pFractionSkin]);
SendClientMessage(playerid,CGREEN,"Поздравляем, Вы купили дом");
SendClientMessage(offerid,CGREEN,"Дом продан");
if(questprohod[playerid] == 1 && questhome[playerid] == 0)
{
SendClientMessage(playerid, CGREEN, "Вы успешно выполнили квест 'Жильё'.");
SendClientMessage(playerid, CGREEN, "Ваша награда 60.000$.");
questprohod[playerid] = 0,questhome[playerid] = 1;
pData[playerid][pMoney] += 60000;
ResetPlayerMoney(playerid); GivePlayerMoney(playerid,pData[playerid][pMoney]);
}
pTemp[offerid][pSellHouseOffer] = INVALID_PLAYER_ID;
pTemp[playerid][pSellHouseOffer] = INVALID_PLAYER_ID;
pTemp[playerid][pSellHouseOffee] = INVALID_PLAYER_ID;
pTemp[playerid][pSellHousePrice] = 0;
pTemp[playerid][pSellHouseID] = 0;

}

 

if(!strcmp(cmd,"/sellhouse",true))
{
new mes[128];
if(!pData[playerid][pHouse]) return SendClientMessage(playerid,CGRAY,"У Вас нет дома");
if(pData[playerid][pCar]) return SendClientMessage(playerid,CGRAY,"У Вас есть машина. Вы должны продать её прежде чем продавать дом");
new houseid = pData[playerid][pHouse]-1;
if(gHouses[houseid][houseOwnerID] != pData[playerid][pMysqlID]) return SendClientMessage(playerid,CGRAY,"Вы не являетесь владельцем дома в котором живете");
if(pTemp[playerid][pTaxiID] != INVALID_VEHICLE_ID || pTemp[playerid][pTaxiPass] != INVALID_PLAYER_ID) return SendClientMessage(playerid,CGRAY,"Нельзя использовать данную команду сейчас");
tmp = strtok(cmdtext, idx);
if(!strlen(tmp))
{
SPFD(playerid,dSellHouse,0,"Продажа дома","Да","Нет","{"#cW"}Вы хотите продать дом государству за {"#cGREEN"}$%d {"#cW"}(80%% от гос. стоимости)?\n{"#cGRAY"}(чтобы продать дом другому игроку введите /sellhouse [iD игрока] [Цена])",gHouses[houseid][housePrice]/100*80);
return 1;
}
new actplayerid = strval(tmp);
tmp = strtok(cmdtext, idx);
new price = strval(tmp);
if(price 200000000) return SendClientMessage(playerid,CGRAY,"Цена не может быть меньше гос. цены дома или больше 200 млн.");
if(!IsPlayerConnected(actplayerid) || playerid == actplayerid) return SendClientMessage(playerid,CGRAY,"Неверный ID игрока");
if(pData[actplayerid][pHouse]) return SendClientMessage(playerid,CGRAY,"У игрока уже есть дом, чтобы обменяться используйте /changehouse");
if(GetPlayerDistanceToPlayer(playerid,actplayerid) > 3.0 || GetPlayerVirtualWorld(playerid) != GetPlayerVirtualWorld(actplayerid)) return SendClientMessage(playerid,CGRAY,"Вы далеко друг от друга");
format(mes,sizeof(mes),"Вы предложили {"#cW"}%s {"#cINFO"} купить ваш дом",pData[actplayerid][pNickname]);
SendClientMessage(playerid,CINFO,mes);
format(mes,sizeof(mes),"%s {"#cINFO"}предложил Вам купить его дом за {"#cRED"}$%d{"#cINFO"}. Чтобы подтвердить нажмите {"#cGREEN"}Y{"#cINFO"}, иначе {"#cRED"}N",pData[playerid][pNickname],price);
SendClientMessage(actplayerid,CWHITE,mes);
format(mes, sizeof(mes), "Вы предложили {"#cINFO"}%s {"#cW"}купить ваш дом за {"#cGREEN"}$%d", pData[actplayerid][pNickname],price);
SendClientMessage(playerid, -1, mes);
pTemp[playerid][pSellHouseOffer] = playerid;
pTemp[actplayerid][pSellHouseOffer] = playerid;
pTemp[actplayerid][pSellHouseOffee] = actplayerid;
pTemp[actplayerid][pSellHousePrice] = price;
pTemp[actplayerid][pSellHouseID] = houseid;
}

 

Изменено пользователем T4RAS1KMLG

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
floZZy

Крч в БД дом остаётся, и пишет что хозяин я 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
floZZy

up

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
floZZy

Что не кто не может помочь ?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
EgasVegas

Тут надо мод сам смотреть.

Вдруг что-то с переменными не так и т.п

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
floZZy

@EgasVegas,Вот именно, что в моде всё в порядке, так же как и с БД 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
Гость
Эта тема закрыта для публикации ответов.
Авторизация  

  • Последние посетители   0 пользователей онлайн

    Ни одного зарегистрированного пользователя не просматривает данную страницу

×

Важная информация

Мы разместили cookie-файлы на ваше устройство, чтобы помочь сделать этот сайт лучше. Вы можете изменить свои настройки cookie-файлов, или продолжить без изменения настроек.