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

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

    Ссылка на конкурсную тему - тык

MaGoth

★★★★★★★★★★★
Администратор
Регистрация
7 Янв 2003
Сообщения
19.371
Благодарности
7.803
Баллы
995
Мільтен написал(а):
Такой вопрос имеется: я создал свой мир, создал вейпоинты, прописал 3 тестовых НПС. Но в моем мире эти НПС не появляются. В стартапе увидел, что весь поделен не части и для каждой части прописаны свои НПС. Сделал также и прописал туда вызов троих моих НПС. Результат нулевой. не могли бы вы мне объяснить, как сделать так, чтобы можно было в свой мир прописывать НПС и монстров и чтобы они появлялись.

Возможно у тебя не правильно прописан сам мир...
Попробуй в конце файла (Startup.d) дописать:

Код:
func void STARTUP_LOKATION_MY_WORLD()
{
  ...
  Wld_InsertNpc(Glm_Skeleton_Warrior,"MW_HUNTERS_RUINS_TAMPLE_01");
  Wld_InsertNpc(Skeleton,"MW_HUNTERS_RUINS_TAMPLE_02");
  Wld_InsertNpc(BAU_5916_Glm_Bauer,"MW_HUNTERS_HOUSE_02");
  ...
};

func void INIT_LOKATION_MY_WORLD()
{
  B_InitMonsterAttitudes();
  B_InitGuildAttitudes();
  CurrentLevel = LOKATION_MY_WORLD_ZEN;
  B_InitNpcGlobals();
};
где - MY_WORLD, имя твоего зен файла мира(Регистр важен!).

Также, пропиши свой мод файл в инишке мода, и старт-поинт для героя создать не забудь.
Все должно работать. ;)
 
Последнее редактирование модератором:

Мільтен

Участник форума
Регистрация
27 Июн 2008
Сообщения
862
Благодарности
427
Баллы
265
Скопировал скрипт Магота, заменил MY_WORLD на название моего зена, регистр учел.
Удалил кусок кода из стратапа, как посоветовал Сатурас.
В итоге вот, что у меня осталось в Стартапе:

Код:
func void startup_global()
{
	Game_InitGerman();
};

func void init_global()
{
	Game_InitGerman();
};

func void STARTUP_Testlevel()
{
};

func void INIT_SUB_Testlevel()
{
};

func void INIT_Testlevel()
{
	B_InitMonsterAttitudes();
	B_InitGuildAttitudes();
	B_InitNpcGlobals();
	INIT_SUB_Testlevel();
};

func void STARTUP_LOKATION_ISLAND_FINAL()
{
  Wld_InsertNpc(Bau_5002_Anerin,"ANERIN_BED");
  Wld_InsertNpc(Bau_5003_Milda,"MILDA_BED");
  Wld_InsertNpc(Bau_5004_Finzo,"FINZO_BED");
};

func void INIT_LOKATION_ISLAND_FINAL()
{
  B_InitMonsterAttitudes();
  B_InitGuildAttitudes();
  CurrentLevel = LOKATION_ISLAND_FINAL_ZEN;
  B_InitNpcGlobals();
};

В строке CurrentLevel = LOKATION_ISLAND_FINAL_ZEN; Соусер при компиляции находит ошибку:
Неизвестный идентификатор LOKATION_ISLAND_FINAL_ZEN.
 
Последнее редактирование модератором:

Magmatic Imperius

Участник форума
Регистрация
21 Апр 2009
Сообщения
85
Благодарности
10
Баллы
160
У тебя там строчка отсутствует
func void INIT_SUB_LOKATION_ISLAND_FINAL ()
{

};
 

MEG@VOLT

★★★★★★★★★
ТехАдмин
Регистрация
24 Мар 2006
Сообщения
9.209
Благодарности
6.183
Баллы
1.565
попробуй сделать так:
func void INIT_LOKATION_ISLAND_FINAL()
{
Wld_InsertNpc(Bau_5002_Anerin,"ANERIN_BED");
Wld_InsertNpc(Bau_5003_Milda,"MILDA_BED");
Wld_InsertNpc(Bau_5004_Finzo,"FINZO_BED");
};

func void STARTUP_LOKATION_ISLAND_FINAL()
{
B_InitMonsterAttitudes();
B_InitGuildAttitudes();
B_InitNpcGlobals();
CurrentLevel = LOKATION_ISLAND_FINAL_ZEN;
B_InitNpcGlobals();
};
 
Последнее редактирование:

Magmatic Imperius

Участник форума
Регистрация
21 Апр 2009
Сообщения
85
Благодарности
10
Баллы
160
MEG@VOLT написал(а):
попробуй сделать так:
func void INIT_LOKATION_ISLAND_FINAL()
{
Wld_InsertNpc(Bau_5002_Anerin,"ANERIN_BED");
Wld_InsertNpc(Bau_5003_Milda,"MILDA_BED");
Wld_InsertNpc(Bau_5004_Finzo,"FINZO_BED");
};

func void STARTUP_LOKATION_ISLAND_FINAL()
{
B_InitMonsterAttitudes();
B_InitGuildAttitudes();
B_InitNpcGlobals();
CurrentLevel = LOKATION_ISLAND_FINAL_ZEN;
B_InitNpcGlobals();
};
В StartUp такая еще штука есть
FUNC VOID INIT_NewWorld()
{
B_InitMonsterAttitudes ();
B_InitGuildAttitudes();
B_InitNpcGlobals ();

B_ENTER_NEWWORLD ();
B_ENTER_NEWWORLD - скрипт что и кого перс встретит в локации. Надо бы для своей локации и это прописать.
 
Последнее редактирование модератором:

Мільтен

Участник форума
Регистрация
27 Июн 2008
Сообщения
862
Благодарности
427
Баллы
265
Всё люди, я прописал свой мир и в нем появляются НПС. Вот правильный код.

Код:
func void STARTUP_ISLAND_FINAL()
{
  Wld_InsertNpc(Bau_5002_Anerin,"ANERIN_BED");
  Wld_InsertNpc(Bau_5003_Milda,"MILDA_BED");
  Wld_InsertNpc(Bau_5004_Finzo,"FINZO_BED");
};

func void INIT_SUB_ISLAND_FINAL()
{
  
};

func void INIT_ISLAND_FINAL()
{
  B_InitMonsterAttitudes();
  B_InitGuildAttitudes();
  B_InitNpcGlobals();
  INIT_SUB_ISLAND_FINAL();
};
 
Последнее редактирование модератором:

Sabertooth

Участник форума
Регистрация
10 Авг 2009
Сообщения
51
Благодарности
0
Баллы
155
Изучил скрипты и прочее в моде Странник, меня очень заинтересовала тема огнестрельного оружия, там оно как арбалет реализованно, но хотелось бы узнать, возможно ли вообще реализовать оружие, которо будет бить очередью, и если возможно, то как хотя бы примерно это сделать?
 

Myxomop

Почетный форумчанин
Регистрация
28 Май 2005
Сообщения
3.238
Благодарности
2.579
Баллы
455
Sabertooth написал(а):
но хотелось бы узнать, возможно ли вообще реализовать оружие, которо будет бить очередью, и если возможно, то как хотя бы примерно это сделать?
А собсно чем очередь отличается от обычной стрельбы - отсутствием фазы перезарядки. Вот удалить нафик, или сократить до минимума эту фазу анимации и вперед. Фазы анимации стрельбы для лука и арбалета в разделах humans.mds и их оверлеях для каждого уровня мастерства.
 
Последнее редактирование модератором:

Sabertooth

Участник форума
Регистрация
10 Авг 2009
Сообщения
51
Благодарности
0
Баллы
155
До сих пор так и не разобрался с текстурой новой для тела, которую я хочу добавить. В AI constants указал, в строчке, где у гг текстура тела пишется, в файле pc_hero тоже указал, но так и не работает, где то же должен файл текстуры быть со скриптами связан, прежде чем ему константу присваивают. Кто нибудь знает, где, хотя бы примерно искать? А то я уже всё перерыл, нигде не нашёл, пробовал другие моды смотреть, гдеесть новые текстуры, но там так же, только в константах и у того ygc? кому надо прописанно, но ведь в папке текстур файл назван по другому, не как в скриптах, значит где то ему должно даваться название, которое в скриптах используется, вот где только?
 

Magmatic Imperius

Участник форума
Регистрация
21 Апр 2009
Сообщения
85
Благодарности
10
Баллы
160
Вроде кроме AI constants и скрипта самого перса нигде ничего прописывать не надо. Попробуй вызвать Face Helper в игре, на нём можно проверить. И кстати какой формат у твоей текстуры? Готика воспринимает только tga и TEX.
 

Sabertooth

Участник форума
Регистрация
10 Авг 2009
Сообщения
51
Благодарности
0
Баллы
155
Формат TEX а вот насчёт FH это не прокатит, у него можно головы какие хошь выбирать, а текстура тела либо первая мужская либо первая женская, а та, что я добавил, она не первая, может кстати сам файл назвать как то по иному, он назван у меня щас как HUM_BODY_NAKED_V13.TEX так как последняя из тех, что там уже были, это 12, а моя новая по идее должна же быть следующей?
 

Magmatic Imperius

Участник форума
Регистрация
21 Апр 2009
Сообщения
85
Благодарности
10
Баллы
160
Попробуй, в нуд моде текстуры имели такое название HUM_BODY_NAKED_V4_C0-C. Может и у тебя прокатят.
 

Sabertooth

Участник форума
Регистрация
10 Авг 2009
Сообщения
51
Благодарности
0
Баллы
155
Всёравно не работает, ставит текстуру теперь последнюю, которая в ночи ворона есть, хотя после неё идёт как раз моя, и везде, где надо, моя прописанна, не катит
 

Мільтен

Участник форума
Регистрация
27 Июн 2008
Сообщения
862
Благодарности
427
Баллы
265
Sabertooth написал(а):
Всёравно не работает, ставит текстуру теперь последнюю, которая в ночи ворона есть, хотя после неё идёт как раз моя, и везде, где надо, моя прописанна, не катит

Сталкивался с подобной проблемой. Я так вводил новые текстуры:
1 - создал Тгашную текстуру и гоманом конвертировал в текс. Положил в папку Textures\_compiled.
2 - прописал в файле AI constants скриптовое название текстуры.
3 - прописал текстуру НПСу.
Ну и все вобщем. Там правда есть нюансы, например у меня текстуры работают если у них такое название:
HUM_BODY_NAKED_V13_C0-C.TEX
Большими буквами и после названия текстуры дописывать "-С."
Приведу пример скриптового названия текстуры и его действительного, скажем так, названия.
Смотрим скрипт например Онара:
Код:
instance Bau_900_Onar(Npc_Default)
{
	name[0] = "Онар";
	guild = GIL_BAU;
	id = 900;
	voice = 14;
	flags = NPC_FLAG_IMMORTAL;
	npcType = npctype_main;
	B_SetAttributesToChapter(self,4);
	fight_tactic = FAI_HUMAN_STRONG;
	EquipItem(self,ItMw_1h_Bau_Mace);
	B_CreateAmbientInv(self);
	B_SetNpcVisual(self,MALE,"Hum_Head_FatBald",Face_N_OldBald_Jeremiah,BodyTex_N,ITAR_Vlk_H);
	Mdl_SetModelFatness(self,2);
	Mdl_ApplyOverlayMds(self,"Humans_Arrogance.mds");
	B_GiveNpcTalents(self);
	B_SetFightSkills(self,70);
	daily_routine = Rtn_Start_900;
};


func void Rtn_Start_900()
{
	TA_Sit_Throne(9,0,21,0,"NW_BIGFARM_HOUSE_ONAR_SIT");
	TA_Sleep(21,0,9,0,"NW_BIGFARM_HOUSE_UP1_04");
};

В скрипте прописано лицо под названием Face_N_OldBald_Jeremiah. Открываем AI constants и ищем это название. Снизу есть следующее:

const int Face_N_OldBald_Jeremiah = 108;

Это значит что скриптовое имя Face_N_OldBald_Jeremiah носит текстуры лица с номером 108. Открываем папку Textures\NPC\Head. Видим там текстуру с названием Hum_Head_V108_C0.tga
Это "действительное"название текстуры лица Онара. Точно так же и с телами.
 
Последнее редактирование модератором:

Magmatic Imperius

Участник форума
Регистрация
21 Апр 2009
Сообщения
85
Благодарности
10
Баллы
160
Вчера порылся в скрипте фэйсхелпера и не понял как там задается смена текстур. Смена голов и пола прописана четко и ясно, а текстуры не очень. Объясните, please, как оно устроено.
 

Sabertooth

Участник форума
Регистрация
10 Авг 2009
Сообщения
51
Благодарности
0
Баллы
155
Теперь вроде всё работает, но теперь почему то любой ищущий на лесного брата стал похож, я текстуру их бронь и вовсе не трогал а она теперь у них такая же как и текстура зелёного луга, хотя раньше такого небыло.
 

Dimmell

Участник форума
Регистрация
23 Ноя 2008
Сообщения
2.899
Благодарности
111
Баллы
285
Magmatic Imperius написал(а):
Вчера порылся в скрипте фэйсхелпера и не понял как там задается смена текстур. Смена голов и пола прописана четко и ясно, а текстуры не очень. Объясните, please, как оно устроено.
В том же AI_constants:
const int BodyTex_P = 0;
const int BodyTex_N = 1;
const int BodyTex_L = 2;
const int BodyTex_B = 3;
const int BodyTexBabe_P = 4;
const int BodyTexBabe_N = 5;
const int BodyTexBabe_L = 6;
const int BodyTexBabe_B = 7;
const int BodyTex_Player = 8;

с 0 до 3 - мужики
с 4 до 7 - дамы.
Значение - это число в HUM_BODY_NAKED_V2_C0-C.tex
Если я ничего не путаю. ;)
 
Последнее редактирование модератором:

Magmatic Imperius

Участник форума
Регистрация
21 Апр 2009
Сообщения
85
Благодарности
10
Баллы
160
Я имел ввиду не названия текстур, я имел ввиду реализацию смены текстур в скрипте DIA_FH.d Какая команда их меняет? По примеру мордахелпера охота бодихелпера замутить. ))
Чувствую загвоздка где-то в начале, хотя может есть еще какой скрипт с этим связанный.
 

Мільтен

Участник форума
Регистрация
27 Июн 2008
Сообщения
862
Благодарности
427
Баллы
265
Sabertooth написал(а):
Теперь вроде всё работает, но теперь почему то любой ищущий на лесного брата стал похож, я текстуру их бронь и вовсе не трогал а она теперь у них такая же как и текстура зелёного луга, хотя раньше такого небыло.

У меня есть предположения, но я не уверен:
1 - такое может случиться, если переименовать tex текстуру робы Ищущего на текстуру луга(по-моему случайно этого не сделаешь, так что отпадает).
2 - возможно что текстура ищущего исчезла из папки _compiled и игра почему-то стала использовать луг... хотя логики в этом ни капли не вижу.

Может это с самим доспехом что не так... попробуй заменить свой файл с названием ARMOR_DEMENTOR.MDM моим(прикрепил к посту). Он лежит в папке Anims\_compiled. Если не поможет и никто не сможет дать тебе дельного совета, лучше тогда готику переустанови что ли.
Хотя если у тебя скорость приличная и траффик не ограничен я могу залить тебе куда-нибудь папку с компилированными текстурами Готики 2. Если и это не поможет, то еще скрипты залью. У меня реально нет никаких конкретных соображений по поводу твоей проблемы... ты уверен что не трогал ни доспех, ни текстуру ни скрипт Ищущего?
 
Последнее редактирование модератором:

Sabertooth

Участник форума
Регистрация
10 Авг 2009
Сообщения
51
Благодарности
0
Баллы
155
Я проверил, там всё в порядке, у робы ищущего текстура какая и должна быть. Скрипты у меня есть, те, что тут выложенные, ну которые Маразмус уже подправил, то есть без ошибок. Может мне вообще готику переустановить, потому что у средней брони горожанина та же проблема, она становится как кирпичная кладка крепостной стены. Мне кажется, что я как то неправильно новые брони добавлял, старые вроде не трогал, но новых добавил, когда новую одеваешь, то игра очень сильно тупит, но броня одевается и выглядит нормально, а старые брони вот так вот глючат.
И у меня ещё один вопрос, может кому то он и покажется дурацким, но для меня это археважно. Для того, что бы убрать с уже суествующей карты Newworld или любой другой все объекты, что связанны с цивилизацией, мосты, дома, город, заменить дороги на те, что без следов от телеги, мне нужно работать в 3D max или я смогу обойтись Spaser, только если что то смогу а что то нет, то скжите, что и с помощью какой проги менять.
 
Сверху Снизу