XRay இன்ஜின் பிழை: விளக்கம் மற்றும் சரிசெய்தல்

S.T.A.L.K.E.R.: Shadow of Chernobyl விளையாட்டிற்காக X-Ray ஆனது உக்ரேனிய நிறுவனமான GSC கேம்வேர்ல்டால் உருவாக்கப்பட்டது. DirectX 8.1/9.0c/10/10.1/11, இயற்பியல் மற்றும் ஒலி இயந்திரங்கள், மல்டிபிளேயர் மற்றும் A-Life செயற்கை நுண்ணறிவு அமைப்பு ஆகியவற்றிற்கான ஆதரவுடன் ரெண்டரிங் இந்த எஞ்சினில் அடங்கும். பின்னர், நிறுவனம் அதன் இயந்திரத்தின் பதிப்பு 2.0 ஐ உருவாக்கியது புதிய விளையாட்டு, ஆனால் மேம்பாடு நிறுத்தப்பட்டது மற்றும் மூல குறியீடுகள் ஆன்லைனில் கசிந்தன.

திட்டமானது, அதன் அனைத்து சார்புகளுடன், விஷுவல் ஸ்டுடியோ 2015 இல் எளிதாகச் சேகரிக்கப்படுகிறது. சோதனைக்காக, GitHub களஞ்சியத்திலிருந்து எஞ்சின் பதிப்பு 1.6 இன் மூலக் குறியீட்டைப் பயன்படுத்தினோம் மற்றும் நிலையான குறியீடு பகுப்பாய்வி PVS-Studio 6.04 ஐப் பயன்படுத்தினோம். இணைப்பு.

நகல்-ஒட்டு

முதலில், குறியீட்டை நகலெடுப்பதில் தொடர்புடைய பிழைகளைப் பார்ப்போம். வெவ்வேறு நிகழ்வுகளில் அவை நிகழும் காட்சி பொதுவாக ஒரே மாதிரியாக இருக்கும்: அவை குறியீட்டை நகலெடுத்தன, சில மாறிகளை மாற்றின, மேலும் சிலவற்றை மறந்துவிட்டன. இத்தகைய பிழைகள் கோட்பேஸ் மூலம் விரைவாக பரவக்கூடும், மேலும் நிலையான பகுப்பாய்வி இல்லாமல் அவை தவறவிடுவது மிகவும் எளிதானது.

MxMatrix& MxQuadric::ஒரே மாதிரியான(MxMatrix&H) const ( .... unsigned int i, j; for(i=0; i) எச்சரிக்கை PVS-ஸ்டுடியோ: V533 "for" ஆபரேட்டருக்குள் ஒரு தவறான மாறி அதிகரிக்கப்பட்டிருக்கலாம். "i" ஐ மதிப்பாய்வு செய்யவும். mxqmetric.cpp 76

பகுப்பாய்வி அதை உள்ளமைக்கப்பட்ட வளையத்தில் கண்டறிந்தது க்கானமாறி அதிகரிக்கப்படுகிறது நான், மற்றும் மாறி சரிபார்க்கப்பட்டது ஜே, இது ஒரு எல்லையற்ற வளையத்திற்கு வழிவகுக்கிறது. பெரும்பாலும், நகலெடுக்கும்போது அதை மாற்ற மறந்துவிட்டார்கள்.
void CBaseMonster::settings_read(CInifile const * ini, LPCSTR பிரிவு, SMonsterSettings &data) ( .... if (ini->line_exist(ppi_section,"color_base")) sscanf(ini->r_string(ppi_section,"color_base"), "%f,%f,%f", &data.m_attack_effector.ppi.color_base.r, &data.m_attack_effector.ppi.color_base.g, &data.m_attack_effector.ppi.color_base.b); என்றால் (ini->line_exist(ppi_section) ,"color_base")) sscanf(ini->r_string(ppi_section,"color_gray"), "%f,%f,%f", &data.m_attack_effector.ppi.color_gray.r, &data.m_attack_effector.ppi.color_gray.g , &data.m_attack_effector.ppi.color_gray.b); என்றால் (ini->line_exist(ppi_section,"color_base")) sscanf(ini->r_string(ppi_section,"color_add"), "%f,%f,%f" , &data.m_attack_effector.ppi.color_add.r, &data.m_attack_effector.ppi.color_add.g, &data.m_attack_effector.ppi.color_add.b); .... )
PVS-ஸ்டுடியோ எச்சரிக்கைகள்:

  • V581 "if" ஆபரேட்டர்களின் நிபந்தனை வெளிப்பாடுகள் ஒன்றோடொன்று ஒன்றாக இருக்கும். வரிகளை சரிபார்க்கவும்: 445, 447. base_monster_startup.cpp 447
  • V581 "if" ஆபரேட்டர்களின் நிபந்தனை வெளிப்பாடுகள் ஒன்றோடொன்று ஒன்றாக இருக்கும். வரிகளை சரிபார்க்கவும்: 447, 449. base_monster_startup.cpp 449
இந்த துண்டில், ஒரே மாதிரியான பல நிபந்தனை வெளிப்பாடுகள் ஒரு வரிசையில் பயன்படுத்தப்படுகின்றன. வெளிப்படையாக, அது மாற்றப்பட வேண்டும் நிறம்_அடிப்படைஅன்று நிறம்_சாம்பல்மற்றும் நிறம்_சேர்உடலில் உள்ள குறியீட்டின் படி என்றால்கிளைகள் .
/* ஒரு ஒற்றை அறிக்கையை செயலாக்கு */ நிலையான வெற்றிடமான ProcessStatement(char *buff, int len) ( .... if (strncmp(buff,"\\pauthr\\",8) == 0) ( ProcessPlayerAuth(buff, len ); ) இல்லையெனில் (strncmp(buff,"\\getpidr\\",9) == 0) (ProcessGetPid(buff, len); ) இல்லையெனில் (strncmp(buff,"\\getpidr\\",9) == 0) (ProcessGetPid(buff, len); ) else if (strncmp(buff,"\\getpdr\\",8) == 0) (ProcessGetData(buff, len); ) else if (strncmp(buff, "\\setpdr\\",8) == 0) (ProcessSetData(buff, len); ) )
எச்சரிக்கை PVS-ஸ்டுடியோ: V517 "if (A) (...) else if (A) (...)" வடிவத்தின் பயன்பாடு கண்டறியப்பட்டது. தருக்கப் பிழை இருப்பதற்கான நிகழ்தகவு உள்ளது. வரிகளை சரிபார்க்கவும்: 1502, 1505. gstats.c 1502

முந்தைய எடுத்துக்காட்டில், இங்கே இரண்டு ஒத்த நிபந்தனைகள் பயன்படுத்தப்படுகின்றன ( strncmp(buff,"\\getpidr\\",9) == 0) இது ஒரு பிழையா அல்லது அணுக முடியாத குறியீட்டா என்பதை உறுதியாகக் கூறுவது கடினம், ஆனால் இது நிச்சயமாக கவனம் செலுத்துவது மதிப்பு. உடன் தொகுதிகள் இருக்க வேண்டும் என்பது சாத்தியம் getpidr/setpidrஉடன் ஒப்புமை மூலம் getpdr/setpdr.
வகுப்பு RGBAMipMappedCubeMap ( .... size_t உயரம்() const ( return cubeFaces.height(); ) size_t width() const ( return cubeFaces.height(); ) .... );
எச்சரிக்கை PVS-ஸ்டுடியோ: V524 "அகல" செயல்பாட்டின் உடல் "உயரம்" செயல்பாட்டின் உடலுக்கு முழுமையாகச் சமமாக இருப்பது விந்தையானது. tpixel.h 1090

முறைகள் உயரம் ()மற்றும் அகலம் ()அதே உடல் வேண்டும். கனசதுரத்தின் முகங்களின் பரிமாணங்கள் கணக்கிடப்படுவதைக் கருத்தில் கொண்டு, இங்கே பிழை இல்லாமல் இருக்கலாம். ஆனால் முறையை மாற்றி எழுதுவது நல்லது அகலம் ()பின்வரும் வழியில்:
size_t அகலம்() const ( திரும்ப cubeFaces.width(); )

C++ இன் தவறான பயன்பாடு

C++ என்பது ப்ரோக்ராமருக்குப் பல வாய்ப்புகளைத் தரும் அற்புதமான மொழி... குறிப்பாக கொடூரமான முறையில் தன்னைத்தானே காலில் சுட்டுக்கொள்ள. வரையறுக்கப்படாத நடத்தை, நினைவக கசிவுகள் மற்றும், நிச்சயமாக, எழுத்துப்பிழைகள் - இந்த வகையான பிழைகள் தற்போதைய பிரிவில் விவாதிக்கப்படும்.

டெம்ப்ளேட் struct _matrix33 (பொது: typedef _matrix33 சுய; typedef Self& SelfRef; .... IC SelfRef sMTxV(Tvector& R, float s1, const Tvector& V1) const ( R.x = s1*(m * V1.x + m * V1.y + m * V1.z); R.y = s1*(m * V1.x + m * V1.y + m * V1.z); R.z = s1*(m * V1.x + m * V1.y + m * V1.z); ) .... )
எச்சரிக்கை PVS-ஸ்டுடியோ: V591 வெற்றிடமற்ற செயல்பாடு மதிப்பை வழங்கும். _matrix33.h 435

முறையின் முடிவில் தவிர்க்கப்பட்டது திரும்ப *இது. தரநிலையின்படி, அத்தகைய குறியீடு வரையறுக்கப்படாத நடத்தைக்கு வழிவகுக்கும். திரும்பும் மதிப்பு ஒரு குறிப்பு என்பதால், இது பெரும்பாலும் திரும்பும் மதிப்பை அணுக முயற்சிக்கும்போது நிரல் செயலிழக்கச் செய்யும்.
ETOOLS_API int __stdcall ogg_enc(....) ( .... FILE *in, *out = NULL; .... input_format *format; .... in = fopen(in_fn, "rb"); if(in == NULL) திரும்ப 0; வடிவம் = open_audio_file(in, &enc_opts); if(!format)( fclose(in); return 0; ); out = fopen(out_fn, "wb"); if(out == NULL) (fclose(out); return 0; ) .... )
எச்சரிக்கை PVS-ஸ்டுடியோ: V575 பூஜ்ய சுட்டிக்காட்டி "fclose" செயல்பாட்டிற்கு அனுப்பப்பட்டது. முதல் வாதத்தை ஆய்வு செய்யவும். ogg_enc.cpp 47

மிகவும் சுவாரஸ்யமான உதாரணம். அழைப்பில் வாதம் இருப்பதை பகுப்பாய்வி கண்டறிந்தது fcloseசமம் nullptr, செயல்பாடு அழைப்பை அர்த்தமற்றதாக்குகிறது. ஓடை மூடப்பட்டிருக்க வேண்டும் என்று கருதலாம் உள்ளே
void NVI_Image::ABGR8_To_ARGB8() (// அனைத்து பிக்சல்களுக்கும் RGB ஐ மாற்றுகிறது உறுதி(IsDataValid()); உறுதிப்படுத்து(GetBytesPerPixel() == 4); UINT hxw = GetNumPixels(); (UINT i = 0;க்கு;< hxw; i++) { DWORD col; GetPixel_ARGB8(&col, i); DWORD a = (col >> 24) && 0x000000FF; DWORD b = (col >> 16) && 0x000000FF; DWORD g = (col >> 8) && 0x000000FF; DWORD r = (col >> 0) && 0x000000FF; கோல் = (அ<< 24) | (r << 16) | (g << 8) | b; SetPixel_ARGB8(i, col); } }
PVS-ஸ்டுடியோ எச்சரிக்கைகள்:

  • V560 நிபந்தனை வெளிப்பாட்டின் ஒரு பகுதி எப்போதும் உண்மை: 0x000000FF. nvi_image.cpp 170
  • V560 நிபந்தனை வெளிப்பாட்டின் ஒரு பகுதி எப்போதும் உண்மை: 0x000000FF. nvi_image.cpp 171
  • V560 நிபந்தனை வெளிப்பாட்டின் ஒரு பகுதி எப்போதும் உண்மை: 0x000000FF. nvi_image.cpp 172
  • V560 நிபந்தனை வெளிப்பாட்டின் ஒரு பகுதி எப்போதும் உண்மை: 0x000000FF. nvi_image.cpp 173
குறியீட்டின் இந்த பிரிவில், தருக்க மற்றும் பிட் செயல்பாடுகள் கலக்கப்படுகின்றன. இதன் விளைவாக புரோகிராமர் எதிர்பார்த்தபடி இருக்காது: colஉள்ளீட்டுத் தரவைப் பொருட்படுத்தாமல் எப்போதும் 0x01010101 க்கு சமமாக இருக்கும்.

சரியான விருப்பம்:
DWORD a = (col >> 24) & 0x000000FF; DWORD b = (col >> 16) & 0x000000FF; DWORD g = (col >> 8) & 0x000000FF; DWORD r = (col >> 0) & 0x000000FF;
விசித்திரமான குறியீட்டின் மற்றொரு எடுத்துக்காட்டு:
VertexCache::VertexCache() ( VertexCache(16); )
எச்சரிக்கை PVS-ஸ்டுடியோ: V603 பொருள் உருவாக்கப்பட்டது ஆனால் அது பயன்படுத்தப்படவில்லை. நீங்கள் கன்ஸ்ட்ரக்டரை அழைக்க விரும்பினால், "this->VertexCache::VertexCache(....)" பயன்படுத்தப்பட வேண்டும். vertexcache.cpp 6

ஒரு நிகழ்வைத் தொடங்குவதற்கு ஒரு கட்டமைப்பாளரிடமிருந்து மற்றொருவரை அழைப்பதற்குப் பதிலாக, ஒரு புதிய வகை பொருள் உருவாக்கப்பட்டு உடனடியாக அழிக்கப்படும். வெர்டெக்ஸ் கேச். இதன் விளைவாக, உருவாக்கப்பட்ட பொருளின் உறுப்பினர்கள் துவக்கப்படாமல் இருப்பார்கள்.
BOOL CActor::net_Spawn(CSE_Abstract* DC) ( .... m_States.empty(); .... )
எச்சரிக்கை PVS-ஸ்டுடியோ: V530 "காலி" செயல்பாட்டின் வருவாய் மதிப்பு பயன்படுத்தப்பட வேண்டும். actor_network.cpp 657

செயல்பாட்டின் மூலம் வழங்கப்பட்ட மதிப்பு பயன்படுத்தப்படவில்லை என்று பகுப்பாய்வி எச்சரிக்கிறது. புரோகிராமர் முறைகளை கலக்கியது போல் தெரிகிறது காலியாக()மற்றும் தெளிவான (): காலியாக()வரிசையை அழிக்கவில்லை, ஆனால் அது காலியாக உள்ளதா என சரிபார்க்கிறது.

பல்வேறு திட்டங்களில் இத்தகைய பிழைகள் அடிக்கடி நிகழ்கின்றன. பிரச்சனை என்னவென்றால் பெயர் காலியாக()வெளிப்படையாக இல்லை: சிலர் அதை ஒரு செயலாக உணர்கிறார்கள் - நீக்கம். அத்தகைய தெளிவின்மை எழுவதைத் தடுக்க, வினைச்சொற்களை முறையின் தொடக்கத்தில் சேர்ப்பது நல்லது: உண்மையில், காலியாக உள்ளது()உடன் தெளிவான ()குழப்புவது கடினம்.

இதே போன்ற எச்சரிக்கை:

V530 "தனித்துவம்" செயல்பாட்டின் வருவாய் மதிப்பு பயன்படுத்தப்பட வேண்டும். uidragdroplistex.cpp 780
size_t xrDebug::BuildStackTrace(EXCEPTION_POINTERS* exPtrs, char *buffer, size_t திறன், size_t linecapacity) ( memset(buffer, capacity*linecapacity, 0); .... )
எச்சரிக்கை PVS-ஸ்டுடியோ: V575 "memset" செயல்பாடு "0" உறுப்புகளை செயலாக்குகிறது. மூன்றாவது வாதத்தை ஆராயுங்கள். xrdbug.cpp 104

அழைக்கும் போது மெம்செட்வாதங்கள் இடமாற்றம் செய்யப்படுகின்றன, இதன் விளைவாக தாங்கல் முதலில் விரும்பியபடி மீட்டமைக்கப்படவில்லை. இது போன்ற பிழையானது ஒரு திட்டத்தில் மிக நீண்ட காலத்திற்கு வாழலாம், ஏனெனில் அதைக் கண்டறிவது மிகவும் கடினம். அத்தகைய இடங்களில், ஒரு நிலையான பகுப்பாய்வி நிரலாளரின் மீட்புக்கு வருகிறது.

சரியான பயன்பாடு மெம்செட்:
மெம்செட்(பஃபர், 0, கொள்ளளவு*லைன் கொள்ளளவு);
பின்வரும் பிழையானது தவறாக இயற்றப்பட்ட தருக்க வெளிப்பாட்டுடன் தொடர்புடையது.
void configs_dumper::dumper_thread(void* my_ptr) ( .... DWORD wait_result = WaitForSingleObject(this_ptr->m_make_start_event, INFINITE); அதே நேரத்தில் (காத்திருப்பு_முடிவு != WAIT_ABANDONED) ....
எச்சரிக்கை PVS-ஸ்டுடியோ: V547 வெளிப்பாடு எப்போதும் உண்மை. அநேகமாக "&&" ஆபரேட்டரை இங்கே பயன்படுத்த வேண்டும். configs_dumper.cpp 262

"x != a || x != b" போன்ற வெளிப்பாடுகள் எப்போதும் உண்மைதான். பெரும்பாலும், ஆபரேட்டருக்கு பதிலாக || && ஆபரேட்டர் குறிக்கப்பட்டது.

"C/C++ இல் உள்ள தருக்க வெளிப்பாடுகள். தொழில் வல்லுநர்கள் எவ்வாறு தவறு செய்கிறார்கள்" என்ற கட்டுரையில் தருக்க வெளிப்பாடுகளில் உள்ள பிழைகள் பற்றி மேலும் படிக்கலாம்.
void SBoneProtections::reload(const shared_str& bone_sect, IKinematics* kinematics) ( .... CInifile::Sect &protections = pSettings->r_section(bone_sect); (CInifile::SectCIt i=protections.Data.begin(); .Data.end() != i; ++i) ( string256 buffer; BoneProtection BP; .... BP.BonePassBullet = (BOOL) (atoi(_GetItem(i->second.c_str(), 2, buffer) )>0.5f); .... ))
எச்சரிக்கை PVS-ஸ்டுடியோ: V674 "float" வகையின் "0.5f" எழுத்து "int" வகையின் மதிப்புடன் ஒப்பிடப்படுகிறது. boneprotections.cpp 54

பகுப்பாய்வி ஒரு முழு எண் மதிப்பை உண்மையான மாறிலியுடன் ஒப்பிடுவதைக் கண்டறிந்தது. இங்கே, ஒப்புமை மூலம், செயல்பாடு பயன்படுத்தப்பட்டிருக்க வேண்டும் atof, ஆனால் இல்லை அடோய், மற்றொரு வழக்கில் இந்த ஒப்பீட்டை மீண்டும் எழுதுவது மதிப்புக்குரியது, இதனால் அது சந்தேகத்திற்குரியதாகத் தெரியவில்லை. இருப்பினும், இதை எழுதிய டெவலப்பர் மட்டுமே இந்த உதாரணம் தவறா இல்லையா என்பதை உறுதியாகக் கூற முடியும்.
class IGameObject: பொது மெய்நிகர் IFactoryObject, பொது மெய்நிகர் ISpatial, பொது மெய்நிகர் ISheduled, பொது மெய்நிகர் IRenderable, பொது மெய்நிகர் ICollidable (பொது: .... மெய்நிகர் u16 ID() const = 0; .... ) BOOL CBulletManager:(tconstManager: collide::ray_defs& rd, IGameObject* object, LPVOID அளவுருக்கள்) ( bullet_test_callback_data* pData = (bullet_test_callback_data*) params; SBullet* bullet = pData->pBullet; புல்லட் &(object_) (புல்லட்-> fly_dist flags.ricochet_was)) FALSE என்று திரும்பவும்; BOOL bRes = TRUE; என்றால் (பொருள்)( .... ) bRes திரும்ப; )
எச்சரிக்கை PVS-ஸ்டுடியோ: V595 "object" சுட்டிக்காட்டி nullptr க்கு எதிராக சரிபார்க்கப்படுவதற்கு முன்பு பயன்படுத்தப்பட்டது. வரிகளை சரிபார்க்கவும்: 42, 47. level_bullet_manager_firetrace.cpp 42

சுட்டி சோதனை பொருள்சமத்துவத்திற்காக nullptr dereferening பிறகு செல்கிறது பொருள்->ஐடி(). ஒரு வேளை பொருள் nullptr க்கு சமம், இது நிரலை செயலிழக்கச் செய்யும்.
#ifdef _EDITOR BOOL WINAPI DllEntryPoint(....) #else BOOL WINAPI DllMain(....) #endif ( மாறு (உல்_காரணம்_அழைப்பு) ( .... case DLL_THREAD_ATTACH: if (!strstr(GetCommandLine(), "-editor ()
எச்சரிக்கை PVS-ஸ்டுடியோ: V718 "CoInitializeEx" செயல்பாடு "DllMain" செயல்பாட்டிலிருந்து அழைக்கப்படக்கூடாது. xrcore.cpp 205

உடலில் DllMainசில WinAPI செயல்பாடுகளை நீங்கள் பயன்படுத்த முடியாது CoInitializeEx. MSDN இல் உள்ள ஆவணங்களைப் படிப்பதன் மூலம் இதை நீங்கள் சரிபார்க்கலாம். இந்த செயல்பாட்டை எவ்வாறு மீண்டும் எழுதுவது என்பது குறித்து திட்டவட்டமான ஆலோசனையை வழங்குவது சாத்தியமில்லை, ஆனால் இதுபோன்ற சூழ்நிலை ஆபத்தானது என்பதைப் புரிந்துகொள்வது மதிப்பு, ஏனெனில் இது நூல்களை பரஸ்பர தடுப்பு அல்லது அசாதாரணமான முடிவுக்கு வழிவகுக்கும்.

முன்னுரிமைகளில் பிழைகள்

int sgetI1(கையொப்பமிடப்படாத எழுத்து **bp) ( int i; என்றால் (flen == FLEN_ERROR) திரும்ப 0; i = **bp; என்றால் (i > 127) i -= 256; flen += 1; *bp++; திரும்ப i ;)
எச்சரிக்கை PVS-ஸ்டுடியோ: V532 "*சுட்டி++" வடிவத்தின் அறிக்கையை ஆய்வு செய்வதைக் கவனியுங்கள். ஒருவேளை இதன் பொருள்: "(*சுட்டி)++". lwio.c 316

பிழை அதிகரிப்பின் பயன்பாடு தொடர்பானது. தெளிவுக்காக, அடைப்புக்குறிக்குள் வைத்து, இந்த வெளிப்பாட்டை மீண்டும் எழுதலாம்:
*(bp++);
அதாவது, உள்ளடக்கம் முகவரிக்கு மாற்றப்படாது பிபி,ஆனால் சுட்டிக்காட்டி தன்னை, இந்த சூழலில் அர்த்தமற்றது. குறியீட்டில் கீழே போன்ற துண்டுகள் உள்ளன *bp += N, அதனால்தான் இது பிழை என்று முடிவு செய்தேன்.

அடைப்புக்குறிகளை வைப்பது அத்தகைய பிழையைத் தவிர்க்க உதவும், இது கணக்கீடுகளின் வரிசையை இன்னும் தெளிவாக்கும். மற்றொரு நல்ல நுட்பத்தைப் பயன்படுத்துவது நிலையானமாறக்கூடாத வாதங்களுக்கு.

இதே போன்ற எச்சரிக்கைகள்:

  • V532 "*சுட்டி++" வடிவத்தின் அறிக்கையை ஆய்வு செய்வதைக் கருத்தில் கொள்ளுங்கள். ஒருவேளை இதன் பொருள்: "(*சுட்டி)++". lwio.c 354
  • V532 "*சுட்டி++" வடிவத்தின் அறிக்கையை ஆய்வு செய்வதைக் கருத்தில் கொள்ளுங்கள். ஒருவேளை இதன் பொருள்: "(*சுட்டி)++". lwob.c 80
void CHitMemoryManager::load (IRreader &packet) ( .... if (!spawn_callback || !spawn_callback->m_object_callback) if(!g_dedicated_server) Level().client_spawn_manager().add(delayed_objject-mID_object. ),அழைப்பு;
எச்சரிக்கை PVS-ஸ்டுடியோ: V563 இந்த "வேறு" கிளை முந்தைய "if" அறிக்கைக்கு பொருந்த வேண்டும். hit_memory_manager.cpp 368

இந்த துண்டில் கிளை வேறுஇரண்டாவது சேர்ந்தது என்றால்அதன் வலது-தொடர்பு காரணமாக, இது குறியீடு வடிவமைப்புடன் ஒத்துப்போவதில்லை. அதிர்ஷ்டவசமாக, இந்த வழக்கு நிரலின் செயல்பாட்டை பாதிக்காது, இருப்பினும், இது பிழைத்திருத்தம் மற்றும் சோதனை செயல்முறையை சிக்கலாக்கும்.

பரிந்துரை எளிதானது - அதிகமாகவோ அல்லது குறைவாகவோ சிக்கலான கிளைகளில் சுருள் பிரேஸ்களைப் பயன்படுத்தவும்.
வெற்றிடமான HUD_SOUND_ITEM::PlaySound(HUD_SOUND_ITEM& hud_snd, const Fvector& position, const IGameObject* parent, bool b_hud_mode, bool looped, u8 index) ( .... hud_snd.m_ctive. * b_hud_mode? psHUDSoundVolume:1.0f); )
எச்சரிக்கை PVS-ஸ்டுடியோ: V502 ஒருவேளை "?:" ஆபரேட்டர் எதிர்பார்த்ததை விட வேறு வழியில் செயல்படும். "*" ஆபரேட்டரை விட "?:" ஆபரேட்டருக்கு குறைந்த முன்னுரிமை உள்ளது. hudsound.cpp 108

மும்மை நிபந்தனை ஆபரேட்டருக்கு பெருக்கத்தை விட குறைவான முன்னுரிமை உள்ளது, எனவே செயல்பாடுகளின் வரிசை பின்வருமாறு:
(hud_snd.m_activeSnd->தொகுதி * b_hud_mode)?psHUDSoundVolume:1.0f
வெளிப்படையாக சரியான குறியீடு இப்படி இருக்க வேண்டும்:
hud_snd.m_activeSnd->தொகுதி * (b_hud_mode?psHUDSoundVolume:1.0f)
மும்மை ஆபரேட்டரைக் கொண்ட பல வெளிப்பாடுகள் உள்ளன என்றால்-வேறுகிளைகள் அல்லது AND/OR செயல்பாடுகள் என்பது கூடுதல் அடைப்புக்குறிகளை வைப்பது நல்லது.

இதே போன்ற எச்சரிக்கைகள்:

  • V502 ஒருவேளை "?:" ஆபரேட்டர் எதிர்பார்த்ததை விட வேறு வழியில் செயல்படும். "?:" ஆபரேட்டருக்கு "+" ஆபரேட்டரை விட குறைவான முன்னுரிமை உள்ளது. uihudstateswnd.cpp 487
  • V502 ஒருவேளை "?:" ஆபரேட்டர் எதிர்பார்த்ததை விட வேறு வழியில் செயல்படும். "?:" ஆபரேட்டருக்கு "+" ஆபரேட்டரை விட குறைவான முன்னுரிமை உள்ளது. uicellcustomitems.cpp 106

கூடுதல் ஒப்பீடுகள்

void CDestroyablePhysicsObject::OnChangeVisual() ( என்றால் (m_pPhysicsShell)( if(m_pPhysicsShell)m_pPhysicsShell-> செயலிழக்க(); .... ) .... )
எச்சரிக்கை PVS-ஸ்டுடியோ: V571 தொடர் சோதனை. "if (m_pPhysicsShell)" நிபந்தனை ஏற்கனவே வரி 32 இல் சரிபார்க்கப்பட்டது. அழிக்கக்கூடிய Physicsobject.cpp 33

IN இந்த எடுத்துக்காட்டில்இருமுறை சரிபார்க்கப்பட்டது m_pPhysicsShell. பெரும்பாலும், இரண்டாவது காசோலை தேவையற்றது.
செல்லாது< 98)) { .... }else{ .... } }
எச்சரிக்கை PVS-ஸ்டுடியோ: V571 தொடர் சோதனை. "m_wVersion > 89" நிபந்தனை ஏற்கனவே வரி 987 இல் சரிபார்க்கப்பட்டது. xrserver_objects_alife_items.cpp 989

மிகவும் விசித்திரமான குறியீடு. ஒருவேளை அவர்கள் பின்னர் வெளிப்பாட்டை மறந்துவிட்டார்கள் என்றால் (m_wVersion > 89), அல்லது ஒரு முழு தொடர் வேறு - என்றால். இந்த முறை திட்ட உருவாக்குநரால் இன்னும் விரிவான பரிசீலனை தேவைப்படுகிறது.
void ELogCallback(செல்லம் *சூழல், LPCSTR txt) ( .... bool bDlg = ("#"==txt)||((0!=txt)&&("#"==txt)); என்றால் (bDlg) ( int mt = ("!"==txt)||((0!=txt)&&("!"==txt))?1:0; .... ) )
PVS-ஸ்டுடியோ எச்சரிக்கைகள்:

  • V590 "(0 != txt) && ("#" == txt)" எக்ஸ்ப்ரெஷனை பரிசோதிக்க வேண்டும். வெளிப்பாடு அதிகமாக உள்ளது அல்லது தவறான அச்சிடலைக் கொண்டுள்ளது. elog.cpp 29
  • V590 "(0 != txt) && ("!" == txt)" எக்ஸ்ப்ரெஷனை பரிசோதிக்க வேண்டும். வெளிப்பாடு அதிகமாக உள்ளது அல்லது தவறான அச்சிடலைக் கொண்டுள்ளது. elog.cpp 31
மாறி துவக்க வெளிப்பாடுகளில் bDlgமற்றும் mtபரிசோதனை (0 != txt)தேவையற்றது. நீங்கள் அதைத் தவிர்த்துவிட்டால், வெளிப்பாடுகளைப் படிக்க மிகவும் எளிதாகிவிடும்:
bool bDlg = ("#"==txt)||("#"==txt); int mt = ("!"==txt)||("!"==txt)?1:0;

தரவு வகை பிழைகள்


Float CRenderTarget ::im_noise_time; CRenderTarget::CRenderTarget() (.... param_blur = 0.f; param_gray = 0.f; param_noise = 0.f; param_duality_h = 0.f; param_duality_v = 0.f; param_noise_fps = 25.f; அளவுகோல் .f; im_noise_time = 1/100; im_noise_shift_w = 0; im_noise_shift_h = 0; .... )
எச்சரிக்கை PVS-ஸ்டுடியோ: V636 "1 / 100" வெளிப்பாடு மறைமுகமாக "int" வகையிலிருந்து "float" வகைக்கு அனுப்பப்பட்டது. ஒரு பகுதியளவு இழப்பைத் தவிர்க்க வெளிப்படையான வகை வார்ப்புகளைப் பயன்படுத்துவதைக் கவனியுங்கள். ஒரு எடுத்துக்காட்டு: இரட்டை A = (இரட்டை)(X) / Y;. gl_rendertarget.cpp 245

1/100 இன் மதிப்பு 0 ஆகும், ஏனெனில் இது ஒரு முழு எண் பிரிவு செயல்பாடு. 0.01f மதிப்பைப் பெற, நீங்கள் உண்மையான எழுத்தைப் பயன்படுத்த வேண்டும், வெளிப்பாட்டை மீண்டும் எழுத வேண்டும்: 1/100.0f. இந்த நடத்தை ஆசிரியரால் நோக்கமாக இருக்கலாம் என்றாலும், இங்கே எந்த பிழையும் இல்லை.
CSpaceRestriction::merge(....) const ( .... LPSTR S = xr_alloc (acc_length); (; I != E; ++I) temp = strconcat(sizeof(S),S,*temp,",",*(*I)->name()); ....)
எச்சரிக்கை PVS-ஸ்டுடியோ: V579 strconcat செயல்பாடு சுட்டிக்காட்டி மற்றும் அதன் அளவை வாதங்களாகப் பெறுகிறது. இது ஒரு தவறாக இருக்கலாம். முதல் வாதத்தை ஆய்வு செய்யவும். space_restriction.cpp 201

செயல்பாடு strconcat, பஃபர் நீளத்தை முதல் அளவுருவாக எடுத்துக்கொள்கிறது. தாங்கல் எஸ்என அறிவிக்கப்பட்டது LPSTR, அதாவது, ஒரு சரத்தின் சுட்டியாக. அளவு(கள்)பைட்டுகளில் சுட்டியின் அளவிற்கு சமமாக இருக்கும், அதாவது அளவு (கரி *), வரியில் உள்ள எழுத்துக்களின் எண்ணிக்கை அல்ல. நீங்கள் பயன்படுத்த வேண்டிய நீளத்தை கணக்கிட strlen(S).
வகுப்பு XRCDB_API மாடல் ( .... u32 நிலை; // 0 = தயார், 1 = init, 2 = கட்டிடம் .... ) வெற்றிடமான மாடல் :: பில்ட் (Fvector* V, int Vcnt, TRI* T, int Tcnt, build_callback * bc, void* bcp) ( .... BTHREAD_params P = (இது, V, Vcnt, T, Tcnt, bc, bcp ); thread_spawn(build_thread,"CDB-construction",0,&P); போது (S_INIT = = நிலை) தூக்கம்(5); .... )
எச்சரிக்கை PVS-ஸ்டுடியோ: V712 கம்பைலர் இந்த சுழற்சியை நீக்கலாம் அல்லது முடிவிலியாக மாற்றலாம். இதைத் தவிர்க்க, ஆவியாகும் மாறி(கள்) அல்லது ஒத்திசைவு ப்ரிமிட்டிவ்களைப் பயன்படுத்தவும். xrcdb.cpp 100

கம்பைலர் காசோலையை அகற்றலாம் S_INIT == நிலைஒரு தேர்வுமுறையாக, மாறி இருந்து நிலைசுழற்சியில் மாற்றப்படவில்லை. இந்த நடத்தை தவிர்க்க, நீங்கள் பயன்படுத்த வேண்டும் எளிதில் ஆவியாகிறமாறிகள் அல்லது திரிகளுக்கு இடையே தரவு ஒத்திசைவு வகைகள்.

இதே போன்ற எச்சரிக்கைகள்:

  • V712 கம்பைலர் இந்த சுழற்சியை நீக்கலாம் அல்லது முடிவிலியாக மாற்றலாம். இதைத் தவிர்க்க, ஆவியாகும் மாறி(கள்) அல்லது ஒத்திசைவு ப்ரிமிட்டிவ்களைப் பயன்படுத்தவும். levelcompilerloggerwindow.cpp 23
  • V712 கம்பைலர் இந்த சுழற்சியை நீக்கலாம் அல்லது முடிவிலியாக மாற்றலாம். இதைத் தவிர்க்க, ஆவியாகும் மாறி(கள்) அல்லது ஒத்திசைவு ப்ரிமிட்டிவ்களைப் பயன்படுத்தவும். levelcompilerloggerwindow.cpp 232
void CAI_Rat::UpdateCL() (.... என்றால் (!பயனுள்ள()) (மரபு::UpdateCL (); Exec_Look (Device.fTimeDelta); CMonsterSquad *squad = monster_squad().get_squad(this); என்றால் (squad && ((squad->GetLeader() != this && !squad->GetLeader()->g_Alive()) || squad->get_index(this) == u32(-1))) squad->SetLeader(இது );....)....)
எச்சரிக்கை PVS-ஸ்டுடியோ: V547 வெளிப்பாடு "squad->get_index(this) == u32(- 1)" எப்போதும் தவறானது. கையொப்பமிடப்படாத எழுத்து வகையின் மதிப்பு வரம்பு: . ai_rat.cpp 480

இந்த வெளிப்பாடு ஏன் எப்போதும் தவறானது என்பதைப் புரிந்து கொள்ள, தனிப்பட்ட செயல்களின் மதிப்புகளைக் கணக்கிடுவோம். u32(-1) என்பது 0xFFFFFFFF அல்லது 4294967295 க்கு சமம். முறையின் திரும்பும் வகை squad->get_index(....), - u8, எனவே அது அதிகபட்ச மதிப்பு- 0xFF அல்லது 255, இது u32(-1) ஐ விட கண்டிப்பாக குறைவாக உள்ளது. அதன்படி, அத்தகைய ஒப்பீட்டின் மதிப்பு எப்போதும் இருக்கும் பொய். தரவு வகையை u8 ஆக மாற்றுவதன் மூலம் இந்தக் குறியீட்டை எளிதாகச் சரிசெய்யலாம்:
அணி->get_index(இது) == u8(-1)
கையொப்பமிடப்படாத மாறிகளின் தேவையற்ற ஒப்பீடுகளுக்கு அதே கண்டறிதல் வேலை செய்கிறது:
பெயர்வெளி ALife (typedef u64 _TIME_ID; ) ALife::_TIME_ID CScriptActionCondition::m_tLifeTime; IC bool CScriptEntityAction::CheckIfTimeOver() ( return((m_tActionCondition.m_tLifeTime >= 0) && ((m_tActionCondition.m_tStartTime + m_tActionCondition.m_tLifeTime)< Device.dwTimeGlobal)); }
எச்சரிக்கை PVS-ஸ்டுடியோ: V547 வெளிப்பாடு "m_tActionCondition.m_tLifeTime >= 0" எப்போதும் உண்மை. கையொப்பமிடாத வகை மதிப்பு எப்போதும் >= 0. script_entity_action_inline.h 115

மாறி m_tLifeTimeகையொப்பமிடப்படவில்லை, எனவே இது எப்போதும் பூஜ்ஜியத்தை விட அதிகமாகவோ அல்லது சமமாகவோ இருக்கும். இது தேவையற்ற சோதனையா அல்லது தர்க்கத்தில் மறைக்கப்பட்ட பிழை உள்ளதா என்பதை டெவலப்பர் தீர்மானிக்க வேண்டும்.

இதே போன்ற எச்சரிக்கை:

V547 வெளிப்பாடு "m_tActionCondition.m_tLifeTime< 0" is always false. Unsigned type value is never < 0. script_entity_action_inline.h 143
ObjectFactory::ServerObjectBaseClass * CObjectItemScript::server_object (LPCSTR பிரிவு) const (ObjectFactory::ServerObjectBaseClass *object = nullptr; முயற்சி (object = m_server_creator:%Section(scection)" ] " "பிரிவு [%s]", e.what(),section) இலிருந்து சர்வர் பொருளை உருவாக்கும் போது எழுப்பப்பட்டது; திரும்ப (0); ) .... )
எச்சரிக்கை PVS-ஸ்டுடியோ: V746 வகை வெட்டுதல். ஒரு விதிவிலக்கு மதிப்பை விட குறிப்பு மூலம் பிடிக்கப்பட வேண்டும். object_item_script.cpp 39

செயல்பாடு வகுப்பு::விலக்கு::என்ன()மெய்நிகர் மற்றும் மரபுவழி வகுப்புகளில் மேலெழுதப்படலாம். இந்த எடுத்துக்காட்டில், விதிவிலக்கு மதிப்பால் பிடிக்கப்படுகிறது, எனவே வகுப்பு நிகழ்வு நகலெடுக்கப்படும் மற்றும் பாலிமார்பிக் வகை பற்றிய அனைத்து தகவல்களும் இழக்கப்படும். பேசு என்ன()அந்த வழக்கில் அது அர்த்தமற்றது. விதிவிலக்கு இணைப்பைப் பயன்படுத்தி பிடிக்கப்பட வேண்டும்:
பிடிக்க (const std::exception& e) (

இதர

void compute_cover_value (....) ( .... மிதவை மதிப்பு ; .... என்றால் (மதிப்பு< .999f) { value = value; } .... }
எச்சரிக்கை PVS-ஸ்டுடியோ: V570 "மதிப்பு" மாறி தானே ஒதுக்கப்படுகிறது. compiler_cover.cpp 260

மாறி மதிப்புதனக்கு ஒதுக்கப்பட்டது. இதை ஏன் செய்வது என்பது தெளிவாக இல்லை. ஒருவேளை அதற்கு வேறு அர்த்தம் கொடுத்திருக்க வேண்டும்.
void CActor::g_SetSprintAnimation(u32 mstate_rl, MotionID &head, MotionID &torso, MotionID &legs) ( SactorSprintState& ஸ்பிரிண்ட் = m_anims->m_sprint; bool jump = (mstate_rl&mcfall andmcfall) || ) || (mstate_rl&mc Landing2) | | (mstate_rl&mcJump); .... )
எச்சரிக்கை PVS-ஸ்டுடியோ: V501 "||" இன் இடது மற்றும் வலதுபுறத்தில் "(mstate_rl & mcLanding)" ஒரே மாதிரியான துணை வெளிப்பாடுகள் உள்ளன. இயக்குபவர். actoranimation.cpp 290

பெரும்பாலும் இது ஒரு கூடுதல் சோதனை மட்டுமே. mstate_rl & mcLanding, ஆனால் பெரும்பாலும் இத்தகைய எச்சரிக்கைகள் தர்க்கம் மற்றும் ஆராயப்படாத enum மதிப்புகளில் பிழையைக் குறிக்கின்றன.

இதே போன்ற எச்சரிக்கைகள்:

  • V501 "&&" ஆபரேட்டரின் இடது மற்றும் வலதுபுறத்தில் "HudItemData()" ஒரே மாதிரியான துணை வெளிப்பாடுகள் உள்ளன. huditem.cpp 338
  • V501 "||" இன் இடது மற்றும் வலதுபுறத்தில் "list_idx == e_outfit" ஒரே மாதிரியான துணை வெளிப்பாடுகள் உள்ளன. இயக்குபவர். uimptradewnd_misc.cpp 392
  • V501 "||" இன் இடது மற்றும் வலதுபுறத்தில் "(D3DFMT_UNKNOWN == fTarget)" ஒரே மாதிரியான துணை வெளிப்பாடுகள் உள்ளன. இயக்குபவர். hw.cpp 312
RELATION_REGISTRY::RELATION_MAP_SPOTS::RELATION_MAP_SPOTS() ( .... spot_names = "எதிரி_இடம்"; ஸ்பாட்_பெயர்கள் = "எதிரி_இடம்"; .... )
எச்சரிக்கை PVS-ஸ்டுடியோ: V519 மாறிக்கு இரண்டு முறை மதிப்புகள் ஒதுக்கப்படுகின்றன. ஒருவேளை இது ஒரு தவறு. வரிகளை சரிபார்க்கவும்: 57, 58. relation_registry.cpp 58

ஒரு வரிசையில் ஒரு மாறிக்கு இரண்டு மதிப்புகள் ஒதுக்கப்பட்டிருப்பதை பகுப்பாய்வி கண்டறிந்துள்ளது. இந்த வழக்கில், அது வெறும் டெட் குறியீடு போல் தெரிகிறது மற்றும் அகற்றப்பட வேண்டும்.
void safe_verify(....) ( .... printf("FATAL ERROR (%s): தரவை சரிபார்க்க முடியவில்லை\n"); .... )
எச்சரிக்கை PVS-ஸ்டுடியோ: V576 தவறான வடிவம். "printf" செயல்பாட்டை அழைக்கும் போது வேறுபட்ட எண்ணிக்கையிலான உண்மையான வாதங்கள் எதிர்பார்க்கப்படுகின்றன. எதிர்பார்க்கப்படுவது: 2. தற்போது: 1. entry_point.cpp 41

செயல்பட printfபோதுமான வாதங்கள் அனுப்பப்படவில்லை: "%s" வடிவம் ஒரு சரத்திற்கு ஒரு சுட்டிக்காட்டி அனுப்பப்பட வேண்டும் என்பதைக் குறிக்கிறது. இந்த நிலைமை நினைவக அணுகல் பிழை மற்றும் நிரலின் அவசர முடிவுக்கு வழிவகுக்கும்.

  • pvs-studio
  • நிலையான குறியீடு பகுப்பாய்வு
  • C++
  • வேட்டையாடுபவர்
  • குறிச்சொற்களைச் சேர்க்கவும்
      உள்ளடக்கம்
    • Lada XRAY, Vesta மாடலுடன் சேர்ந்து, இப்போது AvtoVAZ இன் புதிய நம்பிக்கை மற்றும் ஆதரவு என்று அழைக்கப்படலாம். இவை நிறுவனத்தின் முகத்தைக் குறிக்கும் கார்கள் மற்றும் புதிய சுற்றுஅதன் வளர்ச்சியில். புதிய எக்ஸ்-ரே ஹேட்ச்பேக்கின் வளர்ச்சி மிகுந்த கவனத்துடன் மேற்கொள்ளப்பட்டதில் ஆச்சரியமில்லை. மேலும் சிறப்பு கவனம்தோற்றத்திற்கு மட்டுமல்ல, தொழில்நுட்ப கூறுகளுக்கும் கவனம் செலுத்தப்பட்டது. மற்றும் இயந்திரம், உங்களுக்குத் தெரிந்தபடி, "காரின் இதயம்", எனவே எஞ்சின்கள் எப்போதும் நிறுவனத்தின் பொறியாளர்களுக்கு முன்னுரிமை அளிக்கின்றன.

      லாடா எக்ஸ்-ரே இயந்திரங்களின் சுருக்கமான பண்புகள்.

      லாடா எக்ஸ்-ரே இயந்திரங்களின் பட்டியல்

      மொத்தத்தில், ஹேட்ச்பேக் மூன்று என்ஜின்களைப் பெறும், இரண்டு உள்நாட்டு அலகுகள் ஒரு "வெளிநாட்டில்" ஒன்றுடன் நீர்த்தப்படுகின்றன. இயந்திரங்களின் பட்டியல்:

      தொழில்நுட்ப பண்புகள் மற்றும் வடிவமைப்பு அம்சங்கள்

      புதிய மாடலின் அனைத்து பவர் யூனிட்களும் மிகவும் நவீனமானவை மற்றும் இந்த பிரிவில் வழங்கப்பட்ட அனைத்து தற்போதைய அளவுகோல்களையும் பூர்த்தி செய்கின்றன.

      VAZ-21129

      இது ஒரு உள்நாட்டு பெட்ரோல் இயந்திரம், இது நீண்ட காலமாக தயாரிக்கப்பட்டது மற்றும் லாடா வெஸ்டா உள்ளிட்ட பிற அவ்டோவாஸ் மாடல்களிலும் நிறுவப்பட்டுள்ளது.

      • தொகுதி - 1,596 செமீ³;
      • கட்டமைப்பு - இன்-லைன்;
      • இடம் - குறுக்கு;
      • சிலிண்டர்களின் எண்ணிக்கை - 4;
      • வால்வுகளின் எண்ணிக்கை - 16;
      • அதிகபட்ச சக்தி - 106 லி. உடன். (78.2 kW) 5,800 rpm இல்;
      • அதிகபட்ச முறுக்கு - 4,200 ஆர்பிஎம்மில் 148 என்எம்;
      • டைமிங் டிரைவ் - பெல்ட்;
      • இயக்கவியல் - 11.4 நொடி;
      • அதிகபட்ச வேகம் - 176 கிமீ / மணி;
      • சுருக்க விகிதம் - 11 அலகுகள்;
      • சிலிண்டர் விட்டம் - 82 மிமீ;
      • பிஸ்டன் ஸ்ட்ரோக் - 75.6 மிமீ;
      • சுற்றுச்சூழல் தரநிலைகள் - யூரோ-5;
      • எரிபொருள் - AI-95;
      • எரிபொருள் நுகர்வு (நகரம்/நெடுஞ்சாலை/கலப்பு முறை) - 9.3 l/7.2 l/5.9 l.
      • சாத்தியம் - 400+ எல். உடன்.
      • வள இழப்பு இல்லாமல் - 150 எல். உடன்.

      எஞ்சின் எக்ஸ்-ரே VAZ 21129.

      Lada X-Ray VAZ-21129 இயந்திரம் VAZ-21127 தொடர் இயந்திரத்தின் அடிப்படையில் உருவாக்கப்பட்டது, இது Priora மாடலுக்காக வடிவமைக்கப்பட்டுள்ளது. அதில் பல மாற்றங்கள் மற்றும் மேம்பாடுகள் செய்யப்பட்டுள்ளன. உட்கொள்ளும் பன்மடங்கில் உள்ள மடிப்புகளின் தொகுப்பைப் பயன்படுத்துவது மிகவும் குறிப்பிடத்தக்கது, இதன் மூலம் அதன் நீளம் மாற்றப்படுகிறது, இது உகந்த பயன்முறையில் குறைந்த மற்றும் அதிக வேகத்தில் செயல்படுவதற்கு உத்தரவாதம் அளிக்கிறது. கூடுதலாக, பொறியாளர்கள் இயந்திர வடிவமைப்பில் வெகுஜன காற்று ஓட்ட சென்சார் கைவிட்டனர். அதற்கு பதிலாக, மற்ற இரண்டு சாதனங்கள் நிறுவப்பட்டன - காற்று வெப்பநிலை மற்றும் முழுமையான அழுத்தம் உணரிகள். அத்தகைய தீர்வு எரியக்கூடிய கலவையின் மீது முழுமையான கட்டுப்பாட்டின் சாத்தியத்தை வழங்குகிறது, மேலும் செயலற்ற முறையில் "மிதக்கும்" வேகத்தின் சாத்தியத்தை நீக்குகிறது.

      1.6 லிட்டர் மற்றும் 16 வால்வுகளின் வழக்கமான தொகுதிக்கு பின்னால், பல நுணுக்கங்கள் மறைக்கப்பட்டுள்ளன.

      இயந்திரத்தின் வடிவமைப்பிலும், சப்ஃப்ரேமில் நிறுவப்பட்ட யூனிட்டின் இடைநீக்கத்திற்கு புதிய தீர்வுகள் பயன்படுத்தப்பட்டன, மேலும் வெளியேற்ற மற்றும் உட்கொள்ளும் அமைப்புகளிலும் மாற்றங்கள் செய்யப்பட்டன. இந்த நடவடிக்கைகள் இயந்திரத்திற்கு உத்தரவாதம் அளித்தன, மற்றவற்றுடன், இயக்க இரைச்சல் குறைப்பு, அத்துடன் நச்சுத்தன்மை மற்றும் எரிபொருள் நுகர்வு குறைப்பு.

      இந்த கதை VAZ 21129 இயந்திரத்தைப் பற்றி விரிவாகக் கூறுகிறது:

      HR16DE

      Renault-Nissan H4M-HR16DE இன்ஜின் Alliance Renault Nissan இலிருந்து AvtoVAZ கூட்டாளர்களால் வழங்கப்பட்டது. இது நீண்ட காலமாக தயாரிக்கப்பட்டு, பிரெஞ்சு மற்றும் ஜப்பானிய நிறுவனங்களின் பல மாடல்களில் வெற்றிகரமாக நிறுவப்பட்டுள்ளது - நிசான் டைடா, நிசான் விங்ரோட், நிசான் நோட், லாடா வெஸ்டா, நிசான் காஷ்காய் மற்றும் பிற.

      X-Ray HR16DE இன்ஜின் அதன் அனைத்து மகிமையிலும்.

      • தொகுதி - 1,598 செமீ³;
      • கட்டமைப்பு - இன்-லைன்;
      • இடம் - குறுக்கு;
      • சிலிண்டர்களின் எண்ணிக்கை - 4;
      • வால்வுகளின் எண்ணிக்கை - 16;
      • சக்தி வகை - மின்னணு கட்டுப்பாட்டுடன் விநியோகிக்கப்பட்ட எரிபொருள் ஊசி;
      • அதிகபட்ச சக்தி - 110 லி. உடன். (81 kW) 5,500 rpm இல்;
      • அதிகபட்ச முறுக்கு - 4,000 ஆர்பிஎம்மில் 150 என்எம்;
      • நேர இயக்கி - சங்கிலி;
      • இயக்கவியல் - 11.1 நொடி;
      • அதிகபட்ச வேகம் - 181 கிமீ / மணி;
      • சுருக்க விகிதம் - 10.7 அலகுகள்;
      • சிலிண்டர் விட்டம் - 76 மிமீ;
      • பிஸ்டன் ஸ்ட்ரோக் - 88 மிமீ;
      • சுற்றுச்சூழல் தரநிலைகள் - யூரோ-4/5;
      • எரிபொருள் - AI-92/95;
      • எரிபொருள் நுகர்வு (நகரம்/நெடுஞ்சாலை/கலப்பு முறை) - 8.9 l/6.8 l/5.6 l.
      • சாத்தியம் - 150+ எல். உடன்.
      • வள இழப்பு இல்லாமல் - 125 எல். உடன்.

      இந்த Lada X-Ray சக்தி அலகு பல அம்சங்களைக் கொண்டுள்ளது. மிகவும் சிறப்பியல்பு சக்தி குறைதல் - மற்ற மாடல்களில் இது 114 முதல் 118 ஹெச்பி வரை மாறுபடும். s., பின்னர் X-Ray விஷயத்தில் அது 110 hp ஆக குறைக்கப்பட்டது. ப., இந்த இயந்திரத்தை ரஷ்யா மற்றும் பிற சிஐஎஸ் நாடுகளின் யதார்த்தங்களுக்கு ஏற்ப மாற்றியமைக்க என்ன செய்யப்பட்டது.

      டைமிங் டிரைவில் ஒரு சங்கிலியைப் பயன்படுத்துவது அதை மிகவும் நம்பகமானதாக ஆக்குகிறது.

      எனவே, லாடா உரிமையாளர்களுக்கான வழக்கமான பெல்ட்டுக்கு பதிலாக, அதன் வடிவமைப்பில் ஒரு சங்கிலி பயன்படுத்தப்படுகிறது, இது நம்பகத்தன்மையை கணிசமாக அதிகரிக்கிறது, ஏனெனில் அது உடைக்கப்படாது மற்றும் விரைவாக நீட்டாது. நவீன ஹைட்ராலிக் இழப்பீடுகள் இல்லை - அவற்றுக்கு பதிலாக சாதாரண அனுசரிப்பு வால்வுகள் உள்ளன. இருப்பினும், புஷர் சரிசெய்தல் செயல்முறை 80,000 - 100,000 கிமீக்கு முன் தேவைப்படாது. மற்ற அம்சங்களுக்கிடையில், வால்வு நேரத்தை மாற்றுவதற்கான ஒரு சிக்கலான பயன்பாடு, இன்டேக் ஷாஃப்ட்டில் நேரடியாக ஃபேஸ் ஷிஃப்டரை சரிசெய்தல், ஒவ்வொரு சிலிண்டரிலும் ஒரு ஜோடி இன்ஜெக்டர்கள் இருப்பது மற்றும் எலக்ட்ரானிக் த்ரோட்டில் வால்வைப் பயன்படுத்துதல் ஆகியவற்றை ஒருவர் முன்னிலைப்படுத்தலாம்.

      ஹைட்ராலிக் இழப்பீடுகளை மறுப்பது வால்வுகளை சரிசெய்ய வேண்டிய அவசியத்தை ஏற்படுத்துகிறது.

      கூடுதலாக, நவீனமயமாக்கல் செயல்பாட்டின் போது, ​​லாடா எக்ஸ்-ரே மின் அலகு கூறுகளின் உராய்வு குறிகாட்டிகள் குறைக்கப்பட்டன. சங்கிலி வழிகாட்டி, பாலிஷ் (கண்ணாடி) ஆகியவற்றில் ஃவுளூரின் பூச்சு பயன்படுத்துவதன் மூலம் இது அடையப்பட்டது. எந்திரம்கிரான்ஸ்காஃப்ட். செயலற்ற நிலையில், இழப்புகள் (எரிபொருள் மற்றும் உந்தி) குறைக்கப்பட்டுள்ளன, இது C-VTC மாற்றும் கோணத்தை அதிகரிப்பதன் மூலமும், கட்டுப்பாட்டை (தற்காலிகமாக) மீண்டும் கணக்கிடுவதன் மூலமும் உறுதி செய்யப்படுகிறது.

      VAZ-21179

      இது ஒரு புதிய உள்நாட்டு எஞ்சின், குறிப்பாக எக்ஸ்-ரே மற்றும் வெஸ்டா மாடல்களுக்காக உருவாக்கப்பட்டது. VAZ 21126 தொடரின் சக்தி அலகு அதற்கான அடிப்படையாகத் தேர்ந்தெடுக்கப்பட்டது, அதில் இருந்து சிலிண்டர் தொகுதி கடன் வாங்கப்பட்டது. இருப்பினும், அவர்களின் ஒற்றுமைகள் இங்கு முடிவடைகின்றன.

      வரிசையில் மிகவும் சக்திவாய்ந்த VAZ-21179 இயந்திரம்.

    1. தொகுதி - 1,774 செமீ³;
    2. கட்டமைப்பு - இன்-லைன்;
    3. இடம் - குறுக்கு;
    4. சிலிண்டர்களின் எண்ணிக்கை - 4;
    5. வால்வுகளின் எண்ணிக்கை - 16;
    6. சக்தி வகை - மின்னணு கட்டுப்பாட்டுடன் விநியோகிக்கப்பட்ட எரிபொருள் ஊசி;
    7. அதிகபட்ச சக்தி - 122 லி. உடன். (90 kW) 6,050 rpm இல்;
    8. அதிகபட்ச முறுக்கு - 3,750 ஆர்பிஎம்மில் 170 என்எம்;
    9. டைமிங் டிரைவ் - பெல்ட்;
    10. கேம்ஷாஃப்ட்களின் எண்ணிக்கை - 2 (DOHC வகை);
    11. இயக்கவியல் - 10.9 நொடி;
    12. அதிகபட்ச வேகம் - 186 கிமீ / மணி;
    13. சுருக்க விகிதம் - 9.8 அலகுகள்;
    14. பிஸ்டன் ஸ்ட்ரோக் - 84 மிமீ;
    15. சுற்றுச்சூழல் தரநிலைகள் - யூரோ-5;
    16. எரிபொருள் - AI-95;
    17. எரிபொருள் நுகர்வு (நகரம்/நெடுஞ்சாலை/கலப்பு முறை) - 8.6 l/6.8 l/5.8 l.
    • சாத்தியம் - தரவு இல்லை;
    • வள இழப்பு இல்லாமல் - தரவு இல்லை.

    இந்த Lada X-Ray இன்ஜின் மற்ற VAZ இன்ஜின்களிலிருந்து மிகவும் வித்தியாசமானது. பவர் யூனிட்டின் வடிவமைப்பில், ஒரு புதிய த்ரோட்டில் வால்வு பயன்படுத்தப்பட்டது, மெக்கானிக்கல் டிரைவ் இல்லாமல், சிலிண்டர் தலையில் மஹ்லேவிலிருந்து புதிய வால்வுகள் (இலகுரக) பொருத்தப்பட்டிருந்தது, மேலும் கூடுதல் எண்ணெய் சேனல்கள் கட்ட சீராக்கியுடன் இணைக்கப்பட்டன.

    த்ரோட்டில் வால்வில் மெக்கானிக்கல் டிரைவ் இல்லை.

    பெரிய பிஸ்டன் ஸ்ட்ரோக் வேலை அளவு அதிகரிப்பதை உறுதி செய்தது, கிரான்ஸ்காஃப்ட் அதிகரித்த கிராங்க் ஆரம் மூலம் வகைப்படுத்தப்படுகிறது, மேலும் ஈகோஅலயன்ஸ் (ரஷ்யா) இலிருந்து பன்மடங்கு இன்லெட் சேனல்கள் விட்டம் 39 மிமீ வரை அதிகரிக்கப்பட்டன. ஆக்ஸிஜன் சென்சார் Bosch ஆல் வழங்கப்படுகிறது, மேலும் ஆக்ஸிஜன் பம்ப் GMB (கொரியா) மூலம் வழங்கப்படுகிறது. அதே கொரிய நிறுவனம் அதிகரித்த செயல்திறன் கொண்ட எண்ணெய் பம்ப் வழங்குவதற்கு பொறுப்பாகும்.

    கிரான்ஸ்காஃப்ட்கள் அதிகரித்த கிராங்க் ஆரம் கொண்டவை.

    ஃபெடரல் மொகல் பிராண்ட் இணைக்கும் கம்பி மற்றும் பிஸ்டன் குழுவை (இலகுரக வகை) வழங்குகிறது, மேலும் ஜெர்மன் நிறுவனமான INA ஒரு ஜோடி உருளைகள் பொருத்தப்பட்ட தானியங்கி டைமிங் பெல்ட் டென்ஷனர்களை வழங்குகிறது. எரிபொருள் ரயில் கான்டினென்டல் கவலையிலிருந்து வாங்கப்படுகிறது. அதன் உட்செலுத்திகள் அதிகரித்த செயல்திறனால் வகைப்படுத்தப்படுகின்றன, இதன் விளைவாக ஸ்ப்ரே முறை புதிய எக்ஸ்-ரே இயந்திரத்தின் செயல்பாட்டிற்கு சிறப்பாக சரிசெய்யப்படுகிறது.

    கேம்ஷாஃப்ட்கள் கொரியாவிலிருந்து வந்தவை.

    நீங்கள் பார்க்க முடியும் என, ரஷ்ய வளர்ச்சி இருந்தபோதிலும், கூறுகளின் குறிப்பிடத்தக்க பகுதி வெளிநாட்டு நிறுவனங்களிலிருந்து வாங்கப்படுகிறது.

    லாடா எக்ஸ்-ரேக்கு புதிய 1.8 லிட்டர் எஞ்சினை இணைக்கும் செயல்முறையை வீடியோ காட்டுகிறது:

    ஸ்டால்கர் தொடரின் கேம் எஞ்சினைப் பற்றி உங்களுக்குச் சொல்லவும் (அல்லது உங்களுக்கு நினைவூட்டவும்) குறைந்தபட்சம் ஏதாவது ஒன்றைக் கொடுக்க முடிவு செய்தேன்.

    எக்ஸ்-ரே என்பது உக்ரேனிய டெவலப்பரால் உருவாக்கப்பட்ட ஒரு விளையாட்டு இயந்திரம் கணினி விளையாட்டுகள் GSC விளையாட்டு உலகம் S.T.A.L.K.E.R.: ஷேடோ ஆஃப் செர்னோபில். இந்த இயந்திரம் 2001 ஆம் ஆண்டு மீண்டும் பொதுமக்களுக்கு வழங்கப்பட்டது. இது முதலில் டைரக்ட்எக்ஸ் 8க்காக வடிவமைக்கப்பட்டது, ஆனால் அதன் காலத்திற்கு ஏற்றவாறு பலமுறை உருவாக்கப்பட்டது.

    இதனால், அதில் டைரக்ட்எக்ஸ்9 ஆதரவு தோன்றி, S.T.A.L.K.E.R.: Clear Sky வெளியானவுடன், DirectX 10 சேர்க்கப்பட்டது.S.T.A.L.K.E.R.க்கான பேட்ச் 1.5.07 வெளியான பிறகு: Clear Sky, DirectX 10.1 ஆதரவு கேமில் தோன்றியது. S.T.A.L.K.E.R.: Call of Pripyat இல், DirectX 11 ஆதரவு இயந்திரத்தில் சேர்க்கப்பட்டுள்ளது.

    புரோகிராமர்கள் இயந்திரத்தில் வேலை செய்தனர் ஓல்ஸ் ஷிஷ்கோவ்சோவ்மற்றும் அலெக்சாண்டர் மக்ஸிம்சுக்(அவர்கள் டிமிட்ரி குளுகோவ்ஸ்கியின் அதே பெயரின் புத்தகத்தின் அடிப்படையில் மெட்ரோ 2033 திட்டத்தில் 4A கேம்ஸில் பணியாற்றினார்கள்).

    இயந்திரத்தின் பண்புகள் மற்றும் அம்சங்கள்

    கிராபிக்ஸ் இயந்திரம்
    எக்ஸ்-ரே கேம் எஞ்சினின் முக்கிய அங்கமான கிராபிக்ஸ் எஞ்சின், ஒத்திவைக்கப்பட்ட ஷேடிங் தொழில்நுட்பத்தைப் பயன்படுத்துகிறது, இது காட்சியின் உயர் வடிவியல் சிக்கலுடன் விளக்குகளை வழங்குவதில் அதிக நம்பகத்தன்மையை அடைய உங்களை அனுமதிக்கிறது. உயர் டைனமிக் வரம்பு மிதக்கும் புள்ளி ரெண்டரிங் ஆதரிக்கப்படுகிறது.

    ஆரம்பத்தில், இந்த இயந்திரம் டைரக்ட்எக்ஸ் 8 இல் கவனம் செலுத்தியது, ஆனால் பின்னர் அதன் நேரத்திற்கு ஏற்றவாறு பல முறை மாற்றியமைக்கப்பட்டது. எனவே, டைரக்ட்எக்ஸ் 9 க்கான ஆதரவு அதில் தோன்றியது, மேலும் S.T.A.L.K.E.R.: Shadow of Chernobyl விளையாட்டில் பயனர் விளையாட்டின் கிராபிக்ஸ் விருப்பங்களில் கிராபிக்ஸ் API வகையைத் தேர்ந்தெடுக்கலாம். 2008 ஆம் ஆண்டு S.T.A.L.K.E.R.: Clear Sky விளையாட்டில் தோன்றிய X-Ray இன்ஜின் 1.5 பதிப்பில், டெவலப்பர்கள் Direct3D 10 ஐச் சேர்த்தனர்.

    செப்டம்பர் 9, 2009 அன்று, AMD-ATi மூத்த சந்தைப்படுத்தல் மேலாளர் இயன் “Cabrtosr” McNaughton தனது வலைப்பதிவில் “DirectX 11 – What to expect!” ஒரு கட்டுரையை வெளியிட்டார், அதில் அவர் Direct3D 11 இன் நன்மைகள் மற்றும் முக்கிய அம்சங்களை விவரித்தார். இந்தக் கட்டுரையில், "S.T.A.L.K.E.R.: Call of Pripyat", "BattleForge" மற்றும் "Colin McRae: Dirt 2" உடன், DirectX 11 ஐப் பயன்படுத்தும் என்று அவர் கூறினார்.

    எனவே, இன்ஜினின் சமீபத்திய பதிப்பு (1.6) Direct3D இன் பின்வரும் பதிப்புகளை ஆதரிக்கிறது:

    * டைரக்ட்எக்ஸ் 8 (ஷேடர் மாடல் 1.1)
    * டைரக்ட்எக்ஸ் 9 (ஷேடர் மாடல் 2.0)
    * டைரக்ட்எக்ஸ் 9.0சி (ஷேடர் மாடல் 3.0)
    * டைரக்ட்3டி 10 (ஷேடர் மாடல் 4.0)
    * டைரக்ட்3டி 10.1 (ஷேடர் மாடல் 4.1)
    * டைரக்ட்3டி 11 (ஷேடர் மாடல் 5.0)

    கிராபிக்ஸ் எஞ்சின் ஒரு சட்டத்திற்கு 1,000,000 பலகோணங்கள் வரை வழங்குவதை ஆதரிக்கிறது. இயந்திரம் மூடிய மற்றும் திறந்தவெளி இரண்டையும் உயர்தர ரெண்டரிங் செய்யும் திறன் கொண்டது; திறந்தவெளிகளின் பரப்பளவு 4 சதுர மீட்டரை எட்டும். கி.மீ. நாள் மற்றும் இரவு மாற்றங்கள், மழை, காற்று, மூடுபனி போன்ற பல்வேறு வானிலை விளைவுகளுக்கான ஆதரவு அமைப்பு உள்ளது.

    லைட்டிங் சிஸ்டம் முற்றிலும் டைனமிக் மற்றும் பிக்சலுக்கு ஏற்றது. மென்மையான நிழல்கள் துணைபுரிகின்றன மற்றும் Screen Space Ambient Occlusion தொழில்நுட்பம் பயன்படுத்தப்படுகிறது. சாதாரண மேப்பிங் மற்றும் இடமாறு மேப்பிங் ஆகியவை ரிலீஃப் டெக்ஸ்ச்சரிங் தொழில்நுட்பங்கள் பயன்படுத்தப்படுகின்றன.

    ஒத்திவைக்கப்பட்ட லைட்டிங் மற்றும் ஷேடிங் தொழில்நுட்பத்தின் குறிப்பிட்ட செயல்படுத்தல் காரணமாக, முழுத்திரை எதிர்ப்பு மாற்றுப்பெயர்ச்சியுடன் இணைந்து இயந்திரம் ஒரே நேரத்தில் பயன்படுத்த முடியாது.

    இயற்பியல் இயந்திரம்
    எக்ஸ்-ரே இலவச இயற்பியல் இயந்திரத்தைப் பயன்படுத்துகிறது டைனமிக்ஸ் எஞ்சினைத் திறக்கவும்.

    கேமிங் AI
    எக்ஸ்-ரே இயந்திரத்தில் கேமிங் செயற்கை நுண்ணறிவு "ஏ-லைஃப்" (ஆங்கில செயற்கை வாழ்க்கை - ரஷ்ய செயற்கை வாழ்க்கை) என்று அழைக்கப்படுகிறது.

    முக்கிய விஷயம் என்னவென்றால், விளையாட்டில் உள்ள கதாபாத்திரங்கள் தங்கள் சொந்த வாழ்க்கையை வாழ்கிறார்கள் மற்றும் எல்லா நேரத்திலும் இருப்பார்கள், வீரர் அவர்களைப் பார்க்கும்போது மட்டுமல்ல. இது கேம் மேம்பாட்டில் பயன்படுத்தப்படும் வழக்கமான மேம்படுத்தல்களுக்கு எதிரானது [...] விவரத்தின் அளவு வேறுபடும் 2 எழுத்து நடத்தை மாதிரிகளை வகைப்படுத்தும் இரண்டு சொற்களை நாங்கள் அறிமுகப்படுத்தியுள்ளோம்: ஆஃப்லைன் மற்றும் ஆன்லைன். கதாபாத்திரத்தின் ஆஃப்லைன் நடத்தை விவரத்தின் அடிப்படையில் மிகவும் எளிமையானது: பாத்திரம் அனிமேஷன், ஒலிகள், சரக்குகளை தீவிரமாக நிர்வகிக்காது, விரிவான மென்மையான பாதைகளை உருவாக்கவில்லை (அவர் உலகளாவிய வழிசெலுத்தல் வரைபடத்தின் படி பாதைகளை உருவாக்குகிறார், ஆனால் இன்னும் பல அது பின்னர்), முதலியன. ஆன்லைன் நடத்தை, இதற்கு நேர்மாறாக, முழு அளவிலான கிரானுலாரிட்டியைக் கொண்டுள்ளது. அந்த. ஆஃப்லைன் நடத்தை என்பது ஆன்லைன் நடத்தையின் துணைக்குழு என்று நாம் கருதலாம்.

    எங்கள் அமைப்பில், வீரர் தனது மட்டத்தில் விளையாடும்போது, ​​மற்ற கதாபாத்திரங்கள் மற்ற நிலைகளில் வாழ்கின்றன, அதாவது. ஆஃப்லைனில் உள்ளன, அதாவது. ஆஃப்லைன் நடத்தையைப் பயன்படுத்தவும். மேலும், அதிக மக்கள்தொகை காரணமாக, ஒரே மட்டத்தில் உள்ள அனைத்து கதாபாத்திரங்களும் ஆன்லைன் நடத்தையைக் கொண்டிருக்கவில்லை, ஆனால் பிளேயரின் ஒரு குறிப்பிட்ட சுற்றளவிற்குள் இருப்பவர்கள் மட்டுமே (இது பொதுவாக 150 மீட்டர் அளவைப் பொறுத்து இருக்கலாம்) அல்லது கோரிக்கையின் பேரில் விளையாட்டு வடிவமைப்பாளர்கள்.

    இதை செயல்படுத்த, சிமுலேட்டர் பிளேயர் மற்றும் ஆப்ஜெக்ட்களின் இயக்கத்தை ஆஃப்லைனில் கண்காணித்து அவற்றை ஆன்லைன்/ஆஃப்லைனுக்கு மாற்றுகிறது. பொருள்களின் மாற்றத்தைக் கணக்கிடும் போது, ​​நிலைமாற்றத்துடன் கூடிய ஒரு நிலையான தந்திரம் பயன்படுத்தப்படுகிறது: ஆஃப்லைனுக்கு மாறுதலின் ஆரம் ஆன்லைனுக்கான மாற்றத்தின் ஆரத்தை விட அதிகமாக உள்ளது.

    அடுத்து, ஆன்லைனிலும் ஆஃப்லைனிலும் பொருள்களின் வழிசெலுத்தலைக் குறிப்பிடுவது மதிப்பு. விளையாட்டில் எங்களிடம் நிலைகள் உள்ளன, ஒவ்வொன்றும் அதன் சொந்த வழிசெலுத்தல் வரைபடத்தைக் கொண்டுள்ளன, அவை ஆன்லைனில் நகர்த்துவதற்குப் பயன்படுத்துகின்றன. அதை விரிவான வரைபடம் என்கிறோம். ஒவ்வொரு விவரமான வரைபடத்திற்கும், அதன் குறைவான விவரமான அனலாக் உருவாக்கப்படுகிறது, இதன் செங்குத்துகள் மற்றொரு நிலை/களின் அதே வரைபடத்தின் செங்குத்துகளுடன் இணைக்கப்படலாம். அந்த. அத்தகைய அனைத்து வரைபடங்களையும் ஒன்றாக இணைத்த பிறகு, அனைத்து நிலைகளையும் இணைக்கும் ஒரு வரைபடம் கிடைக்கும். இது ஆஃப்லைனில் நகர்த்த எழுத்துகளால் பயன்படுத்தப்படுகிறது. எழுத்துக்கள் தங்கள் மூலோபாய இலக்குகளை நிறைவேற்றும் போது இது ஆன்லைனில் பயன்படுத்தப்படுகிறது. எடுத்துக்காட்டாக, ஒரு ஆன்லைன் கதாபாத்திரம் வேறொரு நிலைக்குச் செல்ல முடிவு செய்தால், அவர் உலகளாவிய வரைபடத்தில் ஒரு பாதையை உருவாக்குகிறார், பின்னர் அவரது நிலையிலிருந்து உலகளாவிய வரைபடத்தில் ஒரு புள்ளி வரை விரிவான வரைபடத்தில் ஒரு பாதையை உருவாக்குகிறார். இந்த புள்ளி ஏற்கனவே மற்றொரு நிலையில் இருந்தால், அவர் அங்கு டெலிபோர்ட் செய்து தானாகவே ஆஃப்லைனில் செல்கிறார். பிளேயருக்கு முன்னால் இது நிகழாமல் தடுக்க, கேம் கேரக்டர்களுக்கான டிரான்சிஷன் புள்ளிகளை பிளேயரின் டிரான்சிஷன் பாயிண்ட்டை விட, எங்காவது “மூலையில்” வைத்தோம்.

    ஒலி இயந்திரம்
    ஒலி இயந்திரம் உயர்தர ஒலி உருவாக்கத்திற்காக ஹெட் தொடர்பான பரிமாற்ற செயல்பாடு (HRTF) தொழில்நுட்பத்தைப் பயன்படுத்துகிறது. ஆறு-சேனல் (5.1) ஆடியோ வெளியீடு ஆதரிக்கப்படுகிறது. ஒலி தரவு MP3, MP2, WMA, ADPCM, Ogg மீடியா கண்டெய்னர்களில் சேமிக்கப்படுகிறது.

    நெட்வொர்க்கிங்
    இயந்திரம் கிளையன்ட்-சர்வர் நெட்வொர்க் மாதிரி மற்றும் விநியோகிக்கப்பட்ட கணினி தொழில்நுட்பத்தைப் பயன்படுத்துகிறது. எஞ்சின் ஒரு போட்டியில் 32 வீரர்களை ஆதரிக்கிறது.

    எக்ஸ்-ரேயைப் பயன்படுத்தும் விளையாட்டுகளின் பட்டியல்
    * S.T.A.L.K.E.R.: ஷேடோ ஆஃப் செர்னோபில் (மார்ச் 20, 2007)
    * S.T.A.L.K.E.R.: தெளிவான வானம் (ஆகஸ்ட் 22, 2008)
    * S.T.A.L.K.E.R.: கால் ஆஃப் ப்ரிப்யாட் (அக்டோபர் 2, 2009)

    முன் வெளியீட்டு S.T.A.L.K.E.R.: ஷேடோ ஆஃப் செர்னோபில் - எக்ஸ்-ரே எஞ்சின்(வரலாற்றில் இருந்து)
    S.T.A.L.K.E.R. இன் முக்கிய மையமாக யதார்த்தவாதம் இருப்பதால், விளையாட்டிற்கான யதார்த்தமான இயற்பியல் மாதிரியை உருவாக்குவதில் அதிக கவனம் செலுத்த வேண்டும் என்பதை நாங்கள் அறிவோம். நல்ல விவரங்களுடன் இயற்கையை யதார்த்தமாகக் காட்ட முடியும் என்பது எங்களுக்குத் தெரியும், ஆனால் அடுத்த நிலைக்குச் செல்ல, விளையாட்டை மிகவும் யதார்த்தமானதாக மாற்ற புதிய இயற்பியல் இயந்திரத்தை உருவாக்க வேண்டும் என்று நாங்கள் உணர்ந்தோம். நமது இயற்பியல் இயந்திரம் எவ்வளவு சிறப்பாக இருக்கிறதோ அந்த அளவுக்கு யதார்த்த உணர்வு அதிகமாகும்.

    இந்த முற்றிலும் புதிய இயற்பியல் இயந்திரம் பொருள்கள் உண்மையிலேயே ஊடாடும் தன்மையை உருவாக்க எங்களுக்கு அனுமதித்தது. நாற்காலிகள், மேசைகள், செங்கல்கள், கேன்கள் மற்றும் பல பொருட்களைத் தள்ளலாம், அடிக்கலாம், அழிக்கலாம் மற்றும் வாழ்க்கையில் நீங்கள் செய்யக்கூடிய அனைத்தையும் செய்யலாம். இந்த நேரத்தில், பல கேம்கள் பொருட்களை குவெஸ்ட் உருப்படிகள் என அழைக்கப்படும் S.T.A.L.K.E.R. இது இந்த தடைகளை நீக்குகிறது, எனவே நீங்கள் யதார்த்தமான பழக்கவழக்கங்களின் உலகத்தை முழுமையாக ஆராயலாம். உதாரணமாக, நீங்கள் ஏதேனும் ஒரு பொருளின் மீது தடுமாறினால், நீங்கள் எழுந்த பிறகு, உங்கள் பார்வை மங்கலாகிவிடும், ஒளி சிதறுவதைக் காண்பீர்கள்.

    எங்கள் சக்திவாய்ந்த இயற்பியல் இயந்திரம் யதார்த்தத்தை மட்டுமல்ல, போர் சூழல்களில் தந்திரோபாய திறன்களையும் சேர்க்கிறது என்று நாங்கள் நினைக்கிறோம். எடுத்துக்காட்டாக, வெளிச்சம் குறைவாக உள்ள பகுதியை நீங்கள் ஆராய்ந்துகொண்டிருக்கலாம், அருகில் எதிர்பாராத அசைவுகளைக் கண்டு பதற்றமடைவீர்கள், மேலும் நெருப்பைத் திறக்கலாம். அதன் பிறகு, நீங்கள் நெருங்கி வரும்போது, ​​​​இது ஒரு அரக்கன் அல்ல, ஆனால் மற்றொரு ஸ்டால்கர், ஒருவேளை ஒரு கும்பலில் இருந்து, அவர்கள் அவரது உடலைப் பார்த்தால், அவர்கள் உங்களை எதிர்ப்பார்கள், அதன் பிறகு நீங்கள் உடலை நிழலில் இழுப்பீர்கள். அதனால் அது தெரியவில்லை.

    உடலை உயர்த்தும் திறன் ஸ்டாக்கர்களுக்கு மட்டுமல்ல. விளையாட்டில் உள்ள பெரும்பாலான உயிரினங்கள் புத்திசாலித்தனத்தைக் கொண்டுள்ளன, மேலும் அவை விரும்பியபடி வெவ்வேறு பொருட்களைப் பயன்படுத்த முடியும்.
    சில பொருட்களை நீங்கள் எதிரிகளைத் தாக்க பயன்படுத்தலாம், மற்றவை வெடிப்புகள் அல்லது தோட்டாக்களுக்கு எதிராகப் பாதுகாக்கப் பயன்படுத்தலாம். ஆனால் அதே நேரத்தில், அவை உங்களை தாக்குதலில் இருந்து பாதுகாக்காது; எடுத்துக்காட்டாக, அனைத்து பொருட்களும் உங்களுக்கு AK-47 இலிருந்து பாதுகாப்பை வழங்க முடியாது :-)

    உடலின் இயற்பியலில் அதிக கவனம் செலுத்தினோம். எஸ்.டி.ஏ.எல்.கே.இ.ஆர். மேம்பட்ட எலும்பு அனிமேஷனைக் கொண்டுள்ளது, இது உடல் அசைவுகளின் யதார்த்தத்தை மிக உயர்ந்த அளவிற்கு கட்டுப்படுத்துகிறது உயர் நிலைவிவரம். விளையாட்டின் ஒவ்வொரு பாத்திரமும் 50 எலும்புகளைக் கொண்டுள்ளது. எங்கள் இயந்திரம் மற்ற காரணிகளுடன் சேர்த்து அதிகபட்ச எலும்பு, மூட்டு மற்றும் எடை வலிமையை நம்பியுள்ளது. உடல் விழுந்தாலோ அல்லது சுடப்பட்டாலோ இதெல்லாம் என்ன வினையாக்கும். உதாரணமாக, நீங்கள் பல முறை சுடப்பட்டிருந்தால், உங்கள் இயக்கங்கள் மிகவும் மெதுவாக இருக்கும். உங்கள் கையில் காயம் ஏற்பட்டால், எதிரியை குறிவைப்பது உங்களுக்கு கடினமாக இருக்கும்.

    நாங்கள் ஆயுதங்களிலும் அதிக கவனம் செலுத்தினோம், அனைத்து மாடல்களும் உண்மையான புகைப்பட அமைப்புகளைப் பயன்படுத்தி உருவாக்கப்படுகின்றன, எனவே எல்லா அமைப்புகளையும் நாமே கொண்டு வந்ததைப் போல் உணர முடியாது. ஆயுதங்கள் மாற்றியமைக்கப்படலாம்.

    போக்குவரத்திற்கு ஒரு சிறப்பு அக்கறை இருக்கும்; உங்கள் காரை தொடர்ந்து இயக்க எரிபொருள் அளவு மற்றும் சேதத்தை நீங்கள் கண்காணிக்க வேண்டும். உங்கள் உபகரணங்களுக்கு காரில் இடம் இருக்கும், உங்கள் பொருட்களை அங்கே வைக்கலாம். ஒரு புல்லட் காரின் டயர்களைத் தாக்கினால், அது கவிழ்ந்து விடும், மேலும் இதுபோன்ற விபத்துகளால் டிரைவர் இறக்கக்கூடும்.

    இயற்பியல் விளையாட்டின் முக்கிய பகுதியாகும், இது வீரர்களுக்கு ஊடாடும் விளையாட்டுக்கான முன்னோடியில்லாத சாத்தியங்களைத் திறக்கிறது. எஸ்.டி.ஏ.எல்.கே.இ.ஆர். நீங்கள் இதுவரை பார்த்திராத ஒரு முழுமையான யதார்த்த உணர்வைத் தரும் உயர் தொழில்நுட்ப இயற்பியல் இயந்திரத்தை உங்களுக்கு உறுதியளிக்கிறது.

    * ஒரு சட்டகத்திற்கு 300,000 - 3,000,000 பலகோணங்கள் - உங்கள் வீடியோ அட்டை அதிக சக்தி வாய்ந்தது, உங்களுக்கு சிறந்தது. ஒரு நல்ல வீடியோ அட்டை மூலம், நீங்கள் ஒரு நல்ல படத்தைப் பார்ப்பீர்கள், மேலும் நீங்கள் திருப்தி அடைவீர்கள் என்று நினைக்கிறேன், மேலும் இந்த வீடியோ அட்டைக்காக நீங்கள் ஒரு நேர்த்தியான தொகையை செலுத்தியதற்காக வருத்தப்பட மாட்டீர்கள். இயந்திரம் உங்களுக்கு ஏற்றவாறு கட்டமைக்கப்பட்டுள்ளது பொதுவான அமைப்பு, அது சிறப்பாக உள்ளது, இயந்திரம் அதன் வரம்புகளுக்கு தள்ளப்படுகிறது. டைனமிக் நிழல்கள் மற்றும் விளக்குகள் - விளையாட்டில் நிழல்கள் மற்றும் விளக்குகள் பற்றி எல்லாம் சிந்திக்கப்படுகிறது, டெவலப்பர்கள் எல்லாவற்றையும் மிக உயர்ந்த மட்டத்தில் செய்ய முயன்றனர். டைனமிக் நிழல்கள் மற்றும் விளக்குகளை நிரூபிக்கும் வீடியோவை நீங்கள் பார்த்திருந்தால், எல்லாம் உங்களுக்கு தெளிவாக இருக்கும். பொருள்களின் நிழல்கள் எழுத்துக்களில் சரியாக விழுகின்றன - நீங்கள் ஒப்புக்கொள்கிறீர்கள், மற்றொரு முக்கியமான விவரம். சக்திவாய்ந்த இயற்பியல் இயந்திரம் - வாகனக் கட்டுப்பாடு, விரிவான பொருள்கள், புல்லட் பாலிஸ்டிக்ஸ், எலும்புக்கூட்டில் உள்ள இணைப்புகள் போன்றவை. - உபகரணங்களின் கட்டுப்பாடு ஒரு கண்ணியமான மட்டத்தில் செய்யப்பட்டது, அத்தகைய விவரத்தை அவர்கள் மறக்கவில்லை. விளையாட்டில் உள்ள அனைத்து பொருட்களும் நன்றாக வரையப்பட்டுள்ளன, புல், மேகங்கள் தோராயமாக பயன்படுத்தப்படும் அமைப்பு மட்டுமல்ல, நன்கு வளர்ந்த பொருள்கள்; விளையாட்டில் போர் மூடுபனி என்று அழைக்கப்படுபவை இல்லை அல்லது இல்லை என்று நேரில் கண்ட சாட்சிகள் உள்ளனர். ஆயுத புள்ளிவிவரங்களும் மிக உயர்ந்த மட்டத்தில் உள்ளன, டெவலப்பர்களின் மேசையில் ஆயுத கலைக்களஞ்சியங்கள் கிடப்பதைக் கண்ட சாட்சிகள் உள்ளனர், டெவலப்பர்களுக்கு ஆயுதத்தின் தீ விகிதம், திறன் போன்றவை பற்றிய தகவல்களும் இருந்தன, அவர்கள் இதையெல்லாம் செயல்படுத்த முயன்றனர், அதாவது. , கேமில் பீப்பாயின் உண்மையான நடத்தை. மண்டலத்தில் வாழும் அனைத்து உயிரினங்களுக்கும் எலும்புக்கூடுகள் உள்ளன, இதன் பொருள் உடல் ரப்பரைப் போல இருக்காது, விளையாட்டில் நடக்கும் அனைத்தும் விளையாட்டில் திடமான உடல்களின் இயற்பியலுக்கு உறுதியான பொறுப்பு திட்டத்தின் தலைமை இயற்பியலாளர். திடமான உடல்களுடன் V மீண்டும் மீண்டும் செய்யப்பட்டது உண்மையான வாழ்க்கை, பிறகு எல்லாமே கிட்டத்தட்ட இப்படித்தான் இருக்கும். யதார்த்தமான AI - விளையாட்டுப் பாத்திரங்கள் நிகழ்வுகள் மற்றும் அவர்களைச் சுற்றியுள்ள உலகத்திற்குப் பொருத்தமாக நடந்து கொள்கின்றன. மண்டலத்தின் சுற்றளவுக்கு வீரர்கள் ரோந்து செல்கின்றனர். வேட்டையாடுபவர்கள் வீரருக்கு இணையாக மண்டலம் வழியாக பயணித்து, முரண்பாடான வடிவங்களை சேகரித்து, பேரம் பேசுவது, தொடர்புகொள்வது மற்றும் ஒருவருக்கொருவர் சண்டையிடுவது. மரபுபிறழ்ந்தவர்கள் தங்கள் மக்கள்தொகையை அதிகரிக்கிறார்கள், மண்டலம் முழுவதும் இடம்பெயர்கிறார்கள், ஒருவருக்கொருவர் விழுங்குகிறார்கள், வேட்டையாடுபவர்கள், வீரர்கள், ஓய்வு மற்றும் தூக்கம். அவ்வப்போது நீங்கள் மற்ற கதாபாத்திரங்களுடன் தொடர்பு கொள்கிறீர்கள் மற்றும் அவர்களுடன் பல்வேறு தகவல்களை பரிமாறிக்கொள்கிறீர்கள். ஒரு நல்ல மற்றும் விலையுயர்ந்த கலைப்பொருளை வைத்திருக்கும் ஒரு வேட்டையாடுபவர் மக்களைத் தவிர்க்க முயற்சிப்பார், மேலும் இந்த கலைப்பொருளை விரைவாக விற்க அல்லது மறைக்க முயற்சிப்பார்.

    அவ்வளவுதான், உங்கள் கவனத்திற்கு நன்றி...

    ஆதாரம் stalker64.net.ru.

    கட்டுரை எடுக்கப்பட்டது: http://stalker.by

    நாங்கள் பரிந்துரைக்கிறோம்:

    கணினியில் உள்ள விளையாட்டுகள் "நேரத்தை கொல்ல" ஒரு சிறந்த வழியாகும், வேடிக்கையாகவும் ஓய்வெடுக்கவும். ஆர்வமுள்ள விளையாட்டாளராக இல்லாமல் கூட, ஒரு நபர் பெரும்பாலும் விளையாட்டு மேம்பாட்டுத் துறையில் தனது சொந்த விருப்பங்களைக் கொண்டிருக்கிறார். சிலர் துப்பாக்கி சுடும் வீரர்களை விரும்புகிறார்கள், மற்றவர்கள் உத்திகள் இல்லாமல் வாழ முடியாது.

    2006 இல், ஸ்டால்கர்: ஷேடோ ஆஃப் செர்னோபில் வெளியானது ஒரு உண்மையான நிகழ்வு. இந்த விளையாட்டு உலகம் முழுவதும் மில்லியன் கணக்கான ரசிகர்களைப் பெற்றுள்ளது. சமீபத்திய பதிப்பு, கால் ஆஃப் ப்ரிபியாட், 2009 இல் வெளியிடப்பட்டது, அதன் பிறகு விளையாட்டின் ரசிகர்களின் எண்ணிக்கை கடுமையாக அதிகரித்தது: செர்னோபில் அணுமின் நிலையத்தின் வளிமண்டலம் மிகவும் வசீகரமாக இருப்பதால், பெரியவர்கள் கூட மணிக்கணக்கில் உட்கார முடியும்.

    துரதிர்ஷ்டவசமாக, பல பயனர்கள் XRay இன்ஜின் பிழை தங்களை விளையாட்டை ரசிப்பதிலிருந்து தடுக்கிறது என்று புகார் கூறுகின்றனர். அதன் தோற்றத்திற்கு என்ன காரணம் மற்றும் அதை எவ்வாறு அகற்றுவது? எங்கள் கட்டுரை அர்ப்பணிக்கப்பட்டது இதுதான்.

    எக்ஸ்ரே என்றால் என்ன?

    சிக்கலை எவ்வாறு தீர்ப்பது என்பதைக் கண்டறிய, அதன் மூல காரணத்தை நீங்கள் இன்னும் விரிவாக புரிந்து கொள்ள வேண்டும். XRay என்பது ஸ்டாக்கரின் அனைத்து பகுதிகளிலும் பயன்படுத்தப்படும் ஒரு விளையாட்டு இயந்திரம் என்பதிலிருந்து தொடங்குவோம்.

    இது இந்த விளையாட்டிற்காக குறிப்பாக உருவாக்கப்பட்டது, இது 2001 இல் மீண்டும் நடந்தது. STALKER திட்டமே வெறுமனே ஒரு காவியமான "நீண்ட கால கட்டுமானமாக" மாறியதால், அது ஐந்து ஆண்டுகளுக்குப் பிறகுதான் வெளிச்சத்தைக் கண்டது. முதலில், டெவலப்பர்கள் இதை டைரக்ட்எக்ஸ் 8 உடன் பிரத்தியேகமாகப் பயன்படுத்த எண்ணினர், ஆனால் முத்தொகுப்பின் முதல் பகுதி வெளியான நேரத்தில், டைரக்ட்எக்ஸ் 9க்கான ஆதரவைச் சேர்த்தனர். 2008 ஆம் ஆண்டில், நீண்டகாலமாகத் துன்புறுத்தப்பட்ட கிளியர் ஸ்கை வெளியீடு அறிவிக்கப்பட்டது, பதிப்பு 10 அங்கு சேர்க்கப்பட்டது.

    இறுதியாக, "கால் ஆஃப் ப்ரிபியாட்" டைரக்ட்எக்ஸ் 11ஐயும் பெற்றது. இருப்பினும், கேம் குறியீட்டிலேயே சில "கடினத்தன்மை" கொடுக்கப்பட்டதால், 11வது பதிப்பின் முழுத் திறனையும் எஞ்சினால் முழுமையாக வெளிப்படுத்த முடியவில்லை.

    பிழையின் வெளிப்பாடு என்ன?

    இந்த தருணத்தை எதனுடனும் குழப்ப முடியாது. விளையாட்டு திடீரென்று நின்று, பின்னர் டெஸ்க்டாப்பில் செயலிழக்கிறது. பிழைக் குறியீட்டை விவரிக்கும் உரையாடல் பெட்டி ஒரு பெரிய வண்டு சித்தரிப்பதால், XRay இன்ஜின் பெரும்பாலும் ரசிகர் மன்றங்களில் "பச்சை பேரழிவு" மற்றும் "துரதிர்ஷ்ட வண்டு" என்று அழைக்கப்படுகிறது.

    இருப்பினும், போதுமான பாடல் வரிகள். "வண்டு" தோன்றுவதற்கான காரணம் என்ன?

    தோற்றத்திற்கான காரணங்கள்

    ஐயோ, அத்தகைய எரியும் கேள்விக்கு தெளிவான பதில் இல்லை. GSC இன் டெவலப்பர்கள் நிறுவனம் இன்னும் இருந்த நேரத்தில் கூட காரணங்களைப் பற்றி குறிப்பாக கருத்து தெரிவிக்கவில்லை, இப்போது விரிவான பதில்களை நம்புவது முற்றிலும் அர்த்தமற்றது.

    சோதனை மற்றும் பிழை முறையைப் பயன்படுத்தி, வீடியோ அட்டைக்கு சமீபத்திய இயக்கிகளை நிறுவாத பயனர்களின் கணினிகளில் விளையாட்டு பெரும்பாலும் செயலிழக்கச் செய்வது கண்டறியப்பட்டது. இந்த மென்பொருளின் எந்தப் பதிப்பு உங்கள் கணினியில் நிறுவப்பட்டுள்ளது என்பது உங்களுக்குத் தெரியாவிட்டால், அதைப் புதுப்பிக்க வேண்டிய நேரம் இது.

    நாங்கள் விளையாட்டை மேம்படுத்துகிறோம்

    தெளிவான வானத்தின் தோற்றத்தை நீங்கள் கண்டிருந்தால், டெவலப்பர்களுக்கு வீரர்கள் வழங்கிய "புகழ்ச்சியான" பெயர்கள் அனைத்தையும் நீங்கள் நன்றாக நினைவில் வைத்திருக்கிறீர்கள். அதற்கும் ஒரு காரணம் இருந்தது! உண்மையில், விளையாடுவது முற்றிலும் சாத்தியமற்றது, மேலும் XRay இன்ஜின் பிழை இன்னும் சிறியதாக இருந்தது!

    அழியாத துப்பாக்கி சுடும் வீரர்களையும் முற்றிலும் காலியான "இருண்ட பள்ளத்தாக்கு" யையும் பாருங்கள்! 1.5.04 ஆட்-ஆன் மூலம் மட்டுமே என்னால் சாதாரணமாக விளையாட முடிந்தது, மேலும் முந்தைய பதிப்புகளில் செய்யப்பட்ட அனைத்து சேமிப்புகளும் வேலை செய்யவில்லை. சுருக்கமாக, உங்களிடம் இணையம் இருந்தால், சோம்பேறியாக இருக்காதீர்கள் மற்றும் டெவலப்பரின் வலைத்தளத்திற்குச் செல்லவும். தொடரில் உள்ள அனைத்து கேம்களுக்கும் ஏற்கனவே உள்ள அனைத்து இணைப்புகளும் உள்ளன, எனவே நீங்கள் அவற்றைப் பதிவிறக்கி நிறுவ வேண்டும். இந்த வழக்கில், ஸ்டாக்கரில் XRay இன்ஜின் பிழை மிகவும் குறைவாக அடிக்கடி தோன்றும்.

    கடற்கொள்ளையர் பதிப்புகள்

    டெவலப்பர்கள் இறுதி பயனர்களின் நலன்களை கணக்கில் எடுத்துக் கொள்ளாததால், நன்கு அறியப்பட்ட ஸ்டார்ஃபோர்ஸ் அமைப்பால் சட்டவிரோத நகலெடுப்பதில் இருந்து விளையாட்டு பாதுகாக்கப்படுகிறது. பல பயனர்கள் தங்கள் கைகளில் கேமுடன் உரிமம் பெற்ற வட்டு வைத்திருக்கும் சந்தர்ப்பங்களில் கூட NoDVD ஐப் பதிவிறக்க விரும்புகிறார்கள் என்பதில் ஆச்சரியமில்லை.

    துரதிருஷ்டவசமாக, இந்த "மாத்திரைகள்" பல XRay இன்ஜின் பிழை தோன்றுவதற்கு காரணமாகின்றன. நீங்கள் ஸ்டார்ஃபோர்ஸ் இயக்க முறைமையை கெடுக்க விரும்பவில்லை என்றால் என்ன செய்வது, ஆனால் நீங்கள் எப்போதும் "பச்சை பிழையை" பார்க்க விரும்பவில்லை என்றால் என்ன செய்வது?

    ஐயோ, ஒரே ஒரு வழி இருக்கிறது. நீராவியில் விளையாட்டை வாங்கவும். இந்த டிஜிட்டல் உள்ளடக்க அங்காடியில் விளையாட்டு வெளிநாட்டு பயனர்களுக்கும் கிடைக்கும் என்பதால் (ஸ்டார்ஃபோர்ஸ் கொள்கையளவில் தடைசெய்யப்பட்டுள்ளது), நீங்கள் நிச்சயமாக சிக்கலில் இருந்து விடுபடுவீர்கள்.

    மற்ற காரணங்கள்

    பிழைக்கு பங்களிக்கும் மற்றொரு முக்கியமான காரணி உங்கள் கணினி வன்பொருளாக இருக்கலாம். மிகவும் புதிய அல்லது பழைய கூறுகள் மர்மமான உக்ரேனிய இயந்திரத்துடன் ஒத்துப்போகாமல் போகலாம், அதன் பிறகு நீங்கள் தொடர்ந்து XRay இன்ஜின் பிழையால் வேட்டையாடப்படுவீர்கள். "கால் ஆஃப் ப்ரிபியாட்" என்பது தற்போது விளையாட்டின் "புதிய" பதிப்பாகும், இது மிகவும் குறைவான பொதுவான வன்பொருள் சிக்கல்களைக் கொண்டுள்ளது. "செர்னோபில் நிழல்" மற்றும் "தெளிவான வானம்" இந்த விஷயத்தில் மிகவும் பழமையானவை, எனவே அவர்கள் பெரும்பாலும் புதிய வீடியோ அட்டைகளுடன் நண்பர்களாக இருக்க மறுக்கிறார்கள்.

    மோட்ஸ்

    "ஸ்டாக்கர்" வெளியிடப்பட்டபோது, ​​வீரர்களின் மகிழ்ச்சிக்கு எல்லையே இல்லை. விளையாட்டு உண்மையில் வரம்பற்ற சுதந்திர உணர்வைக் கொடுத்தது. GG தனது இயக்கத்தின் திசையில் நடைமுறையில் வரம்பற்ற நிலையில், எங்கும் செல்ல முடியும். நேரம் செல்ல செல்ல உற்சாகம் குறைந்து கொண்டே வந்தது.

    டெவலப்பர்கள் வெட்டப்பட்ட இடங்களைத் திருப்பித் தரப் போவதில்லை என்பது தெளிவாகியது, மேலும் விளையாட்டில் போதுமான நடவடிக்கை இல்லை. அப்போதுதான் MODகள் (விளையாட்டு மாற்றங்கள்) தோன்றின, சில சமயங்களில் ஸ்டாக்கருக்கு உண்மையிலேயே உலகளாவிய மாற்றங்களைச் செய்தன.

    மிகவும் பிரபலமானது AMK திட்டம், இது இல்லாமல் அனுபவமுள்ள விளையாட்டாளர்கள் இப்போது "செர்னோபிலின் நிழல்" முடிக்க பரிந்துரைக்கவில்லை. சில மோட்கள் மிகவும் வெற்றிகரமாக இருந்தன, சில அவ்வளவு இல்லை. ஆனால் கிட்டத்தட்ட எல்லாவற்றிலும் XRay இன்ஜின் பிழை உள்ளது. "கால் ஆஃப் ப்ரிபியாட்" இந்த கேமிற்கு மிகக் குறைவான மோட்கள் இருப்பதால் இந்த நிகழ்வுக்கு மிகவும் குறைவாகவே பாதிக்கப்படுகிறது.

    எனவே நீங்கள் ஒரு MOD ஐப் பயன்படுத்துகிறீர்கள் என்றால், ஒரே ஒரு வழி மட்டுமே உள்ளது - அதன் டெவலப்பருடன் நேரடியாகத் தொடர்புகொள்வது அல்லது நூற்றுக்கணக்கான மன்றங்களின் பக்கங்களைத் தேடுவது, சில நிபந்தனைகளின் கீழ், உண்மையில் அகற்றக்கூடிய நல்ல வீட்டில் "பேட்ச்களை" வீரர்கள் சில சமயங்களில் இடுகையிடுவார்கள். இந்த பிழை. நிச்சயமாக, இதை நீங்கள் எப்போதும் நம்ப முடியாது, ஏனெனில் எக்ஸ்ரே எஞ்சின் (குறிப்பாக “கால் ஆஃப் ப்ரிபியாட்”) விஷயத்தில், எதையும் உறுதியாகச் சொல்வது கடினம்.

    ஏமாற்றுபவர்கள்

    சில நிலைகளை மிகவும் கடினமாகக் கருதும் மற்ற வீரர்கள், பெரும்பாலும் ஏமாற்றுக்காரர்களால் அதிகமாகக் கொண்டு செல்லப்படுவார்கள், இதன் உதவியுடன் அவர்கள் தங்களுக்கு வரம்பற்ற ஆயுதங்கள் மற்றும் உபகரணங்களை உருவாக்க முடியும், மேலும் சிறந்த கலைப்பொருட்களை தங்கள் வசம் பெறலாம்.

    வழக்கம் போல் எல்லாவற்றுக்கும் பணம் கொடுக்க வேண்டும். இந்த குறிப்பிட்ட வழக்கில், ஸ்டாக்கரில் XRay இன்ஜின் பிழை ஒவ்வொரு சில வினாடிகளிலும் தோன்றத் தொடங்கும் போது, ​​நிரல் நிலைத்தன்மை இழப்பில் இது வெளிப்படுத்தப்படுகிறது. இது நடந்தால், ஏமாற்றுபவரின் வேறு பதிப்பைத் தேட முயற்சிக்கவும். அதிர்ஷ்டவசமாக, இன்று அவை இணையத்தில் ஆயிரக்கணக்கான பிரதிகளில் காணப்படுகின்றன. இறுதியாக, கடினமான நிலையை நேர்மையாக கடக்க முயற்சி செய்யுங்கள்! ஒருவேளை இந்த வழியில் நீங்கள் விளையாட்டிலிருந்து அதிக மகிழ்ச்சியைப் பெறுவீர்கள்.

    "ஷாமனிசம்"

    ஐயோ, மிகவும் தர்க்கரீதியான மற்றும் சரியானது, முதல் பார்வையில், இந்த விளையாட்டு இயந்திரத்திற்கு வரும்போது முறைகள் தோல்வியடைகின்றன. எடுத்துக்காட்டாக, நீங்கள் "நேட்டிவ்" ரெசல்யூஷனுடன் விளையாடவில்லை என்றால், இந்த பிழைக்கான காரணம் இதுவாக இருக்கலாம்.

    உங்கள் மானிட்டர் தெளிவுத்திறன் 1280x1024, ஆனால் நீங்கள் 800x600 இல் விளையாட விரும்புகிறீர்களா? இதன் காரணமாக துல்லியமாக ஸ்டாக்கரில் XRay இன்ஜின் தோன்றியிருக்கலாம். தெளிவுத்திறனை சொந்தமாக மாற்றவும் (இந்த மானிட்டருக்கு பரிந்துரைக்கப்படுகிறது). சில சந்தர்ப்பங்களில், அத்தகைய எளிய நடவடிக்கை பிழையை முற்றிலுமாக அகற்ற உதவுகிறது.

    உங்கள் பக்கக் கோப்பு மிகவும் சிறியதாக அமைக்கப்படும் போது சில நேரங்களில் சிக்கல் ஏற்படும். வெறுமனே, அதன் அளவு ரேம் அளவை விட இரண்டு மடங்கு இருக்க வேண்டும்.

    ஸ்வாப் கோப்பின் அளவை அதிகரிப்பது எப்படி?

    இது உண்மையில் மிகவும் எளிதானது. இதைச் செய்ய, "எனது கணினி" மீது வலது கிளிக் செய்து, சூழல் மெனுவிலிருந்து "பண்புகள்" என்பதைத் தேர்ந்தெடுக்கவும். திறக்கும் உரையாடல் பெட்டியில், "மேம்பட்ட கணினி அமைப்புகள்" விருப்பத்தைத் தேர்ந்தெடுக்கவும். "செயல்திறன்" உருப்படியில் "விருப்பங்கள்" பொத்தானைக் கிளிக் செய்து, பின்னர் "மேம்பட்ட" தாவலைத் தேர்ந்தெடுக்கவும். பின்னர் நீங்கள் "மெய்நிகர் நினைவகம்" உருப்படியில் "மாற்று" என்பதைக் கிளிக் செய்ய வேண்டும், பின்னர் உங்களுக்குத் தேவையான மதிப்பை உள்ளிட்டு "சரி" மீது இடது கிளிக் செய்யவும்.

    எப்போதாவது, கணினியில் 512 MB நினைவகம் குறைவாக இருந்தால் விளையாட்டைத் தொடங்கலாம், ஆனால் நீங்கள் இதைச் செய்யக்கூடாது: XRay இன்ஜின் பிழை மற்றும் பயங்கரமான "பிரேக்குகள்" இன்னும் உங்களை விளையாட அனுமதிக்காது.

    இறுதியாக, விளையாட்டின் அம்சங்களைப் பற்றி நாம் பேச வேண்டும். தேவையற்ற படத்தை மேம்படுத்தும் விருப்பங்களை முடக்குவது நல்லது. "Stalker Call of Pripyat" என்று வரும்போது இந்த அறிக்கை குறிப்பாக உண்மை. XRay இன்ஜின் பதிப்பு 1.6.0 இல் பிளேயர் அதிகபட்ச தர அமைப்புகளை அமைக்க முயற்சித்தபோது அடிக்கடி தோன்றியது.

    மற்றும் டிரைவர்கள் பற்றி மேலும். கணினிகளில் தனித்துவமான ஆடியோ கார்டு உள்ள பயனர்களை பிழை தாக்குவது மிகவும் அரிதானது அல்ல. அதற்கான இயக்கிகளைப் புதுப்பிக்க முயற்சிக்கவும், குறிப்பாக கடினமான சந்தர்ப்பங்களில், கண்ட்ரோல் பேனலில் இருந்து சாதனத்தை முடக்கவும். கவனம்! இதை கவனமாக செய்யுங்கள், இல்லையெனில் உங்கள் கணினியில் உள்ள அனைத்து ஒலிகளையும் இழக்க நேரிடும்.

    எங்கள் முழு கதையின் முடிவில் நாம் என்ன சொல்ல முடியும்? புதிய கேம் பதிவுகளை அமைப்பதில் எந்தப் பிழையும் உங்களைத் தடுக்காது என்று நாங்கள் விரும்புகிறோம்! இந்த விஷயத்தில் எங்கள் பரிந்துரைகள் உங்களுக்கு உதவும் என்று நம்புகிறோம்.

    0) விஷுவல் ஸ்டுடியோ 2008 SP1 ஐ நிறுவவும் (தொழில்முறை அல்லது குழு, நான் அதை முதலில் சேகரித்தேன்), engine.vc2008.fixed.rar காப்பகத்திலிருந்து சேவை பேக் ஸ்டுடியோவின் ஆங்கில பதிப்பிற்கு மட்டுமே பொருத்தமானது, நீங்கள் ரஷ்யனுக்கு அதை தனியாக பதிவிறக்கம் செய்ய வேண்டும்.

    1) வட்டில் ஒரு கோப்புறையை உருவாக்கவும், அதில் மற்றொரு கோப்புறையை உருவாக்கவும்.

    2) இந்த கோப்புறையில் "engine.vc2008.fixed - நான் சரிசெய்த vs2008 திட்டம்" என்ற காப்பகத்திலிருந்து engine.vc2008 கோப்புறையை மட்டுமே வைக்கிறோம், அங்கிருந்து SDK கோப்புறையைத் தொட மாட்டோம்.

    3) SDK கோப்புறையை "stasvn\sources\engine.vc2005-2008 (~1.6.02 பெஞ்ச்மார்க்) - மார்ச் 2010" என்ற காப்பகத்திலிருந்து, ஆதாரங்களின் துணைக் கோப்புறையிலிருந்து எடுக்கிறோம்.
    engine.vc2008 இன் கீழ் ஒரு கோப்புறையில் வைக்கிறோம்

    4) இப்போது நாம் engine.vc2008.fixed.rar காப்பகத்திலிருந்து SDK கோப்புறையைச் சேர்த்து, எல்லா கோப்புகளையும் மாற்ற ஒப்புக்கொள்கிறோம்.

    5) மைக்ரோசாப்ட் இணையதளத்தில் இருந்து இரண்டு டைரக்ட்எக்ஸ் SDKகளைப் பதிவிறக்கவும் - 2009 மார்ச் மற்றும் 2010 ஜூன். (ஒவ்வொன்றும் சுமார் 500 MB எடையுடையது), நீங்கள் பதிப்பு 2009 ஐ மட்டுமே பயன்படுத்த முடியும், ஆனால் நீங்கள் xrRender_R4 ஐ உருவாக்க முடியாது. (இணைப்பு: அபாயகரமான பிழை LNK1181: "d3d11.lib" உள்ளீட்டு கோப்பை திறக்க முடியாது), மேலும் நீங்கள் 2010ஐ மட்டும் பயன்படுத்தினால், R4 உடன் கேம் தொடங்காது.

    இரண்டு DX SDKகளை நிறுவிய பின், அவர்கள் ஸ்டுடியோவிற்கு தங்கள் பாதைகளை பதிவு செய்துள்ளதை உறுதி செய்து கொள்ளவும்; படத்தில் காட்டப்பட்டுள்ளபடி 2010 SDK கோப்புகள் 2009 க்குப் பிறகு இருக்க வேண்டும்:

    இதேபோல் இயங்கக்கூடிய கோப்புகள் மற்றும் கோப்புகளை உள்ளடக்கிய பிரிவுகளுக்கும். உங்களுக்கு ஏதேனும் கேள்விகள் இருந்தால், "directx sdk விஷுவல் ஸ்டுடியோ 2008 ஐ இணைக்கிறது" என்ற வார்த்தைகளைப் பயன்படுத்தி Google இல் தகவலைத் தேடவும்.

    SDK பதிப்புகள் தவறாக இருந்தால் (அல்லது இணைக்கப்படவில்லை), d3dXX.lib\.h போன்ற கோப்புகள் இல்லாதது குறித்து பதிவு புகார் செய்யும்.
    ஏற்கனவே நிறுவப்பட்ட DirectX SDK இலிருந்து கோப்புறைகளை எங்கும் நகர்த்த வேண்டிய அவசியமில்லை. ஸ்டுடியோவிற்கு (அல்லது ஒவ்வொரு திட்டத்திற்கும் கைமுறையாக) உலகளாவிய பாதைகளை பதிவு செய்தால் போதும்.

    loxotron வழங்கும் கருத்து: Direct SDK உள்ள கோப்புறையில் d3d11_beta.lib ஐ d3d11.lib என நகலெடுத்து மறுபெயரிடுங்கள் அல்லது இன்னும் சிறப்பாக, DX SDK ஆகஸ்ட் 2009 ஐப் பதிவிறக்கி நிறுவவும், பொருத்தமற்ற பதிப்புகளைப் பற்றி கவலைப்பட வேண்டாம்.

    6) ஒரு வேளை, நீங்கள் SDK\OpenALwEAX.exe ஐயும் நிறுவலாம், ஆனால் இது மிகவும் அவசியமானது என்று எனக்குத் தெரியவில்லை.

    7) ..\CoP\Project\engine.vc2008\engine.sln வழியாக திட்டத்தைத் தொடங்கவும். இது ஏற்றப்படும்போது, ​​ஸ்டுடியோவின் மேற்புறத்தில், Debug_Dedicated (அல்லது வேறு ஏதேனும்) இலிருந்து வெளியீட்டிற்கு உருவாக்கப் பயன்முறையை மாற்றவும். இடது / வலதுபுறத்தில் என்ஜின் கோப்புகளுடன் கோப்புறைகளின் பட்டியல் இருக்கும், முதலில், 3rd_party கோப்புறை தேவை - அதன் மீது வலது கிளிக் செய்து, Build\Construct என்பதைத் தேர்ந்தெடுக்கவும்.

    எல்லாம் சரியாக இருந்தால், இறுதியில் கீழே உள்ள பதிவு 11 பற்றி எழுதும் வெற்றிகரமான திட்டங்கள்(அல்லது எண்ணிக்கை குறைவாக இருக்கும், சில திட்டங்கள் ஏற்கனவே தொகுக்கப்பட்டிருந்தால், பதிவேடு "தவிர்க்கப்பட்டது" என்று தெரிவிக்கும்) முக்கிய விஷயம் என்னவென்றால், எல்லா இடங்களிலும் 0 பிழைகள் \ அபாயகரமானதாக இருக்க வேண்டும்
    அனைத்து திட்டங்களையும் பிழையின்றி முடித்துள்ளேன். (எச்சரிக்கை: முழு அளவிலான பிழைகள் கருதப்படாது)

    8) ஒப்புமை மூலம், மேலிருந்து கீழாக, நீங்கள் மற்ற Dll களை சேகரிக்கலாம்; எடிட்டர்\ பிரத்யேக\utils\plugins கோப்புறைகளை சேகரிக்க வேண்டிய அவசியமில்லை - அவை இயந்திரத்திற்கு சொந்தமானவை அல்ல. xrGame.dll அசெம்பிள் செய்ய அதிக நேரம் எடுக்கும். மீதமுள்ளவை போதுமான வேகத்தில் உள்ளன.

    மூலம், அனைத்து Dll களையும் சேகரிக்க வேண்டிய அவசியமில்லை. தேவையானவை மட்டுமே சாத்தியம். அவை தயாரானதும், கேம் கோப்புறையில் சுத்தமான பின் கோப்புறையை உருவாக்கவும். உருவாக்கப்பட்ட அனைத்து dll கோப்புகளையும் அங்கு வைக்கவும் (நீங்கள் அதை .pdb உடன் செய்யலாம்). தேவைப்பட்டால், கேமிற்குத் தேவைப்பட்டால், அசல் பின் ZP (2வது பேட்ச்) இலிருந்து விடுபட்ட கோப்புகளைச் சேர்க்கலாம். (wrap_oal.dll போன்றது)
    அசல் Stalker-COP.exe இலிருந்து கேமைத் தொடங்கினேன்

    எல்லாம் சரியாக இருந்தால், கேம் லாக்/கன்சோலில் உள்ள முதல் வரிகள் கேம் உருவாக்கம் மற்றும் கட்டுமான தேதியைக் குறிக்கும்.