PDA

Просмотр полной версии : [Прочее] Не могу найти ошибку



Redo
08.12.2016, 00:08
когда сажусь в авто пишет что "этот грузовик уже арендуют"..Хотя его ни кто не арендует...


new ArendaFuelTruck[MAX_VEHICLES];
for(new o; o < MAX_VEHICLES; o++) ArendaFuelTruck[o] = -1;
ArendaFuelTruck[GetPlayerVehicleID(playerid)] = playerid;
if(ArendaFuelTruck[GetPlayerVehicleID(playerid)] == -1)// Эта машина никем не используется
{
SendClientMessage(playerid,CGRAY,"брБРбр.");
RemovePlayerFromVehicle(playerid);
return 1;
}
if(ArendaFuelTruck[GetPlayerVehicleID(playerid)] == playerid)// Эта машина арендуется игроком
{
SendClientMessage(playerid,CGRAY,"Этот грузовик уже арендуеться.");
RemovePlayerFromVehicle(playerid);
return 1;
}

DeimoS
08.12.2016, 00:17
new ArendaFuelTruck[MAX_VEHICLES];
for(new o; o < MAX_VEHICLES; o++) ArendaFuelTruck[o] = -1;
if(ArendaFuelTruck[GetPlayerVehicleID(playerid)] == -1)// Эта машина никем не используется
{
SendClientMessage(playerid,CGRAY,"брБРбр.");
RemovePlayerFromVehicle(playerid);
return 1;
}
if(ArendaFuelTruck[GetPlayerVehicleID(playerid)] == playerid)// Эта машина арендуется игроком
{
SendClientMessage(playerid,CGRAY,"Этот грузовик уже арендуеться.");
RemovePlayerFromVehicle(playerid);
return 1;
}
ArendaFuelTruck[GetPlayerVehicleID(playerid)] = playerid;

Redo
08.12.2016, 00:31
new ArendaFuelTruck[MAX_VEHICLES];
for(new o; o < MAX_VEHICLES; o++) ArendaFuelTruck[o] = -1;
if(ArendaFuelTruck[GetPlayerVehicleID(playerid)] == -1)// Эта машина никем не используется
{
SendClientMessage(playerid,CGRAY,"брБРбр.");
RemovePlayerFromVehicle(playerid);
return 1;
}
if(ArendaFuelTruck[GetPlayerVehicleID(playerid)] == playerid)// Эта машина арендуется игроком
{
SendClientMessage(playerid,CGRAY,"Этот грузовик уже арендуеться.");
RemovePlayerFromVehicle(playerid);
return 1;
}
ArendaFuelTruck[GetPlayerVehicleID(playerid)] = playerid;

Теперь меня так же выпихивает,только пишет "брБРбр"..

DeimoS
08.12.2016, 00:48
new ArendaFuelTruck[MAX_VEHICLES] = {-1, -1, ...};

new truck_id = ArendaFuelTruck[GetPlayerVehicleID(playerid)];
if(truck_id == -1)
ArendaFuelTruck[vehicleid] = playerid;
else if(truck_id != playerid)
{
SendClientMessage(playerid,CGRAY,"Этот грузовик уже арендуется.");
RemovePlayerFromVehicle(playerid);
return 1;
}

Redo
08.12.2016, 00:54
Cпасибо за помощь,но Что-то ничего не выходит как сделать так:
Если грузовик уже арендуют то надо что бы писало "Этот грузовик уже арендуют"
Если я арендую такой же грузовик то "Вы уже арендуете грузовик"



if(vehicleid >= jobfuel[0] && vehicleid <= jobfuel[1])
{
if(pData[playerid][pJob] != 6)
{
SendClientMessage(playerid,COLOR_RED,"Вы не работаете развосчиком топлива");
RemovePlayerFromVehicle(playerid);
return 1;
}
if(pData[playerid][pFraction] >= 1)
{
SendClientMessage(playerid,CGRAY,"Вы cостоите в организации");
RemovePlayerFromVehicle(playerid);
return 1;
}
new ArendaFuelTruck[MAX_VEHICLES] = {-1, -1, ...};

new truck_id = ArendaFuelTruck[GetPlayerVehicleID(playerid)];
if(truck_id == -1)
ArendaFuelTruck[vehicleid] = playerid;
else if(truck_id != playerid)
{
SendClientMessage(playerid,CGRAY,"Этот грузовик уже арендуется.");
RemovePlayerFromVehicle(playerid);
return 1;
}
ShowPlayerDialog(playerid,dTruckFuel,
DIALOG_STYLE_MSGBOX,
!"{"#cWHITE"}Аренда Транспорта",
!"{"#cWHITE"}Вы хотите арендовать этот грузовик за {"#cRED"}$1000",
!"Аренда", !"Отмена");
}

DeimoS
08.12.2016, 00:59
В начало мода

new ArendaFuelTruck[MAX_VEHICLES] = {-1, -1, ...};


Твой код

if(vehicleid >= jobfuel[0] && vehicleid <= jobfuel[1])
{
if(pData[playerid][pJob] != 6)
{
SendClientMessage(playerid,COLOR_RED,"Вы не работаете развозчиком топлива");
RemovePlayerFromVehicle(playerid);
return 1;
}
if(pData[playerid][pFraction] >= 1)
{
SendClientMessage(playerid,CGRAY,"Вы cостоите в организации");
RemovePlayerFromVehicle(playerid);
return 1;
}

new truck_id = ArendaFuelTruck[vehicleid];
if(truck_id == -1)
ArendaFuelTruck[vehicleid] = playerid;
else if(truck_id != playerid)
{
SendClientMessage(playerid,CGRAY,"Этот грузовик уже арендуется.");
RemovePlayerFromVehicle(playerid);
return 1;
}
ShowPlayerDialog(playerid,dTruckFuel,
DIALOG_STYLE_MSGBOX,
!"{"#cWHITE"}Аренда Транспорта",
!"{"#cWHITE"}Вы хотите арендовать этот грузовик за {"#cRED"}$1000",
!"Аренда", !"Отмена");
return 1;
}

Redo
08.12.2016, 01:05
В начало мода

new ArendaFuelTruck[MAX_VEHICLES] = {-1, -1, ...};


Твой код

if(vehicleid >= jobfuel[0] && vehicleid <= jobfuel[1])
{
if(pData[playerid][pJob] != 6)
{
SendClientMessage(playerid,COLOR_RED,"Вы не работаете развозчиком топлива");
RemovePlayerFromVehicle(playerid);
return 1;
}
if(pData[playerid][pFraction] >= 1)
{
SendClientMessage(playerid,CGRAY,"Вы cостоите в организации");
RemovePlayerFromVehicle(playerid);
return 1;
}

new truck_id = ArendaFuelTruck[vehicleid];
if(truck_id == -1)
ArendaFuelTruck[vehicleid] = playerid;
else if(truck_id != playerid)
{
SendClientMessage(playerid,CGRAY,"Этот грузовик уже арендуется.");
RemovePlayerFromVehicle(playerid);
return 1;
}
ShowPlayerDialog(playerid,dTruckFuel,
DIALOG_STYLE_MSGBOX,
!"{"#cWHITE"}Аренда Транспорта",
!"{"#cWHITE"}Вы хотите арендовать этот грузовик за {"#cRED"}$1000",
!"Аренда", !"Отмена");
return 1;
}

А из-за чего когда я арендую грузовик,а потом перезахожу в него мне предлагает его опять арендовать то?

DeimoS
08.12.2016, 01:06
А из-за чего когда я арендую грузовик,а потом перезахожу в него мне предлагает его опять арендовать то?

Наверно потому, что ты не сделал сохранение информации о аренде?

Redo
08.12.2016, 01:08
Наверно потому, что ты не сделал сохранение информации о аренде?

Да?
Ну ладно..Спасибо большое..
Щас попробую наколдовать..

Redo
08.12.2016, 12:38
Что-то у меня не вышло...
Не помежь ли ?пожалуйста..

qwezert
08.12.2016, 17:22
Что-то у меня не вышло...
Не помежь ли ?пожалуйста..
Это уже не помощь, а просьба написать за тебя систему. Не научишься ты так ничему. Гугли и читай.

Redo
08.12.2016, 21:34
Почему все ровно предлагает второй раз арендовать?


if(vehicleid >= jobfuel[0] && vehicleid <= jobfuel[1])
{
if(pData[playerid][pJob] != 6)
{
SendClientMessage(playerid,COLOR_RED,"Вы не работаете развосчиком топлива");
return RemovePlayerFromVehicle(playerid);
}
if(pData[playerid][pFraction] >= 1)
{
SendClientMessage(playerid,CGRAY,"Вы cостоите в организации");
return RemovePlayerFromVehicle(playerid);
}
new carseat = GetPlayerVehicleID(playerid);
foreach(new i : Player) // если используешь инклуд foreach, то тогда заменяй на foreach(new i : Player)
{
if(carseat == GetPVarInt(i, "ArendaTruckFuel"))
{
SendClientMessage(playerid, CGRAY, "Эта машина уде арендована");
return RemovePlayerFromVehicle(playerid);
}
}
if(GetPVarInt(playerid, "Arendoval") == 1)
{
SendClientMessage(playerid, CGRAY, "Вы уже арендовали другой транспорт");
return RemovePlayerFromVehicle(playerid);
}
ShowPlayerDialog(playerid,dTruckFuel, DIALOG_STYLE_MSGBOX, !"{"#cWHITE"}Аренда Транспорта", !"{"#cWHITE"}Вы хотите арендовать этот грузовик за {"#cRED"}$1000", !"Аренда", !"Отмена");
}

А это в кейс


if(response)
{
new caridcheck = GetPlayerVehicleID(playerid);
SetPVarInt(playerid, "ArendaTruckFuel", caridcheck);
SetPVarInt(playerid, "Arendoval", 1);
}

DeimoS
08.12.2016, 21:57
Потому что нужно сохранять в аккаунт игрока информацию о том, арендует ли он авто или нет