Kondr48 314 Опубликовано 31 Декабря 2016 Кто нибудь в курсе про баги с солнцем в ТЧ? Почему-то в старых фиксах, там заставку запускали, чтоб оно появилась. Краем уха что-то слышал про какой-то движковый баг, что оно мол пропадает и все такое. Как лечить и где копать? Поделиться этим сообщением Ссылка на сообщение
Kondr48 314 Опубликовано 31 Декабря 2016 Дизель, ну луна точно пропадала, насчет солнца уверенности нету) Поделиться этим сообщением Ссылка на сообщение
Kondr48 314 Опубликовано 1 Января 2017 (изменено) DDamian724, try this (попробуй так): sun_dir.setHP( deg2rad(pSettings->r_float (S,"sun_altitude")), deg2rad(pSettings->r_float (S,"sun_longitude")) ); I have it working (у меня это работает). Изменено 1 Января 2017 пользователем Kondr48 1 Поделиться этим сообщением Ссылка на сообщение
Kondr48 314 Опубликовано 1 Января 2017 (изменено) Yes, I work in the engine SHoC weather system from CoP (Да, у меня в движке ТЧ система погоды из ЗП). [sect_af3_bright_clear_0] 00:00:00 = af3_bright_clear_0_00 01:00:00 = af3_bright_clear_0_01 02:00:00 = af3_bright_clear_0_02 03:00:00 = af3_bright_clear_0_03 04:00:00 = af3_bright_clear_0_04 04:30:00 = af3_day_clear_00 05:00:00 = af3_day_clear_01 05:30:00 = af3_day_clear_02 06:00:00 = af3_day_clear_03 06:10:00 = af3_day_clear_04 07:00:00 = af3_day_clear_05 08:00:00 = af3_day_clear_06 09:00:00 = af3_day_clear_07 10:00:00 = af3_day_clear_08 11:00:00 = af3_day_clear_09 12:00:00 = af3_day_clear_10 13:00:00 = af3_day_clear_11 14:00:00 = af3_day_clear_12 15:00:00 = af3_day_clear_13 16:00:00 = af3_day_clear_14 17:00:00 = af3_day_clear_15 18:00:00 = af3_day_clear_16 19:00:00 = af3_day_clear_17 19:50:00 = af3_day_clear_18 20:00:00 = af3_day_clear_19 20:30:00 = af3_day_clear_20 21:00:00 = af3_day_clear_21 21:30:00 = af3_day_clear_22 22:00:00 = af3_bright_clear_0_05 23:00:00 = af3_bright_clear_0_06 [af3_bright_clear_0_00] ambient = ambient_env_night ambient_color = 0.007813, 0.007813, 0.007813 clouds_color = 0.000000, 0.000000, 0.000000, 1.000000 clouds_texture = sky\sky_oblaka far_plane = 1000.000000 fog_color = 0.007813, 0.007813, 0.007813 fog_density = 1.000000 fog_distance = 1000.000000 hemisphere_color = 0.574219, 0.621094, 0.726563, 1.000000 rain_color = 0.679688, 0.640625, 0.601563 rain_density = 0.000000 sky_texture = sky\af3_clear\00-00-nm sky_color = 0.378906, 0.378906, 0.378906 sky_rotation = 0.000000 sun = none sun_color = 0.000000, 0.000000, 0.000000 sun_longitude = -26.543000 sun_altitude = 14.870000 sun_shafts_intensity = 0.000000 thunderbolt_collection = thunderbolt_duration = 0.000000 thunderbolt_period = 0.000000 water_intensity = 0.100000 wind_direction = 0.000000 wind_velocity = 0.000000 Part config, where the clock and associated sections, I left as in the original, I feel so comfortable. (Часть конфига, где связаны часы и секции сделаны как и в ТЧ, мне лично так удобнее.) Изменено 1 Января 2017 пользователем Kondr48 Поделиться этим сообщением Ссылка на сообщение
Kondr48 314 Опубликовано 1 Января 2017 (изменено) DDamian724, Yes, here my source code (да, вот файл из исходников): #include "stdafx.h" #pragma hdrstop #include "Environment.h" #include "xr_efflensflare.h" #include "thunderbolt.h" #include "rain.h" #include "resourcemanager.h" //----------------------------------------------------------------------------- // Environment modifier //----------------------------------------------------------------------------- bool CEnvModifier::load (IReader* fs) { // Проверка на корректность файла. Real Wolf. if (fs->tell() + 76 > fs->length()) return false; fs->r_fvector3 (position); // 4*3=12 radius = fs->r_float (); // 4 power = fs->r_float (); // 4 far_plane = fs->r_float (); // 4 fs->r_fvector3 (fog_color); // 4*3=12 fog_density = fs->r_float (); // 4 fs->r_fvector3 (ambient); // 4*3=12 fs->r_fvector3 (sky_color); // 4*3=12 fs->r_fvector3 (hemi_color); // 4*3=12 return true; } float CEnvModifier::sum (CEnvModifier& M, Fvector3& view) { float _dist_sq = view.distance_to_sqr(M.position); if (_dist_sq>=(M.radius*M.radius)) return 0; float _att = 1-_sqrt(_dist_sq)/M.radius; //[0..1]; float _power = M.power*_att; far_plane += M.far_plane*_power; fog_color.mad (M.fog_color,_power); fog_density += M.fog_density*_power; ambient.mad (M.ambient,_power); // lmap_color.mad (M.lmap_color,_power); sky_color.mad (M.sky_color,_power); hemi_color.mad (M.hemi_color,_power); return _power; } //----------------------------------------------------------------------------- // Environment ambient //----------------------------------------------------------------------------- void CEnvAmbient::load(const shared_str& sect) { section = sect; string_path tmp; // sounds if (pSettings->line_exist(sect,"sounds")){ Fvector2 t = pSettings->r_fvector2 (sect,"sound_period"); sound_period.set(iFloor(t.x*1000.f),iFloor(t.y*1000.f)); sound_dist = pSettings->r_fvector2 (sect,"sound_dist"); if (sound_dist[0]>sound_dist[1]) std::swap(sound_dist[0],sound_dist[1]); LPCSTR snds = pSettings->r_string (sect,"sounds"); u32 cnt = _GetItemCount(snds); if (cnt){ sounds.resize(cnt); for (u32 k=0; k<cnt; ++k) sounds[k].create(_GetItem(snds,k,tmp),st_Effect,sg_SourceType); } } // effects if (pSettings->line_exist(sect,"effects")){ Fvector2 t = pSettings->r_fvector2 (sect,"effect_period"); effect_period.set(iFloor(t.x*1000.f),iFloor(t.y*1000.f)); LPCSTR effs = pSettings->r_string (sect,"effects"); u32 cnt = _GetItemCount(effs); if (cnt){ effects.resize(cnt); for (u32 k=0; k<cnt; ++k){ _GetItem(effs,k,tmp); effects[k].life_time = iFloor(pSettings->r_float(tmp,"life_time")*1000.f); effects[k].particles = pSettings->r_string (tmp,"particles"); VERIFY(effects[k].particles.size()); effects[k].offset = pSettings->r_fvector3 (tmp,"offset"); effects[k].wind_gust_factor = pSettings->r_float (tmp,"wind_gust_factor"); if (pSettings->line_exist(tmp,"sound")) effects[k].sound.create (pSettings->r_string(tmp,"sound"),st_Effect,sg_SourceType); } } } #ifndef DEBUG VERIFY(!sounds.empty() || !effects.empty()); #endif } //----------------------------------------------------------------------------- // Environment descriptor //----------------------------------------------------------------------------- CEnvDescriptor::CEnvDescriptor() { exec_time = 0.0f; exec_time_loaded = 0.0f; clouds_color.set (1,1,1,1); sky_color.set (1,1,1); sky_rotation = 0.0f; far_plane = 400.0f;; fog_color.set (1,1,1); fog_density = 0.0f; fog_distance = 400.0f; rain_density = 0.0f; rain_color.set (0,0,0); bolt_period = 0.0f; bolt_duration = 0.0f; wind_velocity = 0.0f; wind_direction = 0.0f; ambient.set (0,0,0); hemi_color.set (1,1,1,1); sun_color.set (1,1,1); sun_dir.set (0,-1,0); m_fSunShaftsIntensity = 0; m_fWaterIntensity = 1; //m_fColorGrading.set (0,0,0); lens_flare_id = -1; tb_id = -1; env_ambient = NULL; } #define C_CHECK(C) if (C.x<0 || C.x>2 || C.y<0 || C.y>2 || C.z<0 || C.z>2) { Msg("! Invalid '%s' in env-section '%s'",#C,S);} void CEnvDescriptor::load (LPCSTR exec_tm, LPCSTR S, CEnvironment* parent) { Ivector3 tm ={0,0,0}; sscanf (exec_tm,"%d:%d:%d",&tm.x,&tm.y,&tm.z); R_ASSERT3 ((tm.x>=0)&&(tm.x<24)&&(tm.y>=0)&&(tm.y<60)&&(tm.z>=0)&&(tm.z<60),"Incorrect weather time",S); exec_time = tm.x*3600.f+tm.y*60.f+tm.z; exec_time_loaded = exec_time; string_path st,st_env; strcpy_s (st,pSettings->r_string (S,"sky_texture")); strconcat (sizeof(st_env),st_env,st,"#small" ); sky_texture_name = st; sky_texture_env_name = st_env; clouds_texture_name = pSettings->r_string (S,"clouds_texture"); LPCSTR cldclr = pSettings->r_string (S,"clouds_color"); float multiplier = 0, save=0; sscanf (cldclr,"%f,%f,%f,%f,%f",&clouds_color.x,&clouds_color.y,&clouds_color.z,&clouds_color.w,&multiplier); save=clouds_color.w; clouds_color.mul (.5f*multiplier); clouds_color.w = save; sky_color = pSettings->r_fvector3 (S,"sky_color"); sky_color.mul(.5f); if (pSettings->line_exist(S,"sky_rotation")) sky_rotation = deg2rad(pSettings->r_float(S,"sky_rotation")); else sky_rotation = 0; far_plane = pSettings->r_float (S,"far_plane"); fog_color = pSettings->r_fvector3 (S,"fog_color"); fog_density = pSettings->r_float (S,"fog_density"); fog_distance = pSettings->r_float (S,"fog_distance"); rain_density = pSettings->r_float (S,"rain_density"); clamp(rain_density,0.f,1.f); rain_color = pSettings->r_fvector3 (S,"rain_color"); wind_velocity = pSettings->r_float (S,"wind_velocity"); wind_direction = deg2rad(pSettings->r_float(S,"wind_direction")); ambient = pSettings->r_fvector3 (S,"ambient"); hemi_color = pSettings->r_fvector4 (S,"hemisphere_color"); sun_color = pSettings->r_fvector3 (S,"sun_color"); sun_dir.setHP( deg2rad(pSettings->r_float (S,"sun_altitude")), deg2rad(pSettings->r_float (S,"sun_longitude")) ); R_ASSERT(_valid(sun_dir)); VERIFY2(sun_dir.y < 0, "Invalid sun direction settings while loading"); lens_flare_id = parent->eff_LensFlare->AppendDef(pSettings,pSettings->r_string(S,"sun")); tb_id = parent->eff_Thunderbolt->AppendDef(pSettings,pSettings->r_string(S,"thunderbolt_collection")); bolt_period = (tb_id>=0)?pSettings->r_float (S,"thunderbolt_period"):0.f; bolt_duration = (tb_id>=0)?pSettings->r_float (S,"thunderbolt_duration"):0.f; env_ambient = pSettings->line_exist(S,"env_ambient")?parent->AppendEnvAmb (pSettings->r_string(S,"env_ambient")):0; if (pSettings->line_exist(S,"sun_shafts_intensity")) m_fSunShaftsIntensity = pSettings->r_float (S,"sun_shafts_intensity"); if (pSettings->line_exist(S,"water_intensity")) m_fWaterIntensity = pSettings->r_float (S,"water_intensity"); /*if (pSettings->line_exist(S,"color_grading")) m_fColorGrading = pSettings->r_fvector3 (S,"color_grading");*/ C_CHECK (clouds_color); C_CHECK (sky_color ); C_CHECK (fog_color ); C_CHECK (rain_color ); C_CHECK (ambient ); // C_CHECK (lmap_color ); C_CHECK (hemi_color ); C_CHECK (sun_color ); on_device_create (); } void CEnvDescriptor::on_device_create () { if (sky_texture_name.size()) sky_texture.create (sky_texture_name.c_str()); if (sky_texture_env_name.size())sky_texture_env.create (sky_texture_env_name.c_str()); if (clouds_texture_name.size()) clouds_texture.create (clouds_texture_name.c_str()); } void CEnvDescriptor::on_device_destroy () { sky_texture.destroy (); sky_texture_env.destroy (); clouds_texture.destroy (); } //----------------------------------------------------------------------------- // Environment Mixer //----------------------------------------------------------------------------- void CEnvDescriptorMixer::destroy() { sky_r_textures.clear (); sky_r_textures_env.clear (); clouds_r_textures.clear (); sky_texture.destroy (); sky_texture_env.destroy (); clouds_texture.destroy (); } void CEnvDescriptorMixer::clear () { std::pair<u32,ref_texture> zero = mk_pair(u32(0),ref_texture(0)); sky_r_textures.clear (); sky_r_textures.push_back (zero); sky_r_textures.push_back (zero); sky_r_textures.push_back (zero); sky_r_textures_env.clear (); sky_r_textures_env.push_back(zero); sky_r_textures_env.push_back(zero); sky_r_textures_env.push_back(zero); clouds_r_textures.clear (); clouds_r_textures.push_back (zero); clouds_r_textures.push_back (zero); clouds_r_textures.push_back (zero); } int get_ref_count(IUnknown* ii); void CEnvDescriptorMixer::lerp (CEnvironment* , CEnvDescriptor& A, CEnvDescriptor& B, float f, CEnvModifier& M, float m_power) { float _power = 1.f/(m_power+1); // the environment itself float fi = 1-f; sky_r_textures.clear (); sky_r_textures.push_back (mk_pair(0,A.sky_texture)); sky_r_textures.push_back (mk_pair(1,B.sky_texture)); sky_r_textures_env.clear (); sky_r_textures_env.push_back(mk_pair(0,A.sky_texture_env)); sky_r_textures_env.push_back(mk_pair(1,B.sky_texture_env)); clouds_r_textures.clear (); clouds_r_textures.push_back (mk_pair(0,A.clouds_texture)); clouds_r_textures.push_back (mk_pair(1,B.clouds_texture)); weight = f; clouds_color.lerp (A.clouds_color,B.clouds_color,f); sky_rotation = (fi*A.sky_rotation + f*B.sky_rotation); far_plane = (fi*A.far_plane + f*B.far_plane + M.far_plane)*psVisDistance*_power; fog_color.lerp (A.fog_color,B.fog_color,f).add(M.fog_color).mul(_power); fog_density = (fi*A.fog_density + f*B.fog_density + M.fog_density)*_power; fog_distance = (fi*A.fog_distance + f*B.fog_distance); fog_near = (1.0f - fog_density)*0.85f * fog_distance; fog_far = 0.99f * fog_distance; rain_density = fi*A.rain_density + f*B.rain_density; rain_color.lerp (A.rain_color,B.rain_color,f); bolt_period = fi*A.bolt_period + f*B.bolt_period; bolt_duration = fi*A.bolt_duration + f*B.bolt_duration; // wind wind_velocity = fi*A.wind_velocity + f*B.wind_velocity; wind_direction = fi*A.wind_direction + f*B.wind_direction; m_fSunShaftsIntensity = fi*A.m_fSunShaftsIntensity + f*B.m_fSunShaftsIntensity; m_fWaterIntensity = fi*A.m_fWaterIntensity + f*B.m_fWaterIntensity; //m_fColorGrading.lerp (A.m_fColorGrading,B.m_fColorGrading,f); // colors sky_color.lerp (A.sky_color,B.sky_color,f).add(M.sky_color).mul(_power); ambient.lerp (A.ambient,B.ambient,f).add(M.ambient).mul(_power); hemi_color.lerp (A.hemi_color,B.hemi_color,f); hemi_color.x += M.hemi_color.x; hemi_color.y += M.hemi_color.y; hemi_color.z += M.hemi_color.z; hemi_color.x *= _power; hemi_color.y *= _power; hemi_color.z *= _power; sun_color.lerp (A.sun_color,B.sun_color,f); sun_dir.lerp (A.sun_dir,B.sun_dir,f).normalize(); VERIFY2 (sun_dir.y<0,"Invalid sun direction settings while lerp"); } //----------------------------------------------------------------------------- // Environment IO //----------------------------------------------------------------------------- CEnvAmbient* CEnvironment::AppendEnvAmb (const shared_str& sect) { for (EnvAmbVecIt it=Ambients.begin(); it!=Ambients.end(); it++) if ((*it)->name().equal(sect)) return *it; Ambients.push_back (xr_new<CEnvAmbient>()); Ambients.back()->load (sect); return Ambients.back(); } void CEnvironment::mods_load () { Modifiers.clear_and_free (); string_path path; if (FS.exist(path,"$level$","level.env_mod")) { IReader* fs = FS.r_open (path); u32 id = 0; while (fs->find_chunk(id)) { CEnvModifier E; // Надо обязательно проверять, что файл корректный, даже если чанк был найден. Real Wolf. if (!E.load(fs)) break; Modifiers.push_back (E); id ++; } FS.r_close (fs); } } void CEnvironment::mods_unload () { Modifiers.clear_and_free (); } void CEnvironment::load () { tonemap = Device.Resources->_CreateTexture("$user$tonemap"); //. hack if (!eff_Rain) eff_Rain = xr_new<CEffect_Rain>(); if (!eff_LensFlare) eff_LensFlare = xr_new<CLensFlare>(); if (!eff_Thunderbolt) eff_Thunderbolt = xr_new<CEffect_Thunderbolt>(); // load weathers if (WeatherCycles.empty()){ LPCSTR first_weather=0; int weather_count = pSettings->line_count("weathers"); for (int w_idx=0; w_idx<weather_count; w_idx++){ LPCSTR weather, sect_w; if (pSettings->r_line("weathers",w_idx,&weather,§_w)){ if (0==first_weather) first_weather=weather; int env_count = pSettings->line_count(sect_w); LPCSTR exec_tm, sect_e; for (int env_idx=0; env_idx<env_count; env_idx++){ if (pSettings->r_line(sect_w,env_idx,&exec_tm,§_e)){ CEnvDescriptor* D=xr_new<CEnvDescriptor>(); D->load (exec_tm,sect_e,this); WeatherCycles[weather].push_back (D); #ifdef DEBUG D->sect_name = sect_e; #endif } } } } // sorting weather envs EnvsMapIt _I=WeatherCycles.begin(); EnvsMapIt _E=WeatherCycles.end(); for (; _I!=_E; _I++){ R_ASSERT3 (_I->second.size()>1,"Environment in weather must >=2",*_I->first); std::sort(_I->second.begin(),_I->second.end(),sort_env_etl_pred); } R_ASSERT2 (!WeatherCycles.empty(),"Empty weathers."); SetWeather (first_weather); } // load weather effects if (WeatherFXs.empty()){ int line_count = pSettings->line_count("weather_effects"); for (int w_idx=0; w_idx<line_count; w_idx++){ LPCSTR weather, sect_w; if (pSettings->r_line("weather_effects",w_idx,&weather,§_w)){ EnvVec& env = WeatherFXs[weather]; env.push_back (xr_new<CEnvDescriptor>()); env.back()->exec_time_loaded = 0; env.push_back (xr_new<CEnvDescriptor>()); env.back()->exec_time_loaded = 0; int env_count = pSettings->line_count(sect_w); LPCSTR exec_tm, sect_e; for (int env_idx=0; env_idx<env_count; env_idx++){ if (pSettings->r_line(sect_w,env_idx,&exec_tm,§_e)){ CEnvDescriptor* D=xr_new<CEnvDescriptor>(); D->load (exec_tm,sect_e,this); env.push_back (D); #ifdef DEBUG D->sect_name = sect_e; #endif } } env.push_back (xr_new<CEnvDescriptor>()); env.back()->exec_time_loaded = DAY_LENGTH; } } // sorting weather envs EnvsMapIt _I=WeatherFXs.begin(); EnvsMapIt _E=WeatherFXs.end(); for (; _I!=_E; _I++){ R_ASSERT3 (_I->second.size()>1,"Environment in weather must >=2",*_I->first); std::sort(_I->second.begin(),_I->second.end(),sort_env_etl_pred); } } } void CEnvironment::unload () { EnvsMapIt _I,_E; // clear weathers _I = WeatherCycles.begin(); _E = WeatherCycles.end(); for (; _I!=_E; _I++){ for (EnvIt it=_I->second.begin(); it!=_I->second.end(); it++) xr_delete (*it); } WeatherCycles.clear (); // clear weather effect _I = WeatherFXs.begin(); _E = WeatherFXs.end(); for (; _I!=_E; _I++){ for (EnvIt it=_I->second.begin(); it!=_I->second.end(); it++) xr_delete (*it); } WeatherFXs.clear (); // clear ambient for (EnvAmbVecIt it=Ambients.begin(); it!=Ambients.end(); it++) xr_delete (*it); Ambients.clear (); // misc xr_delete (eff_Rain); xr_delete (eff_LensFlare); xr_delete (eff_Thunderbolt); CurrentWeather = 0; CurrentWeatherName = 0; CurrentEnv.clear (); Invalidate (); tonemap = 0; } Maybe Google translation is not entirely correct, I do not have a full port of Call of Pripyat system, but only partially. I stayed on a small part of the Shadow of Chernobyl weather system. (Может быть гугл переводит не совсем корректно, у меня не полный порт системы ЗП, а только частичный. У меня осталась от ТЧ небольшая часть погодной системы.) Изменено 1 Января 2017 пользователем Kondr48 1 Поделиться этим сообщением Ссылка на сообщение
Kondr48 314 Опубликовано 6 Января 2017 Как можно ускорить сборку исходников? Надоело собирать xr_game по полчаса, причем не пересборка, а именно build так долго идет... Поделиться этим сообщением Ссылка на сообщение
Kondr48 314 Опубликовано 7 Января 2017 (изменено) Что вообще делает функция UpdateXForm() у худовых предметов? void CArtefact::UpdateXForm() { if (Device.dwFrame!=dwXF_Frame) { dwXF_Frame = Device.dwFrame; if (0==H_Parent()) return; // Get access to entity and its visual CEntityAlive* E = smart_cast<CEntityAlive*>(H_Parent()); if(!E) return ; const CInventoryOwner *parent = smart_cast<const CInventoryOwner*>(E); if (parent && parent->use_simplified_visual()) return; VERIFY (E); CKinematics* V = smart_cast<CKinematics*> (E->Visual()); VERIFY (V); // Get matrices int boneL,boneR,boneR2; E->g_WeaponBones (boneL,boneR,boneR2); boneL = boneR2; V->CalculateBones (); Fmatrix& mL = V->LL_GetTransform(u16(boneL)); Fmatrix& mR = V->LL_GetTransform(u16(boneR)); // Calculate Fmatrix mRes; Fvector R,D,N; D.sub (mL.c,mR.c); D.normalize_safe(); R.crossproduct (mR.j,D); R.normalize_safe(); N.crossproduct (D,R); N.normalize_safe(); mRes.set (R,N,D,mR.c); mRes.mulA_43 (E->XFORM()); // UpdatePosition (mRes); XFORM().mul (mRes,offset()); } } Изменено 7 Января 2017 пользователем Kondr48 Поделиться этим сообщением Ссылка на сообщение
Kondr48 314 Опубликовано 7 Января 2017 (изменено) Дизель, User_X.A.R26 это пересборка прям? Или просто build?--- Правильно ли я понял, что "конструкции" типа: void CCustomDetector::OnH_A_Chield() { inherited::OnH_A_Chield (); } По сути служат для того чтобы продублировать в дочернем классе аналогичную функцию родительского и добавить что-то свое? В таком случае есть ли толк от такой "пустой" функции? Изменено 7 Января 2017 пользователем Kondr48 Поделиться этим сообщением Ссылка на сообщение
Kondr48 314 Опубликовано 8 Января 2017 Кто сидит на исходниках ТЧ, что делали со звуком? Поделиться этим сообщением Ссылка на сообщение
Kondr48 314 Опубликовано 9 Января 2017 Graff46, XE есть колбеки на помещение предмета в слот и рюкзак, а также в 7 патче. Можно использовать их и просто проверять костюм ли там или нет. Поделиться этим сообщением Ссылка на сообщение
Kondr48 314 Опубликовано 11 Января 2017 (изменено) Дизель, тогда уж просто в движке наделать сколько душе угодно кнопок, зачем дублировать список элементов и в каждом оставлять по одному? Другое дело что мельком глянув этот файл в движке я в нем никакой "очередности" не увидел. Просто грузится эта самая shniaga либо одна, либо та где первой стоит пункт последнее сохранение. И у меня очень сильное чувство что найти ее, как и поменять порядок надписей можно в конфиге. Изменено 12 Января 2017 пользователем Kondr48 1 Поделиться этим сообщением Ссылка на сообщение
Kondr48 314 Опубликовано 12 Января 2017 Sergej1, открывайте исходники, ищите все, что связано с поясом и дублируйте 1 Поделиться этим сообщением Ссылка на сообщение
Kondr48 314 Опубликовано 12 Января 2017 Sergej1, это будет не слот уже а пояс новый, что будет несколько дольше по времени в плане реализации. Но опять же решается на уровне исходников. Поделиться этим сообщением Ссылка на сообщение
Kondr48 314 Опубликовано 13 Января 2017 (изменено) Могу путать, но слышал там даже в конфигах где-то параметр типа магнитуды что ли, с какими то магическими числами, вот его кто-то убирал и нормальный результат получал. Ну да: <value x="140" y="0" width="30" height="20" magnitude="6600"> <text font="letterica16" vert_align="c"/> </value> Изменено 13 Января 2017 пользователем Kondr48 1 Поделиться этим сообщением Ссылка на сообщение
Kondr48 314 Опубликовано 13 Января 2017 А что за класс такой TextWnd в ЗП? В справочнике по функциям и классам написано, что это вроде попытки восстановить потерянный функционал CUIStatic. Собственно так ли это или в нем есть что-то представляющее ценность? Поделиться этим сообщением Ссылка на сообщение
Kondr48 314 Опубликовано 13 Января 2017 mortan, в player_hud руки и ствол соединяются. Разные же модели. Тем более худовые. Мне кажется это ближе) Поделиться этим сообщением Ссылка на сообщение
Kondr48 314 Опубликовано 13 Января 2017 mortan, насчет мировой не в курсе) Что за функция xr_strcpy и подобные в сорцах зп? Они где прописываются чтобы в ТЧ использовать? Поделиться этим сообщением Ссылка на сообщение
Kondr48 314 Опубликовано 15 Января 2017 @Дизель, ладно, 1.0007 RC1 чем тогда собирать? А можно с репозитория xr-dev скачать исходники и не придется тонны ошибок фиксить. Поделиться этим сообщением Ссылка на сообщение
Kondr48 314 Опубликовано 17 Января 2017 Winsor, KD же фиксил на репозитории XR-DEV. Поделиться этим сообщением Ссылка на сообщение
Kondr48 314 Опубликовано 13 Февраля 2017 DoK74rus, обычно статику вырезают, а тот вон оно как)--- Кто разбирался с детекторами в ЗП/ЧН? if(m_artefacts.m_ItemInfos.size()==0) return; Вот где этот лист формируется и наполняется артефактами? Никак не могу понять. Поделиться этим сообщением Ссылка на сообщение