Hoffmann Posted November 25, 2018 Share Posted November 25, 2018 On 22/11/2018 at 18:03, KovornaPLAY said: Почему у меня чёрный экран при заходе на свой сервак? Я знаю, что куда-то надо ввести FadeCamera(player) = false, но вот только куда? Если уж на то пошло, то fadeCamera(player, true) в серверном скрипте. Если сервер freeroam, то попробуй запустить ресурс play, в котором прописаны спавны. Link to comment
Kurljandsky Posted December 1, 2018 Share Posted December 1, 2018 Аве, идущий на смерть приветствует Вас. Столкнулся с проблемой прорисовки объектов при создании карты. Большие объекты прописаны вручную, мелкие разбросаны через map editor, но на сервере получается чуча буча из пропадающих или поворачивающихся вместе с камерой объектов которых даже в помине нет рядом или багование стандартных незатронутых объектов. Как можно это поправить? Link to comment
Erema93 Posted January 4, 2019 Share Posted January 4, 2019 Всех приветствую. Нужна помощь: есть логин панель, надо 1) из одной строки "Логин" сделать две строки для ввода ("Имя" и "Фамилия") и чтобы было вводить можно было только с заглавной буквы и только буквы (пример "Ivan_Petrov") 2) нужно сделать, чтобы ник игрока брался не из настроек, а который он ввёл при регистрации. Server function PlayerLogin(username,password,checksave) if not (username == "") then if not (password == "") then local account = getAccount ( username, password ) if ( account ~= false ) then logIn(source, account, password) triggerClientEvent (source,"hideLoginWindow",getRootElement()) if checksave == true then triggerClientEvent(source,"saveLoginToXML",getRootElement(),username,password) else triggerClientEvent(source,"resetSaveXML",getRootElement(),username,password) end else triggerClientEvent(source,"set_warning_text",getRootElement(),"Login","Wrong username and/or password!") end else triggerClientEvent(source,"set_warning_text",getRootElement(),"Login","Please enter your password!") end else triggerClientEvent(source,"set_warning_text",getRootElement(),"Login","Please enter your username!") end end addEvent("onRequestLogin",true) addEventHandler("onRequestLogin",getRootElement(),PlayerLogin) function registerPlayer(username,password,passwordConfirm) if not (username == "") then if not (password == "") then if not (passwordConfirm == "") then if password == passwordConfirm then local account = getAccount (username,password) if (account == false) then local accountAdded = addAccount(tostring(username),tostring(password)) if (accountAdded) then outputChatBox ("#FF0000* #00FF00Вы успешно зарегистрировались! [Username: #FFFFFF" .. username .. " #00FF00| Password: #FFFFFF" .. password .. "#00FF00 ]",source,255,255,255,true ) else triggerClientEvent(source,"set_warning_text",getRootElement(),"Register","An unknown error has occured! Please choose a different username/password and try again.") end else triggerClientEvent(source,"set_warning_text",getRootElement(),"Register","An account with this username already exists!") end else triggerClientEvent(source,"set_warning_text",getRootElement(),"Register","Passwords do not match!") end else triggerClientEvent(source,"set_warning_text",getRootElement(),"Register","Please confirm your password!") end else triggerClientEvent(source,"set_warning_text",getRootElement(),"Register","Please enter a password!") end else triggerClientEvent(source,"set_warning_text",getRootElement(),"Register","Please enter a username you would like to register with!") end end addEvent("onRequestRegister",true) addEventHandler("onRequestRegister",getRootElement(),registerPlayer) Client wdwLogin_Pannel = {} tabPannel_Main = {} tab_Login = {} tab_Register = {} --Settings blackLoginScreen = true --True/false Black screen, while player login... blackScreenTime = 5 --Time to complete disappearance of the black screen in seconds. GuestEnable = true --Can a Player play as Guest, or no. [true/false] function open_log_reg_pannel() if not(isElement(wdwLogin_Pannel)) then if blackLoginScreen == true then fadeCamera(false,0,0,0,0) end local sWidth,sHeight = guiGetScreenSize() -- The variables local Width,Height = 473,284 --Ширина, Высота окна local X = (sWidth/2) - (Width/2) --Получение центра по X (По ширине экрана) local Y = (sHeight/2) - (Height/2) --Получение центра по Y (Высоте экрана) wdwLogin_Pannel = guiCreateWindow(X,Y,Width,Height,"EBASH_BASS_V_TAZ",false) guiWindowSetSizable(wdwLogin_Pannel,false) tabPannel_Main = guiCreateTabPanel(9,23,455,251,false,wdwLogin_Pannel) tab_Login = guiCreateTab("Вход",tabPannel_Main) lbl_Login = guiCreateLabel(103,72,42,19,"Логин:",false,tab_Login) guiLabelSetVerticalAlign(lbl_Login,"center") guiLabelSetHorizontalAlign(lbl_Login,"right",false) guiSetFont(lbl_Login,"default-bold-small") edit_Login = guiCreateEdit(156,72,169,23,"",false,tab_Login) --Поле ввода логина edit_password = guiCreateEdit(156,106,169,23,"",false,tab_Login) --Поле ввода пароля guiEditSetMaxLength ( edit_Login,25) guiEditSetMaxLength ( edit_password,25) guiEditSetMasked ( edit_password, true ) lbl_Password = guiCreateLabel(48,106,96,19,"Пароль:",false,tab_Login) guiLabelSetVerticalAlign(lbl_Password,"center") guiLabelSetHorizontalAlign(lbl_Password,"right",false) guiSetFont(lbl_Password,"default-bold-small") lbl_top_info = guiCreateLabel(109,6,244,35,"Пожалуйста, напишите имя пользователя и пароль.",false,tab_Login) guiLabelSetColor(lbl_top_info,68,255,134) guiLabelSetVerticalAlign(lbl_top_info,"center") guiLabelSetHorizontalAlign(lbl_top_info,"center",false) lbl_about_legth = guiCreateLabel(142,42,184,18,"Максимум 25 символов.",false,tab_Login) guiLabelSetColor(lbl_about_legth,253,255,68) guiLabelSetVerticalAlign(lbl_about_legth,"center") guiLabelSetHorizontalAlign(lbl_about_legth,"center",false) checkbox_save = guiCreateCheckBox(329,110,100,20,"(Запомнить)",false,false,tab_Login) guiSetFont(checkbox_save,"default-small") btn_Login = guiCreateButton(164,162,147,41,"Вход",false,tab_Login) guiSetFont(btn_Login,"default-bold-small") login_tab_error_msg = guiCreateLabel(31,131,419,25,"Error_login_tab",false,tab_Login) guiLabelSetColor(login_tab_error_msg,255,0,0) guiLabelSetVerticalAlign(login_tab_error_msg,"center") guiLabelSetHorizontalAlign(login_tab_error_msg,"center",false) guiSetFont(login_tab_error_msg,"default-bold-small") tab_Register = guiCreateTab("Регистрация",tabPannel_Main) lbl_account_name = guiCreateLabel(43,39,119,21,"Логин:",false,tab_Register) guiLabelSetVerticalAlign(lbl_account_name,"center") guiLabelSetHorizontalAlign(lbl_account_name,"right",false) guiSetFont(lbl_account_name,"default-bold-small") lbl_reg_top_info = guiCreateLabel(66,5,364,31,"Пожалуйста, заполните все поля! (Не используйте \"!@#$\"%'^&*()\")",false,tab_Register) guiLabelSetColor(lbl_reg_top_info,255,234,55) guiLabelSetVerticalAlign(lbl_reg_top_info,"center") guiLabelSetHorizontalAlign(lbl_reg_top_info,"center",false) edit_account_name = guiCreateEdit(172,40,176,23,"",false,tab_Register) guiEditSetMaxLength ( edit_account_name,25) lbl__reg_tab_password = guiCreateLabel(43,71,119,21,"Пароль:",false,tab_Register) guiLabelSetVerticalAlign(lbl__reg_tab_password,"center") guiLabelSetHorizontalAlign(lbl__reg_tab_password,"right",false) guiSetFont(lbl__reg_tab_password,"default-bold-small") edit__reg_tab_password = guiCreateEdit(172,71,176,23,"",false,tab_Register) guiEditSetMaxLength ( edit__reg_tab_password,25) edit__reg_tab_Repassword = guiCreateEdit(172,102,176,23,"",false,tab_Register) guiEditSetMaxLength ( edit__reg_tab_Repassword,25) lvl_reg_tab_Repassword = guiCreateLabel(43,102,119,21,"Повторите пароль:",false,tab_Register) guiLabelSetVerticalAlign(lvl_reg_tab_Repassword,"center") guiLabelSetHorizontalAlign(lvl_reg_tab_Repassword,"right",false) guiSetFont(lvl_reg_tab_Repassword,"default-bold-small") btn_reg_tab_register = guiCreateButton(153,161,174,42,"Зарегистрироваться!",false,tab_Register) guiSetFont(btn_reg_tab_register,"default-bold-small") reg_tab_error_msg = guiCreateLabel(66,129,364,31,"Error_reg_ttab",false,tab_Register) guiLabelSetColor(reg_tab_error_msg,255,20,0) guiLabelSetVerticalAlign(reg_tab_error_msg,"center") guiLabelSetHorizontalAlign(reg_tab_error_msg,"center",false) guiSetFont(reg_tab_error_msg,"default-bold-small") guiSetVisible(wdwLogin_Pannel,true) --guiSetInputEnabled(true) showCursor(true) --Изменение надписей: guiSetText(reg_tab_error_msg, "") --Поле ошибки в Reg табе guiSetText(login_tab_error_msg, "") --Поле ошибки в Login табе local username, password = loadLoginFromXML() if not( username == "" or password == "") then guiCheckBoxSetSelected ( checkbox_save, true ) guiSetText ( edit_Login, tostring(username)) guiSetText ( edit_password, tostring(password)) else guiCheckBoxSetSelected ( checkbox_save, false ) guiSetText ( edit_Login, tostring(username)) guiSetText ( edit_password, tostring(password)) end --Эвенты addEventHandler("onClientGUIClick",btn_Login,onClickBtnLogin) addEventHandler("onClientGUIClick",btn_reg_tab_register,onClickBtnRegister) if GuestEnable == true then addEventHandler("onClientGUIClick",btnGuest,onClickGuest) end --else --destroyElement(wdwLogin_Pannel) --guiSetInputEnabled(false) --wdwLogin_Pannel = nil --showCursor(false) end end function start_cl_resource() --При старте open_log_reg_pannel() end addEventHandler("onClientResourceStart",getResourceRootElement(getThisResource()),start_cl_resource) function loadLoginFromXML() --Загрузка логина и пароля из XML local xml_save_log_File = xmlLoadFile ("files/xml/userdata.xml") if not xml_save_log_File then xml_save_log_File = xmlCreateFile("files/xml/userdata.xml", "login") end local usernameNode = xmlFindChild (xml_save_log_File, "username", 0) local passwordNode = xmlFindChild (xml_save_log_File, "password", 0) if usernameNode and passwordNode then return xmlNodeGetValue(usernameNode), xmlNodeGetValue(passwordNode) else return "", "" end xmlUnloadFile ( xml_save_log_File ) end function saveLoginToXML(username, password) --Сохрание логина и пароля в XML local xml_save_log_File = xmlLoadFile ("files/xml/userdata.xml") if not xml_save_log_File then xml_save_log_File = xmlCreateFile("files/xml/userdata.xml", "login") end if (username ~= "") then local usernameNode = xmlFindChild (xml_save_log_File, "username", 0) if not usernameNode then usernameNode = xmlCreateChild(xml_save_log_File, "username") end xmlNodeSetValue (usernameNode, tostring(username)) end if (password ~= "") then local passwordNode = xmlFindChild (xml_save_log_File, "password", 0) if not passwordNode then passwordNode = xmlCreateChild(xml_save_log_File, "password") end xmlNodeSetValue (passwordNode, tostring(password)) end xmlSaveFile(xml_save_log_File) xmlUnloadFile (xml_save_log_File) end addEvent("saveLoginToXML", true) addEventHandler("saveLoginToXML", getRootElement(), saveLoginToXML) function resetSaveXML() --Сохрание логина и пароля в XML local xml_save_log_File = xmlLoadFile ("files/xml/userdata.xml") if not xml_save_log_File then xml_save_log_File = xmlCreateFile("files/xml/userdata.xml", "login") end if (username ~= "") then local usernameNode = xmlFindChild (xml_save_log_File, "username", 0) if not usernameNode then usernameNode = xmlCreateChild(xml_save_log_File, "username") end end if (password ~= "") then local passwordNode = xmlFindChild (xml_save_log_File, "password", 0) if not passwordNode then passwordNode = xmlCreateChild(xml_save_log_File, "password") end xmlNodeSetValue (passwordNode, "") end xmlSaveFile(xml_save_log_File) xmlUnloadFile (xml_save_log_File) end addEvent("resetSaveXML", true) addEventHandler("resetSaveXML", getRootElement(), resetSaveXML) function onClickBtnLogin(button,state) --При нажатии на кнопку Login if(button == "left" and state == "up") then if (source == btn_Login) then username = guiGetText(edit_Login) password = guiGetText(edit_password) if guiCheckBoxGetSelected ( checkbox_save ) == true then checksave = true else checksave = false end triggerServerEvent("onRequestLogin",getLocalPlayer(),username,password,checksave) end end end function onClickBtnRegister(button,state) --При нажатии на кнопку Register and Cofirm if(button == "left" and state == "up") then if (source == btn_reg_tab_register) then username = guiGetText(edit_account_name) password = guiGetText(edit__reg_tab_password) passwordConfirm = guiGetText(edit__reg_tab_Repassword) triggerServerEvent("onRequestRegister",getLocalPlayer(),username,password,passwordConfirm) end end end function Error_msg(Tab, Text) if Tab == "Login" then guiSetText(login_tab_error_msg, tostring(Text)) setTimer(function() guiSetText(login_tab_error_msg, "") end,3000,1) elseif Tab == "Register" then guiSetText(reg_tab_error_msg, tostring(Text)) setTimer(function() guiSetText(reg_tab_error_msg, "") end,3000,1) end end addEvent("set_warning_text",true) addEventHandler("set_warning_text",getRootElement(),Error_msg) function onClickGuest(button,state) if(button == "left" and state == "up") then if (source == btnGuest) then guiSetVisible(wdwLogin_Pannel, false) guiSetInputEnabled(false) showCursor(false) if blackLoginScreen == true then fadeCamera(true,blackScreenTime) end end end end function hideLoginWindow() --Функция закрытия логин панели guiSetInputEnabled(false) guiSetVisible(wdwLogin_Pannel, false) destroyElement(wdwLogin_Pannel) wdwLogin_Pannel = nil showCursor(false) removeEventHandler("onClientGUIClick",btn_Login,onClickBtnLogin) if GuestEnable == true then removeEventHandler("onClientGUIClick",btnGuest,onClickGuest) end if blackLoginScreen == true then fadeCamera(true,blackScreenTime) end end addEvent("hideLoginWindow", true) addEventHandler("hideLoginWindow", getRootElement(), hideLoginWindow) Link to comment
Krymmovv Posted February 8, 2019 Share Posted February 8, 2019 [19-02-08 19:42:17] WARNING: editor_main/server/saveloadtest_server.lua:323: Bad argument @ 'triggerClientEvent' [Expected string at argument 1, got nil] [19-02-08 19:43:17] WARNING: editor_gui/server/guiserverlink.lua:36: Bad argument @ 'triggerClientEvent' [Expected string at argument 1, got nil] Кто может помочь с этими проблемами? Link to comment
Easterdie Posted February 9, 2019 Share Posted February 9, 2019 в выполняемой задаче ожидается текст в перовом аргументе, а там ничего нет Link to comment
miqadze Posted February 12, 2019 Share Posted February 12, 2019 Здрасте, возможно ли какнибудь установить готовую карту например new york-а или москвы которые преднозначены для GTA SAN ANDREAS и если возможно как это пройсходит? Link to comment
TheNormalnij Posted February 25, 2019 Share Posted February 25, 2019 @miqadze, scene2res и его аналоги. Или же создание своей сорки мта, с отклченным AC на gta3.img Link to comment
miqadze Posted March 21, 2019 Share Posted March 21, 2019 On 25/02/2019 at 22:08, TheNormalnij said: @miqadze, scene2res и его аналоги. Или же создание своей сорки мта, с отклченным AC на gta3.img можно ссылку на документацию? про второй вариант Link to comment
KatastrofaS Posted July 4, 2019 Share Posted July 4, 2019 Как узнать, какой текстурой покрыта дорога под колёсами машины? Или в более общем виде, какой тип поверхности: бетон, песок, трава? Link to comment
K1parik Posted July 5, 2019 Share Posted July 5, 2019 On 04/07/2019 at 15:19, KatastrofaS said: Как узнать, какой текстурой покрыта дорога под колёсами машины? Или в более общем виде, какой тип поверхности: бетон, песок, трава? https://wiki.multitheftauto.com/wiki/ProcessLineOfSight material: an integer representing the GTASA material ID of the surface hit when applicable (world, objects) Link to comment
KatastrofaS Posted July 6, 2019 Share Posted July 6, 2019 2 K1parik Спасибо! Если кому надо, показываю, что у меня получилось: <script src="cscript.Lua" type="client" /> local material = "???" setTimer(function() local cx,cy,cz = getElementPosition(localPlayer) -- get position local gz = getGroundPosition(cx,cy,cz) - 0.001 -- down z local hit,_,_,_,_,_,_,_,surface = processLineOfSight(cx,cy,cz,cx,cy,gz,true,false,false,true) -- get material if hit then material = surface else material = "---" end end,200,0) local sx,sy = guiGetScreenSize() addEventHandler("onClientRender",root, -- display function() dxDrawText(material,sx-94,2,sx-4,12,tocolor(0,0,0,255),3,"arial","right") dxDrawText(material,sx-96,0,sx-6,10,tocolor(255,128,255,255),3,"arial","right") end) Link to comment
Dexlord Posted July 7, 2019 Share Posted July 7, 2019 local models = { ["redhex_oneside"] = 7919 ["redhex_oneside2"] = 7920 ["redhex_oneside3"] = 7921 ["sidemosque"] = 7922 ["mural11b"] = 7923 ["mural12"] = 7924 ["mural13"] = 7925 ["wall_new"] = 7926 ["wall_new_pillar"] = 7927 ["wall_new_stena"] = 7929 ["opx2_side_curve1"] = 7940 ["opx2_side_drvway"] = 7945 ["opx2_side1"] = 7947 ["opx2_side2"] = 7950 ["opx2_side3"] = 7938 ["gate4_part1"] = 7952 ["gate4_part2"] = 7953 ["road_alpha1"] = 7939 } addEventHandler("onClientResourceStart",root,function() for i,v in pairs(models) do local tex = engineLoadTXD("models/"..i..".txd", v) engineImportTXD(tex, v) local mod = engineLoadDFF("models/"..i..".dff", v) engineReplaceModel(mod, v) local col = engineLoadCOL("models/"..i..".col", v) engineReplaceCOL(col, v) end end) Хелп, не могу понять в чем прикол, пытаюсь сделать более короткий код для замены моделей, но чет не работает. Link to comment
K1parik Posted July 7, 2019 Share Posted July 7, 2019 (edited) я не уверен, но на сколько я помню цикл с таблицей в которой индексы не числовые не работает. Edited July 7, 2019 by K1parik Link to comment
Scripting Moderators Sarrum Posted July 7, 2019 Scripting Moderators Share Posted July 7, 2019 @Dexlord, элементы таблицы необходимо отделять друг от друга запятыми. P.S. Разумнее использовать resourceRoot, а не root, дабы не было повторной замены при старте других ресурсов. Link to comment
lodka Posted July 16, 2019 Share Posted July 16, 2019 Ребята, не могу понять, что за проблема.Установил ГТА, накатил МТА.В итоге не пускает на сервер с ошибкой VF 2 2800007(что-то такое).При том все что можно было попробывать, попробывал.Хелпуйте, иначе загнусь. Link to comment
Scripting Moderators Sarrum Posted July 17, 2019 Scripting Moderators Share Posted July 17, 2019 12 hours ago, lodka said: Ребята, не могу понять, что за проблема.Установил ГТА, накатил МТА.В итоге не пускает на сервер с ошибкой VF 2 2800007(что-то такое).При том все что можно было попробывать, попробывал.Хелпуйте, иначе загнусь. Привет. Код точно этот? А так, скорее всего вирусная активность на ПК. Рекомендую выполнить полное сканирование с помощью Malwarebytes. Link to comment
K1parik Posted July 17, 2019 Share Posted July 17, 2019 12 hours ago, lodka said: Ребята, не могу понять, что за проблема.Установил ГТА, накатил МТА.В итоге не пускает на сервер с ошибкой VF 2 2800007(что-то такое).При том все что можно было попробывать, попробывал.Хелпуйте, иначе загнусь. Link to comment
KatastrofaS Posted January 12, 2020 Share Posted January 12, 2020 Как получить элемент из карты на стороне клиента? Фрагмент карты: <marker id="marker (1)" posX="154" posY="-1952" posZ="48" > <vehicle id="veh (Enforcer) (1)" model="427" posX="-1635.64" posY="678.53" posZ="7.3" rotZ="300" /> </marker> На стороне сервера без проблем получаю таблицу машинок: addEventHandler("onResourceStart",resourceRoot, function() local vhs = getElementsByType("vehicle") outputChatBox("vehicles: " .. #vhs) end) А на стороне клиента #vhs = 0 Link to comment
Scripting Moderators Sarrum Posted January 14, 2020 Scripting Moderators Share Posted January 14, 2020 Если транспорт создан на сервере, он в любом случае должен быть доступен с помощью getElementsByType на клиенте. Возможно проблема в другом месте. Link to comment
MRmihailZH Posted February 1, 2020 Share Posted February 1, 2020 У меня вопрос. Можно ли доверять https://luac.multitheftauto.com/ ? То есть могут ли люди декомпилировать мой ресурс? Link to comment
Other Languages Moderators Disinterpreter Posted February 1, 2020 Other Languages Moderators Share Posted February 1, 2020 4 hours ago, MRmihailZH said: У меня вопрос. Можно ли доверять https://luac.multitheftauto.com/ ? То есть могут ли люди декомпилировать мой ресурс? Есть слухи, что на старом обфускаторе 1.5.2-9.07903 потуги были. На новом, всё надежно. Link to comment
Voter Posted July 18, 2020 Share Posted July 18, 2020 Как экспортировать "ООП-функции"? Например, MyClass:new() Добавляю в meta.xml: <export function="MyClass:new"/> При вызове через exports.MyClass:new() выдает ошибку "call: failed to call 'MyClass:new' [string "?"]" При вызове через exports.MyClass:MyClass:new() выдает ошибку "function arguments expected near ':' " Link to comment
Voter Posted July 22, 2020 Share Posted July 22, 2020 И еще вопрос, как делать адаптивный gui? (dxDrawRectangle) Link to comment
TheNormalnij Posted July 26, 2020 Share Posted July 26, 2020 @Voter https://github.com/TheNormalnij/MTA-RI при вдумчивом исспользовании можно добится некоторой работе с классами. guiGetScreenSize Link to comment
MRmihailZH Posted August 25, 2020 Share Posted August 25, 2020 У меня есть картинка .png формата, в котором есть черный прямоугольник. Как можно узнать координаты черного прямоугольника и его размеры относительно монитора? И можно ли с помощью шейдера будет убрать этот черный прямоугольника. Заранее благодарю за ответ. 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