Jump to content

[Решено] Помогите со скриптом (ворота, двери)


Recommended Posts

Здравствуйте уважаемые!

Вот написал небольшой скриптик для открытия и автоматического закрытия ворот, но что-то не хотят они работать... Может глянет кто, где мой глаз "замылился"?

local objGateR = createObject(3055, 2422.3000488281, -2455.8999023438, 14.800000190735, 0, 0, 314) 
local objGateL = createObject(3055, 2427.6999511719, -2461.5000000000, 14.800000190735, 0, 0, 314) 
  
local openCHGate = false 
  
function useChopGarageGate(thePlayer) 
    local x, y, z = getElementPosition(thePlayer) 
    local distance1 = getDistanceBetweenPoints3D(2425.5986000000, -2458.7880000000, 13.625000000000, x, y, z)  
    if (distance1<=5) and (openCHGate==false) then 
            openCHGate = true 
            outputChatBox("Ворота гаража открыты.", thePlayer, 0, 255, 0) 
            moveObject(objGateR, 1000, 2420.3000488281, -2455.8999023438, 14.800000190735, 0, 0, 314) 
            moveObject(objGateL, 1000, 2430.0000000000, -2461.5000000000, 14.800000190735, 0, 0, 314) 
            setTimer(closeChopGarageGate, 5000, 1, thePlayer) 
    end 
end 
addCommandHandler("gate", useChopGarageGate) 
  
function closeChopGarageGate(thePlayer) 
    setTimer(resetStateGCH, 1000, 1) 
    moveObject(objGateR, 1000, 2422.3000488281, -2455.8999023438, 14.800000190735, 0, 0, 314) 
    moveObject(objGateL, 1000, 2427.6999511719, -2461.5000000000, 14.800000190735, 0, 0, 314) 
end 
  
function resetStateGCH() 
    openCHGate = false 
end 

Edited by Guest
Link to comment

По-моему координаты по которым ты проверяешь игрока не соответствуют координатам самих объектов.

+ Способ не очень-то хороший, т.к. каждые новые ворота ты будешь делать по новой.

Link to comment
Здравствуйте уважаемые!

Вот написал небольшой скриптик для открытия и автоматического закрытия ворот, но что-то не хотят они работать... Может глянет кто, где мой глаз "замылился"?

local objGateR = createObject(3055, 2422.3000488281, -2455.8999023438, 14.800000190735, 0, 0, 314) 
local objGateL = createObject(3055, 2427.6999511719, -2461.5000000000, 14.800000190735, 0, 0, 314) 
  
local openCHGate = false 
  
function useChopGarageGate(thePlayer) 
    local x, y, z = getElementPosition(thePlayer) 
    local distance1 = getDistanceBetweenPoints3D(2425.5986000000, -2458.7880000000, 13.625000000000, x, y, z)  
    if (distance1<=5) and (openCHGate==false) then 
            openCHGate = true 
            outputChatBox("Ворота гаража открыты.", thePlayer, 0, 255, 0) 
            moveObject(objGateR, 1000, 2420.3000488281, -2455.8999023438, 14.800000190735, 0, 0, 314) 
            moveObject(objGateL, 1000, 2430.0000000000, -2461.5000000000, 14.800000190735, 0, 0, 314) 
            setTimer(closeChopGarageGate, 5000, 1, thePlayer) 
    end 
end 
addCommandHandler("gate", useChopGarageGate) 
  
function closeChopGarageGate(thePlayer) 
    setTimer(resetStateGCH, 1000, 1) 
    moveObject(objGateR, 1000, 2422.3000488281, -2455.8999023438, 14.800000190735, 0, 0, 314) 
    moveObject(objGateL, 1000, 2427.6999511719, -2461.5000000000, 14.800000190735, 0, 0, 314) 
end 
  
function resetStateGCH() 
    openCHGate = false 
end 

Решение найдено!

Заменил в строке: local x, y, z = getElementPosition(thePlayer)

на: local x, y, z = getElementPosition(getLocalPlayer())

и все заработало!

Кто подскажет, что за ерундень такая? :shock:

Link to comment
А ты еще и на клиенте это делаешь? :D

Мдаа...

Переноси все на сервер, иначе не синхронизированно!

Спасибо за замечание! Может подскажите как лучше сделать это?

Link to comment

Берешь значит копыта горного козла, берешь золу из вулкана Иэттунуп, далее сырые косточки мятого женьшеня, голову отравленного кита, хобот морской коровы, расплавленное золото из сундука капитана черной жемчужины, орошаешь все это вровью убитой девственници, теперь перемешиваем, кипятим на медленном огне температурой около 8к градусов, в медном тазу... И опана, спустя 18 лет, ты готов испробовать этот божественный скрипт!

P.S. Ну а если по теме просто в meta.xml указываешь какой файл серверный, а какой клиентский:

    

Всю серверную часть пишешь в файлах сервера, а клиентскую в файлах клиента!

Link to comment
Берешь значит копыта горного козла, берешь золу из вулкана Иэттунуп, далее сырые косточки мятого женьшеня, голову отравленного кита, хобот морской коровы, расплавленное золото из сундука капитана черной жемчужины, орошаешь все это вровью убитой девственници, теперь перемешиваем, кипятим на медленном огне температурой около 8к градусов, в медном тазу... И опана, спустя 18 лет, ты готов испробовать этот божественный скрипт!

P.S. Ну а если по теме просто в meta.xml указываешь какой файл серверный, а какой клиентский:

    

Всю серверную часть пишешь в файлах сервера, а клиентскую в файлах клиента!

Спасибо! "Затупил"... Перене.! Все в "синхре"! Кстати потому и не работал скрипт, что запускался на клиенте...

Спасибо всем за помощь! С уважением, Дмитрий.

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...