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

Скрипты на заказ


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

Хотя скрипт стабатывает только со второго раза (и твой с кольцами тоже (там опечатка у тебя в 24 строке и в 21 ITEMID не обязателен, если скрипт вешается на кольцо)), то есть один раз получается одеть.
Ссылка на комментарий
Поделиться на другие сайты

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

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

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

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

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

Все же лучше сделать вот так:

В таком случае переменные Equipped и UnEquipped надо объявить глобальными и назвать как-нибудь позамороченней.

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

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

Пробовала с этим (здесь только день и ночь)

http://pastebin.com/jfQNmgyj

 

В экстерьере мне сказали поставить вместо PositionCell Position, пробовала, не получалось.

NPC не возвращается в экстерьер, в интерьере появляется нормально. Пробовала заменить экстерьер на интерьер, даже на тот же самый - не появляется и все тут(

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

Вообще что-то непонятное. Она исправно стояла на улице, дома появилась почему-то не в девять, а только в 11, в пять утра пропала намертво до 11 ночи. Что там со временем?

 

Как прописать позишн селл правильно? Со всеми точками и запятыми? Координаты -17 22

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

Приведи твой вариант скрипта.

Вот так правильно прописать:

PositionCell -131545 220782 90 0 "CELLID" (-17, 22 )

CELLID должен быть таким, как и в Cell Wiew.

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

if ( GameHour >= 21 )

if ( evening == 0 )

PositionCell 3633 2868 12726 10800 "Каюта Катти Сарк"

set evening to 1

set morning to 0

endif

elseif ( GameHour >= 9 )

if ( morning == 0 )

PositionCell -131545 220782 90 0 "Солстхейм, побережьe Фелсаад" (-17, 26 )

set morning to 1

set evening to 0

endif

else

if ( evening == 0 )

PositionCell 3633 2868 12726 10800 "Каюта Катти Сарк"

set evening to 1

set morning to 0

endif

endif

У тебя условия были забавные, попробуй так.

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

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

 

Блин, ну как же не хочется реализовывать это по идиотски - с дубликатами персонажей, как это сделано в Солтсхеймском замке((( Неужели Морр просто не поддерживает такое понятие, как перемещение по таймеру в скрипте непися? Что за бред творится с этими скриптами?(((((

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

Ладно, может быть, я сегодня у себя на компе сделаю подобный скрипт и сам посмотрю, в чем может быть ошибка, а пока попробуй самый первый мой вариант, днем нажми в консоли на НПЦ и введи sv. Заскринь результат. Ночью сделай то же самое. Изменено пользователем Daedroth_CH
Ссылка на комментарий
Поделиться на другие сайты

http://rusfolder.com/36824832

http://rusfolder.com/36824833

http://rusfolder.com/36824834

http://rusfolder.com/36824835

http://rusfolder.com/36824836

http://rusfolder.com/36824837

Скриншоты в интерьере сделаны ночью.

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

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

http://rusfolder.com/36824832

http://rusfolder.com/36824833

http://rusfolder.com/36824834

http://rusfolder.com/36824835

http://rusfolder.com/36824836

http://rusfolder.com/36824837

Скриншоты в интерьере сделаны ночью.

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

 

Неудобный сайт со скринами. ПО одному все скачивать очень долго. Лучше будет сюда залить.

Впрочем, прежде, чем вводить sv, надо было тыкнуть в консоли на НПЦ, на котором лежит нужный скрипт. Однако я сегодня сам проверю у себя на компьютере. что с ним не так, будь он неладен.

 

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

 

Черт подери все это! :wall:

Видать, забагованность перемещения НПЦ между экстерьером и интерьером это баг движка. Ни локальный скрипт, ни глобальный не могут сработать.Тем паче, что в 14 часов, 19, 21 и, возможно еще в некоторое время НПЦ постоянно возвращался на свое место , указанное в КС (хотя должен стоять в той же локации, но немного в другом точке). Я это обошел, но вытащить Арилла (для теста я взял его) из трактира не получилось. Он просто пропадал, хотя GetPos показывали правильные значения. Я пробовал влепить енабл, после того, как он исчез, но и это не помогло. Я точно не смогу ничего сделать. Однако попробуй обратиться к Mortuus'у или Olol'у. Может быть, они помогут.

 

Однако, если ты говоришь, что у тебя получилось заставить НПЦ перемещаться между локациями, то попробуй до основного блока написать вот это:

 

if ( GameHour >= 14 ) ; именно >=, при == точно не сработает, хз почему

if ( COUNT < 1 )

; размести его там, где он должен стоять

set COUNT to 1

endif

endif

 

Он у тебя исчезнет еще раз в 19 часов, потому после этого блока пропиши вот это (кстати, если попытаться прописать одним блоком с предыдущим с помощью elseif, то ничего не выйдет, потому что оба утверждения верны):

 

 

if ( GameHour >= 19 )

if ( COUNT < 2 )

; размести его там, где он должен стоять

set COUNT to 2

endif

endif

 

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

 

if ( GameHour >= 0 )

if ( COUNT != 0 )

set Count to 0

endif

endif

 

ДА, переменную COUNT еще следует объявить как short, но название можно придумать другое. Надеюсь, понятно, если нет, напишу вариант скрипта на Pastebin'е.

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

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

 

if ( GameHour >= 14 ) ; именно >=, при == точно не сработает, хз почему
Да всё просто, gamehour глобальная float переменная, т.е. её значение меняется каждый фрейм на определенные доли в зависимости от твоего фпс. Так что точное значение ты никогда не отследишь. Точнее отследить можно, но поймать - нет. К примеру ты можешь сделать вещь при активации которой тебе укажется время, можно даже пересчитать чтобы до минут или секунд показывало. =)

 

 

 

(кстати, если попытаться прописать одним блоком с предыдущим с помощью elseif, то ничего не выйдет, потому что оба утверждения верны):
В твоей статье на СХ кой чего про блоки не написано. В блоках if-elseif-elseif-elseif-else-endif если подходит ближайшая от верха "истина" то остальные блоки пропускаются до следующего фрейма. Т.е.

If ( m ==0 )

set m to 1

elseif ( m == 1 )

set m to 2

elseif (m==2)

set m to 3

else

set m to 4

endif

Переменная m станет равна 4 через 4 кадра только, а не по цепочке за 1 кадр.

 

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

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

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

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

begin sc ; m1 m2 m3 скрипты самозавершающиеся, выставляют позиции нужные для нпк, этот скрипт стартовый, работает ;постоянно

short status

if ( status == 0 )

if ( gamehour < 9 )

Startscript m1

set status to 1

endif

elseif ( status == 1 )

if ( gamehour > 9 )

if ( gamehour < 21 )

Startscript m2

set status to 2

endif

endif

elseif ( status == 2 )

if ( gamehour > 21 )

Startscript m3

set status to 0

endif

endif

end

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

 

begin m1

Stopscript m1

IdNPC1 -> PositionCell, -21278, -17613, 534, 0, "Balmora (-3, -3)"

IdNPC2 -> PositionCell, -21278, -17613, 534, 0, "Balmora (-3, -3)" ; и тд

end

остальные скрипты аналогично только другие позиции

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

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

Через локальный скрипт можно было избежать возвращение на стартовую позицию НПЦ в опр. часы единичной командой, через глобал же мне приходилось выставлять таймер на 3 секунды, за время которых НПЦ перемещается в нужную позицию при любом смещении от нее по X и Y. Без таймера, НПЦ стабильно возвращался на исходную.

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

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

Через локальный скрипт можно было избежать возвращение на стартовую позицию НПЦ в опр. часы единичной командой, через глобал же мне приходилось выставлять таймер на 3 секунды, за время которых НПЦ перемещается в нужную позицию при любом смещении от нее по X и Y. Без таймера, НПЦ стабильно возвращался на исходную.

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

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

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

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

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

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

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

Войти

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

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

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