Перейти к содержанию

Вопросы по TES Construction Set


Рекомендуемые сообщения

Упс, есть же такая функция, как Actor->GetAttacked.
 
В общем, я хочу так. Происходит диалог типа:
NPC: Ты воняешь, а еще Нереварин.
PC: Да, я действительно Нереварин. А воняешь тут только ты.
NPC: Что??? Вали его, парни!
(Новая запись в журнале)
 
При этом, если я захочу пришить неписей поодиночке, без диалога, они автоматом нападут на меня.
И получился у меня такой скрипт. Вешается на каждого непися. Он вроде бы работает, но меня терзает подозрение, что он избыточен. Например, я не уверен, что тут требуется doOnce. С другой стороны, если не проверять эту переменную, скрипт будет случаться много-много раз, нет?
Как вам этот креатив?
 
begin MY_FightingScript
 
short doOnce
 
if ( doOnce == 1 )
    return
elseif ( doOnce == 0 )
    if ( GetJournalIndex "MY_Fight" == XYZ )
        NPC_1->SetFight 100
        NPC_1->StartCombat Player
        NPC_2->SetFight 100
        NPC_2->StartCombat Player
        <...>
        NPC_n->SetFight 100
        NPC_n->StartCombat Player
        set doOnce to 1
    endif
 
    if ( NPC_1->GetAttacked == 1 )
        SetFight 100
        StartCombat Player
        set doOnce to 1
    endif
 
    if ( NPC_2->GetAttacked == 1 )
        SetFight 100
        StartCombat Player
        set doOnce to 1
    endif
 
<...>
 
    if ( NPC_n->GetAttacked == 1 )
        SetFight 100
        StartCombat Player
        set doOnce to 1
    endif
endif
 
End

P.S. Муурн Шепард, morrow, спасибо за объяснения, узнал много нового.
Изменено пользователем Veloth
Ссылка на комментарий
Поделиться на другие сайты

  • Ответов 2.7 тыс
  • Создана
  • Последний ответ

Топ авторов темы

Топ авторов темы

Изображения в теме

elseif ( doOnce == 0 )

Вот эта строчка лишняя. На ее место можно поставить endif, а в конце второй endif убрать.

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

В принципе, да. Но можно вместо этой переменной проверять себя на GetFight. Если результат >= 100, значит, игрок на меня напал.

    if ( NPC_1->GetAttacked == 1 )

        SetFight 100
        StartCombat Player

        set doOnce to 1

    elseif ( NPC_2->GetAttacked == 1 )
        SetFight 100

        StartCombat Player

        set doOnce to 1

       ;<...> 

    elseif ( NPC_n->GetAttacked == 1 )        
        SetFight 100
        StartCombat Player
        set doOnce to 1
    endif

Эти блоки лучше объединить вот так.

Изменено пользователем Муурн Шепард
Ссылка на комментарий
Поделиться на другие сайты

Упс, есть же такая функция, как Actor->GetAttacked.

 

В общем, я хочу так. Происходит диалог типа:

NPC: Ты воняешь, а еще Нереварин.

PC: Да, я действительно Нереварин. А воняешь тут только ты.

NPC: Что??? Вали его, парни!

(Новая запись в журнале)

 

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

И получился у меня такой скрипт. Вешается на каждого непися. Он вроде бы работает, но меня терзает подозрение, что он избыточен. Например, я не уверен, что тут требуется doOnce. С другой стороны, если не проверять эту переменную, скрипт будет случаться много-много раз, нет?

Как вам этот креатив?

 

begin MY_FightingScript

 

short doOnce

 

if ( doOnce == 1 )

    return

elseif ( doOnce == 0 )

    if ( GetJournalIndex "MY_Fight" == XYZ )

        NPC_1->SetFight 100

        NPC_1->StartCombat Player

 

        NPC_2->SetFight 100

        NPC_2->StartCombat Player

 

        <...>

        NPC_n->SetFight 100

        NPC_n->StartCombat Player

 

 

        set doOnce to 1

    endif

 

    if ( NPC_1->GetAttacked == 1 )

        SetFight 100

        StartCombat Player

        set doOnce to 1

    endif

 

    if ( NPC_2->GetAttacked == 1 )

        SetFight 100

        StartCombat Player

        set doOnce to 1

    endif

 

<...>

 

    if ( NPC_n->GetAttacked == 1 )

        SetFight 100

        StartCombat Player

        set doOnce to 1

    endif

endif

 

End

P.S. Муурн Шепард, morrow, спасибо за объяснения, узнал много нового.

Скрипт действительно крайне не оптимален если вешать его на всех неписей.

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

if ( GetAttacked == 1 )

SetFight 100

StartCombat Player

set doOnce to 1

endif

Этот блок в локальном скрипте на каждом неписе.

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

if ( NPC_2->GetAttacked == 1 ) сагривались все неписи.

Ссылка на комментарий
Поделиться на другие сайты

Вот эта строчка лишняя.

Да, и в самом деле.

 

 

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

Штука-то в том, чтобы не только с диалога агрились. Грубо говоря, я мочканул непися в подвале - и это моментально разъярило неписей на чердаке.

Ссылка на комментарий
Поделиться на другие сайты

Да, и в самом деле.

 

 

 

Штука-то в том, чтобы не только с диалога агрились. Грубо говоря, я мочканул непися в подвале - и это моментально разъярило неписей на чердаке.

Дык я пишу, вызвать его из диалога и из этого блока кода.
Ссылка на комментарий
Поделиться на другие сайты

Можно сделать другой скрипт:

if ( GetFight >= 100 )
return
endif
if ( GetAttacked == 1 )
set Room_Aggression to 1; Room_Aggression -- глобальная переменная. Можно заменить на запись в журнале. Запись можно оставить пустой (тогда в дневник ничего не напишется) или добавить какой-нибудь текст.
endif
if ( Room_Aggression == 1 )
StartCombat Player
SetFight 100
endif
Изменено пользователем Муурн Шепард
Ссылка на комментарий
Поделиться на другие сайты

  • 2 месяца спустя...

   В общем вопрос такой, например я хочу сделать новый доспех и проверил на готовом, подключив из него уже готовые детали в новый мною созданный плагин в виде от 2-3 лица и всё работает, а вот от первого лица вместо перчаток у меня голые руки виднеются, как подключить перчатки от первого лица? Я проверил на доспехе из плагина и создал бодипарт от nif перчаток 1st но вот никуда его подключить не могу? Основная меша идёт на бодипарт, добавочная gnd на элемент доспеха ( если таковая необходима?! ) туда же и картинка инвентаря, но куда подключать мешу с видом от 1-го лица????? :boring:  Да и ещё вопрос, можно ли порезать в Construction set например наплечник и сделать его поменьше, а то некоторые массивные и выглядят не очень правдоподобно. Где это видано чтобы ГГ таскал на каждом плече по 20 килограмм железа? =-O 

Ссылка на комментарий
Поделиться на другие сайты

как подключить перчатки от первого лица?

Нужно сделать бодипарт с ID, как у того же бодипарта перчаток, и добавить .1st в конце и он подгрузится автоматом. К примеру у даэдрика от третьего лица бодипарт a_daedric_gauntlet, а для первого a_daedric_gauntlet.1st.

 

можно ли порезать в Construction set например наплечник и сделать его поменьше

Нельзя. Нужен 3D редактор (3DS Max или Блендер, или еще какой). На худой конец можно в нифоскопе попробовать.

Изменено пользователем CemKey
Ссылка на комментарий
Поделиться на другие сайты

  • 1 месяц спустя...

CemKey спасибо! :thumbup:

 

Ещё есть пара вопросов, делаю свою страну отличную от Ввандерфелла в западном море. Поднял твердь из воды в пустошах южнее Солтсхейма и западнее Хла Оуд, выровнял землю, наложил текстуры, окольцевал каменными стенами весь полис с зданиями размером поболее Вивека будет, сейчас облагораживаю и т.д. и т.п. медленно но верно! [:-}  Создал свой регион с погодой и звуками как и положено, один непонятный момент нарисовался, когда там идёт снег то выпадает сообщение об ошибке что нет текстур снега. В конструкторе мой регион не имеет опции добавления снега или снежной бури, а вот в указании погоды для моего региона есть и снег, и снежная буря. Когда идёт снег то появляются две ошибки что нет текстур снега, но нажав пару раз Yes она пропадает и всё нормально! В снегу так красиво там бегать! :thumbsup: :thumbsup: :thumbsup: В общем я так понял что в Construction set просто не добавлен снег так как он идёт со вторым аддоном Bloodmoon? Есть ли возможность убрать эти ошибки или прописать например путь к этой текстуре? Я добавил только снег, без снежной бури, а зачем она?! Планирую очень сильно расширять край и создать там полноценную страну в три раза поболее Солтсхейма, и в связи с этими планами нужно ростить леса и ваять в них разбойничьи угодья для напускания опасности в приключениях по новой территории в поисках интересных мест: древних склепов с находящимися там артефактными вещами, ну и подобных мест где можно разжиться вкусненьким. Вопрос такой, опишите пожалуйста подробно как добавлять НПС-ов и Креатуры на территории и в уровневые списки, для опасного прохождения игры? Как мне напихать разбойников в леса по респавну в их "Хазы и Малины" :-D  и как сделать так чтоб Креатуры стали махать оружием в драке на манер НПС? НПС просто даёшь одно оружие и он им машет если оно у него одно, а Креатуры что то не хотят драться вложенным им оружием, как так? :boyan:

 

   Прошу прощения за глупый вопрос! :-|  Сейчас смотрел GFM 6.2 1с так там всё это описано, ну что русская версия не прописала в Morrowind.ini снег и снежную бурю. GFM это всё правит. Оставлю вопрос что если мало ли кто как и я будет искать исправление этой ошибки. Про левел листы, там всё просто оказалось в конструкторе всё несложно разобраться! :thumbup:

Изменено пользователем Muxau/l
Ссылка на комментарий
Поделиться на другие сайты

  • 1 месяц спустя...

3 байта неизвестного назначения у неписей в NPDT, смещение 5, 6, 7 если включен autocalc. Если выкл, то смещение другое. Чаще всего там хранятся нули, часто три числа - 96, 231, 119, но часто проскакивают непонятные значения для непонятных целей. Там рядом хранятся параметры непися, типа репутации. Кто шарит, скажи что там сохраняется.

 

Еще есть загадочный бит в AIDT, который установлен только у нескольких неписей в игре, например alvis teri

kaushad

arns saren

beden giladren

manat shimmabadas

redoran guard sarethi2

sul-matuul

yngling half-troll

gilvas barelo

vevrana aryon

tivam sadri

sonummu zabamat

dead ordinator

dead ordinator_key

dead elite ord

agronian guy

chargen boat guard 2

chargen boat guard 1 Кто знает что у них общего, чего нет у других?

Ссылка на комментарий
Поделиться на другие сайты

Еще есть загадочный бит в AIDT, который установлен только у нескольких неписей в игре, например alvis teri

kaushad

arns saren

beden giladren

manat shimmabadas

redoran guard sarethi2

sul-matuul

yngling half-troll

gilvas barelo

vevrana aryon

tivam sadri

sonummu zabamat

dead ordinator

dead ordinator_key

dead elite ord

agronian guy

chargen boat guard 2

chargen boat guard 1 Кто знает что у них общего, чего нет у других?

Интереса ради прошёлся по неписям, но общих параметров не заметил. Похоже на "хвост" процесса разработки, который забыли или не посчитали нужным убрать.

Ссылка на комментарий
Поделиться на другие сайты

  • 2 месяца спустя...

Всем привет. Подскажите, пожалуйста, как сделать проверку для скрипта на принадлежность игрока к гильдии?

Ссылка на комментарий
Поделиться на другие сайты

Всем привет. Подскажите, пожалуйста, как сделать проверку для скрипта на принадлежность игрока к гильдии?

If ( getpcrank "mages guild" >= 0 )

Ссылка на комментарий
Поделиться на другие сайты

  • 4 недели спустя...

Всем в очередной раз привет! У меня появился вопрос. Можно ли для определенных предметов поменять звук? Например, я делаю в разделе зелий еду (Чтобы эффект от еды был, даже, без высокого навыка алхимии), можно ли сделать так, чтобы при съедании, к примеру, булки не было звука бульканья зелья?

Ссылка на комментарий
Поделиться на другие сайты

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

Ссылка на комментарий
Поделиться на другие сайты

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

 

KZaIkWC3.png

 

Где шаг 3 - выставьте 0, и нужный выбранный вами NPC не сдвинется с места.

Ссылка на комментарий
Поделиться на другие сайты

Спасибо огромное :heart:  :heart:  :heart:

Пожалуйста, пишите, если что, поможем, чем сможем.

Ссылка на комментарий
Поделиться на другие сайты

  • 2 недели спустя...

Эмм... чёт я туплю середь ночи :facepalm2: .
Взялся делать фикс своего мода "То да сё от Редмена" для текущей версии МФР. Суть в том, что некоторые мои объекты налезают на мфр-овские объекты; я решил свои объекты отодвинуть в сторону.
Загружаю в CS свой esp и MFR.esm; свой esp делаю активным. Отодвигаю свои объекты в сторону. Сохраняю плагин.

Мой esp становится зависимым от MFR.esm. Это так и должно быть или я чего-то забыл?

Ссылка на комментарий
Поделиться на другие сайты

Мой esp становится зависимым от MFR.esm. Это так и должно быть или я чего-то забыл?

так и должно.

можно выпилить зависимость от мфр.есм через Enchanted Editor

Изменено пользователем morrow
Ссылка на комментарий
Поделиться на другие сайты

Если двигаешь только свои объекты то можно выпилить.

А чтоб не было зависимости нужно из esm сделать esp и в редакторе открывать его.

Ссылка на комментарий
Поделиться на другие сайты

morrow, olol, спасибо!
Двигал токо свои предметы, вроде внимательно делал, но... незнай, вдруг случайно задел чужое? Не помню, есть ли Enchanted Editor, посмотрю.

Доп. вопрос: для чего CS переписывает в мой esp затронутые ячейки из MFR.esm и как с этим бороться? Их штук 40 или больше, я со счёту сбился. Теперь только жёстко выпиливать их все?

Ссылка на комментарий
Поделиться на другие сайты

Если двинул что-то из MFR, то CS отругается после чистки (смотри варнинг) и сделает им дубли.

CS всегда дописывает в мод "мусор" который чистит TesTool, но он чистит лишнее только от основных ESM,

От других только руками...

Ссылка на комментарий
Поделиться на другие сайты

Пожалуйста, войдите, чтобы комментировать

Вы сможете оставить комментарий после входа в



Войти
  • Последние посетители   0 пользователей онлайн

    • Ни одного зарегистрированного пользователя не просматривает данную страницу
×
×
  • Создать...