Логотип игрового форума RF-Cheats.ru    
Новости онлайн игр Обход античитов Чёрный рынок Реклама и привилегии Разработка читов Арбитраж

Регистрация Бан-лист Сообщество ПОПУЛЯРНОЕ
Вернуться   RF-Cheats.ru - форум читеров и ботоводов > > >

Установка и поддержка RFO сервера

: Обсуждение RFO серверов, их установки, конфигурации, устранения ошибок, а также поддержке. Уголок Администратора.
Читы и обход фроста для RF Online без хайдаБоты и читы для Perfect World бесплатно без хайдаМоды и читы для World of Tanks (WoT) бесплатно без хайдаМоды и читы для Armored Warfare бесплатно без хайдаБоты и читы для DOTA 2 бесплатно без хайдаБоты и читы для Black Desert Online бесплатно без хайдаЧиты на ArcheAge бесплатно без хайдаЧиты для Warface бесплатно без хайдаВзлом ВКонтакте и ОдноклассниковСписок разделов со всеми играмиЧиты для онлайн игр






Ответ
 
Опции темы
Старый 21.06.2017, 22:31   #1
g00dw1n
Эксперт
Аватар для g00dw1n
OFFLINE
Регистрация: 30.01.2016
Возраст: 32
Сообщений: 2,265
Благодарностей:
355 всего
Мнения: + 1103
Репутация: 1066
Отправить сообщение для g00dw1n с помощью Skype™

[GU] Очередная говно тема


гори, гори, моя звезда

Претензия на фикс вот этой темы
Код:
void WINAPIV CMainThread__Load_ReturnPost_Complete(
            ATF::CMainThread *pObj,
            char *pData)
{
	_qry_case_post_return_list_get* pInfo = (_qry_case_post_return_list_get *)pData;

	do
	{
		if (pInfo->byProcRet == 1)
			break;

		CPlayer* pPlayer = GetPtrPlayerFromSerial(g_Player, MAX_PLAYER, pInfo->dwMasterSerial);
		if (!pPlayer)
			break;

		if (!pPlayer->m_bLoad)
			break;

		if (pPlayer->m_bPostLoad)
			break;

		auto pReturnPostStorage = &pPlayer->m_Param.m_ReturnPostStorage;
		for (unsigned int j = 0; j < pInfo->dwCount; ++j)
		{
			auto pPost = pReturnPostStorage->AddReturnPost(
				pInfo->List[j].byErr,
				pInfo->List[j].dwSerial,
				pInfo->List[j].byState,
				pInfo->List[j].wszRecvName,
				pInfo->List[j].wszTitle,
				pInfo->List[j].wszContent,
				pInfo->List[j].key,
				pInfo->List[j].dwDur,
				pInfo->List[j].dwUpt,
				pInfo->List[j].dwGold,
				pInfo->List[j].lnUID);

			if (!pPost) // это от краша
				continue;

			if (pPost->m_Key.IsFilled() || pPost->m_dwGold)
			{
				s_MgrItemHistory->post_returnreceive(
					pPost,
					pPlayer->m_szItemHistoryFileName);
			}
		}

		s_MgrItemHistory->return_post_storage(
			&pPlayer->m_Param.m_ReturnPostStorage, 
			pPlayer->m_szItemHistoryFileName);

		pPlayer->m_bPostLoad = true;
		if (!pInfo->dwCount)
			break;

		for (auto& PostData : pReturnPostStorage->m_PostData)
		{
			if (PostData.GetState() == -1)
				continue;

			pPlayer->SendMsg_PostReturn(
				PostData.m_byErrCode,
				PostData.m_dwPSSerial,
				PostData.m_wszRecvName,
				PostData.m_wszTitle,
				PostData.m_wszContent,
				PostData.m_Key.byTableCode,
				PostData.m_Key.wItemIndex,
				PostData.m_dwDur,
				PostData.m_dwUpt,
				PostData.m_dwGold);
		}
	} while (false);
}

Злобный программист
 
Ответить с цитированием
Сказали спасибо:
DDDD1 (22.06.2017)


Старый 24.06.2017, 04:07   #2
g00dw1n
Эксперт
Аватар для g00dw1n
OFFLINE
Регистрация: 30.01.2016
Возраст: 32
Сообщений: 2,265
Благодарностей:
355 всего
Мнения: + 1103
Репутация: 1066
Отправить сообщение для g00dw1n с помощью Skype™

Чтож, обсирал корейцев, и сам накосячил, не дофиксил.
Исправляемся, мне было впадлу полностью восстанавливать, поэтому вот так:
Код:
void WINAPIV CPostSystem::CMainThread__Load_PostStorage_Complete(
	ATF::CMainThread * pObj,
	char * pData, 
	ATF::info::CMainThreadLoad_PostStorage_Complete112_ptr next)
{
	_qry_case_post_storage_list_get* pInfo = (_qry_case_post_storage_list_get *)pData;

	do
	{
		if (pInfo->byProcRet == 1)
			break;

		ATF::CPlayer* pPlayer = ATF::global::GetPtrPlayerFromSerial(ATF::global::g_Player, MAX_PLAYER, pInfo->dwMasterSerial);
		if (!pPlayer)
			break;

		if (!pPlayer->m_bLoad)
			break;

		if (pPlayer->m_bPostLoad) // фикс
			break;

		next(pObj, pData);
	} while (false);
}
next - это указатель на след. функцию в control-flow для хукнутой функции

Это юзать вместе с тем, что в первом посте

Последний раз редактировалось g00dw1n; 24.06.2017 в 04:25.

Злобный программист
 
Ответить с цитированием
Старый 01.07.2017, 03:47   #3
g00dw1n
Эксперт
Аватар для g00dw1n
OFFLINE
Регистрация: 30.01.2016
Возраст: 32
Сообщений: 2,265
Благодарностей:
355 всего
Мнения: + 1103
Репутация: 1066
Отправить сообщение для g00dw1n с помощью Skype™

Сука, как меня они заебали(примерно как я вас), крч, вот эта вот переменная pPlayer->m_bPostLoad не выставляется в false при инициализации перса, соответственно фиксы выше могут помешать нормальной подгрузки почты для перса, при условии что сервер выбрал для этого перса слот, который уже был использован другим персонажем.

Я лично выбрал путь установки хука на CPlayer::NetClose и CPlayer::Load и там уже выставляю pPlayer->m_bPostLoad в false

Злобный программист
 
Ответить с цитированием
Сказали спасибо:
Alineware (04.07.2017), piy-piy (03.07.2017), arka0228 (01.07.2017)
Ответ



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

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Говно a.k.a средства самообороны [Love]AYAX Общение читеров 35 24.10.2015 00:41
Говно Вопрос K1ngCrash Юмор 9 23.12.2012 10:48
Очередная тема про неудачного КИДАЛЬЩЕКА Gang0 Мошенничество 6 21.09.2012 19:15
Очередная тема про КАКТУСА avangard Архив 20 05.08.2012 00:43

Мир танков | Проект "Армата" | ArcheAge | Black Desert | РФ Онлайн | Айон | Майнкрафт | Браузерные игры
Элдер скролс | Р2 Онлайн | Реквием Онлайн | ПУБГ | Роял Квест | ГТА Санадреас | Контра | Дота 2
Мир кораблей | Лост Арк | Arma2 DayZ mod | The War Z | Карос: Начало | Tera Online
Читы для всех Онлайн-игр