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

Внимание. На форуме проводятся технические работы с боковым меню.

_Val_ _Val_

X-Ray extensions


Malandrinus

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

http://www.amk-team.ru/forum/index.php?showtopic=10339&p=910319

Составил описание некоторых методов, которые добавляет ХЕ, в частности по game_object... Хотя, с некоторыми функциями даже я не разобрался :)

 

В частности, методы для инвентарных предметов по созданию источника света (насколько я понял, чтобы создать свечение как от артефакта).

 

create_light01()
destroy_light01()
set_light01_range(float)
set_light01_angle(float)
set_light01_enabled(bool)
set_light01_shadow(bool)
bool get_light01_enabled()
set_light01_pos(vector)
set_light01_color(vector)
set_light01_type(int)

 

Пробовал применять таким образом (смотря на аптечку, которая была на полу):

local obj = level.get_target_obj()
if obj then
	obj:create_light01()
	obj:set_light01_range(5)
	obj:set_light01_angle(120)
	obj:set_light01_enabled(true)
	obj:set_light01_shadow(false)
	obj:set_light01_pos(vector():set(0,0,0))
	obj:set_light01_color(vector():set(1,1,1))
	obj:set_light01_type(12)
	log1("light created")
end
Но после вызова у меня скрипт тупо виснет. Печалька.

 

Да и метод для машин bool get_car_shift() у меня постоянно возвращает фальс (и при движении, и при стоянии на месте).

 

Остальное более менее понятно.

 

upd: 23/01/2015, 17:50

ах да, ещё мифические

uint cast_car()
uint cast_game_object()
uint cast_hud_item()
uint cast_inventory_box()
uint cast_inventory_item()
uint cast_weapon()
Изменено пользователем Shadows

Telegram-канал RayTwitty Space

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


Ссылка на сообщение
@НаноБот, если никаких изменений/дополнений по этим правкам не планируется, могу добавить в проект.
  • Согласен 1

Telegram-канал RayTwitty Space

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


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

Хорошо бы сделать функцию ввода-вывода PERFORM_EXPORT_LEVEL__FLOAT__INT. Но и так сойдёт.

В level нет подходящего прототипа, так что никак.

 

Ах да, возможно надо оснастить функцию защитой, если element == -1, а то скрипт как правило отваливается

Ну, пофиксь и потом сюда кинь код правок или в лс - залью.

Telegram-канал RayTwitty Space

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


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

@Malandrinus, в любом случае, придется делать под каждый мод свой бранч, ибо всё универсализировать нельзя, да оно и не нужно. Яркий пример - текущее, вроде как "общепринятое" репо на xp-dev - там сделан огромный экспорт всего и вся в скрипты, хотя по моему мнению, очень много можно делать прямо в движке, не парясь с экспортом.

Так что это не просто "по-другому экспортировать", а вообще пересмотреть всю техническую часть мода. Например, в OGSE 655 скриптов - отсюда вытекает, сколько времени уйдет на "правильную" реализацию всего и вся.

Telegram-канал RayTwitty Space

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


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

Э-эээ, ну вообще-то опции не помогут, нет ?

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

 

тем больше хочу success storyes тех, кто уже собирал. Как долго, какие проблемы, можно ли вынести "вариабельные" куски вот в те же dll ?

Если речь о ХЕ - то вроде бы никаких проблем нет. По умолчанию, все правки, которые требуют вмешательство в геймдату я отключил. Остальные - экспорт в скрипты и правки аля "прятать оружие в машине". Хотя, её бы тоже надо отключить по умолчанию, ибо вырезается фича "стрельбы с одной руки"... Изменено пользователем Shadows

Telegram-канал RayTwitty Space

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


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

и в модели перенести источник света внутрь лампы.

Без индивидуальной настройки ламп в СДК (их виртуального радиуса) не имеет смысла. По дефолту там всегда 0.1, а при таком значении тень будет уродливая (если речь идет об аварийной лампе, из-за которой в своё время всё и затевалось). Изменено пользователем Shadows

Telegram-канал RayTwitty Space

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


Ссылка на сообщение
@Notfounded, так они есть в ТЧ - стреляем в ногу, НПС немного сгибается или может припасть на колено. Инфа 100%. Изменено пользователем Shadows
  • Согласен 1

Telegram-канал RayTwitty Space

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


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

Эмм. В какой ревизии инерция zoom'а?

Во всех, начиная со 164-ой. Но по умолчанию правка выключена. Изменено пользователем Shadows

Telegram-канал RayTwitty Space

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


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

настройка masm32

На самом деле, ничего в masm32 настраивать не надо, из него нужны только несколько библиотек: link.exe, ml.exe, mspdb50.dll, msvcp100.dll, msvcr100.dll. Лично я их кладу в папку tools, рядом с патчером.

 

Вот код моих батников:

@echo off
cd exe\3312_shoc_10006
if exist src.obj del src.obj
if exist src.exe del src.exe
if exist src.exp del src.exp
if exist src.lib del src.lib
if exist XR_3DA.exe del XR_3DA.exe

..\..\tools\ml /c /coff /Fo src.obj src.asm
..\..\tools\Link /SUBSYSTEM:WINDOWS /BASE:0x400000 /OUT:src.exe /DEF:src.def src.obj 
..\..\tools\bspatch.exe XR_3DA_orig.exe XR_3DA.exe XR_3DA.exe.diff
..\..\tools\patcher.exe XR_3DA.exe src.exe corrections_list.txt

del /Q src.obj
del /Q src.exe
del /Q src.exp
del /Q src.lib
pause

 

@echo off
cd xrcore\3312_shoc_10006
if exist mydll.obj del mydll.obj
if exist mydll.dll del mydll.dll
if exist mydll.exp del mydll.exp
if exist mydll.lib del mydll.lib
if exist xrCore.dll del xrCore.dll

..\..\tools\ml /c /coff /Fo mydll.obj mydll.asm
..\..\tools\Link /SUBSYSTEM:WINDOWS /DLL /OUT:mydll.dll /DEF:mydll.def mydll.obj 
..\..\tools\bspatch.exe xrCore_orig.dll xrCore.dll xrCore.dll.diff
..\..\tools\patcher.exe xrCore.dll mydll.dll corrections_list.txt

del /Q mydll.obj
del /Q mydll.dll
del /Q mydll.exp
del /Q mydll.lib
pause

 

@echo off
cd 3312_shoc_10006
if exist mydll.obj del mydll.obj
if exist mydll.dll del mydll.dll
if exist mydll.exp del mydll.exp
if exist mydll.lib del mydll.lib
if exist xrGame.dll del xrGame.dll

..\tools\ml /c /coff /Fo mydll.obj mydll.asm
..\tools\Link /SUBSYSTEM:WINDOWS /DLL /OUT:mydll.dll /DEF:mydll.def mydll.obj 
..\tools\bspatch.exe xrGame_orig.dll xrGame.dll xrGame.diff
..\tools\patcher.exe xrGame.dll mydll.dll corrections_list.txt

del /Q mydll.obj
del /Q mydll.dll
del /Q mydll.exp
del /Q mydll.lib
pause

 

@echo off
cd render\3312_shoc_10006\R1
if exist mydll.obj del mydll.obj
if exist mydll.dll del mydll.dll
if exist mydll.exp del mydll.exp
if exist mydll.lib del mydll.lib
if exist xrRender_R1.dll del xrRender_R1.dll

..\..\..\tools\ml /c /coff /Fo mydll.obj mydll.asm
..\..\..\tools\Link /SUBSYSTEM:WINDOWS /DLL /OUT:mydll.dll /DEF:mydll.def mydll.obj 
..\..\..\tools\bspatch.exe xrRender_R1_orig.dll xrRender_R1.dll xrRender_R1.dll.diff
..\..\..\tools\patcher.exe xrRender_R1.dll mydll.dll corrections_list.txt

del /Q mydll.obj
del /Q mydll.dll
del /Q mydll.exp
del /Q mydll.lib
pause

 

@echo off
cd render\3312_shoc_10006\R2
if exist mydll.obj del mydll.obj
if exist mydll.dll del mydll.dll
if exist mydll.exp del mydll.exp
if exist mydll.lib del mydll.lib
if exist xrRender_R2.dll del xrRender_R2.dll

..\..\..\tools\ml /c /coff /Fo mydll.obj mydll.asm
..\..\..\tools\Link /SUBSYSTEM:WINDOWS /DLL /OUT:mydll.dll /DEF:mydll.def mydll.obj 
..\..\..\tools\bspatch.exe xrRender_R2_orig.dll xrRender_R2.dll xrRender_R2.dll.diff
..\..\..\tools\patcher.exe xrRender_R2.dll mydll.dll corrections_list.txt

del /Q mydll.obj
del /Q mydll.dll
del /Q mydll.exp
del /Q mydll.lib
pause

 

 

@Malandrinus, мб батники в репо залить? Вроде намного универсальнее путь до локальной tools, чем до мифического g-диска))

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

Telegram-канал RayTwitty Space

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


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

Во-первых, самый главный аргумент против - а собственно куда телепортироваться то? Как выбирать точку перехода? Куда-то на нулевой вертекс? Невелик выбор.

Насколько я помню, при переброске через jump_to_level идет рандомный выбор графпоинта локации, в позицию которого будет прыжок. Можно появиться как "за забором", так и у Сидора в каморке, всё зависит от того, как были расставлены поинты в СДК и от рандома.

Telegram-канал RayTwitty Space

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


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

тем более бесполезная фишка

Ну, как фишка работающая из коробки без лишних телодвижений - более чем полезная. А скорректировать своё положение на уровне можно через телепортацию в режиме demo record.

Telegram-канал RayTwitty Space

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


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

@Malandrinus, я разве сетовал за то, чтобы адаптировать её в ХЕ? Я лишь написал, что это не бесполезная штука там, где она есть (билды/7 патч) и она практически равноценна вашим скриптовым "телепортаторам".

 

Для jump_to_level необходимо писать новый класс консольной команды, несколько виртуальных функций и собственно обработку прыжка. Никто в своём уме на ассемблере заниматься этим не будет, это было понятно изначально.

Telegram-канал RayTwitty Space

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


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

нет не равноценна, и я и маландринус написали почему.

Ты про сохранение точек? Я же не просто так написал:

А скорректировать своё положение на уровне можно через телепортацию в режиме demo record.

Это как раз компенсирует отсутствие сохранения. Приземлился в рандомный графпоинт, включил demo record и переместился куда нужно.

 

Все эти скриптовые аналоги были актуальны, когда не было исходников. Сейчас можно спокойно использовать дебаговый функционал разработчиков сталкера (при разработке на дебаговой сборке, разумеется).

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

Telegram-канал RayTwitty Space

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


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

Зашибись! Гугл прикрывает лавочку с гуглкодом

Похоже не зря я делал независимый FAQ :D

 

А так печально конечно, но переносить куда-то надо, у меня бы рука не поднялась спустить такую работу в утиль...

 

Видимо придется осваивать гитхаб...

Изменено пользователем Shadows
  • Согласен 1

Telegram-канал RayTwitty Space

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


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

3)Твой Faq по правкам для ТЧ ЗП или ЧН?

Для ТЧ. В ЗП там практически нечего расписывать, правки можно пересчитать по пальцам.

 

Хотя, для полноты FAQ, если дойдут руки, распишу и правки ЗП.

Изменено пользователем Shadows
  • Согласен 1

Telegram-канал RayTwitty Space

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


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

https://code.google....at_mgun_fix.asm

Привет всем, кто может обяснить в чем точно ошибка в классе stationary_mgun и в чем собственно правка заключается?

Это вроде бы тестовая правка. Ошибка там на самом деле в другом месте, она правилась в репо по 1.0007rc патчу, смотри первые 100 коммитов, где-то там.

 

https://xp-dev.com/sc/204486/HEAD/%2Ftrunk

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

Telegram-канал RayTwitty Space

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


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

Кажется проще/лучше будет пересобрать двиг с этими правками. Разобрать асм, что они там делают, переписать исходник и билдить.

Так вроде давно же перенесли все правки (или почти все) в сырцы ._. Изменено пользователем Shadows

Telegram-канал RayTwitty Space

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


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

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