The Elder Scrolls & Fallout 3 Modding

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

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

Объявление

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

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

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


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


помогите со скриптами плз

Сообщений 1 страница 30 из 36

1

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

1) как должен выглядеть скрипт для неломающегося оружия(меч)
2) как добавить игроку ранг в определённой фракции
3) как обходя команду set LightSource добавить оружию свечение
4) если эту команду не обойти то подскажите плиз как совместить тес кс, с расширителем OBSE

кому будет несложно подскажите пожалст

заранее спасибо

Отредактировано Destrover (2011-01-27 19:20:45)

+1

2

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

2) как добавить игроку ранг в определённой фракции

Player.SetFactionRank FactionID, Rank, например, Player.SetFactionRank MyFaction, 2
Если установить Rank в -1, то игрок будет исключен из фракции.

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

4) если эту команду не обойти то подскажите плиз как совместить тес кс, с расширителем OBSE

wiki.rumor.ru/index.php?title=Oblivion_Script_Extender:_Install - Урок по установке OBSE

Когда будет не лень время, отвечу на другие вопросы (если этого не сделают до меня)

Отредактировано Evil (2011-01-27 17:50:29)

+1

3

о, как оперативненько, бафой пасиб

Отредактировано Destrover (2011-01-27 19:28:25)

0

4

эмм, я что то сначала ступил, LightSource это всего лишь переменная, а как добавить свет вокруг перса когда он достаёт меч я так и не понял(

0

5

Привет всем!
Помогите понять работу вот этого скрипта.
Вот, как я понимаю
При текущей стадии квеста 10
После добавления в инвентарь игрока пулемёта
стадия квеста устанавливается в 20.
Просто у меня не открывается ветка диалога, которая должна работать при стадии квеста 20
В ней такие настройки
http://savepic.net/570791.jpg   
Пулемёт есть стадия квеста (есть?) по крайней мере должна быть. Так она устанавливается вот этой частью скрипта. А этой ветки диалога в игре нет.
Вот такой скрипт
Begin GameMode

if GetStage AAACasperQuest == 10
    if (Player.GetItemCount WeapMinigun >= 1)
    SetStage AAACasperQuest 20
    endif
endif
end   
Пока.

Отредактировано K.A.I.N. (2011-02-16 15:14:29)

0

6

Во-первых диалоги добавляются не просто так, то есть или через GREETING или через Add Topics. тут сложно сказать нормально ли фраза прописана.
Во-вторых меня несколкьо смущают условия. То есть данная фраза должна произноситься при стадии квеста от 10 до 20 включительно, а это судя по требуемому результату не есть гуд.

0

7

K.A.I.N.
Напиши подробней что нужно получить в результате я несовсем понял? :)

0

8

Привет всем!
У автора урока Олега Тарасова - Wulf приложенный к уроку плагин работает. Я знаю, что где то, что то пропустил или не так написал. Но где найти не могу. Сегодня открою два GECK в одном своего компаньона (читай копию компаньона Wulf !) и  в другом оригинал и пойду с верху проверять по каждому Topic. А урок на самом деле хороший - развёрнутый, с комментариями, ссылками. Много попутной полезной информации. Я уже от туда присмотрел пару новых "вкусностей", "украшательств".
Там есть такой пункт, где командой JaneSniperREF.SetActorFullName JaneSniperName устанавливается имя, так как будто после рассказа о себе игрок узнал имя до этого не знакомого человека.
А вот интересно, есть такая команда, которая так же после первого разговора с напарником добавила бы в ветку "Привет......., что новенького на просторах пустоши - имя игрока. Ведь раз в начале игры имя создаётся, логично предположить, что оно где то сохраняется - и следовательно его можно использовать.
Согласитесь. Что это было бы здорово, если при первом разговоре с моим роботом он сказал во фразе Приветствия. "Начинаю сканирование базы данных. Объект идентифицирован - как человек. Пользователь MG (Имя). Объект классифицирован, как дружественный!" А если ещё ввести проверку на пол МЖ, на принадлежность к фракции  и  т.д. Было бы замечательно и красиво - по правильному!
Пока.

Отредактировано K.A.I.N. (2011-02-17 08:06:38)

0

9

Igor_Ra
BloodBear
Ещё раз здравствуйте!
Я сегодня ещё раз попробую разобраться, как я написал выше методом сравнивания. И если не найду ошибку. Вечером, часам к 22.00 (московского) Выложу и дам ссылку на esp без текстур и мешей. Поставлю этого робота возле дома дока Митчел (только он будет человеком). Так как описать подробно в моём случае не просто. Здесь, наверное, надо смотреть и скрип квеста и непися, плюс порядка 8 topic(ов) по крайней мере тех, что идут до взятия в напарники. Это будет страницы на две текстов и картинок. А под споллер, я прятать не умею! Вот такой "чайник".
И если у Вас есть свободное время и желание поковыряться в нём (помочь) - ковыряйтесь! Он железный, ему не больно!
А за помощь- если Вы будете не против помочь, могу отплатить только таким образом. Могу сделать вас Техником  (ник и адрес сайта), или Техниками.
Записав это в ветку диалога -
"Был найдет разведчиком Provodnick и транспортирован в это место и "ПОДШАМАНЕН ЕПРСТ БЛЯ", как говорил техник(и) (..............). Состояние систем 87% от нормы."
И поставив в мастерской двух неписей с Вашими никами и диалогами с рассказом о себе. Кто, что, откуда.
Пока.
Ещё раз привет всем!
Мне удалось сдвинуться с мёртвой точки- теперь у меня два робота (второго, нового, сделал сегодня) у него всё один в один с Джейн Снайпером от Wulf! Даже диалоги!
На настоящий момент - 1 робот не хочет вновь заходить в диалог с игроком, если выйти раньше взятия квеста, на поиск оружия. Но зато дальше делает всё, как положено. Меняет оружие, дистанцию, ремонтирует, ждёт и т.п.
2 (сегодняшний) наоборот в начале делает всё как должно быть - выходит и заходит в диалоги, берёт оружие, соглашается быть напарником и выполняет команды на смены дистанции, ожидания и т.п.
Но только это увидеть нельзя - потому что он стоит на месте и за игроком не идёт! Смешно!!! Надо одного посадить на другого. Один будет разговаривать, а второй бегать и стрелять. Вернее они оба будут стрелять, так как (сегодняшний) то же это может. На своей шкуре испытал. Когда треснул его по носу!
Третьего делать не буду! Иначе перебор будет - вдруг он будет только стоять и молчать. Куда его девать такого?
Вот и я так же думаю!
Пока.

Отредактировано K.A.I.N. (2011-02-17 20:56:24)

0

10

K.A.I.N. написал(а):

При текущей стадии квеста 10
После добавления в инвентарь игрока пулемёта
стадия квеста устанавливается в 20.
Просто у меня не открывается ветка диалога, которая должна работать при стадии квеста 20

Вопрос такой. А куда ты добавляешь сей топик  - в GREETING ? Если туда, то должно работать, если нет, то нужно смотреть условия появления топика-родителя. Ну или поставь галку Top-level.

ЗЫ: Кстати наткнулся на ошибку в картинках у себя. Текст написан правильно, а вот картинки влепил не те... :( На выходные обновлю тутор.

0

11

Wulf Привет!
Спасибо. Я всё сделал, вот буквально несколько минут назад проверил в игре. Всё работает! Написано в уроке умеет - есть, спать, торговать и т.п. Будет есть, спасть и торговать и т.д! Врать не буду сам не знаю что и почему. Работает второй вариант (изготовленный методом клонирования с Джейн). А ходить он не хотел, потому что я ему пакеты AI забыл выставить. Хоть и приготовил заранее по уроку!
Ещё раз спасибо и за урок и за плагин к нему.
Пока.

0

12

Привет всем!
А я снова с вопросами! Но в этот раз больше теоретическими, чем практическими.
По сюжету квета, после разговора с ГГ NPC должен сказать "Ага буду" и уйти из своего дома (своего места на карте мира) в другую локацию. Она далеко - это станция Метро.
Как это лучше реализовать
1 телепортом
2 путешествием (по принципу возвращения компаньона домой)
И если телепортом, то как установить расстояние до игрока, при котором можно телепортировать NPC. Что бы игрок, этого случайно не увидел.
То же самое с началом путешествия, оно должно начинаться только после исчезновения ГГ из поля зрения NPC (или наоборот)
Я сначала решил продумать вариант с таймером, но понял, что это не есть хорошо. Так как я то знаю, когда NPC пойдёт или будет телепортироваться. А другой игрок этого не знает и может вернуться раньше, или не уйти совсем.
Вот такой вопрос.
И с праздником Вас всех!
Пока.

0

13

Насколько я помню в Вегасе появилась интересная функция MoveToMarkerWithFade, которая сначала объект растворяет в воздухе, а затем перемещает. Вот и воспользуйся ей.

+1

14

K.A.I.N. написал(а):

По сюжету квета, после разговора с ГГ NPC должен сказать "Ага буду" и уйти из своего дома (своего места на карте мира) в другую локацию. Она далеко - это станция Метро.
Как это лучше реализовать

Лучше всего использовать функцию измерения дистанции до игрока. Беседка использует приведенный ниже механизм для того, чтобы "отправлять на пенсию" охранников караванов, если караванщик погибает.
if getDistance Player > 8000
moveto [маркер - конечная точка маршрута]
endif
Этот блок можно вставить либо в квестовый скрипт, либо в скрипт НПС, либо в результ-скрпипт пакета trevel НПС.
Что при этом происходит: после слов "ну я пошел", НПС должен выполнить пакет тревел в заданную точку маршрута, но как только он исчезнет из поля зрения игрока, он мгновенно перемещается в эту конечную точку маршрута.

+1

15

Wulf
SpalnyVagon
Привет! Спасибо, попробую оба варианта, вариант предложенный Wulf потому что, мне интересно, что это за эффект растворения. А вариант SpalnyVagon потому что он больше подходит к моему положению.
Пока. И с праздником вас.

0

16

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

if getDistance Player > 8000moveto [маркер - конечная точка маршрута]endifЭтот блок можно вставить либо в квестовый скрипт, либо в скрипт НПС, либо в результ-скрпипт пакета trevel НПС.Что при этом происходит: после слов "ну я пошел", НПС должен выполнить пакет тревел в заданную точку маршрута, но как только он исчезнет из поля зрения игрока, он мгновенно перемещается в эту конечную точку маршрута.

Привет!
Снова я с просьбами и вопросами!
Я не много изменил условия ухода NPC. Теперь мне нужно, что бы он уходил после 35(допустим) стадии квеста.
Но я попробывал сделать немного по другому. Не потому что я такой "противоречивый эксперементатор", а просто скриптом сделать этого не смог.
Я в поле Result Script (End) нужного Topic квеста  ввёл AAAKainFreeSerioserREF(NPC) .Moveto AAASerioserXMHREF(Mаркер), как ты и советовал, но место другое. И это работает.
На Маркер поставил Триггер. В котором и хотел написать скрипт о смене пакетов AI.(так как без этой смены NPC уходит из Метро в ту локацию откуда был перемещён командой  Moveto (в насторойках AI пакета установлена Near  Editor Location).
Нашёл вот это
begin OnPackageDone PackageID- удалить пакет
begin OnPackageStart PackageID -начать новый пакет
но мне то, как я думаю надо
OnActivate
scn (название скрипта)

short sDoOnce

Begin OnTriggerEnter ID NPC
if (sDoOnce == 0)
    ID NPC.-----------------(а вот тут что писать я не знаю!)
    Set sDoOnce to 1
endif
End
Ну и можно ещё ввести удалить маркер и триггер раз они нужны только на один раз. Или отключить.
Вот я сейчас писал и подумал, а что если в настройках AI пакета поставить Near Curent Location - наверное должно получиться. Локация сменилась и новая стала местом выполнения пакета.
Пойду пробывать

Отредактировано K.A.I.N. (2011-03-09 14:19:39)

0

17

SpalnyVagon
Привет ещё раз!
Я проверил написанное выше. Действительно если AI пакет SandBox с настройкой NearCurrent Location. NPC не уходит из "новой" локации.
Так что есть способ обойтись без написания скриптов.
1 В поле Result Script (End) нужного Topic  любого квеста  вписать IDNPC  Moveto  IDMаркер
2 Установить в настройка AI пакет Wander Location - Near Current Location.
При таком случае не нужны проверки на присутствие игрока.
Но если ты знаешь как написать скрипт на триггер. По смене пакетов AI и последующему отключению или удалению Маркера и Триггера напиши пожалуйста.
Я хоть буду знать как это делается.
Пока.

0

18

K.A.I.N. написал(а):

ID NPC.-----------------(а вот тут что писать я не знаю!)

scn (название скрипта)
short DoOnce
Begin OnTriggerEnter ID NPC
if DoOnce == 0
   IDNPC.addScriptPackage [packageID]
   Set DoOnce to 1
endif
End
В данном случае НПС насильно вменяется начать выполнение пакета при попадании в поле триггера.
Можно и без триггеров обойтись. Скрипт квестовый:
scn QuestScriptName
short doOnce
If IDNPC.getincell [cellID] && doOnce == 0
IDNPC.AddScriptPackage [packageID]
set doOnce to 1
endif
end
Если НПС находится в заданном интерьере, то он начинает выполнять пакет.

+1

19

SpalnyVagon
Привет!
Спасибо! Второй вариант без триггеров  мне как раз самое то. Сейчас пойду на практике попробую!
Очень ты мне помог. У меня у нескольких NPC стояли пакеты охраны. А внутри локации прибытия у них должны были быть пакеты Песочницы. И мне из-за неумения написать скрипт пришлось заменить им пакеты Охраны. Естественно они и перестали охранять. Не смертельно, но коряво.
А теперь будет как нужно - по правильному!
Пока

0

20

Здравствуйте  8-)
А где-то можно увидеть, как практически в игре выглядят растояния? Вопрос немного корявый.. Поясню. У меня в скрипте стоит условие проверки, находится ли НПС рядом. Если я использую функцию if (GetDistance <1000), то насколько близко при этом <1000 должен находиться НПС, я как-то слабо представляю это расстояние.   В чем оно измеряется? А если я использую другую функцию if (GeiInSameCell ==1), то как максимально далеко в мире может находиться НПС, чтобы условие было верным?

0

21

Luna, статья на Wiki Rumor

0

22

Evil,спасибо  8-) 

А еще вопрос.. Если я компаньону НПС сделаю команду "Установить дом", то к ней можно привязать телепорт в конкретное помещение, которое и будет домом для НПС? То есть, чтобы после команды "Установить дом" рядом с НПС появлялся телепорт?

0

23

Luna, можно какой-нибудь активатор или маркер переместить в то место. А в пакете, который использует компаньон при беге домой, указать этот самый маркер/активатор. Или телепортировать можно, да. Заклинанием, или сразу командой moveto.

Отредактировано Evil (2011-03-29 14:49:54)

0

24

Evil, опять вернулась к этому вопросу.. Откладывала на неопределенное время.  Поправьте меня, если я что-то не так собираюсь делать, пожалуйста.
1. Создаю команду " Установить дом" с маркером, который переносится туда, где этот дом будет устанавливаться, а именно в ячейку, где игрок отдает эту команду.
2. Создаю портал, который, чтоб не попадался на глаза, помещаю в новой ячейке, совершенно пустой и который и будет переноситься.
3. Создаю маркер, вроде того, который нужен, чтобы перенести компаньона к игроку  при заклинании "Призыв компаньона" и помещаю его рядом с порталом.
4. При команде "Установить дом" получается следующая последовательность действий: команда - перенос маркера дома в ячейку с игроком - перенос портала в ячейку с игроком к маркеру дома. Так? А при переносе ведь не должен сбиться телепорт, который я повешу на портал, и который будет вести в интерьер дома?

0

25

Luna, что-то напутано всё.

1. Нужно создать команду "Установить дом", при выборе которой активатор помещается к игроку командой "moveto player". Всё. Зачем там еще 2 лишних активатора/маркера?
2. Ну ладно, еще один активатор на заклинание призыва компаньона. Когда игрок использует это заклинание, переносим к игроку активатор (уже другой), а к этому активатору команьона. Всё.

Вообще, все это есть в оффлайн версии туториала Igor_Ra о создании компаньонов-животных.

Если компаньон - человек, то заставим его после фразы "телепортируйся домой" скастовать заклинание, на котором будет висеть скрипт, переносящий компаньона к активатору, поставленному командой "установить дом". (moveto activatorRef)

Отредактировано Evil (2011-04-19 16:59:29)

0

26

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

Согласно этого заклинания, туда, где будет отдана команда "Установить дом" и будет переноситься активатор. Этот активатор я предварительно поставлю в пустой ячейке рядом с порталом.  и Дальше по принципу заклинания "Призыв компаньона" - портал переносится к активатору, появляясь рядом с игроком.
А компаньона я и так призываю заклинанием, взятым оттуда же, а то иногда их искать так муторно.

0

27

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

0

28

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

Я хочу компаньону-НПС добавить команду " Установить дом". При ее активации маркер дома перемещается туда, где была отдана команда.  Но на животных это действует так, что зверь бежит к этому дому из любой точки и ждет там. А если я компаньону-НПС где-нибудь в лесу дам такую команду, то ведь ему же надо где-то жить, пока я не вернусь? Поэтому нужно, чтобы к месту установки дома перемещался портал. Перемещение портала можно сделать по принципу заклинания вызова компаньона, той же командой moveto перенеся его к активатору, установленному командой "Установить дом". А сам портал, чтобы на него нельзя было наткнуться просто так, поместить в новую ячейку, абсолютно пустую, откуда он и будет вызываться по мере надобности.
Честно говоря, я просто сомневаюсь, можно ли объединить все это в одну кучку.. Или я неправильно понимаю сам принцип действия этих активаторов? Ведь первый скрипт я повешу на активатор, а второй - на портал, и они не должны мешать друг другу..
что-то я запуталась((

0

29

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

Код:
portalRefID.moveto activatorRefID

0

30

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

0


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