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

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

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

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

ElderGamer


Модостроитель
Регистрация
16 Апр 2008
Сообщения
4.410
Благодарности
3.241
Баллы
525
задвигается деревянная крышка у деревянной же ловушки?

Есть звуки открывания и закрывания дверей, но они слишком короткие. Боюсь, подходящего звука в игре нет. Я делал звуки для деревянных ворот в Г1. Если интересно, могу поделиться.
 

kraw


Модостроитель
Регистрация
11 Окт 2005
Сообщения
2.095
Благодарности
871
Баллы
295
Еще один вопрос. Сделал персонажа с визуализацией гоблина. Пытаюсь с ним вступить в диалог - не вступает. Есть подозрение, что это из-за отсутствия нужных анимаций. Может быть кто знает, как решить эту проблему? Может есть где нужные модельки гоблина и/или анимации для него?
 

Vlad_Torop

Участник форума
Регистрация
2 Май 2014
Сообщения
873
Благодарности
501
Баллы
245
Приветствую.Пытаюсь вставить моб в Спейсере по видеоуроку(там в папке Meshes находятся items,intern,level,magic,mobs), но в моей папке meshes (work\data\meshes) кроме папки _compiled (с файлами mrm) ничего нет.Вопрос:как сделать что-бы было?З
 

Yelawolf

★★★★★★★★★
Супермодератор
Регистрация
27 Дек 2011
Сообщения
1.415
Благодарности
471
Баллы
355
Может быть кто знает, как решить эту проблему?
Могу не совсем точно подсказать, но может стоит поменять ему гильдию на "человеческую"? Именно так, был реализован говорящий гоблин в Возвращении.

Вопрос:как сделать что-бы было?З
Установить G2MDK с полной распаковкой файлов.
 

Vlad_Torop

Участник форума
Регистрация
2 Май 2014
Сообщения
873
Благодарности
501
Баллы
245
Установить G2MDK с полной распаковкой файлов.
Спасибо.Оказывается при установке G2MDK не все файлы отметил
 

kraw


Модостроитель
Регистрация
11 Окт 2005
Сообщения
2.095
Благодарности
871
Баллы
295
Гильдия у него нормальная. Как у вполне разговаривающих орков (GIL_FRIENDLY_ORC). Наследует класс обычного NPC, как и другие персонажи (Npc_Default). И выполняет расписание TA_Stand_WPб в котором нормально устанавливаются все восприятия. Единственное отличие - визуализация

Mdl_SetVisual (self,"Gobbo.mds");
 

Test Level

Участник форума
Регистрация
1 Ноя 2011
Сообщения
1.770
Благодарности
557
Баллы
275
Гильдия у него нормальная. Как у вполне разговаривающих орков (GIL_FRIENDLY_ORC). Наследует класс обычного NPC, как и другие персонажи (Npc_Default). И выполняет расписание TA_Stand_WPб в котором нормально устанавливаются все восприятия. Единственное отличие - визуализация

Mdl_SetVisual (self,"Gobbo.mds");
Возможно лезу не в свое дело, но делая говорящего демона, сталкивался с подобной проблемой. Как ни банально оказалось, но проблема крылась в startup. Гильдию не трогал
 

alex_draven


Модостроитель
Регистрация
13 Сен 2007
Сообщения
2.183
Благодарности
2.880
Баллы
420
kraw написал(а):
Может есть где нужные модельки гоблина и/или анимации для него?
Проблема 146% не в этом. Разговаривать может даже болванка, умеющая только стоять на месте.
 

Myxomop

Почетный форумчанин
Регистрация
28 Май 2005
Сообщения
3.239
Благодарности
2.581
Баллы
455
Проблема 146% не в этом. Разговаривать может даже болванка, умеющая только стоять на месте.
Угу. В используемых состояниях написанных для хуманов ZS_STAND_WP и функциях завязанных на набор восприятий людей могут быть прописаны анимации, которых у всяких монстров просто нет, что при отработке такого состояния чревато. Поэтому для диалогов с демоном Ксардаса, овцами, варгами и прочими Йодами из Странника (кстати тоже гоблин) и множества других из различных модов пишут собственные состояния, примеров навалом.

func void ZS_Stand_WP()
{
Perception_Set_Normal();
B_ResetAll(self);
AI_SetWalkMode(self,NPC_WALK);
AI_GotoWP(self,self.wp);
AI_AlignToWP(self);
self.aivar[AIV_TAPOSITION] = NOTINPOS;
};

func int ZS_Stand_WP_loop()
{
var int random;
if(self.aivar[AIV_TAPOSITION] == NOTINPOS)
{
AI_PlayAni(self,"T_STAND_2_LGUARD");
self.aivar[AIV_TAPOSITION] = ISINPOS;
};
if((Npc_GetStateTime(self) > 5) && (self.aivar[AIV_TAPOSITION] == ISINPOS))
{
random = Hlp_Random(10);
if(random == 0)
{
AI_PlayAni(self,"T_LGUARD_SCRATCH");
}
else if(random == 1)
{
AI_PlayAni(self,"T_LGUARD_STRETCH");
}
else if(random == 2)
{
AI_PlayAni(self,"T_LGUARD_CHANGELEG");
};
Npc_SetStateTime(self,0);
};
return LOOP_CONTINUE;
};

func void ZS_Stand_WP_end()
{
AI_PlayAni(self,"T_LGUARD_2_STAND");
};


Все функции прописанные ниже в наборе восприятий используются в основном хуманами и в каждой из них могут быть прописаны функции совместимые только с хуманами.
func void Perception_Set_Normal()
{
self.senses = SENSE_HEAR | SENSE_SEE;
self.senses_range = PERC_DIST_ACTIVE_MAX;
if(Npc_KnowsInfo(self,1) || C_NpcIsGateGuard(self))
{
Npc_SetPercTime(self,0.3);
}
else
{
Npc_SetPercTime(self,1);
};
Npc_PercEnable(self,PERC_ASSESSPLAYER,B_AssessPlayer);
Npc_PercEnable(self,PERC_ASSESSENEMY,B_AssessEnemy);
Npc_PercEnable(self,PERC_ASSESSMAGIC,B_AssessMagic);
Npc_PercEnable(self,PERC_ASSESSDAMAGE,B_AssessDamage);
Npc_PercEnable(self,PERC_ASSESSMURDER,B_AssessMurder);
Npc_PercEnable(self,PERC_ASSESSTHEFT,B_AssessTheft);
Npc_PercEnable(self,PERC_ASSESSUSEMOB,B_AssessUseMob);
Npc_PercEnable(self,PERC_ASSESSENTERROOM,B_AssessPortalCollision);
Npc_PercEnable(self,PERC_ASSESSTHREAT,B_AssessThreat);
Npc_PercEnable(self,PERC_DRAWWEAPON,B_AssessDrawWeapon);
Npc_PercEnable(self,PERC_ASSESSFIGHTSOUND,B_AssessFightSound);
Npc_PercEnable(self,PERC_ASSESSQUIETSOUND,B_AssessQuietSound);
Npc_PercEnable(self,PERC_ASSESSWARN,B_AssessWarn);
Npc_PercEnable(self,PERC_ASSESSTALK,B_AssessTalk);
Npc_PercEnable(self,PERC_MOVEMOB,B_MoveMob);
};
 
Последнее редактирование:

kraw


Модостроитель
Регистрация
11 Окт 2005
Сообщения
2.095
Благодарности
871
Баллы
295
Попробую сделать для гоблина отдельную функцию, аналог Stand_WP.

Только вот разговор с гоблином без анимаций будет выглядеть как разговор со статуэткой. :(

Где бы раздобыть модельку с аниамциями или анимации для стандартной модельки гоблина... Чтобы он хоть как-то шевелился...
 

alex_draven


Модостроитель
Регистрация
13 Сен 2007
Сообщения
2.183
Благодарности
2.880
Баллы
420
Myxomop написал(а):
Угу.
Я говорю именно про техническую возможность модели вести диалоги без анимаций. А не про невозможность без них исполнять расписания. Все, что красочно описано выше, мне хорошо известно, т.к. для автора вопроса я отлажвиал несколько больших альтернативных моделей. И они прекрасно работают без некоторых фаз анимаций вроде SCRATCH. Не в этом суть.
Что до гоблина, то быстрый запуск тестового мода напомнил мне, что гоблины сделаны только под кулачный бой (Fist_Run)с имитацией дубинки в лапках. Поэтому он не будет говорить, т.к. у него нет базовой анимации s_Run (ибо "разговаривать может даже болванка, умеющая только стоять на месте"). А этого гоблин не умеет.
И модель подвисает в неопределенном состоянии.

Чтобы он болтал, надо добавить ему нормальную ходьбу и бег без оружия. И вообще я бы сделал отдельную модель, возможно. Но это, Анатолий, не ранее, чем я с девками разгребусь. Там их табун у тебя.

kraw написал(а):
Где бы раздобыть модельку с аниамциями или анимации для стандартной модельки гоблина... Чтобы он хоть как-то шевелился...
Искходников нет. Надо с нуля делать.
 

Myxomop

Почетный форумчанин
Регистрация
28 Май 2005
Сообщения
3.239
Благодарности
2.581
Баллы
455
Я говорю именно про техническую возможность модели вести диалоги без анимаций. А не про невозможность без них исполнять расписания.
А я отвечал по существу вопроса, развернуто объясняя что может приводить к зависаниям в текущей модели и куда копать чтобы решить оные.

Что до гоблина, то быстрый запуск тестового мода напомнил мне, что гоблины сделаны только под кулачный бой (Fist_Run)с имитацией дубинки в лапках. Поэтому он не будет говорить, т.к. у него нет базовой анимации s_Run (ибо "разговаривать может даже болванка, умеющая только стоять на месте"). А этого гоблин не умеет.
И модель подвисает в неопределенном состоянии.
Демоны, варги, овцы и прочий бестиарий также сделаны только под кулачный бой (Fist_Run) и тем не менее диалоги с ними реализованы как в игре, так и различных модах и без зависаний. В моде Странник те же гоблин и собака имеют диалоги.
 

alex_draven


Модостроитель
Регистрация
13 Сен 2007
Сообщения
2.183
Благодарности
2.880
Баллы
420
Спору нет. Заставить работать можно. Только подход может быть разный.
Мне нравится вариант переделать модель, дополнив ее. Трудоемко, но зато потом очень гибко.
Если кто-то предпочитает все решать через скрипты, его воля. В таком случае предлагаю кривой шаблон.
Не факт, что самый оптимальный, но вариант.
Итак, разбиваем задачу:
1) Гоблин должен быть без изменений
2) Не должен атаковать героя
3) Для него должен быть разрешен диалог

Описываю монстра:
Код:
instance GOB_9261_FRIEND(Npc_Default)
{
name[0] = "Гоббо";
npcType = npctype_friend;
guild = GIL_SHEEP;
id = 9261;
voice = 18;
Mdl_SetVisual(self,"Gobbo.mds");
Mdl_SetVisualBody(self,"Gob_Body",1,DEFAULT,"",DEFAULT,DEFAULT,-1);
Npc_SetToFistMode(self);
start_aistate = ZS_MM_Rtn_GobRest;
aivar[AIV_MM_RestStart] = OnlyRoutine;
};

Для него выделил свое состояние ZS_MM_Rtn_GobRest. Вот оно:
Код:
//fix! add frendly gobbo routine
func void ZS_MM_Rtn_GobRest()
{
Npc_SetPercTime(self,1);
Perception_Set_Monster_Rtn();
// включить, если монстр должен заговорить первым. Поправить тогда B_MM_AssessPlayer под эти условия
//Npc_PercEnable(self,PERC_ASSESSPLAYER,B_MM_AssessPlayer);
Npc_PercEnable(self,PERC_ASSESSTALK,B_AssessTalk);
AI_SetWalkMode(self,NPC_WALK);
B_MM_DeSynchronize();
if(Hlp_StrCmp(Npc_GetNearestWP(self),self.wp) == FALSE)
{
AI_GotoWP(self,self.wp);
};
if(Wld_IsFPAvailable(self,"FP_ROAM"))
{
AI_GotoFP(self,"FP_ROAM");
}
else
{
AI_AlignToWP(self);
};
self.aivar[AIV_TAPOSITION] = 0;
};

func int ZS_MM_Rtn_GobRest_Loop()
{
var int randomMove;
if(!Wld_IsTime(self.aivar[AIV_MM_RestStart],0,self.aivar[AIV_MM_RestEnd],0) && (self.aivar[AIV_MM_RestStart] != OnlyRoutine))
{
AI_StartState(self,ZS_MM_AllScheduler,1,"");
return LOOP_END;
};
return LOOP_CONTINUE;
};

func void ZS_MM_Rtn_GobRest_End()
{
};

Далее еду в B_AssessTalk и правлю:
Код:
//fix! && (self.id != 9261)
if(self.guild > GIL_SEPERATOR_HUM && (self.id != 9261))
{
if(Npc_CheckInfo(self,1) == FALSE)
{
if(Npc_CheckInfo(self,0) == FALSE)
{
return;
};
};
};
Ну и вот, что вышло:
gobbo.jpg
Уверен, что скриптовых вариантов вагон. Но мой, с переделкой модели, позволил бы освободить руки гоблина и дал бы возможность использовать "людские" скрипты, а не монстерские.
 

alex_draven


Модостроитель
Регистрация
13 Сен 2007
Сообщения
2.183
Благодарности
2.880
Баллы
420
Еще дополнил свой вариант так:
Код:
instance GOB_9261_FRIEND(Npc_Default)
{
    name[0] = "Гоббо";
    //npcType = npctype_friend;
    guild = GIL_GOBBO;
    //guild = GIL_SHEEP;
    id = 9261;
    voice = 18;
    Mdl_SetVisual(self,"Gobbo.mds");
    Mdl_SetVisualBody(self,"Gob_Body",1,DEFAULT,"",DEFAULT,DEFAULT,-1);
    Npc_SetToFistMode(self);
    start_aistate = ZS_MM_Rtn_GobRest;
    aivar[AIV_MM_RestStart] = OnlyRoutine;
    // add some func
    aivar[AIV_NoFightParker] = TRUE;
    damagetype = DAM_EDGE;
    fight_tactic = FAI_GOBBO;
    senses = SENSE_HEAR | SENSE_SEE | SENSE_SMELL;
    senses_range = PERC_DIST_MONSTER_ACTIVE_MAX;
    aivar[AIV_MM_FollowTime] = FOLLOWTIME_LONG;
    aivar[AIV_MM_FollowInWater] = FALSE;
};
Теперь гоблин опять гоблин, а не паршивая овца. Может говорить, если его не бить. Если атаковать, даст сдачи. По-моему, нормальный вариант.
Begemot666 написал(а):
Тоже вариант. Только диалог все равно должен быть разрешен для монстра.
const int AIV_EnemyOverride = 61; //TRUE, если врагов у НПС нет
const int AIV_NoFightParker = 71; //TRUE, если НПС не может атаковать
 
Последнее редактирование:

Test Level

Участник форума
Регистрация
1 Ноя 2011
Сообщения
1.770
Благодарности
557
Баллы
275
Изиенте, ребята.Я не мододел.0 Больше года копаюсь со своим проектом -+освоил 3ds мах 2013, освоил готиксоурсер, но не приблизился к Вам ни на шаг. Спасибо камраду Хелдару, за то, что консультировал меня в личке консультировал спасибо извини, брат, я саломался
 

Хелдар

Участник форума
Регистрация
3 Июл 2012
Сообщения
2.450
Благодарности
780
Баллы
375
Изиенте, ребята.Я не мододел.0 Больше года копаюсь со своим проектом -+освоил 3ds мах 2013, освоил готиксоурсер, но не приблизился к Вам ни на шаг. Спасибо камраду Хелдару, за то, что консультировал меня в личке консультировал спасибо извини, брат, я саломался
Может, не очень подходящая тема для ответа, но мне хочется, чтобы все опытные мододелы увидели и подписались под каждым словом, и ты понял, что я не просто утешаю.
Копаться больше года может далеко не каждый. Обычно энтузиазм угасает через пару недель, много - месяц. Потом ты работаешь только потому, что бросать сделанное жалко. Это, кстати, самый интересный парадокс модостроя, да и вообще жизни - сначала у тебя есть желание, но нет навыков, а потом с точностью наоборот.
Даже если в итоге ты дело забросишь - радуйся, что изучил новые программы, заставил мозги поскрипеть. В противном случае ты бы время наверняка ведь потратил зря, на какую-нибудь ерунду, чтоб скуку разогнать.
И насчет "не приблизился". Тебя стоит похвалить уже за то, что ты не открывал тем с анонсом "мегамода", а работал тихо и спокойно, да и здешнюю братию не закидывал ежедневно тупыми вопросами. Что до матерых мододелов - даже они работают вместе, ибо все не тянут, да и проколы бывают у них тоже - просто ребята молчат, скрипя зубами, исправляют, а потом радуют нас очередным шедевром.
А что до консультаций - тут каждый готов помочь. Мне было не жалко пошевелить мозгами для еще одного готомана, который решил привнести нечто новое в нашу любимую игру. И то зачастую мои консультации сводились к тому, что я посылал тебя сюда:D И каждый помогал бы тебе так же, и ты, я думаю, помогал бы новичку.
Напоследок лишь скажу вот что: по себе знаю, что иногда накатывает жуткое отвращение к работе, но через неделю-другую все равно тянет продолжить реализовывать свою затею. Не пытайся тянуть все в одиночку - нет ничего зазорного в том, чтобы попросить кого-то выручить тебя с моделькой, сложным скриптом или идеей для квеста. Собственно, для взаимопомощи люди и объединяются в команды (хотя с ними следует быть предельно осторожным). Вот и все, что я хотел сказать. Удачи тебе! Передохни, посмотри тут, на форуме, темы, где могут подсобить с чем-то, а потом снова принимайся за дело. И помни, что вся модостроительская братия желает тебе закончить твой мод!
 
Сверху Снизу