• Announcements

    • jhxp

      Forums are online again after a maintenance.   18/03/17

      MTA Forums maintenance is completed, although some automatic time-heavy tasks are still in process and will be finished eventually in background. Expect some features such as Forum Search to not display all results until all processes are finished. Please let us know if you spot a forum feature that worked correctly before the maintenance but does not work anymore now. Thanks. --MTA Team
    • jhxp

      Multi Theft Auto: San Andreas 1.5.4 is out!   21/04/17

      Click the link in the announcement for more details.  

PrototypeX

Members
  • Content count

    56
  • Joined

  • Last visited

Community Reputation

1 Neutral

About PrototypeX

  • Rank
    Snitch

Details

  • Location
    Russia
  • Occupation
    Dev
  1. Если рассматривать СНГ, то тут есть не только БПАН и Дрифт, а ещё и годные RPG проекты вроде нашего SMOTRAmta, и наших конкурентов CCD и готовящимся радмиром.. Всё довольно таки быстро и стремительно развивается. И у девелоперов в МТА возможностей гораздо больше чем в САМПе!!!
  2. Просто отставлю пост о том, что есть подработка здесь. В проект SMOTRAmta (Онлайн 400-500+), требуются опытные разработчики для выполнения разнообразных задач по написанию ресурсов (или частей ресурсов). Обязателен опыт разработки игровых серверов MTA и синтаксиса LUA. Уметь быстро и качественно выполнять поставленные задачи. Знания о том, что такое оптимизация и с чем её едят тоже надо бы знать. skype: sanstarke vk: vk.com/marino4egg
  3. Первый вариант.
  4. при аттаче не выставить наклон
  5. Спасибо, помогло. Тему можно закрывать!
  6. Ребята, пытаюсь реализовать вынос кастомных колёс. Вот какая проблема - при изменении 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 при переборе циклом автомобилей в стриме игрока.
  7. Огромное спасибо, помогло. Можно закрывать тему!
  8. Всем привет, мб кто нибудь шарит в шейдерах. Вопрос следующего характера, необходимо покрасить наложенные на автомобиль четыре обьекта (колёса кастомные). Название текстуры у меня "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!
  9. Привет всем. Столкнулся с проблемой. Пытаюсь реализовать "стикеры" на автомобили. Задача собственно в том, что бы с минимальными нагрузками сделать возможность накладывать на автомобиль изображения с альфаканалом и изменять позицию, ширину и поворот прямо на кузове. К постояльцам форума, есть несколько вопросов: 1. Можно ли уместить в один шейдер динамическое кол-во текстур с определенными параметрами, которые будут задаваться через setValue (shader)? 2. Как реализовать наложение изображений на подобии слоёв в фотошопе? 3. Как в шейдере указывать позицию, размер и поворот текстуры?
  10. Привет Всем бывалым. Подскажите, столкнулся с таким странным явлением как нехватка ОЗУ у клиентов. В течении 40-60 минут, игроки вылетают по причине того, что забивается память процессом gta_sa.exe На сервере всё что можно проверил, и никак не могу найти причину. Чаще всего из-за чего это может происходить на клиентской части сервера? Спасибо за помощь и советы, если они будут! Add update: - Элемент дата оптимизирована, всё в табличках и не длинных. - Используется около 10-12 шейдерных обработок на клиент со всех ресурсов суммарно. - Есть одна динамическая подгрузка текстур (~10кб) каждая на автомобили из сети в прямом эфире, во время игры. P.S. При входе и выходе из стрима элемента (в данном случае авто) из памяти удаляю с помощью destroyElement(текстура).
  11. i need to buy! give me webmoney WMZ plz
  12. Всем привет, столкнулся с дилемой, которую уже давно не могу разрешить. Есть все возможные проверки и так далее, но при кратковременном отключении интернета, можно через обычный GUI который при нажатии на кнопку триггерит серверный эвент много раз дюпать одну и ту же элемент дату. Как с макросами и подобными кратковременными отключениями интернета бороться?! Пример:
  13. Здравствуйте ребята. В ходе разработки столкнулся со следующими вопросами: 1. callRemote и fetchRemote работают по приципу очереди запросов? 2. Если да, то очередь общая? 3. Какими аналогами их можно заменить для работы с внешним api? 4. Опасно ли исполнять fetch и call в событии onPlayerJoin? Под внешним api я подразумеваю линки такого плана: http://site/api.php Модуль cURL не предлагать, ибо он сырой. После того как я намучался с его компиляцией, он запустился но при запросах ложит сервер, когда задаёшь ему POST дату. Спасибо.
  14. По своему опыту скажу, что для оптимизированной работы тех же самых "поворотников" нужно обязательно делать одинаковые названия текстур в поворотниках автомобилей, и с помощью шейдера накладывать на них цвет с прозрачностью, а не картинку. Тогда будет отлично работать.