K1parik Posted September 19, 2015 Share Posted September 19, 2015 Подскажите как можно редактировать данные игрока в userdata в файле internal.db при условии что этого игрока нет в онлайне? Link to comment
Kenix Posted September 19, 2015 Share Posted September 19, 2015 Редактировать базу данных можешь через db функции. (dbConnect, dbQuery, ... ) https://wiki.multitheftauto.com/wiki/Se ... _functions Link to comment
Elengar Posted September 20, 2015 Share Posted September 20, 2015 Подскажите как можно редактировать данные игрока в userdata в файле internal.db при условии что этого игрока нет в онлайне? local acc = getAccount( "логин игрока" ); setAccountData( acc, "что-то", "значение чего-то" ); И это не userdata. userdata это тип данных в Lua. В нем хранятся такие данные, которые "даются" Lua оттуда, куда он был встроен. Редактировать базу данных можешь через db функции. (dbConnect, dbQuery, ... )https://wiki.multitheftauto.com/wiki/Se ... _functions Бред написал dbConnect и dbQuery вообще не для локальных(которые от сервера МТА) БД. Есть executeSQLQuery для локальных, но не для internal.db Link to comment
Kenix Posted September 20, 2015 Share Posted September 20, 2015 Редактировать базу данных можешь через db функции. (dbConnect, dbQuery, ... )https://wiki.multitheftauto.com/wiki/Se ... _functions Бред написал dbConnect и dbQuery вообще не для локальных(которые от сервера МТА) БД. Есть executeSQLQuery для локальных, но не для internal.db Читаем Wiki: host: The target to connect to. The format of this depends on the database type. >>For SQLite it is a filepath to a SQLite database file. If the filepath starts with ":/" then the server's global databases directory is used. The file will be created if it does not exist. Есть executeSQLQuery для локальных, но не для internal.db Я где-то указал executeSQLQuery? Я написал db функции. Можно пользоваться как и db функциями, так и функциями аккаунта. P.S через db функции в данном случае можно открывать только внутри databases директории, моя вина. Придираться ко мне не надо. Link to comment
iAxel Posted September 27, 2015 Share Posted September 27, 2015 Всем привет! Ребята помогите решить проблему Есть таблицы local sw, sh = guiGetScreenSize() local move = false local rpos = {} -- rectangle local ipos = {} -- image Рендерим dx элементы addEventHandler('onClientRender', root, function () local rx = 0 for i = 1, 4 do -- 1 цикл rpos[i] = {x = 100 + rx, y = 100} -- задаем таблице координаты rectangle dxDrawRectangle(bpos[i].x, bpos[i].y, 64, 64, tocolor(100, 100, 100, 225)) rx = rx + 64 end for i = 1, 2 do -- 2 цикл ipos[i] = rpos[i] -- копируем коориданаты 1 и 2 rectangle dxDrawImage(ipos[i].x, ipos[i].y, 64, 64, 'image.jpg') end if (move) then -- для мув элемента local cx, cy = getCursorPosition() dxDrawRectangle(sw * cx, sh * cy, 64, 64, tocolor(100, 100, 100, 225)) dxDrawImage(sw * cx, sh * cy, 64, 64, 'image.jpg') end end) addEventHandler('onClientClick', root, function (button, state, x, y) -- для мув элемента if (button == 'left' and state == 'up') then for i = 1, #ipos do -- используем таблицу ipos т.к в нем координаты 1 и 2 dx элемента if (x >= ipos[i].x and x <= ipos[i].x + 64) and (y > ipos[i].y and y < ipos[i].y + 64) then if (not move) then move = true end outputChatBox('Click dx element') else if (move) then move = false end end end end end) Проблема в том что при использование цикла for i = 1, #ipos do -- todo end можно мувнуть только первый dx элемент, я не могу мувнуть второй элемент, а при использование иного цикла for i, coord in pairs(ipos) do -- todo end можно мувнуть только второй dx элемент, я не могу мувнуть первый элемент Но при этом сообщение выводиться нормально... Помогите пожалуйста Link to comment
K1parik Posted September 28, 2015 Share Posted September 28, 2015 Подскажите как округлить число? Что бы без лишних знаков после точки. Например вместо 123.456 было 123 Link to comment
obuhhh Posted September 28, 2015 Share Posted September 28, 2015 Подскажите как округлить число? Что бы без лишних знаков после точки. Например вместо 123.456 было 123 math.ceil(123.45) >>124 math.floor(123.45) >>123 Link to comment
Elengar Posted September 28, 2015 Share Posted September 28, 2015 Подскажите как округлить число? Что бы без лишних знаков после точки. Например вместо 123.456 было 123 math.ceil(123.45) >>124 math.floor(123.45) >>123 obuhhh, тебя питон не кусал? function round(num, idp) local mult = 10^(idp or 0) return math.floor(num * mult + 0.5) / mult end idp - количество знаков после точки Варианты, предложенные obuhhh'ом не правильно работают на отрицательных числах. Link to comment
Kenix Posted September 28, 2015 Share Posted September 28, 2015 Варианты, предложенные obuhhh'ом не правильно работают на отрицательных числах. Немного иначе просто (наоборот), надо было пометить это, вдруг кому эти нюансы будут интересны. print( math.ceil( -10.1 ) ); -- -10 print( math.floor( -10.1 ) ); -- -11 Link to comment
Elengar Posted September 28, 2015 Share Posted September 28, 2015 Варианты, предложенные obuhhh'ом не правильно работают на отрицательных числах. Немного иначе просто (наоборот), надо было пометить это, вдруг кому эти нюансы будут интересны. print( math.ceil( -10.1 ) ); -- -10 print( math.floor( -10.1 ) ); -- -11 С точки зрения поставленного вопроса (отбрасывание не целой части числа, truncate) они работают не правильно. А вообще эти функции работают правильно. Например floor - пол, т.е. округление к меньшему числу. Если представить это на координатной прямой, то меньшее целое лежит всегда левее, вот оно и в случае с отрицательными будет по модулю на еденицу больше. С ceil аналогично в случае положительных чисел. Конечно, можно сделать более просто, (x > 0 and math.ceil(x) or math.floor(x)), чем та функция, которую я дал. Почему я дал именно ту функцию? Ну, а вдруг вопрос не правильно поставлен и ему нужно что-то другое. Link to comment
K1parik Posted September 28, 2015 Share Posted September 28, 2015 С точки зрения поставленного вопроса (отбрасывание не целой части числа, truncate) они работают не правильно. А вообще эти функции работают правильно. Например floor - пол, т.е. округление к меньшему числу. Если представить это на координатной прямой, то меньшее целое лежит всегда левее, вот оно и в случае с отрицательными будет по модулю на еденицу больше. С ceil аналогично в случае положительных чисел. Конечно, можно сделать более просто, (x > 0 and math.ceil(x) or math.floor(x)), чем та функция, которую я дал. Почему я дал именно ту функцию? Ну, а вдруг вопрос не правильно поставлен и ему нужно что-то другое. да мне там не критично +-1 так что вариант вполне подходящий и довольно простой Link to comment
K1parik Posted October 7, 2015 Share Posted October 7, 2015 Еще один вопрос) Есть точка. Ее х,у координаты выпадают случайным образом, z координата берется с помощью getGroundPosition. Как можно проверить находится эта точка под водой или нет? А то получается так, что если игрок в ней спавнится то просто бегает по дну моря/реки. Пробовал после спавна проверять через isElementInWater но она работает только при условии что игрок умер в воде и в ней же появился. Link to comment
DakiLLa Posted October 7, 2015 Share Posted October 7, 2015 (edited) Еще один вопрос)Есть точка. Ее х,у координаты выпадают случайным образом, z координата берется с помощью getGroundPosition. Как можно проверить находится эта точка под водой или нет? А то получается так, что если игрок в ней спавнится то просто бегает по дну моря/реки. Пробовал после спавна проверять через isElementInWater но она работает только при условии что игрок умер в воде и в ней же появился. Не уверен, но можно попробовать testLineAgainstWater. Edited October 8, 2015 by Guest Link to comment
FranklinRoosevelt Posted October 8, 2015 Share Posted October 8, 2015 Еще один вопрос)Есть точка. Ее х,у координаты выпадают случайным образом, z координата берется с помощью getGroundPosition. Как можно проверить находится эта точка под водой или нет? А то получается так, что если игрок в ней спавнится то просто бегает по дну моря/реки. Пробовал после спавна проверять через isElementInWater но она работает только при условии что игрок умер в воде и в ней же появился. Вся стандартная вода размещена на высоте 0, то-есть если твой z < 1 значит это скорее всего вода. Link to comment
TheNormalnij Posted October 8, 2015 Share Posted October 8, 2015 Вся стандартная вода размещена на высоте 0, то-есть если твой z < 1 значит это скорее всего вода. Нет, есть несколько мест, где это правило не применимо, например, карьер. Link to comment
FranklinRoosevelt Posted October 8, 2015 Share Posted October 8, 2015 Нет, есть несколько мест, где это правило не применимо, например, карьер. По этому и скорее всего Можно за фиксить те места. Link to comment
K1parik Posted October 8, 2015 Share Posted October 8, 2015 все же TestLineAgainstWater легче пользовать чем фиксить все места) Link to comment
Easterdie Posted October 10, 2015 Share Posted October 10, 2015 Еще один вопрос)Есть точка. Ее х,у координаты выпадают случайным образом, z координата берется с помощью getGroundPosition. Как можно проверить находится эта точка под водой или нет? А то получается так, что если игрок в ней спавнится то просто бегает по дну моря/реки. Пробовал после спавна проверять через isElementInWater но она работает только при условии что игрок умер в воде и в ней же появился. Вся стандартная вода размещена на высоте 0, то-есть если твой z < 1 значит это скорее всего вода. плотина и куча бассейнов не на нуле Link to comment
Jonathan.P Posted October 24, 2015 Share Posted October 24, 2015 Хочу сделать одометр. Правильно ли будет доверить такие вычисления клиентам? Имею ввиду одометр не на каждого клиента, а на каждую машину. Link to comment
Other Languages Moderators Disinterpreter Posted October 24, 2015 Other Languages Moderators Share Posted October 24, 2015 Хочу сделать одометр. Правильно ли будет доверить такие вычисления клиентам? Имею ввиду одометр не на каждого клиента, а на каждую машину. Как бы вычисления проводи на клиенте, а передавай значения в БД на сервере. Link to comment
~Gangsta~ Posted October 24, 2015 Share Posted October 24, 2015 Всем привет! Как можно определить нагрузку сервера, и скрипт который больше всего нагружает сервер? Link to comment
Kenix Posted October 24, 2015 Share Posted October 24, 2015 Ресурс performancebrowser. https://wiki.multitheftauto.com/index.ph ... ncebrowser Link to comment
K1parik Posted October 30, 2015 Share Posted October 30, 2015 Подскажите как посчитать количество игроков с определенной getElementData? Link to comment
AMARANT Posted October 30, 2015 Share Posted October 30, 2015 Подскажите как посчитать количество игроков с определенной getElementData? local count = 0 for i,player in ipairs(getElementsByType("player")) do if getElementData(player,"yourdata") then count=count+1 end end outputChatBox("Количество игроков с определенной getElementData: "..tostring(count)) Link to comment
K1parik Posted October 31, 2015 Share Posted October 31, 2015 Спасибо. И еще такой вопрос. Если какая проверка что бы определить пробиты колеса у авто или нет? 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