Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Закрома Родины
GAMEINATOR forums > S.T.A.L.K.E.R. > Мастерская: создание модов для S.T.A.L.K.E.R.
Страницы: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77
jamakasi
Цитата(HikeR @ 15.05.2014, 04:47) *
в 6-м билдере обнаружилась утилитка Visual C++ Conversion Tools

Писал пару страниц назад про это, видимо так никто и не проверил.
abramcumner
Цитата(ClearVall @ 15.05.2014, 00:45) *
Ув. скриптеры и прочий достойный технический народ, поделитесь, какие горизонты вы уже для себя открыли с таким подарком?

Горизонты открываются просто невообразимые и сногсшибательные: это и сталкер 3(второй уже практически сделан народными умельцами спустя всего 2 недели после слива исходников), это и мультиплатформенность(стимбокс, пс4, хбох уан), ну может конечно хбох не потянет сталкер3; это и новейший р5 с мегаосвещением и мегафотореалистичной графикой. Конечно же фантастический АИ, способный самостоятельно пройти за игрока игру. Единственно с ним пока есть проблема - он проходит игру слишком быстро - игрок не успевает съесть стандартное ведро попкорна.
HellRatz
Еще вспомнил небольшую досаду в сталкере - когда НПС целится, он целится куда-то в сторону.. Чтобы это понять, достаточно подойти в плотную к стоящему НПС с оружием в руках, и когда тот в ответ достанет ствол - он будет уведен в сторону.. Однако выстрелы идут прямо и попадают в цель. Не плохо бы это было исправить. Во фриплей старте как-то скриптами вроде поправили.
abramcumner
HellRatz,
Скриптами ствол в сторону направляли, скриптами и пофиксили. Если с "косым" нпц затеять перестрелку, то ствол будет смотреть строго куда надо.
ClearVall
"Горизонты открываются просто невообразимые и сногсшибательные: это и сталкер 3(второй уже практически сделан народными умельцами спустя всего 2 недели после слива исходников), это и мультиплатформенность(стимбокс, пс4, хбох уан), ну может конечно хбох не потянет сталкер3; это и новейший р5 с мегаосвещением и мегафотореалистичной графикой. Конечно же фантастический АИ, способный самостоятельно пройти за игрока игру. Единственно с ним пока есть проблема - он проходит игру слишком быстро - игрок не успевает съесть стандартное ведро попкорна."

А если без не особо остроумной иронии? Человекам любопытно, будет ли разница до / после.
Капитошка
Горизонты конечно видятся большие, а вот капитанов к ним плывущих мало
HikeR
Цитата(jamakasi @ 15.05.2014, 09:07) *
Писал пару страниц назад про это

вы вроде про coff2omf писали. а эта Visual C++ Conversion Tools в итоге оказалась только для древних студий, делала проектные файлы.

с coff2omf все интереснее, входящая в BCB6 справилась с конверсией dx8-либ, BugTrap и ETools безо всяких шаманств, но завалилась на ворбисах и оггах. тут помогла сторонняя утилитка objconv (с ключом -nu- (remove Underscores from symbol Names)), но и она споткнулась на theora.

на этом пока тормознул. грустно вспоминается GCC, который умеет линковаться прямо к dll-кам, как своим, так и чужим.
jamakasi
Цитата(HikeR @ 15.05.2014, 16:55) *
но завалилась на ворбисах и оггах. тут помогла сторонняя утилитка objconv (с ключом -nu- (remove Underscores from symbol Names)), но и она споткнулась на theora.

Они случайно скомпилены не новыми студиями? Как вариант поставить старую студию и собрать либы а затем прогнать борландовскими тулзами, другой вариант это загуглить старые версии либ этих и также прогнать. Вы "лечили" lib'ки или тулзой той делали из dll lib(я когда то такое делал и если память не изменяет именно утилитами 6 делфи\билдера)?
HikeR
"новые" студии — это все что больше VC6. до 2005-й студии линковщик умел ключик /CONVERT, после которого борландовская утилита начинала понимать полученный coff. а для 2005-й и выше часть библиотек идут в "старом", а часть в "новом" coff-формате, тут и пригодилась objconv.

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

p.s.
еще выяснил, что сдк в текущем "утекшем" виде банально не рассчитана на релизную сборку. в декларациях полно #ifdef DEBUG ... #endif, которые окружают как целые классы, так и отдельные их члены, а в коде все это используется без оглядки на дефайны.

учитывая почти никакие возможности билдера в плане аналитики — люто и бешенно полюбил авторов этого кода.

неужели все сдк ранее распространялись в дебажной сборке?
krovosnork
Цитата(HikeR @ 15.05.2014, 13:12) *
неужели все сдк ранее распространялись в дебажной сборке?

Судя по количеству багов- Да
MegaNub
Цитата(HikeR @ 15.05.2014, 16:12) *
неужели все сдк ранее распространялись в дебажной сборке?


А смысл Release версии, если изначально даже не планировалось его публиковать, а потом резко передумали и решили опубликовать, и то кастрированый, MP-only? С 4A Engine SDK схожая ситуация, только видать не дособирали Release версию, не выпустили laugh.gif
jamakasi
Цитата(HikeR @ 15.05.2014, 17:12) *
неужели все сдк ранее распространялись в дебажной сборке?

Не стоит забывать что это еще и билдер да еще и от борланда который канул laugh.gif
HikeR
канул, не канул, а работает (собирает/линкует) все также реактивно. всем бы так ))
jamakasi
HikeR, в папке билдера implib c:\результат.lib источник.dll
На выходе получишь либу НО само сабой хедеры оно не создает и надо гуглить их если нету)
HikeR
implib не поможет, xrSound в студии собирается со статическими ворбисами/оггами, dll-ок на этом этапе нет. а промежуточные либы непонятны для coff2omf, implib и даже для objconv.

разве что динамически их наподключать.
HikeR
p.s.
глянул в содержимое X-Ray_SDK_0.4b_RUS_small.rar, блин, там все эти либы юзают динамические dll-ки. а с ними проблем как раз быть не должно.
krovosnork
Не уверен, что проблема в компиляторе, но уже 6 часов на Building Sectors висит. Раньше такого не встречал, возможно с локой что-то не то.
Lagos
Уважаемые форумчане.
Не считаете ли вы нужным убрать из компилятора функцию замещения?
Она лишь жизнь портит..имхо
понимаю, что сложно, но вдруг?
Заранее спасбо за рассмотрения предложения.
HikeR
опять про сдк, 4 часа потратил на выяснение интересного факта.

мало того, что в свойствах проекта указана простыня поиска
типа такой:
Код
I:\Program Files\Borland\CBuilder6\Projects";
blenders;
..\..\xr_3da\xrRender_R1;
..\..\xr_3da\blenders;
..\..\xrCDB;
..\..\xr_3da\xrCPU_Pipe;
Engine\Blenders;
..\..\xr_3da\xrRender;
..\..\xr_3da;
$(DXSDK_DIR)\Include;
WildMagic;
Editor;
Engine;
$(BCB)\include;
$(BCB)\include\vcl;
$(COMPONENTS)\AlexMX;
$(COMPONENTS)\ElPack\Code\Source;
$(BCB)\Include\Mfc;$(CORE_DIR);
..\xrEProps;
$(XIPH_DIR);
$(MAGIC_SW_DIR);
$(SDK_DIR)\freeimage"/
чуть ли не каждый .cpp-файл содержит аналогичную простыню
комических масштабов
Код
#include "../xrEProps/ChoseForm.h"
#include "UI_ParticleTools.h"
#include "../ECore/Editor/EditObject.h"
#include "ui_main.h"
#include "leftbar.h"
#include "../../xr_3da/xrRender/PSLibrary.h"
//.#include "ParticleSystem.h"
#include "../../xrCore/xr_trims.h"
#include "../ECore/Editor/library.h"
#include "../ECore/Editor/Render.h"
#include "../xrEProps/folderlib.h"
#include "../xrEProps/itemdialog.h"

#include "../xrEProps/TextForm.h"
#include "d3dutils.h"
#include "ObjectAnimator.h"
#include "../xrEProps/ItemList.h"
#include "ParticleEffectActions.h"
так эти нехорошие человеки еще и продублировали кучу инклюдов по разным каталогам.

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

кроме этого обнаружилось чрезмерное включение всех мыслимых и немыслимых либ (ненавижу #pragma comment(lib,"name.lib")) и системных инклюдов (вот накой звуковая подсистема в редакторе??). поэтому первым делом делаю поиск по "pragma comment", закоментариваю все к фигам и оставляю только используемые.

то же касается галки "Build with runtime package" на вкладке Packages, все что есть в билдере — все там. реально нужно только rtl, elpackB6, editor (это тот самый AlexMX) и иногда еще vcl/bcbsmp (плюс по мелочи).

в итоге победил практически все, осталось только разобраться с парой-тройкой либ полученных через implib/coff2omf.


p.s.
если кто поймает ошибку вида
Код
[Linker Error] Unresolved external '__fastcall System::AnsiString::ThrowIfOutOfRange(int) const'

то это, оказывается, древний баг самого билдера. решение есть.
macron
После 7 мая новых компилей не выходило? У xrdo билда 5571 нашел глюку - требует thmки из gamedata\textures, а не из rawdata\textures. Только когда перебросил thmки в gamedata\textures, заработало.
sergy172
Цитата(HikeR @ 16.05.2014, 18:36) *
вот накой звуковая подсистема в редакторе?

Понятно, что мне неизвестен контекст, но если речь о редакторе карт, то разве там не надо контролировать те же зоны эффектов и многое другое?
Robin-goods
Цитата
HikeR
чуть ли не каждый .cpp-файл содержит аналогичную простыню комических масштабов
комических масштабов
#include "../xrEProps/ChoseForm.h"
#include "UI_ParticleTools.h"
#include "../ECore/Editor/EditObject.h"
#include "ui_main.h"
#include "leftbar.h"
#include "../../xr_3da/xrRender/PSLibrary.h"
//.#include "ParticleSystem.h"
#include "../../xrCore/xr_trims.h"
#include "../ECore/Editor/library.h"
#include "../ECore/Editor/Render.h"
#include "../xrEProps/folderlib.h"
#include "../xrEProps/itemdialog.h"

#include "../xrEProps/TextForm.h"
#include "d3dutils.h"
#include "ObjectAnimator.h"
#include "../xrEProps/ItemList.h"
#include "ParticleEffectActions.h"

так эти нехорошие человеки еще и продублировали кучу инклюдов по разным каталогам


Да, помню как в студенческие годы порой вставлял в cpp-файлы кучу #include, что бы код точно работал... Т.к. не хотелось искать в Helpe какой #include нужен для конкретного оператора.
Так может они так же, на всякий случай копировали в заголовок простыню из #include, что бы все точно работало? rolleyes.gif Этакий студенческо-пофигизский подход... rolleyes.gif
K.D.
Цитата(sergy172 @ 17.05.2014, 00:25) *
разве там не надо контролировать те же зоны эффектов и многое другое?

Зона звуковых эффектов задается областью, ее видно визуально. Звука в СДК нет.
HikeR
уточняю контекст: кто пользовался всеми этими *Editor раньше, можно ли в них проигрывать аудио– видеоролики и/или что-то с ними делать (резать, склеивать, шумы там убирать)? можно ли сразу прослушать созданное EAX-окружение?

все что смог отыскать это нечто связанное с комментариями в ogg-файлах (редактирование?), а для этого полный комплект xrSound/EAX/OpenAL/ogg/vorbis/theora нафиг не нужен.
Robin-goods
HikeR
Кстати, я правильно понял, что проект писался в Borland C++ Builder ?
HikeR
только для сдк-шных приложений. в те времена, насколько я помню, подобный интерфейс сделать на продуктах от MS было тяжеловато. да и дельфи народ любил куда больше ;)
Robin-goods
Ха, а мне тогда куча народу втирало, что Borland C++ Builder предназначен для любительских целей... Мол это конструктор для быстрой сборки. А мол для серьезных вещей нужен исключительно Microsoft Visual C++. rolleyes.gif
Modera
Цитата(K.D. @ 17.05.2014, 00:29) *
Звука в СДК нет.

Не правда.
Robin-goods
Я к чему веду, может движок оказался таким глючным, из-за того, что там использовался Builder ?
hi_flyer
Звук в сдк есть и нормально работает.
K.D.
Цитата(hi_flyer @ 17.05.2014, 01:14) *
Звук в сдк есть и нормально работает.

В каком компоненте, в АЕ?
Modera
Везде в Sound Editor.
В LE при включенной погоде есть все звуки, можно слушать sound source.
Jein
Цитата(K.D. @ 16.05.2014, 23:29) *
Зона звуковых эффектов задается областью, ее видно визуально. Звука в СДК нет.


Если запустить Shader Editor, и выбрать вкладку Sound Env то включиться дефолтный звук beep (ну или можно прикрутить любой другой), так вот как раз этот звук можно прослушать в обработке любого, выбранного пресета, причем облетая камерой сам источник. И там же можно создать свой или корректировать готовые пресеты звуковой обработки.
Только все это "счастье" можно услышать только на XP, так как там существовал DirectSound, а с появлением Win7, DirectSound выл вырезан, а его функции возложили на OpenAl, но вот беда - SDK 0.4 "не умеет" работать с интерфейсом ОpenАl.
Lagos
Цитата(K.D. @ 17.05.2014, 01:23) *
Цитата(hi_flyer @ 17.05.2014, 01:14) *
Звук в сдк есть и нормально работает.

В каком компоненте, в АЕ?

Звук также есть и в LE.
При проигровании sound source или редактировании звуков в sound editor
Вообще в любом из редакторов есть вкладка sound editor, через который настраиваются звуки для игры.

Цитата(Jein @ 17.05.2014, 01:38) *
Цитата(K.D. @ 16.05.2014, 23:29) *
Зона звуковых эффектов задается областью, ее видно визуально. Звука в СДК нет.


Если запустить Shader Editor, и выбрать вкладку Sound Env то включиться дефолтный звук beep (ну или можно прикрутить любой другой), так вот как раз этот звук можно прослушать в обработке любого, выбранного пресета, причем облетая камерой сам источник. И там же можно создать свой или корректировать готовые пресеты звуковой обработки.
Только все это "счастье" можно услышать только на XP, так как там существовал DirectSound, а с появлением Win7, DirectSound выл вырезан, а его функции возложили на OpenAl, но вот беда - SDK 0.4 "не умеет" работать с интерфейсом ОpenАl.

Как раз лучше прикрутить к 4 сдк openal. Только вот с исх. Беда и с сдк опенал. Я долго искал, но находил лишь старинные версии.
RayTwitty
Цитата(K.D. @ 17.05.2014, 01:23) *
В каком компоненте, в АЕ?

В LE точно работал, достаточно сделать ctrl+A на вкладке sound source и нажать кнопочку play.

Добавил дохрена скриптовых методов, в общей сложности получается пока так:
open
Работа с игровыми объектами

CActor

number get_actor_max_weight() - возвращает максимально переносимый вес.
set_actor_max_weight(number) - устанавливает максимально переносимый вес.
number get_actor_max_walk_weight() - возвращает максимальный вес, после которого уже нельзя ходить.
set_actor_max_walk_weight(number) - устанавливает максимальный вес, после которого уже нельзя ходить.

CCar

number GetfFuel() - возвращает текущее количество топлива.
SetfFuel(number) - устанавливает текущее количество топлива.
number GetfFuelTank() - возвращает размер топливного бака.
SetfFuelTank(number) - устанавливает размер топливного бака.
number GetfFuelConsumption() - возвращает расход топлива.
SetfFuelConsumption(number) - устанавливает расход топлива.
ChangefFuel(number) - увеличивает или уменьшает текущее количество топлива.
ChangefHealth(number) - увеличивает или уменьшает текущее состояние машины.
PlayDamageParticles() - включает партиклы повреждений машины.
StopDamageParticles() - выключает партиклы повреждений машины.
StartEngine() - включает двигатель.
StopEngine() - выключает двигатель.
bool IsActiveEngine() - возвратит true, если двигатель включен.

CCustomOutfit

number get_additional_max_weight() - возвращает добавочный максимально переносимый вес.
set_additional_max_weight(number) - устанавливает добавочный максимально переносимый вес.
number get_additional_max_walk_weight() - возвращает добавочный максимальный вес, после которого уже нельзя ходить.
set_additional_max_walk_weight(number) - устанавливает добавочный максимальный вес, после которого уже нельзя ходить.

CInventoryItem

number weight() - возвращает вес предмета.

CInventoryOwner

number get_total_weight() - возвращает суммарный вес всех предметов в инвентаре.

CTorch

enable_torch(bool) - задает состояние активности фонарика.
switch_torch() - переключает состояние активности фонарика.
bool torch_enabled() - возвратит true, если фонарик активен.
enable_night_vision(bool) - задает состояние активности ПНВ.
switch_night_vision() - переключает состояние активности ПНВ.
bool night_vision_enabled() - возвратит true, если ПНВ активен.

Колбеки игровых объектов

CActor

callback.hit - хит; принимаемые аргументы: game_object obj, number amount, vector local_direction, game_object who, number bone_index
callback.on_key_press - нажатие клавиши; принимаемые аргументы: number dik
callback.on_key_release - отпускание клавиши; принимаемые аргументы: number dik
callback.on_key_hold - удерживание клавиши; принимаемые аргументы: number dik
callback.on_mouse_move - движение мыши; принимаемые аргументы: number x, number y
callback.on_mouse_wheel - вращение колеса мыши; принимаемые аргументы: number direction
callback.switch_torch - переключение активности фонарика; принимаемые аргументы: bool light_on

CInventoryOwner

callback.on_item_belt - перемещение предмета на пояс; принимаемые аргументы: game_object obj
callback.on_item_slot - перемещение предмета в слот; принимаемые аргументы: game_object obj
callback.on_item_ruck - перемещение предмета в рюкзак; принимаемые аргументы: game_object obj

CTorch

callback.switch_torch - переключение активности фонарика; принимаемые аргументы: bool light_on

Другие изменения

Класс render_device

number fov() - возвращает текущее значение fov.
set_fov(number) - устанавливает значение fov.
Свойство fov удалено, вместо нее необходимо использовать вышеописанную функцию fov.

З.Ы. когда уже запилят кнопку спойлера и почему тег называется hide??
Modera
Цитата
SetfFuel(number) - устанавливает текущее количество топлива.
..
ChangefFuel(number) - увеличивает или уменьшает текущее количество топлива.

К чему две одинаковые функции?

Цитата
SetfFuelTank(number) - устанавливает размер топливного бака.
..
SetfFuelConsumption(number) - устанавливает расход топлива.

Зачем? Можно же в конфиге настроить.
Не, второе то ещё ладно, можно увеличить расход топлива при убитой машине, но первое нафига?
RayTwitty
Цитата(Modera @ 17.05.2014, 02:35) *
К чему две одинаковые функции?

Уверен? laugh.gif

Цитата
Не, второе то ещё ладно, можно увеличить расход топлива при убитой машине, но первое нафига?

На всякий случай.
Modera
Цитата(Shadows @ 17.05.2014, 02:49) *
Цитата(Modera @ 17.05.2014, 02:35) *
К чему две одинаковые функции?

Уверен? laugh.gif

Не вижу особой разницы между
car:SetfFuel(car:GetfFuel() - 3)
и
car:ChangefFuel(-3)
RayTwitty
Цитата(Modera @ 17.05.2014, 03:02) *
Не вижу особой разницы между

Потому что ты не знаешь как они работают.
Modera
Если ты про 3, то да, там же float надо. Тупанул.
А всё-таки, в чём различия?
RayTwitty
Цитата(Modera @ 17.05.2014, 03:11) *
там же float надо. Тупанул.

Луа пофигу флоат там или инт.

Цитата(Modera @ 17.05.2014, 03:11) *
А всё-таки, в чём различия?

В дополнительных проверках, чтобы значение не вышло за пределы.
Modera
Цитата(Shadows @ 17.05.2014, 03:34) *
Луа пофигу флоат там или инт.

Только будет топливо -3.0 laugh.gif
RayTwitty
Modera, вот как раз без дополнительных проверок и будет -3 или +100500 топлива.
Modera
Shadows, Ну я это как-бы понял.
sergy172
Так получается, что вопреки заявлениям та самая звуковая подсистема в редакторе находится не зря?

Да, и как там исправление бага функции "бленд" для светил?
RayTwitty
Цитата(sergy172 @ 17.05.2014, 13:28) *
Да, и как там исправление бага функции "бленд" для светил?

Никто не ковырял это.
MegaNub
А проект SDK портировать на VS возможно?
Nekt
MegaNub, конечно, переписав весь код. laugh.gif
HikeR
ок, звук в редакторах нужен, убедили. верну обратно ;)

Цитата(Jein @ 17.05.2014, 01:38) *
но вот беда - SDK 0.4 "не умеет" работать с интерфейсом ОpenАl.

это странно. в текущем виде собранная игра в Win7 без проблем юзает OpenAL, а в редакторах используется та же самая либа xrSound, у которой в зависимостях и dsound, и opeanal с eax-ом.

Цитата(Robin-goods @ 17.05.2014, 01:09) *
может движок оказался таким глючным, из-за того, что там использовался Builder ?

если бы билдер делал глючный код, то за прошедший десяток лет кто-нибудь это обязательно заметил.
K.D.
Цитата(sergy172 @ 17.05.2014, 13:28) *
Да, и как там исправление бага функции "бленд" для светил?

Там много перепиливать. Это так на раз-два не получится.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Форум IP.Board © 2001-2024 IPS, Inc.