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

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

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

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

ElderGamer


Модостроитель
Регистрация
16 Апр 2008
Сообщения
4.672
Благодарности
3.444
Баллы
525
Не, это неправильно. Правильную схему посмотри у сундука или наковальни, например. Там должны присутствовать анимки T_XXX_Stand_2_S0, S_XXX_S0, T_XXX_S0_2_S1, S_XXX_S1, T_XXX_S1_2_S0 и T_XXX_S0_2_Stand.
 

Den4ik

Участник форума
Регистрация
14 Ноя 2020
Сообщения
72
Благодарности
3
Баллы
155
Понял, буду смотреть
Не, это неправильно. Правильную схему посмотри у сундука или наковальни, например. Там должны присутствовать анимки T_XXX_Stand_2_S0, S_XXX_S0, T_XXX_S0_2_S1, S_XXX_S1, T_XXX_S1_2_S0 и T_XXX_S0_2_Stand.
Пост автоматически объединён:

Не, это неправильно. Правильную схему посмотри у сундука или наковальни, например. Там должны присутствовать анимки T_XXX_Stand_2_S0, S_XXX_S0, T_XXX_S0_2_S1, S_XXX_S1, T_XXX_S1_2_S0 и T_XXX_S0_2_Stand.
Да, в этом и была причина. Большое вам спасибо! А то 2 дня убил в поисках проблемы :)
 
Последнее редактирование:

GeoDragon

Участник форума
Регистрация
15 Сен 2021
Сообщения
2
Благодарности
0
Баллы
95
What a horror. The real solution is one line in the .d file in system/autorun, for both G1 and G2:
Daedalus:
const int LP_PER_LEVEL = 5;
It is possible to change also the starting life points from 40HP to something else by a line code, if yes which one?
 

D36


Модостроитель
Регистрация
3 Дек 2014
Сообщения
2.446
Благодарности
3.916
Баллы
565
It is possible to change also the starting life points from 40HP to something else by a line code, if yes which one?
Daedalus:
test(PC_Hero)
{
    instance PC_Hero(Npc_Default)
    {
        PC_Hero_Old();
        attribute[1] = 666; //ATR_HITPOINTS_MAX
        attribute[0] = 666; //ATR_HITPOINTS
    };
};
 

Вложения

  • HP.d
    163 байт · Просмотры: 32

STARK

Участник форума
Регистрация
20 Янв 2011
Сообщения
641
Благодарности
160
Баллы
220
Daedalus:
test(PC_Hero)
{
    instance PC_Hero(Npc_Default)
    {
        PC_Hero_Old();
        attribute[1] = 666; //ATR_HITPOINTS_MAX
        attribute[0] = 666; //ATR_HITPOINTS
    };
};
Можно поподробнее, как это работает?
1) test(PC_Hero)
test - это специальное (обязательное) имя функции, или можно создавать с любым именем?
Для чего именно PC_Hero в качестве аргумента?
2) instance PC_Hero(Npc_Default)
Я так понимаю здесь происходит переопределение шаблона PC_Hero?
3) PC_Hero_Old();
Я так понимаю эта строка вызывает все содержимое оригинальной instance PC_Hero(Npc_Default)?
Почему именно такая запись, без аргумента и с приставкой _Old?
 

D36


Модостроитель
Регистрация
3 Дек 2014
Сообщения
2.446
Благодарности
3.916
Баллы
565
1) test(PC_Hero)
test - это специальное (обязательное) имя функции, или можно создавать с любым именем?
Для чего именно PC_Hero в качестве аргумента?
test(X) проверяет, существует ли X (может быть объектом, переменной или константой) и останавливает выполнение, если не существует.
Можно не использовать и ничего не проверять, но я всегда проверяю (причина далее по тексту).

2) instance PC_Hero(Npc_Default)
Я так понимаю здесь происходит переопределение шаблона PC_Hero?
Скорее, создание нового. Если такой объект уже существует в скриптах, то объект из файла .d его переопределит (заменит).

3) PC_Hero_Old();
Я так понимаю эта строка вызывает все содержимое оригинальной instance PC_Hero(Npc_Default)?
Да, и таким образом создает копию. Затем можно точечно что-то поменять: в данном случае attribute 1 и 0.
Если X не существует, то вызов X_Old приведет к вылету.
Если не использовать X_Old, то X будет пустым (или только с теми свойствами, которые будут указаны).

Почему именно такая запись, без аргумента и с приставкой _Old?
Потому что такой синтаксис.

Примеры:
Daedalus:
//оригинальный PC_Hero, у которого изменено имя
instance PC_Hero(Npc_Default)
{
    PC_Hero_Old();
    name[0] = "Вася";
};

//пустой PC_Hero, у которого будет только имя Вася
instance PC_Hero(Npc_Default)
{
    name[0] = "Вася";
};

//PC_Hero со всеми свойствами Бладвина
instance PC_Hero(Npc_Default)
{
    BDT_1085_Addon_Bloodwyn();
};

//вылет, потому что BDT_666_Vasya не существует
instance PC_Hero(Npc_Default)
{
    BDT_666_Vasya();
};

//вылет, потому что PC_MyCoolHero не существует
instance PC_MyCoolHero(Npc_Default)
{
    PC_MyCoolHero_Old();
    name[0] = "Вася";
};
 
Последнее редактирование:

STARK

Участник форума
Регистрация
20 Янв 2011
Сообщения
641
Благодарности
160
Баллы
220
D36, Спасибо за развернутый ответ.
Хотел уточнить: PC_Hero, как и все, что начинается с приставки instance, - это все-же объект?
Вопрос от того, что в игре существует множество объектов с одинаковой инстанцией. Например Волк, или Какая-то-трава.
Так что конструкцию instance воспринимал как описание класса, но не сам объект.
 

D36


Модостроитель
Регистрация
3 Дек 2014
Сообщения
2.446
Благодарности
3.916
Баллы
565
Вопрос от того, что в игре существует множество объектов с одинаковой инстанцией. Например Волк, или Какая-то-трава.
Ну и пусть. Все они являются уникальными объектами.

Daedalus:
class C_NPC
{
    //класс
};

prototype Npc_Default(C_NPC)
{
    //прототип класса C_NPC (ещё не объект)
};

instance PC_Hero(Npc_Default)
{
    //объект класса C_NPC со свойствами прототипа
};

Daedalus:
class C_ITEM
{
    //класс
};

instance ItMi_Flask(C_ITEM)
{
    //объект класса C_ITEM
};
 
Последнее редактирование:

Gratt


Модостроитель
Регистрация
14 Ноя 2014
Сообщения
3.447
Благодарности
4.813
Баллы
625
PC_Hero, как и все, что начинается с приставки instance, - это все-же объект?
Путаете друг друга. Слово "объект" тут просто часть контекста. В данном случае речь про структуру текста скрипта, где под объектом она понимает все, что может иметь собственное имя (уникальный идентификатор). Это: const, var, func, prototype, instance, class.
К тому, что ты видишь и можешь "пощупать" в игре (волки травы), это не имеет никакого отношения. Это тоже объекты, но часть игровой системы, например.
 

N1kX

Участник форума
Регистрация
13 Ноя 2009
Сообщения
6.624
Благодарности
6.238
Баллы
940
Я хз почему меня вообще этой хренью тревожат
Чел прислал фотку ошибки ГС
5433905744756995702.jpg

И пишет, что возможно ли эта ошибка при превышении числа какого-то переменных...
Почему меня это спрашивают?

Ну и ответ жду тогда.

Пишет ещё, что как удалил часть переменных, всё заработало... Я ж думаю, что просто баг гс и надо было ребут его
 

LikerGothic


Модостроитель
Регистрация
11 Фев 2017
Сообщения
1.983
Благодарности
3.185
Баллы
495
Есть баг с частицами (проявляется и на dx7, и на dx11), он непотяный. Работает на больших (по размеру) эффектах.

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

Пример: эффект FOCUS_HIGHLIGHT2.pfx в затопленной башне ксардаса (Г2)
1) Частицы летают медленно в разные стороны (правильная работа)
norm.jpg


2) перезагрузил - частицы летят куда-то в определенную сторону очень быстро, за ними видны следы (это неправильная работа PFX)
scre2.jpg


3) перезагрузил еще раз - частицы летят уже в другую сторону (это тоже неправильно)

scre3.jpg


Прикладываю код PFX (я его не менял)
pfx.jpg


Патч zEmitParticlesInstantly.patch использую, также zLargeParticlesLimit = 100000

Slavemaster N1kX Gratt Что-то слышали об этом баге? Связан ли он с FPS?
 
Последнее редактирование:

LikerGothic


Модостроитель
Регистрация
11 Фев 2017
Сообщения
1.983
Благодарности
3.185
Баллы
495
Пошел разбираться, по идее это связано с задержкой таймера/fps после загрузки.
 

Gratt


Модостроитель
Регистрация
14 Ноя 2014
Сообщения
3.447
Благодарности
4.813
Баллы
625
Я только слышал от ElderGamer, что если частица эффекта вылетает в том же кадре, в котором был порожден pfx, то она летит куда-то вдоль одной оси. Не разбирался еще.
Чем ниже fps, тем проще воспроизвести. В твоем случае похоже на то, как частицы нагенерились в момент задержки входа в мир.
 

LikerGothic


Модостроитель
Регистрация
11 Фев 2017
Сообщения
1.983
Благодарности
3.185
Баллы
495
Gratt, пока непонятно, локальный таймер у частиц нормальный, в районе 7-10 мс, но бага нет на 30 фпс, а на 60 и 150 фпс он есть...

Баг воспроизводится, если
0) Фпс 60 или выше. Я тестил на 30, 60, 140
1) сначала быть в одной локации
2) загрузить сейв в другой локации => эффект будет сломан (если дальше перезагружаться в локации, то эффект будет сломан)
3) В спейсере когад возникает баг, изменение velAvg ни на что не влияет, частицы двигаются как и двигались, а вот fly gravity влияет.. Забавно...
emitter->m_flockMode ???

Или же

Если изначально загрузиться (или перезагружаться) в "сломанной" локации, то бага нет (или же редкий).


***
За 3 часа я ничего не смог раскопать, вообще 0 понимая, зато баг 100% вопроизводится.
 
Последнее редактирование:

LikerGothic


Модостроитель
Регистрация
11 Фев 2017
Сообщения
1.983
Благодарности
3.185
Баллы
495
Все, я разобрался. Это ветер. (flockMode)
Он включается когда перезагружаешь другую локу.

Частицы начинают следовать за ним. Поэтому казалось, что частицы летят по оси.
Gratt

Просто сначала ветер не включен (он видимо от фпс зависит как-то).

То есть вырубить эффектам где не нужно.

Чувствую себя тупым.
 

Вложения

  • 1769012246911.png
    1769012246911.png
    4,5 MB · Просмотры: 114

dorumia

Участник форума
Регистрация
11 Июл 2020
Сообщения
20
Благодарности
1
Баллы
155
Hello, i have stupid question. If i get effect like on screen(rune on hand, where it should be pfx effect), where can be problem? VisualFXInst, PfxInstMagic or just spell script? I copy instance from G1 to test it.
Edit. Okay, i find a reason. That line in spell script was a problem. After disable it, every work as should.
targetCollectAlgo = TARGET_COLLECT_FOCUS;
 

Вложения

  • image.png
    image.png
    1,4 MB · Просмотры: 76
Последнее редактирование:

mr.Mayby

Участник форума
Регистрация
25 Янв 2026
Сообщения
48
Благодарности
2
Баллы
10
как в коде игры(например, мод Одиссея) найти и чем открыть для правки(edit) карты местности(локаций)?
 
Последнее редактирование:

mr.Mayby

Участник форума
Регистрация
25 Янв 2026
Сообщения
48
Благодарности
2
Баллы
10
как в коде игры(например, мод Одиссея) найти и чем открыть для правки(edit) карты местности(локаций)?
зашёл сюда и восхитился популярностью этого форума, шутка ли 563 страницы. Мой вопрос, похоже, слишком дилетантский.
 

MEG@VOLT

★★★★★★★★★
ТехАдмин
Регистрация
24 Мар 2006
Сообщения
10.738
Благодарности
7.457
Баллы
1.910
mr.Mayby, тебе надо именно этот вопрос задать в теме по читам. Т.к. к мордострою это косвенно относится.
А лучше в самой теме одисеи, там тебе быстрее ответят.
 
Сверху Снизу