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

    Чтобы получить возможность писать на форуме, оставьте сообщение в этой теме.
    Удачи!
  • Друзья, доброго времени суток! Спешите принять участие в конкурсе "Таинственные миры" 2024!
    Ждем именно вас!

    Ссылка на конкурсную тему - тык

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

N1kX


Модостроитель
Регистрация
13 Ноя 2009
Сообщения
5.843
Благодарности
5.267
Баллы
910
Наспех глянул mds-ку. Ты там, похоже, правил кое-что. Или кто-то до тебя. Так вот, я сталкивался с тем, что на этот скрипт не распространяются привычные по Соурсеру принципы комментирования. Например, двойной слеш в строке делает нечитаемой всю строку, независимо от того, где он стоит в строке. А у тебя я заметил сочетание */ в конце строки с анимкой t_WoundedB_2_Stand. Наверное, это не единственное такое место.
Это я экспериментировал, хотя вроде разобрался, удалил везде где только можно ссылки на gobbo.mds и все его файлы, прошло. :)
 

kraw


Модостроитель
Регистрация
11 Окт 2005
Сообщения
2.095
Благодарности
871
Баллы
295
В сп/юнионе попробуй параметр zMouseRotationScale в SystemPack.ini

Не помогло. Union нормально установился. Добавил этот параметр (изначально его не было) в секцию PARAMRTERS. Пробовал со значением 5, 50, 500. Никакой разницы.
 

D36


Модостроитель
Регистрация
3 Дек 2014
Сообщения
2.124
Благодарности
3.215
Баллы
485
Есть ли принципиальная разница между использованием этих проверок?
Daedalus:
if(Npc_GetTrueGuild(other) == GIL_NONE)
Daedalus:
if(other.guild == GIL_NONE)
 

Gratt


Модостроитель
Регистрация
14 Ноя 2014
Сообщения
3.276
Благодарности
4.579
Баллы
625
D36, есть, потому что используют два разных поля класса. guildTrue любили задействовать в г1, в г2 старались избегать. Обычно значение тру гильдии присваивается в момент вступления главным героем в какую-либо гильдию (в г1 есть еще парочка сценариев, но не суть). Соответственно вызов на данную функцию будет иметь смысл только в отношении hero.
1576956291781.png

Не помогло. Union нормально установился. Добавил этот параметр (изначально его не было) в секцию PARAMRTERS. Пробовал со значением 5, 50, 500. Никакой разницы.
killer-m а для г2а у нас zMouseRotationScale предусмотрен вообще?
 

Gratt


Модостроитель
Регистрация
14 Ноя 2014
Сообщения
3.276
Благодарности
4.579
Баллы
625
killer-m, понял, мне казалось он у нас предусмотрен. Именно в рамках повышения отклика от слайдера в меню. Или я уже загоняюсь сильно? :D
1576958022945.png
 

ElderGamer


Модостроитель
Регистрация
16 Апр 2008
Сообщения
4.331
Благодарности
3.178
Баллы
525
Есть ли принципиальная разница между использованием этих проверок?
Как правило, значения guild и TrueGuild у персонажа равны, поэтому проверки дадут один и тот же результат. Но, в теории, могут быть и исключения. Параметр guild используется в большинстве функций ИИ, в Г1, во всяком случае. Он же влияет на то, какое название гильдии выводится в меню характеристик персонажа. Параметр TrueGuild используется во внутренних функциях движка. Например, по нему определяются отношения между гильдиями. Также этот параметр проверяется при определении внутридвижковых ограничений для определённой гильдии.

В каких случаях значения guild и TrueGuild у персонажа могут различаться? Если автору мода нужно, чтобы в меню отображалась одна гильдия, а отношение к персонажу было, как к представителю другой гильдии, он может сделать значения guild и TrueGuild разными. Если в движке у гильдии заблокирована смена боевого режима, то можно обойти запрет временной сменой значения TrueGuild.
 

nameluxor

Участник форума
Регистрация
19 Янв 2019
Сообщения
13
Благодарности
2
Баллы
100
Хелп ми плиз. Столкнулся со странной проблемой: у каких-то гильдий есть инвентарь, а у каких-то нет. Похожая ситуация с летучими гильдиями, я сначала подумал что за полет у гильдии отвечает какое-то поле в instance GIL_VALUES(C_GILVALUES), но выяснилось что нет. С чем связаны наличие инвентаря и полет у нпс по скриптам непонятно. Вообще, можно ли тасовать константы ги местами, например: в стандартной г2нв гильдия у демона 43 (GIL_DEMON = 43), а у мухи кровавой 25. Предположим, махну я их местами, то есть GIL_DEMON = 25, а GIL_BLOODFLY = 43. Есть ли какие-либо не очевидные механики связанные с этим?
 

neromont


Модостроитель
Регистрация
12 Мар 2011
Сообщения
674
Благодарности
655
Баллы
245
В игре нет летающих монстров. Все монстры также перемещаются с опорой на землю (хотя и невидимой).
 

nameluxor

Участник форума
Регистрация
19 Янв 2019
Сообщения
13
Благодарности
2
Баллы
100
В игре нет летающих монстров. Все монстры также перемещаются с опорой на землю (хотя и невидимой).

Я тоже так думал, до того как попробовал прикрутить wisp_detectору ги не летающую, потому и спрашиваю про пля instance GIL_VALUES(C_GILVALUES) . Возможно я что-то не учитываю, но я бился с этим пол дня и ничего у меня не вышло.
 

neromont


Модостроитель
Регистрация
12 Мар 2011
Сообщения
674
Благодарности
655
Баллы
245
GIL_Values тебе ничего не даст.
 

nameluxor

Участник форума
Регистрация
19 Янв 2019
Сообщения
13
Благодарности
2
Баллы
100
Я даже пробовал давать ему свежезаполненную гильдию - GIL_EMPTY_X, скопировал все поля в instance GIL_VALUES(C_GILVALUES) из полей кровавой мухи. По идее должно работать, но эффекта никакого.
Пост автоматически объединён:

GIL_Values тебе ничего не даст.
Подскажите, что тогда надо сделать чтобы оно работало?
 

neromont


Модостроитель
Регистрация
12 Мар 2011
Сообщения
674
Благодарности
655
Баллы
245
Вот за что отвечают свойства Gil_Values

Daedalus:
class C_GilValues
{
    var int     Water_Depth_Knee    [GIL_MAX];  // Глубина воды до колена
    var int     Water_Depth_Chest   [GIL_MAX];  // Глубина воды до груди
    var int     JumpUp_Height       [GIL_MAX];  // Высота высокого прыжка
//  var int     JumpUp_Force        [GIL_MAX];
    var int     Swim_Time           [GIL_MAX];  // Время плавания по воде.
    var int     Dive_Time           [GIL_MAX];  // Время пребывания под водой
    var int     Step_Height         [GIL_MAX];  // Высота шага
    var int     JumpLow_Height      [GIL_MAX];  // Высота низкого прыжка.
    var int     JumpMid_Height      [GIL_MAX];  // Высота среднего прыжка
    var int     Slide_Angle         [GIL_MAX];  // Угол начала скольжения персонажа по наклонной поверхности.
    var int     Slide_Angle2        [GIL_MAX];  // Угол при котором Npc отталкивает от наклонной поверхности.
    var int     Disable_AutoRoll    [GIL_MAX];  // Отключить автоматический наклон Npc при поворотах
    var int     Surface_Align       [GIL_MAX];  // Выравнивание Npc относительно поверхности по оси Z.
    var int     Climb_Heading_Angle [GIL_MAX];  // Угол взбирания на высокие уступы.
    var int     Climb_Horiz_Angle   [GIL_MAX];  // Угол взбирания на средние уступы.
    var int     Climb_Ground_Angle  [GIL_MAX];  // Угол взбирания на мелкие уступы.
    var int     Fight_Range_Base    [GIL_MAX];  // Базовое расстояние на котором Npc начинают сражаться.
    var int     Fight_Range_Fist    [GIL_MAX];  // Расстояние необходимое для выполнения атаки в режиме ближнего боя.
    var int     Fight_Range_G       [GIL_MAX];  // Расстояние необходимое для выполнения сильной атаки с оружием ближнего боя.
    var int     Fight_Range_1HS     [GIL_MAX];  // Расстояние сражения одноручным мечом.
    var int     Fight_Range_1HA     [GIL_MAX];  // Расстояние сражения одноручным топором.
    var int     Fight_Range_2HS     [GIL_MAX];  // Расстояние сражения двуручным мечом.
    var int     Fight_Range_2HA     [GIL_MAX];  // Расстояние сражения двуручным топором.
    var int     FallDown_Height     [GIL_MAX];  // Высота падения без повреждения
    var int     FallDown_Damage     [GIL_MAX];  // Повреждение от падения с высоты
    var int     Blood_Disabled      [GIL_MAX];  // Отключение режима крови.
    var int     Blood_Max_Distance  [GIL_MAX];  // Максимальный радиус разбрызгивания крови.
    var int     Blood_Amount        [GIL_MAX];  // Размер кровавых пятен.
    var int     Blood_Flow          [GIL_MAX];  // Медленное кровотечение.
    var string  Blood_Emitter       [GIL_MAX];  // Эмиттер системы частиц с эффектом брызгов крови.
    var string  Blood_Texture       [GIL_MAX];  // Текстура крови.
    var int     Turn_Speed          [GIL_MAX];  // Скорость разворота Npc во время ближнего боя.
};
 

neromont


Модостроитель
Регистрация
12 Мар 2011
Сообщения
674
Благодарности
655
Баллы
245
Если нужен летающий Npc (без возможности улететь в небо) - это вопрос создания новой анимации.
Если нужен летающий Npc который будет летать куда заблагорассудится - это вопрос Union.
 

nameluxor

Участник форума
Регистрация
19 Янв 2019
Сообщения
13
Благодарности
2
Баллы
100
Вот за что отвечают свойства Gil_Values

Daedalus:
class C_GilValues
{
    var int     Water_Depth_Knee    [GIL_MAX];  // Глубина воды до колена
    var int     Water_Depth_Chest   [GIL_MAX];  // Глубина воды до груди
    var int     JumpUp_Height       [GIL_MAX];  // Высота высокого прыжка
//  var int     JumpUp_Force        [GIL_MAX];
    var int     Swim_Time           [GIL_MAX];  // Время плавания по воде.
    var int     Dive_Time           [GIL_MAX];  // Время пребывания под водой
    var int     Step_Height         [GIL_MAX];  // Высота шага
    var int     JumpLow_Height      [GIL_MAX];  // Высота низкого прыжка.
    var int     JumpMid_Height      [GIL_MAX];  // Высота среднего прыжка
    var int     Slide_Angle         [GIL_MAX];  // Угол начала скольжения персонажа по наклонной поверхности.
    var int     Slide_Angle2        [GIL_MAX];  // Угол при котором Npc отталкивает от наклонной поверхности.
    var int     Disable_AutoRoll    [GIL_MAX];  // Отключить автоматический наклон Npc при поворотах
    var int     Surface_Align       [GIL_MAX];  // Выравнивание Npc относительно поверхности по оси Z.
    var int     Climb_Heading_Angle [GIL_MAX];  // Угол взбирания на высокие уступы.
    var int     Climb_Horiz_Angle   [GIL_MAX];  // Угол взбирания на средние уступы.
    var int     Climb_Ground_Angle  [GIL_MAX];  // Угол взбирания на мелкие уступы.
    var int     Fight_Range_Base    [GIL_MAX];  // Базовое расстояние на котором Npc начинают сражаться.
    var int     Fight_Range_Fist    [GIL_MAX];  // Расстояние необходимое для выполнения атаки в режиме ближнего боя.
    var int     Fight_Range_G       [GIL_MAX];  // Расстояние необходимое для выполнения сильной атаки с оружием ближнего боя.
    var int     Fight_Range_1HS     [GIL_MAX];  // Расстояние сражения одноручным мечом.
    var int     Fight_Range_1HA     [GIL_MAX];  // Расстояние сражения одноручным топором.
    var int     Fight_Range_2HS     [GIL_MAX];  // Расстояние сражения двуручным мечом.
    var int     Fight_Range_2HA     [GIL_MAX];  // Расстояние сражения двуручным топором.
    var int     FallDown_Height     [GIL_MAX];  // Высота падения без повреждения
    var int     FallDown_Damage     [GIL_MAX];  // Повреждение от падения с высоты
    var int     Blood_Disabled      [GIL_MAX];  // Отключение режима крови.
    var int     Blood_Max_Distance  [GIL_MAX];  // Максимальный радиус разбрызгивания крови.
    var int     Blood_Amount        [GIL_MAX];  // Размер кровавых пятен.
    var int     Blood_Flow          [GIL_MAX];  // Медленное кровотечение.
    var string  Blood_Emitter       [GIL_MAX];  // Эмиттер системы частиц с эффектом брызгов крови.
    var string  Blood_Texture       [GIL_MAX];  // Текстура крови.
    var int     Turn_Speed          [GIL_MAX];  // Скорость разворота Npc во время ближнего боя.
};
Я вроде именно с этим и химичил. Пойду попробую еще раз.
 

nameluxor

Участник форума
Регистрация
19 Янв 2019
Сообщения
13
Благодарности
2
Баллы
100
Если нужен летающий Npc (без возможности улететь в небо) - это вопрос создания новой анимации.
Если нужен летающий Npc который будет летать куда заблагорассудится - это вопрос Union.
Это я понимаю, но это все не требуется. Ситуация типичная, берем wisp_detectora и меняем ему гильдию на любую не-летающую, в результате он перестает функционировать. Меняю его ги на GIL_DEMON и он опять работает. И никак не могу понять в чем прикол.
 

neromont


Модостроитель
Регистрация
12 Мар 2011
Сообщения
674
Благодарности
655
Баллы
245
Меняешь константы монстров местами, меняешь все привязанные к монстрам функции и т. д.
 

MaGoth

★★★★★★★★★★★
Администратор
Регистрация
7 Янв 2003
Сообщения
19.371
Благодарности
7.802
Баллы
995
Хелп ми плиз. Столкнулся со странной проблемой: у каких-то гильдий есть инвентарь, а у каких-то нет. Похожая ситуация с летучими гильдиями, я сначала подумал что за полет у гильдии отвечает какое-то поле в instance GIL_VALUES(C_GILVALUES), но выяснилось что нет. С чем связаны наличие инвентаря и полет у нпс по скриптам непонятно. Вообще, можно ли тасовать константы ги местами, например: в стандартной г2нв гильдия у демона 43 (GIL_DEMON = 43), а у мухи кровавой 25. Предположим, махну я их местами, то есть GIL_DEMON = 25, а GIL_BLOODFLY = 43. Есть ли какие-либо не очевидные механики связанные с этим?
в сех нпс есть параметр не помню его название депт какой-то, он в другой таблице прописывается вот в зависимости от него и будет живность летать плавать или еще что, но он связан с анимой напрямую, те чтобы нормально добавить летуна как в игре мухи гарпии и прочии надо анимацю в максе делать аналогичную для него..
В туторе Вама по скриптам почитай все что касается параметров НПС их констант и прочего..
 

N1kX


Модостроитель
Регистрация
13 Ноя 2009
Сообщения
5.843
Благодарности
5.267
Баллы
910
Я так понял, что в Sfx.dat эти константы и соответственно звуки воспроизводятся из движка
Daedalus:
const string CS_MH = "FL LE ME";
const string CS_MA = "FI JA TA";
const string CS_IH = "WO ST ME LE CL GL";
const string CS_IA = "WO ST ME LE CL GL";
const string CS_OH = "WO ST ME LE CL GL";
const string CS_HM = "FL LE ME";
const string CS_AM = "WO ST ME FL CL GL";
const string CS_HI = "WO ST ME LE CL GL";
const string CS_AI = "WO ST ME LE CL GL";
const string CS_HO = "WO ST ME LE CL GL";
const string CS_AO = "WO ST ME LE CL GL";
const string CS_HL = "WO ST ME SA EA WA";
const string CS_AL = "UD ME ST WO EA WA";
Звуки похоже на удары об что-либо - об дерево, об металл и что-то еще. Причем, большая часть из них даже не описана в sfx.dat
Есть неиспользованные звуки
CS_MAM_FL_FL_01.wav
CS_MAM_FL_FL_02.wav
CS_MAM_FL_FL_03.wav

CS_MAM_FI_FL_01.wav
CS_MAM_FI_FL_02.wav
CS_MAM_FI_FL_03.wav

CS_IHL_ME_ST.wav
CS_IHL_ME_ME.wav
CS_IHL_FL_UD.wav

CS_IAL_UD_WO_01.wav
CS_IAL_UD_WA_01.wav
CS_IAL_UD_UD_01.wav
CS_IAL_UD_ME_01.wav

CS_IAL_ME_WO_01.wav

CS_IAI_ME_ME_01.wav
CS_IAI_ME_ME_02.wav
CS_IAI_ME_ME_03.wav
CS_IAI_ME_ME_04.wav
CS_IAI_ME_ME_05.wav
CS_IAI_ME_ME_06.wav
CS_IAI_ME_ME_07.wav
CS_IAI_ME_ME_08.wav
CS_IAI_ME_ME_09.wav

Они могут быть задействованы или есть ограничение?
 
Сверху Снизу