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

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


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

Страница недоступна, ну и способа сравнить адекватно нет :) 

xr_3da\xrGame\xrGameSpy\xrGameSpy_MainDefs.h\GAME_VERSION я могу написать что угодно:) 

кстати - а кто может знает - как действительно проверить, на основании каких исходников (какой версии) собран xr_3da? есть какие то ключевые особенности именно в 6? имена переменных, которые были только в нем, например... :)

Ссылка на комментарий
xr_3da\xrGame\xrGameSpy\xrGameSpy_MainDefs.h\GAME_VERSION я могу написать что угодно

Не, ну если ты не доверяешь писанине разработчиков X-Ray в плане версионирования их же движка, то о чём тогда вообще может идти речь?


а кто может знает - как действительно проверить, на основании каких исходников (какой версии) собран xr_3da?

Бредовый, однако, вопросец/

Изменено пользователем User_X.A.R26
Ссылка на комментарий

писанине разработчиков X-Ray в плане версионирования их же движка

- имелось в виду что данную строку я hex эдитором могу попробить и в бинарнике... не говоря уже про исходный код. Имелось в виду что данная переменная не есть 100% вариант правильности версии.

 

 

Бредовый, однако, вопросец/

 

ну почему же... небольшое пример - в собранной dll (версия x) в экспорте есть функция, которую разработчики вырезали в следующей версии (x+1). Найдя у себя в экспортах  эту функцию , я могу с определенной вероятность сказать что я использую версию x. вот о таком признаке я и спрашивал. Не говоря уже что например, те же символьные названия функций. и я не думаю что те люди, которые сейчас пересобирают движок, для того чтобы оставить о себе след в истории, сидят и переименовывают все подряд.

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

 Есть ли в 7 патче возможность заливки иконок инвентаря нужным цветом?

Если репозитарий xp-dev - посмотрите все что касается #define INV_COLORIZE. 

Изменено пользователем Winsor
  • Спасибо 1
Ссылка на комментарий

@Forser, я просто первую строчку прочитал: "This repository contains XRAY Engine sources based on version 1.6.02 for specific use with the Call of Chernobyl modification."

Do what thou wilt shall be the whole of the Law.

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

Доброго времени суток, суровые парни-программисты, думаю с моей проблемой вряд-ли кто-то справится, но я всё же оставлю здесь сообщение с интересной информацией о том, что в движке есть функция, которая обращается к zone_"имя_аномалии".ltx, а именно к переменным

;рождение артефактов

artefacts = af_medusa,0.7, af_cristall_flower, 0.25,af_night_star, 0.05

;;во время срабатывания в online
spawn_blowout_artefacts = on

artefact_spawn_probability = 0.09 ;вероятность, что во время срабатывания аномалии будет рожден артефакт
artefact_spawn_particles = anomaly2\pux_blast ;партиклы, которые отыграются на месте рождения артефакта (опционально)
artefact_born_sound = anomaly\pux_blast ;звук, который отыграются на месте рождения артефакта (опционально)

throw_out_power = 50 ;импульс с которым артефакт будет выброшен из зоны в произвольном направлении
artefact_spawn_height = 3 ;(м) высота на центром зоны где будет рожден артефакт


где уже и реализуется возможность спавна артефактов от простого срабатывания аномалий(болт, или существо), звучит очень просто, но именно что только звучит, я перерыл кучу модов,все скрипты в каждом из них, и ни в одном из модов это не реализовано, кроме тех случаев, где мод построен на более старом билде xr3da, с не вырезанной ещё функцией на спавн, где разработчики не создавали и вообще не трогали движок, а даже просто правили в блокноте в конфигах самой аномалии вероятность спавна и собственно спавн самих артефактов, не трогая функцию, не заморачиваясь абсолютно с её работой, в остальных случаях это сделано простым скриптом, который очень странно работает, и/или вообще не работает стабильно, в отличие от тех, где функция включена в самом движке.У меня есть предрелизный бинарник xr3da, 2558, в котором вполне себе реализована вышеуказанная возможность, без какой либо возможности увидеть, где она(функция) находится, но совершенно очевидно, что она находится в движке, и заблокирована в релизе именно она.А посему, моей скромной просьбой завсегдатаям и программистам в этой теме будет помочь мне найти эту выключенную функцию в релизе движка, а именно спавн артефактов от срабатывания аномалии, и такие включить её, в оригинале ТЧ. Обращался к мододелам в другом разделе, так и сказали-в бинарнике заблокирована.Заранее спасибо, за помощь гарантирую вознаграждение(так как понятно что работа эта очень кропотливая и сложная).Кто собирается помочь, могу предоставить необходимые файлы в виде старых билдов движков.

Изменено пользователем Maxmanishe
  • Нравится 1
Ссылка на комментарий

Доброго времени суток  :) . Нужна помощь в добавлении колбека на клик по предмету в инвентаре. Нашел в движке место, где обновляется описание (как раз отсюда его удобно было бы запускать) но никак не разберусь с тем как передать аргумент. По аналогии с on_cell_item_focus не получилось, собственно как сделать колбек, чтобы при клике на предмет в инвентаре, в колбек передавался game_object выбранного предмета? :)

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

Нужна помощь в добавлении колбека на клик по предмету в инвентаре.

 

А в чем там проблема? Есть же

в _g.script:

callback_ex = {
	["on_select_item"]               = 133,
}

в bind_stalker.script:

  self.object:set_callback(callback_ex.on_select_item, self.on_select_item, self)		-- перемещение предмета в слот

function actor_binder:on_select_item( obj )
end

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

-- перемещение предмета в слот

+ в 1.0007 такого нет, поэтому я и спрашиваю.

Вроде как разобрался, по крайней мере собирается xr_game.

bool CUIInventoryWnd::OnItemSelected(CUICellItem* itm)
{
	SetCurrentItem		(itm);
	return				false;
	CGameObject* GO		= smart_cast<CGameObject*>(itm);
	Actor()->callback(GameObject::eItemClicked)(GO->lua_game_object() );
}

Хм. Место вроде верное, однако колбек не вызывается.

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

 

 

в 1.0007 такого нет, поэтому я и спрашиваю

 

А-а-а, тебе для исходников. Я подумал, ты для x-ray extensions спрашивал.

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

@Kondr48, Может всё же так?







bool CUIInventoryWnd::OnItemSelected(CUICellItem* itm)
{
      SetCurrentItem (itm);
      CGameObject* GO = smart_cast<CGameObject*>(itm);
      Actor()->callback(GameObject::eItemClicked)(GO->lua_game_object() );
      return false;
}
Изменено пользователем Bak
Ссылка на комментарий

Bak, да, насчет того чтобы воткнуть перед return falseя что-то не сразу сообразил, но при клике на предмет теперь безлог.

[13.03.16 01:16:42.671] * MEMORY USAGE: 324938 K

[13.03.16 01:16:47.548] *** break by StackWalk ***

[13.03.16 01:16:47.566] DEBUG CONTEXT DUMP:

[13.03.16 01:16:47.566]

[13.03.16 01:16:47.566]

[13.03.16 01:16:47.566]

[13.03.16 01:16:47.566]

[13.03.16 01:16:47.566]

[13.03.16 01:16:47.566]

[13.03.16 01:16:47.566]

[13.03.16 01:16:47.566]

[13.03.16 01:16:47.566]

[13.03.16 01:16:47.566]

[13.03.16 01:16:47.566]

[13.03.16 01:16:47.566]

[13.03.16 01:16:47.566]

[13.03.16 01:16:47.566]

[13.03.16 01:16:47.566]

[13.03.16 01:16:47.566] Unhandled exception stack trace:

[13.03.16 01:16:47.566]

[13.03.16 01:16:47.601] 0023:04AA11E5 (0x5D6EC660 0x0000001A 0x00000000 0x5D6EC660) xrGame.dll, SetupGameIcon()

[13.03.16 01:16:47.601] 0023:04A6B8C1 (0x4269FAC0 0x42240000 0x00000000 0x00000000) xrGame.dll

[13.03.16 01:16:47.601] 0023:04A795B1 (0x4269FAC0 0x42240000 0x00000000 0x5CBFD990) xrGame.dll

[13.03.16 01:16:47.601] 0023:04A69110 (0x44029FAC 0x43240000 0x00000000 0x04A7ABBB) xrGame.dll

[13.03.16 01:16:47.601] 0023:04AA1D89 (0x44029FAC 0x43240000 0x00000000 0x03504A60) xrGame.dll, SetupGameIcon()

 

 

 
uiinventorywnd2.cpp :
bool CUIInventoryWnd::OnItemSelected(CUICellItem* itm)
{
SetCurrentItem (itm);
CGameObject* GO = smart_cast<CGameObject*>(itm);
Actor()->callback(GameObject::eItemClicked)(GO->lua_game_object() );
return false;
}

в game_object_space.h в список добавил:

eItemClicked,

в script_game_object_script.cpp:

value("on_item_clicked", int(GameObject::eItemClicked) )

bind_stalker.script:

 

actor_binder:net_destroy()

self.object:set_callback(callback.on_item_clicked, nil)

actor_binder:reinit()

self.object:set_callback(callback.on_item_clicked, self.on_item_clicked, self)

Ну и сама функция:

 

function actor_binder:on_item_clicked(obj)
 news_manager.send_tip(db.actor, "Мы кликнули на предмет:")
end 

 

 

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

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

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

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

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

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

Войти

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

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

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