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

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

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

MaGoth

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

Вложения

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

Myxomop

Почетный форумчанин
Регистрация
28 Май 2005
Сообщения
3.239
Благодарности
2.581
Баллы
455
2vmazz:
Ты про триггер-скрипт? В Г1 тоже должно работать, потом по асе ошибки вместе поищем, если с работы седня домой вернусь и не забухаю где-инть :D
 

MEG@VOLT

★★★★★★★★★
ТехАдмин
Регистрация
24 Мар 2006
Сообщения
9.860
Благодарности
6.740
Баллы
1.625
2vmazz: Дык может выложишь здесь свою проблему? а то на какой-то флуд ваши два поста похожи...
 

vmazz

Участник форума
Регистрация
18 Дек 2008
Сообщения
218
Благодарности
1
Баллы
165
2MEG@VOLT: Ну так я же написал в чем проблема. Напишу еще раз, но подробней ;)
Я делал все как написано укуром в посту #118, но зацикливание функции не произошло. Все это я гелал для Г1. :-\
--------------
Вопрос снимаю, у меня все получилось. Видатьв прошлый раз я все таки что-то упустил. Зацикливание в Г1 прекрасно работает.
 

ScorpoZ

Гость
Всем привет! Вообщем меня интересует такой вопрос: "можно ли повесить эффект на НПЦ не из диалога, а из EVT, если да, то подскажите пожалуйста как, вчера весь вечер пытался и ничего не получилось." :(
Я хочу чтобы при старте игры перс впадал в сон
Готики 1 нету на компе, буду очень признателен если выложишь его.
 
Последнее редактирование модератором:

s@m


Модостроитель
Регистрация
2 Мар 2007
Сообщения
315
Благодарности
56
Баллы
195
Можешь повесить эффект на его броньку:

wear = WEAR_EFFECT;
effect = "SPELLFX_MANAPOTION";

Создай для него новый распорядок дня, для примера можешь взять ЮБериона из Г1, там у него личный распорядок.

Вот начинка распорядка: (думаю ты знаешь куда его, а если нет то создай новый файл с именем - ZS_Drained_YBerion.d и положи его в директорию - Gothic II\_work\Data\Scripts\_decompiled\AI\Human\TA_Human)

Незабудь добавить новую строчку в файл TA.d -

func void TA_Drained_YBerion (var int start_h, var int start_m, var int stop_h, var int stop_m, VAR string waypoint) {TA_Min (self, start_h,start_m, stop_h, stop_m, ZS_Drained_YBerion, waypoint);};


func void ZS_Drained_YBerion ()
{
    PrintDebugNpc (PD_TA_FRAME,"ZS_Drained_YBerion");

AI_PlayAniBS (self,"T_STAND_2_VICTIM_SLE", BS_LIE);
};

func void ZS_Drained_YBerion_Loop ()
{
PrintDebugNpc (PD_TA_LOOP,"ZS_Drained_YBerion_Loop");

AI_Wait (self, 1);
};

func void ZS_Drained_YBerion_End ()
{
    PrintDebugNpc (PD_TA_FRAME,"ZS_Drained_YBerion_End");
};

И укажи в его распорядке:

FUNC VOID Rtn_Start_141()
{
TA_Drained_YBerion (08,00,20,25,"LE_CITY_UPTOWN_ALCHEMY_02");
TA_Stand_Eating (20,25,01,30,"LE_CITY_UPTOWN_ALCHEMY_02");
TA_Sleep (01,30,08,00,"LE_CITY_UPTOWN_ALCHEMY_04");
};
 
Последнее редактирование модератором:

mage

Участник форума
Регистрация
29 Сен 2008
Сообщения
382
Благодарности
1
Баллы
175
У меня такая проблема:
Сделал решение с скриптовой болванкой, в проекте этой болванки не было многих скриптов, поэтому добавлял их вручную.
Потом решил их откомпилировать, и выдаёт ошибку Неопределённая Функция: C_WANTTOEAT
хотя смотрел что эта функция есть в моём решении
 

Myxomop

Почетный форумчанин
Регистрация
28 Май 2005
Сообщения
3.239
Благодарности
2.581
Баллы
455
Если функция ТОЧНО есть в решении и выдает ошибку "Неопределённая Функция", значит она используется в скриптах ДО ее декларирования. Для танкистов русским языком: Функция должна быть описана в скриптах до ее использования, в т.ч. в Gothic.src
 
Последнее редактирование модератором:

DUSTinghoFFman

Участник форума
Регистрация
24 Май 2008
Сообщения
904
Благодарности
4
Баллы
185
2@mage:
Скопируй содержимое, удали скрипт и перенеси как на скрине.
Проще способа не знаю...

index.php
 

Элабрион

Участник форума
Регистрация
25 Окт 2008
Сообщения
4
Благодарности
0
Баллы
145
Привет всем. Мы с другом собрались сделать мод для г2а, в принципе уже все расписано на бумаге, но у мея появились вопросы по скриптингу:
1) Как сделать ограничение на главу для квестов? я это делаю, через реплику диалога. Например: 2 глава- это реплика Хагена, перед отправкой в долину. 3 глава- реплика Лестера, когда он дает руну. Может есть способ легче?
2) как сделать, что б после разговора непись ишел в заданую точку и то же самое, но для группы людей?
3) я и друг собираемся писать скрипты на разных компах, как это потом все вместе объединить?
4) Как, после окончания работ, сделать из всего этого мод(я имею в виду руководство к VDFS и если можно подробное)
P.S. если у кого-то есть идеи для квестов, или оружия, пишите мне на MiltenMitya@yandex.ru
 

Marvіn

Участник форума
Регистрация
17 Апр 2008
Сообщения
99
Благодарности
9
Баллы
180
2Элабрион:
Скачай тутор от Vam'a, и там будут ответы на твои первых два вопросы.
3) я и друг собираемся писать скрипты на разных компах, как это потом все вместе объединить?
Просто взяли и объеденили ??? , что за вопрос :eek: , если правили один файл, то кто-то с вас взял и слил их, типа CTRL+C, CTRL+V.
4) Как, после окончания работ, сделать из всего этого мод(я имею в виду руководство к VDFS и если можно подробное)
Лучше перед началом создания мода, прочитай вместе с другом, все что написано на этом сайте!!!
http://mod.worldofgothic.ru/programs/gothic-vdfs
 

DUSTinghoFFman

Участник форума
Регистрация
24 Май 2008
Сообщения
904
Благодарности
4
Баллы
185
Вопрос возник...
Если я хочу создать диалог для объекта, по типу алхимического/рунного стола/наковальни, что нужно делать?
Нужно ли для этого использовать спейсер? Объект уже есть, нужно написать диалог о создании на нём вещи, не могу понять, как? :(
 

Dimmell

Участник форума
Регистрация
23 Ноя 2008
Сообщения
2.899
Благодарности
111
Баллы
285
2DUSTinghoFFman:
В зене для моба должна быть прописана функция (onStateFunc) которой и будешь вызывать диалог в скриптах.
Посмотри по аналогии с добычей золота/руды, поиском кладов.
Или, еще лучше, разбери демо-мод Xeres. ;)
Заодно научишься жарить и варить по разным рецептам. :)
 

vmazz

Участник форума
Регистрация
18 Дек 2008
Сообщения
218
Благодарности
1
Баллы
165
Элабрион написал(а):
Привет всем. Мы с другом собрались сделать мод для г2а, в принципе уже все расписано на бумаге, но у мея появились вопросы по скриптингу:
1) Как сделать ограничение на главу для квестов? я это делаю, через реплику диалога. Например: 2 глава- это реплика Хагена, перед отправкой в долину. 3 глава- реплика Лестера, когда он дает руну. Может есть способ легче?
2) как сделать, что б после разговора непись ишел в заданую точку и то же самое, но для группы людей?
1) если правильно понял суть вопроса то так:
Код:
	if (Kapitel >=3) // если глава 3 или выше
	{
	... // свои функции
	};
2) Npc_ExchangeRoutine(self,"Имя расписания"); // вместо self можешь прописать инстанцию любого непися, это если тебе группу надо отправить куда-то.

==================================================

Ну вот пожалуй задам и я вопросец:
Где задаются значения для menu.dat\menu_status.d ?
т.е. я создал в нем строку "Menu_Item_Attribute_5_Title" и "Menu_Item_Attribute_5", где теперь заносить значение в строку "Menu_Item_Attribute_5"?? Сам новый аттрибут появляется в статусе, вернее только название, а значение... нигде не могу найти связей.
 
Последнее редактирование модератором:

MEG@VOLT

★★★★★★★★★
ТехАдмин
Регистрация
24 Мар 2006
Сообщения
9.860
Благодарности
6.740
Баллы
1.625
Как я понял ты написал прописал вот эти строчки

instance MENU_ITEM_ATTRIBUTE_5_TITLE(C_MENU_ITEM_DEF)
{
posx = STAT_A_X1;
posy = STAT_ATR_Y + (STAT_DY * 4);
text[0] = "аттрибут";
fontname = STAT_FONT_DEFAULT;
flags = flags & ~IT_SELECTABLE;
};

instance MENU_ITEM_ATTRIBUTE_5(C_MENU_ITEM_DEF)
{
posx = STAT_A_X2;
posy = STAT_ATR_Y + (STAT_DY * 4);
fontname = STAT_FONT_DEFAULT;
flags = flags & ~IT_SELECTABLE;
};
В другом решении(gothic.dat)
Тебе надо будет прописать в файле constants.d
const int ATR_NEWATTRIBUT = 8;
и изменить строчку
const int ATR_INDEX_MAX = 8;
на
const int ATR_INDEX_MAX = 9;

Потом в файле непися прописать
attribute[ATR_NEWATTRIBUT] = (значение);
Или в файле B_SetAttributesToChapter.d тоже самое.

Не знаю правдо поможет-нет...
Ну по всей логике должно быть так...
 
Последнее редактирование:

Элабрион

Участник форума
Регистрация
25 Окт 2008
Сообщения
4
Благодарности
0
Баллы
145
Возникла еще парочка вопросов:
1) Я декомпилировл скрипты из лицензионки от акелы, но все реплики в диалогах на немецком(я имею ввиду не функции, а имено то что говорит непись) по этому очень не удобно смотреть в диалоги за примерами, если где-то скрипты с русскими диалогами?
2) Как сделать, что бы набор товаров у торговца изменялся в каждой главе?
 

DUSTinghoFFman

Участник форума
Регистрация
24 Май 2008
Сообщения
904
Благодарности
4
Баллы
185
2@Элабрион:
2) Смотри \Story\B_GiveTradeInv\
Пример: (B_GiveTradeInv_Orlan.d)
var int Orlan_ItemsGiven_Chapter_1;
var int Orlan_ItemsGiven_Chapter_2;
var int Orlan_ItemsGiven_Chapter_3;
var int Orlan_ItemsGiven_Chapter_4;
var int Orlan_ItemsGiven_Chapter_5;

func void B_GiveTradeInv_Orlan(var C_Npc slf)
{
if((Kapitel >= 1) && (Orlan_ItemsGiven_Chapter_1 == FALSE))
{
CreateInvItems(slf,ItMi_Gold,30);
CreateInvItems(slf,ItRw_Arrow,21);
CreateInvItems(slf,ItRw_Bolt,5);
CreateInvItems(slf,ItFo_Water,4);
CreateInvItems(slf,ItFo_Beer,10);
CreateInvItems(slf,ItFo_Bread,4);
CreateInvItems(slf,ItFo_Milk,4);
CreateInvItems(slf,ItFo_Wine,2);
CreateInvItems(slf,ItFo_Bacon,2);
CreateInvItems(slf,ItLsTorch,3);
CreateInvItems(slf,ItMw_Zweihaender1,1);
CreateInvItems(slf,ItMw_Bartaxt,1);
CreateInvItems(slf,ItMw_Orkschlaechter,1);
CreateInvItems(slf,ItMw_Schlachtaxt,1);
CreateInvItems(slf,ItMw_Barbarenstreitaxt,1);
CreateInvItems(slf,ItRw_Bow_L_01,1);
CreateInvItems(slf,ItBE_Addon_Leather_01,1);
CreateInvItems(slf,ItRi_Prot_Mage_02,1);
Orlan_ItemsGiven_Chapter_1 = TRUE;
};
if((Kapitel >= 2) && (Orlan_ItemsGiven_Chapter_2 == FALSE))
{
CreateInvItems(slf,ItMi_Gold,50);
CreateInvItems(slf,ItRw_Arrow,40);
CreateInvItems(slf,ItRw_Bolt,45);
CreateInvItems(slf,ItBe_Addon_DEX_5,1);
Orlan_ItemsGiven_Chapter_2 = TRUE;
};
if((Kapitel >= 3) && (Orlan_ItemsGiven_Chapter_3 == FALSE))
{
CreateInvItems(slf,ItMi_Gold,100);
CreateInvItems(slf,ItRu_TeleportTaverne,1);
CreateInvItems(slf,ItRw_Arrow,120);
CreateInvItems(slf,ItRw_Bolt,115);
CreateInvItems(slf,ItBe_Addon_Prot_EdgPoi,1);
Orlan_ItemsGiven_Chapter_3 = TRUE;
};
if((Kapitel >= 4) && (Orlan_ItemsGiven_Chapter_4 == FALSE))
{
CreateInvItems(slf,ItMi_Gold,200);
CreateInvItems(slf,ItMw_Zweihaender1,1);
CreateInvItems(slf,ItMw_Bartaxt,1);
Orlan_ItemsGiven_Chapter_4 = TRUE;
};
if((Kapitel >= 5) && (Orlan_ItemsGiven_Chapter_5 == FALSE))
{
CreateInvItems(slf,ItMi_Gold,300);
CreateInvItems(slf,ItRw_Arrow,120);
CreateInvItems(slf,ItRw_Bolt,115);
Orlan_ItemsGiven_Chapter_5 = TRUE;
};
};
 
Последнее редактирование модератором:

Dimmell

Участник форума
Регистрация
23 Ноя 2008
Сообщения
2.899
Благодарности
111
Баллы
285
Элабрион написал(а):
Возникла еще парочка вопросов:
1) Я декомпилировл скрипты из лицензионки от акелы, но все реплики в диалогах на немецком(я имею ввиду не функции, а имено то что говорит непись) по этому очень не удобно смотреть в диалоги за примерами, если где-то скрипты с русскими диалогами?
http://mod.worldofgothic.ru/scripts/g2a-akella-dekompiled
 
Последнее редактирование модератором:

vmazz

Участник форума
Регистрация
18 Дек 2008
Сообщения
218
Благодарности
1
Баллы
165
2Элабрион: Будь внимательнее и открывай акелловские скрипты, а не те которые мдут в поставке G2MDK.
2MEG@VOLT: Хм.. т.е. как я понял после того как я распишу атрибут как положено он сам автоматом появится в статусе? Мне просто необходимо чтоб значение отображалось там например
Сила 10
Ловкость 10
....
Духовная сила 10
 

Saturas


Модостроитель
Регистрация
11 Фев 2009
Сообщения
2.512
Благодарности
1.334
Баллы
315
Кто знает как делать боевые заклинания
ну типа там огненный шар и т.д.
Заклинание вроде работает но повреждение не наносится.
Если кто знает подскажите плиз!

Зарание благодарен.
 
Сверху Снизу