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

    Чтобы получить возможность писать на форуме, оставьте сообщение в этой теме.
    Удачи!

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

hell9999

Участник форума
Регистрация
12 Апр 2008
Сообщения
2.049
Благодарности
1.169
Баллы
340
Пробовал с несколькими из NewWorld.
Ищу в том каталоге, куда пытался сохранить. Вот только, возможно, spacer сохраняет не слюбой каталог, а только в строго определенные?

Быстрое мелькание - не компилляция, поскольку появляется оно в момент попытки сохранения, а не во время компилляции.

Спейсер сохраняет в ту папку куда ему указывают, ему без разницы куда. С другими мирами те-же проблемы? а при открытии и пересохранении зена возникает подобное?
P.S: Компиляция, сохранение, хоть горшком назови, смысл от этого не изменится. Ну для точности пусть будет процесс сохранения зена.:)
 

kraw


Модостроитель
Регистрация
11 Окт 2005
Сообщения
2.095
Благодарности
871
Баллы
295
Компиляция, сохранение, хоть горшком назови, смысл от этого не изменится.

Да? А я привык считать, что это разные процессы. Да и в меню спейсера это разные пункты. Так вот - мелькает именно при выборе "сохранить zen"

В общем - не сохраняет. И никакой видимой диагностики нет.

Это при том, что после компилляции World локацию показывает (в спейсере)
 

Вариматас

Забанен
Регистрация
11 Апр 2011
Сообщения
175
Благодарности
1
Баллы
165
Дай лог из zSpy (последние 20 строк)
 

Jr13San


Модостроитель
Регистрация
1 Апр 2010
Сообщения
449
Благодарности
266
Баллы
230
Может тогда не стоит вообще лезть в скрипты? Есть еще масса увлекательных занятий: моделинг, текстуринг, спейсер.
Да не, здесь дело не в том, чтобы лезть или не лезть. Я думаю, что новичкам там в туторе делать нечего, т.к. не заложена ещё база. Я же говорю, что это справочник. Но попробовать поэкспериментировать над любыми значениями в декомпилированных скриптах можно - от этого больше пользы будет, нежели от чтения непонятных вещей.
Хз. Я просто не буду спорить на эту тему. Я выразил свои мысли. Пусть каждый сам для себя решает.

Мне лично со стороны всегда казалось, что скриптеров разного калибра как блох, в то время как по другим направлениям дефицит кадров.
Ну тут статистикой не интересовался, но знаю, что хорошие скриптеры вроде как нужны, но их никто не видит...
Ещё советую попробовать себя во всех областях творчества модостроительства(для новичков). Мб каждый себя где-то найдёт. Всё равно кому-то что-то нравится, кому-то не очень. А всё знать и уметь - это хорошо, но нужно проделать много работы над этим.
И ещё... советую не погружаться "сильно" в модостроительство, а то так и от реальной жизни уйти можно(всмысле увлечься своей идеей и т.п.):)

Почему-то,когда я хочу компилировать проект,выходит ошибка:
SRC файл,Gothic.src не найдён.
Потому что он не найден:)
Ищи его в папке своего проекта в GothicSourcer через проводник. Если нету, то хз. Заново создавай проект с новыми скриптами. Там в этом файле вроде как хранится древо всех скриптовых файлов.
Если надо скрипты, могу выслать, скажи только версию Готы.
 

Вложения

  • Save_3ds_To_Zen.jpg
    Save_3ds_To_Zen.jpg
    948,6 KB · Просмотры: 283

Fase

Участник форума
Регистрация
12 Янв 2011
Сообщения
208
Благодарности
3
Баллы
170
Почему-то,когда я хочу компилировать проект,выходит ошибка:
SRC файл,Gothic.src не найдён.
 

kraw


Модостроитель
Регистрация
11 Окт 2005
Сообщения
2.095
Благодарности
871
Баллы
295
Проблема со спейсером решена. Все дело было в том, что я открывал *.3ds не из дерева каталогов Готики 2.
 

Helgi

Участник форума
Регистрация
6 Мар 2011
Сообщения
12
Благодарности
0
Баллы
150
Ответьте пожалуйста как осуществляется запись в журнал? Они же разные бывают, после того как оказался в каком-либо месте, после старта новой игры, после диалога. Ничего не нашел по этому поводу
 

MaGoth

★★★★★★★★★★★
Администратор
Регистрация
7 Янв 2003
Сообщения
19.367
Благодарности
7.815
Баллы
995
Helgi, В своем проекте ГотикСоурсера смотри каталог:
..\Prjgothic\Story\Log_Entries
Там буду все файлы функций и констант по работе с журналом, в диалогах НПС оригинала игры смотри что и где из этого используется.
 

George_M

Участник форума
Регистрация
17 Дек 2010
Сообщения
692
Благодарности
18
Баллы
255
Решил поиграться с повреждениями от заклинаний в первой Готике, чтобы игру разнообразить. Не подскажете, где можно найти нормальное описание как их к атрибутам колдующего привязать? А то я пошел путем динамического изменения величины повреждения, дабы висело все на движке, но тогда возникает маленькая неприятность - изменения движком при старте заклинания не учитываются и идут в следующее чтение того же заклинания. Поэтому может возникнуть ситуация, когда непись нанесет повреждения исходя из параметров ГГ и наоборот. Можно, конечно, привязаться к ГГ и забить на неписей (кастеров все равно кот наплакал), но хотелось бы сделать по-человечески.
 

Jr13San


Модостроитель
Регистрация
1 Апр 2010
Сообщения
449
Благодарности
266
Баллы
230
А, ты типа хочешь сделать рандом повреждений?
Могу предположить, что можно было бы попробовать сменить константы на переменные.
Пример, есть константа:
const int SPL_Damage_Firebolt = 25;

Замени на:
var int SPL_Damage_Firebolt;
а в момент активного заклинания сгенерируй этому заклинанию рандомное повреждение, например так:
SPL_Damage_Firebolt = Hlp_Random(101);

Или сам подумай куда лучше вставить.
Мб сюда - Spell_Logic_Firebolt()
или сюда - Spell_Cast_Firebolt()


Теперь я тебя понял.
Я тоже заметил и кашу и прикол в том, что значение повреждения записыватся, а вот кто им стрельнёт - это уже дело случая.
А тебе наверное нужно привязать это значение так, чтобы определённый нпс наносил какие-то рандомные(заданные) повреждения?
Вот на этом конкретнее можешь описать ситуацию?
Примерно чтобы не все нпс наносили повреждения из константы, а как тогда?
Скорей всего ты хочешь поймать тот момент, когда НПС кастует и поменять значение повреждения...
Здесь наверное весь прикол в динамике присвоения значений. А что если написать несколько инстанций спеллов, если тебе это сильно нужно?

George_M, есть функция B_AssessDamage(). Попробуй в неё вставить дополнительную обработку урона. Т.е. если НПС1 попал в НПС2, то повреждения не меняем. А если наоборот, то:
НПС1.attribute[ATR_HITPOINTS] = attribute[ATR_HITPOINTS] - 50;

George_M,я помог бы тебе разобраться, но я не могу, т.к. я сильно занят другими делами и кое-как нахожу время, чтобы потестировать свои задумки.
+У тебя не безвыходная ситуация, т.е. есть за что зацепиться.
+Если долго что-то делать, то может получится, причём так, что сам не ожидаешь. Мб через месяц, мб через 2, а мб и каким-то вечером, но обязательно что-то получится.
Удачи.
 

George_M

Участник форума
Регистрация
17 Дек 2010
Сообщения
692
Благодарности
18
Баллы
255
Jr13San, твой способ даст результат на следующем чтении заклинании. Да и Spell_Cast_имязаклинания в первой Готике отсутствуют. Если бы хотелось сделать повреждение случайным, это бы проблемы не представляло - сдвиг на одно кастование роли не играет (да и любителей поперегружаться не у дел оставляет;), а вот как его привязать к параметрам персонажа?
Реально движок Готики осуществяет считывание параметров заклинания в следующих случаях (не считая загрузки): после окончания цикла заклинания (не важно, успешного или нет), при впихивании свитка/руны в слот, при убирании свитка/руны из руки в инвентарь, при доставании - не всегда, а только если цифрами и ГГ не совершает никаких действий в этот момент. И присваивание значения до двига не дойдет, пока он параметры не считает. Таким образом, установив параметры привязки к атрибутам кастующего сейчас, мы не можем гарантировать, что спел с таким повреждением не прочитает кто-то другой, а при перестрелке одинаковыми заклинаниями вообще каша получится. На это можно наплевать (я так и сделаю при необходимости), но только если не будет лучшего способа.

Jr13San, мне хотелось проверить, каким станет прохождение за мага, если к повреждения спелами использовать подход, аналогичный оружейному - ввести вероятность критического и увеличивать ее с обучением новым кругам магии или увеличивать повреждения в зависимости от достигнутого круга.
Теоретически, двиг должен все параметры забивать в какие-то свои переменные/масивы, имена/номера мест которых определяются id спела - не даром же требуется не только пронумеровать все заклинания, но и указать их количество. Вполне возможно, что зная эти внутренние названия можно менять эффективно значения не дожидаясь запроса от двига.
Есть конечно и совсем простой способ частично достигнуть желаемого мне эффекта - после закачки маны кидать кубики и при неудаче возвращать не SPL_SENDCAST, а SPL_SENDSTOP и сообщение, что заклинание не удалось, но это на крайний случай.
Несколько инстанций спелов не помогут - на руны цепляется один и выполнение висит на двиге. Я даже теоретически не представляю как тогда придется выкручиваться и переключаться на разные вариации без глобальной переделки всего и вся.

Jr13San, нету B_AssessDamage в первой Готике. Можно скозлить, конечно, из второй - я собирался что-то подобное сделать для других целей, ибо во Мрачных Тайнах которые я патчу, уже есть счетчик противников по типу и почетные звания, но бонуса они не дают;) Хотя, может он по другому называется? Несколько функций для расчета повреждений от заморозки и им подобных то есть.
С магией же надо пробовать - дополнительно вычитать хитпоинты без учета защиты не верно, а значит опять таки придется весь расчет повреждений от заклинаний делать чисто скриптовым, а на двиге оставить только определение самого факта попадания.
 

Helgi

Участник форума
Регистрация
6 Мар 2011
Сообщения
12
Благодарности
0
Баллы
150
Выдержка из статьи:
Теперь вставляем нпс в игру!

1. Открываем файл Gothic II\_work\Data\Scripts\Content\Story\StartUp.d Находим в нём строку

Wld_InsertNpc(BAU_950_Lobart,"NW_FARM1_OUT_01");
дописываем ниже

Wld_InsertNpc(NONE_1000_DEDROIT,"NW_FARM1_OUT_01");

В этом файле можно где угодно прописывать созданного непися или в строго определенных местах? Допустим я создал waypoint в области, где пещера через которую проход в миненталь в каком месте я должен прописывать непися и как это определить?
 

Мільтен

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


В этом файле можно где угодно прописывать созданного непися или в строго определенных местах? Допустим я создал waypoint в области, где пещера через которую проход в миненталь в каком месте я должен прописывать непися и как это определить?

Возьмем к примеру скрипт Старого Лагеря.

Код:
func void startup_global()
{

};

func void init_global()
{
    Game_InitGerman();
};

[COLOR=DarkRed]func void startup_OldCamp()
{
    Wld_InsertNpc(mil_222222_john,"JOHN");
};
[/COLOR]
func void init_sub_OldCamp()
{
};

func void init_OldCamp()
{

};

Вызывать неписей нужно в теле функции func void startup_OldCamp().

Код:
[COLOR=Black]Wld_InsertNpc(mil_222222_john,"JOHN");[/COLOR]

Где, mil_222222_john - инстанция непися, а "JOHN" - название вейпоинта, на который он будет добавлен. Желательно писаить название вейпоинты БОЛЬШЫМИ БУКВАМИ.
 

HeDeDe

Участник форума
Регистрация
17 Авг 2009
Сообщения
203
Благодарности
79
Баллы
180
Выдержка из статьи:


В этом файле можно где угодно прописывать созданного непися или в строго определенных местах? Допустим я создал waypoint в области, где пещера через которую проход в миненталь в каком месте я должен прописывать непися и как это определить?
На самом деле это не имеет значения. Можно прописывать в любой функции startup_, относящейся к данному миру.
 

MaGoth

★★★★★★★★★★★
Администратор
Регистрация
7 Янв 2003
Сообщения
19.367
Благодарности
7.815
Баллы
995
Дополню немного.
Желательно писаить название вейпоинты БОЛЬШЫМИ БУКВАМИ.
Не желательно, а ОБЯЗАТЕЛЬНО, и только на английском языке без пробелов и спец символов, это же касается написания их в Спейсере. Также, разрешен символ нижнего подчеркивания _
Это касается всех путевых точек, как вей так и фри...
 

Мільтен

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

Не желательно, а ОБЯЗАТЕЛЬНО, и только на английском языке без пробелов и спец символов, это же касается написания их в Спейсере. Также, разрешен символ нижнего подчеркивания _
Это касается всех путевых точек, как вей так и фри...

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

Beowulf

Участник форума
Регистрация
21 Ноя 2010
Сообщения
1.941
Благодарности
1.455
Баллы
465
Мільтен, всё же лучше везде писать БОЛЬШИМИ БУКВАМИ.
Я в начале в стартАпе тоже маленькие прописывал где-то, но веи не работали так как надо, написал большими-все веи заработали как надо*flowers*
 

Мільтен

Участник форума
Регистрация
27 Июн 2008
Сообщения
862
Благодарности
427
Баллы
265
Мільтен, всё же лучше везде писать БОЛЬШИМИ БУКВАМИ.
Я в начале в стартАпе тоже маленькие прописывал где-то, но веи не работали так как надо, написал большими-все веи заработали как надо*flowers*

Да я понимаю, что это лучше. Просто научный интерес, так сказать.
 

MaGoth

★★★★★★★★★★★
Администратор
Регистрация
7 Янв 2003
Сообщения
19.367
Благодарности
7.815
Баллы
995
Мільтен, Оригинальные скрипты компилились Спейсером, а он пропустит все что угодно. Здесь же, надо использовать только заглавные как у фреймов анимаций и прочего подобного. Иначе, будут баги и глюки. *flowers*
 
Сверху Снизу