Jump to content

БуДоКен как в Saints Row: The Third


Recommended Posts

Давно Lua скрипты не писал, хочу сделать Бу-до-кен как в Saints Row The Third(запрыгивание в тачку с опред расстояния через стекло) -

Пока по такой логике:

1 Жмешь Вход в тачку + Бег недалеко от тачки(на опред расстоянии)

2 После нажатия активируется проверка на наличие игрока за рулём(если есть игрок то не работает, пока так)

3 Если нет игрока то выполняется анимация запрыгивания, стёкла лопаются все(пока так, чтобы не морочить башку)

4 Игрок(ты) долетает и оказывается в тачке.

Теперь вопрос - Можно ли это выполнить используя только клиентский скрипт?

---

Еще добавочный вопрос как сделать проверку нажатия Бег+Вход в тачку

Имена контроль-клавиш нашел https://wiki.multitheftauto.com/wiki/Control_names а как написать не помню, какую проверку юзать

Как взять(get) ближайшую машину?

Пока тренерую игрока при событии входа в машину варпатся в ближайшую.

Както надо взять ближайшую машину в переменную но не знаю как

вот с каковото скрипта скопировал(с вики), для проверки и дописывания в процессе, чтобы как-то хоть взаимодействовать с машиной

addEventHandler("onClientVehicleStartEnter",root,function(player,seat,door) 
-- local NearestVehicle = getVehicle??? не знаю как определить ближайшую машину 
    if(seat==0)and(door==0)then 
        outputChatBox("You are going to sit in the drivers seat.",player) 
        warpPedIntoVehicle ( player, NearestVehicle ) 
    end 
end) 

Может кто знает образцы какие нибудь где юзают анимацию именно на игрока, использование нажатия 2х кнопок на клаве и где есть определение ближайшей тачки? Дайте ссылки плиз.

Link to comment
Имена контроль-клавиш нашел https://wiki.multitheftauto.com/wiki/Control_names а как написать не помню, какую проверку юзать

Для проверки бега используется контрол: sprint Make the player sprint

Как взять(get) ближайшую машину?

Нужно перебрать все машины ( получаешь их с помощью getElementsByType ) и находишь ближайшую (проверяешь расстояние до каждой, и находишь минимальное).

использование нажатия 2х кнопок на клаве

Просто проверяешь state двух клавишь (getKeyState)

p.s. warpPedIntoVehicle - это серверная ф-ция!!!

Link to comment
  • Scripting Moderators
p.s. warpPedIntoVehicle - это серверная ф-ция!!!

Небольшая поправочка: 'Available client side from 1.3.1'

Link to comment
p.s. warpPedIntoVehicle - это серверная ф-ция!!!

Аналогов для клиента конечно же нету...? :cry: ладно что нибудь придумаю может быть

Значит на серверном буду делать

Edited by Guest
Link to comment
p.s. warpPedIntoVehicle - это серверная ф-ция!!!

Небольшая поправочка: 'Available client side from 1.3.1'

да уж... Я древний)

Не успеваю следить за этим уже(

p.s. warpPedIntoVehicle - это серверная ф-ция!!!

Аналогов для клиента конечно же нету...? :cry: ладно что нибудь придумаю может быть

Работает она на клиенте оказывается! (с версии 1.3.1)

Кстати, вот тебе функция нахождения ближайшего vehicle:

--Функция получения ближайшего vehicle: 
function getNearestVehicle(elem, minDist) 
local X, Y, Z = getElementPosition( elem ) 
local curDist = minDist 
local curVehicle 
    for _,veh in ipairs(getElementsByType('vehicle')) do 
        local posX, posY, posZ = getElementPosition( veh ) 
        local vehDist = getDistanceBetweenPoints3D ( posX, posY, posZ, X, Y, Z ) 
        if ( vehDist < curDist ) then 
            curDist = vehDist 
            curVehicle = veh 
        end 
    end 
end 
  
  
--пример использования 
addEventHandler("onClientPlayerVehicleEnter",root,function() 
    local nearestVehicle = getNearestVehicle(source, 100) 
end) 

Link to comment

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 account

Sign in

Already have an account? Sign in here.

Sign In Now
  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...