Jump to content

[Решено]onVehicleCreate


Recommended Posts

Что-то я не заметил такого события. Есть ли вообще похожее событие? Чтобы вызывалось, когда автомобиль был создан первый раз.

Edited by Guest
Link to comment

есть эвент OnVehicleRespawn, ты в нем можешь поставить проверку.

Например ты ставишь машине дату такую например setElementData(theVeh, "TEST", true)

А в эвенте OnVehicleRespawn проверку на наличие даты ставишь:

addEventHandler("onVehicleRespawn", root, 
function ( exploded ) 
    if ( not getElementData(source, "TEST") ) then 
  
    end 
end) 

Link to comment
есть эвент OnVehicleRespawn, ты в нем можешь поставить проверку.

Например ты ставишь машине дату такую например setElementData(theVeh, "TEST", true)

А в эвенте OnVehicleRespawn проверку на наличие даты ставишь:

addEventHandler("onVehicleRespawn", root, 
function ( exploded ) 
    if ( not getElementData(source, "TEST") ) then 
  
    end 
end) 

Я пробовал данное событие. Либо оно сломано на текущей версии, либо хз. Не срабатывает на созданный транспорт вообще (проверял только создание, а не респавн после взрыва)

Link to comment
Зачем вам вообще это событие? По идее, раз вы создаете элемент, то можно сразу все с ним сделать напрямую.

Эта функция нужна для отслеживания создания автомобиля и присвоения ему разных свойств.

Можно, конечно, написать функцию, которая бы содержала в себе createVehicle, а потом использовать ее для вызова своего ивента. Но это не очень удобно.

Edited by Guest
Link to comment

Вы можете присвоить свойства автомобилю в момент его создания.

События нужны для отслеживания неявных действий, например, захода игрока, выхода игрока, клику курсором и т.п.

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

Если вам нужно отслеживать момент создания автомобиля - поверьте, логика вашего кода неверна.

Link to comment
Вы можете присвоить свойства автомобилю в момент его создания.

События нужны для отслеживания неявных действий, например, захода игрока, выхода игрока, клику курсором и т.п.

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

Если вам нужно отслеживать момент создания автомобиля - поверьте, логика вашего кода неверна.

Спасибо. Мне нужно было только узнать об ивенте. Как я уже написал выше, нужна функция, которая бы порождала собственное событие.

Вопрос решен.

Link to comment
Вы можете присвоить свойства автомобилю в момент его создания.

События нужны для отслеживания неявных действий, например, захода игрока, выхода игрока, клику курсором и т.п.

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

Если вам нужно отслеживать момент создания автомобиля - поверьте, логика вашего кода неверна.

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

Link to comment

Добавить данное событие не составит труда.

Всего лишь 3 строчки:

CGame.cpp (после 1506 строки):

  
m_Events.AddEvent ( "onVehicleCreate", "", NULL, false ); 
  

CStaticFunctionDefinitions.cpp (после 4668 строки):

  
CLuaArguments Arguments; 
pVehicle->CallEvent ( "onVehicleCreate", Arguments ); 
  

Ну например, я хочу все машины, созданные админкой, окрашивать в яркозеленый цвет.

Отслеживать созданный автомобиль в onClientElementStreamIn. Например:

  
addEventHandler("onClientElementStreamIn", getRootElement( ), 
    function ( ) 
        if getElementType(source) == "vehicle" then 
            if getElementData(source, "vehicleCreate") == false then 
                -- тут триггерить серверное событие, в котором ты хочешь покрасить автомобиль 
                setElementData(source, "vehicleCreate", true) 
            end 
        end 
    end 
) 
  

Так же, каждому созданному автомобилю в своем ресурсе, задавать элемент дату. Проще всего это сделать, написав свою функцию создания транспорта.

Так же возможно использование серверного события onElementStartSync

Link to comment

Перекрашивать каждый раз автомобиль в один и тот же цвет?

Я не знаю, будет ли работать тот код, который вы дали, но тогда наверное надо

onElementCreate ? Смысл отслеживать создание vehicle, если это element.

Link to comment
Перекрашивать каждый раз автомобиль в один и тот же цвет?

Я не знаю, будет ли работать тот код, который вы дали, но тогда наверное надо

onElementCreate ? Смысл отслеживать создание vehicle, если это element.

Почему же каждый раз? Автомобиль перекрашивается один раз и на все время.

Можно и onElementCreate. Это тоже не составит труда, добавить в создание всех элементов вызов одного и того же события. Я просто привел пример, что это не тяжело, но почему-то этого нет.

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