[EFO]Kesha_F1

Вопросы и ответы по MTA.

Recommended Posts

-

Кстати, о потоках. Обработчики и каллбеки функций (db, http) всегда же в главном потоке выполняются, даже если вызовы типа callRemote, addEventHandler производились из корутины?

Share this post


Link to post

У меня возникло пару вопросов на счет mysql через dbConnect, вот и они:

1) Можно ли как-то коннектится к базе в одном ресурсе и использовать его для всех остальных ресурсов или на каждый ресурс свой коннект, и как будет эффективнее?

2) https://wiki.multitheftauto.com/wiki/ExecuteSQLQuery - откуда функция берет коннект к какой-то бд и какая её разница с https://wiki.multitheftauto.com/wiki/DbQuery?

3) https://wiki.multitheftauto.com/wiki/DbFree нужно чтобы обнулить результат с dbQuery, а https://wiki.multitheftauto.com/wiki/DbPoll возвращает результат с dbQuery?

4) В dbQuery есть каллбек, это просто вызывание функции когда будет готов результат запроса?

5) Я раньше использовал модуль, какие особенности в использование?

Заранее спасибо.

Share this post


Link to post
У меня возникло пару вопросов на счет mysql через dbConnect, вот и они:

1) Можно ли как-то коннектится к базе в одном ресурсе и использовать его для всех остальных ресурсов или на каждый ресурс свой коннект, и как будет эффективнее?

2) https://wiki.multitheftauto.com/wiki/ExecuteSQLQuery - откуда функция берет коннект к какой-то бд и какая её разница с https://wiki.multitheftauto.com/wiki/DbQuery?

3) https://wiki.multitheftauto.com/wiki/DbFree нужно чтобы обнулить результат с dbQuery, а https://wiki.multitheftauto.com/wiki/DbPoll возвращает результат с dbQuery?

4) В dbQuery есть каллбек, это просто вызывание функции когда будет готов результат запроса?

5) Я раньше использовал модуль, какие особенности в использование?

Заранее спасибо.

1) Да, через экспорты.

2) executeSQLQuery - Функция для работы со стандартной базой данных (registry.db). dbQuery - работает со всеми базами (смотря куда ты подключился - dbConnect).

3) Да

4) Да

5) Всё реализовано в паре функций вместо кучи, если используешь каллбек, то сервер не будет ждать ответа на запрос, разработчики обновляют/улучшают все встроенные функции, (а модуль никто не обновляет).

Есть пару ключевых моментов.

1) Если тебе нужно сделать запрос результат которого тебе не нужен (например обновить поля таблицы через оператор UPDATE или добавить через оператор INSERT и т.д ), то используй dbExec, тебе не нужно будет освобождать память для dbQuery.

2) Если делать запрос с выборкой без каллбека, а в аргументе dbPoll (ождиание) указать 0, то сервер не будет ждать и сразу будет получать данные от запроса, который ещё не пришел. Это глупое решение. Самый оптимальный вариант либо указывать у функции dbQuery каллбек, либо же указывать в функции dbPoll аргумент ожидания (- 1) - означает, что сервер будет ждать пока не придет запрос.

Также всё это уже писалось в этом уроке да и вообще на форуме есть куча тем.

https://forum.mtasa.com/viewtopic.php?f=153&t=37482

Share this post


Link to post

5) Всё реализовано в паре функций вместо кучи, если используешь каллбек, то сервер не будет ждать ответа на запрос, разработчики обновляют/улучшают все встроенные функции, (а модуль никто не обновляет).

Экранирование строк сделано проще и удобнее.

Share this post


Link to post

Народ, такое дело. В общем, как можно решить проблему отображения замененных моделей? Суть в том, что мне требуется поставить один большой объект в X:-5000, Y:-5000, а наблюдать его в X:5000, Y:5000,

  
setLowLODElement 
engineSetModelLODDistance 
setFarClipDistance 
  

Улучшают ситуацию, но этого не хватает.

Share this post


Link to post

Kenix, Эх, спасибо) Так и думал, что все к DX сведется)

UPD: Тут даже DX-функции не помогают. Объект все равно пропадает при отдалении, причем чем больше объект, тем быстрее. Если объект маленький, то он нормально уменьшается, пока не исчезнет вовсе, если большой (что мне и требуется), то стоит отойти метров на 500 и он начинает пропадать.

UPD: Решено.

Edited by Guest

Share this post


Link to post

Всем доброго время суток, у меня вопрос на счет клиента/сервера, как я знаю клиент для графических возможностей, но например есть и то что на нем нельзя делать, что? Тот же вопрос на счет сервера, а то я запутался, с тем что делать на сервере, а что на клиенте, например в системе инвентаря функцию есть ли в игрока место для предмета/дать предмет/удалить предмет, это все надо делать на сервере?

Share this post


Link to post
Всем доброго время суток, у меня вопрос на счет клиента/сервера, как я знаю клиент для графических возможностей, но например есть и то что на нем нельзя делать, что?

Странный вопрос. Много чего нельзя делать на клиенте. Это нельзя как-то описать одним словом.

Тот же вопрос на счет сервера, а то я запутался, с тем что делать на сервере, а что на клиенте, например в системе инвентаря функцию есть ли в игрока место для предмета/дать предмет/удалить предмет, это все надо делать на сервере?

Где сделаешь - там и будет.

Если делать на сервере, то будет лучше защита, но больше нагрузка на сервер, на клиенте же - защита хуже, нагрузка меньше(ну, это еще как сделать).

Share this post


Link to post
Всем доброго время суток, у меня вопрос на счет клиента/сервера, как я знаю клиент для графических возможностей, но например есть и то что на нем нельзя делать, что?

Странный вопрос. Много чего нельзя делать на клиенте. Это нельзя как-то описать одним словом.

Тот же вопрос на счет сервера, а то я запутался, с тем что делать на сервере, а что на клиенте, например в системе инвентаря функцию есть ли в игрока место для предмета/дать предмет/удалить предмет, это все надо делать на сервере?

Где сделаешь - там и будет.

Если делать на сервере, то будет лучше защита, но больше нагрузка на сервер, на клиенте же - защита хуже, нагрузка меньше(ну, это еще как сделать).

А вообще на счет защиты клиента, не буду спрашивать как её взламывают, но спрошу как защитится от взлома?

Share this post


Link to post

6. Avoid “ipairs()”

When iterating through a table, the overhead of the Lua ipairs() function does not justify its use, especially when you can accomplish the same thing using a Lua construct.

ipairs() — Discouraged

local t1 = {}

local t2 = {}

local t3 = {}

local t4 = {}

local a = { t1, t2, t3, t4 }

for i,v in ipairs( a ) do

print( i,v )

end

Lua Construct — Recommended

local t1 = {}

local t2 = {}

local t3 = {}

local t4 = {}

local a = { t1, t2, t3, t4 }

for i = 1,#a do

print( a )

end

Источник http://coronalabs.com/blog/2013/03/12/performance-optimizations/

Share this post


Link to post

Так же привел простой тест

  
local data = { 
    values = {} 
} 
  
for i = 1, 10000 do 
    table.insert(data.values, i) 
end 
  
function simpleForTest() 
    local j 
    local t = getTickCount() 
  
    for k = 1, 100 do 
        for i = 1, #data.values do 
            j = data.values[i] 
        end 
    end 
  
    outputServerLog('~~~# '..getTickCount() - t) 
end 
  
function pairsTest() 
    local j 
    local t = getTickCount() 
  
    for k = 1, 100 do 
        for i, val in pairs(data.values) do 
            j = val 
        end 
    end 
  
    outputServerLog('~~~pairs '..getTickCount() - t) 
end 
  
function ipairsTest() 
    local j 
    local t = getTickCount() 
  
    for k = 1, 100 do 
        for i, val in ipairs(data.values) do 
            j = val 
        end 
    end 
  
    outputServerLog('~~~ipairs '..getTickCount() - t) 
end 
  
for i = 1, 10 do 
    simpleForTest() 
    pairsTest() 
    ipairsTest() 
end 
  

  
~~~# 147.99999999988 
~~~pairs 223.99999999988 
~~~ipairs 242 
~~~# 163.00000000012 
~~~pairs 226.99999999988 
~~~ipairs 240 
~~~# 152.00000000012 
~~~pairs 222.99999999988 
~~~ipairs 237 
~~~# 148 
~~~pairs 223 
~~~ipairs 236 
~~~# 148 
~~~pairs 223 
~~~ipairs 237 
~~~# 150 
~~~pairs 221 
~~~ipairs 235.00000000012 
~~~# 149 
~~~pairs 222 
~~~ipairs 239 
~~~# 150 
~~~pairs 222.00000000012 
~~~ipairs 236.99999999988 
  

То есть «некрасивый» код работает в два раза быстрее «красивого». Вот так.

Share this post


Link to post

Всем привет, у меня вопрос на счет изменение частей текстуры интерьера, вот так как это сделано здесь: http://youtu.be/5Q4aaxJZIxk?t=6m3s

С помощью чего это возможно воплотить? Если уж в сампе это сделали, так в МТА это точно возможно.

Share this post


Link to post
Всем привет, у меня вопрос на счет изменение частей текстуры интерьера, вот так как это сделано здесь: http://youtu.be/5Q4aaxJZIxk?t=6m3s

С помощью чего это возможно воплотить? Если уж в сампе это сделали, так в МТА это точно возможно.

https://wiki.multitheftauto.com/wiki/EngineApplyShaderToWorldTexture

Share this post


Link to post

Есть ли где-то... тема о шейдерах?

Сколько я не пытался понять их в Вики, то никак не может мой мозг это осознать. Может быть у кого-то есть ссылочка где можно почитать о них, только в более опрощенном варианте. А если на русском, то вообще супер.

Share this post


Link to post
Есть ли где-то... тема о шейдерах?

Сколько я не пытался понять их в Вики, то никак не может мой мозг это осознать. Может быть у кого-то есть ссылочка где можно почитать о них, только в более опрощенном варианте. А если на русском, то вообще супер.

Аналогичный вопрос, с вики ничего не понять, ну разве что учиться по примерах https://wiki.multitheftauto.com/wiki/Shader_examples

Share this post


Link to post
Есть ли где-то... тема о шейдерах?

Сколько я не пытался понять их в Вики, то никак не может мой мозг это осознать. Может быть у кого-то есть ссылочка где можно почитать о них, только в более опрощенном варианте. А если на русском, то вообще супер.

http://lmgtfy.com/?q=hlsl+programming

Share this post


Link to post

вообще у меня такой вопрос как включить худ и радар у меня в моде выключены, и пикапы как включить какой ресурс за это отвечает.

Share this post


Link to post

У меня вопрос по шейдерам: можно ли каким-то образом "содрать" шейдер с одной текстуры и применить её на другую?

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.