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

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

Вопросы по скриптингу

MaGoth

★★★★★★★★★★★
Администратор
Регистрация
7 Янв 2003
Сообщения
19.367
Благодарности
7.815
Баллы
995
  • Первое сообщение
  • #1
Прежде чем задавать вопросы, ознакомьтесь с документацией..
1) Читать онлайн
2) Архив с офлайн-версией(chm) во вложении
 

Вложения

  • Vam_tutor.rar
    171,6 KB · Просмотры: 574
Последнее редактирование модератором:

GuruRegena

Участник форума
Регистрация
24 Мар 2017
Сообщения
16
Благодарности
0
Баллы
155
Прописано в скриптах, их и надо редактировать. Правда 62 версии исходников не выкладывали, и как ты собираешься их декомпилить непонятно
так я же могу декомпилировать свои файлы с помощью gothic sourser например? где конкретно может быть прописан механизм восстановления маны?
 

Gratt


Модостроитель
Регистрация
14 Ноя 2014
Сообщения
3.301
Благодарности
4.636
Баллы
625
так я же могу декомпилировать свои файлы с помощью gothic sourser например? где конкретно может быть прописан механизм восстановления маны?
тебе сорсер фигу покажет за декомпиляцию. она по определению то не точная, а учитывая что ты *декомпилишь* AST проект, то часть функционала будет убита в хлам.
 

GuruRegena

Участник форума
Регистрация
24 Мар 2017
Сообщения
16
Благодарности
0
Баллы
155
тебе сорсер фигу покажет за декомпиляцию. она по определению то не точная, а учитывая что ты *декомпилишь* AST проект, то часть функционала будет убита в хлам.
т.е. как то поправить ситуацию с маной сейчас не представляется возможным?? или все таки есть какой то вариант?
 

Gratt


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

GuruRegena

Участник форума
Регистрация
24 Мар 2017
Сообщения
16
Благодарности
0
Баллы
155
Да и такой вопрос еще: при изменении скриптов (следовательно и dat файлов) необходимо начинать новую игру, чтобы изменения вступили в силу, или я с загрузки уже увижу их?
 

Gratt


Модостроитель
Регистрация
14 Ноя 2014
Сообщения
3.301
Благодарности
4.636
Баллы
625
Не всегда. Если не затрагивает уже определенные исходные данные, можно спокойно обойтись без нг. Например переписать логику функции ни на что не повлияет
 

Trazege

Участник форума
Регистрация
20 Фев 2008
Сообщения
1.760
Благодарности
1.394
Баллы
340
Гота не видит новые диалоги...если они в наличии, то да новая игра. Есть еще пара моментов, когда стоит начинать новую игру. Ну и конечно миры. Тут 100% НГ.
 

MaGoth

★★★★★★★★★★★
Администратор
Регистрация
7 Янв 2003
Сообщения
19.367
Благодарности
7.815
Баллы
995
Не всегда. Если не затрагивает уже определенные исходные данные, можно спокойно обойтись без нг. Например переписать логику функции ни на что не повлияет
Это да, но в модах подобное очень редкое явление, а вот добавление новых переменных, констант, Непесей и прочего - туча.. и здесь без НИ ни как.. Если только заранее наперед расписывать такие болванки и потом их править, но это надо просчитывать весь проект скриптов на много шагов вперед. Такое на моей памяти только один скриптолог делал за все время моего модостроя.. ::)

Зы, Естественно, здесь и выше я писал только о скриптах Готик.дат конкретно..
 

GuruRegena

Участник форума
Регистрация
24 Мар 2017
Сообщения
16
Благодарности
0
Баллы
155
ну я все спрашиваю с мыслями, сделать восстановление маны у смерча без начала новой игры. нужные для этого функции по идее должны уже присутствовать.
 

Lorddemonik

★★★★★
Редактор раздела
Регистрация
17 Дек 2011
Сообщения
1.113
Благодарности
581
Баллы
350
ну я все спрашиваю с мыслями, сделать восстановление маны у смерча без начала новой игры. нужные для этого функции по идее должны уже присутствовать.
В теории, в теории может сработать редактирование через блокнотик. Пойду посмотрю, что из этого выйдет.

А на практике полная ерунда. Блокноты отказываются видеть нужные строки.
Но чисто для интереса, тебе надо либо в скриптах, либо еще через что поправить в файле B_KillNPC число 15 на желаемый процент

Код:
else if(Npc_GetActiveSpell(oth) == SPL_Whirlwind)
        {
            randwait = Hlp_Random(100);

            if((slf.protection[PROT_MAGIC] != IMMUNE) && (randwait <= 30))
            {
                oth.attribute[ATR_MANA] = oth.attribute[ATR_MANA] + ((SPL_Whirlwind_DAMAGE * 15) / 100);

                if(oth.attribute[ATR_MANA] > oth.attribute[ATR_MANA_MAX])
                {
                    oth.attribute[ATR_MANA] = oth.attribute[ATR_MANA_MAX];
                };
            };
 
Последнее редактирование:

Kreol Nekr

Участник форума
Регистрация
21 Ноя 2014
Сообщения
229
Благодарности
109
Баллы
190
ну я все спрашиваю с мыслями, сделать восстановление маны у смерча без начала новой игры. нужные для этого функции по идее должны уже присутствовать.
Без начала новой игры такого сделать нельзя. Лучше отредактируйте скрипт, скомпилируйте и занова пройдите. Но помоему 15 % урона в секунду это самый оптимальный вариант. Если его сделать больше то будет читерно, если сделать меньше то толку от заклинания не будут.
 

MEG@VOLT

★★★★★★★★★
ТехАдмин
Регистрация
24 Мар 2006
Сообщения
9.860
Благодарности
6.740
Баллы
1.625
Находясь рядом, держа его в фокусе, но при этом не красться. Просто подошел, открыл его инвентарь, взял или положил все что нужно, как-бы обмен со своим спутником.
для этого нужно писать новую функцию, но я думаю вряд-ли из наших программеров, кто-то будет писать целый цикл на одну функцию, т.к. это не получается реалистичным.... представь тоже самое, ты заходишь в автобус и начинаешь просто шариться в чужой сумке(кармане, кошельке и тп.), а на тебя просто смотрят и ни чего не делают...
 

ElderGamer


Модостроитель
Регистрация
16 Апр 2008
Сообщения
4.407
Благодарности
3.232
Баллы
525
Подскажите, можно ли проверить, принадлежит ли предмет хоть какому-нибудь неписю? Для конкретного непися есть функция Npc_OwnedByNpc. Но как быть, если есть предмет, у него прописан собственник (item.owner), и нужно проверить, прописан ли этот самый собственник?
Код:
class C_Item
{
   ...
   var func owner;
   ...
};

ДОПОЛНЕНО:
Или, если отследить наличие собственника по owner нельзя. Можно, наверное, ввести флаг для пометки предметов, имеющих владельца. Но биты переменной flags контролируются движком. Есть ли там свободные биты, которые не контролируются движком (Г1) и которые можно было бы использовать в своих целях?
 
Последнее редактирование:

Kreol Nekr

Участник форума
Регистрация
21 Ноя 2014
Сообщения
229
Благодарности
109
Баллы
190
Подскажите, можно ли проверить, принадлежит ли предмет хоть какому-нибудь неписю? Для конкретного непися есть функция Npc_OwnedByNpc. Но как быть, если есть предмет, у него прописан собственник (item.owner), и нужно проверить, прописан ли этот самый собственник?
Код:
class C_Item
{
   ...
   var func owner;
   ...
};

ДОПОЛНЕНО:
Или, если отследить наличие собственника по owner нельзя. Можно, наверное, ввести флаг для пометки предметов, имеющих владельца. Но биты переменной flags контролируются движком. Есть ли там свободные биты, которые не контролируются движком (Г1) и которые можно было бы использовать в своих целях?
Знаю, что на сундуки и на Мобси- обьекты есть такая функция, а вот на предметы не встречал. Хотя если это можно прописать в скрипте самого предмета то было бы неплохо. Сделать например оружие именным. Например помоему в Г1 такая функция была прописана на топоре Лареса. Когда его избиваешь, и забираешь топор, а потом заходишь к нему, он нападает на тебя и говорит: " ты носишь мое оружие"... Возможно аналогично с этим что то можно сделать и в Г2, но я не пробовал, интересно даже стало.
 

ElderGamer


Модостроитель
Регистрация
16 Апр 2008
Сообщения
4.407
Благодарности
3.232
Баллы
525
Возможно аналогично с этим что то можно сделать и в Г2, но я не пробовал, интересно даже стало.
Прописать собственника предмету в Г2 можно, а вот реакция собственника на ношение ГлавГероем его оружия в функциях ИИ не прописана, насколько я понимаю. Выпилили её, не стали доводить до ума, просто выпилили.
 

Gratt


Модостроитель
Регистрация
14 Ноя 2014
Сообщения
3.301
Благодарности
4.636
Баллы
625
ElderGamer
давай еще раз. тебе что надо?
 

ElderGamer


Модостроитель
Регистрация
16 Апр 2008
Сообщения
4.407
Благодарности
3.232
Баллы
525
Цель:
Всем привет! По ходу дела назрел такой вопрос. Торговцы оружием периодически экипируют те или иные образцы оружия из своего инвентаря. После этого такое оружие проблематично купить, оно не появляется в составе товаров на продажу. Есть разные варианты решения проблемы, каждый со своими недостатками.

Вариант 1. ...

Вариант 2. При старте торгового диалога в инвентаре торговца появляются дубликаты экипированного оружия (если у торговца нет второго такого же). ...
Отрабатываю вариант 2. При создании дубликатов экипированного у торговца оружия важно отследить уникальные экземпляры, которые в принципе не могут иметь дубликатов.
В Г1 есть ряд именных образцов оружия, у которых назначен собственник (owner). Я пытаюсь понять, можно ли, получив ссылку класса C_Item на экипированное оружие, отследить, есть ли у оружия собственник (item.owner).

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

Можно использовать и что-то другое из класса C_Item. Например, прописать особое слово в переменной var string nameID. Но я не знаю, используется она для чего-нибудь движком, и не повлияет ли это на что-нибудь.
 

Gratt


Модостроитель
Регистрация
14 Ноя 2014
Сообщения
3.301
Благодарности
4.636
Баллы
625
@ElderGamer
AI_UnequipWeapons в диалог, не?
 

ElderGamer


Модостроитель
Регистрация
16 Апр 2008
Сообщения
4.407
Благодарности
3.232
Баллы
525
Не. При этом деэкипированное оружие не появляется в торговом инвентаре сразу. Нужно завершить режим торговли и снова инициировать его. Тогда появится. Можно удалить оружие и сразу же сгенерировать его в инвентаре. Но не всегда оправдано снятие и продажа экипированного неписем оружия.
 
Сверху Снизу