Jump to content

TheNormalnij

MTA Contributors
  • Posts

    684
  • Joined

  • Last visited

  • Days Won

    4

Everything posted by TheNormalnij

  1. fetchRemote - Очень круто, наверное, уже можно будет создать собственный интернет-браузер в МТА. Bitwise operators - сделай свою нинтендо хД Хорошо, что баги исправляются. Не хватает пока, наверное, поддержки всех текстур в engineImportTXD и полных изменений хардной информации объектов Нестабильность engine функций, из-за которых может быть невозможным использование аудио функций ( ошибка вылета = BASS ERROR 0 in PlayStream ) В основном все очень Атлична
  2. Спасибо, был уверен, что есть что-то хорошее, удобное.
  3. Хмм... Народ, а как вы решаете проблему написания текстов в командах, кроме как function callToPlayerPager( source, commandname, ... ) local Ttext = { ... } local text for _, string in ipairs ( Ttext ) do text = text .. ' ' .. string end --body end ?
  4. обработка на стороне сервера события onVehicleDamage
  5. это было бы лишком легко для вопроса, тут надо, чтобы автор разъяснил понятнее, что ему нужно...
  6. Вроде б все понятно, но не хватает что ли вызова с помощью : типа MyTable:nulled() И немного жизненных примеров, хотя бы на словах ) спасибо
  7. ВСЕ клиентские события начинаются на onClient... игрок-элемент это hitElement, только надо будет отфильтровать другие элементы и function( hitElement, matchingDimension ) в таких случаях тоже обзывается
  8. я что-то такое делал, в личку скайп скинь, если хочешь.
  9. Посмотри как ты юзаешь таблицу plTable
  10. https://forum.multitheftauto.com/viewtopic.php?f=91&t=22831 Но ты не добьешься такого же результата, как при ручном вычислении размеров.
  11. onPlayerChangeNick Пример номер один. Если надо запретить на акк, то setAccountData юзать надо
  12. всем спасибо function a_start() car = getPedOccupiedVehicle( localPlayer ) if car then local x, y, z = getElementPosition( car ) x2, y2, z2, tx, ty, tz, roll, fov = getCameraMatrix() offX, offY, offZ = -x + x2, -y + y2, -z + z2 tx, ty, tz = -x + tx, -y + ty, -z + tz addEventHandler( "onClientPreRender", root, attachCam ) end end function attachCam() if not car then return; end local m = getElementMatrix ( car ) -- Get the matrix local x = offX * m[1][1] + offY * m[2][1] + offZ * m[3][1] + m[4][1] -- Apply transform local y = offX * m[1][2] + offY * m[2][2] + offZ * m[3][2] + m[4][2] local z = offX * m[1][3] + offY * m[2][3] + offZ * m[3][3] + m[4][3] local x3 = tx * m[1][1] + ty * m[2][1] + tz * m[3][1] + m[4][1] -- Apply transform local y3 = tx * m[1][2] + ty * m[2][2] + tz * m[3][2] + m[4][2] local z3 = tx * m[1][3] + ty * m[2][3] + tz * m[3][3] + m[4][3] setCameraMatrix( x, y, z ,x3, y3, z3, 0, 0 ) end function fixCar() -- ленивое решение проблемы неправильных мест подключения камеры car = getPedOccupiedVehicle( localPlayer ) if car then setElementRotation( car, 0, 0, 0 ) end end
  13. спасибо, попытаюсь, если получится, отпишусь. Я понял и назначил их сам, но onCleintCursorMove работает правильно на gui элементах. И в общем то не приводило к результату. PS может кто знает ссылку, где можно почитать о матрице?
  14. Представь, что камера находится на крыле авто / фаре ( ставит сам игрок ). Она должна вести себя как, например, стандартная камера с бампера. Все просто звучит: получение разницы позиций, получение угла, расчеты, установка камеры. Расчеты, блин, тут не правильные. Если все по центру было, то все значения находились бы элементарно. С десяток способов уже перепробовал, тут надо полный математический подход.
  15. Kernell, код OnClientCursorMove не приводит к результату и нету зависимости от поворота авто. ( синтаксис крут, кое что подлвачу ) Flaker, да, я знаю об погрешностях и они компенсируют друг друга в коде rz - rotalionxy Игроку нужно смотреть не на авто, а в туже сторону относительно авто, что и было. math.cos( math.rad( rz - rotalionxy )) * distancexy тут бред. Бо рассчитывается все относительно не первой позиции авто. x - ( px * math.cos( math.rad( rz - rotalionxy )) ), y - ( py * math.sin( math.rad( rz - rotalionxy )) ) Но и так тоже не раотает
  16. Не получается прицепить камеру к объекту. С помощью функции игрок меняет положение камеры, после этого надо то камеру зафиксировать к авто. Проблема в том, что положение камеры сбивается при разных моих методах расчета ): . function a_start() car = getPedOccupiedVehicle( localPlayer ) -- к этой машине надо прицепить if car then -- проверяем существование машины local x, y, z = getElementPosition( car ) -- получаем позицию авто x2, y2, z2, tx, ty, tz, roll, fov = getCameraMatrix() -- получаем первоначальные настройки камеры px, py, pz = x - x2, y - y2, z - z2 -- вычисляем отклонения distancexy = math.sqrt ( px^2 + py^2 ) -- вычисляем расстояние до элемента по одной оси null, null, rotalionxy = getElementRotation( car ) -- ( пока только по одной оси ) получаем угол поворота авто addEventHandler( "onClientPreRender", root, attachCam ) -- запускаем обработчик end end function attachCam() if car then -- проверяем существование авто local x, y, z = getElementPosition( car ) -- получаем координаты local rx, ry, rz = getElementRotation( car ) -- получаем углы наклона local px = math.cos( math.rad( rz - rotalionxy )) * distancexy -- вычисляем отклонения ERROR? local py= math.sin( math.rad( rz - rotalionxy ) ) * distancexy -- и тут setCameraMatrix( x + px, y + py, z - pz -- устанавливаем позиции ERROR? ,math.cos( math.rad( rz + 90 ) ) + x - px, math.sin( math.rad( rz + 90 ) ) + y - py, -- и точку просмотра ERROR? math.sin( math.rad( rx ) ) + z - pz, ry, 0 ) end end
  17. Sorry, если слишком грубо вышло. Хмм... outputChatBox ( "Едем?", 255, 0, 0 ) Получилось, что в серверном скрипте клиентский синтаксис. Даже если это работает, то отправляет всем, что, наверное, не нужно тебе. outputChatBox ( "Едем?", ==> thePlayer <==, 255, 0, 0 )
  18. ну, нафигачил. function elementClicked( Button, State, ==> ThePlayer <== ) sourse - это источник события, в данном случае это элеиент на который клиннул игрок. local ob = createPed ( 120, 2823.5195,972.787, 10.75 ) если ты хотел, чтобы просматривался клик по педу, то надо было педа до этого кода создать PS не в локальную переменную, если он создается в функции. if getElementType ( clickedElement ) == "ob" then ну, даже если ты хотел проверить тот ли это элемент, то надо было if source == ob then или ты хотел проверить, что это объект if getElementType ( source) == "object" then ну и разные if можно в один всунуть
  19. у тебя в коде guiSetVisible(createGuiWeaponShop, false), первый аргумент - функция. Тебе человек подсказал, что первым аргументом должен быть элемент window
  20. triggerServerEvent("onBankWithdraw", localPlayer, value) второй аргумент
  21. Наверное, половина русских надписей не влезла.
×
×
  • Create New...