Dimdimich
Новичок
Скачал в интернете ФС на дом на колесах(подходишь к боковой двери нажимаешь F и тебя телепортирует в интерьер). Все работает только с теми машинами которые заспавнил автор, а если я админкой заспавню транспорт то ничего не работает.
Вот код
Помогите пожалуйста, я уже очень давно ищу решение проблемы, кто поможет буду очень благодарен.
(Если комуто интересно где стоят автомобили, то они находятся в городе Лас Вентурас возле заправки которая находится возле рельс)
Вот код
C++:
#include <a_samp>
#include <streamer>
#include <foreach>
new Float:VehiclePos[8][4] = {//x,y,z,f - Координаты для транспорта.
{681.5339, 1945.1458, 5.7797, 179.7000},
{686.5339, 1945.1458, 5.7797, 179.7000},
{701.5339, 1945.1458, 5.7797, 179.7000},
{706.5339, 1945.1458, 5.7797, 179.7000},
{711.5339, 1945.1458, 5.7797, 179.7000},
{716.5339, 1945.1458, 5.7797, 179.7000},
{721.5339, 1945.1458, 5.7797, 179.7000},
{726.5339, 1945.1458, 5.7797, 179.7000}
};
new VehicleID[sizeof(VehiclePos)];//Массив для ИД транспорта.
enum e_pInfo {
TrailerID
}
new pInfo[MAX_PLAYERS][e_pInfo];
main(){}
public OnGameModeInit()
{
DisableInteriorEnterExits();
//Создаём транспорт//
for(new i; i < sizeof(VehiclePos); i++) VehicleID[i] = CreateVehicle(508, VehiclePos[i][0], VehiclePos[i][1], VehiclePos[i][2], VehiclePos[i][3], -1, -1, 100);
//Маппинг трейлера//
CreateDynamicObject(14385, 681.00250, -459.25739, -15.88801, 0.00000, 0.00000, 0.00000);
CreateDynamicObject(18038, 679.96381, -454.56100, -18.94561, 0.00000, 0.00000, 0.00000);
CreateDynamicObject(19453, 705.55487, -450.06360, -19.44230, 0.00000, 0.00000, 0.00000);
CreateDynamicObject(19361, 703.94281, -445.35669, -19.44230, 0.00000, 0.00000, 90.00000);
CreateDynamicObject(19454, 704.08612, -449.94519, -17.72217, 0.00000, 90.00000, 0.00000);
CreateDynamicObject(19361, 703.94281, -454.85669, -19.44230, 0.00000, 0.00000, 90.00000);
CreateDynamicObject(19453, 702.39490, -450.06360, -19.44230, 0.00000, 0.00000, 0.00000);
CreateDynamicObject(14819, 702.30939, -452.91422, -20.02400, 0.00000, 0.00000, 90.00000);
CreateDynamicObject(2336, 704.98407, -453.26450, -21.17420, 0.00000, 0.00000, 270.00000);
CreateDynamicObject(2337, 704.98407, -452.25409, -21.17330, 0.00000, 0.00000, 270.00000);
CreateDynamicObject(2528, 702.78522, -445.95401, -21.17310, 0.00000, 0.00000, 0.00000);
CreateDynamicObject(19390, 703.94281, -447.85669, -19.44230, 0.00000, 0.00000, 90.00000);
CreateDynamicObject(11743, 705.19171, -453.09381, -20.11750, 0.00000, 0.00000, 270.00000);
CreateDynamicObject(11707, 705.40503, -446.98990, -19.72800, 0.00000, 0.00000, 270.00000);
CreateDynamicObject(19172, 703.98877, -454.76730, -18.61850, 0.00000, 0.00000, 180.00000);
CreateDynamicObject(2631, 704.20068, -446.83981, -21.20890, 0.00000, 0.00000, 0.00000);
CreateDynamicObject(2131, 702.87842, -451.46420, -21.17400, 0.00000, 0.00000, 90.00000);
CreateDynamicObject(2156, 705.27570, -450.89191, -21.17360, 0.00000, 0.00000, 270.00000);
CreateDynamicObject(1764, 705.06836, -448.10687, -21.26620, 0.00000, 0.00000, 270.00000);
CreateDynamicObject(19916, 702.68292, -452.36066, -21.17336, 0.00000, 0.00000, 89.46001);
CreateDynamicObject(19787, 702.42603, -448.91626, -19.73790, 0.00000, 0.00000, 90.00000);
CreateDynamicObject(936, 702.62280, -448.96121, -20.85460, 0.00000, 0.00000, 89.76000);
CreateDynamicObject(1491, 703.15558, -447.84540, -21.17370, 0.00000, 0.00000, 0.00000);
CreateDynamicObject(2526, 703.75018, -445.91400, -21.17310, 0.00000, 0.00000, 0.00000);
CreateDynamicObject(14481, 704.49353, -445.90240, -19.14640, 0.00000, 0.00000, 90.00000);
CreateDynamicObject(19434, 703.21997, -445.59921, -19.44230, 0.00000, 0.00000, 0.00000);
CreateDynamicObject(3034, 705.46478, -452.29669, -19.08840, 0.00000, 0.00000, 270.00000);
CreateDynamicObject(14752, 705.31018, -453.13400, -18.88450, 0.00000, 0.00000, 0.00000);
CreateDynamicObject(14752, 705.29016, -451.41809, -18.88450, 0.00000, 0.00000, 0.00000);
CreateDynamicObject(2608, 705.26147, -449.07159, -18.22900, 0.00000, 0.00000, 270.00000);
return 1;
}
public OnPlayerConnect(playerid)
{
pInfo[playerid][TrailerID] = -1;
return 1;
}
public OnPlayerDisconnect(playerid, reason)
{
pInfo[playerid][TrailerID] = -1;
return 1;
}
public OnPlayerDeath(playerid, killerid, reason)
{
pInfo[playerid][TrailerID] = -1;
return 1;
}
public OnVehicleDeath(vehicleid, killerid)
{
for(new i; i < sizeof(VehiclePos); i++)
{
if(VehicleID[i] == vehicleid)
{
foreach(Player, r)
{
if(pInfo[r][TrailerID] == VehicleID[i]) SetPlayerHealth(r, 0.0);
}
}
}
return 1;
}
public OnPlayerKeyStateChange(playerid, newkeys, oldkeys)
{
switch(newkeys)
{
case KEY_SECONDARY_ATTACK:
{
if(InTrailer(playerid))
{
new Float:x, Float:y, Float:z, Float:f;
SetPlayerInterior(playerid, 0);
SetPlayerVirtualWorld(playerid, 0);
GetExitPos(playerid, x, y, z, f);
SetPlayerPos(playerid, x, y, z);
SetPlayerFacingAngle(playerid, f);
pInfo[playerid][TrailerID] = -1;
return 1;
}
if(pInfo[playerid][TrailerID] == -1)
{
new VehID = IsOnEnterPos(playerid);
if(VehID != 0)
{
SetPlayerPos(playerid, 703.3044,-453.8220,-20.1722);
SetPlayerFacingAngle(playerid, 270.0);
SetPlayerInterior(playerid, 1);
SetPlayerVirtualWorld(playerid, VehID);
pInfo[playerid][TrailerID] = VehID;
return 1;
}
}
}
}
return 1;
}
stock IsOnEnterPos(playerid)
{
new Float:x, Float:y, Float:z, Float:angle;
for(new i; i < sizeof(VehiclePos); i++)
{
GetVehiclePos(VehicleID[i], x, y, z);
GetVehicleZAngle(VehicleID[i], angle);
x += (1.7 * floatsin(-angle+84.0, degrees));
y += (1.7 * floatcos(-angle+84.0, degrees));
if(IsPlayerInRangeOfPoint(playerid, 0.5, x, y, z-0.5)) return VehicleID[i];
}
return 0;
}
stock GetExitPos(playerid, &Float:x, &Float:y, &Float:z, &Float:f)
{
new Float:angle;
GetVehiclePos(pInfo[playerid][TrailerID], x, y, z);
GetVehicleZAngle(pInfo[playerid][TrailerID], angle);
x += (1.7 * floatsin(-angle+84.0, degrees));
y += (1.7 * floatcos(-angle+84.0, degrees));
z -= 1.0;
f = angle - 90.0;
return 1;
}
stock InTrailer(playerid)
{
if(IsPlayerInRangeOfPoint(playerid, 1.0 ,702.8312,-453.6777,-20.1722)) return 1;
return 0;
}
(Если комуто интересно где стоят автомобили, то они находятся в городе Лас Вентурас возле заправки которая находится возле рельс)
