Amekudeku Posted September 7, 2019 Posted September 7, 2019 После целого дня попыток понять, почему это не работает, и обсуждения проблемы на дискорд сервере, мне все таки не удалось решить эту проблему, я решил опубликовать здесь на форуме, возможно, кто-то, кто уже был здесь с этой проблемой, нашел исправление. Так вот в чем проблема: я пытаюсь обратится к игроку .TaskEnterVehicle но без успеха, я убедился, что транспортное средство не является нулевым, я убедился, что транспортное средство близко к игроку, все еще не работает. Я попробовал тот же самый код, но с другой задачей (это было что-то с exit vehicle), и он работал просто отлично. Но по какой-то причине TaskEnterVehicle не хочет. P.s Видел эту проблему решают путем добавление пакета на js, но я бы хотел отказаться от таких костылей и попробовать сделать все на шарпе. Надеюсь на поддержку .-. public class VehicleKeybinds : Events.Script { public VehicleKeybinds() { Events.Tick += OnTick; } private void OnTick(List<Events.TickNametagData> nametags) { RAGE.Game.Pad.DisableControlAction(0, 75, true); // F RAGE.Game.Pad.DisableControlAction(0, 58, true); // G // Enter Vehicle on F if(RAGE.Game.Pad.IsDisabledControlJustPressed(0, 75)) { if(Player.LocalPlayer.Vehicle != null) { Player.LocalPlayer.TaskLeaveAnyVehicle(0, 0); return; } Vector3 pos = Player.LocalPlayer.Position; List<Vehicle> vehicles = RAGE.Elements.Entities.Vehicles.All; Vehicle vehicle = vehicles.Find(veh => veh.Position.DistanceTo2D(pos) <= 5f); if (vehicle == null) return; Player.LocalPlayer.TaskEnterVehicle(vehicle.Handle, 5000, -1, 1.5f, 1, 0); } // Enter Vehicle on G if (RAGE.Game.Pad.IsDisabledControlJustPressed(0, 58)) { if (Player.LocalPlayer.Vehicle != null) { Player.LocalPlayer.TaskLeaveAnyVehicle(0, 0); return; } Vector3 pos = Player.LocalPlayer.Position; List<Vehicle> vehicles = RAGE.Elements.Entities.Vehicles.All; Vehicle vehicle = vehicles.Find(veh => veh.Position.DistanceTo2D(pos) <= 5f); if (vehicle == null) return; int seats = RAGE.Game.Vehicle.GetVehicleModelNumberOfSeats(vehicle.Model) - 1; int targetSeat = -99; // Exists seats for(int i = 0; i < seats; i++) { if (vehicle.IsSeatFree(i, 0)) { targetSeat = i; break; } } RAGE.Chat.Output(targetSeat.ToString()); if (targetSeat == -99) return; Player.LocalPlayer.TaskEnterVehicle(vehicle.Handle, 5000, targetSeat, 2.0f, 1, 0); } } }
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now