xYaroslavGTx

Members
  • Content Count

    19
  • Joined

  • Last visited

Community Reputation

0 Neutral

About xYaroslavGTx

  • Rank
    Square
  • Birthday December 13

Recent Profile Visitors

769 profile views
  1. Hi all, i needed to be create a camera rotation function, i created something like that: local camX = cctv.camlx - math.cos(localC.angle / cctv.camlx) * 30 local camY = cctv.camly - math.sin(localC.angle / cctv.camly) * 30 setCameraMatrix(cctv.camx,cctv.camy,cctv.camz,camX,camY,cctv.camlz - localC.height,0,localC.fov) cctv.cam* -- camera position cctv.caml* -- camera look position localC.angle -- rotation angle Depending on rotation of the camera, this script is working, or does not work, when you call the camera does not look at the specified coordinates and rotates each time on a different angle in spite of the specified range (from -40 to 40).
  2. https://wiki.multitheftauto.com/wiki/IsTransferBoxActive
  3. Здрасьте, потребовалось мне тут запилить функцию поворота камеры, вышло что-то подобное: local camX = cctv.camlx - math.cos(localC.angle / cctv.camlx) * 30 local camY = cctv.camly - math.sin(localC.angle / cctv.camly) * 30 setCameraMatrix(cctv.camx,cctv.camy,cctv.camz,camX,camY,cctv.camlz - localC.height,0,localC.fov) cctv.cam* -- позиция камеры cctv.caml* -- координаты, на которые смотрит камера localC.angle -- угол, задаваемый для поворота Проблема собственно вот какая: в зависимости от ротации камеры этот скрипт то работает, то не работает, при вызове камера смотрит не на заданные координаты и вращается каждый раз на разный улог не смотря на заданный диапазон (от -40 до 40). Подскажите пожалуйста как это можно решить.
  4. Смотри передается ли параметр eCarRZ при вызове.
  5. Скорее всего игровой режим не запущен, а что касается FadaCamera вот: https://wiki.multitheftauto.com/wiki/FadeCamera
  6. Доброго времени суток, наткнулся в исходнике клиента на скрытый чекбокс позволяющий подгружать измененные файлы игры как в клиентах до 1.5 Скрин: https://pp.userapi.com/c847120/v847120289/ba1f4/ghUFByl0DeM.jpg Собственно вопрос - можно ли восстановить эту функцию? Добавлять требуемый параметр в конфиг пытался, результата нет. Изменение кода настроек тоже ничего не дало.
  7. Пока что решил таким костылем: function checkGUIcall() local var = getElementData(getLocalPlayer(), "PRP_atmuse") if(var == "available") then atmGUI() end end bindKey ( "E", "down", checkGUIcall ) Вопрос только насколько сильно ElementData будет грузить сервер?
  8. Вечер добрый, столкнулся с тем, что иногда после нажатия кнопки закрытия не исчезает GUI. Мышка скрывается а интерфейс остается. Юзаю вот такой костыль: function atmGUI() atmGUIMain = guiCreateStaticImage(0, 0, screenx, screeny, "atm.png", false) exitGUIbtn = guiCreateStaticImage(screenx/1.1955, screeny/1.367, screenx/20.5, screeny/17, "button.png", false, atmGUIMain) showCursor(true) end addEvent("drawATMgui", true) addEventHandler("drawATMgui", localPlayer,atmGUI) addEventHandler("onClientGUIClick", getRootElement(), function() if(source == exitGUIbtn) then guiSetVisible(atmGUIMain, false) destroyElement(atmGUIMain) showCursor(false) end end ) В основном всё работает как надо, но иногда бывают траблы с закрытием. Подскажите пожалуйста как исправить этот косяк.
  9. @Disinterpreter спасибо, теперь разобрался)
  10. Нужно клиент переписывать под GTA, или откатываться на старые версии где была поддержка кастомных файлов игры.
  11. Загружаю страницу через loadBrowserURL( theGUIBrowser, "http://www.site.ru/test.php") Пробовал и без www, и без http. Страница не загружается, проверял через вывод URL, он почему-то становится пустым. Если вставить к примеру youtube.com всё работает прекрасно, а если вставляю ссылку на другие сайты, url просто очищается. Подскажите пожалуйста как это поправить.
  12. Hi all, could you tell me how to make a dynamic installation of interface sizes depending on the size of the user's screen? Code: function guiCreateMainMenu() local sWidth,sHeight = guiGetScreenSize() local localPlayerName = getPlayerName(getLocalPlayer()) mainMenuSound() menu = guiCreateStaticImage( 0, 0, sWidth, sHeight, "img/screen_shadow.png", false ) userImg = guiCreateStaticImage( sWidth/2.8, 0, sWidth/1.5, sHeight/1.5, "img/user.png", false, menu ) menuBg = guiCreateStaticImage( sWidth/7, sHeight/8.07692, sWidth/1.4, sHeight/17, "img/bg.png", false, menu ) menuFg = guiCreateStaticImage( sWidth/7, sHeight/8.07692, sWidth/1.4, sHeight/17, "img/fg.png", false, menu ) usernameLabel = guiCreateLabel( sWidth/2434.78260, sHeight/14000, 1, 1, localPlayerName, true, userImg) --24 символа макс. userNameFont = guiCreateFont( "fonts/calibri.ttf", 16 ) guiSetFont ( usernameLabel, userNameFont ) menuMainLabel = guiCreateLabel( sWidth/8400, sHeight/11666.66666, 1, 1, "*Главное меню*", true, menu) mainMenuFont = guiCreateFont( "fonts/carbon.ttf", 32 ) guiSetFont ( menuMainLabel, mainMenuFont ) carrierBtn = guiCreateLabel( (0.12/1680)*sWidth, 0.341, 1, 1, "КАРЬЕРА", true, menuFg) carrierBtnFont = guiCreateFont( "fonts/calibri.ttf", 15 ) guiSetFont ( carrierBtn, carrierBtnFont ) carrierButton = guiCreateStaticImage( 385, 154, 80, 13, "img/btn.png", false, menu ) statBtn = guiCreateLabel( 0.2, 0.341, 1, 1, "СТАТИСТИКА", true, menuFg) statBtnFont = guiCreateFont( "fonts/calibri.ttf", 15 ) guiSetFont ( statBtn, statBtnFont ) statButton = guiCreateStaticImage( 481, 154, 111, 13, "img/btn.png", false, menu ) achBtn = guiCreateLabel( 0.313, 0.341, 1, 1, "ДОСТИЖЕНИЯ", true, menuFg) achBtnFont = guiCreateFont( "fonts/calibri.ttf", 15 ) guiSetFont ( achBtn, achBtnFont ) achButton = guiCreateStaticImage( 615, 154, 121, 13, "img/btn.png", false, menu ) bestBtn = guiCreateLabel( 0.432, 0.341, 1, 1, "ТОП ЛУЧШИХ ИГРОКОВ", true, menuFg) bestBtnFont = guiCreateFont( "fonts/calibri.ttf", 15 ) guiSetFont ( bestBtn, bestBtnFont ) bestButton = guiCreateStaticImage( 758, 154, 198, 13, "img/btn.png", false, menu ) settingsBtn = guiCreateLabel( 0.616, 0.341, 1, 1, "НАСТРОЙКИ", true, menuFg) settingsBtnFont = guiCreateFont( "fonts/calibri.ttf", 15 ) guiSetFont ( settingsBtn, settingsBtnFont ) settingsButton = guiCreateStaticImage( 980, 154, 101, 13, "img/btn.png", false, menu ) newsBtn = guiCreateLabel( 0.720, 0.341, 1, 1, "НОВОСТИ", true, menuFg) newsBtnFont = guiCreateFont( "fonts/calibri.ttf", 15 ) guiSetFont ( newsBtn, newsBtnFont ) newsButton = guiCreateStaticImage( 1106, 154, 78, 13, "img/btn.png", false, menu ) aboutBtn = guiCreateLabel( 0.810, 0.341, 1, 1, "О СЕРВЕРЕ", true, menuFg) aboutBtnFont = guiCreateFont( "fonts/calibri.ttf", 15 ) guiSetFont ( aboutBtn, aboutBtnFont ) aboutButton = guiCreateStaticImage( 1213, 154, 87, 13, "img/btn.png", false, menu ) showCursor(true) showChat(false) setPlayerHudComponentVisible("all", false) end
  13. В принципе вот этот костыль sHeight/11666.66666 с картинками прокатывает, а вот что делать с текстом я не знаю, он не меняет размеров тем самым просто сливается в одну строчку на низких разрешениях экранов.
  14. Доброго времени суток. Столкнулся с такой проблемой как динамическое изменение размеров интерфейса под разрешение экрана игрока. Я накидал GUI под своё разрешение экрана т.е. в таком виде: guiCreateLabel( 0.2, 0.341, 1, 1, "СТАТИСТИКА", true, menuFg) statBtnFont = guiCreateFont( "fonts/calibri.ttf", 15 ) guiSetFont ( statBtn, statBtnFont ) Вообще это всё выглядит вот так: Скриншот Код клиента целиком: function guiCreateMainMenu() local sWidth,sHeight = guiGetScreenSize() local localPlayerName = getPlayerName(getLocalPlayer()) mainMenuSound() menu = guiCreateStaticImage( 0, 0, sWidth, sHeight, "img/screen_shadow.png", false ) userImg = guiCreateStaticImage( sWidth/2.8, 0, sWidth/1.5, sHeight/1.5, "img/user.png", false, menu ) menuBg = guiCreateStaticImage( sWidth/7, sHeight/8.07692, sWidth/1.4, sHeight/17, "img/bg.png", false, menu ) menuFg = guiCreateStaticImage( sWidth/7, sHeight/8.07692, sWidth/1.4, sHeight/17, "img/fg.png", false, menu ) usernameLabel = guiCreateLabel( sWidth/2434.78260, sHeight/14000, 1, 1, localPlayerName, true, userImg) --24 символа макс. userNameFont = guiCreateFont( "fonts/calibri.ttf", 16 ) guiSetFont ( usernameLabel, userNameFont ) menuMainLabel = guiCreateLabel( sWidth/8400, sHeight/11666.66666, 1, 1, "*Главное меню*", true, menu) mainMenuFont = guiCreateFont( "fonts/carbon.ttf", 32 ) guiSetFont ( menuMainLabel, mainMenuFont ) carrierBtn = guiCreateLabel( (0.12/1680)*sWidth, 0.341, 1, 1, "КАРЬЕРА", true, menuFg) carrierBtnFont = guiCreateFont( "fonts/calibri.ttf", 15 ) guiSetFont ( carrierBtn, carrierBtnFont ) carrierButton = guiCreateStaticImage( 385, 154, 80, 13, "img/btn.png", false, menu ) statBtn = guiCreateLabel( 0.2, 0.341, 1, 1, "СТАТИСТИКА", true, menuFg) statBtnFont = guiCreateFont( "fonts/calibri.ttf", 15 ) guiSetFont ( statBtn, statBtnFont ) statButton = guiCreateStaticImage( 481, 154, 111, 13, "img/btn.png", false, menu ) achBtn = guiCreateLabel( 0.313, 0.341, 1, 1, "ДОСТИЖЕНИЯ", true, menuFg) achBtnFont = guiCreateFont( "fonts/calibri.ttf", 15 ) guiSetFont ( achBtn, achBtnFont ) achButton = guiCreateStaticImage( 615, 154, 121, 13, "img/btn.png", false, menu ) bestBtn = guiCreateLabel( 0.432, 0.341, 1, 1, "ТОП ЛУЧШИХ ИГРОКОВ", true, menuFg) bestBtnFont = guiCreateFont( "fonts/calibri.ttf", 15 ) guiSetFont ( bestBtn, bestBtnFont ) bestButton = guiCreateStaticImage( 758, 154, 198, 13, "img/btn.png", false, menu ) settingsBtn = guiCreateLabel( 0.616, 0.341, 1, 1, "НАСТРОЙКИ", true, menuFg) settingsBtnFont = guiCreateFont( "fonts/calibri.ttf", 15 ) guiSetFont ( settingsBtn, settingsBtnFont ) settingsButton = guiCreateStaticImage( 980, 154, 101, 13, "img/btn.png", false, menu ) newsBtn = guiCreateLabel( 0.720, 0.341, 1, 1, "НОВОСТИ", true, menuFg) newsBtnFont = guiCreateFont( "fonts/calibri.ttf", 15 ) guiSetFont ( newsBtn, newsBtnFont ) newsButton = guiCreateStaticImage( 1106, 154, 78, 13, "img/btn.png", false, menu ) aboutBtn = guiCreateLabel( 0.810, 0.341, 1, 1, "О СЕРВЕРЕ", true, menuFg) aboutBtnFont = guiCreateFont( "fonts/calibri.ttf", 15 ) guiSetFont ( aboutBtn, aboutBtnFont ) aboutButton = guiCreateStaticImage( 1213, 154, 87, 13, "img/btn.png", false, menu ) showCursor(true) showChat(false) setPlayerHudComponentVisible("all", false) end P.S. В начале уже пытался поправить эту проблему, но получилось мягко говоря не очень. Подскажите пожалуйста как оптимизировать меню без танцев с подбором новых значений?
  15. День добрый,столкнулся с такой проблемкой: Выполняю запрос на получение данных из БД function authUserDB(userName, userPassword, thePlayer) dbExec( bd,"SELECT `password` FROM Players WHERE nick='??'",userName) local Players = dbPoll(dbQuery(bd, "SELECT * FROM `Players`"), -1) for Index, PlayerData in ipairs(Players) do if userName == userName and userPassword == PlayerData.password then if (client) then spawnPlayer(client, 1721.7834, -1927.0063, 13.5672) setPlayerSkin(client,0) fadeCamera(client, true) setCameraTarget(client, client) triggerClientEvent(getRootElement(),"hideLogin",client) dbExec( bd,"SELECT `id` FROM Players WHERE nick='??'",client) local Players = dbPoll(dbQuery(bd, "SELECT * FROM `Players`"), -1) for Index, PlayerData in ipairs(Players) do setElementData ( source, "ID", PlayerData.id ) outputChatBox("С возвращением на на ****** RP, "..userName.."! Ваш ID "..PlayerData.id..".", client) end end else outputChatBox("Неправильные логин и пароль. Пожалуйста, переподсоединитесь и попробуйте еще раз.",client) end end end addEvent("submitLogin",true) addEventHandler("submitLogin",root,authUserDB) Дело в том,что ответ приходит несколько раз,и количество повторов зависит от количества записей в БД. Подскажите пожалуйста где я накосячил)