Erema93

Members
  • Content Count

    56
  • Joined

  • Last visited

Everything posted by Erema93

  1. @alexaxel705 Я немного о другом имел ввиду. Если у всех старых ID авто уже будут заменены модели на новые, то скрипт уже не будет работать как надо? I meant a little about something else. If all old car IDs already have models replaced by new ones, then the script will no longer work as it should?
  2. Synchronization of the tractor with the trailer was repaired?
  3. And if all the old IDs are busy, it turns out that the script will not work?
  4. Сделал как в коде server.Lua написано, но получается ошибка. Скрипт создания авто: вот
  5. Можете показать, что в server.Lua? А то я пытаюсь командой заспавнить, используя CreateVehicle, но что-то авто не появляется
  6. Ребят, помогите разобраться в этом скрипте, прописываю код на спавн авто на новые ID, а оно не спавнится никакой командой.
  7. На комьюнити MTA появился скрипт с добавлением машин на новых ID
  8. Вот оно что, значит только методом тыка. Спасибо за ответ
  9. А возможно ли сделать скриптом сделать переключение путей (смена маршрута) рельсового транспорта? Если да, то скажите как его сделать?
  10. Не ну это понятно, что так можно. Но не думаю, что разработчики сервера так делали, ибо несколько трамвайных путей и каждый трамвай ездил по своему маршруту. Опять же знаю, что при наличии файла Track можно заспавнить рельсовый транспорт на определенный путь.
  11. Ну тогда что означают эти координаты в таблицы? Оставлял по одной разной строке и пассажир садился не на рандомное место, а на то куда указано в коде. То есть каждая строка в таблице отвечала за определенное место
  12. Возможно подключить скриптом подключить дополнительные пути для рельсового транспорта с помощью скрипта? Видел на одном сервере, где рельсовый транспорт ездит по разным маршрутам, но ведь в оригинальной GTA лимит путей очень маленький. Хотелось бы знать, с помощью чего прописывать пути, как их подключать (если возможно скриптом в MTA)?
  13. Есть вот такой код Подскажите, каким образом задаются в этом коде координаты пассажирских мест и как узнать необходимую координату, если хочу новое место для пассажира прописать?
  14. Исправил, работает как надо. Спасибо. Ваше getTeamName не работало и выдавало ошибку плохого аргумент. Если кому-то будет нужен код, то вот он: local teamjob = createTeam ( "Машинист", 0, 255, 0 ) addEventHandler ( "onVehicleStartEnter", getRootElement (), function ( player ) if getElementModel ( source ) == 537 then if getPlayerTeam ( player ) == teamjob then outputChatBox ( "Вы устроились на работу ", player, 255, 0, 0) else cancelEvent() outputChatBox ( "У вас нет доступа к ТС ", player, 255, 0, 0 ) end end end )
  15. Проверил код. Игрок в группе не может сесть в транспорт 537
  16. Ну а мне нужно так: игрок в группе сможет сесть в машину 537, но если игрок не в группе, то не сможет сесть в неё. Не нужно, чтобы он никуда не смог сесть. Пример: игрок состоит в группе машинистов, то он сможет сесть в локомотив, но если он не состоит в этой группе, то он не сможет в него сесть (а в остальной любой сможет) Более понятный пример: если игрок состоит во фракции, то у него есть доступ к авто фракции, иначе - нет доступа.
  17. Заменил оба, теперь вообще не садится никуда
  18. Пытался двигаться в нужном направлении, но пока что нужный итог не получается local teamjob = createTeam("Машинист", 0, 255, 0) addEventHandler ( "onVehicleStartEnter", getRootElement (), function ( player ) local teamjob = getPlayerTeam(player) if getPlayerTeam (player) ~= "Машинист" and getElementModel ( source ) ~= 537 then outputChatBox("Есть ", player, 255, 0, 0) else cancelEvent() outputChatBox("Вы не состоите в Группе ", player, 255, 0, 0) end end )
  19. Как сделать, чтобы определенным транспортом могли пользоваться только игроки определенной команды(группы, team)? Знаю только одно условие: if getTeamName (getPlayerTeam (client)) == "Название группы" then else outputChatBox ("У вас нет доступа к ТС", hitElement) end А второе не могу додуматься. Причем нужно, чтобы оба условия соблюдались.
  20. Если умеешь моделировать и делать скрипты на Lua, то не составит проблем сделать свою MTA, даже на стандартной карте
  21. Всех приветствую. Нужна помощь: есть логин панель, надо 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)
  22. Первый вопрос актуален Второй вопрос: кто сожет сделать скрипт поднятия\опускания пантографа на жд транспорте?
  23. Как в GUI окне вывести информацию об игроке (уровень,опыт ,права и т.д.)? Вот код окна GUIEditor = { button = {}, window = {}, label = {} } addEventHandler("onClientResourceStart", resourceRoot, function() GUIEditor.window[1] = guiCreateWindow(807, 516, 356, 355, "Статистика", false) guiWindowSetSizable(GUIEditor.window[1], false) guiSetAlpha(GUIEditor.window[1], 1.00) guiSetProperty(GUIEditor.window[1], "CaptionColour", "C8FFFFFF") GUIEditor.button[1] = guiCreateButton(31, 348, 15, 0, "", false, GUIEditor.window[1]) GUIEditor.button[2] = guiCreateButton(141, 330, 84, 15, "Закрыть", false, GUIEditor.window[1]) guiSetFont(GUIEditor.button[2], "default-bold-small") GUIEditor.label[1] = guiCreateLabel(13, 66, 217, 40, "Никнейм", false, GUIEditor.window[1]) GUIEditor.label[2] = guiCreateLabel(13, 91, 102, 15, "Уровень", false, GUIEditor.window[1]) GUIEditor.label[3] = guiCreateLabel(13, 116, 105, 15, "Опыт", false, GUIEditor.window[1]) GUIEditor.label[4] = guiCreateLabel(13, 141, 92, 15, "Работа", false, GUIEditor.window[1]) end )
  24. Лимиты транспорта конечно еще не взломали, но другие лимиты были сломаны уже в одном проекте на MTA (один из них: лимит путей рельсового транспорта).
  25. А вы пробовали это делать?