AriosJentu Posted July 20, 2013 Share Posted July 20, 2013 Здраствуйте пользователи. Я вот решил перейти с Pawn на Lua, говорят луа проще, и всё такое. Сегодня читал несколько статей на вики и других форумах, да, убедился - достаточно просто, но. У меня возникли некоторые вопросы. Поиграв на нескольких серверах (в основном это были DD сервера), я заметил, что у некоторых не меняется время и погода на карте. И первый вопрос заключается именно в этом. - Какие функции могут замораживать время и погоду? Я видел функцию "setTime", и она как раз таки изменяла время, но время продолжало идти. Порывшись в галерее скриншотов с МТА, я увидел, что можно как-то изменять яркость игры, делать её темней, например чтобы любой источник света был ярким в этой области (помните ночи из игр, серии Slender, и флешлайт был единственным источником света, и достаточно ярким для темной области). - Как можно изменить яркость внешнего мира для фонарика? Насколько я знаю, в SA-MP почти чёрный мир делался с помощью установки полночи во времени, и изменении погоды на "черно-белый, интерьер", ибо ночью белый свет менялся. Покреативив, я написал команду, но мне хотелось бы увидеть, чтобы она исполнялась с помощью какой-либо клавиши (например RMB(рус ПКМ)), или исполнялась при вызове другой функции (function). Как так можно сделать? Ещё я уже давно знаю, и мне очень эта идея нравится - можно загружать модели и текстуры для автомобилей, объектов. - Как загрузить модель и текстуру, для того чтобы создать объект в игре? Куда нужно пихать данные ресурсы? И другое. Так-же мне интересно - изменение скорости персонажа и автомобиля, например чтобы автомобиль ездил медленней, а игрок например ходил быстрей. Заранее благодарю за ваши ответы. Link to comment
TheNormalnij Posted July 20, 2013 Share Posted July 20, 2013 Почти по каждой функции в мта есть пример использования. Яркость, эффекты - шейдеры. Как пихать объекты есть в уроках. для ускорения персов можно менять режим ходьбы или ускорять время, можно менять параметры авто... Бинд тоже расписан( по-моему 'mouse_1' ) Link to comment
AriosJentu Posted July 20, 2013 Author Share Posted July 20, 2013 Можно мне пример этих самых нужных функций, и ссылочку на урок) Link to comment
_Vincent_ Posted July 20, 2013 Share Posted July 20, 2013 Единственный вариант, который я видел с замораживанием времени - это setMinuteDuration(тут-огромное-число). viewforum.php?f=141 - скриптинговый подфорум, в нем есть еще один подфорум - уроки. https://wiki.multitheftauto.com/wiki/BindKey - вроде это и есть ф-я привязки клавиши (бинд) Link to comment
Other Languages Moderators Disinterpreter Posted July 20, 2013 Other Languages Moderators Share Posted July 20, 2013 Я вот решил перейти с Pawn на Lua, говорят луа проще, и всё такое. Lua проще, но архитектура MTA сложнее, чем архитектура SAMP. "- Как загрузить модель и текстуру, для того чтобы создать объект в игре? Куда нужно пихать данные ресурсы? И другое." Нельзя создавать, можно только заменять. Link to comment
TheNormalnij Posted July 20, 2013 Share Posted July 20, 2013 https://wiki.multitheftauto.com/index.php?title=RU/Main_Page Тут самое важное есть на русском. В фрироме как раз так и делается setMinuteDuration(9001). Где-то в примерах было по событию onClientRender, но этот вариант мне не нравится. По поводу создания: на багтрекере можно этот вопрос продонатить. Link to comment
AriosJentu Posted July 20, 2013 Author Share Posted July 20, 2013 Спасибо. Такой вопрос теперь. Как сказано в данном туторе, всё должно работать. У меня после того, что я сделал не определяет ресурс. Загружаю всё с клиента, в мод загружаю как отдельный ресурс. local id = 1509 function resourceroot() local txd = engineLoadTXD("files/grass.txd") local dff = engineLoadDFF("files/grass.dff") engineImportTXD(txd, id) engineReplaceModel(dff, id) end addEventHandler("onClientResourceStart", resourceroot) Единственное, что я сделал по своему - название функции, ибо MTA SE ругался на то, что строка function не имеет названия, а добавление эвента не может найти resourceroot Коллизия не заменится, ибо она тут особой роли для моего объекта не играет Я загружаю данный скрипт из ZIP архива как ресурс. Вот мета данного ресурса <meta> <info author="TraniLurese" type="script" /> <script src="objects.lua" type="client" /> <file src="files/grass.dff" type="client" /> <file src="files/grass.txd" type="client" /> </meta> Вот так я загружаю данный ресурс в ресурс мода <include resource="loadmodels" type="client" /> loadmodels - архив с ресурсом При загрузке вылазиет ошибка (Failed to link to load models) ERROR: mapmanager\mapmanager_main.lua:376 mapmanager: gamemode resource could not be started. Без данного ресурса с моделями всё работает нормально. Стоит его подключить, терминал пошёл в полёт. Тупанул немножечко - ща исправлю и проверю Link to comment
TheNormalnij Posted July 20, 2013 Share Posted July 20, 2013 local id = 1509 function replace() local txd = engineLoadTXD("files/grass.txd") local dff = engineLoadDFF("files/grass.dff") engineImportTXD(txd, id) engineReplaceModel(dff, id) end addEventHandler("onClientResourceStart", resourceRoot, replace) Link to comment
AriosJentu Posted July 20, 2013 Author Share Posted July 20, 2013 Подкорректировал до такого состояния: local id = 1509 addEventHandler("onClientResourceStart", resourceroot, function() local txd = engineLoadTXD("models/files/grass.txd") local dff = engineLoadDFF("models/files/grass.dff") engineImportTXD(txd, id) engineReplaceModel(dff, id) end ) MTA ME не сообщал про ошибки. Но даже не загрузив мод (видимо там сразу проверка ресурсов), мне предложили сразу выключить сервер. А причиной послужило: ERROR: Could not find file files/grass.dff for resource loadmodels ERROR: Problem with resource: MyGM; Failed to link to loadmodels bind (...) failed: Error code - 10048 Я в скрипте даже точно указал, что файл находится в Models, даже проверил сам, находится ли он там. На TXD видимо не стал ругаться - видимо с ним всё нормально. Link to comment
AriosJentu Posted July 20, 2013 Author Share Posted July 20, 2013 local id = 1509 function replace() local txd = engineLoadTXD("files/grass.txd") local dff = engineLoadDFF("files/grass.dff") engineImportTXD(txd, id) engineReplaceModel(dff, id) end addEventHandler("onClientResourceStart", resourceRoot, replace) Ресурс загрузился, но есть ошибка, написана выше - связана с DFF. Сервер не видит DFF модель. В версии выше (в моей версии) сервер не может загрузиться, а в вашей ошибки есть, но всё загружается кроме DFF. Link to comment
Other Languages Moderators Disinterpreter Posted July 20, 2013 Other Languages Moderators Share Posted July 20, 2013 "я написал команду, но мне хотелось бы увидеть, чтобы она исполнялась с помощью какой-либо клавиши" bindKey или onClientKey Link to comment
_Vincent_ Posted July 20, 2013 Share Posted July 20, 2013 Мб, мое предположение - идиотское, но у вас расширение (dff) - маленькими буквами? И еще: в мете, где include... не совсем понятно, зачем дописано client. Тут - https://wiki.multitheftauto.com/index.php?title=Meta.xml вроде об этом ни слова, да и сам не помню такого. Link to comment
Other Languages Moderators Disinterpreter Posted July 20, 2013 Other Languages Moderators Share Posted July 20, 2013 Мб, мое предположение - идиотское, но у вас расширение (dff) - маленькими буквами?И еще: в мете, где include... не совсем понятно, зачем дописано client. Тут - https://wiki.multitheftauto.com/index.php?title=Meta.xml вроде об этом ни слова, да и сам не помню такого. Еще в мете у стоит type="client" Link to comment
TheNormalnij Posted July 20, 2013 Share Posted July 20, 2013 Еще в мете у стоит type="client" Я, например, всегда даже на файлах ставлю type="client", это не должно влиять. Link to comment
Kernell Posted July 20, 2013 Share Posted July 20, 2013 Еще в мете у стоит type="client" Я, например, всегда даже на файлах ставлю type="client", это не должно влиять. Зачем? type только для скриптов, все остальные файлы и без этого клиентские. Link to comment
AriosJentu Posted July 21, 2013 Author Share Posted July 21, 2013 Не, со скриптом какая-то жопа вышла. Попробовал другие модели, та-же жопа с DFF. Не могу понять, что я делаю не так. Link to comment
AriosJentu Posted July 21, 2013 Author Share Posted July 21, 2013 Мб, мое предположение - идиотское, но у вас расширение (dff) - маленькими буквами? А надо большими? Я всегда мелкими пишу расширение, тем более ZModeler и так в мелкое сохраняет Link to comment
_Vincent_ Posted July 21, 2013 Share Posted July 21, 2013 Мб, мое предположение - идиотское, но у вас расширение (dff) - маленькими буквами? А надо большими? Я всегда мелкими пишу расширение, тем более ZModeler и так в мелкое сохраняет Нет, никаких рекомендаций к этому не видел. Так как язык я почти не знаю, могу строить по сути лишь догадки. Суть догадки была в том, что вдруг оно регистрозависимое. Укажешь расширение не так - и усе Повторяю, это была лишь догадка. Link to comment
AriosJentu Posted July 21, 2013 Author Share Posted July 21, 2013 Нуок, но всёрно как бы сделать всё так, чтобы работало, я то всего в Луа 2 дня, и только разобрался с некоторыми функциями, практикуясь на своём сервере. Link to comment
_Vincent_ Posted July 21, 2013 Share Posted July 21, 2013 А все же... откуда id 1509? Link to comment
lil Toady Posted July 21, 2013 Share Posted July 21, 2013 DFF используется только для автомобилей, для объектов - TXD и COL Link to comment
Kernell Posted July 21, 2013 Share Posted July 21, 2013 DFF используется только для автомобилей, для объектов - TXD и COL С чего бы это? На сколько мне известно, DFF используется для всех объектов ГТА (особенно с учётом что мы всегда делаем объект в 3Ds Max а потом уже его COL). + В игре много объектов которые не имеют коллизии. P.S. Совсем недавно делал полицейскую мигалку в ZModeler 2, без всяких COL, ибо он там не нужен. Link to comment
AriosJentu Posted July 21, 2013 Author Share Posted July 21, 2013 А все же... откуда id 1509? ID 1509 это бутылка вина (подыскал в редакторе карт). Если посмотреть тот тутор, который указан в 7м сообщении, то можно увидеть, что там используется произвольный ID. Link to comment
AriosJentu Posted July 22, 2013 Author Share Posted July 22, 2013 Ещё возник вопрос. Вот допустим GUI - клиентская сторона, как можно сделать так, чтобы Gui ProgressBar показывал именно здоровье, я накалякал функцию, но она показывает ХП только при старте. function GuiEdit() gui1 = guiCreateProgressBar(1033, 8, 241, 20, false) guiProgressBarSetProgress(gui1, getElementHealth(getLocalPlayer())) end addEventHandler("onClientResourceStart", getRootElement(getThisResource()), GuiEdit) Есть ли такая функция, типа OnPlayerUpdate (Pawn)? 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