Версия для печати темы

Нажмите сюда для просмотра этой темы в обычном формате

Форум студии Seaward.Ru _ Модификации для игр на ядре Storm 2.x _ Как сделать ГГ мартышкой (другим типом перса)

Автор: VladNiP Aug 7 2009, 13:14

У меня есть впорос, связанный с главным героем.
Я пытаюсь сделать его обезьянкой. 3.gif
Заметил кое-что в енкуантерах.
Код.

Код
case "monkey":
        isSet = true;
        chr.sex = "monkey";
        LAi_type_monkey_Init(chr);
        RemoveCharacterEquip(chr, BLADE_ITEM_TYPE);
        LAi_NPC_Equip(chr, mchr_rank + 3, true, false);
        break;

Конкретно строка: LAi_type_monkey_Init(chr);
Решил похимичить. smile.gif
Но ничего не получилось.
Вопрос: Можно ли сделать главного героя обезъянкой и как это сделать если можно. ( чтоб анимация была и не было глюков. smile.gif )
Пользуясь случаем хочу поблагодарить ALexusB'a и Alexad_D'a. Действительно помогло. smile.gif

Автор: navy Aug 7 2009, 13:29

Цитата
Вопрос: Можно ли сделать главного героя обезъянкой и как это сделать если можно. ( чтоб анимация была и не было глюков. )

Можно smile.gif Вообще это веселая задачка... Надо освежить в памяти.. Кстати ГГ сделать проще, чем НПС wink.gif

кстати этот код (выше) я не видел нигде, он откуда? smile.gif

Автор: VladNiP Aug 7 2009, 13:35

Цитата
кстати этот код (выше) я не видел нигде, он откуда?

Вот путь: smile.gif
ПКМ/PROGRAM/LandEncounters/LEnc_monsters.c
В этом файле найти строчки:
//Скорректировать параметры созданного монстра
void LEnc_MonstersLoginCorrectParams(ref location, aref chr, string group, string locator)

Автор: Alexad_D Aug 7 2009, 13:43

Именно главного перса - обезьянкой??? Извини лень читать пред сообщения - что пробовал уже? А где ты ее вообще выкопал чейто я не могу ее найти

Автор: VladNiP Aug 7 2009, 13:47

Цитата
Именно главного перса - обезьянкой??? Извини лень читать пред сообщения - что пробовал уже?

Именно. 1.gif smile.gif
Пытался вставить тот код - LAi_type_monkey_Init(chr); В characters_init.c.
А именно под строчкой: makeref(ch,Characters[0]); //Blaze Devlin
Также заменил пол на обезъяний. smile.gif ну и модель моменял.
В результате - черный экран. sad.gif

Автор: Alexad_D Aug 7 2009, 13:57

Анимацию нашел а вот саму обезьянку нет.... Скорее всего анимация кривая из-за того что скелет ГГ не привязывается к анимации обезьянки так как его ломает а подсмотреть локаторы костей неоткуда .... во всяком случае я не нашел у себя модельку обезьянки Ща поэксперементируем в туле

Вернее нашел обезьянку ща поэксперементирую

Автор: VladNiP Aug 7 2009, 13:59

Модель-то я нашел. Она так и называется Monkey.gm.
А вот файс я не нашел в конвертере. sad.gif
Анимация тоже вроде называется Monkey.ani
А вот анимации головы, я так понял, нет.
Боюсь, что какой-то код недописал в файле. sad.gif

Автор: ALexusB Aug 7 2009, 14:12

Вот кусок кода из ВМЛльной панели тестов - проверял превращение, потом в пасхалку сделал.
Превращает офицера в 3 слоте

Код
ref PChar, pOfficer;
    int cn, i, n;

    PChar = GetMainCharacter();

    // test monkey -->
    if (GetOfficersIndex(Pchar, 3) > 0)
    {
       ref chr = GetCharacter(GetOfficersIndex(Pchar, 3));
       float locx, locy, locz;
       GetCharacterPos(chr, &locx, &locy, &locz);
       CreateParticleSystemX("blast", locx, locy, locz, locx, locy, locz,0);

       chr.model = "monkey";//"monkey";
       chr.model.animation  = "monkey";//"monkey";
       chr.headModel = "h_monkey";
       chr.FaceId = 46;
       chr.name     = "Мартышка";
       chr.lastname = "Долли";
       chr.sex = "monkey";
       chr.quest.officertype = "Мартышка";
       //chr.model.height = 1.0;
       chr.dialog.filename = "Quest\monkey_dialog.c";
       LAi_SetOfficerMonkeyType(chr);
       SendMessage(chr, "lss",   MSG_CHARACTER_SETMODEL, chr.model, chr.model.animation);
    }


метод типа самописный
вот он
Код

//Установить персонажу тип офицера
void LAi_SetOfficerMonkeyType(aref chr)
{
    chr.chr_ai.type = LAI_DEFAULT_TYPE;
    LAi_type_offmonkey_Init(chr);
    LAi_group_MoveCharacter(chr, LAI_GROUP_PLAYER);
}


Для ГГ нужно что-то подобное. Или даже проще - заемнить модель и анимацию и все, уже будлет управляться. начнет глючить, когда перейдет в режим боя или сядет в таверне.

то есть имеем для ГГ
chr.model = "monkey";//"monkey";
chr.model.animation = "monkey";//"monkey";
SendMessage(chr, "lss", MSG_CHARACTER_SETMODEL, chr.model, chr.model.animation);

и все.
Запускать строго в локации, иначе SendMessage вылет в ОС совершит

//"monkey"; - в коментах, тк я так тестил все модели и анимацию из китайской Воядж оф Сентурити (Пираты онлайн)
Превращаюется в волка и тп -все ок, а вот анимация глючит.
Додился как-то, что вол головой грутит и все. Ходить не мог, потому забил.

Зато можно краба из ГПК взять в ПКМ, он совместим должен быть.

Автор: navy Aug 7 2009, 14:13

А.. ну отталкивайся от этого кода smile.gif в принципе, тебе не надо для гг именно вот этой строчки LAi_type_monkey_Init(chr)

Автор: Alexad_D Aug 7 2009, 14:21

Давай если у меня получится с мартышкой что ниб, то завтра напишу тебе что к чему .... Идет?

Автор: navy Aug 7 2009, 14:30

Цитата
LAi_type_offmonkey_Init(chr);

Этот метод тоже самописный smile.gif склеен из двух: для мартышки и офицера.

Цитата
SendMessage(chr, "lss", MSG_CHARACTER_SETMODEL, chr.model, chr.model.animation);

Только если ты хочешь меня модельку на лету. Иначе можно просто так задать модель и анимацию.

Автор: VladNiP Aug 7 2009, 14:42

Немного настроил.
Вот что получилось. sad.gif
http://radikal.ru/F/s55.radikal.ru/i149/0908/0b/c7f94183cfde.jpg.html
Видимо анимацию зыбал настроить.
убрал этот код по совету navy.
Грузится стало.
В общем, как настроить анимацию? Где написать код?

Автор: navy Aug 7 2009, 14:49

анимацию поставь для него monkey

Цитата
       chr.model = "monkey";//"monkey";       chr.model.animation  = "monkey";//"monkey";

он походу у тебя с ГГ анимацией

Автор: Alexad_D Aug 7 2009, 15:01

Цитата(VladNiP @ Aug 7 2009, 14:42) *

Немного настроил.
Вот что получилось. sad.gif
http://radikal.ru/F/s55.radikal.ru/i149/0908/0b/c7f94183cfde.jpg.html
Видимо анимацию зыбал настроить.
убрал этот код по совету navy.
Грузится стало.
В общем, как настроить анимацию? Где написать код?



Ну вот что получилось у меня ну это если на вскидку...... Я не совсем понял что ты хочешь Я шел таким путем перебил анимацию мартышки в данькину стоит ходит бегает как данька но с мартышкиным телом


Или ты еще и тип поведения хочешь что бы было как у мартышки


Прикрепленные изображения
Прикрепленное изображение

Автор: navy Aug 7 2009, 15:07

Тип поведения это другое, не путайте. Он хочет ГГ с телом мартышки. То что получилось у тебя, это странно, анимации не совпадают, косяки будут 100% Мартышке, только ее анимацию вешать надо.

Автор: Alexad_D Aug 8 2009, 15:55

Цитата(navy @ Aug 7 2009, 15:07) *

Тип поведения это другое, не путайте. Он хочет ГГ с телом мартышки. То что получилось у тебя, это странно, анимации не совпадают, косяки будут 100% Мартышке, только ее анимацию вешать надо.



Да я уже понял что он тип поведения ГГ мартышкин поставить хочет. Но тогда он не сможет пользоваться оружием так как у мартышки нет локаторов и анимации под их навес и пользование. Ну в моем варианте косяки будут только в отображении сабель и пистолей,(их не будет видно) а в воспроизведении самой анимации косяков нет - Потому что сам скелет мартышки перебит под вуменский ну и тип поведения соответственно тоже. Вот она и стала прямо-ходящей 1.gif По другому у меня пока ничего не получилось. Что удивительно под меновский скелет мартышка становится почему то криво с косяками 5.gif
Если надо могу послать мартышку с перебитым вуменовским скелетом

Автор: VladNiP Aug 8 2009, 15:59

Оружие и не нужно. Мартышка сможет брать оружие, но его не будет видно. А урон будет наносить такой же.
Кстати, а куда вставлять эти 2 кода?

Код
chr.model = "monkey";//"monkey";       chr.model.animation  = "monkey";//"monkey";

Конкретно под какой строчкой в characters_init.c?

Автор: Alexad_D Aug 8 2009, 16:14

Если ты меня спрашиваешь.... то если делать так как я делал то, я уже писал, нужно перебивать скелет и в характер инит менять так:
ch.id = "Blaze";
ch.nation = ENGLAND;
ch.model = "Monkey1"; // перебитая модель
ch.model.animation = "woman";
ch.activity_begin = "0";
ch.activity_end = "24";
ch.sex = "woman";

Если хочешь, вот, залил для тебя модель мартышки с уже перебитым скелетом под вуменовскую анимацию здесь - http://ifolder.ru/13464826
А так как говорит Navy т.е. - chr.model = "monkey";//"monkey"; chr.model.animation = "monkey";//"monkey"; - Толку ни какого будет такая же кривизна что у тебя уже была

А это плод моей учебы по созданию, редактированию и внедрению новых моделей в ПКМ - http://ifolder.ru/13464877 - Скелет под меновскую анимацию - вроде косяков нигде особо не заметно. Только без текстуры (еще не умею) но и так вроде нормально Ну и естественно он у меня - immortal - бессмертный Прикрепленное изображение

Цитата(navy @ Aug 7 2009, 15:07) *

Тип поведения это другое, не путайте. Он хочет ГГ с телом мартышки. То что получилось у тебя, это странно, анимации не совпадают, косяки будут 100% Мартышке, только ее анимацию вешать надо.



Navy Вы не внимательно читаете, что я пишу.... Потому, начну с начала..... В том что у меня получилось, ничего странного нет...... Воспроизведение анимации это не что иное, как заданное дерганье определенных точек скелета, вшитого в некую оболочку. В данном случае - мартышку. Вы со мной согласны? Я решал вопрос не программно...... Т.к. простое (методом тыка) вставляние-переставляние моделек и анимации в его случае не подойдет - так как тогда надо еще будет ставить и тип поведения..... а это надо будет копать глубже и потом придется корректировать бут и квест реакшены (а может и не только)..... Я же пошел другим путем. Я взял тело мартышки, убрал ее скелет и в него(тело) вбил скелет, а следовательно и анимацию - вуменовскую... Вуаля! Поверте - явно бросающихся в глаза косяков - нет! Правда не ставил локаторы под оружие т.к. теоретически знаю как, а на практике пока путаюсь (опыта мало) т.е. оно (оружие) есть, просто оно не отображается

Автор: navy Aug 9 2009, 14:14

Пользуйтесь кнопкой "изменить".

Изменять модель это одно, мы говорим о программном изменении. И лезть в 3д для этого не надо. Все должно работать и так. Кроме как движений специфичных, типа сесть и прочее.

Автор: Alexad_D Aug 10 2009, 11:43

Цитата(navy @ Aug 9 2009, 14:14) *

Пользуйтесь кнопкой "изменить".

Изменять модель это одно, мы говорим о программном изменении. И лезть в 3д для этого не надо. Все должно работать и так. Кроме как движений специфичных, типа сесть и прочее.

Ну за три сообщения подряд я уже получил.... Виноват увлекся..... А вообще то давайте проследим за нашими диалогами ( возьмем их самую суть) и разберемся все-таки, что же хотел VladNiP и что в результате получил ......

-- VladNiP -- У меня есть впорос, связанный с главным героем.
Я пытаюсь сделать его обезьянкой.

Предлагаемые решения......

-- ALexusB -- ...........Для ГГ нужно что-то подобное. Или даже проще - заемнить модель и анимацию и все, уже будет управляться. начнет глючить, когда перейдет в режим боя или сядет в таверне.
то есть имеем для ГГ
chr.model = "monkey";//"monkey";
chr.model.animation = "monkey";//"monkey";
SendMessage(chr, "lss", MSG_CHARACTER_SETMODEL, chr.model, chr.model.animation);

-- navy -- А.. ну отталкивайся от этого кода в принципе, тебе не надо для гг именно вот этой строчки LAi_type_monkey_Init(chr)
и ......можно просто так задать модель и анимацию.

И VladNiP начинает делать так, как ему посоветовали..... и сообщает о результате

-- VladNiP -- Немного настроил.
Вот что получилось.
"Картинка с косячной анимаией ГГ"
Видимо анимацию зыбал настроить.
убрал этот код по совету navy.
Грузится стало.
В общем, как настроить анимацию? Где написать код?


Уже на этом этапе было видно что просто одной заменой модели и анимации у ГГ будет недостаточно. Надо будет еще где то, что то искать и менять а это черевато(если допустить ошибку или недоделать) слетом либо упрвления ГГ, либо еще чего где. Но не смотря на это, следуют советы типа.....

-- navy -- анимацию поставь для него monkey
chr.model = "monkey";//"monkey"; chr.model.animation = "monkey";//"monkey";
он походу у тебя с ГГ анимацией

Но ведь это уже ему советовали и он уже это делал! К чему советовать одно и тоже??? Navy - Конкретно Вы, сами то пробовали делать так, как советовали...
Я например, прежде чем давать совет, пробую его сам.....

-- Alexad_D -- Ну вот что получилось у меня... Ну это если на вскидку...... Я не совсем понял что ты хочешь Я шел таким путем перебил анимацию мартышки в данькину стоит ходит бегает как данька но с мартышкиным телом. Или ты еще и тип поведения хочешь что бы было как у мартышки

-- navy -- Тип поведения это другое, не путайте. Он хочет ГГ с телом мартышки.
То что получилось у тебя, это странно, анимации не совпадают, косяки будут 100%
Мартышке, только ее анимацию вешать надо.

И получается что у меня это получилось т.е. - "...... стоит ходит бегает как данька но с мартышкиным телом"


-- Alexad_D -- .........Но тогда он не сможет пользоваться оружием так как у мартышки нет локаторов и анимации под их навес и пользование.


-- VladNiP -- Оружие и не нужно. Мартышка сможет брать оружие, но его не будет видно. А урон будет наносить такой же.


У меня вопрос к VladNiP - Тебя устроил мой вариант? Если да, то я больше не буду дальше заморачиваться с этим.... Если же ты хочешь что бы
у ГГ были - тип поведения и анимация мартышки, то я, по возможности, покапаюсь дальше.... но это займет какое-то время, придется потерпеть....

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

Не поймите меня привратно ..... но, в споре рождается истина

Автор: navy Aug 10 2009, 12:46

Ну тема то "Для программистов" smile.gif А вообще, твоя мартышка не похожа на оную, поэтому тоже не вариант, ИМХО. Руки доберуться до кода, посмотрю как там что, не до этого сейчас немного.

Автор: VladNiP Aug 10 2009, 14:28

Цитата
Тебя устроил мой вариант?

Нет. Я бы хотел просто мартышку. Такое, кстати, когда-то и у меня получалось. Потом вернул все обратно.
Кстати, попробовал я просто заменить анимацию у всех мужчин в игре. smile.gif
Получилось тоже не очень: У моего героя по-прежнему искажения, но теперь и у всего народа идут искажения. Опять-таки вернул все на место.

Автор: Lugger Aug 10 2009, 14:47

Код
LAi_type_monkey_Init(chr);

Тогда персонаж станет неуправляемым. А чтобы персонаж был управляемым, то он должен быть:
Код
LAi_SetPlayerType(chr);

Функция эта инспользуется только для ГГ.

Код
RemoveCharacterEquip(chr, BLADE_ITEM_TYPE);

Снять текущую экипировку - в данном случае саблю.

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

Функция LAi_SetDefaultStayAnimation(aref chr) находится в loc_ai\LAi_utils.c, а функции, которые в ней запускаются - в characters\characters.c

Вот туда то и надо вставлять куски кода по проверке имени модели.
Так как мартышка несколько нестандартный тип персонажа, то разработчики в итоге сделали всё в одну кучу. То что надо, находится в loc_ai\types\LAi_monkey.c

В итоге сможем макакой и бегать как надо и бить по лицу и т.д.))
А вот стрелять ею не выйдет, к сожалению.

Если подождёте, оправдаю свои догадки и выложу что надо.


***

Ну да, точно.

VladNip, скачай архивчик и разархивируй в корневой каталог игры.
Скачать: http://ifolder.ru/13484054

Не знаю, какая у тебя база - я эту хрень провернул на mod_v4.

При этом нужно указать.
Если в character_init.c:

Код

ch.model = "monkey';


Ниже, в этом же файле, буквально в строке 339 найди:
Код

Characters[GetCharacterIndex("Danielle")].model.animation = "woman";


скопируй строку, и в ней напиши:
Код

Characters[GetCharacterIndex("Blaze")].model.animation = "monkey";


При начале новой игры будет макака с правильной анимацией и с правильным поведением.

Если же где то по ходу дела должно сработать, то:
Код

ref PChar = GetMainCharacter();
PChar.model = "monkey";
PChar.model.animation = "monkey";


Вот и всё, собственно. Но это если по быстрому. А вообще надо и экипировку убирать (вернее дать "руки"), ну и общие вопросы.

Автор: Alexad_D Aug 11 2009, 10:15

Аха..... Lugger ! Исходя из выше сказанного..... то можно попытаться ввернуть в игру любую модель если к ней есть готовая анимация? Если я правильно понял, то если я хочу ввернуть в игру модель.... (возьмем пример по проще) беатрис из К3 то надо интегрировать ее в характерс.с или надо что то еще....? Т.е. Переносим из К3 беатрис - гм, ан и ани в ПКМ. Сохраняем под беатрис, в ани переписываем ссылку с вумен на веатрис, в харакер_инит добовляем строку под данькой:

Characters[GetCharacterIndex("beatrice")].model.animation = "beatrice";

..... меняем выше :

ch.id = "beatrice";
ch.model = "beatrice";
ch.model.animation = "beatrice";
ch.activity_begin = "0";
ch.activity_end = "24";
ch.sex = "beatrice";

...... а в характерс.с тогда что.....? Заводить из характерс.с К3? И как? Надо же наверное еще ее заводить в LAi_types как отдельный тип? Или не только? Если
можно с этого места растолмачить по подробней..... (Талмач - от старословянского - Переводчик, в данном контекте - растолмачить - разъяснить)

Автор: navy Aug 11 2009, 11:34

Цитата
При начале новой игры будет макака с правильной анимацией и с правильным поведением.

собсна с начала этого обсуждения так и советовали сделать biggrin.gif

Автор: VladNiP Aug 11 2009, 11:34

Lugger
Спасибо.
Действительно получилось.
Вот только вопрос, может стоило просто прописать функцию Characters[GetCharacterIndex("Blaze")].model.animation = "monkey";
Вот:
http://radikal.ru/F/s49.radikal.ru/i124/0908/25/da8ec7dfadd5.jpg.html http://radikal.ru/F/i023.radikal.ru/0908/a4/6e6aa566b54c.jpg.html
Также спасибо всем, кто участвовал в дискуссии.

Автор: navy Aug 11 2009, 11:57

Цитата
Вот только вопрос, может стоило просто прописать функцию

Почитай посты Алекса про оптимизацию.
зы: ну вообще-то люгер ничего нового не сказал, а только то, что мы уже тебе писали с Алексом 10 раз 1.gif

Автор: Alexad_D Aug 11 2009, 16:07

Правильно ли я все понял? Для того чтобы в ПКМ появился новый перс, но не ГГ, а типа Вуазье или Риса но с новой моделью и анимацией к ней в ПКМ Надо:
в LAi_types.c вставить строки
// Новый перс
#include "Loc_ai\types\LAi_newchar.c"
//---------
//newchar
//---------
void LAi_SetNewcharType(aref chr)
{
chr.chr_ai.type = LAI_DEFAULT_TYPE;
LAi_type_newchar_Init(chr);
LAi_group_MoveCharacter(chr, LAI_GROUP_PLAYER);
Дальше создаем LAi_newchar.c где прописываем так...
Тип:Новый характер
Шаблоны:
stay
dialog
#define LAI_TYPE_newchar "newchar"
//Инициализация
void LAi_type_newchar_Init(aref chr)
{
//Тип
DeleteAttribute(chr, "location.follower");
DeleteAttribute(chr, "chr_ai.type");
chr.chr_ai.type = LAI_TYPE_newchar;
LAi_tmpl_SetFollow(chr, GetMainCharacter(), -1.0);
//Анимация для перса
LAi_SetDefaultStayAnimation(chr);
SendMessage(&chr, "lsl", MSG_CHARACTER_EX_MSG, "SetFightWOWeapon", false);
}

Создаем перса к примеру на Оксбее
makeref(ch,Characters[n]);
бла,бла, бла,
ch.id = "newchar";
ch.model = "newchar";
ch.sex = "newchar";
ну и так далее

Ну а дальше что? Или это вообще не так делается? А то что то у меня нифига не получается анимация как была кривая так и осталась. Единствено что при встрече он сразу бежит ко мне и ждет начала диалога sad.gif


******************

Буду пробовать, по совету ALexusB шерстить ани. может что и получится

Автор: ALexusB Aug 11 2009, 16:28

Alexad_D

Нет, все проще, в случае совместимой по анамиции модели нужно просто указать
PChar.model = "вуман2";
PChar.model.animation = "вуман2";
и... не все... нужно прошерстить файл .ани и назвать всю анимацию так, как она названа в ПКМ, подобрать подходящую из ударов.

Автор: navy Aug 12 2009, 07:02

Новый тип поведения создавать не надо. Типы поведения отвечают только за действия персонажа в разных ситуациях. Достаточно сделать как сказал Алекс, если анимация совместима конечно.
Вот образец настройки анимации для персонажа. Смотри где у тебя косяки, и перенастраивай. Или правь .ани файл под свой скелет и анимацию.

Код

    //Установим анимацию персонажу
    BeginChangeCharacterActions(chr);
    chr.actions.idle.i1 = "idle_1";
    chr.actions.idle.i2 = "idle_2";
    chr.actions.idle.i3 = "idle_3";
    chr.actions.walk = "walk";
    chr.actions.backwalk = "back walk";
    chr.actions.run = "walk";
    chr.actions.backrun = "back walk";
    chr.actions.stsUp = "walk";
    chr.actions.stsDown = "walk";
    chr.actions.stsUpBack = "back walk";
    chr.actions.stsDownBack = "back walk";
    chr.actions.stsUpRun = "walk";
    chr.actions.stsDownRun = "walk";
    chr.actions.stsUpRunBack = "back walk";
    chr.actions.stsDownRunBack = "back walk";
    chr.actions.turnLeft = "skip";
    chr.actions.turnRight = "skip";
    chr.actions.swim = "walk";    
    chr.actions.fightwalk = "walk";
    chr.actions.fightbackwalk = "back walk";
    chr.actions.fightrun = "walk";
    chr.actions.fightbackrun = "back walk";
    chr.actions.fightidle.i1 = "idle_1";
    chr.actions.fightidle.i2 = "idle_2";
    chr.actions.fightidle.i3 = "idle_3";
    chr.actions.attack.a1 = "attack";
    chr.actions.attacktl.a1 = "attack";
    chr.actions.attacktr.a1 = "attack";
    chr.actions.hit.h1 = "hit";
    chr.actions.block = "block";
    chr.actions.blockhit = "block_hit";
    chr.actions.recoil = "Recoil";
    chr.actions.shot = "skip";
    chr.actions.dead.d1 = "death";
    chr.actions.fightdead.d1 = "death";
    EndChangeCharacterActions(chr);
    SendMessage(&chr, "lsl", MSG_CHARACTER_EX_MSG, "SetFightWOWeapon", true);

Автор: Alexad_D Aug 12 2009, 11:20

Цитата(navy @ Aug 12 2009, 07:02) *

Новый тип поведения создавать не надо. Типы поведения отвечают только за действия персонажа в разных ситуациях. Достаточно сделать как сказал Алекс, если анимация совместима конечно.

Да я это понял.... если бы нужен был только ГГ то да.....
Фишка вот в чем - ( беатрис из К3 я взял попрактиковаться). При наличаи некоторого практического опыта, в туле по идее, можно навесить на любую новую модель любую анимацию. И это я уже пробовал - т.е. выбирал из анимации беатрис то что нравилось и делал новый ани - именно так как ты писал (по совету Алексуса) есть правда некоторые неточности, но это устранимо и если набить руку то потом будет сразу нармально.. Но это ладно, да и не по теме.
По теме вот что.... если использовать новую модель с новой аним. как ГГ т.е. так
makeref(ch,Characters[0]); //Blaze Devlin
//ch.perks.list.InstantBoarding = true;
ch.name = "Нейм";
ch.lastname = "Ластнейм";
ch.id = "Beatrice";
ch.model = "BeatriceA";
ch.model.animation = "Beatrice";
ch.sex = "Beatrice";
...............................
Characters[GetCharacterIndex("beatrice")].model.animation = "beatrice"; // это обязательно

проблем нет - косяки с анимацией начнутсятся тогда, если пыться завести нового персонажа, ну что-то типа Риса Блюма например То есть я так понимаю надо заводить и новый тип поведения? Вот я и попробовал - по аналогии с мартышкой так- в характерс.с

Отредактировано. В характерс можно вообще не лезть (это точно.) Уже проверено!

в LAi_types.с
// Беатрис
#include "Loc_ai\types\LAi_beatrice.c"

//Установить персонажу тип beatrice
void LAi_SetBeatriceType(aref chr)
{
chr.chr_ai.type = LAI_DEFAULT_TYPE;
LAi_type_beatrice_Init(chr);
LAi_group_MoveCharacter(chr, LAI_GROUP_PLAYER);
}

Ну уже LAi_beatrice.c не буду писать - там сделано примерно как для офицеров
Отредактировано.

Автор: navy Aug 12 2009, 11:56

Хз, я в это сильно не влазил. Но если у тебя косяки с анимацией, то где-то она не правильно задана. Перезадавай в LAi_beatrice.c как я приводил выше, и будет все норм.

Автор: Alexad_D Aug 15 2009, 01:32

В результате нескольких бессонных ночей интеграция модели в ПКМ получилась частично. Под нее заточены два перса - ГГ и его типа офицер. Вопрос...... если ГГ без косяков почему такая кривая анимация у офицера?????
Прикрепленное изображение

Автор: delfin_ Aug 15 2009, 02:01

Цитата(Alexad_D @ Aug 15 2009, 01:32) *

если ГГ без косяков почему такая кривая анимация у офицера?????

Не видя скриптов мало что можно сказать. Хотя можно сказать наверняка что, что то там не так прописано.

Автор: navy Aug 15 2009, 07:57

см. выше. т.е. или не правильно отрабатывается анимация атаки. т.е. она не соотвествует скелету. Перезадавай в скриптах или правь ани файл.

Автор: Alexad_D Aug 15 2009, 10:38

Ура!!!!!!!!! Есть нашел ошибку!!!!!!!!!!!!!!!!!!!! Удаляю этот пост.

Delfin_ и Navy - Спасибо что откликнулись.... Но все оказалось гораздо проще - в точке с запятой - которую не поставил 3.gif
=========================================
И вот результат -

Прикрепленное изображение

Автор: navy Aug 15 2009, 18:23

Поздравляю! smile.gif

Русская версия Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)