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

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

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

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

N1kX


Модостроитель
Регистрация
13 Ноя 2009
Сообщения
6.176
Благодарности
5.697
Баллы
910
Информация о предметах у других NPC находится в сохранении локации (например ARCHOLOS_MAINLAND.SAV).
Эту информация ты просто так не посмотришь, пока не сохранишь игру в открытом виде.

Systempack.ini
SaveDATinASCII = 1
SaveGameToASCII = 1
 

Scarecrow

Участник форума
Регистрация
11 Авг 2014
Сообщения
163
Благодарности
85
Баллы
235
Подскажите пожалуйста по поводу музыки в готане. Из-за чего композиции, которые ты сделал сам, накладываются друг на друга и воспроизводятся вместе? Из-за чего это происходит и как это можно исправить? Как помню, в В2.0 такое тоже было, особенно на плато древних.
 

Vlad_Torop

Участник форума
Регистрация
2 Май 2014
Сообщения
873
Благодарности
501
Баллы
245
Привет.
Возникла непонятная проблема.
Работаю над модом,все запускается,сохранки грузятся.Но,стоит внести изменения в скриптах(как успел подметить при добавлении новых диалогов,или/и манипуляции с переменными),и сборке нового .mod файла,старые сохранки виснут,и напрочь отказываются грузиться.
Доступна только новая игра.И при новой игре,новые сохранки норм грузятся.
Сел за мод после долгого перерыва,поначалу все шло норм,а пару дней назад ни с чего начал ловить этот глюк.Что могло подломиться?
 

N1kX


Модостроитель
Регистрация
13 Ноя 2009
Сообщения
6.176
Благодарности
5.697
Баллы
910
Новые диалоги всегда требуют новую игру (Без новой игры возможно только с Union 1.0m или старой версии Юнион и плагина zParserExtender)
С переменными тоже самое (Без новой игры возможно только с Union 1.0m или старой версии Юнион и плагина zParserExtender)
 

Vlad_Torop

Участник форума
Регистрация
2 Май 2014
Сообщения
873
Благодарности
501
Баллы
245
Новые диалоги всегда требуют новую игру (Без новой игры возможно только с Union 1.0m или старой версии Юнион и плагина zParserExtender)
С переменными тоже самое (Без новой игры возможно только с Union 1.0m или старой версии Юнион и плагина zParserExtender)
Без новой игры они не отображались,и не учитывались,согласен.Но,при этом зависаний при загрузке старых сохр не было никогда.
 

Gratt


Модостроитель
Регистрация
14 Ноя 2014
Сообщения
3.301
Благодарности
4.641
Баллы
625
Потому что я уже писал почему. При попытке загрузить из сейва несуществующий символ высока вероятность словить зависание (программа уйдет в бесконечный цикл поиска). Больше несуществующих символов - выше вероятность. Если до этого у тебя все было ок, то ты крайне везучий человек.
Экстендер исправляет это.
 

Oxbow

Участник форума
Регистрация
22 Дек 2017
Сообщения
266
Благодарности
33
Баллы
200
Добрый день. Уже наверное третий раз начинаю работу над своим модом. Полностью обнулился после предыдущих попыток.
Можете подсказать последовательность действий с нуля.
1. У меня установлена чистая стимовская версия Готики 2 Голд с руссификатором.
2. Я скачал и пытаюсь установить на нее g2mdk, он не видит мою Готику 2.
3. Запускаю в Стиме восстановление файлов для Готики 2.
4. Устанавливаю g2mdk и патч.
5. Замечаю, что уменя уже стоят G2VDFS, Goman и Spacer.
6. Замечаю, что скрипты в папке CONTENT с комментариями и диалогами на немецком языке (видимо от g2mdk). Грущу, иду жаловаться сюда.
...
...
...
7. Радостно делаю тестовый мод используя туториал (https://worldofplayers.ru/threads/36473/) на этом сайте.

Кто-нибудь может подсказать как перейти к этапу 7. Ну, там где достать скрипты оригинала с диалогами и надписями на русском. И что-то еще что я пропустил.
 

MEG@VOLT

★★★★★★★★★
ТехАдмин
Регистрация
24 Мар 2006
Сообщения
9.901
Благодарности
6.777
Баллы
1.625
Oxbow, Далеко ходить не надо. В том же разделе, где ты показал ссылку. Есть тема в не важных.
И в ней есть сообщение:
И в этом сообщении тебе нужны первые три ссылки.
 

D36


Модостроитель
Регистрация
3 Дек 2014
Сообщения
2.224
Благодарности
3.454
Баллы
485
В современных реалиях для создания модов g2mdk не нужен вообще. Возьми скриптовую болванку оригинала (в посте выше) или сразу неофициального обновления и редактируй и компилируй их с помощью Gothic Sourcer.
 

Oxbow

Участник форума
Регистрация
22 Дек 2017
Сообщения
266
Благодарности
33
Баллы
200
Подскажите как понимать:
"ВНИМАНИЕ!!! Файл Spell_NewSpell.d нужно ставить ПЕРЕД файлом Spell_ProcessMana.d ТК в нем объявляется Spell_Logic_NewSpell" в туториале (создание заклинания): https://worldofplayers.ru/threads/36466/
Потому что при компиляции ругается:
"AI\Magic\Spell_ProcessMana.d(320): Ошибка: Неопределенная функция:SPELL_LOGIC_GREENBOLT"

И еще нигде не указано, что для компиляции декомпилированных скриптов нужно добавлять в решение проект gothic.src, пришлось самому догадаться, или не нужно?

if(activeSpell == SPL_Greenbolt)
{
return Spell_Logic_Greenbolt(manaInvested);
};

const int SPL_Cost_Greenbolt = 7; // стоимость заклинания
const int SPL_Damage_Greenbolt = 35; //Повреждение от заклинания

instance Spell_Greenbolt(C_Spell_Proto) // объявление заклинания с инициализацией
{
time_per_mana = 0;
damage_per_level = SPL_Damage_Greenbolt;
damagetype = DAM_MAGIC;
};


func int (var int manaInvested) // Функция инвестирования маны.
{
if(Npc_GetActiveSpellIsScroll(self) && (self.attribute[ATR_MANA] >= SPL_Cost_Scroll))
{
return SPL_SENDCAST; // старт заклинания
}
else if(self.attribute[ATR_MANA] >= SPL_Cost_Greenbolt) // иначе, если руна и есть требуемое кол-во маны
{
return SPL_SENDCAST; // старт заклинания
}
else // мало маны
{
return SPL_SENDSTOP; // отмена заклинания
};
};

func void Spell_Cast_Greenbolt() // Вызов заклинания
{
if(Npc_GetActiveSpellIsScroll(self)) // если свиток
{
self.attribute[ATR_MANA] = self.attribute[ATR_MANA] - SPL_Cost_Scroll; // уменьшение маны на стоимость свитков
}
else // руна
{
self.attribute[ATR_MANA] = self.attribute[ATR_MANA] - SPL_Cost_Greenbolt; // уменьшение маны на фактическую стоимость заклинания
};
self.aivar[AIV_SelectSpell] += 1; // изменить случайное число выбора заклинаний
};
 

ElderGamer


Модостроитель
Регистрация
16 Апр 2008
Сообщения
4.410
Благодарности
3.241
Баллы
525
"AI\Magic\Spell_ProcessMana.d(320): Ошибка: Неопределенная функция:SPELL_LOGIC_GREENBOLT"
На момент компиляции этого файла скрипта движок ещё не прочитал и не скомпилировал файл, где прописана функция Spell_Logic_Greenbolt. В файле gothic.src как раз и перечислена последовательность файлов, которые должен обрабатывать компилятор. Файлы нужно располагать в такой последовательности, чтобы константы, переменные и функции объявлялись раньше, чем они будут использованы в скриптах.
 

MEG@VOLT

★★★★★★★★★
ТехАдмин
Регистрация
24 Мар 2006
Сообщения
9.901
Благодарности
6.777
Баллы
1.625
Oxbow, Ну смотри,
ты в Spell_ProcessMana пытаешься обратиться к функции Spell_Logic_Greenbolt
А в файле Spell_Greenbolt, который перед Spell_ProcessMana, функции Spell_Logic_Greenbolt не существует. Вот оно и ругается
 

Oxbow

Участник форума
Регистрация
22 Дек 2017
Сообщения
266
Благодарности
33
Баллы
200
На момент компиляции этого файла скрипта движок ещё не прочитал и не скомпилировал файл, где прописана функция Spell_Logic_Greenbolt. В файле gothic.src как раз и перечислена последовательность файлов, которые должен обрабатывать компилятор. Файлы нужно располагать в такой последовательности, чтобы константы, переменные и функции объявлялись раньше, чем они будут использованы в скриптах.
А поставить нужный мне файл вперед?
Oxbow, Ну смотри,
ты в Spell_ProcessMana пытаешься обратиться к функции Spell_Logic_Greenbolt
А в файле Spell_Greenbolt, который перед Spell_ProcessMana, функции Spell_Logic_Greenbolt не существует. Вот оно и ругается
Ну, как нет? А это:
instance Spell_Greenbolt(C_Spell_Proto) // объявление заклинания с инициализацией
{
time_per_mana = 0;
damage_per_level = SPL_Damage_Greenbolt;
damagetype = DAM_MAGIC;
};
 

ElderGamer


Модостроитель
Регистрация
16 Апр 2008
Сообщения
4.410
Благодарности
3.241
Баллы
525
А поставить нужный мне файл вперед?
Расшифровываю:
Файлы нужно располагать в такой последовательности, чтобы константы, переменные и функции объявлялись раньше, чем они будут использованы в скриптах.
Файл скрипта, в котором объявлена функция, в файле gothic.src должен располагаться выше, чем файлы скриптов, в которых эта функция используется.
 

Oxbow

Участник форума
Регистрация
22 Дек 2017
Сообщения
266
Благодарности
33
Баллы
200
а где здесь:
Spell_Logic_Greenbolt
?
Ну, да я олень, конечно. В какой-то момент случайно удалил.
const int SPL_Cost_Greenbolt = 7; // стоимость заклинания
const int SPL_Damage_Greenbolt = 35; //Повреждение от заклинания

instance Spell_Greenbolt(C_Spell_Proto) // объявление заклинания с инициализацией
{
time_per_mana = 0;
damage_per_level = SPL_Damage_Greenbolt;
damagetype = DAM_MAGIC;
};


func int Spell_Logic_Greenbolt (var int manaInvested) // Функция инвестирования маны.
{
if(Npc_GetActiveSpellIsScroll(self) && (self.attribute[ATR_MANA] >= SPL_Cost_Scroll))
{
return SPL_SENDCAST; // старт заклинания
}
else if(self.attribute[ATR_MANA] >= SPL_Cost_Greenbolt) // иначе, если руна и есть требуемое кол-во маны
{
return SPL_SENDCAST; // старт заклинания
}
else // мало маны
{
return SPL_SENDSTOP; // отмена заклинания
};
};

func void Spell_Cast_Greenbolt() // Вызов заклинания
{
if(Npc_GetActiveSpellIsScroll(self)) // если свиток
{
self.attribute[ATR_MANA] = self.attribute[ATR_MANA] - SPL_Cost_Scroll; // уменьшение маны на стоимость свитков
}
else // руна
{
self.attribute[ATR_MANA] = self.attribute[ATR_MANA] - SPL_Cost_Greenbolt; // уменьшение маны на фактическую стоимость заклинания
};
self.aivar[AIV_SelectSpell] += 1; // изменить случайное число выбора заклинаний
};

Поправил, но он все равно выдает ошибку. Видимо все таки дело в том, что он просматривает Spell_ProcessMana раньше Spell_greenbolt
 

MEG@VOLT

★★★★★★★★★
ТехАдмин
Регистрация
24 Мар 2006
Сообщения
9.901
Благодарности
6.777
Баллы
1.625

MEG@VOLT

★★★★★★★★★
ТехАдмин
Регистрация
24 Мар 2006
Сообщения
9.901
Благодарности
6.777
Баллы
1.625
Oxbow, кстати, пользуйся вот этой кнопкой, для вставки кода:
1664974145188.png
 

Oxbow

Участник форума
Регистрация
22 Дек 2017
Сообщения
266
Благодарности
33
Баллы
200
Вооооот)
А теперь смотри, что тебе ElderGamer написал))
Если б я понимал, как это сделать. Я уже куда только по директориям проекта gothic не пихал этот greenbolt, что Сорсер теперь мне даже не дает его вставить. Говорит, что уже есть такой файл (а его нет). А каких либо настроек обработки файлов я не нашел. Хз, что делать.
 

ElderGamer


Модостроитель
Регистрация
16 Апр 2008
Сообщения
4.410
Благодарности
3.241
Баллы
525
Говорит, что уже есть такой файл (а его нет).
Без этого файла Соурсер не покажет тебе твой проект. Исчи! :)

Файл gothic.src можно редактировать текстовым редактором. Например, Notepad++. При создании файла скрипта в Соурсере запрашивается место, куда этот файл помещается внутри gothic.src.
 
Сверху Снизу