Thief: the Dark Fate Forum

Гильдия Редакторов => DromEd => Тема начата: LongShad от 08 декабря 2010 18:36:53

Название: Пишем свои скрипты
Отправлено: LongShad от 08 декабря 2010 18:36:53
Начнем полегоньку.
Я понял следующее. В Thief скрипты - это динамически загружающиеся модули, DLL-библиотеки, но с расширением OSM. У них есть только 1 экпортируемая функция ScriptModuleInit. Она первой запускается при загрузки модуля и игра узнает список всех доступных скриптов, аргументы, адреса соот-их функций. То бишь программисту не надо знать жесктопрошитые адреса переменных и функций в движке - все это спрашивает скрипт во время работы.
Пишется на Си++, с исп-ем классов и технологией, похожей на COM. Требуется подключить какие-то header-библиотеки:
#include <lg/types.h>
#include <lg/interface.h>
#include <lg/scrservices.h>
Компилируется в Windows на Visual C++, хотя можно и в Linux на gсс.

Это все, что я понял. На Си++ программировал только public, private, protect и конструкторы-деструкторы, в основном писал на Си.
Вся информация - на английском и telliamed в своем туторе не слишком то объясняет - что делает та или иная строчка.

Если кто-нибудь знает об этом человеке, просьба позвонить на номер...
Есть ли исходники оригинальных скриптов? Хоть их разобрать будет легче.
Название: Пишем свои скрипты
Отправлено: Shadowhide от 08 декабря 2010 18:43:24
ЦитироватьВ DarkMod скрипты - это динамически загружающиеся модули, DLL-библиотеки, но с расширением OSM
чего ? каой даркмод ? OSM скрипты это сс2,Т1 и Т2
Название: Пишем свои скрипты
Отправлено: LongShad от 08 декабря 2010 18:44:16
Пфуты, замучался я уже с вами  :mad:
Щас исправлю.
Название: Пишем свои скрипты
Отправлено: Shadowhide от 08 декабря 2010 18:53:42
[off]
Цитироватькаой даркмод
я тоже чего -то :) [/off]
Название: Пишем свои скрипты
Отправлено: Shadowhide от 08 декабря 2010 18:55:09
а зачем писать свои скрипты ? тебе что 3 кастумных скриптовых модулей не хватает? (я уже не говорю что на дефолтных скриптах можно чудеса творить)
Название: Пишем свои скрипты
Отправлено: LongShad от 08 декабря 2010 19:30:16
Логичный вопрос. Если я начал тему, значит мне это нужно.
А может это не так сложно. Или слишком сложно?
Название: Пишем свои скрипты
Отправлено: winter cat от 08 декабря 2010 19:39:48
Полный список скриптов (http://darkfate.ru/?show=files/editors/dromed/tools/list_of_all_scripts.zip), спасибо Клирингу. Есть также подробное описание скриптов (http://thiefmissions.com/telliamed/scripts.html) от Теллиамеда. 
Название: Пишем свои скрипты
Отправлено: LongShad от 08 декабря 2010 20:58:52
Не то, я имел ввиду вот это:
http://whoopdedo.org/pubscripts21-final.zip
Есть convict.h и gen.h, видно что автор пытался анализировать работу скриптов. Так что если не найдете описание какого-нибудь скрипта, можете посмотреть здесь.
И еще где-то был туториал от Telliamed, никак ссылку не найду. Помню что это была какая-то желто-оранжевая страница с ссылками на PyNumbra и Amnesia.

Нашел страницу:
http://www.thiefmissions.com/telliamed/
Ссылка:
http://www.thiefmissions.com/telliamed/osmdemo.zip

Блин, видать это очень сложное колдунство.
Название: Пишем свои скрипты
Отправлено: Chuzhoi от 09 декабря 2010 08:50:40
Забавно. Я всегда считал, что скрипты пишутся на скриптовых языках (общепринятых или специально под данный движок созданных).
А тут C++. Не ожидал.
Название: Пишем свои скрипты
Отправлено: LongShad от 09 декабря 2010 16:21:50
ЦитироватьЗабавно. Я всегда считал, что скрипты пишутся на скриптовых языках (общепринятых или специально под данный движок созданных).
Так делают в большинстве случаев сейчас. Раньше не сильно думали о приемственности движка и его развитии. Потом, сейчас компы быстрые и даже интерпретируемые скрипты будут работать быстро. В нашем случае скрипт чуть ли не ставится на один уровень с движком игры, расширяя его возможности.
Название: Пишем свои скрипты
Отправлено: Zontik от 09 декабря 2010 16:40:03
Может, я что-то не так понимаю... тогда проясните.
Мне всегда казалось, что скрипты не могут научить движок делать то, чего он не умеет изначально, а могут только заставить делать то, чего он по каким-то причинам не хочет.
Скажем, те же зеркала в Temple Of The Tides (вращаются, пока держишь мышь; отпустишь - вращение прекращается). Вроде бы какое-то новое действие, но ведь в точности так же работают отмычки. То есть процедура уже имеется, скрипт просто позволяет подключить ее иначе.
Другими словами, возможности движка никаким образом не расширяются - расширяется только доступ к ним. Создать что-то принципиально новое невозможно (хотя можно создать нечто, что будет казаться принципиально новым). Я не прав?
Скажем, создать скрипт, который бы позволил убрать кристалл видимости на какое-то время, чтобы он появился на экране не сразу, а по ходу дела, скажем, когда игрок его отыщет. Это ведь невозможно в принципе? По крайней мере, в Mission X это сделать не удалось никаким скриптописанием.
Название: Пишем свои скрипты
Отправлено: LongShad от 09 декабря 2010 16:47:54
ЦитироватьМне всегда казалось, что скрипты не могут научить движок делать то, чего он не умеет изначально, а могут только заставить делать то, чего он по каким-то причинам не хочет.
Ну да, скрипты играют по правилам движка. Используют разрешенные им способы обращения к процедурам, сигналам, связям и объектам. Я имею ввиду, что с помощью скриптов можно добавить новую функциональность и сделать то, чего в движке нет. Например...
Название: Пишем свои скрипты
Отправлено: Chuzhoi от 09 декабря 2010 19:27:21
Я не знаю тонкостей движка, но мне кажется, что создатели движка просто слегка облегчили жизнь себе, при этом слегка усложнив жизнь тем, кто будет писать скрипты. То есть вместо встроенного транслятора, понимающего напрямую текстовые файлы со скриптами, нужно устанавливать среду разработки С++ и компилировать DLL-ки. Хотя возможности, в принципе, те же.

Кстати, покопавшись на задворках памяти, я вспомнил еще пару игр с таким же подходом - Quake 2 (и, возможно, Quake 3) и Serious Sam.
Название: Пишем свои скрипты
Отправлено: LongShad от 09 декабря 2010 20:59:56
Ну вот, просил оригинальные скрипты. Вот вам, пожалуйста - вышли исходники.
Только эти скрипты все-таки не совсем оригинальные.  ;)
Название: Пишем свои скрипты
Отправлено: Zontik от 10 декабря 2010 10:53:14
ЦитироватьНу вот, просил оригинальные скрипты. Вот вам, пожалуйста - вышли исходники.
LongShad, давно бы тебе озаботиться этим вопросом. Сколько времени зря пропало...