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

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


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

@macron, проверил этот ехе-шник. Вертикалка там вообще не работает. В опциях включена, консоль также показывает ее работоспособность. Но никаких ограничений фпс, если верить показаниям с rs_stats - нет.

aka Stalker_AleX333
 
Мои проекты  - ЯндексДиск   |   Я на Gamer-Mods.ru

Ссылка на комментарий
сли верить показаниям с rs_stats

Никогда этим дерьмом fps не мерил, им только координаты удобно снимать.

1. Поставь нормальный индикатор, например fraps.

2. Проверь в настройках видеодрайвера, может стоит принудительный vsync или наоборот.

3. Восстанови винду из образа. У меня как-то раз в дровах/реестре глюкануло, что vsync из игры не менялся.

Ссылка на комментарий

@macron, принудительный адаптивная вертикалка у меня стоит для всех игр, кроме сталкерской серии. Когда-то достали микрофризы - отключил. По сему, не пользовался. Сейчас проверил - работает нормально. Видать в драйверах этот косяк таки поправили. Так что с ехе-шником все ок. А rs_stats действительно нагло врет (хотя, вроде-как движковый инструмент). Тем не менее даже 60 фпс в меню ощущаются как-то не очень. Не хватает точности в движениях курсора Он словно пьяный. Накинуть бы для него фпс, до 200 и ок - больше смысла делать нет ибо те же мониторы в 144гц большая редкость. 

aka Stalker_AleX333
 
Мои проекты  - ЯндексДиск   |   Я на Gamer-Mods.ru

Ссылка на комментарий

Уважаемые, подскажите пожалуйста, если движком спавниться объект с именем, состоящим только из названия секции  - это что означает? 

Ссылка на комментарий

Блин, только сейчас до меня дошло, что в ЗП предусмотрено только два типа патронов для оружия, в остальном начинаются баги. Заметил только когда потянул формулу подсчета патронов, я это уже давно где-то замечал и переделывал на цикл, чтобы учитывало любое количество патронов, кажется когда писал окно описания оружия. В общем те кто на ТЧ, будьте внимательны если захотите что-то в этом плане потащить из ЗП.

 

@Winsor, это значит, что это первый объект вообще в игре с такой секцией.

Ссылка на комментарий

Можно ли разогнать компилятор визуалки 2008г? Оператива позволяет. Там похоже ядерность процессора не задействована.


В шапке темы пустая ссылка:

Цитата(Kolmogor)
Вот исходники доработок для ЗП , в том числе и машинки: http://www.sendspace.com/file/3bo9xx

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

andreyholkin.gif

rod_cccp.gif

 

Ссылка на комментарий

может кто подсказать как исправить: error C2466: невозможно выделить память для массива постоянного нулевого размера.Вот пример кода где возникает ошибка:

 

PIItem item  = m_pInventory->ItemFromSlot(VEST_SLOT);	
	if (item)
	{
		CVest* vest = smart_cast<CVest*>(item);
		if (vest)
		{
			xr_vector<u16>::const_iterator it = vest->m_pocket.begin();
			xr_vector<u16>::const_iterator it_e = vest->m_pocket.end();
			for (; it != it_e; ++it)
			{
				CWeaponAmmo*	pAmmo = smart_cast<CWeaponAmmo*>(*it);
				if (pAmmo && (pAmmo->cNameSect() == ammo_type))
				{
					res += pAmmo->m_boxCurr;
				}
			}
		}
	} 

 

 

Вот стоит мне убрать CWeaponAmmo*    pAmmo = smart_cast<CWeaponAmmo*>(*it); то код спокойно компилируется.Самое интересное что в функции есть ещё два подобных вызова,но их проблема не затрагивает.

Ссылка на комментарий

@Winsor, это значит, что это первый объект вообще в игре с такой секцией.

у меня такое у торговцев в инвентаре... навряд ли они первые :)

Ссылка на комментарий

@Winsor, телепаты как всегда там, где их никто не ищет.

 

Кому не лень, из тех кто сидит на xp-dev, заспавните себе пару гранат и попробуйте их выбросить или дабл-клик сделать. У меня есть подозрение, что болячку такую сделал не я, а она есть у всех кто форкнулся от этого репо. Если что, то скину лечилку.

  • Полезно 1
Ссылка на комментарий

Интересует создание своего класса предмета с худом. Собственно выкинул начинку детекторов, хочу перенести детекторы из ЧН в ТЧ. Начал с самого простого, чтобы у класса детектора был худ. Для начала только минимальный набор анимаций, show, hide, idle.

#pragma once
#include "inventory_item_object.h"
#include "../feel_touch.h"
#include "hudsound.h"
#include "Artifact.h"
#include "ui/ArtefactDetectorUI.h"
#include "ai_sounds.h"
#include "../SkeletonAnimated.h"

class CInventoryOwner;
class CCustomZone;

class CCustomDetector :		public CHudItemObject {
private:
	typedef			CHudItemObject	inherited;
public:
					CCustomDetector		();
	virtual			~CCustomDetector	();

	virtual BOOL 	net_Spawn			(CSE_Abstract* DC);
	virtual void 	Load				(LPCSTR section);

	virtual void 	OnMoveToSlot		();
	virtual void 	OnMoveToRuck		();

	virtual void					Hide		();
	virtual void					Show		();

	virtual	void	UpdateXForm			();

	virtual void	OnStateSwitch		(u32 S);
	virtual void	OnAnimationEnd		(u32 state);

		enum EDETHudStates {
		eIdle		= 0,
		eShowing,
		eHiding,
		eHidden,
	};

protected:
	
	MotionSVec						m_anim_idle;
	MotionSVec						m_anim_show;
	MotionSVec						m_anim_hide;
};
 

 

 

#include "stdafx.h"
#include "customdetector.h"
#include "ui/ArtefactDetectorUI.h"
#include "hudmanager.h"
#include "inventory.h"
#include "Level.h"
#include "map_manager.h"
#include "ActorEffector.h"
#include "Actor.h"
#include "ui/UIWindow.h"
//#include "player_hud.h"
#include "weapon.h"


CCustomDetector::CCustomDetector() 
{
	SetSlot (DETECTOR_SLOT);
}

CCustomDetector::~CCustomDetector() 
{

}

void CCustomDetector::Hide()
{
	SwitchState(eHiding);
	m_bRenderHud = false;
}

void CCustomDetector::Show()
{
	m_bRenderHud = true;
	SwitchState(eShowing);
}

BOOL CCustomDetector::net_Spawn(CSE_Abstract* DC) 
{
	return		(inherited::net_Spawn(DC));
}

void CCustomDetector::Load(LPCSTR section) 
{
	inherited::Load			(section);

	animGet				(m_anim_idle,					pSettings->r_string(*hud_sect,"anim_idle"));
	animGet				(m_anim_hide,					pSettings->r_string(*hud_sect,"anim_hide"));
	animGet				(m_anim_show,					pSettings->r_string(*hud_sect,"anim_show"));
}

void CCustomDetector::OnStateSwitch(u32 S)
{
	inherited::OnStateSwitch	(S);
	switch(S){
	case eShowing:
		{
			 m_pHUD->animPlay(random_anim(m_anim_show),		FALSE, this, S);
			 Msg("Достаем детектор");
		}break;
	case eHiding:
		{
			 m_pHUD->animPlay(random_anim(m_anim_hide),		FALSE, this, S);
			 Msg("Прячем детектор");
		}break;
	case eIdle:
		{
		if (m_anim_idle.size())
			 m_pHUD->animPlay(random_anim(m_anim_idle),		FALSE, NULL, eIdle);
			 Msg("Держим в руке детектор");
		}break;
	};
}

void CCustomDetector::UpdateXForm()
{
	CInventoryItem::UpdateXForm();
}


void CCustomDetector::OnAnimationEnd(u32 state)
{
	inherited::OnAnimationEnd	(state);
	switch(state)
	{
	case eShowing:
		{
			SwitchState					(eIdle);
		} break;
	}
}

void CCustomDetector::OnMoveToRuck()
{
	inherited::OnMoveToRuck	();
}

void CCustomDetector::OnMoveToSlot()
{
	inherited::OnMoveToSlot	();
} 

 

 

 

#pragma once
#include "customdetector.h"

class CSimpleDetector :public CCustomDetector
{
	typedef CCustomDetector	inherited;
public:
					CSimpleDetector				();
	virtual			~CSimpleDetector			();
	
}; 

 

 

#include "stdafx.h"
#include "simpledetector.h"

CSimpleDetector::CSimpleDetector(void)
{
}

CSimpleDetector::~CSimpleDetector(void)
{
}
 

 

 

Собственно в чём проблема-то. Всё компилится, игра запускается, детектор спавнится.
Все Msg("Достаем детектор"); и т.д в логе появляются когда надо, но нету худа. Нету анимации, самого худа тоже нет. Demo_record даже включал, худ просто не появляется. Что я делаю не так?  :)

Изменено пользователем Kondr48
Ссылка на комментарий

SkyLoader, Потому что компиляция валится вот с такой вот ошибкой, если этого void нету :

 

 

  object_factory_register.cpp
3>x:\trunk\xray\xrcore\xrMemory_subst_msvc.h(69): error C2259: 'CSimpleDetector' : cannot instantiate abstract class
3>          due to following members:
3>          'void CHudItem::UpdateXForm(void)' : is abstract
3>          x:\trunk\xray\xr_3da\xrgame\huditem.h(121) : see declaration of 'CHudItem::UpdateXForm'
3>          x:\trunk\xray\xr_3da\xrgame\object_item_client_server_inline.h(27) : see reference to function template instantiation 'T *xr_new<CSimpleDetector>(void)' being compiled
3>          with
3>          [
3>              T=CSimpleDetector
3>          ]
3>          x:\trunk\xray\xr_3da\xrgame\object_item_client_server_inline.h(26) : while compiling class template member function 'ObjectFactory::CLIENT_BASE_CLASS *CObjectItemClientServer<_client_type,_server_type>::client_object(void) const'
3>          with
3>          [
3>              _client_type=CSimpleDetector,
3>              _server_type=CSE_ALifeItemDetector
3>          ]
3>          x:\trunk\xray\xr_3da\xrgame\object_factory_impl.h(35) : see reference to class template instantiation 'CObjectItemClientServer<_client_type,_server_type>' being compiled
3>          with
3>          [
3>              _client_type=CSimpleDetector,
3>              _server_type=CSE_ALifeItemDetector
3>          ]
3>          object_factory_register.cpp(351) : see reference to function template instantiation 'void CObjectFactory::add<CSimpleDetector,CSE_ALifeItemDetector>(const CLASS_ID &,LPCSTR)' being compiled
3>
3>Build FAILED. 

 

 

Изменено пользователем Kondr48
Ссылка на комментарий

@!SkIF!,

 

1. Установи  vs 2008 английскую версию en_visual_studio_2008_professional_x86_dvd_X14-26326

2.Скачай SP 1 VS90sp1-KB945140-ENU.exe для неё.

3.Установи Direct X - DXSDK_Mar09.exe, DXSDK_Jun10.exe

4.Создай диск Х (не обязательно). Или С пойдёт.

5.Создай на этом диске папку и в ней еще папку (английский текст (можно цифры), без пробелов, любое название).

6 engine.vc2008.fixed.rar распакуй во вторую папку.

7.stasvn.7z из этого архива выдерни папку SDK  и закинь во вторую папку.

8.опять из engine.vc2008.fixed.rar выдерни папку sdk   и с заменой 11 (там их всего) файлов закинь во вторую.

 

 

Выполнять пункты по-порядку, так как СДК Директ Х должны быть установлены после визуалки и SP1

Если делать всё по-порядку, то в Визуалке не придётся подключать Директ X библиотеки.

 

Bот так подключать библиотеки direct x

 

2a3005c49fa1t.jpg

ec8239cfd611t.jpg

3c7931503de4t.jpg

04eeaed20ec2t.jpg

 

 

Правильно или нет, но у меня работает.

 

 Для спецов (создать раздел для диска X):

Визуалка 2008 не видит виртуальные диски, поэтому надо создать в Computer Management диск -> Управление дисками.

Ужать существующий диск, и на базе свободного пространства создать новый том ( с учетом всех расспаковок и созданных файлов 5 Гигов хватит).

 

На диске С всё прекрасно компилируется, условие - запуск Визуалки от админа, и в свойствах корневой папки не должно быть "только для чтения всем вложенным файлам".

 

Исходники ЗП 1602

Изменено пользователем Дизель
  • Спасибо 1
  • Нравится 1

andreyholkin.gif

rod_cccp.gif

 

Ссылка на комментарий

@!SkIF!, не видит файла визуалка. Я уже раз десять подключал исходники. Вот такая беда была, но я не помню почему. Я вечером поздно тебе свои исходники скину, для теста.

 

Совет на рисунке посмотри:

e320f5822c98t.jpg

 

Вот мои исходники - только для теста компиляции, потому как, для тебя, там не будет хватать файлов в  gamedata .

Изменено пользователем Дизель
  • Спасибо 1

andreyholkin.gif

rod_cccp.gif

 

Ссылка на комментарий

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

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

Создать аккаунт

Зарегистрировать новый аккаунт в нашем сообществе. Это несложно!

Зарегистрировать новый аккаунт

Войти

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

Войти
  • Недавно просматривали   0 пользователей

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