MX_Master

Общий мини "HELP ME" топик по скриптингу

Recommended Posts

Есть ли какой-нибудь скрипт, добавляющий возможность изменения позиции объекта? Что-то типа самповского

Furniture%20(7).jpg

Share this post


Link to post
setElementPosition 

Тебя никто не запрещает сделать свой редактор.

dxDrawText 
dxDrawLine3D 
dxDrawImage 

Share this post


Link to post
-- Simple Police-Lights by MuLTi! 
 
 
 
p_lights = {}
 
p_timer = {}
 
p_lvar = {}
 
p_pvar = {}
 
p_lvar2 = {}
 
p_lvar3 = {}
 
p_lvar4 = {}
 
 
 
 
 
 
 
function toggleLights(thePlayer, cmd, level)
 
    local level = tonumber(level)
 
    if not(level) then outputChatBox("#FF0000 Please select a level![1-2]", thePlayer, 255, 255, 255, true) return end
 
    if(level < 1) or (level > 2) then outputChatBox("#FF0000 Please select a level between 1-2!", thePlayer, 255, 255, 255, true) return end
 
    local veh = getPedOccupiedVehicle(thePlayer)
 
    local id = getElementModel(veh)
 
    if (id == 579) or (id == 400) or (id == 404) or (id == 489) or (id == 505) or (id == 479) or (id == 442) or (id == 458) or (id == 602) or (id == 496) or (id == 401) or (id == 518) or (id == 527) or (id == 589) or (id == 419) or (id == 533) or (id == 526) or (id == 474)or (id == 545) or (id == 517) or (id == 410) or (id == 600) or (id == 436) or (id == 580) or (id == 439) or (id == 549) or (id == 491) or (id == 491) or (id == 507) or (id == 585) or (id == 587) or (id == 466) or (id == 492) or (id == 546) or (id == 551) or (id == 516) or (id == 467) or (id == 426) or (id == 547) or (id == 405) or (id == 409) or (id == 550) or (id == 566) or (id == 540) or (id == 421) or (id == 529) or (id == 402) or (id == 542) or (id == 603) or (id == 475) or (id == 562)or (id == 565) or (id == 559) or (id == 561) or (id == 560) or (id == 558) or (id == 429) or (id == 541) or (id == 415) or (id == 480) or (id == 477) or (id == 582) or (id == 579) or (id == 490) or (id == 455) or (id == 516) then
 
        if(level == 1) then
 
            if(p_lights[veh] == 0) or(p_lights[veh] == nil) then
 
                p_pvar[veh] = 1
 
                p_lights[veh] = 1
 
                outputChatBox("#FFFFFFPolice-Lights #00FF00on.", thePlayer, 0, 200, 100, true)
 
                setVehicleOverrideLights ( veh, 2 )
 
                p_timer[veh] = setTimer(
 
                function()
 
                    if(p_lvar[veh] == 0) or (p_lvar[veh] == nil) then
 
                        p_lvar[veh] = 1
 
                        setVehicleLightState ( veh, 1, 0)
 
                        setVehicleLightState ( veh, 2, 0)
 
                        setVehicleLightState ( veh, 0, 1)
 
                        setVehicleLightState ( veh, 3, 1)
 
                        setVehicleHeadLightColor(veh, 0, 0, 255)
 
                    else
 
                        setVehicleLightState ( veh, 3, 0)
 
                        setVehicleLightState ( veh, 0, 0)
 
                        setVehicleLightState ( veh, 1, 1)
 
                        setVehicleLightState ( veh, 2, 1)   
 
                        setVehicleHeadLightColor(veh, 255, 0, 0)
 
                        p_lvar[veh] = 0
 
                    end
 
                end, 500, 0)
 
                else
 
                    p_lights[veh] = 0
 
                    outputChatBox("#FFFFFFPolice-Lights #00FF00off.", thePlayer, 0, 200, 100, true)
 
                    killTimer(p_timer[veh])
 
                    setVehicleLightState ( veh, 0, 0)
 
                    setVehicleLightState ( veh, 1, 0)
 
                    setVehicleLightState ( veh, 2, 0)
 
                    setVehicleLightState ( veh, 3, 0)   
 
                    setVehicleHeadLightColor(veh, 255, 255, 255)
 
                    setVehicleOverrideLights ( veh, 1 )
 
                end
 
            elseif(level == 2) then
 
                if(p_lights[veh] == 0) or(p_lights[veh] == nil) then
 
                p_lights[veh] = 1
 
                outputChatBox("#FFFFFFPolice-Lights #00FF00on.", thePlayer, 0, 200, 100, true)
 
                setVehicleOverrideLights ( veh, 2 )
 
                p_timer[veh] = setTimer(
 
                function()
 
                    if(p_lvar3[veh] == 4) then
 
                        setTimer(function() p_lvar3[veh] = 0 end, 1000, 1)
 
                        setTimer(
 
                        function()
 
                            if(p_lvar4[veh] == 1)then
 
                                p_lvar4[veh] = 0
 
                                -- 0 = vorne links 1 = vorne rechts 2 = hinten links 3 = hinten rechts
 
                                setVehicleLightState ( veh, 1, 0)
 
                                setVehicleLightState ( veh, 2, 0)
 
                                setVehicleLightState ( veh, 0, 1)
 
                                setVehicleLightState ( veh, 3, 1)
 
                                setVehicleHeadLightColor(veh, 77, 77, 255)
 
                            else
 
                                setVehicleLightState ( veh, 3, 0)
 
                                setVehicleLightState ( veh, 0, 0)
 
                                setVehicleLightState ( veh, 1, 1)
 
                                setVehicleLightState ( veh, 2, 1)   
 
                                setVehicleHeadLightColor(veh, 255, 77, 77)
 
                                p_lvar4[veh] = 1
 
                            end
 
                        end, 50, 5)
 
                    return end
 
                    if(p_lvar2[veh] == 0) or (p_lvar2[veh] == nil) then
 
                        p_lvar2[veh] = 1
 
                        -- 0 = vorne links 1 = vorne rechts 2 = hinten links 3 = hinten rechts
 
                        setVehicleLightState ( veh, 1, 0)
 
                        setVehicleLightState ( veh, 2, 0)
 
                        setVehicleLightState ( veh, 0, 1)
 
                        setVehicleLightState ( veh, 3, 1)
 
                        setVehicleHeadLightColor(veh, 0, 0, 255)
 
                    else
 
                        setVehicleLightState ( veh, 3, 0)
 
                        setVehicleLightState ( veh, 0, 0)
 
                        setVehicleLightState ( veh, 1, 1)
 
                        setVehicleLightState ( veh, 2, 1)   
 
                        setVehicleHeadLightColor(veh, 255, 0, 0)
 
                        p_lvar2[veh] = 0
 
                    end
 
                    if(p_lvar3[veh] == nil) then p_lvar3[veh] = 0  end
 
                    p_lvar3[veh] = (p_lvar3[veh]+1)
 
                end, 500, 0)
 
                else
 
                    p_lights[veh] = 0
 
                    outputChatBox("#FFFFFFPolice-Lights #00FF00off.", thePlayer, 0, 200, 100, true)
 
                    killTimer(p_timer[veh])
 
                    setVehicleLightState ( veh, 0, 0)
 
                    setVehicleLightState ( veh, 1, 0)
 
                    setVehicleLightState ( veh, 2, 0)
 
                    setVehicleLightState ( veh, 3, 0)   
 
                    setVehicleHeadLightColor(veh, 255, 255, 255)
 
                    setVehicleOverrideLights ( veh, 1 )
 
                end
 
                end
 
            end
 
end
 
addCommandHandler("pl", toggleLights)
 
 
 
 
 
 
 
addEventHandler ( "onVehicleExplode", getRootElement(),
 
function()
 
    if(p_lights[source] == 1) then
 
        killTimer(p_timer[source]) 
 
    end
 
end )
 

Share this post


Link to post
-- Simple Police-Lights by MuLTi! 
 
 
 
p_lights = {}
 
p_timer = {}
 
p_lvar = {}
 
p_pvar = {}
 
p_lvar2 = {}
 
p_lvar3 = {}
 
p_lvar4 = {}
 
 
 
 
 
 
 
function toggleLights(thePlayer, cmd, level)
 
    local level = tonumber(level)
 
    if not(level) then outputChatBox("#FF0000 Please select a level![1-2]", thePlayer, 255, 255, 255, true) return end
 
    if(level < 1) or (level > 2) then outputChatBox("#FF0000 Please select a level between 1-2!", thePlayer, 255, 255, 255, true) return end
 
    local veh = getPedOccupiedVehicle(thePlayer)
 
    local id = getElementModel(veh)
 
    if (id == 579) or (id == 400) or (id == 404) or (id == 489) or (id == 505) or (id == 479) or (id == 442) or (id == 458) or (id == 602) or (id == 496) or (id == 401) or (id == 518) or (id == 527) or (id == 589) or (id == 419) or (id == 533) or (id == 526) or (id == 474)or (id == 545) or (id == 517) or (id == 410) or (id == 600) or (id == 436) or (id == 580) or (id == 439) or (id == 549) or (id == 491) or (id == 491) or (id == 507) or (id == 585) or (id == 587) or (id == 466) or (id == 492) or (id == 546) or (id == 551) or (id == 516) or (id == 467) or (id == 426) or (id == 547) or (id == 405) or (id == 409) or (id == 550) or (id == 566) or (id == 540) or (id == 421) or (id == 529) or (id == 402) or (id == 542) or (id == 603) or (id == 475) or (id == 562)or (id == 565) or (id == 559) or (id == 561) or (id == 560) or (id == 558) or (id == 429) or (id == 541) or (id == 415) or (id == 480) or (id == 477) or (id == 582) or (id == 579) or (id == 490) or (id == 455) or (id == 516) then
 
        if(level == 1) then
 
            if(p_lights[veh] == 0) or(p_lights[veh] == nil) then
 
                p_pvar[veh] = 1
 
                p_lights[veh] = 1
 
                outputChatBox("#FFFFFFPolice-Lights #00FF00on.", thePlayer, 0, 200, 100, true)
 
                setVehicleOverrideLights ( veh, 2 )
 
                p_timer[veh] = setTimer(
 
                function()
 
                    if(p_lvar[veh] == 0) or (p_lvar[veh] == nil) then
 
                        p_lvar[veh] = 1
 
                        setVehicleLightState ( veh, 1, 0)
 
                        setVehicleLightState ( veh, 2, 0)
 
                        setVehicleLightState ( veh, 0, 1)
 
                        setVehicleLightState ( veh, 3, 1)
 
                        setVehicleHeadLightColor(veh, 0, 0, 255)
 
                    else
 
                        setVehicleLightState ( veh, 3, 0)
 
                        setVehicleLightState ( veh, 0, 0)
 
                        setVehicleLightState ( veh, 1, 1)
 
                        setVehicleLightState ( veh, 2, 1)   
 
                        setVehicleHeadLightColor(veh, 255, 0, 0)
 
                        p_lvar[veh] = 0
 
                    end
 
                end, 500, 0)
 
                else
 
                    p_lights[veh] = 0
 
                    outputChatBox("#FFFFFFPolice-Lights #00FF00off.", thePlayer, 0, 200, 100, true)
 
                    killTimer(p_timer[veh])
 
                    setVehicleLightState ( veh, 0, 0)
 
                    setVehicleLightState ( veh, 1, 0)
 
                    setVehicleLightState ( veh, 2, 0)
 
                    setVehicleLightState ( veh, 3, 0)   
 
                    setVehicleHeadLightColor(veh, 255, 255, 255)
 
                    setVehicleOverrideLights ( veh, 1 )
 
                end
 
            elseif(level == 2) then
 
                if(p_lights[veh] == 0) or(p_lights[veh] == nil) then
 
                p_lights[veh] = 1
 
                outputChatBox("#FFFFFFPolice-Lights #00FF00on.", thePlayer, 0, 200, 100, true)
 
                setVehicleOverrideLights ( veh, 2 )
 
                p_timer[veh] = setTimer(
 
                function()
 
                    if(p_lvar3[veh] == 4) then
 
                        setTimer(function() p_lvar3[veh] = 0 end, 1000, 1)
 
                        setTimer(
 
                        function()
 
                            if(p_lvar4[veh] == 1)then
 
                                p_lvar4[veh] = 0
 
                                -- 0 = vorne links 1 = vorne rechts 2 = hinten links 3 = hinten rechts
 
                                setVehicleLightState ( veh, 1, 0)
 
                                setVehicleLightState ( veh, 2, 0)
 
                                setVehicleLightState ( veh, 0, 1)
 
                                setVehicleLightState ( veh, 3, 1)
 
                                setVehicleHeadLightColor(veh, 77, 77, 255)
 
                            else
 
                                setVehicleLightState ( veh, 3, 0)
 
                                setVehicleLightState ( veh, 0, 0)
 
                                setVehicleLightState ( veh, 1, 1)
 
                                setVehicleLightState ( veh, 2, 1)   
 
                                setVehicleHeadLightColor(veh, 255, 77, 77)
 
                                p_lvar4[veh] = 1
 
                            end
 
                        end, 50, 5)
 
                    return end
 
                    if(p_lvar2[veh] == 0) or (p_lvar2[veh] == nil) then
 
                        p_lvar2[veh] = 1
 
                        -- 0 = vorne links 1 = vorne rechts 2 = hinten links 3 = hinten rechts
 
                        setVehicleLightState ( veh, 1, 0)
 
                        setVehicleLightState ( veh, 2, 0)
 
                        setVehicleLightState ( veh, 0, 1)
 
                        setVehicleLightState ( veh, 3, 1)
 
                        setVehicleHeadLightColor(veh, 0, 0, 255)
 
                    else
 
                        setVehicleLightState ( veh, 3, 0)
 
                        setVehicleLightState ( veh, 0, 0)
 
                        setVehicleLightState ( veh, 1, 1)
 
                        setVehicleLightState ( veh, 2, 1)   
 
                        setVehicleHeadLightColor(veh, 255, 0, 0)
 
                        p_lvar2[veh] = 0
 
                    end
 
                    if(p_lvar3[veh] == nil) then p_lvar3[veh] = 0  end
 
                    p_lvar3[veh] = (p_lvar3[veh]+1)
 
                end, 500, 0)
 
                else
 
                    p_lights[veh] = 0
 
                    outputChatBox("#FFFFFFPolice-Lights #00FF00off.", thePlayer, 0, 200, 100, true)
 
                    killTimer(p_timer[veh])
 
                    setVehicleLightState ( veh, 0, 0)
 
                    setVehicleLightState ( veh, 1, 0)
 
                    setVehicleLightState ( veh, 2, 0)
 
                    setVehicleLightState ( veh, 3, 0)   
 
                    setVehicleHeadLightColor(veh, 255, 255, 255)
 
                    setVehicleOverrideLights ( veh, 1 )
 
                end
 
                end
 
            end
 
end
 
addCommandHandler("pl", toggleLights)
 
 
 
 
 
 
 
addEventHandler ( "onVehicleExplode", getRootElement(),
 
function()
 
    if(p_lights[source] == 1) then
 
        killTimer(p_timer[source]) 
 
    end
 

Share this post


Link to post

Привет всем. У меня вопрос по ивентам, запускаю ивент с сервера на клиент в функции под ивентом старта ресурса, но он(ивент на клиент) не запускается, мне кажется он как ещё не опознан, как сделать чтобы его опознало сперва или какая здесь может быть альтернатива?

Код:

-- server side 
function resourceStart() 
     triggerClientEvent("testEvent", getRootElement()) -- возвращает true 
end 
addEventHandler("onResourceStart", getResourceRootElement(getThisResource()), resourceStart) 
  
--client side 
function test() 
    outputChatBox('test event running') 
end 
addEvent('testEvent', true) 
addEventHandler('testEvent', getRootElement(), test) 

Share this post


Link to post
-- server side 
function resourceStart() 
    triggerClientEvent("testEvent", getRootElement()) -- возвращает true 
end 
addEventHandler("onResourceStart", getResourceRootElement(getThisResource()), resourceStart) 
      
--client side 
function test() 
    outputChatBox('test event running') 
end 
addEvent('testEvent', true) 
addEventHandler('testEvent', getLocalPlayer(), test) 

Share this post


Link to post

Я не заметил как ты стартанувший ресурс проверяешь.

function resourceStart(res) 
    if res==getThisResource() then 
    triggerClientEvent("testEvent", getRootElement()) 
    end 
end 
addEventHandler("onResourceStart", root, resourceStart) 

Share this post


Link to post

Смотри тогда, ты спрашивал про альтернативу. Раз ты говоришь что так оно не распознает, значит попробуй либо сразу запускать на клиенте "onClientResourceStart", или же на сервере при старте ресурса циклом пробежись по игрокам и триггерни клиентское событие для каждого из них. Нет сейчас возможности проверить просто, но тут вариантов все равно много.

Share this post


Link to post

Запускать на клиенте не подходит, т.к. на сервере проходить проверка что влияет будет ли запущен ивент или нет. А на счет "при старте ресурса циклом пробежись по игрокам и триггерни клиентское событие для каждого из них", я так и делаю разницы никакой. Есть вариант запустить при старте на клиенте потом триггером на сервер -> проверка -> триггер на клиент и дальше уже сами действия.

Share this post


Link to post
Привет всем. У меня вопрос по ивентам, запускаю ивент с сервера на клиент в функции под ивентом старта ресурса, но он(ивент на клиент) не запускается, мне кажется он как ещё не опознан, как сделать чтобы его опознало сперва или какая здесь может быть альтернатива?

Код:

-- server side 
function resourceStart() 
     triggerClientEvent("testEvent", getRootElement()) -- возвращает true 
end 
addEventHandler("onResourceStart", getResourceRootElement(getThisResource()), resourceStart) 
  
--client side 
function test() 
    outputChatBox('test event running') 
end 
addEvent('testEvent', true) 
addEventHandler('testEvent', getRootElement(), test) 

Запускать на клиенте не подходит, т.к. на сервере проходить проверка что влияет будет ли запущен ивент или нет. А на счет "при старте ресурса циклом пробежись по игрокам и триггерни клиентское событие для каждого из них", я так и делаю разницы никакой. Есть вариант запустить при старте на клиенте потом триггером на сервер -> проверка -> триггер на клиент и дальше уже сами действия.

Сколько раз не перечитывал, так и не пойму что ты хочешь.

Касательно "при старте ресурса циклом пробежись по игрокам и триггерни клиентское событие для каждого из них" - так делать не надо (если речь о всех игроках). Лучше вызывать событие один раз на родительский элемент, для игроков по умолчанию это root. В итоге ты отправишь один пакет вместо %количество игроков%, который получит каждый клиент.

Опиши конкретно, что ты хочешь сделать?

Share this post


Link to post
Опиши конкретно, что ты хочешь сделать?

Суть: при перезагрузке/старте ресурса, чтобы для всех клиентов запускался триггер, но сначала чтобы была проверка на сервере некоторых параметров (каких неважно, но это влияет на аргументы триггера), ну по коду вот так (упрощенная версия):

-- server side 
function resourceStart() 
     triggerClientEvent("testEvent", getRootElement())  
end 
addEventHandler("onResourceStart", getResourceRootElement(getThisResource()), resourceStart) 
  

 --client side 
function test() 
    outputChatBox('test event running') 
end 
addEvent('testEvent', true) 
addEventHandler('testEvent', getRootElement(), test) 

Но оно не работает, триггер возвращает true.

Касательно "при старте ресурса циклом пробежись по игрокам и триггерни клиентское событие для каждого из них" - так делать не надо (если речь о всех игроках). Лучше вызывать событие один раз на родительский элемент, для игроков по умолчанию это root. В итоге ты отправишь один пакет вместо %количество игроков%, который получит каждый клиент.

В этом согласен, но как я сказал раньше, игрокам отправляются разные аргументы, в зависимости от результата проверки на сервере, ну думаю так ты уже всё поймешь.

Share this post


Link to post

Обычно в этом случае, когда у клиентов запускается ресурс они вызывают серверное событие, обычно его называют Ready. Т.е. по сути клиенты сообщают о своей готовности. Поэтому ты не можешь просто взять и на сервере вызвать клиентские события для всех игроков - некоторые игроки будут не готовы (загрузка файлов, например).

Далее когда клиент готов, ты можешь уже делать какие-то манипуляции с ним.

Бывают ситуации когда ресурс на сервере запускается дольше чем у клиентов. Клиент обратится к серверному событию Ready, а на сервере его ещё нет или сервер просто не готов обработать запрос клиента. Поэтому я предпочитаю чтобы такие события были в отдельном ресурсе, пускай это будет Core-ресурс.

В итоге когда Core-ресурс запустился (прошла выгрузка из базы и всё такое) - он запускает клиентский ресурс.

Share this post


Link to post

onClientResourceStart - отправить на сервер триггер о запуске

с сервера на клиент отправить триггер выполнения задачи

на клиенте запустить задачу по триггеру

Share this post


Link to post

Возможно ли скриптом выполнить консольную команду на сервере?

Share this post


Link to post
Возможно ли скриптом выполнить консольную команду на сервере?

Искать не пробовали?

executeCommandHandler 

Share this post


Link to post
Возможно ли скриптом выполнить консольную команду на сервере?

Искать не пробовали?

executeCommandHandler 

Искать пробовал, и эту функцию я тоже рассматривал. Но она выполняет команду игрока, а я хочу выполнить серверную команду ("debugdb 2", например).

Внимательно пересмотрев все функции на вики, я не нашёл подходящей. Возможно, её нет из-за соображений безопасности.

Share this post


Link to post
Внимательно пересмотрев все функции на вики, я не нашёл подходящей. Возможно, её нет из-за соображений безопасности.

Да, вы правы. Hardcoded команды нельзя выполнять из соображений безопасности.

Share this post


Link to post

Существует ли какая-нибудь универсальная функция, которая подгоняет GUI элементы к разрешению игрока?

Share this post


Link to post

даже если размеры гуи будут относительные, шрифты всё равно останутся теми, какие были заложены разработчиками.

я пользуюсь таким для dx:

local screenWidth,screenHeight = guiGetScreenSize() 
local sw = screenWidth/640  
local sh = screenHeight/480 
local dsize = screenWidth/640*0.80 

 

sw - относительные размеры для окна по ширине

sh - по высоте, всё ориентировано под 640*480.

dsize - размер шрифта (вроде там колдовство типа 1.2 шрифт равен 12 пунктам, уже не помню)

 

dxDrawText(tostring(driftCoeff),          sw*37,sh*353,sw*238,sh*616,tocolor(230,210,0,255),dsize*1.2,"default-bold","left","top") 

на любом разрешении по пропорциям выглядит так же, как и на 640 на 480

Share this post


Link to post

Вопрос номер 1:

Скажите пожалуйста, можно ли как-нибудь получить угол на который повернуты передние колеса авто (лево-право)?

getAnalogControlState как я понял получает только поворот контроллера, а реально колеса часто бывают повернуты на меньший угол, в зависимости от скорости.

Вопрос номер 2:

Не могу понять почему это не работает, вроде все как в вики:

---server 
addCommandHandler("hide", function ( thePlayer ) 
     if isPedInVehicle ( thePlayer ) then 
          local veh = getPedOccupiedVehicle ( thePlayer ) 
          for i, player in ipairs ( getElementsByType("player") ) do 
               triggerClientEvent ( player, "hideComp", player, veh ) 
          end 
     end 
end ) 

---client 
addEvent( "hideComp", true ) 
addEventHandler( "hideComp", localPlayer, function ( theVeh ) 
        local isVisible = getVehicleComponentVisible(theVeh, "bump_front_ok") 
        if (isVisible == true) then 
                setVehicleComponentVisible(theVeh, "bump_front_ok", false) 
        elseif (isVisible == false) then 
                setVehicleComponentVisible(theVeh, "bump_front_ok", true) 
        end   
end ) 

Share this post


Link to post
Вопрос номер 1:

Скажите пожалуйста, можно ли как-нибудь получить угол на который повернуты передние колеса авто (лево-право)?

getAnalogControlState как я понял получает только поворот контроллера, а реально колеса часто бывают повернуты на меньший угол, в зависимости от скорости.

Вопрос номер 2:

Не могу понять почему это не работает, вроде все как в вики:

---server 
addCommandHandler("hide", function ( thePlayer ) 
     if isPedInVehicle ( thePlayer ) then 
          local veh = getPedOccupiedVehicle ( thePlayer ) 
          for i, player in ipairs ( getElementsByType("player") ) do 
               triggerClientEvent ( player, "hideComp", player, veh ) 
          end 
     end 
end ) 

---client 
addEvent( "hideComp", true ) 
addEventHandler( "hideComp", localPlayer, function ( theVeh ) 
        local isVisible = getVehicleComponentVisible(theVeh, "bump_front_ok") 
        if (isVisible == true) then 
                setVehicleComponentVisible(theVeh, "bump_front_ok", false) 
        elseif (isVisible == false) then 
                setVehicleComponentVisible(theVeh, "bump_front_ok", true) 
        end   
end ) 

Вроде вот тут есть тебе нужное:

https://wiki.multitheftauto.com/wiki/Vehicle_Components

А это та ф-я, которая нужна.

float, float, float getVehicleComponentRotation ( vehicle theVehicle, string theComponent [, string base = "parent"] )  

Share this post


Link to post

Вроде вот тут есть тебе нужное:

https://wiki.multitheftauto.com/wiki/Vehicle_Components

А это та ф-я, которая нужна.

float, float, float getVehicleComponentRotation ( vehicle theVehicle, string theComponent [, string base = "parent"] )  

В модели находится только одно колесо, там уже дальше происходит магия и оно появляется в игре на всех 4х местах.

Как следствие получить его ротацию я не могу. Если только получать ротацию дамми колес? Но эти функции вроде не работают с дамми.

Share this post


Link to post

Вроде вот тут есть тебе нужное:

https://wiki.multitheftauto.com/wiki/Vehicle_Components

А это та ф-я, которая нужна.

float, float, float getVehicleComponentRotation ( vehicle theVehicle, string theComponent [, string base = "parent"] )  

В модели находится только одно колесо, там уже дальше происходит магия и оно появляется в игре на всех 4х местах.

Как следствие получить его ротацию я не могу. Если только получать ротацию дамми колес? Но эти функции вроде не работают с дамми.

Не знаю другого способа, поэтому я б гемороился с этой ф-ей. Взял бы Rotation одного из передних колес, чуть чуть тригонометрии(с ней у меня туго, сразу так не напишу) и будет тебе угол поворота колес.

Повторюсь, другого я ничего не знаю пока-что.

P.S. Kenix с подобным сталкивался, может быть поможет.

Share this post


Link to post

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.