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

Protective Guards (M, MWSE)


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

Отличнейший старый мод, совершенно непонятно, почему его не локализовали. Требует MWSE!

 

Если на персонажа напали негодяи-NPC, стражники помогут одолеть агрессоров (в оригинале они защищают только от Creatures). На помощь прибегут НИПы с именами: Охранник, Высший ординатор, Ординатор, Стражник Редорана, Стражник Хлаалу, Капитан Стражи, Королевский страж (это те, которые во дворе), Скаал Почетный Страж, Скаал Следопыт.

Телванни и Эшлендеры в основной версии помогать не будут!

В версии 1.2Т добавлены стражники Телванни.

 

Принимаются заявки на добавление НИПов в список защитников хилых Нереваринов!

 

Оригинал: http://www.fliggerty...php?f=19&t=1116

Protective Guards 1.2 RUS.esp

Protective Guards 1.2T RUS.esp

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

Раддимус, отличная работа, забираю!

З.Ы. На МФР тестил, все работает?

Нет, не тестил. Там глобалскрипт, так что не должно быть конфликтов.

так до сих пор нужно?

Ну как бы да, если не включен встроенный в МГЕ.

 

По неясной причине скрипт (функция xStringCompare, очевидно) не обрабатывает имена NPC, состоящие из нескольких слов, разделённых пробелом. Возможно ли это как-то исправить без переименования стражников?

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

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

Ну как бы да, если не включен встроенный в МГЕ.

иными словами, если в сборке МФР в МГЕ параметр Internal MWSE Disabled=False, то будет работать без установки доп.софта?
Ссылка на комментарий
Поделиться на другие сайты

иными словами, если в сборке МФР в МГЕ параметр Internal MWSE Disabled=False, то будет работать без установки доп.софта?
Должно.
Ссылка на комментарий
Поделиться на другие сайты

иными словами, если в сборке МФР в МГЕ параметр Internal MWSE Disabled=False, то будет работать без установки доп.софта?

Да, если встроенный разрешён - то он загружается как расширение МГЕ и всё в порядке.

 

Удалось разобраться с синтаксисом, охранники вступают в бой вне зависимости от наличия пробелов в имени. Принимаются мнения о добавлении НИПов в список защитников хилых Нереваринов!

Теперь нужна доводка и отладка: после гибели агрессора не всегда отключается боевая музыка, а стража продолжает нервно носиться туда-сюда. При этом ожидание не запрещено и персонаж не в бою...

Очевидно, нужно встроить в скрипт какое-то прерывание в случае здоровья обидчика меньше 1. Кто разбирается в скриптах - посмотрите!

 

begin fl_ig_find_guard
long tarid
long tarref
long npcref
long npcname
long match
long sval1
long sval2
long sval3
long temp
short call
short state
short delay
if ( MenuMode )
Return
endif
if ( delay > 0 )
set delay to ( delay - 1 )
Return
endif
ifx ( state )
set state to 0
set npcref to 0
set call to 0
StopScript fl_ig_find_guard
else
ifx ( npcref )
 set call to 0
 setx npcref to xNextRef npcref
else
 set call to 0
 setx tarid to xRefID
 setx tarref to xGetRef tarid
 setx npcref to xFirstNPC
endif
if ( npcref == 0 )
 set state to 1
 Return
endif
xSetRef tarref
set temp to GetHealth
if ( temp < 1 )
 set state to 1
 Return
endif
set delay to 2
setx temp to xRefType
if ( temp != 1598246990 )
 Return
endif
xSetRef npcref
set temp to GetHealth
if ( temp < 1 )
 Return
endif
xSetRef npcref
set temp to GetDisabled
if ( temp == 1 )
 Return
endif
xSetRef npcref
set temp to GetDistance "player"
if ( temp > 15000 )
 Return
endif
xSetRef npcref
set temp to GetWeaponDrawn
if ( temp == 1 )
 Return
endif
xSetRef npcref
set temp to GetSpellReadied
if ( temp == 1 )
 Return
endif
set call to 0
setx npcname to npcref->xGetName
setx temp to xStringCompare npcname "Охранник"
if ( temp == 0 )
 set call to 1
endif
setx temp to xStringCompare npcname "Высший ординатор"
if ( temp == 0 )
 set call to 1
endif
setx temp to xStringCompare npcname "Ординатор"
if ( temp == 0 )
 set call to 1
endif
setx temp to xStringCompare npcname "Стражник Редорана"
if ( temp == 0 ) ;first word is guard
 set call to 1
endif
setx temp to xStringCompare npcname "Стражник Хлаалу"
if ( temp == 0 )
 set call to 1
endif
ifx ( call )
 npcref->xStartCombat tarref
 set delay to 15
endif
endif
end

 

 

 

begin fl_ig_global
long npcref
long npcname
long match
long sval1
long sval2
long sval3
long temp
long temp2
short state
short call
float timer
if ( MenuMode )
Return
elseif ( GetPCCrimeLevel >= 1500 )
Return
endif
;no need to run this while the other one is running
if ( ScriptRunning "fl_ig_find_guard" == 1 )
Return
endif
ifx ( state )
set timer to ( timer + GetSecondsPassed )
if ( timer < 5 )
 Return
endif
set timer to 0
set state to 0
set npcref to 0
else
ifx ( npcref )
 setx npcref to xNextRef npcref
else
 setx npcref to xFirstNPC
endif
if ( npcref == 0 )
 set state to 1
 set timer to 0
 Return
endif
setx temp to npcref->xRefType
if ( temp != 1598246990 )
 Return
endif
xSetRef npcref
set temp to GetWeaponDrawn
xSetRef npcref
set temp2 to GetSpellReadied
if ( temp == 0 )
 if ( temp2 == 0 )
  Return
 endif
endif
xSetRef npcref
set temp to GetTarget "player"
if ( temp == 0 )
 Return
endif
xSetRef npcref
set temp to GetSoundPlaying "Restoration Cast"
;casting restoration spell, possibly on player
if ( temp == 1 )
 Return
endif
xSetRef npcref
set temp to GetAttacked
if ( temp == 1 )
 Return
endif
set call to 0
setx npcname to npcref->xGetName
setx temp to xStringCompare npcname "Охранник"
if ( temp == 0 )
 set call to 1
endif
setx temp to xStringCompare npcname "Высший ординатор"
if ( temp == 0 )
 set call to 1
endif
setx temp to xStringCompare npcname "Ординатор"
if ( temp == 0 )
 set call to 1
endif
setx temp to xStringCompare npcname "Стражник Редорана"
if ( temp == 0 )
 set call to 1
endif
setx temp to xStringCompare npcname "Стражник Хлаалу"
if ( temp == 0 )
 set call to 1
endif
ifx ( call )
 Return
endif
if ( ScriptRunning "fl_ig_find_guard" == 1 )
 Return
endif
xSetRef npcref
StartScript "fl_ig_find_guard"
set state to 1
endif
end

 

 

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

Принимаются мнения о добавлении НИПов в список защитников хилых Нереваринов!
Эшлендеры в лагерях, стоящие на улице.
Ссылка на комментарий
Поделиться на другие сайты

Эшлендеры в лагерях, стоящие на улице.

Пожалуй, нет. И Стражникам Телванни тоже будет плевать на конфликты.

Вообще, вопрос довольно скользкий, учитывая отношения между фракциями и заклинания разъярения. Тот же Лук Ауриэля будет добыть в разы проще. Наверное, всё-таки следует остановиться на безымянных неписях.

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

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

 

Что до манчкинства, то тенденция игнорировать игровую логику ради того, чтобы игроки не могли пользоваться "дырами", привела к созданию Обливиона.

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

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

Не думаю, чо Эрабенимсуны, к примеру, вообще кого-то растаскивать будут. Скорее соберут лут с того, кому повезло меньше, а того, кому больше - н'вахом назовут и пошлют подальше.

Что до манчкинства, то тенденция игнорировать игровую логику ради того, чтобы игроки не могли пользоваться "дырами", привела к созданию Обливиона.

А в чём логика того, что товарищи и сослуживцы начинают крошить в капусту приятеля, напавшего в припадке ярости на какого-то чужестранца?

Или зачем стражнику Дома Телванни защищать от своих товарищей понаехавшего адепта имперского культа, у которого бумаг-то нужных нет?

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

А в чём логика того, что товарищи и сослуживцы начинают крошить в капусту приятеля, напавшего в припадке ярости на какого-то чужестранца?

Или зачем стражнику Дома Телванни защищать от своих товарищей понаехавшего адепта имперского культа, у которого бумаг-то нужных нет?

Кстати, на будущее можно будет провернуть и так:

1) стражники дома Тельванни будут защищать вас, если вы являетесь членом этого дома (или начиная с определённого ранга, например с "Присягнувшего" (а Наёмники и Слуги - слишком мелкая шелупонь)).

2) если нападающий на вас также из Дома Тельванни и рангом ниже, то вас будут защищать, а если выше, то наплюют и оставят без внимания.

Конечно, это тот ещё геморр, учитывая то, что скрипты надо под МВСЕ присобачить. Вообще не имел с ним дела..

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

Не передёргивайте, дорогой друг. Ситуации с нападением на игрока не так уж редки, и безразличие окружающих при этом выглядит, как досадная недоработка создателей игры. Описанная ситуация со стражниками Великого Дома Телванни - искусственно созданная, противоречащая смыслу игры. Да, будь Морроувинд молод и популярен, как в 2005-м, имело бы смысл ставить ловушки на читеров. Не теперешняя аудитория игроков - немногочисленная, как правило взрослая и с большим игровым опытом - ставит ролевой отыгрыш выше сомнительных действий. Уже не модно убивать ординаторов и сдаваться в плен, чтобы, заплатив скромный выкуп, целую неделю продавать дорогие доспехи местному ростовщику ради пары тысяч монет. Да и зачем такое издевательство над игрой, если гораздо легче получить желаемое, просто открыв консоль?

 

Что до Эрабинемсунов и других племён, любой коллектив прежде всего стремится себя обезопасить. И, если в селение ворвуться двое - вооружённый охотник и обессиленная жертва, - жители первым делом попытаются нейтрализовать охотника, как представляющего бОльшую угрозу.

 

Впрочем, адаптация ваша, и то, как ею распорядиться, решать вам. :-)

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

Описанная ситуация со стражниками Великого Дома Телванни - искусственно созданная, противоречащая смыслу игры.

Нет, ну а зачем Тельваннийским стражникам защищать какого-то приезжего, предположим, аргонианина из дома Хлаалу и Гильдии Магов, если на него набросится какой-нибудь член дома Тельванни?

Раз набросился, значит по делу. Если набросился и проиграл, погиб от рук приезжего, значит был недостаточно хорош, а приезжий был достоин его убить. Ну а "если ты выиграл, значит у тебя были веские доказательства" и смерть какой-то там ящерки будут рассматривать уже постфактум.

Ну а если наш персонаж сам из Дома Тельванни, да ещё и высокого ранга, то может и помогут. Да и то вряд ли, так как если ты столь далеко пробившийся маг, то и свои вопросы должен решать самостоятельно, да уж от мелких служек отбиваться как от мух.

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

Нет, ну а зачем Тельваннийским стражникам защищать какого-то приезжего, предположим, аргонианина из дома Хлаалу и Гильдии Магов
Проверить, принадлежит ли игрок к Дому Телванни, думаю, займёт не больше одной строчки в скрипте :-)
Ссылка на комментарий
Поделиться на другие сайты

Проверить, принадлежит ли игрок к Дому Телванни, думаю, займёт не больше одной строчки в скрипте :-)

Так я и написал, что проверку на то, является ли игрок членом Дома Телванни, можно включить, при желании Раддимуса: http://www.fullrest....post__p__832970

Просто я понятия не имею о скриптовых командах в МВСЕ.

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

Насколько мне известно о МВСЕ - можно совмещать его расширенные скрипты с нормальными КС-овскими.

Иное дело - работает ли оно

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

Очевидно, нужно встроить в скрипт какое-то прерывание в случае здоровья обидчика меньше 1. Кто разбирается в скриптах - посмотрите!

вроде есть такое условие уже в первом скрипте

set temp to GetHealth
if ( temp < 1 )
 set state to 1
 Return
endif

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

вроде есть такое условие уже в первом скрипте

Вот и меня удивило, что не срабатывает. А всё потому, что морроувинд - очень хитрая игра. В ней НИП со здоровьем 1 - тоже мёртвый :dontknow:

Поставил в условие <=, теперь всё в порядке, вроде бы. Обновляю плагин.

На помощь прибегут НИПы с именами: Охранник, Высший ординатор, Ординатор, Стражник Редорана, Стражник Хлаалу, Капитан Стражи, Королевский страж (это те, которые во дворе), Скаал Почетный Страж, Скаал Следопыт.

Телванни и Эшлендеры помогать не будут!

 

P.S. Хотя мне не жалко - пусть будет версия с добрыми и плюшевыми Телванни.

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

Так что решили, товарищи, какая версия более ЛОРна и логична, С Телванни или без? Все таки думаю, что Телванни любая живность, бегущая за ГГ, так же будет раздражать и они ее прибьют, чтобы глаза не мозолила.
Ссылка на комментарий
Поделиться на другие сайты

Само наличие стражников у Телванни как бы намекает на то, что это полнофункциональные стражники.
Ссылка на комментарий
Поделиться на другие сайты

Так что решили, товарищи, какая версия более ЛОРна и логична, С Телванни или без? Все таки думаю, что Телванни любая живность, бегущая за ГГ, так же будет раздражать и они ее прибьют, чтобы глаза не мозолила.

Само наличие стражников у Телванни как бы намекает на то, что это полнофункциональные стражники.

А ещё у них полнофункциональный совет, и рабства нет, и некромантию никто не практикует. Всё по правилам империи, ага.

 

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

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

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

Ну это ж не значит, что теперь всё надо делать наоборот.

А ещё то, что члены Гильдии Магов из трактира до причала добираться без сопровождения опасаются, нам говорит о качестве охраны гостей Телваннийских поселений.

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

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

Для публикации сообщений создайте учётную запись или авторизуйтесь

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

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

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

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