Форум «Лабортории Mod-Tec»

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

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


Вы здесь » Форум «Лабортории Mod-Tec» » G.E.C.K. Community » Помощь по скриптам Fallout 3 и Fallout: New Vegas


Помощь по скриптам Fallout 3 и Fallout: New Vegas

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

61

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

если нужен скрипт для двери, то так

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

0

62

Тут было огроменное письмо об закладке Challenge и скриптовых ссылках в этои форме, за ночь разобрался, любопытнейшая закладка однако. Беседке РЕСПЕКТ!

Если правильно понимаю приведенная далее строчка зипишет показания "счетчика" в журнал GetChallengeCompleted NVChallengeKaboom
Остановит StopChallengeCompleted NVChallengeKaboom или LockChallengeCompleted NVChallengeKaboom ???
В оригинале не один "счетчик" не останавливается.

Отредактировано Gvinpin (11.03.11 08:01:43)

0

63

Еще вопрос - почему не работает этот скрипт?

Скрипт
Код:
scn LDoorIntSCRIPT
Begin onActivate Player 
  if Player.AddAllItems MyContainerRef
  return
  else Player.AddAllItems MyContainerRef
  endif
Activate
End

Вот что вылазит: http://s002.youpic.su/pictures/12997800 … bc4f2a.png
Команда по взятию игроком всех вещей из контейнера неправильная значит... ХЗ
По идее если игрок при активации двери не взял все вещи из ящика, то скрипт добавит все вещи, а если игрок вещи взял, то ничего не будет делать. Хотя не знаю чем это может закончиться, ведь игрок может взять например одну вещь  %-)

Еще небольшой вопрос: какой скрипт проверки наличия определенного предмета в инвертаре игрока? GetContainer?

Отредактировано collapse (11.03.11 14:06:24)

0

64

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

Если правильно понимаю приведенная далее строчка запишет показания "счетчика" в журнал GetChallengeCompleted NVChallengeKaboom

Нет, данное условие проверяет, закончен ли конкретный challenge. Т.е. переменная возвращает "1", если закончено, но "0", если испытание (challenge) до сих пор активно.

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

Остановит StopChallengeCompleted NVChallengeKaboom или LockChallengeCompleted NVChallengeKaboom ???

Обеих команд не существует. Зато существует команда

Код:
RemoveRecurringFromChallenge ИмяИспытания

, которая останавливает конкретное испытание.

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

В оригинале не один "счетчик" не останавливается.

Останавливается, например, в скриптах "ChallengeRobotSCRIPT", "ChallengeMutantScript", "ChallengeBugSCRIPT" и других.

collapse, скрипт не работает, потому что неправильно заданы условия. Опишите подробнее, что вам нужно, и я напишу подходящий скрипт, объяснив, что было неверно в вашем.

0

65

Все вещи игрока в ящике в доме. Он может их брать. При выходе из дома (то есть при нажатии на дверь) вещи должны возвращаться игроку. Условие - если игрок взял все вещи из ящика сам, то скрипт не выполняется

Еще небольшой вопрос: какой скрипт проверки наличия определенного предмета в инвертаре игрока? Возможно ли встроить его в этот скрипт?

Код:
scn LDoorSCRIPT
Begin onActivate Player
Player.RemoveAllItems MyContainerRef
Player.AddItem OutfitPrewarSpring 1
Player.EquipItem OutfitPrewarSpring
Activate
End

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

Отредактировано collapse (11.03.11 15:36:46)

0

66

collapse, вот скрипт для "выходной" (через которую выходят) двери:

Код:
scn aaaModTecDoorSCRIPT

Begin onActivate Player
ИмяКонтейнераREF.RemoveAllItems Player
Activate
End

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

Скрипт для удаления всех вещей из инвентаря и экипировки повседневной одежды:

Код:
scn LDoorSCRIPT

Begin onActivate Player
Player.RemoveAllItems MyContainerRef
if (Player.GetItemCount OutfitPrewarSpring > 0)
  Player.AddItem OutfitPrewarSpring 1
  Player.EquipItem OutfitPrewarSpring
  MyContainerRef.RemoveItem OutfitPrewarSpring 1
else
  Player.AddItem OutfitPrewarSpring 1
  Player.EquipItem OutfitPrewarSpring
endif
Activate

End

0

67

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

переменная возвращает "1", если закончено, но "0", если испытание (challenge) до сих пор активно.

Что то я совсем заблудился, испытание законченно "1"  (Да) - запускает выполнение, "0" (нет) продолжает выполнение. А каким образом оно может быть остановленно? В испытании - NVChallengeEnergetic (Энергетик) - if (GetChallengeCompleted NVChallengeShootEmUp)-подобная проверка условий для испытания - NVChallengeShootemUp (перестреляй их всех)

scn ChallengeShootEmUpSCRIPT                     ; скрипт испытания NVChallengeShootemUp
begin ScriptEffectStart
UnlockChallenge NVChallengeShootemUpAgain ; запуск испытания
UnlockChallenge NVChallengeShotgun              ; запуск испытания
player.RewardXP 75
if (GetChallengeCompleted NVChallengeEnergetic) ; взаимная проверка энергетика
... ; итд, проверка ряда пакетов
endif
end
Однозначно чего-то недопонимаю, проверили друг друга, смысл этой проверки? Если не каких предпосылок к завершению испытания в условия не заложено?

Отредактировано Gvinpin (12.03.11 01:05:52)

0

68

А вот какой скрипт например мне нужно что бы когда у гг появлялось в инвентаре 10 пива стадия квеста менялась на следующую, какой нужен скрипт ? И ещё на что этот скрипт мне вешать если мне нужно что бы этот файл был с игры (со стандартным id) ?

0

69

Серёга написал(а):

у гг появлялось в инвентаре 10 пива стадия квеста менялась

Скрипт взят с форума по "Обливилону"

СКРИПТ перехода сдадии квеста при наличии определённого кол-ва Чего-то

scn myScript
Begin GameMode
if ( GetItemCount MyObject == 10) ; MyObject - объект котрый тебе нужно подсчитать, 10 - количество
SetStage MyQuest 30 ; 30 - это стадия, MyQuest - имя квеста.
endif
End

0

70

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

А каким образом оно может быть остановленно?

Функцией "RemoveRecurringFromChallenge". Испытание завершается, и строчка, отображающая название испытания, становится тусклой (как прочитанные записи или выполненный квест).

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

смысл этой проверки?

Вы кое-что забыли. Строчка:

Код:
;AddAchievement 23

не просто так там стоит. Тут два варианта: либо строчка исполняется движком игры, не смотря на знак ";", либо ее закомментировали в самый последний момент, не желая переделывать весь скрипт.

Серёга, скрипт будет такой:

Код:
scn aaaModTecItemCounterSCRIPT

short DoOnce

Begin GameMode
  if (DoOnce == 0)
    if (Player.GetItemCount ИмяПредмета >= 10)
      SetStage ИмяКвеста СтадияКвеста
      set DoOnce to 1
    endif
  endif
End
Серёга написал(а):

что бы этот файл был с игры (со стандартным id) ?

В смысле? В имеете ввиду изменение стандартных объектов? Без создания новых. Так?

///////////////// Добавлено /////////////////

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

СКРИПТ перехода сдадии квеста при наличии определённого кол-ва Чего-то

Скрипт не совсем корректен. Условие "GetItemCount MyObject == 10" не имеет параметра "Player", а ведь мы инвентарь игрока проверяем, не так ли? Также это условие вносит ограничение на исполнение скрипта. Представим, что у ГГ было 9 предметов, он открыл контейнер и забрал оттуда 2 предмета. Скрипт не выполнится, так как объектов в инвентаре будет 11.
И еще в скрипте нет "стопора". Стадия будет переключаться все время, когда у ГГ 10 предметов. А это нехорошо.

0

71

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

Функцией "RemoveRecurringFromChallenge

Обозначенная команда не используется ни одним из скриптов с условиями взаимной проверки.
scn ChallengeFistfulSCRIPT
scn ChallengeEnergeticSCRIPT
scn ChallengeUpCloseSCRIPT
scn ChallengeKaboomSCRIPT
scn ChallengeShootEmUpSCRIPT
все они имеют запись - ;AddAchievement 23
AddAchievement - Добавляет указанное достижение в профиль игрока (OSFM) но обработки его (условий Challenge) не прекращает.
Или добавленное в профиль достижение прекращается по умолчанию?
Если так то AddAchievement своего рода эквивалент RemoveRecurringFromChallenge только с разным, визуальным эффектом завершения?

Отредактировано Gvinpin (12.03.11 23:19:55)

0

72

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

+1

73

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

Только так можно докопаться до истины

Вернулся подтереть сообщение, но вижу опоздал.
Не скажу что докопался, но видение механизма обозначенного прояснилось.
За терпение, понимание и помощь, Огромное Спасибо, Удачи!

Отредактировано Gvinpin (22.03.11 21:43:40)

0

74

где бы взять тутор для создания торговца и тутор на врача?
зарание спасибо

0

75

Andr, Привет!
Вот по этой ссылке есть урок по созданию торговца.
http://modder.ucoz.ru/load/7-1-0-92
А врача можно сделать по примеру из вот этот урока по созданию компаньона.
http://modder.ucoz.ru/load/7-1-0-128
Пока.

Отредактировано K.A.I.N.48 (21.03.11 15:41:37)

0

76

Andr, Поищи в нете, тутор по созданию торговца точно есть, а торговца или доктора разница небольшая. Там скрипт разный. Глянь на диалог любого торговца в игре и глянь на его скрипт.

Отредактировано Серёга (21.03.11 15:40:36)

0

77

спасибо, сорри что немного не в тему

0

78

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

0

79

Andr, Ищи туторы по AI пакетам.

0

80

Andr, Вот http://modder.ucoz.ru/load/pakety_ai_v_ … /7-1-0-129

0

81

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

0

82

какой скрипт отвечает за исчезновение персонажа? типа KILL но чтобы он проста исчез? ешё нужен скрипт чтобы персонаж ставл врагом.
ЗЫ всмысле результативные скрипты

0

83

какой скрипт отвечает за исчезновение персонажа?

Disable
Синтаксис:
[ObjectID|ActorID.]Disable
Функция Disable отключает вызывающий объект. Отключенные объекты не загружаются в мир, отключенные актеры не обрабатывают свой ИИ, но скрипты на отключенных объектах ВЫПОЛНЯЮТСЯ.
Функция Disable не удаляет объекты из игры, она просто прекращает их отрисовку. Не полагайтесь на Disable, чтобы увеличить производительность путём удаления объектов.

Чтобы вновь появился:

Enable
Синтаксис:
[ObjectID.]Enable
Функция Enable включает вызывающий объект ObjectID, заблокированный ранее функцией Disable.
Все объекты включены в игре по умолчанию, а это означает, что они рендерятся в игре и, если они актеры, то отрабатываются их пакеты AI.

Это всё, кстати, из OSFM - учебнику по скриптингу для Обливиона. Большая его часть актуальна и для Фоллаутов, так что, качай его обязательно и изучай: http://www.wiki.rumor.ru/index.php?title=Категория:Oblivion_Scripting_for_Modmakers_(OSFM)

ешё нужен скрипт чтобы персонаж ставл врагом.

StartCombat
Синтаксис:
[ActorID.]StartCombat TargetActorID
Пример:
StartCombat SuperGuard
Функция StartCombat принуждает вызывающего актёра (ActorID) начать бой с указанным в виде параметра TargetActorID вторым актером. Вызывающий актёр будет всегда держать целевого актёра первым в своем списке целей (target list).

Если не хочет нападать, добавь его в какую-нибудь враждебную игроку фракцию, например во фракцию рейдеров:
[Actor ID].AddToFaction RaiderFaction 1

0

84

Здраствуйте, такой вопрос как сделать так чтобы определенные аи пакеты действовали на определенного нпц до прохождения квеста, а после прохождения квеста на него действовали другие аи пакеты ? И вопрос про  disable и enable, как сделать так чтоб после прохождения квеста предмет стал disable ?

0

85

Серёга, Привет!
Я делал так.
IDпредметаREF.Disable
А записать это нужно в поле ResultScript(End) нужного Topic
В тот в котором ты прописываешь что квест выполнен

Код:
SetStage IDквеста 30
CompleteAllObjectives IDквеста
CompleteQuest IDквеста 
IDпредметаREF.Disable

Кстати этой точно по такому
же принципу, можно убирать и возвращать предметы.
Например вот эта команда записанная в первое приветствие GREETHING удалит у NPC шлем до начала диалога
Если будет вписана в поле ResultScript (Begin)

Код:
AAAKainFreeGarrusREF.RemoveItem HelmetNVNCRRangerCombat 1

А в поле ResultScript(End) прощального Topic вернёшь его обратно

Код:
AAAKainFreeGarrusREF.AddItem HelmetNVNCRRangerCombat 1

Мелочь но приятно и сделает мод чуть чуть лучше.
То же самое и с пакетами AI

Код:
IDNPC.AddScriptPackage [packageID] добавить пакет АI

Это я так делал. Не факт что правильно, но работало.
А вот скрипт для выполнения AI пакета в заданном интерьере

Код:
scn QuestScriptName
short doOnce
If IDNPC.getincell [cellID] && doOnce == 0
IDNPC.AddScriptPackage [packageID]
set doOnce to 1
endif
end

А вот тоже самое но с триггером

Код:
scn (название скрипта)
short DoOnce
Begin OnTriggerEnter ID NPC
if DoOnce == 0
   IDNPC.addScriptPackage [packageID]
   Set DoOnce to 1
endif
End

В этом случае тебе надо Enable триггер в нужной ветке диалога. И командой
IDNPCREF.Moveto ID триггер направить туда NPC где он и получит новый пакет AI и начнёт выполнять. А если накрыть триггером всё помещещение то и Moveto не надо. NPC сразу же после включения триггера будет в нём.
Это самые простые варианты и не факт, что правильные. Но работающие. Скрипты мне давал в своё время человек с другого сайта вот с таким ником SpalnyVagon. Но я использовал их для выполнения перемещения NPC с одного места в другое. И мне не надо было менять пакеты AI
Пока.

Отредактировано K.A.I.N.48 (24.03.11 16:04:09)

0

86

спс, а есть ли вообще список всех скриптовых команд с пояснением?

Серега, можеш в условиях пакета (Conditions) выставить условие (тип условия GetStage) там из списка где по умалчанию INVALID указываеш ID своего квеста.
в value выбираеш стадию квеста например 20

теперь если стадия тваего квеста равна(или больше или меньше и т.д взависемости что выбереш в Comparsion) 20(Двадцати) Пакет будет работать.

ЗЫ еще возможно уж совсем тупой вопрос: Как привизать навык красноречие или какой-нибудь перк к ветке диалога? (срадостью приму тутор если есть)

Отредактировано Andr (24.03.11 18:37:51)

0

87

Andr, Ну во первых я спрашивал скрипт а ты мне написал привязку к диалогу. Во вторых у всех по разному может быть и не 20 а 10 например. И вот еще что == это выполнить квест а < это чтобы диалог после начала квеста неповторялся если при начале квеста вписать скрипт начала самого квеста. Я умею делать квесты но в гекк фола нв немного подругому.

0

88

Andr, Ну я понял что ты имел ввиду на аи пакет это поставить, но вопрос тогда такой а как сделать так чтоб предыдущие пакеты перестали работать ? Твоя версия недаработанная.

0

89

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

0

90

Серёга написал(а):

Во вторых у всех по разному может быть и не 20 а 10 например

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

например 20

Серёга написал(а):

И вот еще что == это выполнить квест а < это чтобы диалог после начала квеста неповторялся

?????

Серёга написал(а):

Ну во первых я спрашивал скрипт а ты мне написал привязку к диалогу

я написал тебе привязку пакета к стадии квеста
я просто имел в виду ту стадию на которой квест завершается

0


Вы здесь » Форум «Лабортории Mod-Tec» » G.E.C.K. Community » Помощь по скриптам Fallout 3 и Fallout: New Vegas