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

    Чтобы получить возможность писать на форуме, оставьте сообщение в этой теме.
    Удачи!
  • Друзья, доброго времени суток!
    Стартовал новый литературный конкурс от "Ордена Хранителей" - "Пираты Миртанского моря".
    Каждый может принять в нём участие и снискать славу и уважение, а в случае занятия призового места ещё и получить награду. Дерзайте
  • Дорогие друзья, год подходит к концу, и пришло время подвести его итоги и наградить достойных

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

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

Spielmann

Участник форума
Регистрация
22 Май 2010
Сообщения
106
Благодарности
7
Баллы
175
Дополню MaGoth'a, если хочеш конвертировать з .tga в .tex то можно сделать так: в игре есть 2 одинаковие текстуры, одна компилированая в .tex вторая в .tga. Если стереть .tex, а текстуру .tga заменить с таким же названием на свою и запустить игру которая должна обратится к етой текстуре то движок сгенерирует твою только в формате .tex
 

NIKO666

Участник форума
Регистрация
9 Авг 2010
Сообщения
13
Благодарности
0
Баллы
150
Я хочу изменить текстуры на модели доспехов Магов Воды. Какие файлы нужно открывать и изменять для того, чтобы это сделать?*???*
 

Spielmann

Участник форума
Регистрация
22 Май 2010
Сообщения
106
Благодарности
7
Баллы
175
1)как файл bobo.wma отправить в мод? и откуда взять этот мод...

2)читал порядок работы с gothic_vdfs(уважаемого маразмуса) не понял про *.* чего надо вставлять?
у меня получается файл windows media player при запаковке измененного gothic.dat и ou.bin.надо ли исчо чего-нибудь добавлять.

3)вообщем разжуйте подробно, и не пишите читай ввв.тутпонятно.гы
 

MaGoth

★★★★★★★★★★★
Администратор
Регистрация
7 Янв 2003
Сообщения
19.367
Благодарности
7.816
Баллы
995
NIKO666,
Я хочу изменить текстуры на модели доспехов Магов Воды. Какие файлы нужно открывать и изменять для того, чтобы это сделать?

1. Скачиваем программу GoMan в русскоязычной версии с нашего сайта:
http://mod.worldofgothic.ru/programs/goman
1.1 Устанавливаем эту программу в свою систему.
1.2. Запускаем ее и в панели дерева калагов выбираем VDFs файлы из игры Готика2, (путь до них):
Твой диск .:\Program Files\Akella Games\Gothic II\Data
Textures.vdf
Textures_Addon.vdf
1.3 ГоМан откроет эти архивы и ты сможешь в этой программе просмотреть их содержимое в этих томах по-файлово. Затем найдя интересующие тебя текстуры, ты их выделяешь и жмешь "сохранить как", выбираешь требуемое для тебя расширение *.BMP, *.TGA или *.JPG, после чего сохраняешь. Ну а дальше запускаешь Граф редактор, и их редактируешь. Все.

Как пользоваться программой ГоМан, вставлять измененные текстуры обратно в игру, все расписано на нашем сайте:
http://mod.worldofgothic.ru/

Читаем там все внимательно... *flowers*
 

Spielmann

Участник форума
Регистрация
22 Май 2010
Сообщения
106
Благодарности
7
Баллы
175
Я хочу изменить текстуры на модели доспехов Магов Воды. Какие файлы нужно открывать и изменять для того, чтобы это сделать?*???*
Можно ище так но ето сложнее :)
Прогой GothicVDFS открываеш Textures.vdf в папке Data и извлекаеш, тогда береш GothicZTEX и конвертируеш в TGA, текстуры доспех находяться в твоей конвертованой папке _WORK\DATA\TEXTURES\NPCs\Armor. Вибери нужный доспех и редактируй. Когда сделал програмой GoMan сохрани в TEX добавив в конец названия "-C" без кавичек и запакуй обратно в Textures.
P.S. Если у тебя установлен мод кит просто редактируй текстуру с папкы игри, путь такой как я писал више. При етом когда сделал не забудь удалить TEX текстуру с папки _Compiled с таким же названием как твоя только с "-C" имено двиг игры конвертирует твою редактированую текстуру в TEX которую он считует.
 

NIKO666

Участник форума
Регистрация
9 Авг 2010
Сообщения
13
Благодарности
0
Баллы
150
MaGoth, Spielmann, Спасибо за ответы, прийду домой - попробую.*byp*
 

posehn

Участник форума
Регистрация
3 Фев 2010
Сообщения
29
Благодарности
0
Баллы
150
Косяк с навыком ПОДКРАДЫВАНИЕ, в процессе игры он просто исчез. Подскажите, как можно его вернуть ? Читами или прописать где-нить ? (Insert SH и Insert CH - не работает)
 

MaGoth

★★★★★★★★★★★
Администратор
Регистрация
7 Янв 2003
Сообщения
19.367
Благодарности
7.816
Баллы
995
posehn, Ты разделом случайно не ошибся?
Читаем внимательно куда пишем, с вопросами по багам игры пишем в темы технической помощи той игры или мода в которые играем.
 

Feuermagier


Модостроитель
Регистрация
13 Апр 2008
Сообщения
934
Благодарности
136
Баллы
225
Ребят, подскажите, пожалуйста, как можно увеличить или уменьшить время жизни призванного существа, если такое вообще возможно?
 

Наяд

Участник форума
Регистрация
21 Ноя 2009
Сообщения
1.050
Благодарности
0
Баллы
220
А разве время не задается в самом заклинании?
Вот пример функции вызова скелета:
Код:
func void Spell_Cast_SummonSkeleton()
{
	if(Npc_GetActiveSpellIsScroll(self))
	{
		self.attribute[ATR_MANA] = self.attribute[ATR_MANA] - SPL_Cost_Scroll;
	}
	else
	{
		self.attribute[ATR_MANA] = self.attribute[ATR_MANA] - SPL_Cost_SummonSkeleton;
	};
	self.aivar[AIV_SelectSpell] += 1;
	if(Npc_IsPlayer(self))
	{
		[B]Wld_SpawnNpcRange[/B](self,Summoned_Skeleton,[B]1,500[/B]);
	}
	else
	{
		Wld_SpawnNpcRange(self,Skeleton,1,500);
	};
};
Не проверял, но по идее Wld_SpawnNpcRange должен этим заведовать.
 

Feuermagier


Модостроитель
Регистрация
13 Апр 2008
Сообщения
934
Благодарности
136
Баллы
225
Они призваны не заклинанием, которое прочитал герой. Умирают как обычно призванные существа
 

Наяд

Участник форума
Регистрация
21 Ноя 2009
Сообщения
1.050
Благодарности
0
Баллы
220
Вряд ли такое возможно... А вариант с привязкой существ на местность, выходя из которой они бы подыхали, не подходит?
 

Feuermagier


Модостроитель
Регистрация
13 Апр 2008
Сообщения
934
Благодарности
136
Баллы
225
Вряд ли такое возможно...
Возможно*flowers*
Мне нужен не вариант когда они сдохнут, а найти гребаный счетчик по которому они живут.
Если конечно им можно навязать альтернативный счетчик каким либо образом, то этот вариант тоже пойдет.
 

Myxomop

Почетный форумчанин
Регистрация
28 Май 2005
Сообщения
3.239
Благодарности
2.581
Баллы
455
Feuermagier, если у тебя вызывается Summoned_Skeleton или че-то похожее, у которого прописан распорядок start_aistate = ZS_MM_Rtn_Summoned; вот именно в этом распорядке и установлен счетчик времени.
\AI\Monster\RTN_Monster\ZS_MM_Rtn_Summoned.d


func void B_SummonedAssessTalk()
{
Npc_ChangeAttribute(self,ATR_HITPOINTS,-self.attribute[ATR_HITPOINTS_MAX]);
};

func void ZS_MM_Rtn_Summoned()
{
Npc_SetPercTime(self,1);
Npc_PercEnable(self,PERC_ASSESSPLAYER,B_MM_AssessPlayer);
Npc_PercEnable(self,PERC_ASSESSENEMY,B_MM_AssessEnemy);
Npc_PercEnable(self,PERC_ASSESSMAGIC,B_AssessMagic);
Npc_PercEnable(self,PERC_ASSESSDAMAGE,B_MM_AssessDamage);
Npc_PercEnable(self,PERC_ASSESSFIGHTSOUND,B_MM_AssessOthersDamage);
if(Hlp_GetInstanceID(self) == Hlp_GetInstanceID(Wisp_Detector))
{
Npc_PercEnable(self,PERC_ASSESSTALK,B_AssessTalk);
}
else
{
Npc_PercEnable(self,PERC_ASSESSTALK,B_SummonedAssessTalk);
};
B_SetAttitude(self,ATT_FRIENDLY);
self.aivar[AIV_PARTYMEMBER] = TRUE;
AI_Standup(self);
AI_SetWalkMode(self,NPC_RUN);
};

func int ZS_MM_Rtn_Summoned_Loop()
{
B_MM_WispDetect();
if(Npc_GetDistToNpc(self,hero) > 500)
{
AI_GotoNpc(self,hero);
}
else if(Npc_GetStateTime(self) >= 1)
{
if(!Npc_CanSeeNpc(self,hero))
{
AI_TurnToNPC(self,hero);
};
self.aivar[AIV_SummonTime] = self.aivar[AIV_SummonTime] + Npc_GetStateTime(self);
if(self.aivar[AIV_SummonTime] >= MONSTER_SUMMON_TIME)
{
Npc_ChangeAttribute(self,ATR_HITPOINTS,-self.attribute[ATR_HITPOINTS_MAX]);
};

Npc_SetStateTime(self,0);
};
self.wp = Npc_GetNearestWP(self);
return LOOP_CONTINUE;
};

func void ZS_MM_Rtn_Summoned_End()
{
};
 

Наяд

Участник форума
Регистрация
21 Ноя 2009
Сообщения
1.050
Благодарности
0
Баллы
220
Согласен, тут я не прав, такие люди как Мухомор, например, всегда найдут выход из ситуации:)
найти гребаный счетчик по которому они живут.
Так если не можешь найти сам, почему бы не создать самому и присобачить к чему-нибудь на выполнение какого-либо действия, к примеру, главное рассчитать правильно время.
Хотя, судя по посту Myxomop'а, если даже просто инсертишь существо из "вызываемой" гильдии, оно все равно погибают через положенное время. Все предельно просто, как это обычно бывает:D.

Update
Кстати, получается, если создать гильдию из пустого слота по примеру любой другой "Summoned", и, допустим из диалога присвоить неписю эту гильдию, он погибнет через заданное время (которое в свою очередь можно свободно прописывать), так? Собсно, вопрос, можно ли гильдией привязать этот распорядок на смерть, не потеряв предыдущий, обычный распорядок дня непися? Если такое можно сделать, очень бы пригодилось в квестах.
 

HeDeDe

Участник форума
Регистрация
17 Авг 2009
Сообщения
203
Благодарности
79
Баллы
180
Собсно, вопрос, можно ли гильдией привязать этот распорядок на смерть, не потеряв предыдущий, обычный распорядок дня непися?
Изменять распорядок сменой гильдии нельзя. Но у меня есть несколько идей как все это реализовать. (Например, просто добавить в циклы распорядка дня таймер, который будет работать при условии что гильдия такая‐то)
 

Dimmell

Участник форума
Регистрация
23 Ноя 2008
Сообщения
2.899
Благодарности
111
Баллы
285
Собсно, вопрос, можно ли гильдией привязать этот распорядок на смерть, не потеряв предыдущий, обычный распорядок дня непися?
Прописываешь в ZS_MM_Attack.d примерно такой блок (делал в Ребалансе):
if(Npc_GetStateTime(self) > self.aivar[AIV_StateTime])
{
self.aivar[AIV_SummonTime] = self.aivar[AIV_SummonTime] + 1;
self.aivar[AIV_StateTime] = Npc_GetStateTime(self);
};
MONSTER_SUMMON_INT = ATR_INTELLECT - 10;
if((self.aivar[AIV_SummonTime] >= MONSTER_SUMMON_INT) && ((self.aivar[AIV_MM_REAL_ID] == ID_SUMMONED_DEMON) || (self.aivar[AIV_MM_REAL_ID] == ID_SUMMONED_WOLF) || (self.aivar[AIV_MM_REAL_ID] == ID_SUMMONED_GOBBO_SKELETON) || (self.aivar[AIV_MM_REAL_ID] == ID_SUMMONED_SKELETON) || (self.aivar[AIV_MM_REAL_ID] == ID_SummonedGuardian) || (self.aivar[AIV_MM_REAL_ID] == ID_SummonedZombie) || (self.aivar[AIV_MM_REAL_ID] == ID_SUMMONED_SWAMPDRONE) || (self.aivar[AIV_MM_REAL_ID] == ID_SUMMONED_GOLEM)))
{
Npc_ChangeAttribute(self,ATR_HITPOINTS,-self.attribute[ATR_HITPOINTS_MAX]);
}
else if(self.aivar[AIV_SummonTime] >= MONSTER_SUMMON_TIME)
{
Npc_ChangeAttribute(self,ATR_HITPOINTS,-self.attribute[ATR_HITPOINTS_MAX]);
};
И играйся с вызванными как хочешь. Время жизни при атаке зависит от интеллекта. Если вызванный не атакует никого - живет вечно.
 

Feuermagier


Модостроитель
Регистрация
13 Апр 2008
Сообщения
934
Благодарности
136
Баллы
225
Ребят, есть вопрос: как сделать невидимого нпс? Или если возможно убрать с нпс коллизию, чтобы сквозь него можно было пройти?
 

Spielmann

Участник форума
Регистрация
22 Май 2010
Сообщения
106
Благодарности
7
Баллы
175
Ребят, есть вопрос: как сделать невидимого нпс? Или если возможно убрать с нпс коллизию, чтобы сквозь него можно было пройти?

Чтоб сделать НПЦ полностю невидимим необходимо текстуру его доспеха полностю альфа канировать удалив само изображение, остальное не знаю.
 

Jr13San


Модостроитель
Регистрация
1 Апр 2010
Сообщения
463
Благодарности
288
Баллы
230
Ребят, есть вопрос: как сделать невидимого нпс? Или если возможно убрать с нпс коллизию, чтобы сквозь него можно было пройти?

Впринципе ничего сложного нет. Добавь в инстанцию нпс строчку:
Mdl_SetModelScale(self,0,0,0); //устанавливает масштаб модели по координатам в пространстве. Координаты установлены все в ноль, значит модель превратится в точку.

Визуализацию нпс тоже не смысла писать(в разумных целях, а то могут быть ошибки). Можно ещё убрать фокус и полоску здоровья вот этой функцией(писать тоже в инстанции нпс):
noFocus = True;

НО! у вас может возникнуть проблема с тем, что есть такие юзеры, которые могут убить вашего нпс, даже при условии, что он не видим. Первое, что нужно помнить - это бессмертие нпс. Вторая проблема - это фокус в режиме боя. Тот фокус, что выше - он даёт скрытость лишь в визуальном плане, но не в деле, поэтому на вашу точку на земле можно нацелиться как с оружия дальнего радиуса поражения, так и ближнего. Вот, но шанс нахождения такого нпс очень мал.

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