Splav Posted January 21, 2012 Share Posted January 21, 2012 Скриптингом в MTA начал заниматься недавно (перебежал из SA-MP) Появились несколько вопросиков 1. Что такое клиентские скрипты? Не совсем понятно. Расскажите, пожалуйста, о них или дайте ссылку, где можно о них почитать P.S. Я надеюсь это не возможность игрокам создавать свои скрипты для получения денег, например? 2. Для чего нужна функция getRootElement? Читал на wiki и на английском, и на русском так ничего и не понял 3. Что использовать в MTA вместо массивов в SA-MP? Заранее спасибо за ответы) Link to comment
StUNt71 Posted January 21, 2012 Share Posted January 21, 2012 (edited) 1. Клиентские скрипты работают на стороне клиента. В нём работают такие функции как прорисовка чего-то (dxDraw), gui, и многое другое. В их безопасности я уверен, на процентов 80. 2. Эта функция возвращает древо всех элементов. 3. Для этого есть таблица. local ururu = { [1] = "ASDASD", [2] = 221, [3] = 212.1231, [4] = true, [5] = { [1] = ":DDD", [2] = 2221, [3] = 252.12225, [4] = false, [5] = { [1] = "SAasG", [2] = 315, [3] = 251.1225, [4] = true } } } outputDebugString(ururu[5][5][1]) Edited January 21, 2012 by Guest Link to comment
Splav Posted January 21, 2012 Author Share Posted January 21, 2012 1. Клиентские скрипты работают на стороне клиента. В нём работают такие функции как прорисовка чего-то (dxDraw), gui, и многое другое. В их безопасности я уверен, на процентов 80.2. Эта функция возвращает древо всех элементов. Вот об этом можно поподробнее? P.S. Я нуб - не понимаю Link to comment
Kenix Posted January 21, 2012 Share Posted January 21, 2012 1. Что такое клиентские скрипты? Не совсем понятно. Расскажите, пожалуйста, о них или дайте ссылку, где можно о них почитатьP.S. Я надеюсь это не возможность игрокам создавать свои скрипты для получения денег, например? Клиентский скрипт это код который выполнятется на компьютере у игрока. http://ru.wikipedia.org/wiki/Клиент_(информатика) Я надеюсь это не возможность игрокам создавать свои скрипты для получения денег, например? Такое мало вероятно. 2. Для чего нужна функция getRootElement? Читал на wiki и на английском, и на русском так ничего и не понял Функция getRootElement или root возвращает дерево всех элементов. Т.е к примеру есть событие onClientGUIClick Если мы аттачим к обработчику события элемент ( например гуи-кнопку ) то событие будет срабатывать именно когда мы жмём на эту гуи-кнопку , а если мы будем использовать root( getRootElement ) то при нажатие например на любые гуи элементы событие будет срабатывать. 3. Что использовать в MTA вместо массивов в SA-MP? Таблицы P.S Я не мастер объяснять что-либо. Link to comment
StUNt71 Posted January 21, 2012 Share Posted January 21, 2012 Клиентский скрипт, МТА скачивает с сервера, и код который находится внутри работает на компьютере у игрока. Благодаря этому можно сделать некий баланс, между нагрузкой на сервер и компьютер игрока. Link to comment
Splav Posted January 21, 2012 Author Share Posted January 21, 2012 С этим более менее понятно, спасибо за ответы, если будут дополнения, пишите Вот на WIKI функцию нашел addEventHandler. Я так понимаю, это чтобы создать что-то на подобие автовызываемых функций в samp? Если да, то что будет если сделать в одном ресурсе так: function onPlayerSpawnHandler ( thePlayer ) local playerName = getPlayerName( thePlayer ) outputChatBox ( playerName .. " заспавнился!" ) end addEventHandler( "onPlayerSpawn", getRootElement(), onPlayerSpawnHandler ) А в другом так: function onPlayerSpawnHandler ( thePlayer ) local playerName = getPlayerName( thePlayer ) outputChatBox ( playerName .. " присоединился к нам!" ) end addEventHandler( "onPlayerSpawn", getRootElement(), onPlayerSpawnHandler ) Это будет работать? Что сработает раньше? P.S. Для тех, кто хочет спросить - зачем это мне? Отвечу - я собираюсь писать мод со стандартного Deathmatch. Там 150 ресурсов. Мне лень бегать по ним и искать нужный ивент. Я просто хочу создать свой ресурс и туда добавить И еще вопросик - как мне можно быстро найти ресурс, в котором описана нужная мне функция? Link to comment
StUNt71 Posted January 21, 2012 Share Posted January 21, 2012 автовызываемых функций в samp? Да, можно сказать это те самые колбэки. public onPlayerConnect(playerid, ........) { return 1; } Link to comment
Kernell Posted January 21, 2012 Share Posted January 21, 2012 Просто в сампе уже каллбеки забиндены, а МТА даётся возможность самому их забиндить и причём в большом кол-ве на одно событие. Вызываться они будут по порядку добавления. Link to comment
Other Languages Moderators Disinterpreter Posted January 22, 2012 Other Languages Moderators Share Posted January 22, 2012 И еще вопросик - как мне можно быстро найти ресурс, в котором описана нужная мне функция? Не знаю я основываюсь только на английский язык и на ctrl+f в браузере. Link to comment
MX_Master Posted January 22, 2012 Share Posted January 22, 2012 автовызываемая функция = callback function = event handler колбэк = callback = event В сампе сделано примерно так function OnPlayerConnect ( playerid ) -- твой код end addEventHandler( 'onPlayerConnect', root, OnPlayerConnect ) просто строку с addEventHandler там не надо писать. это сделано, чтобы нельзя было добавить другие функции для обработки колбэков. С одной стороны это упрощает вид кода. но в МТА больше свободы, там можно сделать так function OnPlayerConnect_1 ( playerid ) -- твой код end function OnPlayerConnect_2 ( playerid ) -- твой код end addEventHandler( 'onPlayerConnect', root, OnPlayerConnect_1 ) addEventHandler( 'onPlayerConnect', root, OnPlayerConnect_2 ) это дает возможность не пихать весь код в одну функцию, а более разумно распределить разные части кода по разных функциям. Затем указать с помощью addEventHandler, что эти функции тоже являются автовызываемыми функциями. PS: я самп вики переводил на русский, и название "автовызываемые функции", это я так перевёл, раньше там было везде написано "колбэк" 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