Kernell Posted September 19, 2014 Share Posted September 19, 2014 function OnClientRender() if vehicle.max_speed == NULL then vehicle.max_speed = 0; end if vehicle.speed > vehicle.max_speed then vehicle.max_speed = vehicle.speed; end end Собственно все необходимые проверки я опустил. В целом логика должна быть ясна. Link to comment
N1kS Posted September 19, 2014 Share Posted September 19, 2014 function OnClientRender() if vehicle.max_speed == NULL then vehicle.max_speed = 0; end if vehicle.speed > vehicle.max_speed then vehicle.max_speed = vehicle.speed; end end Собственно все необходимые проверки я опустил. В целом логика должна быть ясна. Спасибо за содействие, но я немного не это имел ввиду. Другими словами - мне нужна была таблица макс. скорости для каждого ТС, я ее уже составил. Еще раз спасибо. Link to comment
Kernell Posted September 19, 2014 Share Posted September 19, 2014 Ты же сказал что тебе наоборот не нужна таблица? Link to comment
N1kS Posted September 20, 2014 Share Posted September 20, 2014 Ты же сказал что тебе наоборот не нужна таблица? То, что ты написал - это проверка едет авто с макс. скоростью или нет, а мне нужно просто вычислять макс. скорость каждого авто и сделать это посредствами функций сложно(в том плане, что на макс. скорость влияет много факторов: вес и т.д), поэтому я и составил таблицу. Тоесть другими словами: мне нужно макс. скорость авто, как только я в него сел и формулу для расчета макс. скорости с помощью параметров от handling я на просторах интернета не нашел. Поэтому выбор был только один: таблица. Link to comment
Kernell Posted September 20, 2014 Share Posted September 20, 2014 Ты же сказал что тебе наоборот не нужна таблица? То, что ты написал - это проверка едет авто с макс. скоростью или нет, а мне нужно просто вычислять макс. скорость каждого авто и сделать это посредствами функций сложно(в том плане, что на макс. скорость влияет много факторов: вес и т.д), поэтому я и составил таблицу. Тоесть другими словами: мне нужно макс. скорость авто, как только я в него сел и формулу для расчета макс. скорости с помощью параметров от handling я на просторах интернета не нашел. Поэтому выбор был только один: таблица. Нет там такой проверки. Там идёт вычисление максимальной достигнутой скорости автомобилем. Если тебе нужно моментально узнать какой скоростной лимит у автомобиля, то Handling в помощь. Но без флага USE_MAXP_LIMIT информация не будет действительной. Link to comment
Jonathan.P Posted September 21, 2014 Share Posted September 21, 2014 Можно ли в качестве трейлера прицепить взорванную машину? Link to comment
Fabervox Posted September 21, 2014 Share Posted September 21, 2014 Если элемент машины после её взрыва, остается и имеет тип "vehicle", то прицепить можно, насколько это будет "играбельно", вопрос отдельный. Также можно атачить просто почти любые элементы или же сделать модель взорванного авто, если это нужно. Link to comment
Kernell Posted September 21, 2014 Share Posted September 21, 2014 Можно ли в качестве трейлера прицепить взорванную машину? Ну так возьми да попробуй, в чём проблема? Есть функция, есть руки. Вопрос из серии, "можно ли вызвать функцию".. Link to comment
Jonathan.P Posted September 22, 2014 Share Posted September 22, 2014 Ну так возьми да попробуй, в чём проблема? Есть функция, есть руки. Уже пробовал. Дело том, что функция attachTrailerToVehicle(veh, trailer) какая-то нестабильная. Когда я прицепляю взорванную, то она либо перемещается на позицию прицепа, но не прицепляется, либо прицепляется, загорается, взрывается снова и отцепляется. Я думал может уже кто-то колдовал с setElementHealth и setVehicleDamageProof - у меня ничего не вышло. А обычные машины тоже не всегда прицепляются. Link to comment
lcd1232 Posted September 22, 2014 Share Posted September 22, 2014 Зачем нужны функции textDisplay? Это же по сути тот же dxDraw только серверный или я не прав? Link to comment
Elengar Posted September 22, 2014 Share Posted September 22, 2014 Зачем нужны функции textDisplay? Это же по сути тот же dxDraw только серверный или я не прав? Их можно вызывать с сервера. Например, до загрузки каких-нибудь ресурсов. Других применений не знаю. Link to comment
lcd1232 Posted September 28, 2014 Share Posted September 28, 2014 Как создать вид от первого лица из машины? ресурс cockpit делает это криво и + нельзя двигать камеру. Пробовал приаттачить камеру к позиции лица, но результат, как будто ничего не произошло. Link to comment
N1kS Posted October 4, 2014 Share Posted October 4, 2014 Как создать вид от первого лица из машины? ресурс cockpit делает это криво и + нельзя двигать камеру. Пробовал приаттачить камеру к позиции лица, но результат, как будто ничего не произошло. Возможно Kernell что-то посоветует. Он делал то, чем вы интересуетесь. Link to comment
Kernell Posted October 4, 2014 Share Posted October 4, 2014 Пробовал приаттачить камеру к позиции лица, но результат, как будто ничего не произошло. Код покажите. Ранее я делал подобное с setCameraMatrix, но так как с математикой у меня не очень, были мелкие баги. Но как появилась getCamera() на стороне клиента - я быстренько всё это переписал. Собственно тут всё просто, получаете элемент камеры, атачите её к чему нужно и всё. Если нужно реализовать вращение - то есть setElementAttachedOffsets. Link to comment
lcd1232 Posted October 5, 2014 Share Posted October 5, 2014 Пробовал приаттачить камеру к позиции лица, но результат, как будто ничего не произошло. Код покажите. Ранее я делал подобное с setCameraMatrix, но так как с математикой у меня не очень, были мелкие баги. Но как появилась getCamera() на стороне клиента - я быстренько всё это переписал. Собственно тут всё просто, получаете элемент камеры, атачите её к чему нужно и всё. Если нужно реализовать вращение - то есть setElementAttachedOffsets. Сначала попробовал примерно так (код не помню написал по-быстрому, поэтому не тестился) local player = getLocalPlayer() local r_root = getRootElement() local camera addEventHandler( 'onClientVehicleEnter', r_root, function ( thePlayer, theSeat ) if thePlayer == player and theSeat == 0 then if isElement( camera ) then destroyElement( camera ) end local x, y, z = getPedBonePosition( thePlayer, 8 ) camera = createObject( 3803, x, y, z ) setElementAlpha( camera, 0 ) attachElements( thePlayer, camera ) setCameraTarget( camera ) end end) addEventHandler( 'onClientVehicleStartExit', r_root, function ( thePlayer ) if thePlayer == player then if isElement( camera ) then destroyElement( camera ) end setCameraTarget( thePlayer ) end end) И в нем была проблема в том, что attachElements и setCameraTarget возвращали false. Потом попробовал как в ресурсе cockpit, но камера стала показывать внутренности машины (я так и не понял куда направлялась камера). Потом решил через getCamera() local player = getLocalPlayer() local r_root = getRootElement() local camera = getCamera() addEventHandler( 'onClientVehicleEnter', r_root, function ( thePlayer, theSeat ) if thePlayer == player and theSeat == 0 then local x, y, z = getPedBonePosition( thePlayer, 8 ) setCameraTarget( x, y, z ) setCameraClip( true, false ) end end) addEventHandler( 'onClientVehicleStartExit', r_root, function ( thePlayer ) if thePlayer == player then setCameraTarget( thePlayer ) setCameraClip( true, true ) end end) Получилось как-будто я и не писал код вообще. Хотелось все таки как-то покрасивей и попроще, в итоге ничего не получилось. Link to comment
Kernell Posted October 6, 2014 Share Posted October 6, 2014 Первый код у тебя как бы правильный, за исключением пару моментов - setCameraTarget отцепляет камеру от аттача (хотя МТА всё равно считает её приатаченой). Второй момент - ты пытаешься игрока приатачить к "камере" (я так понял у тебя там объект для теста?), а надо наоборот. attachElements( %что%, %к чему% ) P.S. зачем getLocalPlayer и getRootElement? Уже давно есть глобальные переменные root и localPlayer Link to comment
lcd1232 Posted October 6, 2014 Share Posted October 6, 2014 localPlayer не нравится как пишется) А root думал только серверный. Второй момент - ты пытаешься игрока приатачить к "камере" (я так понял у тебя там объект для теста?), а надо наоборот. attachElements( %что%, %к чему% )А какая собственно разница? Link to comment
Kernell Posted October 6, 2014 Share Posted October 6, 2014 localPlayer не нравится как пишется) А root думал только серверный.Второй момент - ты пытаешься игрока приатачить к "камере" (я так понял у тебя там объект для теста?), а надо наоборот. attachElements( %что%, %к чему% )А какая собственно разница? Да действительно, какая разница, надеть часы на руку или руку на часы? Так и у тебя. Link to comment
Maximus_Decimus Posted October 28, 2014 Share Posted October 28, 2014 Подскажите пожалуйста, почему этот код не работает: local x, y, sizeX, sizeY = 2498.6914, -1685.4102, 50, 50 local area = createRadarArea(x, y, sizeX, sizeY) local col = createColRectangle(x, y, sizeX, sizeY) setElementParent(col, area) Поправка: код работает, но почему-то после установления родителя colshape'у, при применении команды showcol он не обозначается, т.е. границы не показывает колшейпа. Link to comment
Evolv Posted November 11, 2014 Share Posted November 11, 2014 Добрый день, форумчане, решил мигрировать на МТА с САМПа, все бы ничего, все вроде бы понятно, но не понятно одно - клиент-серверные скрипты, не понятно как происходит общение и их работа. Создал простое окно на gui в клиентском скрипте, прописал его в meta.xml, создание окна засунул в событие onResourceStart, но при запуске ничего не происходит, пытался понатыкать функций outputConsole в код, чтобы удостовериться, запускается ли событие. В серверном скрипте только спавн, помогите разобраться, пожалуйста Link to comment
Kernell Posted November 11, 2014 Share Posted November 11, 2014 Добрый день, форумчане, решил мигрировать на МТА с САМПа, все бы ничего, все вроде бы понятно, но не понятно одно - клиент-серверные скрипты, не понятно как происходит общение и их работа. Создал простое окно на gui в клиентском скрипте, прописал его в meta.xml, создание окна засунул в событие onResourceStart, но при запуске ничего не происходит, пытался понатыкать функций outputConsole в код, чтобы удостовериться, запускается ли событие. В серверном скрипте только спавн, помогите разобраться, пожалуйста Даю подсказку: для клиентской стороны свои события. Заходишь на wiki и в разделе Client Events ищешь нужное Link to comment
Evolv Posted November 11, 2014 Share Posted November 11, 2014 Добрый день, форумчане, решил мигрировать на МТА с САМПа, все бы ничего, все вроде бы понятно, но не понятно одно - клиент-серверные скрипты, не понятно как происходит общение и их работа. Создал простое окно на gui в клиентском скрипте, прописал его в meta.xml, создание окна засунул в событие onResourceStart, но при запуске ничего не происходит, пытался понатыкать функций outputConsole в код, чтобы удостовериться, запускается ли событие. В серверном скрипте только спавн, помогите разобраться, пожалуйста Даю подсказку: для клиентской стороны свои события. Заходишь на wiki и в разделе Client Events ищешь нужное Если я размещу в клиент-скрипте только одно событие onClientPlayerJoin, а в функции выполню outputConsole("Hello world") - сообщение будет отправлено в консоль? Link to comment
Strix Posted November 11, 2014 Share Posted November 11, 2014 Если я размещу в клиент-скрипте только одно событие onClientPlayerJoin, а в функции выполню outputConsole("Hello world") - сообщение будет отправлено в консоль? Событие onClientPlayerJoin вызывается для всех игроков, кроме локального, так как клиентская часть ресурса запускается уже после подключения игрока. Если ты прикрепишь обработчик этого события к локальному игроку, то сообщение никогда не будет отправлено в консоль. Используй событие onClientResourceStart и прикрепляй его к resourceRoot, чтобы оно вызвалось только один раз при запуске этого ресурса на стороне клиента. Link to comment
Evolv Posted November 11, 2014 Share Posted November 11, 2014 В клиентском скрипте участвует только один игрок? То есть можно спокойно в начале скрипта написать playerid = getLocalPlayer(); И спокойно пользоваться им далее по скрипту? Если мои вопросы глупы, то извините, я пытаюсь учиться Link to comment
N1kS Posted November 11, 2014 Share Posted November 11, 2014 getLocalPlayer() Можно вообще не использовать, т.к данная переменная предопределенна и называется localPlayer. И localPlayer- это не id, а userdata локального игрока. Почитайте документацию на wiki. В МТА изначально нет системы id и все игроки являются userdat'ой. Изучите доскональнее эвенты на стороне клиента. Там нет события onResourceStart, там есть событие: onClientResourceStart. Link to comment
Recommended Posts
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 accountSign in
Already have an account? Sign in here.
Sign In Now