Jump to content

PrototypeX

Members
  • Posts

    59
  • Joined

  • Last visited

Everything posted by PrototypeX

  1. Ребята привет, меня интересует кое-что по теме! Я заменил практически все доступные автомобили на свои. У меня есть на сервере места, где выставлено много транспорта, и в этих местах у всех игроков, даже с мощными ПК начинаются проседания ФПС, как это лечится?
  2. Здорово, вы мне очень помогли своим ответом, я попытаюсь реализовать, о результате сообщю позже. Спа-си-бо за наводку, второй день голову ломаю!
  3. Всем привет, допустим есть элементы, которых не мало и они создаются до входа игроков на сервер. На них я заменяю текстуру (маловесную, около 30 кб). Которая подгружается и генерируется на Web-сервере. Понятное дело что заменять надо на Клиентской стороне, с помощью: dxSetShaderValue() и engineApplyShaderToWorldTexture() И вот, при тесте сервера, при онлайне выше 20 человек и кол-ва элементов около 50-100 с заменнённой текстурой, при входе игроков наблюдаются провисания ФПС и кружок подгрузки у Всех игроков на сервере, потому что при входе нового игрока я заного подгружаю все текстуры на эти элементы, с помощью: for _,v in pairs(getElementsByType("vehicle")) do Как решить эту проблему? Как закрепить текстуры в глобальном мире на серверной строне, если это возможно? Или подскажите аналогию пожалуйста, если знаете как это реализовать без подобных нерациональных нагрузок.
  4. Вопрос решён, можно закрывать. Проблема была в том, что надо было всего лишь перезайти после перезапуска ресурса.
  5. Да, это помогло на клиентской стороне для других ресурсов. Но с домами обнаружил следующее: Убрал пикапы выходов из домов и понял, что лагов нет. Но как только я начинаю создавать обратно эти пикапы, опять начинаются лаги. В качестве эксперемента убрал пикапы выходов и создал циклом помимо домов, ещё около 5-6 тыс. пикапов в math.random(0, 2000) координатах по всей карте. Лаги снова появились, видимо есть какой-то серверный лимит или стример подлагивает я не понимаю!( Вот фрагмент подгрузки домов из строки с веб сервера, при включении ресурса: function reLoadHouses(responseData, errno) if errno == 0 then local JSonBody = fromJSON(responseData) if tostring(JSonBody["status"]) == "ok" then local houses = JSonBody["houses"] for i,_ in pairs(houses) do local houseInfo = houses[i] local houseID = tonumber(houseInfo["id"]) if tonumber(houseInfo["own"]) == 0 then house[houseID] = createPickup(houseInfo["x"], houseInfo["y"], houseInfo["z"], 3, 1273, 0) else house[houseID] = createPickup(houseInfo["x"], houseInfo["y"], houseInfo["z"], 3, 1272, 0) end houseINT = tonumber(houseInfo["int"]) houseExit[houseID] = createPickup(intererios[houseINT][2], intererios[houseINT][3], intererios[houseINT][4], 3, 1318, 0) setElementData(houseExit[houseID], "house.id", houseID) setElementData(houseExit[houseID], "house.type", "exit") setElementInterior(houseExit[houseID], intererios[tonumber(houseInfo["int"])][1]) setElementDimension(houseExit[houseID], tonumber(houseInfo["id"])) setElementData(house[houseID], "house.id", tonumber(houseInfo["id"])) setElementData(house[houseID], "house.type", tostring(houseInfo["type"])) setElementData(house[houseID], "house.int", tonumber(houseInfo["int"])) setElementData(house[houseID], "house.x", tonumber(houseInfo["x"])) setElementData(house[houseID], "house.y", tonumber(houseInfo["y"])) setElementData(house[houseID], "house.z", tonumber(houseInfo["z"])) setElementData(house[houseID], "house.own", tonumber(houseInfo["own"])) setElementData(house[houseID], "house.ownlog", tostring(houseInfo["ownlog"])) setElementData(house[houseID], "house.park", tonumber(houseInfo["park"])) setElementData(house[houseID], "house.cost", tonumber(houseInfo["cost"])) setElementData(house[houseID], "house.key", tostring(houseInfo["key"])) end end end end
  6. Интересная мысль, спасибо за подсказку. Попробую реализовать!
  7. Есть вопрос, почему то, из-за большого кол-ва пикапов, начинает проседать фпс у игроков. Допустим на сервере 2460 домов, умножаем на 2 (пикап входа и пикап выхода для каждого дома) Дома работают на Мирах (Dimensions), т.е. каждый пикап выхода находится в уникальном мире, из которого один выход - на позицию пикапа входа. Итого 4920 пикапов. Наблюдается проседание фпс, после отключения ресурса, проседаний не наблюдается. С чем связано это? + небольшой сабж: для каждого пикапа на клиенте есть distantion + getElementData + isElementOnScreen (выводит инфу о доме, aka 3D текст). Но при замене пикапа на маркер, всё гуд. Пикапы всё таки красивее (домики), посоветуйте что нибудь, как с этим бороться, типо прорисовывать пикапы на ближайшем расстоянии а не на всем сервере. Пикапы создаются на стороне сервера на текущий момент.
  8. Не нашел информации в Русском разделе MTA о функции string.upper. Проблема состоит в том, что при попытке перевести все символы строки в ВВЕРХНИЙ регистр (для кириллических символов), этого не происходит. Подскажите в чем может быть проблема? Кодировка файла UTF-8 без BOM. local number = tostring(guiGetText(GUINumch.edit[1])) number = string.upper(number) number = number:gsub("%s", {["А"] = "A", ["В"] = "B", ["С"] = "C", ["К"] = "K", ["М"] = "M", ["Н"] = "H", ["О"] = "O", ["Р"] = "P", ["С"] = "C", ["Т"] = "T", ["У"] = "Y", ["Х"] = "X"}) local b1e = tostring(string.sub(number,1,2)) local c1e = tostring(string.sub(number,3,3)) local c3e = tostring(string.sub(number,4,4)) local c4e = tostring(string.sub(number,5,5)) local b2e = tostring(string.sub(number,6,7)) local b3e = tostring(string.sub(number,8,9)) outputChatBox("#FF6146 Результат: "..b1e..c1e..c3e..c4e..b2e..b3e, 255, 255, 255, true) Фрагмент кода, в котором string.upper не работает.
×
×
  • Create New...