• Уважаемые гости и новички, приветствуем Вас на нашем форуме
    Здесь вы можете найти ответы практически на все свои вопросы о серии игр «Готика» (в том числе различных модах на нее), «Ведьмак», «Ризен», «Древние свитки», «Эра дракона» и о многих других играх. Можете также узнать свежие новости о разработке новых проектов, восхититься творчеством наших форумчан, либо самим показать, что вы умеете. Ну и наконец, можете обсудить общие увлечения или просто весело пообщаться с посетителями «Таверны».

    Чтобы получить возможность писать на форуме, оставьте сообщение в этой теме.
    Удачи!
  • Друзья, доброго времени суток!
    Стартовал новый литературный конкурс от "Ордена Хранителей" - "Пираты Миртанского моря".
    Каждый может принять в нём участие и снискать славу и уважение, а в случае занятия призового места ещё и получить награду. Дерзайте
  • Дорогие друзья, год подходит к концу, и пришло время подвести его итоги и наградить достойных

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

Не стесняюсь спросить....

MEG@VOLT

★★★★★★★★★
ТехАдмин
Регистрация
24 Мар 2006
Сообщения
9.906
Благодарности
6.781
Баллы
1.625
Тебе нужна визуализация, или именно сюжетная линия?
 

Defman

Участник форума
Регистрация
26 Май 2013
Сообщения
3.165
Благодарности
245
Баллы
300
Тебе нужна визуализация, или именно сюжетная линия?

Визуализация.Мне для квеста надо.Ну так как такое сделать?Подозреваю что это делается через ini файл.
 

Мільтен

Участник форума
Регистрация
27 Июн 2008
Сообщения
862
Благодарности
427
Баллы
265
Здравствуйте!
Хотел вот спросить: существует ли какая-то документация по ParticleFx.dat и/или VisualFx.dat? Увы, знание английского, минимальная логика, копипаст ориганала и метод научного тыка не помогли мне разобраться во всех параметрах инстанций. А кажется мне, что при помощи визуальных эффектов и изучаемых частиц можно знатно оживить игровой мир.

А теперь более конкретный вопрос:

Код:
instance SPELLFX_PALLIGHT_ACTIVE(CFX_BASE_PROTO)
{
    visname_s = "";
    visalpha = 0.05;
    emtrjmode_s = "FOLLOW TARGET";
    emtrjeasevel = 0;
    emtrjoriginnode = "BIP01";
    emtrjloopmode_s = "HALT";
    emtrjeasefunc_s = "LINEAR";
    emtrjdynupdatedelay = 0.0;
    emtrjtargetrange = 0.1;
    emtrjtargetelev = 100;
    lightpresetname = "AURA";
};

Мне нужно, чтобы этот эффект висел чуть выше кости BIP01, не знаю, как этого добиться.
Также необходимо, чтобы эффект постоянно следовал за неписем, не отставая.
Буду благодарен, если кто ответит :)
 

hell9999

Участник форума
Регистрация
12 Апр 2008
Сообщения
2.049
Благодарности
1.170
Баллы
340
Здравствуйте!
Хотел вот спросить: существует ли какая-то документация по ParticleFx.dat и/или VisualFx.dat? Увы, знание английского, минимальная логика, копипаст ориганала и метод научного тыка не помогли мне разобраться во всех параметрах инстанций. А кажется мне, что при помощи визуальных эффектов и изучаемых частиц можно знатно оживить игровой мир.

К сожалению, документации такой не встречалось, самому бы пригодилось, так что тут пока метод тыка приходится использовать. Самый разбирающийся в пфх вопросах - Сатурас, стучись к нему в скайп, может чего и посоветует.
Что касается частиц и попыток украсить ими мир. Если мир совсем крохотный, то возможно что все будет отлично, но в больших мирах типа Хориниса, пфх здорово просаживают фпс, потому ими особо увлекаться не стоит.

Мне нужно, чтобы этот эффект висел чуть выше кости BIP01, не знаю, как этого добиться.
Также необходимо, чтобы эффект постоянно следовал за неписем, не отставая.
Буду благодарен, если кто ответит :)
Вот, смотри на схему костей, выбирай какую угодно, к любой можно эффекты привязать.
OOsLIDi.jpg
Насчет того, чтобы эффект не отставал от нпс, глянь глаза у дракона-нежити. У него они всегда на своих слотах сидят неподвижно.
 

Ilot

Участник форума
Регистрация
17 Сен 2010
Сообщения
798
Благодарности
297
Баллы
245
Мільтен, на старом форуме была очень хорошая статья Сатураса, но сейчас к ней к сожалению доступа нет. По крайней мере у меня. А лучше спроси у Лехи. Они в Саге делали нечно подобное (кажется кольцо некроманта).
 

MEG@VOLT

★★★★★★★★★
ТехАдмин
Регистрация
24 Мар 2006
Сообщения
9.906
Благодарности
6.781
Баллы
1.625
созданные темы сатурасом в модострое на старом форуме.
Требуется "спейсер-мен"
Saturas
user_offline.gif
26.05.2011, 22:06
МНе нужен свободный спейсерист, для "наполнения" локаций мода Gothic 2 The Alternative story
Требования:
Хорошее знание спейсера
Умение работать в команде
Стабильность/надежность человека
Вопросы по PFX системе.
Saturas
user_offline.gif
15.04.2009, 23:40
У меня возник такой вопрос как сделать чтобы
допустим эффект огненного шара исходил не из правой руки
а из 2 рук объясните как такое можно сделать?
Зарание блогодарен.
судя по всему - сам не знает
Externals
Saturas
user_offline.gif
10.09.2012, 00:34
Предыстория:
Дело было вечером, делать было нечего
Конец предыстории
grin.gif

Давно уже хотел сделать библиотеку, с новыми скриптовыми функциями для готики 2, но в силу лени, отсутствия нормального екста, не мог все это сделать, но теперь некоторые вещи изменились, у меня появилось время и нормальный екст, грубо говоря под словом нормальный, имеется в виду совсем другой екст, не тот что был в саге, и не тот что по первому запросу в гугле, исходники пока давать не буду, ибо там много наработок вама(привет Исходники готики
wink%21.gif
а вот готовое расширение функционала готы есть.
И так поехали
flower.gif






Также в код вшита одна "Циклическая" функция Global_cycle достаточно, просто создать, функцию с именем Global_cycle и во время игры, эта функция будет непрерывно вызываться, из глобального цикла oCGame::Render()
Так же, для нее есть вспомогательная функция Ext_GetTimerTick() пример использования 2х функций сейчас я вам покажу:
Код:
//В этом примере, мы используем внутриигровой таймер,​
//совместно с глобальным циклом​
//переменная таймера​
var int timer;​
func void InitVariables()​
{​
//инициализируем переменную на всякий случай​
timer = 0;​
}​
func void Global_cycle()​
{​
timer += Ext_GetTimerTick();​
//по прошествии 10 секунд, выводим текст на экран​
//и обнуляем таймер​
if(timer >= 10000)​
{​
timer = 0;​
Print("Прошло 10 секунд!");​
};​
};​
Или пример как отключить злополучный МАРВИН!:D
func void Global_cycle()​
{​
//вешаем на цикл эту функцию, и она будет при каждом вызове отключать марвин если тот был включен)​
Hlp_Otions(1,0,0);​
};​
И вот еще чуть не забыл, для того чтобы запустить игру с этими функциями, и тд
Нужно распаковать содержимое архива External.7z в папку с игрой(Gothic2\Externals)
Для запуска используем файл Start.bat (он запустит игру в оконном режиме!), если же вам нужно запустить игру в полный екран, запускать с файла - Inject.exe
Для компиляции скриптов, нужно использовать саму игру, с ключем -zreparse
а проще, запустить с файла Start_Compile.bat, немного его подредактировав, что конкретно редактировать показано ниже:
Код:
Inject.exe 0 -zwindow -zreparse -game:mod.ini​
на место mod.ini дописать ини файл Вашего мода, при этом все *.mod файлы из вашего ini файла будут пропущены!​
Чтобы добавить мод файл нужно дописать его в ExternalModList.cfg​
Пример:​
[FILES]​
VDF=MyMod.mod MyMod2.mod​
Для компиляции скриптов игрой, нужно поместить все ваши скрипты, в папки игры где должны лежать исходники скриптов:
_work\Data\Scripts\Content - в эту папку идут скрипты gothic.src и fight.src со всеми скриптами
_work\Data\Scripts\System - в эту папку идут скрипты, музыки и прочего
А вообще, советую Вам установить г2мдк со скриптами, и тогда все будет лежать на своих местах, ваша задача будет только заменить скрипты игры в папке Content которые относятся к gothic.src
Когда все сделанно, запускаем игру с файла Start_Compile.bat и скрипты будут автоматически собраны, и распиханы по своим папкам, для компиляции ou.bin - воспользуйтесь спейсером, либо скомпильте Ваш проект в готик сорсере как делаю я, хотя спейсером тоже можно.
Врроде все, удачи в новых начинаниях!

И вот еще, огромная благодарность за код Инжектора, Анониму с форума ехе лаб
flower.gif
был еще MANT - но его я уже лет 6 не видел в сети, ни в аське, ни в почте ответа нет(((
 

Ilot

Участник форума
Регистрация
17 Сен 2010
Сообщения
798
Благодарности
297
Баллы
245
MEG@VOLT, на старом форуме было много статей в частности и по PFX. Может посмотрите?
MEG@VOLTок, поищу. еще поищу в старом mod.wog.ru
 

redleha


Модостроитель
Регистрация
26 Фев 2008
Сообщения
735
Благодарности
666
Баллы
245
Здравствуйте!
Хотел вот спросить: существует ли какая-то документация по ParticleFx.dat и/или VisualFx.dat?

Мне нужно, чтобы этот эффект висел чуть выше кости BIP01, не знаю, как этого добиться.
Также необходимо, чтобы эффект постоянно следовал за неписем, не отставая.
Буду благодарен, если кто ответит :)
На ВОП.ру существовал хороший тутор Vam'а по Pfx. По Visual - никто вроде не делал.
http://yadi.sk/d/6z6q4bnI5WFge - ссылка на этот тутор. Залил себе на Яндекс.Диск

Чтобы эффект следовал за тобой - берёшь пример из VisualFX от заклинания "Свет".
Чтобы задать координаты - надо делать смещения относительно точки, где он возникает (это уже в Pfx.)
За пример можешь взять визуалы для стрел из Саги. (Там как раз идёт смещение до наконечника)
 

MEG@VOLT

★★★★★★★★★
ТехАдмин
Регистрация
24 Мар 2006
Сообщения
9.906
Благодарности
6.781
Баллы
1.625
Пасиба, Леха, Закину в базу по возможности
 

Мільтен

Участник форума
Регистрация
27 Июн 2008
Сообщения
862
Благодарности
427
Баллы
265
hell9999, redleha,

спасибо большое, что ответили :)
урок обязательно посмотрю, раз писал Вам, значит там есть полезная инфа.
Скрин с обозначением костей очень пригодился, еще раз спасибо :)

P.S. да на старом портале вообще много статей было, отрыть бы их...
MEG@VOLTче-нить придумаю)))
 

Хелдар

Участник форума
Регистрация
3 Июл 2012
Сообщения
2.450
Благодарности
780
Баллы
375
У меня такой вопрос: можно поставить временные ограничения на то или иное действие, например, дать сутки на выполнение квеста. Однако если выставить, например, Bennet_RepairDay = Wld_GetDay();, то сутки будут считаться не как 24 часа, а как отсчитывание времени до полуночи (берем квест в 23:58, через 2 минуты он уже считается заваленным). Есть ли возможность как-то обойти это? Пробовал ставить if(Bennet_RepairDay < Wld_GetDay()-1), но это двое суток (тоже по полуночи), а мне бы ровно одни, и чтоб считалось с момента взятия.
P.S. Единственный выход, который я вижу - поставить условия по времени.
 

kraw


Модостроитель
Регистрация
11 Окт 2005
Сообщения
2.095
Благодарности
871
Баллы
295
Сделал такие функции


Код:
func int GetHour()
{

   if (Wld_IsTime(00, 00, 01, 00))
   {
      return 0;
   };

   if (Wld_IsTime(01, 00, 02, 00))
   {
      return 1;
   };

   if (Wld_IsTime(02, 00, 03, 00))
   {
      return 2;
   };

   if (Wld_IsTime(03, 00, 04, 00))
   {
      return 3;
   };

   if (Wld_IsTime(04, 00, 05, 00))
   {
      return 4;
   };

   if (Wld_IsTime(05, 00, 06, 00))
   {
      return 5;
   };

   if (Wld_IsTime(06, 00, 07, 00))
   {
      return 6;
   };

   if (Wld_IsTime(07, 00, 08, 00))
   {
      return 7;
   };

   if (Wld_IsTime(08, 00, 09, 00))
   {
      return 8;
   };

   if (Wld_IsTime(09, 00, 10, 00))
   {
      return 9;
   };

   if (Wld_IsTime(10, 00, 11, 00))
   {
      return 10;
   };

   if (Wld_IsTime(11, 00, 12, 00))
   {
      return 11;
   };

   if (Wld_IsTime(12, 00, 13, 00))
   {
      return 12;
   };

   if (Wld_IsTime(13, 00, 14, 00))
   {
      return 13;
   };

   if (Wld_IsTime(14, 00, 15, 00))
   {
      return 14;
   };

   if (Wld_IsTime(15, 00, 16, 00))
   {
      return 15;
   };

   if (Wld_IsTime(16, 00, 17, 00))
   {
      return 16;
   };

   if (Wld_IsTime(17, 00, 18, 00))
   {
      return 17;
   };

   if (Wld_IsTime(18, 00, 19, 00))
   {
      return 18;
   };

   if (Wld_IsTime(19, 00, 20, 00))
   {
      return 19;
   };

   if (Wld_IsTime(20, 00, 21, 00))
   {
      return 20;
   };

   if (Wld_IsTime(21, 00, 22, 00))
   {
      return 21;
   };

   if (Wld_IsTime(22, 00, 23, 00))
   {
      return 22;
   };

   if (Wld_IsTime(23, 00, 24, 00))
   {
      return 23;
   };
};

func int GetHours()
{
   return (24 * Wld_GetDay() + GetHour());
};

Использую GetHours чтобы отределить текущее время с точностью до часа (с учетом суток). Остается только запомнить ее значение в начале квеста и посмотреть разницу со значением в момент проверки условия.

Правда, я ее еще не проверял. Но, вроде бы, должна работать.
 

Хелдар

Участник форума
Регистрация
3 Июл 2012
Сообщения
2.450
Благодарности
780
Баллы
375
То есть про время я правильно подумал:)
Спасибо, наверное, гляну, как оно будет работать.
P.S. Оттестена твоя функция, работает*flowers*
 

Мільтен

Участник форума
Регистрация
27 Июн 2008
Сообщения
862
Благодарности
427
Баллы
265
После открытия меша без флага эдитормода и в режиме индор экран черный, компиляция света ровным счетом ничего не меняет. Скажи, есть ли какие-то отличия в работе с аутдор и индор зенами? Думал, что экран черный, потому что в индор зенах отсутствует глобальное освещение, поставил световоб, скомпилил свет - все равно ничего.
 

unknown111

Участник форума
Регистрация
5 Фев 2013
Сообщения
1.075
Благодарности
1.586
Баллы
290
После открытия меша без флага эдитормода и в режиме индор экран черный, компиляция света ровным счетом ничего не меняет. Скажи, есть ли какие-то отличия в работе с аутдор и индор зенами? Думал, что экран черный, потому что в индор зенах отсутствует глобальное освещение, поставил световоб, скомпилил свет - все равно ничего.
у меня допустим довольно часто бывает каким-то образом повреждается меш и индор сливается с оутдором, в итоге как у тебя, все черное... я так и не выяснил причину, просто откатываю.
но может у тебя что-то другое.
 

MEG@VOLT

★★★★★★★★★
ТехАдмин
Регистрация
24 Мар 2006
Сообщения
9.906
Благодарности
6.781
Баллы
1.625
После открытия меша без флага эдитормода и в режиме индор экран черный, компиляция света ровным счетом ничего не меняет. Скажи, есть ли какие-то отличия в работе с аутдор и индор зенами? Думал, что экран черный, потому что в индор зенах отсутствует глобальное освещение, поставил световоб, скомпилил свет - все равно ничего.
Спакер не находит 3ds модели мира. По этому такая ошибка. Преустанови ГДМК со всеми флажками, тоды 3ds файлы найдутся)))
 

Мільтен

Участник форума
Регистрация
27 Июн 2008
Сообщения
862
Благодарности
427
Баллы
265
Спакер не находит 3ds модели мира. По этому такая ошибка. Преустанови ГДМК со всеми флажками, тоды 3ds файлы найдутся)))

Да и так постоянно со всеми флажками устанавливаю. Открываю мир свой, не оригинальный. Меш лежит в папке оригинала _word/data/meshes, Спейсер должен быть его видеть, разве нет?
 
Сверху Снизу