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

X-Ray extensions


Malandrinus

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

3580621m.jpg

Как это исправить? Вылезает при сборке xr_game 1.0006

Поделиться этим сообщением


Ссылка на сообщение

А какой надо использовать? Можешь дать ссылку?

 

>>ClicK Me<<

ColR_iT

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

Поделиться этим сообщением


Ссылка на сообщение

malandrinus
Поделись ссылкой, а то не хочется из-за одного файла выкачивать весь пакет)

Про правила цитирования незабываем.
ColR_iT


malandrinus, ColR_iT, тут вся проблема в том, что при использовании любого из названных ml.exe у меня вылезают разные ошибки, не могли бы вы выложить пропатченную dll со всеми изменениями последней ревизии.

 

P.S насчет правил цитирования, при нажатии кнопки ответить она (цитата) появляется автоматически, а копировать ники не особо хочется))

А придётся.

ColR_iT

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

Поделиться этим сообщением


Ссылка на сообщение

Доброго времени суток. Не выходит пропатчить dll на ТЧ последней ревизии.

4092375m.png

masm32 установил. Windows 8.1 x64. ТЧ.

Поделиться этим сообщением


Ссылка на сообщение

Chriotmao, что? Какое бессмертие? По-моему он в стелсе прекрасно убивался.

Могу ошибаться.

---

Неизвестно кто снимал, но по-моему на 14:04 он первого кровососа прямо в инвизе и снял. ТЧ

 

Изменено пользователем Вампир35

Поделиться этим сообщением


Ссылка на сообщение

Кто-то спрашивал работает ли компиляция в портативной SVN на windows 8.1. Только что пробовал. Работает.

  • Нравится 1

Поделиться этим сообщением


Ссылка на сообщение
m_fSatiety -=	m_fV_Satiety*
						k*
						m_fDeltaTime;
UnLoaded, так вот же на апдейте m_fSatiety изменяется с течением времени. И в этой переменной текущее значение сытости и хранится. С чего Вы взяли, что это значение всегда равно 1.0?
В 7 патче KD давно сделал и это работает :) :
.property("satiety",				&CScriptGameObject::GetSatiety,			&CScriptGameObject::SetSatiety)	// KD	

---

Стоп... Изменяется она только в CActorCondition... Но в любом случае, получение и изменение сытости у меня работает через db.actor.satiety.

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

Поделиться этим сообщением


Ссылка на сообщение

Уже устал долбиться в стену, не понимая что происходит, прошу помощи :) Занялся я детекторами ЧН/ЗП, примерно представляю как оно там работает, начал "перенос" функционала на ТЧ и завис еще в начале. Удалил все в классе детектора что было, начинаю постепенно делать свое. Пока - примитив. Показать худ и три анимации, собственно idle, draw, holster. Вылетов нет, детектор прекрасно спавнится, но нет худа вообще. Т.е. все сообщения в лог выводятся (накидал в те участки кода, где должны воспроизводится анимации) а самого худа нет. Будто он не рисуется. Думаю, где-то проглядел, что худ надо "нарисовать", но не могу найти где. В классе артефактов ничего подобного не нашел (смотрел его, так как худ самый простой). Очень надеюсь на подсказку чего искать.

#pragma once

#include "hud_item_object.h"

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

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

	virtual void					OnH_A_Chield					();
	virtual void					OnH_B_Independent				(bool just_before_destroy);
	
	virtual void					UpdateCL						();
	virtual void					shedule_Update					(u32 dt);	

	virtual void					Hide				();
	virtual void					Show				();
	//инициализация если вещь в активном слоте или спрятана на OnH_B_Chield
	virtual void			OnActiveItem();
	virtual void			OnHiddenItem();
	virtual void			        renderable_Render();
	virtual void					OnStateSwitch		(u32 S);
	virtual void					OnAnimationEnd		(u32 state);

	virtual	void					UpdateXForm			();

		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 "hudmanager.h"
#include "inventory.h"

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

CCustomDetector::~CCustomDetector() 
{

}

void CCustomDetector::Load(LPCSTR section) 
{
	inherited::Load			(section);
	
	R_ASSERT			(m_pHUD);
	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"));
}

BOOL CCustomDetector::net_Spawn(CSE_Abstract* DC) 
{
	BOOL result = inherited::net_Spawn(DC);
	SetState					(eHidden);
	return result;	
}

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

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

void CCustomDetector::OnH_B_Independent(bool just_before_destroy) 
{
	inherited::OnH_B_Independent(just_before_destroy);

	if (m_pHUD)
		m_pHUD->Hide();
}

void CCustomDetector::OnActiveItem()
{
	inherited::OnActiveItem();
	//если мы занружаемся и оружие было в руках
	SetState(eIdle);
	SetNextState(eIdle);
	if (m_pHUD) m_pHUD->Show();
}

void CCustomDetector::OnHiddenItem()
{
	inherited::OnHiddenItem();
	if (m_pHUD)	m_pHUD->Hide();
	SetState(eHidden);
	SetNextState(eHidden);
}

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

void CCustomDetector::shedule_Update		(u32 dt) 
{
	inherited::shedule_Update		(dt);
}

#include "inventoryOwner.h"
#include "Entity_alive.h"

void CCustomDetector::UpdateXForm()
{
	if (Device.dwFrame!=dwXF_Frame)
	{
		dwXF_Frame			= Device.dwFrame;

		if (0==H_Parent())	return;

		// Get access to entity and its visual
		CEntityAlive*		E		= smart_cast<CEntityAlive*>(H_Parent());
        
		if(!E)				return	;

		const CInventoryOwner	*parent = smart_cast<const CInventoryOwner*>(E);
		if (parent && parent->use_simplified_visual())
			return;

		VERIFY				(E);
		CKinematics*		V		= smart_cast<CKinematics*>	(E->Visual());
		VERIFY				(V);

		// Get matrices
		int					boneL,boneR,boneR2;
		E->g_WeaponBones	(boneL,boneR,boneR2);

		boneL = boneR2;

		V->CalculateBones	();
		Fmatrix& mL			= V->LL_GetTransform(u16(boneL));
		Fmatrix& mR			= V->LL_GetTransform(u16(boneR));

		// Calculate
		Fmatrix				mRes;
		Fvector				R,D,N;
		D.sub				(mL.c,mR.c);	D.normalize_safe();
		R.crossproduct		(mR.j,D);		R.normalize_safe();
		N.crossproduct		(D,R);			N.normalize_safe();
		mRes.set			(R,N,D,mR.c);
		mRes.mulA_43		(E->XFORM());
//		UpdatePosition		(mRes);
		XFORM().mul			(mRes,offset());
	}
}

void CCustomDetector::Hide()
{
	SwitchState(eHiding);
}

void CCustomDetector::Show()
{
	SwitchState(eShowing);
}

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::renderable_Render()
{
	inherited::renderable_Render();
}

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

 

 

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

Поделиться этим сообщением


Ссылка на сообщение

можешь рассказать конечную цель? Ты что-то свое делаешь или просто переносишь?

Переношу. Да, сам функционал детекторов он и будет браться практически ai is, согласен. Но слишком много там сейчас того, что мне не потребуется на данном этапе, вроде совместных пистолетов и детекторов и т. п. Начал я именно так, чтобы понять как именно создать свой класс предмета с худом, не наследуя от оружия (оружейный функционал мне там не нужен) а худ нужен не только даже для детекторов. Просто на этих детекторах я начал "учиться" так скажем. Цель сейчас у меня просто заставить детекторы тупо показать худ. Больше ничего  :). Когда он заработает, остальной функционал я постепенно перенесу именно "как есть".

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

Поделиться этим сообщением


Ссылка на сообщение

Ну да, запустить из колбека на получение инфопоршня, это, конечно, затратно)

Поделиться этим сообщением


Ссылка на сообщение

 

 

Если Вы это серьезно - затраты копеечные, какой смысл за них напрягаться...

Разумеется, не серьезно  :)

Поделиться этим сообщением


Ссылка на сообщение

А что трудного в совместимости то? Там пара конфигов да скриптов из ресурсов, разве что с шейдерами немного повозиться.

Поделиться этим сообщением


Ссылка на сообщение

Скорее всего там просто патроны на поясе, надо просто под себя собирать.

  • Спасибо 1

Поделиться этим сообщением


Ссылка на сообщение

UriZzz, есть там такой прикол, артефакты сами лезут в слот для артефактов (в инвентаре он не видим).

Варианты:

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

 - в исходниках в:

CArtefact::CArtefact(void) 

закомментировать установку слота артефакта, вот так:

	//SetSlot (ARTEFACT_SLOT);

Но во втором случае об активации артефактов и худовых предметах на классе артефакта придётся забыть)

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

Поделиться этим сообщением


Ссылка на сообщение
  • Недавно просматривали   0 пользователей

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