Jump to content
Korean Random

Leaderboard


Popular Content

Showing content with the highest reputation since 04/21/2023 in all areas

  1. 8 points
    Вышло обновление программы 2.2.0 1. Оптимизированы и ускорены алгоритмы обработки файлов и создания wotmod-пакетов 2. Обновлен формат cfg-файлов, введены маски с поддержкой звездочки, файлы проверены и актуализированы под клиент игры 1.24.0.0 3. Внесены правки и улучшения в GUI-версию программы, добавлено окно выбора клиента игры из тех, что установлены на ПК, доработано окно выбора цвета, исправлены ошибки и вылеты при выборе цвета, исправлены опечатки в текстах 4. Файл 7z.dll вынесен из ресурсов exe-файла в папку с программой, при отсутствии файла он будет автоматически скачен с сайта программы 5. Убран код на передачу статистики автору программы, соответственно убран ключ --no-send-statistic 6. Убран ключ --split-2gb-parts, теперь все пакеты объемом более 2 Гб делятся программой на части автоматически 7. Если нет файлов для обработки, то пустые wotmod-пакеты не создаются 8. Добавлена вставка файла properties.xml в wotmod-пакеты, он содержит информацию о версии пакета, мода, игры и опциях, с которыми мод был создан 9. Добавлен ключ --downsizing-ratio для уменьшения размеров текстур камуфляжей и ускорения их обработки, поддерживаются коэффициенты сжатия 2, 4 и 8 10. Добавлен ключ --rewrite-log, для перезаписи лог-файла
  2. 7 points
    В общем, с модом mod_tooltipsCountItemsLimitExtend, замах был богатырский, но реально не так много сделал, меньше чем идей в голове, возможно потом продолжу, сейчас всё желание отпало, ночь была весёлая, отвык кодить. В общем, список "расширенный список танков, где находится оборудка" починил Дальше в голову пришла интересная идея, показывать затронутые модулем\расходником\скиллом параметры танка, и сразу это показывать во всплывающей подсказке. Пока разобрался откуда какие параметры подтягиваются, вся ночь и закончилась. в общем сделал только для расходников (аптечка, ремкомплект, кола и бензин), возможно не всё сработает или могут быть косяки, времени на дебаг уже не нашёл, спать хочется. Если идея не затеряется, то сделаю для оборудки и самое сложное умений\скиллов экипажа. Хотя возможно это никому и не надо.
  3. 7 points
    Unified Editor for WoT 1.22.0 https://download.openwg.net/editor/unified_editor_1.22.0.0.7z https://wgmods.net/4895 - больше не теряет секцию с камерой (однако в свои старые ангары копипастить до сих пор нужно самому, смотрите https://koreanrandom.com/forum/topic/45741-/?do=findComment&comment=534949 - внимание для Lesta: поскольку ассеты в клиенте другие (а именно, hangar_v3 в лесте другой/устаревший), у вас камера будет дохлая даже если добавите нужную секцию. Необходимо также скопипастить префабы из hangar_v3 в свой спейс и перебить пути в хмлках
  4. 5 points
    "Monochromatic Crash Tanks" Creator 2 СОЗДАНИЕ ОДНОТОННЫХ ТЕКСТУР ДЛЯ УНИЧТОЖЕННЫХ ТАНКОВ СБИТЫХ ГУСЕНИЦ, ВАГОНОВ, ПОЛУПРОЗРАЧНЫХ СЖАТЫХ КАМУФЛЯЖЕЙ Версия: 2.2.2 Совместимо с клиентом игры: 1.20.x и новее Описание: Программа "MCTCreator2Gui" позволяет быстро и удобно создавать готовые модификации, изменяющие текстуры моделей уничтоженных танков и другой техники, путём перекрашивания их в однотонный цвет. Также программа умеет менять прозрачность и размеры текстур камуфляжей в игре, делая их менее яркими. Возможности программы: Перекрашивание уничтоженных танков игроков Перекрашивание сбитых гусениц (отображается только при отключенной опции "Физика гусеничных лент" в настройках игры) Перекрашивание техники, статически расположенной на картах Перекрашивание вагонов и поездов Изменение яркости и размеров текстур камуфляжей Имеется консольная версия программы "MCTCreator2.exe" и графический интерфейс к ней "MCTCreator2Gui.exe" Программа использует конфигурационные файлы, новые версии которых автоматически загружаются из репозитария: https://github.com/StranikS-Scan/MCTCreator-Configs Модифицированные файлы по умолчанию сохраняются в виде wotmod-пакетов в папку "\mods\X.X.X\MCTCreator", также программа может сохранять не запакованные файлы в папку "\res_mods", если это необходимо Поддерживается два языка, есть много дополнительных опций Установка: Чтобы создать моды с помощью креатора необходимо: Скачать zip-архив с программой, распаковать содержимое в любую папку на диске Запустить графический интерфейс "MCTGui.exe", указать путь к игре, выбрать нужные моды и задать желаемые цвета Запустить создание wotmod-файлов, нажав на кнопку "Создать моды". Дождаться завершения работы консольного приложения, после чего можно играть в игру. Обратите внимание! Моды по умолчанию сохраняются в папку "World_of_Tanks\mods\X.X.X\MCTCreator\". При выходе обновления игры или нового патча моды следует ПЕРЕСОЗДАВАТЬ ЗАНОВО! иначе могут быть вылеты игры, при этом старые версии модов программа найдёт и удалит самостоятельно. Скачать: MCTCreator_2.2.2.251.zip __|__VirusTotal - 5/65 __|__Старые версии тут История версий: Ключи командной строки для запуска в консольном режиме с параметрами (обновлено 13.03.2024): Примеры запуска в консольном режиме с параметрами (обновлено 13.03.2024): Коды ошибок, возвращаемые консольной программой (обновлено 13.03.2024):
  5. 5 points
    Исправил совместимость с WG: aiming.py chancePenetration.py targetInfo.py infoAutoAim.py modesVehicle.py markerPosition.py reloading.py infoChargedShell.py quantityShells.py crosshair.py
  6. 5 points
    updated Lesta version - compatibility with Tanki 1.20.1.0
  7. 4 points
    Обновил скрипт myHP.py из аддона Очки прочности своей техники.
  8. 4 points
    Уважаемые разработчики, спасибо за лучший мод для танков. Сделайте еще пожалуйста встроенный в XVM мод на 3 отметки, на данный момент это единственный мод кроме XVM который использую лично я. P.S. А здесь на форуме перенесите капчу под сообщение, потому что пока пишешь сообщение время капчи истекает. Спасибо и удачи
  9. 4 points
    Не большой мануал по добавлению иконок которых нет в клиенте игры, или замены уже имеющихся Сам мануал
  10. 4 points
    Мы изучаем эту проблему и обнаружили некоторые зацепки, но потребуется больше времени, чтобы найти и устранить саму причину проблемы.
  11. 3 points
  12. 3 points
  13. 3 points
  14. 3 points
    Пожалуйста восстановите тему, обновите шкурки...
  15. 3 points
  16. 3 points
    Когда-то давно натыкался на ошибочно запакованные в файлы клиента сорсы шейдеров салолётиков, сегодня случайно наткнулся повторно. Закину сюда в тему, может пригодится кому-нибудь. #include "stdinclude.fxh" #define DUAL_UV 1 #if SKINNED #include "skinned_effect_include.fxh" #else #include "unskinned_effect_include.fxh" #endif // BW_DIFFUSE_LIGHTING BW_SPECULAR_LIGHTING BW_ARTIST_EDITABLE_DOUBLE_SIDED BW_ARTIST_EDITABLE_DIFFUSE_MAP BW_ARTIST_EDITABLE_NORMAL_MAP texture reflectionMap : EnvMap; BW_ARTIST_EDITABLE_REFLECTION_AMOUNT BW_ARTIST_EDITABLE_ALPHA_TEST BW_ARTIST_EDITABLE_ADDRESS_MODE(BW_WRAP) sampler reflectionSampler = BW_SAMPLER(reflectionMap, WRAP) samplerCUBE reflectionCubeSampler = BW_SAMPLER_NON_MIPMAP_BIASED( reflectionMap, CLAMP ) //samplerCUBE reflectionCubeSampler = BW_SAMPLER( reflectionMap, CLAMP ) BW_ARTIST_EDITABLE_FRESNEL #include "common.fxh" texture specularPowerMap < bool artistEditable = true; string UIName = "Specular Parameters Map"; string UIDesc = "The specular and other parameters"; >; #ifndef AIRCRAFT_OBJECT texture camuflageMap : CamuflageMap; texture decals : DecalMap; texture selfShadowMap : SelfShadow; #endif float glossinessOffset : GlossinessOffset; #if defined(AIRCRAFT_OBJECT) float4 bottomColor : BottomColor; #endif // TODO #include "normalmap_chrome.fxh" OR "material_helpers.fxh" instead of the "materialSpecular" declaration /* float materialSpecular < bool artistEditable = true; string UIName = "Not used"; string UIDesc = "Not used"; > = 0.0; */ float4 materialSpecular\ < \ bool artistEditable = true;\ string UIWidget = "Color"; \ string UIName = "Specular Colour";\ string UIDesc = "The specular colour for the material";\ float UIMin = 0;\ float UIMax = 2;\ int UIDigits = 1;\ > = {1,1,1,1}; float selfIllumination < bool artistEditable = true; string UIName = "Not used"; string UIDesc = "Not used"; > = 0.0; /* float specularPower < bool artistEditable = true; string UIName = "Not used"; string UIDesc = "Not used"; > = 0.0; */ /* float glossiness_shift < bool artistEditable = true; string UIName = "Not used"; string UIDesc = "Not used"; > = 0; */ float normalmap_weight < bool artistEditable = true; string UIName = "Normalmap Weight"; string UIDesc = "Normalmap Weight"; float UIMin = 0; float UIMax = 1; int UIDigits = 2; > = 1.0; bool gloss_const_enabled < bool artistEditable = true; string UIName = "Glossiness Constant Enabled"; string UIDesc = "Whether to use the constant value for glossiness"; > = false; float gloss_const < bool artistEditable = true; string UIName = "Not used"; string UIDesc = "Not used"; > = 0.5; /* float gloss_const_weight < bool artistEditable = true; string UIName = "Not used"; string UIDesc = "Not used"; > = 0; */ /* float cubemap_saturation < bool artistEditable = true; string UIName = "Not used"; string UIDesc = "Not used"; > = 0; */ sampler diffuseSampler = BW_SAMPLER(diffuseMap, BW_TEX_ADDRESS_MODE) sampler normalSampler = BW_SAMPLER(normalMap, BW_TEX_ADDRESS_MODE) sampler specularPowerSampler = BW_SAMPLER(specularPowerMap, BW_TEX_ADDRESS_MODE) #ifndef AIRCRAFT_OBJECT sampler camuflageSampler = BW_SAMPLER(camuflageMap, BW_TEX_ADDRESS_MODE) sampler decalSampler = BW_SAMPLER(decals, BW_TEX_ADDRESS_MODE) #ifndef AIRCRAFT_NO_SELFSHADOW sampler selfShadowSampler = BW_SAMPLER(selfShadowMap, BW_TEX_ADDRESS_MODE) #endif #endif float4x4 worldViewProj : WorldViewProjection; float4x4 worldView : WorldView; struct PS_INPUT { float4 pos : POSITION; float2 tc : TEXCOORD0; float3 wPos : TEXCOORD1; float3 vPos : TEXCOORD2; float3 vBinormal : TEXCOORD3; float3 vTangent : TEXCOORD4; float3 vNormal : TEXCOORD5; float2 tc2: TEXCOORD8; }; #if SKINNED PS_INPUT vs_main_uv1(VertexXYZNUVIIIWWTB i) #else PS_INPUT vs_main_uv1(VertexXYZNUVTB i) #endif { PS_INPUT o=(PS_INPUT)0; PROJECT_POSITION( o.pos ) o.tc = i.tc; o.tc2 = float2(0,0); o.wPos = worldPos.xyz; o.vPos = mul(float4(worldPos.xyz, 1.0f), g_viewMat); // // // #if SKINNED CALCULATE_TS_MATRIX float3 vBinormal = normalize(mul(tsMatrix[1], g_viewMat)).xyz; float3 vTangent = normalize(mul(tsMatrix[0], g_viewMat)).xyz; float3 vNormal = normalize(mul(tsMatrix[2], g_viewMat)).xyz; #else float3 vBinormal = normalize(mul(i.binormal, worldView)).xyz; float3 vTangent = normalize(mul(i.tangent, worldView)).xyz; float3 vNormal = normalize(mul(i.normal, worldView)).xyz; #endif o.vBinormal = vBinormal; o.vTangent = vTangent; o.vNormal = vNormal; return o; }; PS_INPUT vs_main_uv2(BUMPED_VERTEX_FORMAT i) { PS_INPUT o=(PS_INPUT)0; PROJECT_POSITION( o.pos ) o.tc = i.tc; o.tc2 = i.tc2; o.wPos = worldPos.xyz; o.vPos = mul(float4(worldPos.xyz, 1.0f), g_viewMat); // // // #if SKINNED CALCULATE_TS_MATRIX float3 vBinormal = normalize(mul(tsMatrix[1], g_viewMat)).xyz; float3 vTangent = normalize(mul(tsMatrix[0], g_viewMat)).xyz; float3 vNormal = normalize(mul(tsMatrix[2], g_viewMat)).xyz; #else float3 vBinormal = normalize(mul(i.binormal, worldView)).xyz; float3 vTangent = normalize(mul(i.tangent, worldView)).xyz; float3 vNormal = normalize(mul(i.normal, worldView)).xyz; #endif o.vBinormal = vBinormal; o.vTangent = vTangent; o.vNormal = vNormal; return o; }; float4 ps_main(PS_INPUT i, uniform bool useUV2, uniform bool reflection, uniform bool lighting, uniform bool normalmapping, float face : VFACE) : COLOR0 { // // albedo // float4 albedo = tex2D(diffuseSampler, i.tc); #ifndef AIRCRAFT_OBJECT float4 camuflageMap = tex2D( camuflageSampler, i.tc ); float4 decals = 0; if(useUV2) { decals = tex2D( decalSampler, i.tc2.xy ) * max( face, 0.0 ); } albedo.rgb = lerp( lerp( camuflageMap.rgb, decals.rgb, decals.w ), albedo.rgb, albedo.w ); #else albedo.rgb = lerp( bottomColor.rgb, albedo.rgb, albedo.w); #endif // else // { // decals = 0; // } albedo = gamma_to_linear_4(albedo); // // TBN // float3 vTangent = normalize(i.vTangent); float3 vBinormal = normalize(i.vBinormal); float3 vNormal = normalize(i.vNormal); // // normal // if( normalmapping ) { float2 normalMapValue = tex2D( normalSampler, i.tc ).xy; normalMapValue.xy = normalMapValue.xy * (255.0 / 256.0) * 2.0 - 1.0; // 128 - normalmap zero value float3 tNormal = normalize(float3(normalMapValue.xy, 1.0)); tNormal = lerp(float3(0, 0, 1.0), tNormal, normalmap_weight); vNormal = float3( dot(tNormal, float3(vTangent.x, vBinormal.x, vNormal.x)), dot(tNormal, float3(vTangent.y, vBinormal.y, vNormal.y)), dot(tNormal, float3(vTangent.z, vBinormal.z, vNormal.z))); vNormal = normalize( vNormal ); } float3 wNormal = normalize(mul(float4(vNormal, 0), g_invViewMat).xyz); // // view vectors // float3 wViewVec = i.wPos - g_cameraPos; float3 vViewVec = normalize(i.vPos); float dist = length(wViewVec); wViewVec /= dist; // // fresnel term // float fresnelExp_ = 5.0; float fresnelConstant_ = 0.04; float fresnel_out = fresnel(-vViewVec, vNormal, fresnelExp_, fresnelConstant_); //TODO //float fresnel_in = fresnel(i.vLightVec.xyz, vNormal, fresnelExp, fresnelConstant); // // shadowmapping // #ifndef AIRCRAFT_OBJECT #ifdef AIRCRAFT_NO_SELFSHADOW float shadowing = 1; #else float shadowing = tex2D(selfShadowSampler, i.tc).a; #endif #else float shadowing = 1; #endif // // lighting // //materialProps - x - specular multiplier, y - glossiness (specular power), z - alpha test value, w - nonmetal parameter float4 materialProps = tex2D(specularPowerSampler, i.tc); float glossiness = materialProps.y; float glossiness_corrected = glossiness; if (glossinessOffset > 0) { glossiness_corrected = lerp(glossiness, 1.0, glossinessOffset); } else { glossiness_corrected = lerp(0, glossiness, 1.0 + glossinessOffset); } glossiness = lerp(glossiness_corrected, glossiness, albedo.w); glossiness = (gloss_const_enabled) ? gloss_const : glossiness; /* float ags = 0.9 * abs(glossiness_shift); // float glossiness_shift_power = pow(2, 2.0 * -sign(glossiness_shift) * ags / (1.0 - ags)); float glossiness_shift_power = exp(-sign(glossiness_shift) * ags / (1.0 - ags)); float gloss_remap_val = 0.7; // remap texture range glossiness = pow(glossiness, gloss_remap_val * glossiness_shift_power); */ glossiness = glossiness * 0.9999 + 0.0001; /* { float gloss_remap_val = 0.7; // remap texture range glossiness = pow(glossiness, gloss_remap_val); } */ // remap gloss texture { float gloss_remap = 0.2; float a = sqrt(0.25 + 1 / gloss_remap); glossiness = -1.0 / (gloss_remap * (glossiness + a - 0.5)) + a + 0.5; } // float specular_absorbtion = pow(glossiness, 0.5); // float specular_absorbtion = 1.0 - pow(1.0 - glossiness, 4); float NdotV = dot(wNormal, -wViewVec); // float specular_absorbtion = 1.0 - pow(1.0 - glossiness, 2.0 + 2.0 * NdotL); float invgloss = 1.0 - glossiness; float invgloss2 = invgloss * invgloss; float invgloss4 = invgloss2 * invgloss2; float invgloss8 = invgloss4 * invgloss4; float specular_absorbtion = 1.0 - lerp(invgloss2, invgloss8, NdotV); // // metalliness // // float nonmetal = camuflageMap.a * materialProps.w; #if !defined(AIRCRAFT_OBJECT) float nonmetal = (1.0 - (1.0 - camuflageMap.a) * (1.0 - decals.w)) * materialProps.w; #else // float nonmetal = materialProps.w * bottomColor.a; float nonmetal = materialProps.w * lerp(bottomColor.a, 1.0, albedo.w); #endif // nonmetal = gamma_to_linear_1(nonmetal); // float4 fresnel_complex = lerp(albedo, fresnel_out, nonmetal); // metal color defined by diffuse textures // float4 fresnel_complex = lerp(1.0, fresnel_out * specular_absorbtion, nonmetal); // metal color is 1 float4 fresnel_complex = lerp(float4(materialSpecular.xyz, 1.0), fresnel_out * specular_absorbtion, nonmetal); // metal color defined by material specular color // // lighting // float3 diffuse = 0; float3 specular = 0; if(lighting) { for (int light = 0; light < nPointLights; light++) { float3 wL = normalize( pointLights[light].position - i.wPos ); float distance = dot( pointLights[light].position - i.wPos, wL ); float attenuation = saturate((-distance + pointLights[light].attenuation.x) * pointLights[light].attenuation.y); float fresnel_in = fresnel(wL, wNormal, fresnelExp_, fresnelConstant_); attenuation *= blinn_phong_mod( wNormal, -wViewVec, normalize(pointLights[light].position - i.wPos), glossiness ).x; diffuse += pointLights[light].colour.rgb * attenuation * (1.0 - fresnel_in * specular_absorbtion); } for (int light = 0; light < nSpecularPointLights; light++) { float3 wL = normalize( specularPointLights[light].position - i.wPos ); float distance = dot( specularPointLights[light].position - i.wPos, wL ); float attenuation = saturate((-distance + specularPointLights[light].attenuation.x) * specularPointLights[light].attenuation.y); float fresnel_in = fresnel(wL, wNormal, fresnelExp_, fresnelConstant_); attenuation *= blinn_phong_mod( wNormal, -wViewVec, normalize(specularPointLights[light].position - i.wPos), glossiness ).y; specular += specularPointLights[light].colour.rgb * attenuation; } for (int light = 0; light < nSpotLights; light++) { float3 wL = normalize( spotLights[light].position - i.wPos ); float distance = dot( spotLights[light].position - i.wPos, wL ); float fresnel_in = fresnel(wL, wNormal, fresnelExp_, fresnelConstant_); float attenuation = ((-distance + spotLights[light].attenuation.x) * spotLights[light].attenuation.y) * //distance attenuation (dot( -spotLights[light].direction, wL ) -spotLights[light].attenuation.z) / (1.0 - spotLights[light].attenuation.z); //cone angle attenuation attenuation = saturate(attenuation); float4 lightLevels = blinn_phong_mod( wNormal, -wViewVec, normalize(spotLights[light].position - i.wPos), glossiness ); lightLevels *= attenuation; lightLevels.x *= (1.0 - fresnel_in * specular_absorbtion); diffuse += spotLights[light].colour.rgb * lightLevels.x; specular += spotLights[light].colour.rgb * lightLevels.y; } } // // cubemap // float4 reflectionColour = 0; if(reflection) { float3 wReflVec = reflect(wViewVec, wNormal); wReflVec = lerp(wReflVec, wNormal, invgloss8); // reflectionColour = texCUBElod(reflectionCubeSampler, float4(wReflVec, (1.0 - glossiness) * 7.0)); // reflectionColour = texCUBElod(reflectionCubeSampler, float4(wReflVec, pow((1.0 - glossiness), 1.2) * 6.0)); // reflectionColour = texCUBElod(reflectionCubeSampler, float4(wReflVec, pow((1.0 - glossiness), 1) * 4.0)); reflectionColour = texCUBElod(reflectionCubeSampler, float4(wReflVec, (1.0 - glossiness) * 6.0)); // reflectionColour.rgb = color_saturation(reflectionColour.rgb, cubemap_saturation); } //specular float reflectionMask = materialProps.x; //add reflection specular += reflectionColour.rgb; // // combine everything // float3 ambient = nonmetal * ambientColour * albedo.rgb; // TODO leave just arrived ambient light if(reflection) { // ambient = texCUBElod(reflectionCubeSampler, float4(wNormal, 5.0)) * nonmetal * albedo.rgb; // ambient = color_saturation(texCUBElod(reflectionCubeSampler, float4(wNormal, 5.0)), cubemap_saturation) * nonmetal * albedo.rgb; ambient = texCUBElod(reflectionCubeSampler, float4(wNormal, 5.0)) * nonmetal * albedo.rgb; } // float4 colour = float4( (nonmetal * albedo.rgb * diffuse + specular.rgb * reflectionMask * fresnel_complex/* * reflectionAmount*/) * shadowing + ambient, albedo.w); float4 colour = float4((nonmetal * albedo.rgb * diffuse + specular.rgb * reflectionMask * fresnel_complex) * shadowing + ambient, albedo.w); float3 fogColour = skyDomeColor(skyDomeSampler, wViewVec, -directionalLights[0].direction); float fog = opticalDepth(dist); colour.rgb = lerp(colour.rgb, fogColour, fog); #ifdef DAMAGE_TEXTURE //make holes colour.a = materialProps.z; #endif return pack_hdr_value(colour); }; #ifndef AIRCRAFT_OBJECT technique AircraftHangarHigh < bool dualUV = true; #if SKINNED bool skinned = true; #endif > { pass Pass_0 { #ifdef DAMAGE_TEXTURE ALPHATESTENABLE = TRUE; ALPHAREF = 128;//TODO REMOVE THIS( must be removed in all materials ) #else ALPHATESTENABLE = FALSE; #endif ZENABLE = TRUE; ZWRITEENABLE = TRUE; ALPHABLENDENABLE = FALSE; BW_FOG FOGENABLE = TRUE; FOGTABLEMODE = NONE; FOGVERTEXMODE = LINEAR; CULLMODE = None; VertexShader = compile vs_3_0 vs_main_uv2(); PixelShader = compile ps_3_0 ps_main(true,true,true,true); } } #endif technique AircraftHangarHigh_UV2_fallback < string link_fallback = "AircraftHangarHigh"; #if SKINNED bool skinned = true; #endif > { pass Pass_0 { #ifdef DAMAGE_TEXTURE ALPHATESTENABLE = TRUE; ALPHAREF = 128;//TODO REMOVE THIS( must be removed in all materials ) #else ALPHATESTENABLE = FALSE; #endif ZENABLE = TRUE; ZWRITEENABLE = TRUE; ALPHABLENDENABLE = FALSE; BW_FOG FOGENABLE = TRUE; FOGTABLEMODE = NONE; FOGVERTEXMODE = LINEAR; CULLMODE = None; VertexShader = compile vs_3_0 vs_main_uv1(); PixelShader = compile ps_3_0 ps_main(false,true,true,true); } } shaders.zip
  17. 2 points
    Обновил в шапке скрипт quicklyLeave.py из аддона Быстрый выход из боя
  18. 2 points
    Уровень костылей превышает все допустимые пределы! ОБНОВЛЕНИЕ RELEASE 9 - "ЭПИЦЕНТР" Секция "AMBIENT" - Актуализация с WT 2.33 "Господство в воздухе". - Добавлена поддержка карт, которые вышли с августа 2023 года. Секция "EXPLOSIONS" - Актуализация с WT 2.33 "Господство в воздухе". - Улучшено позиционирование и распространение звука в зависимости от расстояния. Секция "GUNSOUNDS" - Актуализация с WT 2.33 "Господство в воздухе". - Исправление недоработки резкой смены звука выстрела из снайперского режима в аркадный и обратно. - Увеличена общая громкость звуков выстрелов игрока в аркадном прицеле. - Секция объединена с секцией "PASSBY" Секция "IMPACTS" - Актуализация с WT 2.33 "Господство в воздухе". - Звуки попаданий по игроку и остальным танкам разделены. - Мелкие исправления и улучшения. Секция "MUSIC" - Музыка экрана логина не останавливается при заходе в ангар. - Музыка победы и поражения теперь запускается в конце боя и не замолкает после выхода в ангар. - Добавлена поддержка карт, которые вышли с августа 2023 года. Секция "GUI" - Добавлен звук смены снаряда. Секция "OBJECTS" - Актуализация с WT 2.33 "Господство в воздухе". Секция "PYHELPER" - Добавлены ресурсы для экрана загрузки игры. - Полностью переработан скриптовый помощник, исходный код открыт на GitHub. Секция "VEHICLES" - Изменен звук двигателя колесников на тот, который используется на E.B.R. (1954) - Исправления и улучшения позиционирования звуков. Секция "VOICEOVER" - Актуализация с WT 2.33 "Господство в воздухе". - Добавлено голосовое уведомление при выстреле арты врага в радиусе ~150 метров от игрока. - Добавлено голосовое уведомление при смене снаряда. - Добавлено голосовое уведомление при окончании перезарядки орудия. - Добавлено голосовое уведомление при попадании по игроку и повреждении модулей или экипажа. - Добавлено голосовое уведомление победы и поражения во время и в конце боя. - Добавлено голосовое уведомление при повреждении и починке колеса. Особая благодарность @Kurzdor за помощь в разработке нового скриптового помощника. Также убрана поддержка загрузки мода через BanksLoader ввиду особенности работы некоторых секций мода. Файлы в облаках уже обновлены и ждут вашего скачивания, облака в шапке темы. Там же и обновилось тизер обновления, скорее посмотри его!
  19. 2 points
  20. 2 points
    @gonnahetzme I'm sure WG won't do anything to you unless you want to engage in outright piracy and compete with them using their own intellectual property. If you simply restore the ability to play on outdated clients for entertainment and engine research, and don't commercialize it, WG will be completely indifferent. And if you succeed in this, you may even be able to get a job with them
  21. 2 points
  22. 2 points
    Обновление конфига 25.11.23 обновлены иконки с теста добавлено описание в шапку темы: "опции -> окно статистики в бою" Изменения в @settings.xc "playersPanel"/"showFriendIcon" -> "general"/"showFriendIcon" "general"/"iconset" -> "playersPanel"/"iconset"
  23. 2 points
  24. 2 points
  25. 2 points
    Звук пока работает только на World of Tanks, Lesta в работе. Ожидается к концу недели
  26. 2 points
    On the other hand, you need cell and base scripts anyway if you want to run WOT with your own hand-made server :)
  27. 2 points
  28. 2 points
  29. 2 points
    2023-07-18 10:08:03: [ERROR] Traceback (most recent call last): File "res_mods/mods/xfw_packages\xvm_pymacro\python\__init__.py", line 101, in __load_lib __execute(code, file_name, {'xvm': XvmNamespace}) File "res_mods/mods/xfw_packages\xvm_pymacro\python\__init__.py", line 93, in __execute raise ExecutionException("{} at file '{}' line {}: {}".format(error_name, file_name, line_number, message)) ExecutionException: AttributeError at file 'res_mods/configs/xvm/py_macro\reloading.py' line 42: type object 'AmmoPlugin' has no attribute '_AmmoPlugin__onQuickShellChangerUpdated'
  30. 2 points
    WG 1.21.1.0 2023-07-18 15:53:24.889: INFO: ============================= 2023-07-18 15:53:24.889: INFO: 2023-07-18 15:53:24: [ERROR] mods/xfw_libraries/xfw/events.pyc 2023-07-18 15:53:24.889: ERROR: Traceback (most recent call last): 2023-07-18 15:53:24.889: ERROR: File "./xfw/events.py", line 57, in __event_handler 2023-07-18 15:53:24.889: ERROR: File "./xfw/events.py", line 24, in fire 2023-07-18 15:53:24.890: ERROR: File "res_mods/configs/xvm/py_macro\aiming.py", line 53, in aiming_getOwnVehicleShotDispersionAngle 2023-07-18 15:53:24.890: ERROR: aimingStartTime, aimingFactor, shotDispMultiplierFactor, _1, _2, _3, aimingTime = self._PlayerAvatar__aimingInfo 2023-07-18 15:53:24.890: ERROR: ValueError: too many values to unpack 2023-07-18 15:53:24.890: INFO: ============================= and 2023-07-18 15:53:56: [ERROR] Traceback (most recent call last): File "res_mods/configs/xvm/py_macro\markerPosition.py", line 75, in _VehicleGunRotator__getGunMarkerPosition dispersAngle, idealDispersAngle = dispersionAngles TypeError: 'NoneType' object is not iterable
  31. 2 points
    Всё то же самое, но artillery на flamer меняешь. Событие попалось поиском по коду.
  32. 2 points
    Да, можно вот этот файл vehicle_hangar_stat.py кидаем в ../xvm/py_macro/ (имя любое, также можно код из файла скопировать в свой py_файл) правим widgetsTemplates.xc : 1. Увеличиваем размер тени-подложки под текстом статистики на 15 для новой строки по танку (дважды - для "левой" и "правой" частей) // Фоновая картинка, левая часть. // Фоновая картинка, правая часть. ... "format": "<img src='xvm://res/icons/clock/clockBg.png' width='160' height='{{mystat.wn8?8095|2843}}'>" 2. Дописываем в поле "format" текстового блока новые макросы // Текстовый блок. ... "format": "...\n<font size='13'>{{v.name}}: <font color='{{v.c_winrate}}'>{{v.winrate%.2f~%}}</font> {{py:v_winrate_next(1,{{v.battles}},{{v.wins}},{{v.winrate}})}} / {{py:v_winrate_next(0.5,{{v.battles}},{{v.wins}},{{v.winrate}})}}</font>" наслаждаемся)) если xvm включен если не активирован
  33. 2 points
  34. 2 points
    Исправил. Обновил скрипт в аддоне Режим прицела.
  35. 2 points
    Ага, оно самое. Но спидометр это не исправило =/
  36. 2 points
    Там всё равно довольно древняя реализация сетевого протокола, мало чем поможет.
  37. 2 points
    Думаю на этой ноте буду заканчивать деятельность связанную с WoT. Ибо для меня уже подобное увлечение не приносит удовольствия. В саму игру я уже давно не играю, последнее что меня держало в ней это два режима (Стальной охотник и Линия фронта). Первый уже мне не так интересен, а второй после переделок вообще не заходит. Продолжал лишь обновлять моды/конфиг/сборку можно сказать что по привычке. Это всегда для меня было лишь хобби которое никогда не приносило никакого дохода. И занимался я этим лишь до того момента как было это самому интересно. Сейчас же интереса совсем не осталось, да и времени тратить уже самому на это все не хочется. Думаю стоит сказать спасибо тем кто пользовался по сей день моими поделками P.S.: Тему на какое то время пока оставлю открытой, но через определенное время закрою её.
  38. 1 point
    @a061vk Try this: https://github.com/hi-skittles/wot-offline-server/. I don't know if it's working, but the author claims it's fully functional* with an asterisk. And who knows what the asterisk means! :D
  39. 1 point
    С последним билдом reloading.py работает без ошибок infoChargedShell.py на WG клиенте не работает:
  40. 1 point
    @HEKPOMAHT баг заключался в том, что я исправил недавно поведение "cellType": "default", чтобы оно было как в клиенте, а не форсило своё поведение. Ибо и так и так похожие реализации уже есть. Ну к тому попросили меня :) А оно сначала сломалось на Lesta, там вообще не было extraFields, а теперь на WG. Починил уже точно. На счёт иконок взводов видел, ещё не смотрел.
  41. 1 point
    @O6opMoT У тебя там не хватает поляков и итальянцев.
  42. 1 point
    @celeron если XVM столкнётся об Лесту, то он просто заигнорит эти настройки. Там всё по умному работает.
  43. 1 point
  44. 1 point
    Правленная банка XVM-а. Говорим спасибо @Polyacov_Yury сюда https://kr.cm/f/t/31848/c/536833/ xvm.bnk
  45. 1 point
    Сколько у тебя звуковых файлов в данном моде?
  46. 1 point
    This is a simple test with the bwmachine daemon 14.4.1. It´s only running on CentOS 7! NOTE: Using CentOS 7 1905.1 (CentOS 7.6) because CentOS 7.7 backported a security fix in systemd that conflicts with the BWT daemon startup. https://bugzilla.redhat.com/show_bug.cgi?id=1662867
  47. 1 point
    @HEKPOMAHT , добрый день. У меня с конфигом от первого числа в ушах команды на иконке Горыныча написано - "Неизвестно". Это так и надо?
  48. 1 point
    @roman-kab Все просто, заходите в тему ночных сборок, смотрите для какой версии игры сборка и скачиваете нужную.
  49. 1 point
  50. 1 point
    Добрый день товарищи, может кто знает есть ли рабочий мод позволяющий отключать только 3d стили. В игре то есть галочки для отключения неисторичных камуфляжей и покрасок, но вот стили он не отключает, ну или же они являются историчными, но мне они совсем не нужны ибо слишком много в последнее время ВГ вешает ненужных элементов( типа зениток, мотоциклов, снегоходов и т.д) как по мне так это уже перебор и выглядит совсем не исторично.
×
×
  • Create New...