Добро пожаловать на Pawno-Info.Ru - Портал о программировании v2.0

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

Маппинг для сервера

Если вы хотите обновить Ваш сервер новыми доработками - то зайдите в наш раздел. Большой выбор готовых решений от наших пользователей

Моды для сервера

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

Модификации SA

Хотите разнообразить свою игру в San Andrease? Смелее в наш раздел. Отличный сборник готовых решений. Играйте с удовольствием

Вопрос Проверка игрока у багажника он или нет?

Статус
В этой теме нельзя размещать новые ответы.

pavel000

Новичок
Пользователь
Регистрация
9 Июл 2016
Сообщения
5
Лучшие ответы
0
Реакции
0
Есть проверка, что игрок у машины.А как реализовать именно у багажника.
Приведу пример зачем мне такая проверка и почему не могу обойтись проверкой у автомобиля.
Мне нужно сделать открывания багажника и капота на букву M. Когда я делаю проверку на автомобиль находясь у капота,у меня откроется и капот и багажник.А мне надо чтоб открылся только капот.
По логике нужно узнать координаты багажника автомобиля и сравнить их с координатами игрока и после проверки если они совпадают открыть его.Но я столкнулся с тем как это реализовать на LUA.Подскажите пожалуйста.Заранее спасибо!
 
Последнее редактирование:

ihNNNNNify

Мастер
Пользователь
Регистрация
18 Июн 2014
Сообщения
2,652
Лучшие ответы
24
Реакции
425
Возраст
22
Адрес
Украина
Веб-сайт
github.com
  • Активный модератор
  • Помощник
  • OLD
@pavel000, Что-то типо того
C++:
local playerX, playerY, playerZ = getElementPosition(thePlayer)
local vehicleX, vehicleY, vehicleZ = getVehicleComponentPosition(theVehicle, 'boot_dummy')
local distanceDummy = getDistanceBetweenPoints3D(playerX, playerY, playerZ, vehicleX, vehicleY, vehicleZ)

if distanceDummy <= 2.0 then
    ...
end
 
Последнее редактирование:

pavel000

Новичок
Пользователь
Регистрация
9 Июл 2016
Сообщения
5
Лучшие ответы
0
Реакции
0
@pavel000, Что-то типо того
C++:
local playerX, playerY, playerZ = getElementPosition(thePlayer)
local vehicleX, vehicleY, vehicleZ = getVehicleComponentPosition(theVehicle, 'boot_dummy')
local distanceDummy = getDistanceBetweenPoints3D(playerX, playerY, playerZ, vehicleX, vehicleY, vehicleZ)

if distanceDummy <= 2.0 then
    ...
end
Спасибо за ответ,извините если буду тупить,только пока начинаю программировать.
Получается вот так,должно получится?

Код:
function openBoot()
if isPedInVehicle ( localPlayer ) == false then
local playerX, playerY, playerZ = getElementPosition(localPlayer)
local vehicleX, vehicleY, vehicleZ = getVehicleComponentPosition(vehicle, 'boot_dummy')
for i, vehicle in pairs(vehicleX, vehicleY, vehicleZ) do
    if getDistanceBetweenPoints3D(playerX, playerY, playerZ, vehicleX, vehicleY, vehicleZ) <= 2.0 then
        --outputChatBox(getElementModel(vehicle))
        if getVehicleDoorOpenRatio ( vehicle , 0 ) > 0.1 then
            triggerServerEvent ( "onOpenCloseBoot", root, vehicle, false)
        else
            triggerServerEvent ( "onOpenCloseBoot", root, vehicle, true)
        end
    end
end
end
end
if openTrunk then
bindKey(openKey,"down",openBoot)
end
 
Последнее редактирование модератором:

ihNNNNNify

Мастер
Пользователь
Регистрация
18 Июн 2014
Сообщения
2,652
Лучшие ответы
24
Реакции
425
Возраст
22
Адрес
Украина
Веб-сайт
github.com
  • Активный модератор
  • Помощник
  • OLD
@pavel000,
PHP:
function openBoot()
    if not isPedInVehicle ( localPlayer ) then
        local playerX, playerY, playerZ = getElementPosition(localPlayer)
        local vehicles = getElementsByType('vehicle')

        for _, vehicle in pairs(vehicles) do
            local vehicleX, vehicleY, vehicleZ = getVehicleComponentPosition(vehicle, 'boot_dummy')

            if getDistanceBetweenPoints3D(playerX, playerY, playerZ, vehicleX, vehicleY, vehicleZ) <= 2.0 then
                outputChatBox('Player at the trunk ')

                setVehicleDoorOpenRatio(vehicle, 1, 1 - getVehicleDoorOpenRatio(vehicle, 1), 2500)
            end

            break
        end
    end
end

if openTrunk then
        bindKey(openKey, "down", openBoot)
end
 

pavel000

Новичок
Пользователь
Регистрация
9 Июл 2016
Сообщения
5
Лучшие ответы
0
Реакции
0
@pavel000,
PHP:
function openBoot()
    if not isPedInVehicle ( localPlayer ) then
        local playerX, playerY, playerZ = getElementPosition(localPlayer)
        local vehicles = getElementsByType('vehicle')

        for _, vehicle in pairs(vehicles) do
            local vehicleX, vehicleY, vehicleZ = getVehicleComponentPosition(vehicle, 'boot_dummy')

            if getDistanceBetweenPoints3D(playerX, playerY, playerZ, vehicleX, vehicleY, vehicleZ) <= 2.0 then
                outputChatBox('Player at the trunk ')

                setVehicleDoorOpenRatio(vehicle, 1, 1 - getVehicleDoorOpenRatio(vehicle, 1), 2500)
            end

            break
        end
    end
end

if openTrunk then
        bindKey(openKey, "down", openBoot)
end
Спасибо за ответ,во время тестов выяснилось,что не работает данный if,не выводит ни 'Player at the trunk',ни 'No car',подскажите какая может быть причина?Может нужно что-то дописать?
PHP:
function openBoot()
            if getDistanceBetweenPoints3D(playerX, playerY, playerZ, vehicleX, vehicleY, vehicleZ) <= 2.0 then
                outputChatBox('Player at the trunk ')

                setVehicleDoorOpenRatio(vehicle, 1, 1 - getVehicleDoorOpenRatio(vehicle, 1), 2500)
            else
            outputChatBox('No Car')
            end
 

ihNNNNNify

Мастер
Пользователь
Регистрация
18 Июн 2014
Сообщения
2,652
Лучшие ответы
24
Реакции
425
Возраст
22
Адрес
Украина
Веб-сайт
github.com
  • Активный модератор
  • Помощник
  • OLD
@pavel000, Сам проверил, работает, но еще лучше будет сделать провреку на личный транспорт (если конечно только для них нужно)
PHP:
function openBoot()
    if not isPedInVehicle ( localPlayer ) then
        local playerX, playerY, playerZ = getElementPosition(localPlayer)
        local vehicles = getElementsByType('vehicle', root, true)

        for _, vehicle in ipairs(vehicles) do
            local vehicleX, vehicleY, vehicleZ = getElementPosition(vehicle)
            local distanceToVehicle = getDistanceBetweenPoints3D(playerX, playerY, playerZ, vehicleX, vehicleY, vehicleZ);

            if distanceToVehicle < 4.0 then
                local trunkX, trunkY, trunkZ = getVehicleComponentPosition(vehicle, 'boot_dummy')

                if getElementsWithinRange(trunkX, trunkY, trunkZ, 2.0) then
                    outputChatBox('Player at the trunk')

                    setVehicleDoorOpenRatio(vehicle, 1, 1 - getVehicleDoorOpenRatio(vehicle, 1), 2500)
                    break
                end
            end
        end
    end
end
 

pavel000

Новичок
Пользователь
Регистрация
9 Июл 2016
Сообщения
5
Лучшие ответы
0
Реакции
0
@ihNNNNNify,
@pavel000, Сам проверил, работает, но еще лучше будет сделать провреку на личный транспорт (если конечно только для них нужно)
PHP:
function openBoot()
    if not isPedInVehicle ( localPlayer ) then
        local playerX, playerY, playerZ = getElementPosition(localPlayer)
        local vehicles = getElementsByType('vehicle', root, true)

        for _, vehicle in ipairs(vehicles) do
            local vehicleX, vehicleY, vehicleZ = getElementPosition(vehicle)
            local distanceToVehicle = getDistanceBetweenPoints3D(playerX, playerY, playerZ, vehicleX, vehicleY, vehicleZ);

            if distanceToVehicle < 4.0 then
                local trunkX, trunkY, trunkZ = getVehicleComponentPosition(vehicle, 'boot_dummy')

                if getElementsWithinRange(trunkX, trunkY, trunkZ, 2.0) then
                    outputChatBox('Player at the trunk')

                    setVehicleDoorOpenRatio(vehicle, 1, 1 - getVehicleDoorOpenRatio(vehicle, 1), 2500)
                    break
                end
            end
        end
    end
end
Спасибо большое и правда работает!
 
Статус
В этой теме нельзя размещать новые ответы.
shape1
shape2
shape3
shape4
shape7
shape8
Сверху Снизу