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

Редактирование движка 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
Ссылка на комментарий

Доброго времени суток, суровые парни-программисты, думаю с моей проблемой вряд-ли кто-то справится, но я всё же оставлю здесь сообщение с интересной информацией о том, что в движке есть функция, которая обращается к 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
Ссылка на комментарий

@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 пользователей

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