Jump to content

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


Recommended Posts

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

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

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

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

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

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

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

---

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

Имена контроль-клавиш нашел http://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
Имена контроль-клавиш нашел http://wiki.multitheftauto.com/wiki/Control_names а как написать не помню, какую проверку юзать

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

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

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

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

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

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

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
  • Other Languages Moderators

Можно варпить только педов ( если юзаешь на клиенте ), на вики написано же.

Available client side from 1.3.1 (It will only work with client side vehicles and peds)
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...