Слишком много попыток занесения события для семафора windows 11

,

If you receive the error «Too many posts were made to a semaphore» when trying to change the attributes on an application (.exe) file, continue reading below to fix the problem.

The «Error Applying Attributes: An error occurred applying attributes to the file «name-of-file.exe». Too many posts were made to a semaphore«, is usually appears when trying to modify the attributes on a «Read Only» file (e.g. when you want to «Unblock» an application or file that comes from an untrusted publisher.).

Too many posts were made to a semaphore when applying attributes

How to Fix: Cannot Unblock File – Too many posts were made to a semaphore, on Windows 10/11.

1. Right-click on the file or programs that gives you the error and select Properties.

Too many posts were made to a semaphore - fix

2. In General tab, uncheck the Read-only checkbox and click OK.

FIX: Cannot Change Attributes - Too many posts were made to a semaphore

3. Click Continue on «Access Denied» message and you done! Now try to change the attributes of the program.

Too many posts were made to a semaphore in Ublock

That’s all folks! Did it work for you?
Please leave a comment in the comment section below or even better: like and share this blog post in the social networks to help spread the word about this solution.

If this article was useful for you, please consider supporting us by making a donation. Even $1 can a make a huge difference for us.

  • Author
  • Recent Posts

Konstantinos is the founder and administrator of Repairwin.com. Since 1995 he works and provides IT support as a computer and network expert to individuals and large companies. He is specialized in solving problems related to Windows or other Microsoft products (Windows Server, Office, Microsoft 365, etc.).


Форум программистов Vingrad

Модераторы: feodorv, GremlinProg, xvr, Fixin

Страницы: (2) Все [1] 2 
( Перейти к первому непрочитанному сообщению )

Поиск:

 Семафор: динамическое изменение кол-ва потоков 

   

Опции темы

Alca
Дата 4.2.2010, 11:18 (ссылка)
| (нет голосов)
 Загрузка …

Эксперт

Профиль
Группа: Завсегдатай
Сообщений: 3993
Регистрация: 14.6.2006

Репутация: 5
Всего: 50

Использую семафор для лимитирование кол-ва потоков.
Как динамически измененять кол-во потоков? Как такое можно сделать?

Т.е. после создания семафора ф-ей 

Код

::CreateSemaphore(lpsaAttributes, liInitialCount, liMaxCount, pcszName);

надо изменить (увеличить, уменьшить) кол-во работающих потоков

———————

C++ cross-platform library

 
mrbrooks
Дата 4.2.2010, 11:26 (ссылка)
| (нет голосов)
 Загрузка …

трололомен

Профиль
Группа: Завсегдатай
Сообщений: 4259
Регистрация: 4.10.2006
Где: Дол Гулдур

Репутация: нет
Всего: 306

ReleaseSemaphore

 
Alexeis
Дата 4.2.2010, 11:29 (ссылка)
| (нет голосов)
 Загрузка …

Амеба

Профиль
Группа: Админ
Сообщений: 11743
Регистрация: 12.10.2005
Где: Зеленоград

Репутация: 7
Всего: 459

ReleaseSemaphore добавляет единицу к значению семафора. Если у тебя потоки создаются в отдельном потоке-фабрике, который ожидает на WaitForSingleObject , то после сигнализации WaitForSingleObject разбудит поток-фабрику и та родит новый поток. 

———————

Vit вечная память.

Обсуждение действий администрации форума производятся только в этом форуме

гениальность идеи состоит в том, что ее невозможно придумать

 
Alca
Дата 4.2.2010, 11:29 (ссылка)
| (нет голосов)
 Загрузка …

Эксперт

Профиль
Группа: Завсегдатай
Сообщений: 3993
Регистрация: 14.6.2006

Репутация: 5
Всего: 50

ReleaseSemaphore — это увеличить. А как уменьшить?

———————

C++ cross-platform library

 
Alexeis
Дата 4.2.2010, 11:31 (ссылка)
| (нет голосов)
 Загрузка …

Амеба

Профиль
Группа: Админ
Сообщений: 11743
Регистрация: 12.10.2005
Где: Зеленоград

Репутация: 7
Всего: 459

Цитата(Alca @  4.2.2010,  10:29 )
А как уменьшить? 

WaitForSingleObject уменьшит. 

———————

Vit вечная память.

Обсуждение действий администрации форума производятся только в этом форуме

гениальность идеи состоит в том, что ее невозможно придумать

 
Alca
Дата 4.2.2010, 11:31 (ссылка)
| (нет голосов)
 Загрузка …

Эксперт

Профиль
Группа: Завсегдатай
Сообщений: 3993
Регистрация: 14.6.2006

Репутация: 5
Всего: 50

Цитата
Если у тебя потоки создаются в отдельном потоке-фабрике, который ожидает на WaitForSingleObject ,

Так оно и есть

———————

C++ cross-platform library

 
Alexeis
Дата 4.2.2010, 11:40 (ссылка)
| (нет голосов)
 Загрузка …

Амеба

Профиль
Группа: Админ
Сообщений: 11743
Регистрация: 12.10.2005
Где: Зеленоград

Репутация: 7
Всего: 459

  По этой теме есть оч. хорошая книжка Рихтера. Последнее издание называется Windows via С/С++ . Но подойдет и более старое издание. Тема управления потоками и объектами синхронизации раскрыта отлично. 

———————

Vit вечная память.

Обсуждение действий администрации форума производятся только в этом форуме

гениальность идеи состоит в том, что ее невозможно придумать

 
Alca
Дата 4.2.2010, 11:41 (ссылка)
| (нет голосов)
 Загрузка …

Эксперт

Профиль
Группа: Завсегдатай
Сообщений: 3993
Регистрация: 14.6.2006

Репутация: 5
Всего: 50

Код

template<class TaskT>
BOOL CXThreadPool<TaskT>::bSetMaxTasks(UINT uiNum)  {
    BOOL bRes = FALSE;

    bRes = _m_semSemaphore.bRelease(uiNum/*1*/, NULL);  
    /*DEBUG*/XASSERT_RET(FALSE != bRes, FALSE);    //валиться здесь, LastError:     298

    _m_uiMaxRunningTasks = uiNum;

    return TRUE;
}

Код

LastError:     298 - "Слишком много попыток занесения события для семафора."

Это сообщение отредактировал(а) Alca — 4.2.2010, 11:44

———————

C++ cross-platform library

 
Alexeis
Дата 4.2.2010, 12:32 (ссылка)
| (нет голосов)
 Загрузка …

Амеба

Профиль
Группа: Админ
Сообщений: 11743
Регистрация: 12.10.2005
Где: Зеленоград

Репутация: 7
Всего: 459

Alca, может устанавливается значение выше чем liMaxCount?

———————

Vit вечная память.

Обсуждение действий администрации форума производятся только в этом форуме

гениальность идеи состоит в том, что ее невозможно придумать

 
Alca
Дата 4.2.2010, 13:21 (ссылка)
| (нет голосов)
 Загрузка …

Эксперт

Профиль
Группа: Завсегдатай
Сообщений: 3993
Регистрация: 14.6.2006

Репутация: 5
Всего: 50

Цитата
Alca, может устанавливается значение выше чем liMaxCount?

Да, было дело.

———
Надо увеличить кол-во потоков. Сначала ставлю семафор на 4 потока

Код

::CreateSemaphore(lpsaAttributes, 4/*liInitialCount*/, 4/*liMaxCount*/, pcszName);

Потом пытаюсь увеличить на 2, т.е. устанавливаю 6:

Код

BOOL CXThreadPool::bSetMaxTasks(UINT uiNum)  {
    BOOL bRes = FALSE;

        //_m_uiMaxRunningTasks - текущий  лимит потоков (сейчас 4)
    //uiNum                - желаемый лимит потоков    (хочу 6)

        //увеличение лимита
    if (_m_uiMaxRunningTasks < uiNum) {
        bRes = _m_semSemaphore.bRelease(uiNum - _m_uiMaxRunningTasks, NULL);  
        /*DEBUG*/XASSERT_RET(FALSE != bRes, FALSE);    
    }

        //уменьшение лимита
    //...

    _m_uiMaxRunningTasks = uiNum;

    return TRUE;
}
...
bSetMaxTasks(6);    //хочу увеличить кол-во потоков

В диспечере задач кол-во потоков увеличилось только на единицу, хотя я сбросил семафор на 2-ку.
Эссерт не срабатывает.
 

Это сообщение отредактировал(а) Alca — 4.2.2010, 13:22

———————

C++ cross-platform library

 
Alexeis
Дата 4.2.2010, 14:29 (ссылка)
| (нет голосов)
 Загрузка …

Амеба

Профиль
Группа: Админ
Сообщений: 11743
Регистрация: 12.10.2005
Где: Зеленоград

Репутация: 7
Всего: 459

Чтобы можно было 6 нужно

Код

::CreateSemaphore(lpsaAttributes, 4, 6, pcszName);

А, вообще, почему бы не поставить сразу 64? или 128? 

Код

::CreateSemaphore(lpsaAttributes, 4, 128, pcszName);

Чтобы уменьшить число запущенных потоков нужно просто завершить один из них.

———————

Vit вечная память.

Обсуждение действий администрации форума производятся только в этом форуме

гениальность идеи состоит в том, что ее невозможно придумать

 
Alca
Дата 4.2.2010, 16:51 (ссылка)
| (нет голосов)
 Загрузка …

Эксперт

Профиль
Группа: Завсегдатай
Сообщений: 3993
Регистрация: 14.6.2006

Репутация: 5
Всего: 50

Alexeis, спасибо. Увеличивать число потоков получилось. 
А уменьшить кол-во потоков не получается. 
Завершил я N-ое кол-во «лишних» потоков, 
но их  число не уменьшилось (смотрел в диспетчер задач), 
т.к. запустилась следующяя партия потоков, стоящих в очереди.

Код

bRes = _m_semSemaphore.bCreate(NULL, _m_uiMaxRunningTasks, 1024, NULL);  
//...    
template<class TaskT>
BOOL CXThreadPool<TaskT>::bSetMaxTasks(UINT uiNum)  {
    BOOL bRes = FALSE;

    //-------------------------------------
    //увеличить
    if (_m_uiMaxRunningTasks < uiNum) {
        bRes = _m_semSemaphore.bRelease(uiNum - _m_uiMaxRunningTasks, NULL);  
        /*DEBUG*/XASSERT_RET(FALSE != bRes, FALSE);    
    }

    //-------------------------------------
    //уменьшить
    if (_m_uiMaxRunningTasks > uiNum) {
        CXCriticalSectionLocker CS(_m_csList);    //лочим std::list

        size_t i            = 0;                            //счетчик удаленных потоков
        size_t iDeleteTasks = _m_uiMaxRunningTasks - uiNum;    //сколько надо удалить потоков

        for (std::list<TaskT *>::iterator it = _m_lstpthTasks.begin();    it != _m_lstpthTasks.end(); ++ it)    {
            bRes = (*it)->bExit(/*ulTimeout*/5000);    //говорим потоку, что пора завершаться
            /*DEBUG*/XASSERT_RET(FALSE != bRes, FALSE);

            ++ i;

            if  (i >= iDeleteTasks) {
                break;
            }
        }    
    }

    _m_uiMaxRunningTasks = uiNum;

    return TRUE;
}
//---------------------------------------------------------------------------

Добавлено через 11 минут и 5 секунд
 

———————

C++ cross-platform library

 
Alexeis
Дата 4.2.2010, 21:37 (ссылка)
| (нет голосов)
 Загрузка …

Амеба

Профиль
Группа: Админ
Сообщений: 11743
Регистрация: 12.10.2005
Где: Зеленоград

Репутация: 7
Всего: 459

Цитата(Alca @  4.2.2010,  15:51 )
Alexeis, спасибо. Увеличивать число потоков получилось. 
А уменьшить кол-во потоков не получается. 

  Чтобы завершить поток достаточно позволить функции потока выполниться до конца. Если это пул потоков, то скорее всего имеется бесконечный цикл, который нужно прервать, а в потоке-фабрике дождаться полного завершения при помощи WaitForSingleObject(ThreadHandle, 1000) . После этого можно быть уверенным что поток завершился корректно. 

———————

Vit вечная память.

Обсуждение действий администрации форума производятся только в этом форуме

гениальность идеи состоит в том, что ее невозможно придумать

 
Alca
Дата 5.2.2010, 11:31 (ссылка)
| (нет голосов)
 Загрузка …

Эксперт

Профиль
Группа: Завсегдатай
Сообщений: 3993
Регистрация: 14.6.2006

Репутация: 5
Всего: 50

Alexeis, именно так я и делаю, в это методе все реализовано:

Код

bRes = (*it)->bExit(5000);    //говорим потоку, что пора завершаться

Добавлено через 51 секунду
Потоки завершаются, смотрел лог.

———————

C++ cross-platform library

 
Alexeis
Дата 5.2.2010, 11:35 (ссылка)
| (нет голосов)
 Загрузка …

Амеба

Профиль
Группа: Админ
Сообщений: 11743
Регистрация: 12.10.2005
Где: Зеленоград

Репутация: 7
Всего: 459

Цитата(Alca @  5.2.2010,  10:31 )
Потоки завершаются, смотрел лог. 

Ну раз завершаются значит все в порядке  

———————

Vit вечная память.

Обсуждение действий администрации форума производятся только в этом форуме

гениальность идеи состоит в том, что ее невозможно придумать

 

Страницы: (2) Все [1] 2 

Правила форума «C/C++: Системное программирование и WinAPI»

  • Большое количество информации и примеров с использованием функций WinAPI
    можно найти в

    MSDN

  • Описание сообщений, уведомлений и примеров
    с использованием компонент WinAPI (BUTTON, EDIT, STATIC, и т.п.), можно найти в

    MSDN Control Library

  • Непосредственно, перед созданием новой темы, проверьте заголовок
    и удостоверьтесь, что он отражает суть обсуждения.
  • После заполнения поля «Название темы», обратите внимание
    на наличие и содержание панели «А здесь смотрели?»,
    возможно Ваш вопрос уже был решен.
  • Приводите часть кода, в которой предположительно находится
    проблема или ошибка.
  • Если указываете код, пользуйтесь тегами [code][/code],
    или их кнопочными аналогами.
  • Если вопрос решен, воспользуйтесь соответствующей
    ссылкой, расположенной напротив названия темы.
  • Один топик — один вопрос!
  • Перед тем как создать тему —

    прочтите это
    .

На данный раздел распространяются

Правила форума

и

Правила раздела С++:Общие вопросы

.


Если Вам понравилась атмосфера форума, заходите к нам чаще!
С уважением,
Chipset,
Step,
Fixin,
GremlinProg,
xvr.
feodorv.

 

0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Системное программирование и WinAPI | Следующая тема »

Error 0x80070079 is an issue that can arise when users try to copy (or transfer) files between external USB or network storage drives and Windows PCs. The error 0x80070079 message says, “The semaphore timeout period has expired.” As a result, users can’t copy or move files between their PCs and storage devices.

Some users might wonder what a semaphore is, which is an integer variable. The 0x80070079 error message highlights there’s been an operation timeout. This is how you can fix error 0x80070079 in Windows 11/10.

1. Try Transferring or Copying Files in Smaller Groups

It might be the case that the 0x80070079 error occurs on your PC because of an issue with one particularly large file in a group. So, try transferring (or copying) a smaller group of files to see if that makes a difference. If that works, move or copy more files of the files you need within another smaller batch.

2. Change the Connection Cable

Error 0x80070079 can arise if there’s an issue with the cable you’re using for connecting an external USB storage drive to the computer. Try utilizing a different USB cable if you have one available. If you can see your current cable is visibly damaged, consider purchasing a replacement.

3. Run the Hardware and Devices Troubleshooter

The Hardware and Devices troubleshooter is a tool for fixing hardware-related issues in Windows. A few users have confirmed in forums that troubleshooter resolved error 0x80070079 on their PCs. This is how you can open and utilize the Hardware and Devices troubleshooter in Windows 11/10:

  1. Find Command Prompt by pressing the Win + S keys and typing CMD in the search box.
  2. Click on Command Prompt to run that app.
  3. Execute this Hardware and Devices troubleshooter command and hit Enter:

            msdt.exe -id DeviceDiagnostic
        
    The Hardware and Devices troubleshooter

  4. Select Next to start the troubleshooting and apply the fixes suggested.

    The Hardware and Devices troubleshooter

Users who need to fix error 0x80070079 for network drives should consider utilizing the Network Adapter and Internet Connections troubleshooters. You can access both of those troubleshooters in Settings. Check out our guide about running troubleshooters in Windows for further details about how to open them in Windows 11/10.

4. Perform Generic Windows-Based Fixes for Troubleshooting USB Drives

If you’re still struggling with this error, here are some more general Windows-based fixes you can try:

Run a System File Check Scan

Corrupted or missing system files on your PC’s drive can cause operations to time out. To resolve such an issue, run a System File Checker command. You can repair the system files on an internal hard drive by executing a standard SFC command as outlined in our guide to running the SFC tool on Windows.

The SFC scannow command

Run the CHKDSK Scan Command

CHKDSK is Windows’ Check Disk utility that scans and repairs bad drive sectors. That tool could be useful for fixing error 0x80070079 if it’s caused by disk errors on a drive you’re trying to transfer files to. So, try scanning the target drive by running the CHKDSK via the Command Prompt. Our guide on running Check Disk scans on Windows includes full instructions for applying this potential fix.

The chkdsk command

Turn Off Any Active Firewalls

Disabling firewalls might work when 0x80070079 occurs for wireless transfers from or to network drives. A firewall can block communication with a network drive. So, try temporarily disabling Windows Defender Firewall before transferring any data from or to a network drive. Or turn off any third-party firewall installed.

Turn off firewall settings

Disable Your Antivirus Shields

If you’ve installed a third-party antivirus (security) utility, that might be causing the issue by preventing or restricting data transfer between drives. Temporarily disable your antivirus software’s shield before selecting to move or copy files from one drive to another. To do that, click on the antivirus tool’s system tray icon with the right mouse button and select the disable shield option.

Perform a Clean Boot

Some users confirm performing a clean boot fixes error 0x80070079. Applying a clean boot will disable all third-party startup apps and services from starting. This resolution might eliminate third-party background program conflicts interfering with the data transfer and causing error 0x80070079.

You can apply this resolution by following the instructions in our guide to performing a clean boot. Restart your PC when you’ve disabled all third-party startup items with Task Manager and System Configuration. Then copy or move the files you need to between drives after clean booting.

The Services tab

Update the Driver for Your PC’s Network Adapter Driver

Updating a PC’s network adapter driver can be a viable fix when error 0x80070079 occurs for wireless data transfers. An outdated or faulty network driver could be causing network connection issues between devices.

The Driver Booster software

You can update your PC’s network adapter by utilizing driver updater software. Such software will tell you if your network adapter’s driver is outdated and enable you to update it if necessary. Check out how to update Windows, apps, and drivers to give your PC a quick refresh, including your network adapter.

Change Your External Drive to NTFS Format

Some Windows PC users have fixed error 0x80070079 by reformatting their external USB drives to the NTFS format. The reason this resolution has worked for some users is probably that FAT32 can’t store single files larger than four gigabytes. Reformatting a FAT32 drive to NTFS will eliminate such a restriction.

The Format window

You can apply this possible resolution as covered within our guide to reformatting USB drives in Windows 11.

Reformatting a drive will wipe all the data on it. So, make sure you back up the drive’s data before reformatting if you want to keep any files on it.

Reset Your Network

This potential resolution is more applicable for users who encounter error 0x80070079 with network storage drives. Resetting your network will restore it to its settings to default and reinstall your PC’s network adapter. To apply this resolution, check out our how to reset your network settings on Windows guide.

The Reset now button

Note that you’ll need to reconnect your PC to the internet after applying this resolution. So, make sure you have your internet connection name and password details before resetting the network. You can usually find such details stuck on the bottom of most routers.

Transfer Data Between Drives Again on Windows

Finding a solution for error 0x80070079 isn’t always easy since it’s an issue with variable factors. However, one of the resolutions covered here will probably solve the “semaphore timeout period has expired” error on your PC. If not, however, you might be able to work around this issue by transferring data in different ways with cloud storage, file-sharing apps, or other methods.

Перейти к контенту

  • Скрипты / конфиги / движок

  • Уже есть аккаунт? Войти  

  • Регистрация


Редактирование движка X-Ray


  • Назад
  • 84
  • 85
  • 86
  • 87
  • 88
  • 89
  • 90
  • 91
  • 92
  • 93
  • 94
  • Далее
  • Страница 89 из 171  

Рекомендуемые сообщения

    • Поделиться

0023:0835392D xrRender_R4.dll

[error][ 298] : Слишком много попыток занесения события для семафора.

На все эти описания можно смело забивать — это выводится результат работы последней вызванной WinApi функции. Движок при своей работе не вызывает winapi. Конкретно эта ошибка вообще могла остаться еще со старта игры от проверки запуска нескольких копий.

Ссылка на комментарий
    • Поделиться

Кто-нибудь пытался восстановить блудмарки?

Ссылка на комментарий
    • Поделиться

Это можно играть anim_moving анимации в STALKER SOC?

Ссылка на комментарий
    • Поделиться

Гм, а может кто-нибудь, у кого все под руками, глянет, как именно, по каким условиям, неписи забывают своего best_enemy() ? Ну и best_danger() ?

в смысле, не просто поменять одного на другого, а вообще забыть ?

Или «какой-нибудь враг найдется всегда» ?


Изменено пользователем Dennis_Chikin

Ссылка на комментарий
    • Поделиться

Товарищи, подскажите пожалуйста, может кто уже делал правку или знает где править, чтобы получить динамический граф диалогов, а не нынешний, который строится только один раз. 

Подробное изложение вопроса:

Здесь идет считывание <phrase_list> или <init_func>.

void CPhraseDialog::load_shared	(LPCSTR)
        ...
	//заполнить граф диалога фразами
	data()->m_PhraseGraph.clear();

	XML_NODE* phrase_list_node = pXML->NavigateToNode(dialog_node, "phrase_list", 0);
	if(NULL == phrase_list_node){
		LPCSTR func = pXML->Read(dialog_node, "init_func", 0, "");

		luabind::functor<void>	lua_function;
		bool functor_exists = ai().script_engine().functor(func ,lua_function);
		THROW3(functor_exists, "Cannot find precondition", func);
		lua_function	(this);
		return;
	}
        ...

Вызывается эта функцию отсюда:

void CPhraseDialog::Load(shared_str dialog_id)
{
	m_DialogId = dialog_id;
	inherited_shared::load_shared(m_DialogId, NULL);
}

Эта в свою очередь отсюда:

bool CPhraseDialogManager::AddAvailableDialog(shared_str dialog_id, CPhraseDialogManager* partner)
{
//	PHRASE_DIALOG_INDEX dialog_index =  CPhraseDialog::IdToIndex(dialog_id);
	if(std::find(m_CheckedDialogs.begin(), m_CheckedDialogs.end(), dialog_id) != m_CheckedDialogs.end())
		return false;
	m_CheckedDialogs.push_back(dialog_id);

	DIALOG_SHARED_PTR phrase_dialog(xr_new<CPhraseDialog>());
	phrase_dialog->Load(dialog_id);
        ...

Она в свою очередь: 

void   CActor::UpdateAvailableDialogs	(CPhraseDialogManager* partner)

Могу и далее расписать стек вызовов, но смысла не вижу, т.к. сам ничего не нашел… Суть в том что, граф фраз строится один раз, и дальше обновляются все фразы в этом графе на доступность для произношения. Вопрос: Каким образом можно обновлять и граф фраз?

Ссылка на комментарий
    • Поделиться

@Старлей, я класс написал для динамического построения диалога и фраз, который, к слову, слабо пересекается с тем что есть, так как стандартный вариант диалогов слабо пригоден для этих целей (насколько я помню там довольно трудно вклиниваться в то что есть, если вообще возможно (опять же разумеется без перелопачивания всего что есть)). Разберись с интерфейсами, там не сказать что сильно сложно. А так смотри, можешь написать обработку m_PhraseGraph, но задача довольно не тривиальна, так как в графах диалога сложные массивы, явно работать как с простым вектором не выйдет.

Еще также замечу, что можно сделать на скриптах, у меня это есть в планах и делается, но там будет несколько уже возможность применения, то есть на ходу активный диалог выстраивать будет нельзя, но тем не менее в игре можно будет добавлять свои диалоги и сохранять так же во внешних файлах.


Изменено пользователем Карлан

Ссылка на комментарий
    • Поделиться

Всем привет. В ЗП у ПДА есть такая возможность — если закрыть его и открыть снова, то будет открыта последняя вкладка. Что именно отвечает за это?

И вопрос вдогонку — как принудительно активировать определенную вкладку?

Ссылка на комментарий
    • Поделиться

Всем привет, я тут на просторах интернета нашел статейку повествующую о некотором билде Метро 2033 заделаном на модифицированном X-Ray’ее, даже ссылка на билд есть и

есть. Интересно из него можно что полезного получить?



  • 1

Ссылка на комментарий
    • Поделиться

@Graff46, интересно. Какой то гибрид движков — и сталкер и не сталкер. Посмотрим на досуге.

Ссылка на комментарий
    • Поделиться

@Дизель, Я сам архив с билдом не качал, но просматривал его содержимое на Яндекс диске, структура файлов в папке content аналогична геймдате в сталкере, только в папке anims есть неизвестные мне файлы с форматом *trk

Ссылка на комментарий
    • Поделиться

@Graff46, его уже давным давно расковыряли. Ничего такого там нет.

Ссылка на комментарий
    • Поделиться

@Дизель, это не микс, это почти чистый X-Ray, приблизительно между 1.0007 и 1.5. Так сказать, 1.3. Даже эффекты почти совпадают.

Солидарен с @Earth2Space — там нет ничего интересного.

Добавлено

RayTwitty,

Движок метро имеет очень отдаленное отношение к сталкерскому, говорить что это «почти чистый х-рей» в корне неправильно.



  • 2

Ссылка на комментарий
    • Поделиться

Всем привет. В ЗП у ПДА есть такая возможность — если закрыть его и открыть снова, то будет открыта последняя вкладка. Что именно отвечает за это?

И вопрос вдогонку — как принудительно активировать определенную вкладку?

Вопрос закрыл. За это отвечает проверка

if ( !m_pActiveDialog ) в UIPdaWnd.cpp



  • 2

Ссылка на комментарий
    • Поделиться

Такой вопрос у меня появился. Известно, что X-RAY считывает некоторые ресурсы (XML, текстуры и др.) в самом начале запуска программы (когда мы видим заставки), а некоторые другие ресурсы при загрузке уровня. Так вот если, мы хотим изменить некоторые ресурсы или их параметры в «горячем режиме» (во время «работы» игры) которые прогружаються с запуском программы, то что бы увидеть изменения в игре нам понадобиться полностью выйти из игры и зайти снова притом всякие действия вида: vid_restart 1 или перезагрузка локации нам не помогут. Возможно ли движковыми правками сделать перечитывание игрой оных ресурсов не выходя из игры, например скриптовой ф-цией (и) или консольной командой?

Вот в этом главная проблема…


Изменено пользователем Graff46

Добавлено

RayTwitty,

Ну текстуры перезагружать научились ведь, так что остальное тоже можно, если руки прямые.



  • 1

Ссылка на комментарий
    • Поделиться

@Graff46, да, вполне возможно, и скорость кстати говоря выше ожидаемой, я себе сделал несколько функций которые перегружает и ltx и xml, местами сделал нормально, но что-бы все сделать по хорошему надо там подольше посидеть, а мне без острой надобности пока. Я тут, к примеру, когда-то писал о пространстве для работы со строками, которое я себе добавил, вот по аналогии можно с чем угодно поступить в подобном роде. Но в некоторых местах это будет весьма нетривиальное занятие.

вот тут кое-что можно прочесть http://pastebin.com/dXjwaFLv, в принципе по вектору развития не много прибавилось, сейчас в основном работаю над оптимизацией того что есть, то есть убираю все уродские скриптовые костыли с помощью движка, количество ВСЕХ скриптов уже сейчас меньше чем в среднестатистическом глобальнике, то есть вся обвязка уже достаточно ясно видна, хоть и есть еще около 10 кандидатов на ликвидацию .

Ссылка на комментарий
  • Это популярное сообщение.
  • Это популярное сообщение.
    • Поделиться
Кому интересно, нашел некоторые ошибки оригинала, которые удалось пофиксить:
Не работает вертикальная синхронизация [ТЧ, ЧН, ЗП]
Из-за этой проблемы у некоторых людей горели видеокарты, так как не было ограничения кадров в игре. У Лохотрона, например, так сгорело две видюхи, т.к. в меню выдавало аж 6000 кадров в секунду.
Для DX9 это фиксится в файле HW.cpp:
DevPP.PresentationInterval = D3DPRESENT_INTERVAL_IMMEDIATE;
и

P.PresentationInterval = D3DPRESENT_INTERVAL_IMMEDIATE;
меняются на:

DevPP.PresentationInterval = selectPresentInterval();
P.PresentationInterval = selectPresentInterval();
Для DX10/11 в dxRenderDeviceRender.cpp:
HW.m_pSwapChain->Present( 0, 0);
Добавляем проверку на включение вертикальной синхронизации:
HW.m_pSwapChain->Present(psDeviceFlags.test(rsVSync) ? 1 : 0, 0);
Эффектор перезарядки срабатывает не каждый раз [ЗП]
Ну тут всё просто, просто перезапускаем активный эффектор. Заходим в player_hud.cpp, находим строки 380-381:
Эти две строки с закрывающейся скобкой удаляем. Вместо этого вставляем:
if(ec)
current_actor->Cameras().RemoveCamEffector(eCEWeaponAction);
Теперь эффектор работает при каждой перезарядке.
Очень странный вылет [ТЧ, ЧН, ЗП]
Данная проблема была в свое в ЛА еще в 2013 году, и я очень долго не мог найти причину вылета, так как вылет каждый раз ссылался на разные некорректные по его мнению объекты. Причем возникал не всегда и можно было его поймать только при выходе из игры. Спустя несколько месяцев чудом проблема была найдена. Оказывается, проблема была в лампочках, которые включались и выключались скриптово. Игра ловила крэш при 255 и более включении и выключении лампочки. Фиксится в HangingLamp.cpp в строках:
}
if(!PPhysicsShell())//if we have physiccs_shell it will call processing deactivate when disable
processing_deactivate ();
Удаляем if(!PPhysicsShell()), теперь processing_deactivate(); будет срабатывать всегда, как и должен, и мы можем включать и выключать лампочки сколько угодно раз.
Причину бага с глитчами камеры в ЗП я так найти не смог. Может кто находил причину? Проверить баг просто: перезаряжаемся и стрефимся. При одном активном эффекторе, окончание второго эффектора глитчит камеру.



  • 6

Ссылка на комментарий
    • Поделиться
Причину бага с глитчами камеры в ЗП я так найти не смог.

Такова селяви.

И глитчится она, к слову, не только при перезарядке, это если тебе скажут еще к чему-нибудь ее прикрутить .

Ссылка на комментарий
    • Поделиться
И глитчится она, к слову, не только при перезарядке, это если тебе скажут еще к чему-нибудь ее прикрутить

Баг происходит, когда заканчивается один эффектор при активности другого. Т.е. если минимум два эффектора активны.

Ссылка на комментарий
    • Поделиться

Я стесняюсь спросить о напрашивающемся выводе. В своем время поимел дивных впечатлений от этих камэффектов которые глитчили камеру так что было ощущение что я в аномалию попал.

Ссылка на комментарий
    • Поделиться

Проверить баг просто: перезаряжаемся и стрефимся

Да уже поднадоело это передёргивание камеры при перезарядке. Может и вправду уже кто-то исправил?

Ссылка на комментарий
  • Назад
  • 84
  • 85
  • 86
  • 87
  • 88
  • 89
  • 90
  • 91
  • 92
  • 93
  • 94
  • Далее
  • Страница 89 из 171  

Создайте аккаунт или авторизуйтесь, чтобы оставить комментарий

Комментарии могут оставлять только зарегистрированные пользователи

Войти

Есть аккаунт? Войти.

Войти

  • Недавно просматривали

      0 пользователей

    • Ни один зарегистрированный пользователь не просматривает эту страницу.

УЧИМСЯ МОДДИНГУ

  • Уроки по модострою
  • Все о скриптах
  • Работа с файлами ТЧ
  • Редактирование движка X-Ray
  • Язык программирования Lua
  • SDK (ТЧ)
  • SDK (ЗП)
  • Вопросы маппинга
  • GUI и графика
  • Моделирование
  • Напарники для модостроительства
  • …и многое другое
ИГРАЕМ В МОДЫ НА ЧН И ЗП

  • [ЧН] OGSM CS 1.8 CE Fixes
  • [ЧН] HARDWARMOD 3.2
  • [ЗП] The Long Road
  • [ЧН] New vision of War
  • [ЧН] Old Good Stalker Mod — Clear Sky
  • [ЗП] Unofficial Patch
  • [ЗП] Смерти вопреки
  • [ЗП] Контракт на хорошую жизнь
  • [ЗП] Shoker Weapon Mod 2.1
  • [ЗП] Hardcore pack for SGM 2.2
  • [ЗП] Контракт Синдиката
  • [ЗП] Клондайк 2.0
  • …и другие моды
ПОЛЕЗНОЕ И РАЗНОЕ

  • Ищу файлы/моды/аддоны
  • Оружие для ТЧ
  • Модели НПС для ТЧ
  • Модели персонажей для ЧН
  • Модели сталкеров для ЗП
  • Модели оружия для ЗП
  • Инструментарий для мододелов
  • X-Ray Extensions
  • Справочник вылетов
  • Prosectors Project (разработка)
  • Игра Left To Die
  • …и другие игры

×

  • Уже есть аккаунт? Войти
  • Регистрация

  • Форумы
  • Правила
  • AMK Склад

    • Назад
    • AMK Склад
    • Мой инвентарь

    • Создать подарок

    • Банк

  • FAQ
  • Клубы
  • AMK NFTeam
  • Награды
  • Администрация
  • Таблица лидеров
  • Кураторы

Какие бывают ошибки Windows, часть 2

Здравствуйте уважаемые читатели блога. Сегодня мы продолжим рассматривать список ошибок системы

Windows

.

При работе программ под управлением Windows, в некоторых случаях могут появляться ошибки Windows. Как правило, случаи бывают разные:

Вирус на компьютере; Внутренние ошибки Windows после установки

корявого

ПО Не корректная установка операционной системы Аппаратные ошибки Сбой жесткого диска 

Посмотреть ошибки можно:

Панель управления — администрирование — просмотр журналов событий, или Кнопка — Пуск — Выполнить, в строке пишем eventvwr.msc и жмём ENTER. Смотрим ошибки. 

К журналам Windows относятся следующие:

1.

События

приложений

(программ). В зависимости от важности события делятся

  на три категории:ошибка, предупреждение или уведомление.

Ошибка

указывает на серьезную проблему, например потерю данных.

Предупреждение

указывает на событие, которое в момент записи в журнал не

 было существенным, но может привести к возникновению проблем в будущем.

— Уведомление

сообщает об успешной работе приложения, драйвера или службы.

2.

События, связанные с

безопасностью

. Такие события называются аудитом и

  делятся на успешные или закончившиеся с ошибкой. Они указывают, например,

  удалось ли пользователю войти в ОС Windows.

3

. События

установки

. Для компьютеров, которые выступают в роли контроллеров

   домена, здесь отображаются дополнительные журналы.

4. Системные события

. Системные события регистрируются Windows и системными

   службами Windows и подразделяются на ошибки, предупреждения и уведомления.

5. Пересылаемые события

. Эти события пересылаются в данный журнал другими

  компьютерами

 Все эти ошибки запомнить невозможно конечно, но иметь список ошибок,

 да еще и с расшифровкой не помешает.  Итак, приступим…

                               Ошибки системного реестра Windows

[1007 0x03EF] Заданная операция не может быть выполнена в полно экранном режиме.

[1008 0x03F0]

Попытка ссылки на несуществующий элемент.

[1009 0x03F1]

База данных реестра повреждена.

[1010 0x03F2]

Параметр реестра имеет неверное значение.

[1011 0x03F3]

Не удается открыть параметр реестра.

[1012 0x03F4]

Не удается прочитать параметр реестра.

[1013 0x03F5]

Не удается записать параметр реестра.

[1014 0x03F6]

Один из файлов в базе данных реестра должен был быть восстановлен с помощью протокола или резервной копии. Восстановление прошло успешно.

[1015 0x03F7]

Реестр поврежден. Структура одного из файлов, содержащего данные реестра, повреждена. Возможно поврежден образ файла в

памяти

, или файл не удалось восстановить из-за отсутствия

резервной

копии/протокола.

[1016 0x03F8]

Операция ввода/вывода, инициированная реестром, закончилась неисправимым сбоем. Не удалось считать, записать или закрыть один из файлов, содержащих системный образ реестра.

[1017 0x03F9]

При попытке загрузить или восстановить файл реестра выяснилось, что этот файл имеет неверный формат.

[1018 0x03FA]

Попытка произвести недопустимую операцию над параметром реестра, отмеченным для удаления.

[1019 0x03FB]

Не удалось выделить требуемое место в протоколе реестра.

[1020 0x03FC]

Нельзя создать символическую связь для параметра реестра, который уже содержит под параметры или значения.

[1021 0x03FD]

Нельзя создать статический под параметр для временного родительского параметра.

03FD

] Нельзя создать статический

под параметр

для временного родительского параметра.

                            Ошибки Windows при запуске служб

[1051 0x041B] Команда остановки была отправлена службе, от которой зависят другие службы.

[1052 0x041C]

Команда неуместна для данной службы

[1053 0x041D

] Служба не ответила на запрос своевременно.

[1054 0x041E]

Не удалось создать поток команд для службы.

[1055 0x041F]

База данных службы заблокирована.

[1056 0x0420]

Одна копия службы уже запущена.

[1057 0x0421]

Имя учетной записи задано неверно или не существует.

[1058 0x0422]

Указанная служба отключена или не может быть запущена.

[1059 0x0423]

Была сделана попытка установить циклическую зависимость между службами.

[1060 0x0424]

Указанная служба не установлена.

[1061 0x0425]

Служба в настоящее время не может принимать команды.

[1062 0x0426]

Служба не запущена.

[1063 0x0427]

Процесс службы не может установить связь с контроллером службы.

[1064 0x0428]

Ошибка службы при обработке команды.

[1065 0x0429]

Указанная база данных не существует.

[1066 0x042A]

Служба возвратила код ошибки.

[1067 0x042B]

Процесс был неожиданно завершен.

[1068 0x042C]

Не удалось запустить дочернюю службу.

[

1069 0x042D]

Служба не запущена из-за сбоя при входе.

[

1242 0x04DA]

Служба уже зарегистрирована.

[1243 0x04DB]

Указанная служба не существует.

[1070 0x042E]

Сразу после запуска служба -”зависла”

[1071 0x042F]

Блокировка базы данных указанной службы наложена неверно.

[1072 0x0430]

Указанная служба была отмечена для удаления.

[1073 0x0431]

Указанная служба уже существует.

[1074 0x0432]

Система в настоящий момент работает с использованием последней корректной конфигурации.

[1077 0x0435]

С момента последней загрузки попытки запустить службу не делались.

[1075 0x0433]

Дочерняя служба не существует или была отмечена для удаления.

[1076 0x0434]

Текущая конфигурация уже была задействована в качестве источника последнего корректного набора параметров.

[1078 0x0436]

Имя уже задействовано в качестве имени службы.

                                    Ошибки ленты

[1100 0x044C] Достигнут физический конец ленты.

[1101 0x044D]

Достигнута метка файла.

[1102 0x044E]

Обнаружено начало раздела ленты.

[1103 0x044F]

Достигнут конец набора файлов.

[1104 0x0450]

Больше данных на ленте нет.

[1105 0x0451]

Не удается создать на ленте разделы.

[1106 0x0452]

Неверный размер блока при обращении к новой ленте многотомного раздела.

[1107 0x0453]

Сведения о разделах при загрузке ленты не обнаружены.

[1113 0x0459]

В много байтовой кодовой странице отсутствует символ для одного из кодов в формате

Unicode.[1129 0x0469]

Достигнут физический конец ленты.

                                      Семафоры

[0187 0x00BB]

Не найдено указанное имя системного семафора.

[0298 0x012A]

Слишком много попыток занесения события для семафора.

[0100 0x0064]

Не удается создать еще один системный семафор.

[0101 0x0065]

Семафор эксклюзивного доступа занят другим процессом.

[0102 0x0066]

Семафор установлен и не может быть закрыт.

[0103 0x0067]

Семафор не может быть установлен повторно.

[0104 0x0068]

Запросы к семафорам эксклюзивного доступа на время выполнения прерываний не допускаются.

[0121 0x0079]

Истек интервал ожидания семафора.

[0105 0x0069]

Этот семафор более не принадлежит использовавшему его процессу.

[0117 0x0075]

Вызов

IOCTL

приложением произведен неверно.

[0118 0x0076]

Параметр проверки записи данных имеет неверное значение.

[0119 0x0077]

Система не может обработать полученную команду.

[0120 0x0078]

Эта функция допустима только в режиме Win32.

[0151 0x0097]

Число семафоров для

DosMuxSemWait

задано

неверно

.

[0152 0x0098]

Не выполнен вызов

DosMuxSemWait

. Установлено слишком много семафоров.

[0153 0x0099]

Некорректный вызов

DosMuxSemWai

t

Продолжение в следующих статьях.

Какие бывают ошибки Windows, часть 1 читайте здесь Как исправить ошибку отсутствующий файл «framedyn.dll» читайте здесьКакие бывают ошибки Windows, часть 3 читайте далее

Понравилась статья? Поделить с друзьями:
0 0 голоса
Рейтинг статьи
Подписаться
Уведомить о
guest

0 комментариев
Старые
Новые Популярные
Межтекстовые Отзывы
Посмотреть все комментарии
  • Планировка квартиры приложение windows
  • Windows 10 msdn 2015
  • Windows 7 uralsoft 2020 torrent
  • Toshiba nb520 drivers windows 7
  • Как установить windows после установки linux