Eastlion 220 Опубликовано 21 марта, 2017 Как увеличить размеры некоего объекта? К примеру переносной палатки - увеличить длину / ширину, в общем сделать не квадратной, а прямоугольной. Хочу туда всунуть ещё парочку спальников. Поделиться сообщением Ссылка на сообщение
MagnuMspec 7 447 Опубликовано 21 марта, 2017 Ух, думаю, это только в Nifskope можно, и еще с коллизией повозиться. В ГЕКК можно только масштаб менять. Поделиться сообщением Ссылка на сообщение
Eastlion 220 Опубликовано 21 марта, 2017 Nifskope - а где его качнуть можно по простому? Пробовал "ходить" по "родным" сайтам - так и не разобрался что скачать. Поделиться сообщением Ссылка на сообщение
MagnuMspec 7 447 Опубликовано 21 марта, 2017 Наверное это подойдет: http://tesall.ru/files/file/796-nifskope/ 1 Поделиться сообщением Ссылка на сообщение
ToruTediore 1 Опубликовано 11 апреля, 2017 Доброго времени суток! У меня возникли проблемы с аи пакетами. Вообщем при выборе аи пакета НПС не взаимодействует с маркером анимации как надо. 1пакет PushUpmarker Нпс просто встаёт рядом с маркером но не взаимодействует, 2й пакет работы связан со стулом, нпс при активации пакета встаёт и садится на стул. Навмеши раскидано грамотно, в аи пакетах нет конфликов по времени, галочки маркера анимации и мебели(кроме кроватей) активированы, подскажите в чем ещё может быть проблема, буду очень презнателен) Поделиться сообщением Ссылка на сообщение
Паха007 545 Опубликовано 12 апреля, 2017 Доброго времени суток! У меня возникли проблемы с аи пакетами. Вообщем при выборе аи пакета НПС не взаимодействует с маркером анимации как надо. 1пакет PushUpmarker Нпс просто встаёт рядом с маркером но не взаимодействует, 2й пакет работы связан со стулом, нпс при активации пакета встаёт и садится на стул. Навмеши раскидано грамотно, в аи пакетах нет конфликов по времени, галочки маркера анимации и мебели(кроме кроватей) активированы, подскажите в чем ещё может быть проблема, буду очень презнателен) Для начала скиньте скриншоты ваших AI-пакетов, посмотрю. Без них вам вряд ли кто-то сможет помочь. Поделиться сообщением Ссылка на сообщение
ToruTediore 1 Опубликовано 12 апреля, 2017 Для начала скиньте скриншоты ваших AI-пакетов, посмотрю. Без них вам вряд ли кто-то сможет помочь. https://yadi.sk/d/XrRKLcfj3Gu9FP Поделиться сообщением Ссылка на сообщение
Паха007 545 Опубликовано 12 апреля, 2017 Ваш пакет и не будет работать. Во-первых. Я так понимаю вы используете PushUpsMarker из раздела Furniture. Этот маркер не относится к маркерам анимации. Все что находится в разделе Furniture является предметами мебели, даже если это маркер. К маркерам анимации относятся маркеры из раздела Idle Marker. Во-вторых. Вы создали пакет SandBox. Это пакет песочницы и он в принципе допускает ту возможность, что NPC будет взаимодействовать с этим маркером, но если в пределах той дистанции которую вы назначили окажутся другие маркеры, он будет взаимодействовать и с ними. Поделиться сообщением Ссылка на сообщение
ToruTediore 1 Опубликовано 12 апреля, 2017 https://yadi.sk/i/BlMvmvQP3GuDHK Вообщем чего я бы хотел добиться в GECK. У меня есть НПС которому я дал 5 пакетов AI. Первый пакет сна, тут мне ясно, просто выбрать в ссылке кровать на которой НПС должен отдыхать. Четвёртый пакет приёма пищи и пятый пакет работы по тому же принципу выбираю ссылку на объекты взаимодействия, в данном случае стулья. Но вот со вторым пакетом отжиманий и пакетом готовки еды у меня возникли сложности и я хотел бы разобраться как можно сделать идеальный пакет, без багов. Дело в том что ссылка в окне рендеринга на второй пакет находится рядом с сылкой на первый, и хотелось бы чтобы при выборе сандбокс пакета радиус его отталкивался от определённой точки. Ведь есть 2 маркера анимации, и если выбран пакет отжиманий НПС может пойти готовить еду. Как этого добиться не могу понять. Ваш пакет и не будет работать. Во-первых. Я так понимаю вы используете PushUpsMarker из раздела Furniture. Этот маркер не относится к маркерам анимации. Все что находится в разделе Furniture является предметами мебели, даже если это маркер. К маркерам анимации относятся маркеры из раздела Idle Marker. Во-вторых. Вы создали пакет SandBox. Это пакет песочницы и он в принципе допускает ту возможность, что NPC будет взаимодействовать с этим маркером, но если в пределах той дистанции которую вы назначили окажутся другие маркеры, он будет взаимодействовать и с ним Ваш пакет и не будет работать. Во-первых. Я так понимаю вы используете PushUpsMarker из раздела Furniture. Этот маркер не относится к маркерам анимации. Все что находится в разделе Furniture является предметами мебели, даже если это маркер. К маркерам анимации относятся маркеры из раздела Idle Marker. Во-вторых. Вы создали пакет SandBox. Это пакет песочницы и он в принципе допускает ту возможность, что NPC будет взаимодействовать с этим маркером, но если в пределах той дистанции которую вы назначили окажутся другие маркеры, он будет взаимодействовать и с ним. Тогда как мне фиксировать область выбора Furniture маркеров? Если 2 маркера находятся в разных участках ячейки. От какой точки отталкивается радиус в AI Пакете, и можно ли эту точку установить в желаемое место? В посте с картинкой Idle маркеры это желаемые точки откуда будет действовать радиус, возможно сделать так? Поделиться сообщением Ссылка на сообщение
Паха007 545 Опубликовано 12 апреля, 2017 Ваши пакеты не работают потому, что вы поставили галочку "маркеры анимации", а все что вы там расставили (плита, маркер отжимания, стул) - это предметы мебели. Если вы уберете галочку "маркеры анимации" и поставите галочку "мебель", ваши пакеты будут работать. Но поскольку вы используете пакеты SandBox, ваш NPC будет использовать все предметы мебели в том радиусе, который вы прописали в пакете. Если вы хотите, что бы ваш NPC просто стоял и готовил пищу, создавайте пакет Travel, а не SandBox. Выбирайте в этом пакете маркер плиты с радиусом 0. И ваш NPC будет стоять и готовить еду. Тоже самое и с пакетами работы и отжимания. В посте с картинкой Idle маркеры это желаемые точки откуда будет действовать радиус, возможно сделать так? Я не совсем понимаю, чего вы хотите. Я так понял вы хотите, что бы в определенные часы NPC готовил пищу, в другое время сидел на стуле, в другое время отжимался. Тогда под эти действия нужны пакеты Travel. Допустим вы создаете пакет Travel, прописываете в нем маркер плиты с радиусом 0 и назначаете время. В это время, которое вы указали NPC будет стоять у плиты и проигрывать эту анимацию готовки. А с пакетом SandBox NPC будет взаимодействовать со всей мебелью, которая попадает под тот радиус вокруг указанного маркера, что вы прописали в пакете. В таком случае ограничить NPC можно только убрав из этого радиуса нежеланную мебель. Как я уже сказал SandBox - это пакет песочницы. Он предназначен для того, что бы заставить NPC выполнять указанные действия в случайном порядке вокруг точки, которую вы указали в нем. 1 Поделиться сообщением Ссылка на сообщение
ToruTediore 1 Опубликовано 12 апреля, 2017 Ваши пакеты не работают потому, что вы поставили галочку "маркеры анимации", а все что вы там расставили (плита, маркер отжимания, стул) - это предметы мебели. Если вы уберете галочку "маркеры анимации" и поставите галочку "мебель", ваши пакеты будут работать. Но поскольку вы используете пакеты SandBox, ваш NPC будет использовать все предметы мебели в том радиусе, который вы прописали в пакете. Если вы хотите, что бы ваш NPC просто стоял и готовил пищу, создавайте пакет Travel, а не SandBox. Выбирайте в этом пакете маркер плиты с радиусом 0. И ваш NPC будет стоять и готовить еду. Тоже самое и с пакетами работы и отжимания. Я не совсем понимаю, чего вы хотите. Я так понял вы хотите, что бы в определенные часы NPC готовил пищу, в другое время сидел на стуле, в другое время отжимался. Тогда под эти действия нужны пакеты Travel. Допустим вы создаете пакет Travel, прописываете в нем маркер плиты с радиусом 0 и назначаете время. В это время, которое вы указали NPC будет стоять у плиты и проигрывать эту анимацию готовки. А с пакетом SandBox NPC будет взаимодействовать со всей мебелью, которая попадает под тот радиус вокруг указанного маркера, что вы прописали в пакете. В таком случае ограничить NPC можно только убрав из этого радиуса нежеланную мебель. Как я уже сказал SandBox - это пакет песочницы. Он предназначен для того, что бы заставить NPC выполнять указанные действия в случайном порядке вокруг точки, которую вы указали в нем. Отлично! Всё работает как надо, спасибо вам за помощь! Я не совсем понимаю, чего вы хотите. Я так понял вы хотите, что бы в определенные часы NPC готовил пищу, в другое время сидел на стуле, в другое время отжимался. Тогда под эти действия нужны пакеты Travel. Допустим вы создаете пакет Travel, прописываете в нем маркер плиты с радиусом 0 и назначаете время. В это время, которое вы указали NPC будет стоять у плиты и проигрывать эту анимацию готовки. А с пакетом SandBox NPC будет взаимодействовать со всей мебелью, которая попадает под тот радиус вокруг указанного маркера, что вы прописали в пакете. В таком случае ограничить NPC можно только убрав из этого радиуса нежеланную мебель. Как я уже сказал SandBox - это пакет песочницы. Он предназначен для того, что бы заставить NPC выполнять указанные действия в случайном порядке вокруг точки, которую вы указали в нем. Именно так и я хотел, чтобы НПС выполнял чёткие указания в заданное время но при выборе сандбокса НПС чудил: бесконечно садился и тут же вставал, бессмысленно стоял над маркером фурнитуры, или уходил в другое место и проигрывал не нужную анимацию. Сейчас же всё как надо, например при выборе пакета отжиманий он выполняет чётко заданную анимацию. Здорово, ещё раз спасибо) 1 Поделиться сообщением Ссылка на сообщение
Shadd Ashborn 1 719 Опубликовано 11 мая, 2017 Володя просил написать, напишу. Есть такой мод - http://www.nexusmods.com/newvegas/mods/57831/? . Добавляет в игру визуальный износ брони при ее поломке. Я вдохновилась и даже начала клепать под это дело модельки, но оказалось, что по неизвестным мне причинам мод не понимает, когда в игре два броника со скриптом из мастера фреймворка. Всего в моде-мастере два скрипта: Один - основной скрипт-ядро для работы системы. scn zDCoreQuestScript int Init int Active ; set to 0 when armor uneqipped to save resources int UpdateEquip ; update block for destruction stage, sound and dropping pieces... int UpdateFix ; updates damage stage and new armor/clothing upon repair in object script int UpdateInv ; set to 1 for updating requirements per object script, set to 2 will update inventory int FixArmor ; will remove old armor and add new one to inventory based on damage stage and condition int Check ; IMPORTANT: will wait for armor/clothing to be actually equipped before checking new values int DamageStage int DropCount int DropChance int Roll int CountA int CountB int CountC int TornPieces ; set amount of torn pieces in inventory from the last equipped object int RemovePieces ; set amount of torn pieces to remove from inventory upon repair int ReqLeatherBelt ; not completely implemented yet, requires more complex scripting to work correct with damage stages int ReqTape ; " int ReqGlue ; " int NoFastFix ; set 1 = can't be fixed with Sewing Kit int BeyondRepair ; set 1 = armor is completely destroyed int Index ; armor index, set the current destructible armor/clothing in use int HealthMax ; maximum health of current armor int Type ; 1 = Cloth, 2 = Leather, 3 = Metal (only cloth for now - W.I.P) float HealthActive ; condition of the current equipped armor (upper body) float HealthNew ; set armor contidion on next damage stage, divide active by base health - value (0.00-1.00) float RepairMult ; multiplier to set health per piece fixed ref EquipCurrent ref EquipNew ref TornPieceA ; set in object script to select dropped item pieces upon damage ref TornPieceB ; can use up to 3 different pieces or less, set others to 0 when not used ref TornPieceC begin MenuMode if UpdateInv != 2 return else if FixArmor == 1 Player.RemoveItem EquipCurrent 1 1 Player.AddItemHealthPercent EquipNew 1 HealthNew 1 set EquipCurrent to EquipNew set FixArmor to 0 endif if Type == 1 if TornPieceA != 0 set CountA to Player.GetItemCount TornPieceA else set CountA to 0 endif if TornPieceB != 0 set CountB to Player.GetItemCount TornPieceB else set CountB to 0 endif if TornPieceC != 0 set CountC to Player.GetItemCount TornPieceC else set CountC to 0 endif set TornPieces to CountA + CountB + CountC while RemovePieces > 0 set Roll to rand 0 2.99 if Roll == 0 if CountA > 0 Player.RemoveItem TornPieceA 1 1 let CountA -= 1 let RemovePieces -= 1 else if RemovePieces break else continue endif endif elseif Roll == 1 if CountB > 0 Player.RemoveItem TornPieceB 1 1 let CountB -= 1 let RemovePieces -= 1 else if RemovePieces break else continue endif endif elseif Roll == 2 if CountC > 0 Player.RemoveItem TornPieceC 1 1 let CountC -= 1 let RemovePieces -= 1 else if RemovePieces break else continue endif endif endif loop elseif Type == 2 elseif Type == 3 endif set UpdateInv to 0 endif end begin GameMode if Init != 1 AddItemToLeveledList VendorCraftingSuppliesRepair zDFabric01 1 1 100 AddItemToLeveledList VendorMiscItems zDFabric01 1 1 100 set Init to 1 endif if Active == 0 return endif if UpdateEquip != 1 return else set HealthNew to HealthActive / HealthMax set EquipCurrent to Player.GetEquippedObject 2 if BeyondRepair == 1 Player.UnequipItem EquipCurrent 0 1 set UpdateEquip to 0 set Active to 0 return endif Player.UnequipItem EquipCurrent 0 1 Player.RemoveItem EquipCurrent 1 1 set EquipCurrent to EquipNew Player.AddItemHealthPercent EquipNew 1 HealthNew 1 Player.EquipItem EquipNew 0 1 if Type == 1 set Roll to rand 0 7.99 if Roll == 0 PlaySound SFXClothTear01 elseif Roll == 1 PlaySound SFXClothTear02 elseif Roll == 2 PlaySound SFXClothTear03 elseif Roll == 3 PlaySound SFXClothTear04 elseif Roll == 4 PlaySound SFXClothTear05 elseif Roll == 5 PlaySound SFXClothTear06 elseif Roll == 6 PlaySound SFXClothTear07 elseif Roll == 7 PlaySound SFXClothTear08 endif while DropCount > 0 set Roll to rand 0 100 if Roll set Roll to rand 0 2.99 if Roll == 0 if TornPieceA != 0 Player.AddItem TornPieceA 1 1 Player.Drop TornPieceA 1 else continue endif elseif Roll == 1 if TornPieceB != 0 Player.AddItem TornPieceB 1 1 Player.Drop TornPieceB 1 else continue endif elseif Roll == 2 if TornPieceC != 0 Player.AddItem TornPieceC 1 1 Player.Drop TornPieceC 1 else continue endif endif endif let DropCount -= 1 if DropCount break endif loop elseif Type == 2 elseif Type == 3 endif set Check to 1 set UpdateEquip to 0 endif end Второй - скрипт для рандомно добавляющихся в инвентарь кусков от поломки броника, которыми потом можно чинить поломанную вещь и собственно починки. scn zDSewingkitScript int iMenu int iButton int PieceAmountReq int PieceAmount int FCount float Mult float ArmorHealth float ArmorDamage float TimeCurrent float Time begin OnEquip Player if Player.IsInCombat == 1 MessageBoxEx "You cannot use this in combat." else if zDCoreQuest.BeyondRepair == 1 MessageBoxEx "Your armor is completely destroyed." return endif if zDCoreQuest.DamageStage == 0 || zDCoreQuest.Index == 0 MessageBoxEx "There is nothing to fix right now." return endif if zDCoreQuest.NoFastFix == 0 if zDCoreQuest.Active == 1 MessageBoxEx "You must take off your armor before you can fix it." else set iMenu to 1 set zDCoreQuest.UpdateInv to 1 ShowMessage zDArmorFixMenu endif else MessageBoxEx "Your armor is so bad torn up, it is impossible to fix it without the proper tools. Find a workbench to do this." endif endif end begin MenuMode if iMenu == 0 return elseif iMenu == 1 set iButton to GetButtonPressed if iButton == 0 if zDCoreQuest.TornPieces MessageBoxEx "You do not have any collected pieces for this armor." set iMenu to 2 else set PieceAmount to zDCoreQuest.TornPieces set Mult to zDCoreQuest.RepairMult set ArmorHealth to zDCoreQuest.HealthActive set ArmorDamage to zDCoreQuest.HealthMax - ArmorHealth set PieceAmountReq to ArmorDamage / Mult set TimeCurrent to GetCurrentTime if PieceAmountReq > PieceAmount set ArmorDamage to PieceAmount * Mult set ArmorHealth to ArmorHealth + ArmorDamage set zDCoreQuest.HealthActive to ArmorHealth set ArmorHealth to ArmorHealth / zDCoreQuest.HealthMax set zDCoreQuest.HealthNew to ArmorHealth set zDCoreQuest.RemovePieces to PieceAmount set ArmorDamage to ArmorDamage / zDCoreQuest.HealthMax set ArmorDamage to ArmorDamage * 100 set Time to PieceAmount * 0.1 set TimeCurrent to TimeCurrent + Time if Time >= 24 set Time to Time - 24 endif set GameHour to TimeCurrent set Time to Time * 60 MessageBoxEx "You have fixed your armor with all the torn pieces you had collected. It took you %.0f minutes to fix %.0f percent of damage." Time ArmorDamage else set ArmorDamage to PieceAmountReq * Mult set ArmorHealth to ArmorHealth + ArmorDamage set zDCoreQuest.HealthActive to ArmorHealth set ArmorHealth to ArmorHealth / zDCoreQuest.HealthMax set zDCoreQuest.HealthNew to ArmorHealth set zDCoreQuest.RemovePieces to PieceAmountReq set ArmorDamage to ArmorDamage / zDCoreQuest.HealthMax set ArmorDamage to ArmorDamage * 100 set Time to PieceAmountReq * 0.1 set TimeCurrent to TimeCurrent + Time if Time >= 24 set Time to Time - 24 endif set GameHour to TimeCurrent set Time to Time * 60 if PieceAmountReq == 1 MessageBoxEx "You have fixed your armor with one torn piece you had collected. It took you %.0f minutes to fix %.0f percent of damage." Time ArmorDamage else MessageBoxEx "You have fixed your armor with %.0f torn pieces you had collected. It took you %.0f minutes to fix %.0f percent of damage." PieceAmountReq Time ArmorDamage endif endif set zDCoreQuest.UpdateFix to 1 set zDCoreQuest.UpdateInv to 1 set iMenu to 0 endif elseif iButton == 1 set FCount to Player.GetItemCount zDFabric01 if FCount MessageBoxEx "You do not have any fabric." set iMenu to 2 else set Mult to zDCoreQuest.RepairMult set ArmorHealth to zDCoreQuest.HealthActive set ArmorDamage to zDCoreQuest.HealthMax - ArmorHealth set PieceAmountReq to ArmorDamage / (Mult * 5) set TimeCurrent to GetCurrentTime if PieceAmountReq > FCount set ArmorDamage to FCount * Mult * 5 set ArmorHealth to ArmorHealth + ArmorDamage set zDCoreQuest.HealthActive to ArmorHealth set ArmorHealth to ArmorHealth / zDCoreQuest.HealthMax set zDCoreQuest.HealthNew to ArmorHealth Player.RemoveItem zDFabric01 FCount 1 set ArmorDamage to ArmorDamage / zDCoreQuest.HealthMax set ArmorDamage to ArmorDamage * 100 set Time to FCount * 0.15 set TimeCurrent to TimeCurrent + Time if Time >= 24 set Time to Time - 24 endif set GameHour to TimeCurrent set Time to Time * 60 MessageBoxEx "You have fixed your armor with all the fabric you had. It took you %.0f minutes to fix %.0f percent of damage." Time ArmorDamage else set ArmorDamage to PieceAmountReq * Mult * 5 set ArmorHealth to ArmorHealth + ArmorDamage set zDCoreQuest.HealthActive to ArmorHealth set ArmorHealth to ArmorHealth / zDCoreQuest.HealthMax set zDCoreQuest.HealthNew to ArmorHealth if PieceAmountReq == 0 set PieceAmountReq to 1 endif Player.RemoveItem zDFabric01 PieceAmountReq 1 set ArmorDamage to ArmorDamage / zDCoreQuest.HealthMax set ArmorDamage to ArmorDamage * 100 set Time to PieceAmountReq * 0.15 set TimeCurrent to TimeCurrent + Time if Time >= 24 set Time to Time - 24 endif set GameHour to TimeCurrent set Time to Time * 60 MessageBoxEx "You have fixed your armor with %.0f fabric. It took you %.0f minutes to fix %.0f percent of damage." PieceAmountReq Time ArmorDamage endif set zDCoreQuest.UpdateFix to 1 set zDCoreQuest.UpdateInv to 1 set iMenu to 0 endif elseif iButton == 2 set ArmorHealth to zDCoreQuest.HealthNew * 100 MessageBoxEx "Your armor condition is at %.0f percent." ArmorHealth set iMenu to 2 elseif iButton == 3 set iMenu to 0 endif elseif iMenu == 2 set iButton to GetButtonPressed if iButton == 0 ShowMessage zDArmorFixMenu set iMenu to 1 endif endif end В моде-примере от автора скрипт для броника выглядит так: scn zDCamoClothesScript int Equip ref PEquip begin OnEquip Player set zDCoreQuest.Active to 1 set zDCoreQuest.Index to 1 set zDCoreQuest.HealthMax to 80 set zDCoreQuest.RepairMult to 2 set zDCoreQuest.Type to 1 set zDCoreQuest.TornPieceA to zDTornClothPiece01 set zDCoreQuest.TornPieceB to zDTornClothPiece02 set zDCoreQuest.TornPieceC to zDTornClothPiece03 set Equip to 1 end begin OnUnequip Player set zDCoreQuest.Active to 0 set Equip to 0 end begin OnAdd Player set zDCoreQuest.TornPieceA to zDTornClothPiece01 set zDCoreQuest.TornPieceB to zDTornClothPiece02 set zDCoreQuest.TornPieceC to zDTornClothPiece03 set zDCoreQuest.Index to 1 end begin OnDrop Player set zDCoreQuest.TornPieceA to 0 set zDCoreQuest.TornPieceB to 0 set zDCoreQuest.TornPieceC to 0 set zDCoreQuest.Index to 0 end begin MenuMode if zDCoreQuest.UpdateInv != 1 return else if zDCoreQuest.Index != 1 return endif if zDCoreQuest.UpdateFix == 1 if zDCoreQuest.HealthActive > 75 && zDCoreQuest.HealthActive set zDCoreQuest.EquipNew to zDCamoClothesBase set zDCoreQuest.DamageStage to 0 elseif zDCoreQuest.HealthActive > 70 && zDCoreQuest.HealthActive set zDCoreQuest.EquipNew to zDCamoClothesDmg01 set zDCoreQuest.DamageStage to 1 elseif zDCoreQuest.HealthActive > 65 && zDCoreQuest.HealthActive set zDCoreQuest.EquipNew to zDCamoClothesDmg02 set zDCoreQuest.DamageStage to 2 elseif zDCoreQuest.HealthActive > 60 && zDCoreQuest.HealthActive set zDCoreQuest.EquipNew to zDCamoClothesDmg03 set zDCoreQuest.DamageStage to 3 elseif zDCoreQuest.HealthActive > 55 && zDCoreQuest.HealthActive set zDCoreQuest.EquipNew to zDCamoClothesDmg04 set zDCoreQuest.DamageStage to 4 elseif zDCoreQuest.HealthActive > 50 && zDCoreQuest.HealthActive set zDCoreQuest.EquipNew to zDCamoClothesDmg05 set zDCoreQuest.DamageStage to 5 elseif zDCoreQuest.HealthActive > 45 && zDCoreQuest.HealthActive set zDCoreQuest.EquipNew to zDCamoClothesDmg06 set zDCoreQuest.DamageStage to 6 elseif zDCoreQuest.HealthActive > 40 && zDCoreQuest.HealthActive set zDCoreQuest.EquipNew to zDCamoClothesDmg07 set zDCoreQuest.DamageStage to 7 elseif zDCoreQuest.HealthActive > 35 && zDCoreQuest.HealthActive set zDCoreQuest.EquipNew to zDCamoClothesDmg08 set zDCoreQuest.DamageStage to 8 elseif zDCoreQuest.HealthActive > 30 && zDCoreQuest.HealthActive set zDCoreQuest.EquipNew to zDCamoClothesDmg09 set zDCoreQuest.DamageStage to 9 elseif zDCoreQuest.HealthActive > 25 && zDCoreQuest.HealthActive set zDCoreQuest.EquipNew to zDCamoClothesDmg10 set zDCoreQuest.DamageStage to 10 elseif zDCoreQuest.HealthActive > 20 && zDCoreQuest.HealthActive set zDCoreQuest.EquipNew to zDCamoClothesDmg11 set zDCoreQuest.DamageStage to 11 elseif zDCoreQuest.HealthActive > 15 && zDCoreQuest.HealthActive set zDCoreQuest.EquipNew to zDCamoClothesDmg12 set zDCoreQuest.DamageStage to 12 elseif zDCoreQuest.HealthActive > 10 && zDCoreQuest.HealthActive set zDCoreQuest.EquipNew to zDCamoClothesDmg13 set zDCoreQuest.DamageStage to 13 elseif zDCoreQuest.HealthActive > 5 && zDCoreQuest.HealthActive set zDCoreQuest.EquipNew to zDCamoClothesDmg14 set zDCoreQuest.DamageStage to 14 elseif zDCoreQuest.HealthActive > 0 && zDCoreQuest.HealthActive set zDCoreQuest.EquipNew to zDCamoClothesDmg15 set zDCoreQuest.DamageStage to 15 endif set zDCoreQuest.UpdateFix to 0 set zDCoreQuest.FixArmor to 1 endif if zDCoreQuest.DamageStage >= 10 && zDCoreQuest.NoFastFix == 0 set zDCoreQuest.NoFastFix to 1 elseif zDCoreQuest.DamageStage set zDCoreQuest.NoFastFix to 0 endif set zDCoreQuest.UpdateInv to 2 endif end begin GameMode if zDCoreQuest.Active == 0 return else if zDCoreQuest.BeyondRepair != 1 if Equip != 1 set Equip to 1 endif else return endif endif if zDCoreQuest.UpdateEquip == 1 return else if zDCoreQuest.Check == 1 set PEquip to Player.GetEquippedObject 2 if PEquip != zDCoreQuest.EquipNew return else set zDCoreQuest.Check to 0 endif endif set zDCoreQuest.HealthActive to Player.GetEquippedCurrentHealth 2 if zDCoreQuest.HealthActive > 75 if zDCoreQuest.DamageStage != 0 set zDCoreQuest.EquipNew to zDCamoClothesBase set zDCoreQuest.DamageStage to 0 set zDCoreQuest.UpdateEquip to 1 endif elseif zDCoreQuest.HealthActive > 70 && zDCoreQuest.HealthActive if zDCoreQuest.DamageStage != 1 set zDCoreQuest.EquipNew to zDCamoClothesDmg01 set zDCoreQuest.DamageStage to 1 set zDCoreQuest.UpdateEquip to 1 endif elseif zDCoreQuest.HealthActive > 65 && zDCoreQuest.HealthActive if zDCoreQuest.DamageStage != 2 set zDCoreQuest.EquipNew to zDCamoClothesDmg02 set zDCoreQuest.DamageStage to 2 set zDCoreQuest.UpdateEquip to 1 endif elseif zDCoreQuest.HealthActive > 60 && zDCoreQuest.HealthActive if zDCoreQuest.DamageStage != 3 set zDCoreQuest.EquipNew to zDCamoClothesDmg03 set zDCoreQuest.DamageStage to 3 set zDCoreQuest.UpdateEquip to 1 endif elseif zDCoreQuest.HealthActive > 55 && zDCoreQuest.HealthActive if zDCoreQuest.DamageStage != 4 set zDCoreQuest.EquipNew to zDCamoClothesDmg04 set zDCoreQuest.DropCount to 4 set zDCoreQuest.DropChance to 50 set zDCoreQuest.DamageStage to 4 set zDCoreQuest.UpdateEquip to 1 endif elseif zDCoreQuest.HealthActive > 50 && zDCoreQuest.HealthActive if zDCoreQuest.DamageStage != 5 set zDCoreQuest.EquipNew to zDCamoClothesDmg05 set zDCoreQuest.DropCount to 7 set zDCoreQuest.DropChance to 40 set zDCoreQuest.DamageStage to 5 set zDCoreQuest.UpdateEquip to 1 endif elseif zDCoreQuest.HealthActive > 45 && zDCoreQuest.HealthActive if zDCoreQuest.DamageStage != 6 set zDCoreQuest.EquipNew to zDCamoClothesDmg06 set zDCoreQuest.DropCount to 10 set zDCoreQuest.DropChance to 30 set zDCoreQuest.DamageStage to 6 set zDCoreQuest.UpdateEquip to 1 endif elseif zDCoreQuest.HealthActive > 40 && zDCoreQuest.HealthActive if zDCoreQuest.DamageStage != 7 set zDCoreQuest.EquipNew to zDCamoClothesDmg07 set zDCoreQuest.DropCount to 6 set zDCoreQuest.DropChance to 60 set zDCoreQuest.DamageStage to 7 set zDCoreQuest.NoFastFix to 0 set zDCoreQuest.UpdateEquip to 1 endif elseif zDCoreQuest.HealthActive > 35 && zDCoreQuest.HealthActive if zDCoreQuest.DamageStage != 8 set zDCoreQuest.EquipNew to zDCamoClothesDmg08 set zDCoreQuest.DropCount to 5 set zDCoreQuest.DropChance to 80 set zDCoreQuest.DamageStage to 8 set zDCoreQuest.UpdateEquip to 1 endif elseif zDCoreQuest.HealthActive > 30 && zDCoreQuest.HealthActive if zDCoreQuest.DamageStage != 9 set zDCoreQuest.EquipNew to zDCamoClothesDmg09 set zDCoreQuest.DropCount to 10 set zDCoreQuest.DropChance to 70 set zDCoreQuest.DamageStage to 9 set zDCoreQuest.NoFastFix to 0 set zDCoreQuest.UpdateEquip to 1 endif elseif zDCoreQuest.HealthActive > 25 && zDCoreQuest.HealthActive if zDCoreQuest.DamageStage != 10 set zDCoreQuest.EquipNew to zDCamoClothesDmg10 set zDCoreQuest.DropCount to 4 set zDCoreQuest.DropChance to 50 set zDCoreQuest.DamageStage to 10 set zDCoreQuest.UpdateEquip to 1 endif elseif zDCoreQuest.HealthActive > 20 && zDCoreQuest.HealthActive if zDCoreQuest.DamageStage != 11 set zDCoreQuest.EquipNew to zDCamoClothesDmg11 set zDCoreQuest.DropCount to 3 set zDCoreQuest.DropChance to 90 set zDCoreQuest.DamageStage to 11 set zDCoreQuest.UpdateEquip to 1 endif elseif zDCoreQuest.HealthActive > 15 && zDCoreQuest.HealthActive if zDCoreQuest.DamageStage != 12 set zDCoreQuest.EquipNew to zDCamoClothesDmg12 set zDCoreQuest.DropCount to 15 set zDCoreQuest.DropChance to 60 set zDCoreQuest.DamageStage to 12 set zDCoreQuest.UpdateEquip to 1 endif elseif zDCoreQuest.HealthActive > 10 && zDCoreQuest.HealthActive if zDCoreQuest.DamageStage != 13 set zDCoreQuest.EquipNew to zDCamoClothesDmg13 set zDCoreQuest.DamageStage to 13 set zDCoreQuest.UpdateEquip to 1 endif elseif zDCoreQuest.HealthActive > 5 && zDCoreQuest.HealthActive if zDCoreQuest.DamageStage != 14 set zDCoreQuest.EquipNew to zDCamoClothesDmg14 set zDCoreQuest.DropCount to 6 set zDCoreQuest.DropChance to 90 set zDCoreQuest.DamageStage to 14 set zDCoreQuest.UpdateEquip to 1 endif elseif zDCoreQuest.HealthActive > 0 && zDCoreQuest.HealthActive if zDCoreQuest.DamageStage != 15 set zDCoreQuest.EquipNew to zDCamoClothesDmg15 set zDCoreQuest.DamageStage to 15 set zDCoreQuest.UpdateEquip to 1 endif elseif zDCoreQuest.HealthActive if zDCoreQuest.DamageStage != 16 set zDCoreQuest.DamageStage to 16 set zDCoreQuest.BeyondRepair to 1 set zDCoreQuest.UpdateEquip to 1 set Equip to 0 endif endif if zDCoreQuest.DamageStage >= 10 && zDCoreQuest.NoFastFix == 0 set zDCoreQuest.NoFastFix to 1 elseif zDCoreQuest.DamageStage set zDCoreQuest.NoFastFix to 0 endif endif end Итак, суть в том, что когда я попыталась добавить в свой мод второй броник (один броник радотает нормально), мод просто сдох и перестал работать. Из чего делаю вывод, что фреймворк непригоден для использования с больше, чем одной вещью на всю игру. Вид моих скриптов, для комбеза Убежища и для Усиленной кожаной брони (кусочки ткани и иже с ними были убраны, т.к. впадлу с ними возиться): scn zDAVault101Script int Equip ref PEquip begin OnEquip Player set zDCoreQuest.Active to 1 set zDCoreQuest.Index to 1 set zDCoreQuest.HealthMax to 80 set zDCoreQuest.RepairMult to 2 set zDCoreQuest.Type to 1 set Equip to 1 end begin OnUnequip Player set zDCoreQuest.Active to 0 set Equip to 0 end begin OnAdd Player set zDCoreQuest.Index to 1 end begin OnDrop Player set zDCoreQuest.Index to 0 end begin MenuMode if zDCoreQuest.UpdateInv != 1 return else if zDCoreQuest.Index != 1 return endif if zDCoreQuest.UpdateFix == 1 if zDCoreQuest.HealthActive > 75 && zDCoreQuest.HealthActive set zDCoreQuest.EquipNew to VaultSuit101 set zDCoreQuest.DamageStage to 0 elseif zDCoreQuest.HealthActive > 70 && zDCoreQuest.HealthActive set zDCoreQuest.EquipNew to VaultSuit101 set zDCoreQuest.DamageStage to 1 elseif zDCoreQuest.HealthActive > 65 && zDCoreQuest.HealthActive set zDCoreQuest.EquipNew to VaultSuit101d02 set zDCoreQuest.DamageStage to 2 elseif zDCoreQuest.HealthActive > 60 && zDCoreQuest.HealthActive set zDCoreQuest.EquipNew to VaultSuit101d02 set zDCoreQuest.DamageStage to 3 elseif zDCoreQuest.HealthActive > 55 && zDCoreQuest.HealthActive set zDCoreQuest.EquipNew to VaultSuit101d03 set zDCoreQuest.DamageStage to 4 elseif zDCoreQuest.HealthActive > 50 && zDCoreQuest.HealthActive set zDCoreQuest.EquipNew to VaultSuit101d03 set zDCoreQuest.DamageStage to 5 elseif zDCoreQuest.HealthActive > 45 && zDCoreQuest.HealthActive set zDCoreQuest.EquipNew to VaultSuit101d04 set zDCoreQuest.DamageStage to 6 elseif zDCoreQuest.HealthActive > 40 && zDCoreQuest.HealthActive set zDCoreQuest.EquipNew to VaultSuit101d04 set zDCoreQuest.DamageStage to 7 elseif zDCoreQuest.HealthActive > 35 && zDCoreQuest.HealthActive set zDCoreQuest.EquipNew to VaultSuit101d05 set zDCoreQuest.DamageStage to 8 elseif zDCoreQuest.HealthActive > 30 && zDCoreQuest.HealthActive set zDCoreQuest.EquipNew to VaultSuit101d05 set zDCoreQuest.DamageStage to 9 elseif zDCoreQuest.HealthActive > 25 && zDCoreQuest.HealthActive set zDCoreQuest.EquipNew to VaultSuit101d06 set zDCoreQuest.DamageStage to 10 elseif zDCoreQuest.HealthActive > 20 && zDCoreQuest.HealthActive set zDCoreQuest.EquipNew to VaultSuit101d06 set zDCoreQuest.DamageStage to 11 elseif zDCoreQuest.HealthActive > 15 && zDCoreQuest.HealthActive set zDCoreQuest.EquipNew to VaultSuit101d06 set zDCoreQuest.DamageStage to 12 elseif zDCoreQuest.HealthActive > 10 && zDCoreQuest.HealthActive set zDCoreQuest.EquipNew to VaultSuit101d06 set zDCoreQuest.DamageStage to 13 elseif zDCoreQuest.HealthActive > 5 && zDCoreQuest.HealthActive set zDCoreQuest.EquipNew to VaultSuit101d06 set zDCoreQuest.DamageStage to 14 elseif zDCoreQuest.HealthActive > 0 && zDCoreQuest.HealthActive set zDCoreQuest.EquipNew to VaultSuit101d06 set zDCoreQuest.DamageStage to 15 endif set zDCoreQuest.UpdateFix to 0 set zDCoreQuest.FixArmor to 1 endif if zDCoreQuest.DamageStage >= 10 && zDCoreQuest.NoFastFix == 0 set zDCoreQuest.NoFastFix to 1 elseif zDCoreQuest.DamageStage set zDCoreQuest.NoFastFix to 0 endif set zDCoreQuest.UpdateInv to 2 endif end begin GameMode if zDCoreQuest.Active == 0 return else if zDCoreQuest.BeyondRepair != 1 if Equip != 1 set Equip to 1 endif else return endif endif if zDCoreQuest.UpdateEquip == 1 return else if zDCoreQuest.Check == 1 set PEquip to Player.GetEquippedObject 2 if PEquip != zDCoreQuest.EquipNew return else set zDCoreQuest.Check to 0 endif endif set zDCoreQuest.HealthActive to Player.GetEquippedCurrentHealth 2 if zDCoreQuest.HealthActive > 75 if zDCoreQuest.DamageStage != 0 set zDCoreQuest.EquipNew to VaultSuit101 set zDCoreQuest.DamageStage to 0 set zDCoreQuest.UpdateEquip to 1 endif elseif zDCoreQuest.HealthActive > 70 && zDCoreQuest.HealthActive if zDCoreQuest.DamageStage != 1 set zDCoreQuest.EquipNew to VaultSuit101 set zDCoreQuest.DamageStage to 1 set zDCoreQuest.UpdateEquip to 1 endif elseif zDCoreQuest.HealthActive > 65 && zDCoreQuest.HealthActive if zDCoreQuest.DamageStage != 2 set zDCoreQuest.EquipNew to VaultSuit101 set zDCoreQuest.DamageStage to 2 set zDCoreQuest.UpdateEquip to 1 endif elseif zDCoreQuest.HealthActive > 60 && zDCoreQuest.HealthActive if zDCoreQuest.DamageStage != 3 set zDCoreQuest.EquipNew to VaultSuit101d02 set zDCoreQuest.DamageStage to 3 set zDCoreQuest.UpdateEquip to 1 endif elseif zDCoreQuest.HealthActive > 55 && zDCoreQuest.HealthActive if zDCoreQuest.DamageStage != 4 set zDCoreQuest.EquipNew to VaultSuit101d02 set zDCoreQuest.DropCount to 4 set zDCoreQuest.DropChance to 50 set zDCoreQuest.DamageStage to 4 set zDCoreQuest.UpdateEquip to 1 endif elseif zDCoreQuest.HealthActive > 50 && zDCoreQuest.HealthActive if zDCoreQuest.DamageStage != 5 set zDCoreQuest.EquipNew to VaultSuit101d02 set zDCoreQuest.DropCount to 7 set zDCoreQuest.DropChance to 40 set zDCoreQuest.DamageStage to 5 set zDCoreQuest.UpdateEquip to 1 endif elseif zDCoreQuest.HealthActive > 45 && zDCoreQuest.HealthActive if zDCoreQuest.DamageStage != 6 set zDCoreQuest.EquipNew to VaultSuit101d02 set zDCoreQuest.DropCount to 10 set zDCoreQuest.DropChance to 30 set zDCoreQuest.DamageStage to 6 set zDCoreQuest.UpdateEquip to 1 endif elseif zDCoreQuest.HealthActive > 40 && zDCoreQuest.HealthActive if zDCoreQuest.DamageStage != 7 set zDCoreQuest.EquipNew to VaultSuit101d03 set zDCoreQuest.DropCount to 6 set zDCoreQuest.DropChance to 60 set zDCoreQuest.DamageStage to 7 set zDCoreQuest.NoFastFix to 0 set zDCoreQuest.UpdateEquip to 1 endif elseif zDCoreQuest.HealthActive > 35 && zDCoreQuest.HealthActive if zDCoreQuest.DamageStage != 8 set zDCoreQuest.EquipNew to VaultSuit101d03 set zDCoreQuest.DropCount to 5 set zDCoreQuest.DropChance to 80 set zDCoreQuest.DamageStage to 8 set zDCoreQuest.UpdateEquip to 1 endif elseif zDCoreQuest.HealthActive > 30 && zDCoreQuest.HealthActive if zDCoreQuest.DamageStage != 9 set zDCoreQuest.EquipNew to VaultSuit101d03 set zDCoreQuest.DropCount to 10 set zDCoreQuest.DropChance to 70 set zDCoreQuest.DamageStage to 9 set zDCoreQuest.NoFastFix to 0 set zDCoreQuest.UpdateEquip to 1 endif elseif zDCoreQuest.HealthActive > 25 && zDCoreQuest.HealthActive if zDCoreQuest.DamageStage != 10 set zDCoreQuest.EquipNew to VaultSuit101d04 set zDCoreQuest.DropCount to 4 set zDCoreQuest.DropChance to 50 set zDCoreQuest.DamageStage to 10 set zDCoreQuest.UpdateEquip to 1 endif elseif zDCoreQuest.HealthActive > 20 && zDCoreQuest.HealthActive if zDCoreQuest.DamageStage != 11 set zDCoreQuest.EquipNew to VaultSuit101d04 set zDCoreQuest.DropCount to 3 set zDCoreQuest.DropChance to 90 set zDCoreQuest.DamageStage to 11 set zDCoreQuest.UpdateEquip to 1 endif elseif zDCoreQuest.HealthActive > 15 && zDCoreQuest.HealthActive if zDCoreQuest.DamageStage != 12 set zDCoreQuest.EquipNew to VaultSuit101d04 set zDCoreQuest.DropCount to 15 set zDCoreQuest.DropChance to 60 set zDCoreQuest.DamageStage to 12 set zDCoreQuest.UpdateEquip to 1 endif elseif zDCoreQuest.HealthActive > 10 && zDCoreQuest.HealthActive if zDCoreQuest.DamageStage != 13 set zDCoreQuest.EquipNew to VaultSuit101d04 set zDCoreQuest.DamageStage to 13 set zDCoreQuest.UpdateEquip to 1 endif elseif zDCoreQuest.HealthActive > 5 && zDCoreQuest.HealthActive if zDCoreQuest.DamageStage != 14 set zDCoreQuest.EquipNew to VaultSuit101d05 set zDCoreQuest.DropCount to 6 set zDCoreQuest.DropChance to 90 set zDCoreQuest.DamageStage to 14 set zDCoreQuest.UpdateEquip to 1 endif elseif zDCoreQuest.HealthActive > 0 && zDCoreQuest.HealthActive if zDCoreQuest.DamageStage != 15 set zDCoreQuest.EquipNew to VaultSuit101d05 set zDCoreQuest.DamageStage to 15 set zDCoreQuest.UpdateEquip to 1 endif elseif zDCoreQuest.HealthActive if zDCoreQuest.DamageStage != 16 set zDCoreQuest.DamageStage to 16 set zDCoreQuest.BeyondRepair to 1 set zDCoreQuest.UpdateEquip to 1 set Equip to 0 endif endif if zDCoreQuest.DamageStage >= 10 && zDCoreQuest.NoFastFix == 0 set zDCoreQuest.NoFastFix to 1 elseif zDCoreQuest.DamageStage set zDCoreQuest.NoFastFix to 0 endif endif end scn zDAArmorLeatherReinforcedScript int Equip ref PEquip begin OnEquip Player set zDCoreQuest.Active to 1 set zDCoreQuest.Index to 1 set zDCoreQuest.HealthMax to 80 set zDCoreQuest.RepairMult to 2 set zDCoreQuest.Type to 1 set Equip to 1 end begin OnUnequip Player set zDCoreQuest.Active to 0 set Equip to 0 end begin OnAdd Player set zDCoreQuest.Index to 1 end begin OnDrop Player set zDCoreQuest.Index to 0 end begin MenuMode if zDCoreQuest.UpdateInv != 1 return else if zDCoreQuest.Index != 1 return endif if zDCoreQuest.UpdateFix == 1 if zDCoreQuest.HealthActive > 75 && zDCoreQuest.HealthActive set zDCoreQuest.EquipNew to ArmorLeatherReinforced set zDCoreQuest.DamageStage to 0 elseif zDCoreQuest.HealthActive > 70 && zDCoreQuest.HealthActive set zDCoreQuest.EquipNew to ArmorLeatherReinforced set zDCoreQuest.DamageStage to 1 elseif zDCoreQuest.HealthActive > 65 && zDCoreQuest.HealthActive set zDCoreQuest.EquipNew to ArmorLeatherReinforcedd02 set zDCoreQuest.DamageStage to 2 elseif zDCoreQuest.HealthActive > 60 && zDCoreQuest.HealthActive set zDCoreQuest.EquipNew to ArmorLeatherReinforcedd02 set zDCoreQuest.DamageStage to 3 elseif zDCoreQuest.HealthActive > 55 && zDCoreQuest.HealthActive set zDCoreQuest.EquipNew to ArmorLeatherReinforcedd03 set zDCoreQuest.DamageStage to 4 elseif zDCoreQuest.HealthActive > 50 && zDCoreQuest.HealthActive set zDCoreQuest.EquipNew to ArmorLeatherReinforcedd03 set zDCoreQuest.DamageStage to 5 elseif zDCoreQuest.HealthActive > 45 && zDCoreQuest.HealthActive set zDCoreQuest.EquipNew to ArmorLeatherReinforcedd04 set zDCoreQuest.DamageStage to 6 elseif zDCoreQuest.HealthActive > 40 && zDCoreQuest.HealthActive set zDCoreQuest.EquipNew to ArmorLeatherReinforcedd04 set zDCoreQuest.DamageStage to 7 elseif zDCoreQuest.HealthActive > 35 && zDCoreQuest.HealthActive set zDCoreQuest.EquipNew to ArmorLeatherReinforcedd05 set zDCoreQuest.DamageStage to 8 elseif zDCoreQuest.HealthActive > 30 && zDCoreQuest.HealthActive set zDCoreQuest.EquipNew to ArmorLeatherReinforcedd05 set zDCoreQuest.DamageStage to 9 elseif zDCoreQuest.HealthActive > 25 && zDCoreQuest.HealthActive set zDCoreQuest.EquipNew to ArmorLeatherReinforcedd06 set zDCoreQuest.DamageStage to 10 elseif zDCoreQuest.HealthActive > 20 && zDCoreQuest.HealthActive set zDCoreQuest.EquipNew to ArmorLeatherReinforcedd06 set zDCoreQuest.DamageStage to 11 elseif zDCoreQuest.HealthActive > 15 && zDCoreQuest.HealthActive set zDCoreQuest.EquipNew to ArmorLeatherReinforcedd06 set zDCoreQuest.DamageStage to 12 elseif zDCoreQuest.HealthActive > 10 && zDCoreQuest.HealthActive set zDCoreQuest.EquipNew to ArmorLeatherReinforcedd06 set zDCoreQuest.DamageStage to 13 elseif zDCoreQuest.HealthActive > 5 && zDCoreQuest.HealthActive set zDCoreQuest.EquipNew to ArmorLeatherReinforcedd06 set zDCoreQuest.DamageStage to 14 elseif zDCoreQuest.HealthActive > 0 && zDCoreQuest.HealthActive set zDCoreQuest.EquipNew to ArmorLeatherReinforcedd06 set zDCoreQuest.DamageStage to 15 endif set zDCoreQuest.UpdateFix to 0 set zDCoreQuest.FixArmor to 1 endif if zDCoreQuest.DamageStage >= 10 && zDCoreQuest.NoFastFix == 0 set zDCoreQuest.NoFastFix to 1 elseif zDCoreQuest.DamageStage set zDCoreQuest.NoFastFix to 0 endif set zDCoreQuest.UpdateInv to 2 endif end begin GameMode if zDCoreQuest.Active == 0 return else if zDCoreQuest.BeyondRepair != 1 if Equip != 1 set Equip to 1 endif else return endif endif if zDCoreQuest.UpdateEquip == 1 return else if zDCoreQuest.Check == 1 set PEquip to Player.GetEquippedObject 2 if PEquip != zDCoreQuest.EquipNew return else set zDCoreQuest.Check to 0 endif endif set zDCoreQuest.HealthActive to Player.GetEquippedCurrentHealth 2 if zDCoreQuest.HealthActive > 75 if zDCoreQuest.DamageStage != 0 set zDCoreQuest.EquipNew to ArmorLeatherReinforced set zDCoreQuest.DamageStage to 0 set zDCoreQuest.UpdateEquip to 1 endif elseif zDCoreQuest.HealthActive > 70 && zDCoreQuest.HealthActive if zDCoreQuest.DamageStage != 1 set zDCoreQuest.EquipNew to ArmorLeatherReinforced set zDCoreQuest.DamageStage to 1 set zDCoreQuest.UpdateEquip to 1 endif elseif zDCoreQuest.HealthActive > 65 && zDCoreQuest.HealthActive if zDCoreQuest.DamageStage != 2 set zDCoreQuest.EquipNew to ArmorLeatherReinforcedd02 set zDCoreQuest.DamageStage to 2 set zDCoreQuest.UpdateEquip to 1 endif elseif zDCoreQuest.HealthActive > 60 && zDCoreQuest.HealthActive if zDCoreQuest.DamageStage != 3 set zDCoreQuest.EquipNew to ArmorLeatherReinforcedd02 set zDCoreQuest.DamageStage to 3 set zDCoreQuest.UpdateEquip to 1 endif elseif zDCoreQuest.HealthActive > 55 && zDCoreQuest.HealthActive if zDCoreQuest.DamageStage != 4 set zDCoreQuest.EquipNew to ArmorLeatherReinforcedd03 set zDCoreQuest.DropCount to 4 set zDCoreQuest.DropChance to 50 set zDCoreQuest.DamageStage to 4 set zDCoreQuest.UpdateEquip to 1 endif elseif zDCoreQuest.HealthActive > 50 && zDCoreQuest.HealthActive if zDCoreQuest.DamageStage != 5 set zDCoreQuest.EquipNew to ArmorLeatherReinforcedd03 set zDCoreQuest.DropCount to 7 set zDCoreQuest.DropChance to 40 set zDCoreQuest.DamageStage to 5 set zDCoreQuest.UpdateEquip to 1 endif elseif zDCoreQuest.HealthActive > 45 && zDCoreQuest.HealthActive if zDCoreQuest.DamageStage != 6 set zDCoreQuest.EquipNew to ArmorLeatherReinforcedd04 set zDCoreQuest.DropCount to 10 set zDCoreQuest.DropChance to 30 set zDCoreQuest.DamageStage to 6 set zDCoreQuest.UpdateEquip to 1 endif elseif zDCoreQuest.HealthActive > 40 && zDCoreQuest.HealthActive if zDCoreQuest.DamageStage != 7 set zDCoreQuest.EquipNew to ArmorLeatherReinforcedd04 set zDCoreQuest.DropCount to 6 set zDCoreQuest.DropChance to 60 set zDCoreQuest.DamageStage to 7 set zDCoreQuest.NoFastFix to 0 set zDCoreQuest.UpdateEquip to 1 endif elseif zDCoreQuest.HealthActive > 35 && zDCoreQuest.HealthActive if zDCoreQuest.DamageStage != 8 set zDCoreQuest.EquipNew to ArmorLeatherReinforcedd05 set zDCoreQuest.DropCount to 5 set zDCoreQuest.DropChance to 80 set zDCoreQuest.DamageStage to 8 set zDCoreQuest.UpdateEquip to 1 endif elseif zDCoreQuest.HealthActive > 30 && zDCoreQuest.HealthActive if zDCoreQuest.DamageStage != 9 set zDCoreQuest.EquipNew to ArmorLeatherReinforcedd05 set zDCoreQuest.DropCount to 10 set zDCoreQuest.DropChance to 70 set zDCoreQuest.DamageStage to 9 set zDCoreQuest.NoFastFix to 0 set zDCoreQuest.UpdateEquip to 1 endif elseif zDCoreQuest.HealthActive > 25 && zDCoreQuest.HealthActive if zDCoreQuest.DamageStage != 10 set zDCoreQuest.EquipNew to ArmorLeatherReinforcedd06 set zDCoreQuest.DropCount to 4 set zDCoreQuest.DropChance to 50 set zDCoreQuest.DamageStage to 10 set zDCoreQuest.UpdateEquip to 1 endif elseif zDCoreQuest.HealthActive > 20 && zDCoreQuest.HealthActive if zDCoreQuest.DamageStage != 11 set zDCoreQuest.EquipNew to ArmorLeatherReinforcedd06 set zDCoreQuest.DropCount to 3 set zDCoreQuest.DropChance to 90 set zDCoreQuest.DamageStage to 11 set zDCoreQuest.UpdateEquip to 1 endif elseif zDCoreQuest.HealthActive > 15 && zDCoreQuest.HealthActive if zDCoreQuest.DamageStage != 12 set zDCoreQuest.EquipNew to ArmorLeatherReinforcedd06 set zDCoreQuest.DropCount to 15 set zDCoreQuest.DropChance to 60 set zDCoreQuest.DamageStage to 12 set zDCoreQuest.UpdateEquip to 1 endif elseif zDCoreQuest.HealthActive > 10 && zDCoreQuest.HealthActive if zDCoreQuest.DamageStage != 13 set zDCoreQuest.EquipNew to ArmorLeatherReinforcedd06 set zDCoreQuest.DamageStage to 13 set zDCoreQuest.UpdateEquip to 1 endif elseif zDCoreQuest.HealthActive > 5 && zDCoreQuest.HealthActive if zDCoreQuest.DamageStage != 14 set zDCoreQuest.EquipNew to ArmorLeatherReinforcedd06 set zDCoreQuest.DropCount to 6 set zDCoreQuest.DropChance to 90 set zDCoreQuest.DamageStage to 14 set zDCoreQuest.UpdateEquip to 1 endif elseif zDCoreQuest.HealthActive > 0 && zDCoreQuest.HealthActive if zDCoreQuest.DamageStage != 15 set zDCoreQuest.EquipNew to ArmorLeatherReinforcedd06 set zDCoreQuest.DamageStage to 15 set zDCoreQuest.UpdateEquip to 1 endif elseif zDCoreQuest.HealthActive if zDCoreQuest.DamageStage != 16 set zDCoreQuest.DamageStage to 16 set zDCoreQuest.BeyondRepair to 1 set zDCoreQuest.UpdateEquip to 1 set Equip to 0 endif endif if zDCoreQuest.DamageStage >= 10 && zDCoreQuest.NoFastFix == 0 set zDCoreQuest.NoFastFix to 1 elseif zDCoreQuest.DamageStage set zDCoreQuest.NoFastFix to 0 endif endif end На этом всё. Поделиться сообщением Ссылка на сообщение
Вис691 663 Опубликовано 11 мая, 2017 Так, бегло пробежался по скриптам. Там большая часть кода - заморочки с падением кусков и последующим ремонтом через них. Собственно, что предлагаю сделать: я напишу свою систему подмены брони в зависимости от ее состояния. Попытаюсь сделать универсальной, чтобы не пилить под каждый броник новый скрипт. Но посмотрим, как пойдет. Ах да, естественно обойдемся одним файлом, без всяких фреймворков. Даш, скажи, нужны эти заморочки с падением кожи, металла и прочего мусора? Я, если честно, особого реализма в них не вижу. Однако финальное слово за тобой. Ну и если есть еще какие-то пожелания, то лучше их указать до того, как я начну. А начать я постараюсь завтра, но не факт, что выйдет, т.к. в субботу 2 важные работы в универе. 1 Поделиться сообщением Ссылка на сообщение
Shadd Ashborn 1 719 Опубликовано 11 мая, 2017 Да я спецом эту часть с кусками не юзала, т.к. мне тоже не особо эта идея нравится. Бежит такой ГГ, ему пуля в мягкое место, кусок кожи с броника сорвало, а он вместо чтоб спасать мягкое место, подбирает эти куски и собирает в карман. xD Если тебе не лень - то конечно, буду очень рада, если сделаешь такую систему. По поводу файла - суть фреймворка хороша тем, что его могут юзать любые моддеры, а не только создатель мода. Потому, конечно, хотелось бы отдельный мастер, чтобы к нему можно было вязать авторские работы. Но тут уж точно не мне решать. х) Поделиться сообщением Ссылка на сообщение
Вис691 663 Опубликовано 12 мая, 2017 Так, т.е. из функционала только смена брони, верно? Пока я вижу это примерно так: 1) Ты работаешь с основным файлом. Он, по сути, сам по себе и будет являться фреймворком. Все, что тебе будет нужно делать, - кидать новый броник в форм лист. 2) Пользователям же придется создавать простейший скрипт, в котором их броник будет добавляться в тот же форм лист. Просто прямая правка вызовет конфликты между пользовательскими версиями. В итоге получим некий фраемворк с уже имеющийся базой (твои броники). Можно, конечно, сделать фраемворк пустым, а ты будешь добавлять свои броники по пункту 2. Но это уже как тебе в итоге захочется. Это как я вижу эту систему в идеале. А что из это выйдет реализовать, узнаем в ходе разработки) И последнее, что нужно уточнить: у различных броников будет одинаковое кол-во стадий "потрепанности"? Поделиться сообщением Ссылка на сообщение
Shadd Ashborn 1 719 Опубликовано 12 мая, 2017 1) Ты работаешь с основным файлом. Он, по сути, сам по себе и будет являться фреймворком. Все, что тебе будет нужно делать, - кидать новый броник в форм лист. Пока-что я делала адаптацию ванильной брони и одежды, но поскольку модельки я делаю только м и на последних стадиях они очень открытые, могут начаться подгорания пуканов. Но мне, в принципе, всё равно. х) И последнее, что нужно уточнить: у различных броников будет одинаковое кол-во стадий "потрепанности"? Я делала по 5 броников, с рассчетом на 6 стадий вместе с базовой (полностью целаю броня с оригинальной моделью - и дальше по нарастающей, меньше прочность - больше рвани). Не уверена, что есть смысл делать больше/меньше стадий (разве что для силовой брони). Поделиться сообщением Ссылка на сообщение
Eastlion 220 Опубликовано 12 мая, 2017 (изменено) Занятная фигня. Вычитал на той неделе на модгеймс в "вопросах по модингу", что если поставить bDisableDuplicateReferenceCheck=0 Если поставить 0 - то в игре больше не будет багов с клонированием предметов/NPC/вещей итд Что-то меня тормознуло тогда и изменил это в GECKCustom.ini, а писалось про фаллоутовские ini-шники. Сегодня возился с файлами и никак не мог понять - почему добавляется куча записей про удаление некоторых предметов в различных ячейках и локациях. Виллу Ранчо пришлось вычищать от таких записей сегодня. Начал вспоминать когда это началось, вспомнил как раз про настройку, загрузил в ГЕКК просто FalloutNV.esm, сохранил в новый esp. Так и есть! - куча записей про удаленные предметы . Вот пример тестового, пустого по идее esp. https://cloud.mail.ru/public/HDC9/7Qmh9F7hf Поставил bDisableDuplicateReferenceCheck=1, опять загрузил FalloutNV.esm, сохранил - усё! чистый пустой esp. Изменено 12 мая, 2017 пользователем Eastlion Поделиться сообщением Ссылка на сообщение
MagnuMspec 7 447 Опубликовано 12 мая, 2017 Поставил DisableDuplicateReferenceCheck=1, опять загрузил FalloutNV.esm, сохранил - усё! чистый пустой esp. Ничоси... Ну, я о такой опции даже не слышал) @Вис961, @Allnarta, По задумке мысли такие: 1. Да, верно, через форм-листы, чтобы напрямую скрипт не вписывать. 2. Еще я слышал, что можно подменять модельку в записи через команды Лутаны или кого-то там. Но эта идея звучит косячной, т.к. видимо, заменятся все айтемы брони) 3. По количеству стадий, то думаю, и для силовой 5 хватит. Там же не сделать привязки к тому, какая часть тела повредилась? Поделиться сообщением Ссылка на сообщение
Shadd Ashborn 1 719 Опубликовано 12 мая, 2017 Там же не сделать привязки к тому, какая часть тела повредилась? В голой теории реально, но я упарюсь делать варианты не только по запасу прочности, а еще и по той или иной конечности. Поделиться сообщением Ссылка на сообщение
MagnuMspec 7 447 Опубликовано 12 мая, 2017 В голой теории реально, но я упарюсь делать варианты не только по запасу прочности, а еще и по той или иной конечности. Можно для силовой сделать такое... Хотя и правда, лучше пока не распыляться) Поделиться сообщением Ссылка на сообщение
Protopop 25 Опубликовано 19 июня, 2017 Вопрос такой по Nifscope Иногда в игре переделываю под себя броню и одежду по мелочи, где текстуру перекрашу, где удалю лишний аксессуар или, наоборот, добавлю. Но обычно хватало Nifscope с его не очень удобным переносом. Тут нашел броник http://www.nexusmods.com/newvegas/mods/51728/ и решил добавить к нему футболку под куртку. Новую сделать, конечно же, не смогу, взял футболку с другой модели, в Nifscope соединить так и не смог, получалось криво. Полез в 3dmax, наложил футболку под куртку, криво изрезал и спрятал ошметки, вырезал кусок голого тела, чтобы не просвечивало, вот только тело и руки - одна модель, остались только руки, получилось что-то относительно удобоваримое. Экспортировал модельку в nif, захожу в игру, ничего нет. Подумал, ну и черт с ней, открываю в nifscope две модели, оригинал и переделанную, вставляю на оригинал через nifscope изрезанную футболку и отрезанные руки, теперь в игре есть броня, но без футболки и без рук. Внимание вопрос! Что надо добавить в nifscope, чтобы руки и футболка появились, или хотя бы как скопировать блок со старыми свойствами? А то при копировании блок с информацией просто вставляется вниз и никак не переносится в нужную группу Поделиться сообщением Ссылка на сообщение
JIuKBuDaToR 0 Опубликовано 20 июня, 2017 Ребята, нужна помощь. Можете объяснить за что отвечает каждый скрипт? Разбираю плагин на f3, добавляющий альтернативный фаст тревел. Он еще в FWE вшит был. Set GameHour to GameHour + 2 player.RemoveItem caps001 wtcTravelCost AddItem caps001 wtcTravelCost SetStage aawtcDialogue 1 ;Travel to Megaton Поделиться сообщением Ссылка на сообщение
Вис691 663 Опубликовано 20 июня, 2017 Set GameHour to GameHour + 2 Переводит игровое время на 2 часа вперёд player.RemoveItem caps001 wtcTravelCost Отобрать у игрока wtcTravelCost крышек. wtcTravelCost - какая-то переменная, возможно даже глобальная. В ней хранится кол-во отнимаемых крышек. Похоже, за путешествие куда-то AddItem caps001 wtcTravelCost Добавить кому-то (видимо тому, на ком скрипт привязан) это же количество крышек. SetStage aawtcDialogue 1 Поменять стадию квеста aawtcDialogue на 1. Поделиться сообщением Ссылка на сообщение
JIuKBuDaToR 0 Опубликовано 20 июня, 2017 Travel to Megaton это перемещение к маркеру? На вашем сайте существует сборник скриптов? Поделиться сообщением Ссылка на сообщение
Вис691 663 Опубликовано 20 июня, 2017 Всё, что написано после ; - это комментарии автора. Это уже не код. И нет, вроде бы у нас нет сборника скриптов. Поделиться сообщением Ссылка на сообщение