PDA

Просмотр полной версии : [Вопрос] Как сделать возможность садиться в трамвай машинистом?



Skyline
30.08.2016, 17:58
Здравствуйте. Пришла в голову сделать работу на трамвае, но столкнулся с одной проблемой, в него нельзя сесть.
Хотя когда устанавливал в МТА его и тестил, там садился, но вот, добавил на сервер и не могу сесть.
Такой вопрос, можно ли как то появится в трамвае или сесть в него, возможно ли это реализовать в samp?

123
30.08.2016, 18:36
Поезда и трамваи должны быть созданы с помощью AddStaticVehicle или AddStaticVehicleEx. Если проблема не исправится, используй PutPlayerInVehicle

_lizard
30.08.2016, 18:45
Если не ошибаюсь, на него можно сесть только на пассажирское место

используй PutPlayerInVehicle

123
30.08.2016, 18:48
Если не ошибаюсь, на него можно сесть только на пассажирское место

Ошибаешься. На некоторых серверах это уже реализовано, готов поспорить что через PutPlayerInVehicle. По факту исправить посадку дело нескольких минут, при использовании выше упомянутой функции.

Skyline
30.08.2016, 19:26
Ну через AddStaticVehicle или AddStaticVehicleEx пробовал, не получалось. Единственное попробую через PutPlayerInVehicle

$continue$
30.08.2016, 20:21
Только, что проверил данную информацию. В трамвай можно сесть без дополнительных функции. Ищите в чем проблема, но по дефолту в трамвай можно сесть без проблем.

Skyline
31.08.2016, 12:17
Только, что проверил данную информацию. В трамвай можно сесть без дополнительных функции. Ищите в чем проблема, но по дефолту в трамвай можно сесть без проблем.

Ну у меня он не садиться, если только на пассажирское место. Не знаю почему.
Координаты вот:

AddStaticVehicleEx(449, -2305.4296875, 535.515625, 48.703, 0, 0, 1, 10);

DeimoS
31.08.2016, 14:58
Если трамвай заспавнен на трамвайных путях в СФ, в него не получится сесть. Только PutPlayerInVehicle. Типа такого:

public OnPlayerKeyStateChange(playerid, newkeys, oldkeys)
{
if(newkeys & KEY_SECONDARY_ATTACK)
{
if(!IsPlayerInAnyVehicle(playerid))
{
new Float:x,
Float:y,
Float:z;
for(new v = 1; v < MAX_VEHICLES; v++)
{
if(GetVehicleModel(v) != 449) continue;
GetVehiclePos(v, x, y, z);
if(IsPlayerInRangeOfPoint(playerid, 5.0, x, y, z)) return PutPlayerInVehicle(playerid, v, 0);
}
}
}
return 1;
}
А камера фиксится вставкой в OnPlayerStateChange

if(oldstate == PLAYER_STATE_DRIVER && newstate == PLAYER_STATE_ONFOOT) SetCameraBehindPlayer(playerid);

Skyline
31.08.2016, 16:53
Но что-то даже и с этим, не получается(

DeimoS
31.08.2016, 17:21
Но что-то даже и с этим, не получается(

Только что проверил: всё работает. Вывод один: ты что-то делаешь не так

vovandolg
31.08.2016, 17:25
Кстате так же вроде надо)

for(new v = 1; v < MAX_VEHICLES; v++)

Skyline
31.08.2016, 22:44
Да что тут можно делать не так, создал трамвай, координаты показал выше.
Добавил то, что ты мне сказал. Ни на F ни на ENTER не садится(

DeimoS
31.08.2016, 23:32
Да что тут можно делать не так, создал трамвай, координаты показал выше.
Добавил то, что ты мне сказал. Ни на F ни на ENTER не садится(

Ну так естественно -_- Ты его заспавнил где-то на крыше и удивляешься, что проверка на радиус не срабатывает. Хоть трамвай автоматом и прикрепился к рельсам, GetVehiclePos возвращает координаты, указанные в AddStaticVehicle.
Дерзай

AddStaticVehicleEx(449, -2305.3755, 508.4944, 33.9963, 0, 0, 1, 10);
Но зря ты вообще этим занимаешься. Трамваи работают довольно криво на этих рельсах в СФ

Skyline
31.08.2016, 23:58
Спасибо, сделал другие координаты, все работает.