Jump to content

PrototypeX

Members
  • Posts

    59
  • Joined

  • Last visited

Everything posted by PrototypeX

  1. Это долгий и упорный труд. Конверт, либо построение кусками с нуля. Тут дело вкуса.
  2. Hello, dear friends and players in MTA:SA! In the Russian Federation, the MTA is gaining rapid popularity! I am the creator of the project "SMOTRAmta", and we already order advertising from the most popular bloggers in Youtube Russia. Our proposal is to make a tab of the servers that contributed to the development of Multi Theft Auto. We have two servers, the total online of which is 1000 people, a large community and a quality website. Here are some examples of advertising: Thank you for your attention, we hope you will consider our offer! We are also grateful to all developers of Multi Theft Auto and wish the successful and further development of the project as a whole.
  3. Приветствую всех. Уже давно не могу справится с одной проблемой. Схема такая: - Ресурс: vehicles - Ресурс: houses - Ресурс: businesses В каждом ресурсе есть своя глобальная таблица pl_vehs = {} houses = {} businesses = {} И проблема вот в чем, в ресурсе vehicles каждый игрок имеет 1-4 своих ячейки в таблице pl_vehs в таблицу pl_vehs = {} заносятся авто следующим образом: к примеру спавн: pl_vehs[carID] = createVehicle(tonumber(car_Info["model"]), x, y, z, 0, 0, rZ-90) Всё вроде хорошо, дальше задаётся элемент дата, играется прекрасно. Но вот спустя какое-то время при онлайне 100-300 чел. начинается следующая проблема: человек спавнит машину, и вместо неё телепортируется либо рандомный обьект маппинга, либо элемент (в виде пикапа) из houses[] или из bussineses[] Короче говоря функция createVehicle каким-то х... телепортирует уже существующий на сервере элемент, причем даже иногда игрока телепортирует. Как это возможно?! В дебаге и консоли никаких ошибок!(
  4. Ребята подскажите, можно ли наложить на автомобиль (точнее на элемент кузова который красится) два шейдера и/или более? Например. Первый шейдер ложится с одной текстурой, второй с альфаканалом в 50 и получается так, что сначала идет картинка (винил), а затем поверх неё шейдер с глянцем (отражениями из screensource DX)?
  5. Если рассматривать СНГ, то тут есть не только БПАН и Дрифт, а ещё и годные RPG проекты вроде нашего SMOTRAmta, и наших конкурентов CCD и готовящимся радмиром.. Всё довольно таки быстро и стремительно развивается. И у девелоперов в МТА возможностей гораздо больше чем в САМПе!!!
  6. Просто отставлю пост о том, что есть подработка здесь. В проект SMOTRAmta (Онлайн 400-500+), требуются опытные разработчики для выполнения разнообразных задач по написанию ресурсов (или частей ресурсов). Обязателен опыт разработки игровых серверов MTA и синтаксиса LUA. Уметь быстро и качественно выполнять поставленные задачи. Знания о том, что такое оптимизация и с чем её едят тоже надо бы знать. skype: sanstarke vk: vk.com/marino4egg
  7. при аттаче не выставить наклон
  8. Ребята, пытаюсь реализовать вынос кастомных колёс. Вот какая проблема - при изменении y + или -, колесо при обновлении позиции не понимает, в какой оси надо делать позиционирование. Вот наглядные скриншоты проблемы: Пример кода, наложения этого колеса: local x1, y1, z1 = getVehicleComponentPosition(v, ComponentName[1], 'world') local rx1, ry1, rz1 = getVehicleComponentRotation(v, ComponentName[1], 'world') setElementPosition(car_wheels[carID][1], x1, y1+1.5, z1 - 0.35 + (peredRadius * 0.44)) setElementRotation(car_wheels[carID][1], rx1, ry1+(peredRazval), rz1, "ZYX") setObjectScale(car_wheels[carID][1], peredWidth, peredRadius, peredRadius) Параметр выноса - y1+1.5 в setElementPosition. Это происходит в onClientPreRender при переборе циклом автомобилей в стриме игрока.
  9. Огромное спасибо, помогло. Можно закрывать тему!
  10. Всем привет, мб кто нибудь шарит в шейдерах. Вопрос следующего характера, необходимо покрасить наложенные на автомобиль четыре обьекта (колёса кастомные). Название текстуры у меня "body_k", написал саму систему, шейдер и при этом шейдер не очень хорошо понимает RGBA палитру. Только радикальные цвета будь то: 0,255,255,255; 255,0,0,255; 255,0,255 и т.д. При цвете например 75,0,255,255 выдает оттенок максимальный по заданым критериям, т.е. 255,0,255,255... Вот скриншот того, что пытаюсь реализовать:http://www.fotolink.su/pic_b/c03627c7d8665128f9c5ec7ecaf65c60.png (Не могу прикрепить почему-то изображение) Код шейдера: float4 gColor = float4(1,1,1,1); bool bIsGTADiffuse = true; //--------------------------------------------------------------------- // Include some common stuff //--------------------------------------------------------------------- #include "mta-helper.fx" //--------------------------------------------------------------------- // Sampler for the main texture //--------------------------------------------------------------------- sampler Sampler0 = sampler_state { Texture = (gTexture0); }; //--------------------------------------------------------------------- // Structure of data sent to the vertex shader //--------------------------------------------------------------------- struct VSInput { float3 Position : POSITION0; float4 Diffuse : COLOR0; float2 TexCoord : TEXCOORD0; }; //--------------------------------------------------------------------- // Structure of data sent to the pixel shader ( from the vertex shader ) //--------------------------------------------------------------------- struct PSInput { float4 Position : POSITION0; float4 Diffuse : COLOR0; float2 TexCoord : TEXCOORD0; }; //------------------------------------------------------------------------------------------ // VertexShaderFunction // 1. Read from VS structure // 2. Process // 3. Write to PS structure //------------------------------------------------------------------------------------------ PSInput VertexShaderFunction(VSInput VS) { PSInput PS = (PSInput)0; // Calculate screen pos of vertex PS.Position = MTACalcScreenPosition ( VS.Position ); // Pass through tex coord PS.TexCoord = VS.TexCoord; // Calculate GTA lighting for buildings float4 Diffuse = MTACalcGTABuildingDiffuse( VS.Diffuse ); PS.Diffuse = 0; if (bIsGTADiffuse) PS.Diffuse = Diffuse; else PS.Diffuse = float4(1,1,1,Diffuse.a); PS.Diffuse *= gColor; return PS; } //------------------------------------------------------------------------------------------ // PixelShaderFunction // 1. Read from PS structure // 2. Process // 3. Return pixel color //------------------------------------------------------------------------------------------ float4 PixelShaderFunction(PSInput PS) : COLOR0 { // Get texture pixel float4 texel = tex2D(Sampler0, PS.TexCoord); // Apply diffuse lighting float4 finalColor = texel * PS.Diffuse; return finalColor; } //------------------------------------------------------------------------------------------ // Techniques //------------------------------------------------------------------------------------------ technique colorize { pass P0 { VertexShader = compile vs_2_0 VertexShaderFunction(); PixelShader = compile ps_2_0 PixelShaderFunction(); } } // Fallback technique fallback { pass P0 { // Just draw normally } } Код наложение цвета, через шейдерную обработку на одно из колёс транспортного средства: local colorShader = dxCreateShader("shader.fx") local _, _, _, wheelsColorR, wheelsColorG, wheelsColorB = getVehicleColor(source, true) outputChatBox("#FFFFFFColor: R"..wheelsColorR.." G"..wheelsColorG.." B"..wheelsColorB, 0, 0, 0, true) local wheelsColor = {wheelsColorR, wheelsColorG, wheelsColorB, 255} dxSetShaderValue(colorShader, "gColor", wheelsColor) engineApplyShaderToWorldTexture(colorShader, "body_k", car_wheels[carID][1]) Need help!
  11. Привет всем. Столкнулся с проблемой. Пытаюсь реализовать "стикеры" на автомобили. Задача собственно в том, что бы с минимальными нагрузками сделать возможность накладывать на автомобиль изображения с альфаканалом и изменять позицию, ширину и поворот прямо на кузове. К постояльцам форума, есть несколько вопросов: 1. Можно ли уместить в один шейдер динамическое кол-во текстур с определенными параметрами, которые будут задаваться через setValue (shader)? 2. Как реализовать наложение изображений на подобии слоёв в фотошопе? 3. Как в шейдере указывать позицию, размер и поворот текстуры?
  12. Привет Всем бывалым. Подскажите, столкнулся с таким странным явлением как нехватка ОЗУ у клиентов. В течении 40-60 минут, игроки вылетают по причине того, что забивается память процессом gta_sa.exe На сервере всё что можно проверил, и никак не могу найти причину. Чаще всего из-за чего это может происходить на клиентской части сервера? Спасибо за помощь и советы, если они будут! Add update: - Элемент дата оптимизирована, всё в табличках и не длинных. - Используется около 10-12 шейдерных обработок на клиент со всех ресурсов суммарно. - Есть одна динамическая подгрузка текстур (~10кб) каждая на автомобили из сети в прямом эфире, во время игры. P.S. При входе и выходе из стрима элемента (в данном случае авто) из памяти удаляю с помощью destroyElement(текстура).
  13. Всем привет, столкнулся с дилемой, которую уже давно не могу разрешить. Есть все возможные проверки и так далее, но при кратковременном отключении интернета, можно через обычный GUI который при нажатии на кнопку триггерит серверный эвент много раз дюпать одну и ту же элемент дату. Как с макросами и подобными кратковременными отключениями интернета бороться?! Пример:
  14. Здравствуйте ребята. В ходе разработки столкнулся со следующими вопросами: 1. callRemote и fetchRemote работают по приципу очереди запросов? 2. Если да, то очередь общая? 3. Какими аналогами их можно заменить для работы с внешним api? 4. Опасно ли исполнять fetch и call в событии onPlayerJoin? Под внешним api я подразумеваю линки такого плана: http://site/api.php Модуль cURL не предлагать, ибо он сырой. После того как я намучался с его компиляцией, он запустился но при запросах ложит сервер, когда задаёшь ему POST дату. Спасибо.
  15. По своему опыту скажу, что для оптимизированной работы тех же самых "поворотников" нужно обязательно делать одинаковые названия текстур в поворотниках автомобилей, и с помощью шейдера накладывать на них цвет с прозрачностью, а не картинку. Тогда будет отлично работать.
  16. Привет, лично я изначально для себя построил такую структуру: resources: - SERVERNAME_Players - SERVERNAME_Houses - SERVERNAME_Bussineses - SERVERNAME_Vehicles и сделал несколько главных ресурсов по типу: - SERVERNAME_System - SERVERNAME_Stuff (обьекты, текстуры, карты и т.д.) Очень удобно, теперь понял что не прогадал.
  17. Здравствуйте, знаю что в МТА уже который год не могут пофиксить прицепы грузовиков. Подскажите, есть ли какой-нибудь реальный способ их нормально синхронизировать? Что бы все видели нормально приаттаченные прицепы. Просто при онлайне 300 и когда 100 человек из них работают дальнобойщиками, по всей карте катаются обезглавленные прицепы. Хелп!) Слышал, что можно пофиксить с помощью скриптовой части.
  18. Здравствуйте, дорогие обитатели форума MTASA. Хочу представить Вашему вниманию, игровой сервер, мод которого написан одним человеком за 4 месяца. Сервер носит развлекательный характер, жанра RPG. Главный приоритет на прокачку персонажа и покупку имущества. Вообщем цель - обогащение, заработок и правильная стратегия развития. Мини-обзор функционала: Средний дневной онлайн: 100-150 человек. Сайт: https://smotramta.ru/ Группа ВКонтакте: https://vk.com/smotramtasa IP Сервера: 94.142.142.146:22003
  19. Тест на ботах нагруженных элементдатой не дал результатов: local peds = {} for i = 1, 140 do local x = -2324.0505 + math.random(0,30) local y = -1652.8665 + math.random(0,30) peds[i] = createPed(math.random(0,200), x, y, 484.6073) exports.npc_hlc:enableHLCForNPC(peds[i], "walk") local walkX = x - math.random(0,60) local walkY = y - math.random(0,60) exports.npc_hlc:setNPCTask(peds[i], {"walkToPos", walkX, walkY, 484.6073, 1}) setElementData(peds[i], "dog.name", tostring(math.random(0, 99999))) for j = 1, 25 do setElementData(peds[i], "info"..tostring(j), tostring(math.random(0, 99999))) end local blip = createBlip(x, y, 484.6073, 0, 5, 51, 255, 102) setElementData(blip, 'blipIcon', 'player') end При таком раскладе, при нахождении рядом с ботами, все операции проходят моментально.
  20. Спасибо за подсказку. Кстати. Я использую абсолютно во всех файлах (клиентских), следующий параметр в мете: cache="false" Это не может повлиять?
  21. Благодарю. Да я и так использую триггеры для обращений от пользователя к пользователю (например при предложении что то купить с клиента продавца идет триггер на сервер, формируется запрос и отсылается от сервера к покупателю триггером на клиент). Я написал сервер за три месяца, о чем жалею, что на середине разработки, когда освоился не стал переписывать часть кода, а продолжил разработку. Сейча сижу и мучаюсь, 40к строк кода впереди. Кстати в моём случае, не так нагружался проц, как нагружались клиенты из-за большого количества синхронизируемых elementData в стриме. Благо разработчики МТА или не знаю, это луа такая - сервер не ложился а отпралял запросы в очередь. Можете дать советы по оптимизации, что бы я дров больше не наломал? Спасибо!
×
×
  • Create New...