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

    Чтобы получить возможность писать на форуме, оставьте сообщение в этой теме.
    Удачи!
  • Друзья, доброго времени суток! Спешите принять участие в оценке работ на конкурсе "Таинственные миры" 2024!
    Ждем именно вас!

    Ссылка на конкурсную тему - тык
    Ссылка на тему с работами участников- тык

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

Вариматас

Забанен
Регистрация
11 Апр 2011
Сообщения
175
Благодарности
1
Баллы
165
Мільтен, Оригинальные скрипты компилились Спейсером, а он пропустит все что угодно. Здесь же, надо использовать только заглавные как у фреймов анимаций и прочего подобного. Иначе, будут баги и глюки. *flowers*

Иоан, в сорсере автокоррекция есть)
на счет вейпоинтов не скажу, но вот название анимации юзаемой из скрипта, если будут мелкие буквы то двиг не поймет их)

Зы а вот спейсеру ПОФИК, походу он сам коректирует....:D
 

Helgi

Участник форума
Регистрация
6 Мар 2011
Сообщения
12
Благодарности
0
Баллы
150
Разобрался с вейпоинтами, наделал неписей все ок. Только они не выполняют
Код:
TA_Sit_Campfire (9,10,12,18,"TOBERT_WAY");
TA_Sit_Campfire (17,0,13,15,"TOBERT_WAY");

Более того один из них не появился вообще, а когда через марвин поставил set time то появился его труп недалеко от его поинта. Как сделать, чтобы всегда сидел у костра? Почему появился его труп в определенное время а не он сам? Я частенько такое видел и в других модах.


О
твечаю сам:После появления на вэйпоинте, если у НПС задан разговор в распорядке дня, он(НПС) начинает искать ближайший фрипоинт, на котором «можно поговорить» и, найдя, начинает свой распорядок дня. Если же такого фрипоинта он не нашел, то будет просто стоять на дном месте.
Нужно ли прописывать проверку фрипоинта и как это сделать? Хочу посадить народ около костра они стоят как истуканы и почему другой нпс, стоит не в том месте где waypoint, а немного в другом? недалеко, но все же
 

HeDeDe

Участник форума
Регистрация
17 Авг 2009
Сообщения
203
Благодарности
79
Баллы
180
Разобрался с вейпоинтами, наделал неписей все ок. Только они не выполняют
Код:
TA_Sit_Campfire (9,10,12,18,"TOBERT_WAY");
TA_Sit_Campfire (17,0,13,15,"TOBERT_WAY");
Более того один из них не появился вообще, а когда через марвин поставил set time то появился его труп недалеко от его поинта. Как сделать, чтобы всегда сидел у костра? Почему появился его труп в определенное время а не он сам? Я частенько такое видел и в других модах.
У тебя неправильно выставлено время. Нужно чтобы различные действия не перекрывались и чтобы не было «дыр» в распорядке.

TA_*** (hh1,mm1,hh2,mm2,"***");

где hh — часы, mm — минуты (1 — начало, 2 — конец)

Приведу пример:
TA_Sit_Campfire (0,30,21,50,"WAYPOINT1");
TA_Stand_Eating (21,50,0,30,"WAYPOINT2");

НПС будет сидеть у костра с 0:30 до 21:50, и есть с 21:50 до 0:30.

О
Нужно ли прописывать проверку фрипоинта и как это сделать? Хочу посадить народ около костра они стоят как истуканы и почему другой нпс, стоит не в том месте где waypoint, а немного в другом? недалеко, но все же
Проверка фрипоинта прописывается в самом ZS_ скрипте.

Например, в скрипте AI/Human/TA_Human/ZS_Sit_campfire.d есть строчка:
if(Npc_IsOnFP(self,"CAMPFIRE") … )
значит тебе нужно создать рядом с костром фрипоинт с именем, содержащим «CAMPFIRE»
 

PacK

Участник форума
Регистрация
13 Апр 2011
Сообщения
21
Благодарности
0
Баллы
150
Приветствую всех :)
Недавно возник такой вот вопрос по скриптингу:
Как создать новый навык, по типу "Тяжелого оружия" из Готики 3, ну т.е. чтобы он использовался только для проверки его наличия при попытке ГГ взять это самое оружие в руки?
 

Helgi

Участник форума
Регистрация
6 Мар 2011
Сообщения
12
Благодарности
0
Баллы
150
Все получилось, но вот остались пару вопросов в завершение о нпс)
1. Для каждого действия нпс нужно создавать отдельный фрипоинт?
2. В процессе игры, после выполнения определенных квестов и продвижения в сюжете, глав и т.д., нужно чтобы нпс передвигались по карте, менялись их расписания, и прочее. как достичь динамизма? Чтобы после разговора нпс отправились в город а к старому вейпоинту перестали обращаться?
 

MaGoth

★★★★★★★★★★★
Администратор
Регистрация
7 Янв 2003
Сообщения
19.371
Благодарности
7.802
Баллы
995
Helgi, 1. Не знаю что ты имеешь ввиду под действиями, но для взаимодействия НПС с предметами игрового мира, типа наковальни, скамеек и т.д.. да, всегда.
2. Ставишь условие на проверку завершения/активацию того или иного диалога/события и т.д. в игре, после которого у НПС меняешь расписание, на новое требуемое по событию, и так до тех пор пока все сюжетные моменты с участием этого Нпс не будут отработаны, после чего ставить любое другое расписание которое он будет выполнять до конца игры.
Примерно так, если я тебя правильно понял. ::)
 

kraw


Модостроитель
Регистрация
11 Окт 2005
Сообщения
2.095
Благодарности
871
Баллы
295
В "Народе Миненталя" я поступал так:

1. Составлял сложные расписания. Из многих пунктов. Например такое:

FUNC VOID Rtn_orcCH5_5017 () /* TMP */
{
TA_Smalltalk (08,06,11,00, "LOCATION_19_03_PATH_RUIN10");
TA_ReadBook (11, 0, 14, 0, "LOCATION_19_03_ROOM6_BARRELCHAMBER");
TA_Smalltalk (14, 0, 15, 0, "LOCATION_19_01");
TA_Guard (15,00,20,00, "LOCATION_19_03_PATH_RUIN6");
TA_Smalltalk(20, 0, 23, 0, "LOCATION_19_03_PATH_RUIN6");
TA_WatchInTavern(23,0,3,0,"LOCATION_19_03_ENTRANCE");
TA_SleepOnGround(3,0,8,06,"LOCATION_19_03_SECOND_HARPYE4");
};

2. Менял расписание в зависимости от главы и от событий (это уже в диалоге. Причем менять мог расписание не только того, NPC, который участвует в этом диалоге)

Ну и сочинять расписание нужно так, как будто этот персонаж ты, и мысленно проживи один день.
 

Fase

Участник форума
Регистрация
12 Янв 2011
Сообщения
208
Благодарности
3
Баллы
170
А почему у меня не меняются аттрибуты у кольца?
Вроде всё правильно:
Код:
FUNC VOID Equip_ItRi_Dex_Strg_01()
	{
		Npc_ChangeAttribute(self,15);
		Npc_ChangeAttribute(self,15);
	};

	FUNC VOID UnEquip_ItRi_Dex_Strg_01()
	{
		Npc_ChangeAttribute(self,15);
		Npc_ChangeAttribute(self,15);
	};
 

MaGoth

★★★★★★★★★★★
Администратор
Регистрация
7 Янв 2003
Сообщения
19.371
Благодарности
7.802
Баллы
995
Fase, А чего у тебя все повторяется по два раза, и где значения которое нужно отнять ?
Попробуй так:
func void Equip_ItRi_Dex_Strg_A()
{
Npc_ChangeAttribute(self,ATR_DEXTERITY,15);
Npc_ChangeAttribute(self,ATR_STRENGTH,15);
};

func void UnEquip_ItRi_Dex_Strg_A()
{
Npc_ChangeAttribute(self,ATR_DEXTERITY,-15);
Npc_ChangeAttribute(self,ATR_STRENGTH,-15);
};
 

Fase

Участник форума
Регистрация
12 Янв 2011
Сообщения
208
Благодарности
3
Баллы
170
MaGoth,
Потомучто Equip(это когда кольцо у те6я одето)

А UnEquip(Это когда снято)
 

MaGoth

★★★★★★★★★★★
Администратор
Регистрация
7 Янв 2003
Сообщения
19.371
Благодарности
7.802
Баллы
995
Fase, Ты это мне объясняешь ?! :D
Я не про это спрашивал, у тебя в обоих блоках одно и то же, + не указаны атрибуты которые будут изменяться. Впрочем, то что тебе надо смотри у меня в спойлере выше.
 

Fase

Участник форума
Регистрация
12 Янв 2011
Сообщения
208
Благодарности
3
Баллы
170
Не не помогло.
Код:
FUNC VOID Equip_ItRi_Dex_Strg_01()
	{
		Npc_ChangeAttribute(self,ATR_STRENGTH,15);
		Npc_ChangeAttribute(self,ATR_DEXTERITY,15);
	};

	FUNC VOID UnEquip_ItRi_Dex_Strg_01()
	{
		Npc_ChangeAttribute(self,ATR_STRENGTH,-15);
		Npc_ChangeAttribute(self,ATR_DEXTERITY, -15);
	};
 

MaGoth

★★★★★★★★★★★
Администратор
Регистрация
7 Янв 2003
Сообщения
19.371
Благодарности
7.802
Баллы
995
Fase, Пробел убери перед минусом.
(self,ATR_DEXTERITY, -15);
И скрипты ты скомпилировал уже и проверил в игре?

И вообще, давай сюда весь код этого кольца.
 

Fase

Участник форума
Регистрация
12 Янв 2011
Сообщения
208
Благодарности
3
Баллы
170
Ну конечно же проверил я.
Код:
INSTANCE ItRi_Dex_Strg_01(C_Item)
{
	name 					=	NAME_Ring;

	mainflag 				=	ITEM_KAT_MAGIC;
	flags 					=	ITEM_RING;

	value 					=	Value_Ri_DexStrg;

	visual 					=	"ItRi_Dex_Strg_01.3ds";

	visual_skin 			=	0;
	material 				=	MAT_METAL;
	on_equip				=	Equip_ItRi_Dex_Strg_01;
	on_unequip				=	UnEquip_ItRi_Dex_Strg_01;

	wear			= 	WEAR_EFFECT;
	effect			=	"SPELLFX_ITEMGLIMMER"; 

	description				= "Ring der Macht";
	
	TEXT[2]					= NAME_Bonus_Str;
	COUNT[2]				= 4;
	TEXT[3] 				= NAME_Bonus_Dex;
	COUNT[3]				= 4;
	
	TEXT[5]					= NAME_Value;
	COUNT[5]				= value;
		
	INV_ZBIAS				= INVCAM_ENTF_RING_STANDARD;
	INV_ROTZ				= INVCAM_Z_RING_STANDARD;
	INV_ROTX				= INVCAM_X_RING_STANDARD;
	
};

	FUNC VOID Equip_ItRi_Dex_Strg_01()
	{
		Npc_ChangeAttribute(self,ATR_STRENGTH,15);
		Npc_ChangeAttribute(self,ATR_DEXTERITY,15);
	};

	FUNC VOID UnEquip_ItRi_Dex_Strg_01()
	{
		Npc_ChangeAttribute(self,ATR_STRENGTH,-15);
		Npc_ChangeAttribute(self,ATR_DEXTERITY,-15);
	};
 

MaGoth

★★★★★★★★★★★
Администратор
Регистрация
7 Янв 2003
Сообщения
19.371
Благодарности
7.802
Баллы
995
Fase, Не понятно, должно работать, больше ошибок не вижу. ::)
Вариматас, А хз, сталкивался как-то с каким-то кодом из мода, где из-за пробела в аргументе все глючило...
 

Fase

Участник форума
Регистрация
12 Янв 2011
Сообщения
208
Благодарности
3
Баллы
170
И что же делать мне.Может из-за этого?
У меня нельзя нажать компилировать,но я нажимаю "сохранить".
 

MaGoth

★★★★★★★★★★★
Администратор
Регистрация
7 Янв 2003
Сообщения
19.371
Благодарности
7.802
Баллы
995
Fase, Ну ты перец, у мня нет слов. Спрашиваю, скомпилировал, проверил в игре. Орет да. :D
Исправляй ошибки, компилируй проект с заменой оригинальных готик дат и оу бин файлов в игре. Запускай игру и проверяй в ней. После этого кольцо будет работать.
 

Fase

Участник форума
Регистрация
12 Янв 2011
Сообщения
208
Благодарности
3
Баллы
170
А что мне делать,то если не нажимается компилировать?
 

MaGoth

★★★★★★★★★★★
Администратор
Регистрация
7 Янв 2003
Сообщения
19.371
Благодарности
7.802
Баллы
995
Fase, А ты где ее пытаешься нажать, и в чем вообще правишь скрипты ?
 
Сверху Снизу