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

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


Rolan

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

Господа, обращаюсь за помощью. Есть правленая длл-ка от Kolmogor'a для 4 патча ТЧ:

 

Правленная dll от Колмогора, возраст - чуть больше года, специально для NewLife и "Хроник S.T.A.L.K.E.R. ТЧ":

- консольная команда fov - динамически меняется fov в игре;

- консольная команда k_ammo_on_belt (k_ammo_off_belt) - перезарядка оружия только патронами с пояса. Включается, отключается через консоль. Чтобы патроны можно было положить на пояс, нужно раскомментировать (или дописать) в weapons.ltx в секции ammo_base строчку belt = true;

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

 

http://narod.ru/disk...e_edit.rar.html

 

 

 

Вопрос: может ли кто-нибудь адаптировать чудо сие для 1.0006 патча?

Заранее благодарен. Прошу прощения, если не в тему.

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


Ссылка на сообщение
Поделиться на других сайтах

День добрый!

Собрал 201 ревизию движка с репо xp-dev и столкнулся с необычной проблемой - такое ощущение, что действия контекстного меню в инвентаре (положить в слот/выбросить и проч.) отрабатываются не для того предмета, щелчком на котором вызвано меню, а для предмета слева от целевого.

Как пример: имеем в инвентаре аптечку и куртку (слева направо) - при щелчке пкм на куртке и выборе "одеть" в слот костюма становится аптечка. При даблклике на куртке она надевается штатно.

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

Буду признателен за помощь.

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


Ссылка на сообщение
Поделиться на других сайтах

Господа, а сориентируйте на репозиторий, в котором можно подсмотреть движковую реализацию грант с пояса на ТЧ?

То что умудрился соорудить сам на базе xp-dev уж больно неказистое вышло. 

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


Ссылка на сообщение
Поделиться на других сайтах

Приветствую!

Пытаюсь прикрутить к гранатами рандом задержки до взрыва.

Собственно вопрос - куда в grenade.cpp корректно воткнуть вызов рандомайзера, чтобы он один раз отрабатывал по каждой заспавненной в игре гранате и задержка именно для этой гранаты сохранялась до новой игры?

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


Ссылка на сообщение
Поделиться на других сайтах

Приветствую!

Прикручивал на движок ТЧ (форк xp-dev) отображение миникарты по зажатию клавиши. Соорудил работающую проверку:

UIMainIngameWnd.cpp

void CUIMainIngameWnd::Draw()
{
...
	if (Level().IR_GetKeyState(DIK_TAB))
	UIZoneMap->Render();
...
}

 

Вопрос - подскажите как проверять не хардкодную клавишу (TAB в моём примере) а некое действие к которому забиндена кнопка в настройках, типа kSCORES ?

Попытка проверять в духе

if (Level().IR_GetKeyState(get_binded_action(kSCORES)))

результатов не дала

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


Ссылка на сообщение
Поделиться на других сайтах

Приветствую!

Подскажите, реализовывал ли кто у себя группировку предметов на худовой панели артефактов (group_similar) ?

Сам крайне не силён во всей это XML-магии. Буду признателен за ссылку на репозиторий с целью самообразовательно подсмотреть решение.

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


Ссылка на сообщение
Поделиться на других сайтах

В "наследниках" репозитория 1.0007 Rc1 @alpetи @KD87 (XP-DEV) не работает контекстное меню по правой кнопке мыши в окнах обыска ящиков/трупов (не ручаюсь за оригинальные исходники).

Сей вопрос кратко упоминался в теме "Мелкие правки движка", но итоговое решение для XP-DEV озвучено не было.

 

Буду признателен за подсказку: что является причиной и как исправлять такое поведение.

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


Ссылка на сообщение
Поделиться на других сайтах

ТЧ 1.0007rc1 (xp-dev 190 rev)

Задача: обрабатывать нажатие кнопок, отвечающих за разделы ПДА, если в слоте ПДА предмет с CLS_ID == CLSID_DEVICE_PDA

Реализация: 

 

Скрытый текст

bool CUIGameSP::IR_OnKeyboardPress(int dik) 
{
	if(inherited::IR_OnKeyboardPress(dik)) return true;

	if( Device.Paused()		) return false;

	CInventoryItem *PDA = smart_cast<CInventoryItem*>(pActor->inventory().ItemFromSlot(PDA_SLOT)); //<-Предмет в слоте ПДА
	
	if(!pActor)								return false;
	if( pActor && !pActor->g_Alive() )		return false;

	switch ( get_binded_action(dik) )
	{
...
   if (PDA->object().CLS_ID == CLSID_DEVICE_PDA) //<-проверяем есть ли PDA в слоте
   {
	case kACTIVE_JOBS:
		if (!MainInputReceiver() || MainInputReceiver() == PdaMenu){
			PdaMenu->SetActiveSubdialog(eptQuests);
			m_game->StartStopMenu(PdaMenu, true);
			return true;
		}break;

	case kMAP:
		if (!MainInputReceiver() || MainInputReceiver() == PdaMenu){
			PdaMenu->SetActiveSubdialog(eptMap);
			m_game->StartStopMenu(PdaMenu, true);
			return true;
		}break;

	case kCONTACTS:
		if (!MainInputReceiver() || MainInputReceiver() == PdaMenu){
			PdaMenu->SetActiveSubdialog(eptContacts);
			m_game->StartStopMenu(PdaMenu, true);
			return true;
		}break;

	case kSCORES:
	{
		SDrawStaticStruct* ss = AddCustomStatic("main_task", true);
		SGameTaskObjective* o = pActor->GameTaskManager().ActiveObjective();
		if (!o)
			ss->m_static->SetTextST("st_no_active_task");
		else
			ss->m_static->SetTextST(*(o->description));
	}
	break;
   }
	}
	return false;
}

 

Проблема: разделы ПДА открываются даже если в слоте ПДА находится предмет на соврешенно ином классе - аптечка, фонарь, etc. Если в слоте ПДА вообще нет предмета - кнопки не срабатывают, как и ожидается.

 

Собственно вопрос - что я делаю не так?

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


Ссылка на сообщение
Поделиться на других сайтах

@DoberBull, спасибо за предложение - с "CPda *PDA =... " так и сделал.

Также было неправильно обрамлять в проверку несколько case - добавил условие "PDA" в каждый case и всё заработало.

 

В итоговой реализации как-то так:

Скрытый текст

CPda* PDA = smart_cast<CPda*>(pActor->inventory().ItemFromSlot(PDA_SLOT));
...

      case kACTIVE_JOBS:

        if ((!MainInputReceiver() || MainInputReceiver() == PdaMenu) && PDA)
        {
          ...
        }

 

 

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


Ссылка на сообщение
Поделиться на других сайтах

Приветствую.
Насколько знаю в NLC 7 (и, вероятно, любом проекте, движок которого основан на репозитории Alpet&KD) есть баг со звуком дождя - если двигаться удерживая камеру ровно по линии горизонта, то звук дождя скачет поочерёдно то в левый то в правый канал.

 

Буду признателен за наводку куда копать чтобы это исправить.

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


Ссылка на сообщение
Поделиться на других сайтах

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

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

AMK-Team.ru

×
×
  • Создать...