The Elder Scrolls & Fallout 3 Modding

на главную страницу сайта

Форум Oblivion, Skyrim & Fallout 3/4 Modding

Объявление

У нас есть свой сервер Дискорда. Заходите, пообщаемся.
Господа, те кто пользуются фотохостингом http://uploads.ru/ для размещения изображений. Рекомендую воспользоваться для упрощения загрузки вот этой программой.

Информация о пользователе

Привет, Гость! Войдите или зарегистрируйтесь.


Вы здесь » Форум Oblivion, Skyrim & Fallout 3/4 Modding » Плагины к Oblivion » Компаньоны-животные


Компаньоны-животные

Сообщений 61 страница 90 из 92

61

Igor_Ra
Я ещё один плаг создал со своими ID (уникальными) ,а когда я его отметил в файлах данных и начал загружать игру с главного меню то игра выбрасывает меня на рабочий стол.Что я с этим плагом делал не так?Может всё из-за заклинаний которые я понадобавил? :'(  :tired:
Кстати вот ещё одна причина!Животное было заскриптованно(тоесть у него уже существовал скрипт).

Отредактировано Странник (2008-08-17 21:41:41)

0

62

Мда... развели в этой теме не поймешь чего... Надо бы вернуться к истокам. Выкладываю парочку интересных скринов  ;)

http://s49.radikal.ru/i126/0903/27/940ee0589c09t.jpg
http://s49.radikal.ru/i123/0903/b5/68a680536d79t.jpg
http://s59.radikal.ru/i165/0903/de/c277a6c1b850t.jpg

В процессе подготовки к публикации 4-ая версия туториала по созданию компаньонов животных. Уже написано и реализовано: увеличение размера компаньона в зависимости от уровня игрока и возможность выбора цели для атаки компаньона, а также возможность выбора накладываемых визуальных эффектов на компаньона.
Если есть какие предложения по поводу того, что еще можно добавить - пишите

0

63

Есть одно!Во время боя ломается бронька,животное не будет же чинить броньку,ну я не к этому,я к тому,чтобы можно было менять броню\одежду животного.

0

64

Странник написал(а):

Есть одно!Во время боя ломается бронька,животное не будет же чинить броньку

Броня на животном не ломается

0

65

Igor_Ra написал(а):

3. Какие еще можно сделать команды? Что хотелось бы чтобы делали компаньоны?

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

Отредактировано Night (2009-09-17 22:37:00)

0

66

Night
Этот вопрос всегда актуален ибо я готовлю уже 4-ую версию туториала и надеюсь она будет не последней :)
А сделать подобную команду думаю будет не сложно...

0

67

Очень рад слышать! И спасибо вам за замечательные плагины с животными!

0

68

hiphopklim написал(а):

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

Отличное предложение!

Ещё предлагаю рассмотреть вариант с "пассивным" следованием, то есть, чтобы питомец никого не атаковал, когда игрок верхом на лошади.

0

69

Night написал(а):

Отличное предложение!

Оно уже сделано в плагинах и описано в туториале :)

0

70

Да, но оно сделано как команда, а желательно бы без команды, т.е. как во многих компаньон-модах с НПЦ.

Хочу более подробно описать, а также дополнить моё предложение с радиусом атаки.
Вообще, один из главных недостатков любого компаньона - это то, что они начинают атаковать непонятно кого, непонятно где и в самый неподходящий момент. Пример: Игрок бежит в определённую точку на карте. Пока игрок бежит, питомец отвлекается, например, на крабов, которые очень далеко и никак не могут причинить ГГ вред. Тем временем, игрок уже добегает до пункта назначения, а там его начинают атаковать четверо грозных орков с огромными топорами... Сразу возникает вопрос:"А где же мой верный товарищ, когда он так необходим в трудную минуту?".
Поэтому мною и был предложен вариант с радиусом атаки. То есть, чтобы питомец реагировал только на тех врагов, которые действительно могут причинить вред, находясь достаточно близко к игроку.
Но в то же время, существуют и враги с дистанционной атакой(лучники, маги и т.д.), которые не будут приближаться к игроку. Здесь я вижу два решения: 1) Животное будет атаковать только в том случае, если игроку(или же самому питомцу) был нанесён удар(стрелой, магией или ещё чем). И в данном случае не важно как далеко находится враг. 2)Животное будет атаковать, если сам игрок "проявил интерес" к врагу, т.е. сам начал наносить удары(стрелой, магией и т.д.). Здесь тоже расстояние до врага не имеет значения.
Кроме того, довольно часто противники сдаются и убегают, а наш друг начинает преследование. Но ведь убежать негодяй может очень далеко... Конечно, можно призвать его заклинанием, но ведь не всегда есть такая возможность.
Касательно приоритета атаки... Почему-то враги, в большинстве случаев, норовят в первую очередь расправиться с питомцев, нежели с игроком - что не есть хорошо.   

Ещё можно сделать для каждого существа свои уникальные особенности.
Например, кошки могут реагировать, когда игрок достаёт оружие. Наподобие этого:

Код:
if Player.IsWeaponOut == 1
if Player.IsSneaking == 0
	SetAlert 1
else
	SetAlert 0
endif
elseif GetIsAlerted == 1
	SetAlert 0
endif

Могут реагировать на актёра, который плохо относится к игроку, если тот(актёр) подошёл близко.

Блуждающему огоньку можно добавить команду "Свет" и команду "Выведи меня"(начнёт эскортировать к выходу из данжеона)

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

Отредактировано Night (2009-09-21 00:42:06)

0

71

Достаточно интересные мысли. А код должен быть где-то такой:

Код:
if Player.IsWeaponOut == 1 && Player.IsSneaking == 0
	SetAlert 1
else
	SetAlert 0
elseif GetIsAlerted == 1
	SetAlert 0
endif

0

72

Ф-ия SetAlert меняет только визуальное состояние актера, но не его поведение.

0

73

Да. Пантерка, например, прогибала спину и издавала рык. Очень здорово выглядит!

0

74

дать команду животному охранять непися определенного, поидее сделать это возможно.

0

75

7755 написал(а):

дать команду животному охранять непися определенного, поидее сделать это возможно

Можно, если кто-нибудь опишет полезность и необходимость этой функции :)

0

76

Igor_Ra написал(а):

Можно, если кто-нибудь опишет полезность и необходимость этой функции

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

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

0

77

Перенаправлять на другую цель можно с помощью квестового скрипта и активатора.
Активатор (невидимый) скриптом перемещается за нужной целью, а креатура выполняет пакет следования за активатором.
Креатуру присваиваем этому нпс, чтобы охраняла его ;)

Еще хочу сказать, что красться стоит убрать из команд меню и сделать этот режим автостартующим при активном следовании и скрытии игрока.
Я так в Маверике сделал.

0

78

7755 написал(а):

дать команду животному охранять непися определенного, поидее сделать это возможно.

Вот здесь есть такая возможность http://www.tesnexus.com/downloads/file.php?id=3886
Да и вообще довольно интересный мод.

0

79

Игорь здравствуйте.
Я решил создать компаньона-Пса. Но вот какие у мня проблемы. По сути мне нужны такие-же функции как и у ваших зверушек...)
В вашем туторе Туториал о создании компаньонов-животных V.3.0 есть пункты...
1.Factions (фракции).
Удаляем все что есть в этом окне. Дальше идем в Character>Faction… В списке справа кликаем правой клавишей и в появившемся меню выбираем New. Там у меня при ПКМ (Правый Клик Мыши) появляется функция "Del." (Delete/удалить), но не как "New" (создать что-нибуть новое:) )
2.Создание пакетов.
Идем в главное меню Character > Package… Откроется окно AI packages, где мы увидим список всех существующих в игре пакетов АИ. Кликаем правой клавишей мыши где-нибудь в этом списке и в появившемся меню выбираем New (Новый). Вобще ненахожу эти разделы.

Помогите пожайлуста.

П.С.

Если вам не лень сделать тутор скриншотами т.е. сфоткать все действия и обвисти (к примеру красным) выполняемые функции, названия, таблички и т.п. и т.д.

Зарание Спасибо!

П.С.С

Я немного дружу с CS (и следовательно с G.E.K.K.) Так что, если что... (К примеру умею менять значение. Но это ерунда (больше баловство)...)

Шкурки у Пса я не собираюсь менять ... Хатя можно попробовать конвектировать с ФаллАута 3 ...

Движок всё ровно , один и тот-же...

Отредактировано AHYHAX (2010-07-04 17:23:22)

0

80

AHYHAX написал(а):

Там у меня при ПКМ (Правый Клик Мыши) появляется функция "Del." (Delete/удалить), но не как "New" (создать что-нибуть новое:) )

Вы кликаете ПКМ в окне Фракции Непися. А нужно это делать в окне списка всех фракций в игре. Для этого нужно перейти Character (это пункт в строке меню, которая находится под заголовком окна КС) и далее в окрывшемся меню выбираете Faction…. Да и там опечатка, в списке слева, а не справа.

AHYHAX написал(а):

Вобще ненахожу эти разделы.

Аналогично. Ищите все тот же Character в строке меню, и далее Package….

0

81

Спасибо очень помогло! :idea:  :cool:
Но хе-хе у мня такая проблемка... Табло Script Effect Info "покрыто" серым цветом это значит что я немогу повесить скрипт с призывом(Не могу выброть функции и поля)... А следовательно несмогу сделать следуйщий скрипт(более важный чем по призыву). Есть идея... Конечно не очень , хорошо , но... Взять ваш мод с медведем и использавать его скрипт и магию(Потому что их (блогодаря тутору)))) я знаю. Но так не интересно , весь кайф когда сам смог сделать и всё работает. )... Но есть и другой вариант(более хороший))) из основного скрипта убрать пункт о дабовлении маги "Позвать Пса"(Ну или в этом духе...). Но ! Фишка в том что я незнаю где начинается и закаканчивается эта часть скрипта... И вопрос ? А если не убирать пункт о добавке магии призыва то можно ставить мод (скристив пальцы и молится чтоб не "вылетило"...) ?

Отредактировано AHYHAX (2010-07-04 22:53:23)

0

82

Выскакивает ошибка когда сэйвлю

---------------------------
Script Error
---------------------------
Script 'DogFriendActivatorRefScript', line 42:
Script command "Stop" not found.
---------------------------
ОК   
---------------------------

Вот скрипт

ScriptName DogFriendActivatorRefScript; имя скрипта
short Button; объявляем короткую целочисленную переменную Button (кнопки из меню)
short MyVar; объявляем короткую целочисленную переменную MyVar

begin onActivate ; начало работы скрипта происходит после активации объекта на
                 ; который он повешен, в данном случае мы будем вешать его на компаньона
    player.addspell IgorRaSpellBlackBearCall; добавление заклинания призыва игроку
    if ( DogFriendActivatorRef.GetDead <= 0 ); проверка, жив ли компаньон
        MessageBox "Мой верный друг... " "пойдем со мной" "подожди здесь" "прогуляйся" "беги домой"
            ; выводим на экран меню управления компаньоном. Содержимое первых
            ; кавычек – это заголовок окна. Содержимое последующих кавычек - это собственно
            ; кнопки, на которые можно нажимать
        Set MyVar to 1
    else ( DogFriendActivatorRef.GetDead = 1 ); если компаньон мертв, тогда…
        Message "Твой друг умер."; выводится сообщение в верхнем левом углу экрана
        Set MyVar to -1
        Return; означает прекращение обработки скрипта
    endif
end onActivate

begin GameMode; блок который проигрывается все время
    if ( MyVar == 1 )
        Set Button to GetButtonPressed; проверка на нажатые кнопки меню
        if ( Button == 0 ); нажата первая кнопка меню
            SetIgnoreFriendlyHits 1; функция игнорирования компаньоном ваших ударов по нему
            SetOwnership
            AddScriptPackage "000001Follow"; добавление пакета АИ
            StopWaiting 000001Follow; прекращение остановки пакета, если
            ; он был остановлен ранее
            Wait 000003HomeComeng; остановка пакета Run, если он был запущен
            Wait 000002Wander; остановка пакета Wander, если он был запущен
            Set MyVar to -1
            Return
        elseif ( Button == 1 ); нажата вторая кнопка меню
            Wait 000001Follow
            Wait 000003HomeComeng
            Wait 000002Wander
            Set MyVar to -1
            Return
        elseif ( Button == 2 ); нажата третья кнопка меню
            AddScriptPackage "000002Wander"
            Stop 000002Wander
            Wait 000001Follow
            Wait 000003HomeComeng
            Set MyVar to -1
            Return
        elseif ( Button == 3 ); нажата четвертая кнопка меню
            AddScriptPackage "000003HomeComeng"
            Stop Waiting 000003HomeComeng
            Wait 000001Follow
            Wait 000002Wander
            Set MyVar to -1
            Return
        endif
    endif
end GameMode

0

83

Вопрос нужно ли было вводить "русские слова" (нещитая команд  "Мой верный друг... " "пойдем со мной" "подожди здесь" "прогуляйся" "беги домой"). Просто есть в ..кхм.. в "Русских словах" нечто смахивоющее на скриптовые команды...

0

84

Так , на всякий случей

Скрипт магии призыва

scriptname DogFriendActivatorRefCallScript1; указываем название скрипта
Begin ScriptEffectStart; начало магического блока
    DogFriendActivatorRef.moveto player, 0, 0, 0
      ; переносим активатор к игроку
    DogFriendActivatorRef.moveto DogFriendActivatorRef
      ; переносим компаньона к активатору
    DogFriendActivatorRef.RemoveScriptPackage
      ; отключаем все пакеты AI, которые были ранее назначены
End
Begin ScriptEffectFinish
End

Пакеты

000001Follow - Следуй
000002Wander - Пругуляйся (стоит  радиус на 0)
000003HomeComeng - Иди домой

П.С.

Если кто-то будет кричать мол я все о своём модике разпилячел , то отвечу: Смысл . Любой кто немного дружет с КС или ГЕКК и прочитает тутор. То как нефиг разберётся в подобных модах т.е. спокойно узнает где лижат основные элементы (скрипты,пакеты,сам НПК и т.п. и т.д.).

0

85

AHYHAX
Все ваши проблемы возникают из-за невнимательного прочтения туториала.

AHYHAX написал(а):

Табло Script Effect Info "покрыто" серым цветом это значит что я немогу повесить скрипт с призывом(Не могу выброть функции и поля)...

Ведь в туторе написано:

Effect – из списка выбираем Script Effect

без этого выбора Script Effect Info будет неактивно (ведь не выбран скриптовый эффект)

AHYHAX написал(а):

Выскакивает ошибка когда сэйвлю

Код:
 elseif ( Button == 2 ); нажата третья кнопка меню
            AddScriptPackage "000002Wander"
            Stop 000002Wander
            Wait 000001Follow
            Wait 000003HomeComeng
            Set MyVar to -1
            Return

Здесь должно быть не Stop, а StopWaiting, а здесь:

Код:
elseif ( Button == 3 ); нажата четвертая кнопка меню
            AddScriptPackage "000003HomeComeng"
            Stop Waiting 000003HomeComeng
            Wait 000001Follow
            Wait 000002Wander
            Set MyVar to -1
            Return
        endif

не должно быть пробела между Stop и Waiting

ЗЫ: и еще совет. Не используйте цифры в начале любых ID. Потом проблем будет меньше.

0

86

Спасибо. Но с закленанием нечего неполучилось. Тьфу! Я читал всё внимательно но там небыло Script Effect. Зато когда я поставил просто обливион , без есм.русс
то сработоло.

Сейчас глав скрипт выгледет так

ScriptName DogFriendActivatorRefScript; имя скрипта
short Button; объявляем короткую целочисленную переменную Button (кнопки из меню)
short MyVar; объявляем короткую целочисленную переменную MyVar

begin onActivate ; начало работы скрипта происходит после активации объекта на
                 ; который он повешен, в данном случае мы будем вешать его на компаньона
    player.addspell AAADogFriendCallSell; добавление заклинания призыва игроку
    if ( DogFriendActivatorRef.GetDead <= 0 ); проверка, жив ли компаньон
        MessageBox "Мой верный друг... " "пойдем со мной" "подожди здесь" "прогуляйся" "беги домой"
            ; выводим на экран меню управления компаньоном. Содержимое первых
            ; кавычек - это заголовок окна. Содержимое последующих кавычек - это собственно
            ; кнопки, на которые можно нажимать
        Set MyVar to 1
    else ( DogFriendActivatorRef.GetDead = 1 ); если компаньон мертв, тогда…
        Message "Твой друг умер."; выводится сообщение в верхнем левом углу экрана
        Set MyVar to -1
        Return; означает прекращение обработки скрипта
    endif
end onActivate

begin GameMode; блок который проигрывается все время
    if ( MyVar == 1 )
        Set Button to GetButtonPressed; проверка на нажатые кнопки меню
        if ( Button == 0 ); нажата первая кнопка меню
            SetIgnoreFriendlyHits 1; функция игнорирования компаньоном ваших ударов по нему
            SetOwnership
            AddScriptPackage "AAAFollow"; добавление пакета АИ
            StopWaiting AAAFollow; прекращение остановки пакета, если
            ; он был остановлен ранее
            Wait AAAHomeComeng; остановка пакета Run, если он был запущен
            Wait AAAWander; остановка пакета Wander, если он был запущен
            Set MyVar to -1
            Return
        elseif ( Button == 1 ); нажата вторая кнопка меню
            Wait AAAFollow
            Wait AAAHomeComeng
            Wait AAAWander
            Set MyVar to -1
            Return
        elseif ( Button == 2 ); нажата третья кнопка меню
            AddScriptPackage "AAAWander"
            StopWaiting AAAWander
            Wait AAAFollow
            Wait AAAHomeComeng
            Set MyVar to -1
            Return
        elseif ( Button == 3 ); нажата четвертая кнопка меню
            AddScriptPackage "AAAHomeComeng"
            StopWaiting AAAHomeComeng
            Wait AAAFollow
            Wait AAAWander
            Set MyVar to -1
            Return
        endif
    endif

Но при сэйве Выскакивают ошибки

№1

---------------------------
Script Error
---------------------------
Script 'DogFriendActivatorRefScript', line 21:
Mismatched begin/end block starting on line 21.
---------------------------
ОК   
---------------------------

и №2

---------------------------
Script Error
---------------------------
Script 'DogFriendActivatorRefScript', line 21:
Mismatched begin/end block.
---------------------------
ОК   
---------------------------

Я помню что есть такая штука... Там можно поставить галочки и Пёс вместо того чтоб умереть будет "отключатся", или на это нужен скрипт ? То какой ?
Извеняюсь за причинёные неудобства.

0

87

AHYHAX написал(а):

Тьфу! Я читал всё внимательно но там небыло Script Effect.

В сообщении выше я привел цитату из тутора. Она там есть. Так что это ваша невнимательность.

Код:
Script 'DogFriendActivatorRefScript', line 21:
Mismatched begin/end block starting on line 21.

Блок begin GameMode не закрыт. В конце нужно поставить end

AHYHAX написал(а):

Я помню что есть такая штука... Там можно поставить галочки и Пёс вместо того чтоб умереть будет "отключатся", или на это нужен скрипт ? То какой ?

В настройках животного нужно отметить пункт Essential

0

88

Спасибо большое за помощь ! Все работает. Конечно Пес "спотыкается" о каждый камень и кочку (причину досихпор не установил). Но потом (проверил на несколько раз (5)  ) всё начинает нормально работать.
Спасибо ещё раз.

Отредактировано AHYHAX (2010-07-08 16:26:14)

0

89

А можешь сделать компаньона среднего ездового Медведя,который будет расти в уровне, только без превращения. Лошадки надоели уже  а фэнтезийную фигню не люблю.

0

90

Однако... Сколько времени прошло. Если это еще кому-то интересно, пишите свои предложения, о чем бы еще (о каких возможностях) стоило бы написать. Возможно продолжу писать туториал, есть пара мыслей еще с давних времен, которые хотелось бы описать. Да и четвертая версия по сути уже 2,5 года лежит готовая. Вот интересно почему я ее не выложил раньше... Три новых пункта написаны были еще тогда:

13. Увеличение размера компаньона вместе с ростом уровня нашего персонажа
14. Возможность выбора цели для атаки
15. Выбираем из нескольких визуальных эффектов

В общем пишите, может чего из этого и выйдет.

ЗЫ: хотя складывается впечатление, что это уже давно никому нафиг не нужно...

0


Вы здесь » Форум Oblivion, Skyrim & Fallout 3/4 Modding » Плагины к Oblivion » Компаньоны-животные