Narek
Компетентный
Здравствуйте! У меня возникла проблема с модом: когда владелец гаража находится в машине и телепортируется в свой гараж, игрока на пассажирском сиденье не телепортирует вместе с владельцем а кидает в интерьер гаража из которого уже не выйдешь. Я бы хотел, чтобы пассажира также телепортировало в гараж или более желательно чтобы просто выкинуло из тачки без телепорта, то есть телепорт без пассажиров. Подскажите, как это можно эти две подхода реализовать? Я также попробовал разобраться самостоятельно, но не смог.
Код:
stock GarageMovement(playerid)
{
new veh_id = GetPlayerVehicleID(playerid);
if(GarageEntered[playerid] == -1)
{
for(new i; ++i < MAX_HOUSES;)
{
if(HouseInfo[i][hGarage] == 1)
{
if(IsPlayerInRangeOfPoint(playerid, 2.0, HouseInfo[i][hGarage_X], HouseInfo[i][hGarage_Y], HouseInfo[i][hGarage_Z]))
{
if(PI[playerid][pHouseKey] != i && !IsACop(playerid))
return SendClientMessage(playerid, COLOR_LIGHTRED, !"[Ошибка]{FFFFFF} Это не ваш гараж!");
if(veh_id != 0)
{
new
count = 0;
for(new vehid; vehid < MAX_VEHICLES; vehid++)
{
if(GetVehicleVirtualWorld(vehid) != (i+50))
continue;
count ++;
}
if(count == 2 && HouseInfo[i][hKlass] == 1)
return SendClientMessage(playerid, COLOR_LIGHTRED, !"[Ошибка] {FFFFFF}В этом гараже уже есть 2 машины!");
if(count == 4 && (HouseInfo[i][hKlass] == 2 || HouseInfo[i][hKlass] == 3 || HouseInfo[i][hKlass] == 4))
return SendClientMessage(playerid, COLOR_LIGHTRED, !"[Ошибка] {FFFFFF}В этом гараже уже есть 4 машины!");
if(count == 5 && (HouseInfo[i][hKlass] == 5 || HouseInfo[i][hKlass] == 6))
return SendClientMessage(playerid, COLOR_LIGHTRED, !"[Ошибка] {FFFFFF}В этом гараже уже есть 5 машин!");
if(PI[playerid][pHouseKey] != i && !IsACop(playerid)){
return SendClientMessage(playerid, COLOR_LIGHTRED, !"[Ошибка]{FFFFFF} Это не ваш гараж!");
}
else{
SetVehiclePos(
veh_id,
GaragesInteriors[HouseInfo[i][hKlass] - 1][e_GARAGE_INTERIOR_X],
GaragesInteriors[HouseInfo[i][hKlass] - 1][e_GARAGE_INTERIOR_Y],
GaragesInteriors[HouseInfo[i][hKlass] - 1][e_GARAGE_INTERIOR_Z]+2.0
);
SetVehicleZAngle(veh_id,GaragesInteriors[HouseInfo[i][hKlass] - 1][e_GARAGE_INTERIOR_A]);
LinkVehicleToInterior(veh_id, 2);
SetVehicleVirtualWorld(veh_id, i + 50);
}
J_SetPlayerPos(
playerid,
GaragesInteriors[HouseInfo[i][hKlass] - 1][e_GARAGE_INTERIOR_X],
GaragesInteriors[HouseInfo[i][hKlass] - 1][e_GARAGE_INTERIOR_Y],
GaragesInteriors[HouseInfo[i][hKlass] - 1][e_GARAGE_INTERIOR_Z] + 1.0
);
SetPlayerFacingAngle(playerid,GaragesInteriors[HouseInfo[i][hKlass] - 1][e_GARAGE_INTERIOR_A]);
SetPlayerInterior(playerid, 2);
SetPlayerVirtualWorld(playerid, i + 50);
if(veh_id != 0) PutPlayerInVehicle(playerid, veh_id, 0);
GarageEntered[playerid] = i;
}
return 1;
}
else {
continue;
}
}
}
}
return 0;
}
Последнее редактирование:
