igor_chupin
Компетентный
Проблема заключается в том что vbuy команда не корректно работает, а именно после покупки авто владелец не меняется.
Скрин
Компьютер покупателя авто.
Скрин
Компьютер продавца авто.
Код команды /vsellto:
Код команды /accept vbuy:
За помощь буду очень благодарен я весь измучился не как не выходит.С меня Спасибка и в следующей версии упомяну вас.
Скрин
Скрин
Код команды /vsellto:
PHP:
if(strcmp(cmd, "/vsellto",true) == 0)
{
if(Player[playerid][pCarkey1] == 0) return SendClientMessage(playerid, COLOR_RED, "[ОШИБКА] {FFFFFF}У вас нет личного транспорта!");
if(sscanf(params, "dd", params[1], params[2])) return SendClientMessage(playerid, COLOR_WHITE, "{00BFFF}[КОМАНДЫ]{FFFFFF} /vsellto [id игрока] [цена]");
if(!IsAOwnableVehicle(GetPlayerVehicleID(playerid))) return SendClientMessage(playerid,COLOR_RED, "[ОШИБКА] {FFFFFF}Вы должны находиться в своём транспортном средстве!");
if(Player[params[1]][pCarkey1] != 0) return SendClientMessage(playerid, COLOR_RED, "[ОШИБКА] {FFFFFF}У этого игрока уже есть личный транспорт!");
if((params[2] < 1000 || params[2] > 10000000) && (params[1] != playerid)) return SendClientMessage(playerid, COLOR_RED, "[ОШИБКА] {FFFFFF}Цена за авто должна составлять от 1000$ до 10000000$");
if(!IsPlayerConnected(params[1])) return SendClientMessage(playerid, COLOR_RED, NoConnectGivePlayer);
if(params[1] == INVALID_PLAYER_ID) return SendClientMessage(playerid,COLOR_RED, NoRules);
if(ProxDetectorS(8.0, playerid, params[1]))
{
vselltoOffer[params[1]] = playerid;
vselltoPrice[params[1]] = params[2];
if(params[1] == playerid) return 1;
GetPlayerName(params[1], giveplayer, sizeof(giveplayer));
f(string, "* Ты предложил игроку %s купить ваш %s за $%d.", giveplayer,VehiclesName[GetVehicleModel(GetPlayerVehicleID(playerid))-400], params[2]);
SendClientMessage(playerid, COLOR_LIGHTBLUE, string);
f(string, "* Игрок %s предлагает вам купить %s за $%d, введите (/accept vbuy) для подтверждения.", sendername(playerid), VehiclesName[GetVehicleModel(GetPlayerVehicleID(playerid))-400], params[2]);
SendClientMessage(params[1], COLOR_LIGHTBLUE, string);
}
else
{
SendClientMessage(playerid, COLOR_RED, "[ОШИБКА] {FFFFFF}Игрок не возле тебя!");
}
return 1;
}
PHP:
if(strcmp(params[0],"vbuy",true) == 0)
{
if(vselltoOffer[playerid] == 999) return send(playerid, COLOR_RED, "[ОШИБКА] {FFFFFF}Никто не предлагал вам купить авто!");
if(Player[playerid][pCarkey1] != 0)return send(playerid,COLOR_RED, "[ОШИБКА] {FFFFFF}У вас уже есть личный транспорт!");
if(Player[playerid][pMoney] < vselltoPrice[playerid])return send(playerid,COLOR_RED, "[ОШИБКА] {FFFFFF}Недостаточно наличных для покупки авто!");
new carkey[MAX_PLAYERS];
GetPlayerName(vselltoOffer[playerid], giveplayer, sizeof(giveplayer));
format(string, sizeof(string), "* Вы купили авто за $%d у игрока %s.",vselltoPrice[playerid], giveplayer);
send(playerid, COLOR_LIGHTBLUE, string);
format(string, sizeof(string), "* %s купил у вас авто $%d.", sendername(playerid), vselltoPrice[playerid]);
send(vselltoOffer[playerid], COLOR_LIGHTBLUE, string);
carkey[playerid] = Player[vselltoOffer[playerid]][pCarkey1];
Player[vselltoOffer[playerid]][pCarkey1] = 0;
Player[playerid][pCarkey1] = carkey[playerid];
for(new ocar =0 ; ocar < OWNABLECARS; ocar++)
{
if(!strcmp(OwnableCar[carkey[playerid]-SIMPLECARS-1][ocOwner],vselltoOffer[playerid],true)) strmid(OwnableCar[ocar][ocOwner], sendername(playerid), 0, strlen(sendername(playerid)), 999);
}
GivePlayerKapusta(vselltoOffer[playerid],vselltoPrice[playerid]);
GivePlayerKapusta(playerid, -vselltoPrice[playerid]);
carkey[playerid] = 0;
vselltoOffer[playerid] = 999;
vselltoPrice[playerid] = 0;
SaveOwnableCars();
SaveAccount(vselltoOffer[playerid]);
SaveAccount(playerid);
return true;
}
