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

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

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

MaGoth

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

Вложения

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

vmazz

Участник форума
Регистрация
18 Дек 2008
Сообщения
218
Благодарности
1
Баллы
165
2Jeus: После компиляции должен быть еще и OU.bin его тоже нужно паковать.
 

Jeus

Участник форума
Регистрация
18 Мар 2009
Сообщения
232
Благодарности
1
Баллы
165
Нет, к сожалению проблема не в этом....
 

vmazz

Участник форума
Регистрация
18 Дек 2008
Сообщения
218
Благодарности
1
Баллы
165
Значит похерил ты чем-то скрипты, ты бы поконкретней - что менял и т.д., а то мало понятно в чем проблема твоя.
А еще лучше скрипты в личку мне кинь, гляну.
 

Jeus

Участник форума
Регистрация
18 Мар 2009
Сообщения
232
Благодарности
1
Баллы
165
Хм.............
1. Установил SDK.
2. Установил "Возвращение"и поставил патч 1.1.
3. Установил GothicVDFS и с его помощью распаковал файл RETURNING_MOD.mod в папку YYY.
4. Запустил GothicSourcer и декомпилировал файл gothic.dat из папки YYY.
5. Изменил в AI/AI_Intern/AI_Constants.d строку const int XP_PER_VICTORY = 10; на const int XP_PER_VICTORY = 25;
6. Компилировал и засунул их обратно в папку YYY.
7. С помощью GothicVDFS запаковал в файл RETURNING_MOD.mod и закинул его в папку modvdfs.
Всё.
 
Последнее редактирование модератором:

vmazz

Участник форума
Регистрация
18 Дек 2008
Сообщения
218
Благодарности
1
Баллы
165
Скрпты тут? _work\Data\Scripts\_compiled\Gothic.dat и _work\Data\Scripts\Content\Cutscene\OU.dat ???
Если у тебя соблюдена структура каталогов, то никаких проблем быть не должно.
Может пакуешь начиная не с _work, а с Data ??
ЗЫ MDK :D
 

Jeus

Участник форума
Регистрация
18 Мар 2009
Сообщения
232
Благодарности
1
Баллы
165
Скрипты на месте.

З.Ы. АшипсО :D

А если поставить EXE-версию, то какой файл будет использоваться? Gothic2/_work/data/Scripts/_compiled/Gothic.dat или какой-то другой?
 

GeorG

Участник форума
Регистрация
27 Авг 2008
Сообщения
3.447
Благодарности
11
Баллы
295
2Jeus: Будит использоваться Gothic.dat разницы нет мод версия или EXE
 

Jeus

Участник форума
Регистрация
18 Мар 2009
Сообщения
232
Благодарности
1
Баллы
165
Нет, вы не так вопрос поняли. Будет использоваться gothic.dat из папки Gothic2/_work/data/Scripts/_compiled/ или он тоже будет запакован в каком-то файле?
 

Marvіn

Участник форума
Регистрация
17 Апр 2008
Сообщения
99
Благодарности
9
Баллы
180
2Jeus:
Не стоит спрашивать одно и тоже несколько раз! Об установке аддона "Возвращение"можна посмотреть здесь http://returning.worldofgothic.ru/install.
 
Последнее редактирование модератором:

GeorG

Участник форума
Регистрация
27 Авг 2008
Сообщения
3.447
Благодарности
11
Баллы
295
На основе поста 118 этой темы, который создал многоуважаемый Ukur, сделал циклическую функцию. Изменил ZEN файл игры, добавил в скрипт вызов функции, который выглядит так:
Код:
func void B_GlobalInnos()
{
	if(hero.attribute[ATR_HITPOINTS_MAX] == 0)
	{
	AI_PrintScreen("Не прошла",-1,-1,FONT_Screen,5);     //--Это для себя простая проверка	
	Wld_SendTrigger("GLOBAL_INNOS");            //--Вызов триггера
	return;
	}
     else
	{
	AI_PrintScreen("ПРОШЛА",-1,-1,FONT_Screen,5);	
	pal_innos_karma();                  //--Моя функция
	Wld_SendTrigger("GLOBAL_INNOS");
	};
};

Итог, нечего не получилось, то есть функция не вызывается.

З.Ы. думал игра читает не измененный ZEN, передвинул стол изменения на лицо.
 
Последнее редактирование модератором:

RusSuckOFF


Модостроитель
Регистрация
30 Дек 2008
Сообщения
64
Благодарности
37
Баллы
165
2Geor'G:
Еще разок проверь - не напутал ли где с именами.
В startup-е вызвать функцию не забыл?
 

s@m


Модостроитель
Регистрация
2 Мар 2007
Сообщения
315
Благодарности
56
Баллы
195
Geor'G написал(а):
На основе поста 118 этой темы, который создал многоуважаемый Ukur, сделал циклическую функцию. Изменил ZEN файл игры, добавил в скрипт вызов функции, который выглядит так:
Код:
func void B_GlobalInnos()
{
	if(hero.attribute[ATR_HITPOINTS_MAX] == 0)
	{
	AI_PrintScreen("Не прошла",-1,-1,FONT_Screen,5);    //--Это для себя простая проверка	
	Wld_SendTrigger("GLOBAL_INNOS");            //--Вызов триггера
	return;
	}
     else
	{
	AI_PrintScreen("ПРОШЛА",-1,-1,FONT_Screen,5);	
	pal_innos_karma();                  //--Моя функция
	Wld_SendTrigger("GLOBAL_INNOS");
	};
};

Итог, нечего не получилось, то есть функция не вызывается.

З.Ы. думал игра читает не измененный ZEN, передвинул стол изменения на лицо.

Попробуй так:

func void B_GlobalInnos()
{
if(hero.attribute[ATR_HITPOINTS_MAX] == 0)
{
AI_PrintScreen("Не прошла",-1,-1,FONT_Screen,5); //--Это для себя простая проверка
Wld_SendTrigger("GLOBAL_INNOS"); //--Вызов триггера
return;
}
else
{
AI_PrintScreen("ПРОШЛА",-1,-1,FONT_Screen,5);
pal_innos_karma(); //--Моя функция
};
Wld_SendTrigger("GLOBAL_INNOS");
};
 
Последнее редактирование модератором:

GeorG

Участник форума
Регистрация
27 Авг 2008
Сообщения
3.447
Благодарности
11
Баллы
295
s@m написал(а):

Тоже самое, к триггеру обращения нет
Может, я чё, в настройках Spacer неправильно поставил, посмотрите
 
Последнее редактирование модератором:

s@m


Модостроитель
Регистрация
2 Мар 2007
Сообщения
315
Благодарности
56
Баллы
195
Geor'G написал(а):
s@m написал(а):

Тоже самое, к триггеру обращения нет
Может, я чё, в настройках Spacer неправильно поставил, посмотрите

Тут всё правильно. А первое обращение к тригеру есть ?? В startup.d :

func void INIT_NewWorld_Part_City ()
{
B_InitMonsterAttitudes ();
B_InitGuildAttitudes();
B_GlobalInnos ();

NIT_NewWorld_Part_City();
};
 
Последнее редактирование модератором:

GeorG

Участник форума
Регистрация
27 Авг 2008
Сообщения
3.447
Благодарности
11
Баллы
295
func void INIT_NewWorld_Part_City ()

Такого в startup.d нет, зато есть:

Код:
func void INIT_NewWorld_Part_City_01()
{
	B_InitMonsterAttitudes ();
	B_InitGuildAttitudes();
	B_InitNpcGlobals ();

	INIT_SUB_NewWorld_Part_City_01();
};

Может сюда вставить, или создать мона? :-\

Я до этого создавал вот что

Код:
FUNC VOID INIT_World ()
{
  B_GlobalInnos();	
};

Может, потому и не работал триггер? :-\
Ща что нибудь попробую, уж больно руки чешутся. :D

З.Ы. Кстати ZEN нужно пери сохранить? а то где та слышал, что игра Startup.d не видит, за то его видит Spacer
 

s@m


Модостроитель
Регистрация
2 Мар 2007
Сообщения
315
Благодарности
56
Баллы
195
func void INIT_NewWorld()
{
B_InitMonsterAttitudes ();
B_InitGuildAttitudes();
B_InitNpcGlobals ();
B_GlobalInnos ();
INIT_SUB_NewWorld();
};

Вот сюда! Не в ПАРТЫ а в МИР непосредственно!
 

GeorG

Участник форума
Регистрация
27 Авг 2008
Сообщения
3.447
Благодарности
11
Баллы
295
Вот блин не работает триггер, может я еще, где прописать забыл ???
Может и в партах прописать, я видел там, к примеру, B_InitGuildAttitudes() в каждом INIT-е прописана

2s@m:
Кстати триггер сам начал появляется в Spacer, когда я загружаю чистый ZEN без моего триггера (когда я прописал его в Startup.d). Пробовал перезагружать комп, удалял файл VDFS.DMP, а он всё равно появляется.
Так и должно быть? :-\
 

s@m


Модостроитель
Регистрация
2 Мар 2007
Сообщения
315
Благодарности
56
Баллы
195
Geor'G написал(а):
Вот блин не работает триггер, может я еще, где прописать забыл ???
Может и в партах прописать, я видел там, к примеру, B_InitGuildAttitudes() в каждом INIT-е прописана

2s@m:
Кстати триггер сам начал появляется в Spacer, когда я загружаю чистый ZEN без моего триггера (когда я прописал его в Startup.d). Пробовал перезагружать комп, удалял файл VDFS.DMP, а он всё равно появляется.
Так и должно быть? :-\

Неа... Пропиши везде в партах..
 
Последнее редактирование модератором:

GeorG

Участник форума
Регистрация
27 Авг 2008
Сообщения
3.447
Благодарности
11
Баллы
295
Нашел, почему у меня появлялся старый триггер, когда открывал новый ZEN файл.
Оказывается Spacer, читал информацию из VDF файла изменённый ZEN лежал в нём. Не знал, что он так может. :eek:

Прописал во всех партах, не помогает, триггер не работает. :-\ :'(
 

Myxomop

Почетный форумчанин
Регистрация
28 Май 2005
Сообщения
3.239
Благодарности
2.581
Баллы
455
Geor'G
Прописал во всех партах, не помогает, триггер не работает.
undecided.gif
Тебе уже сказали, писать в INIT_NewWorld, т.к. все парты входят в его основную функцию, обратил бы внимание - не делал бы подобных глупостей.
Перепроверь еще раз все что сделал, в особенности наличие триггера в ZEN файле мира. Надеюсь не стоит говорить, что при этом Worlds.vdf с мирами должен быть удален, либо отключен путем переименования расширения, т.к. движек игры приоритетно считывает все данные вначале из vdf, а не с распакованной папки.
 
Сверху Снизу