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

Sazan's Theme

Вопросы по моддингу Fallout 3 и New Vegas

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

Как увеличить размеры некоего объекта? К примеру переносной палатки - увеличить длину / ширину, в общем сделать не квадратной, а прямоугольной. Хочу туда всунуть ещё парочку спальников.

Поделиться сообщением


Ссылка на сообщение

Ух, думаю, это только в Nifskope можно, и еще с коллизией повозиться.

 

В ГЕКК можно только масштаб менять.

Поделиться сообщением


Ссылка на сообщение

Nifskope - а где его качнуть можно по простому? Пробовал "ходить" по "родным" сайтам - так и не разобрался что скачать.

Поделиться сообщением


Ссылка на сообщение

Доброго времени суток! У меня возникли проблемы с аи пакетами. Вообщем при выборе аи пакета НПС не взаимодействует с маркером анимации как надо. 1пакет PushUpmarker Нпс просто встаёт рядом с маркером но не взаимодействует, 2й пакет работы связан со стулом, нпс при активации пакета встаёт и садится на стул. Навмеши раскидано грамотно, в аи пакетах нет конфликов по времени, галочки маркера анимации и мебели(кроме кроватей) активированы, подскажите в чем ещё может быть проблема, буду очень презнателен)

Поделиться сообщением


Ссылка на сообщение

 

 

Доброго времени суток! У меня возникли проблемы с аи пакетами. Вообщем при выборе аи пакета НПС не взаимодействует с маркером анимации как надо. 1пакет PushUpmarker Нпс просто встаёт рядом с маркером но не взаимодействует, 2й пакет работы связан со стулом, нпс при активации пакета встаёт и садится на стул. Навмеши раскидано грамотно, в аи пакетах нет конфликов по времени, галочки маркера анимации и мебели(кроме кроватей) активированы, подскажите в чем ещё может быть проблема, буду очень презнателен)

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

Поделиться сообщением


Ссылка на сообщение

Ваш пакет и не будет работать.

 

Во-первых. Я так понимаю вы используете PushUpsMarker из раздела Furniture. Этот маркер не относится к маркерам анимации. Все что находится в разделе Furniture является предметами мебели, даже если это маркер. К маркерам анимации относятся маркеры из раздела Idle Marker.

 

Во-вторых. Вы создали пакет SandBox. Это пакет песочницы и он в принципе допускает ту возможность, что NPC будет взаимодействовать с этим маркером, но если в пределах той дистанции которую вы назначили окажутся другие маркеры, он будет взаимодействовать и с ними.

Поделиться сообщением


Ссылка на сообщение

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 маркеры это желаемые точки откуда будет действовать радиус, возможно сделать так? 

Поделиться сообщением


Ссылка на сообщение

Ваши пакеты не работают потому, что вы поставили галочку "маркеры анимации", а все что вы там расставили (плита, маркер отжимания, стул) - это предметы мебели. Если вы уберете галочку "маркеры анимации" и поставите галочку "мебель", ваши пакеты будут работать. Но поскольку вы используете пакеты SandBox, ваш NPC будет использовать все предметы мебели в том радиусе, который вы прописали в пакете.

 

Если вы хотите, что бы ваш NPC просто стоял и готовил пищу, создавайте пакет Travel, а не SandBox. Выбирайте в этом пакете маркер плиты с радиусом 0. И ваш NPC будет стоять и готовить еду.

 

Тоже самое и с пакетами работы и отжимания.


 

 

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

Я не совсем понимаю, чего вы хотите. Я так понял вы хотите, что бы в определенные часы NPC готовил пищу, в другое время сидел на стуле, в другое время отжимался. Тогда под эти действия нужны пакеты Travel. Допустим вы создаете пакет Travel, прописываете в нем маркер плиты с радиусом 0 и назначаете время. В это время, которое вы указали NPC будет стоять у плиты и проигрывать эту анимацию готовки.

 

А с пакетом SandBox NPC будет взаимодействовать со всей мебелью, которая попадает под тот радиус вокруг указанного маркера, что вы прописали в пакете. В таком случае ограничить NPC можно только убрав из этого радиуса нежеланную мебель. Как я уже сказал SandBox - это пакет песочницы. Он предназначен для того, что бы заставить NPC выполнять указанные действия в случайном порядке вокруг точки, которую вы указали в нем.

  • Нравится 1

Поделиться сообщением


Ссылка на сообщение

Ваши пакеты не работают потому, что вы поставили галочку "маркеры анимации", а все что вы там расставили (плита, маркер отжимания, стул) - это предметы мебели. Если вы уберете галочку "маркеры анимации" и поставите галочку "мебель", ваши пакеты будут работать. Но поскольку вы используете пакеты SandBox, ваш NPC будет использовать все предметы мебели в том радиусе, который вы прописали в пакете.

 

Если вы хотите, что бы ваш NPC просто стоял и готовил пищу, создавайте пакет Travel, а не SandBox. Выбирайте в этом пакете маркер плиты с радиусом 0. И ваш NPC будет стоять и готовить еду.

 

Тоже самое и с пакетами работы и отжимания.

 

 

Я не совсем понимаю, чего вы хотите. Я так понял вы хотите, что бы в определенные часы NPC готовил пищу, в другое время сидел на стуле, в другое время отжимался. Тогда под эти действия нужны пакеты Travel. Допустим вы создаете пакет Travel, прописываете в нем маркер плиты с радиусом 0 и назначаете время. В это время, которое вы указали NPC будет стоять у плиты и проигрывать эту анимацию готовки.

 

А с пакетом SandBox NPC будет взаимодействовать со всей мебелью, которая попадает под тот радиус вокруг указанного маркера, что вы прописали в пакете. В таком случае ограничить NPC можно только убрав из этого радиуса нежеланную мебель. Как я уже сказал SandBox - это пакет песочницы. Он предназначен для того, что бы заставить NPC выполнять указанные действия в случайном порядке вокруг точки, которую вы указали в нем.

Отлично! Всё работает как надо, спасибо вам за помощь! :good:

Я не совсем понимаю, чего вы хотите. Я так понял вы хотите, что бы в определенные часы NPC готовил пищу, в другое время сидел на стуле, в другое время отжимался. Тогда под эти действия нужны пакеты Travel. Допустим вы создаете пакет Travel, прописываете в нем маркер плиты с радиусом 0 и назначаете время. В это время, которое вы указали NPC будет стоять у плиты и проигрывать эту анимацию готовки.

 

А с пакетом SandBox NPC будет взаимодействовать со всей мебелью, которая попадает под тот радиус вокруг указанного маркера, что вы прописали в пакете. В таком случае ограничить NPC можно только убрав из этого радиуса нежеланную мебель. Как я уже сказал SandBox - это пакет песочницы. Он предназначен для того, что бы заставить NPC выполнять указанные действия в случайном порядке вокруг точки, которую вы указали в нем.

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

  • Нравится 1

Поделиться сообщением


Ссылка на сообщение

Володя просил написать, напишу.

 

Есть такой мод - 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
 

 

 

 

 

 

На этом всё.

Поделиться сообщением


Ссылка на сообщение

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

Даш, скажи, нужны эти заморочки с падением кожи, металла и прочего мусора? Я, если честно, особого реализма в них не вижу. Однако финальное слово за тобой.

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

  • Нравится 1

Поделиться сообщением


Ссылка на сообщение

Да я спецом эту часть с кусками не юзала, т.к. мне тоже не особо эта идея нравится. Бежит такой ГГ, ему пуля в мягкое место, кусок кожи с броника сорвало, а он вместо чтоб спасать мягкое место, подбирает эти куски и собирает в карман. xD

 

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

Поделиться сообщением


Ссылка на сообщение

Так, т.е. из функционала только смена брони, верно?

Пока я вижу это примерно так:

1) Ты работаешь с основным файлом. Он, по сути, сам по себе и будет являться фреймворком. Все, что тебе будет нужно делать, - кидать новый броник в форм лист.

2) Пользователям же придется создавать простейший скрипт, в котором их броник будет добавляться в тот же форм лист. Просто прямая правка вызовет конфликты между пользовательскими версиями.

В итоге получим некий фраемворк с уже имеющийся базой (твои броники). Можно, конечно, сделать фраемворк пустым, а ты будешь добавлять свои броники по пункту 2. Но это уже как тебе в итоге захочется.

Это как я вижу эту систему в идеале. А что из это выйдет реализовать, узнаем в ходе разработки)

И последнее, что нужно уточнить: у различных броников будет одинаковое кол-во стадий "потрепанности"?

Поделиться сообщением


Ссылка на сообщение

 

 

1) Ты работаешь с основным файлом. Он, по сути, сам по себе и будет являться фреймворком. Все, что тебе будет нужно делать, - кидать новый броник в форм лист.

 

Пока-что я делала адаптацию ванильной брони и одежды, но поскольку модельки я делаю только м и на последних стадиях они очень открытые, могут начаться подгорания пуканов. Но мне, в принципе, всё равно. х)

 

 

 

И последнее, что нужно уточнить: у различных броников будет одинаковое кол-во стадий "потрепанности"? 

 

Я делала по 5 броников, с рассчетом на 6 стадий вместе с базовой (полностью целаю броня с оригинальной моделью - и дальше по нарастающей, меньше прочность - больше рвани). Не уверена, что есть смысл делать больше/меньше стадий (разве что для силовой брони).

Поделиться сообщением


Ссылка на сообщение

Занятная фигня. Вычитал на той неделе на модгеймс в "вопросах по модингу", что если поставить

bDisableDuplicateReferenceCheck=0  
Если поставить 0 - то в игре больше не будет багов с клонированием предметов/NPC/вещей итд

Что-то меня тормознуло тогда и изменил это в GECKCustom.ini, а писалось про фаллоутовские ini-шники.

 

Сегодня возился с файлами и никак не мог понять - почему добавляется куча записей про удаление некоторых предметов в различных ячейках и локациях.

Виллу Ранчо пришлось вычищать от таких записей сегодня.

 

Начал вспоминать когда это началось, вспомнил как раз про настройку, загрузил в ГЕКК просто FalloutNV.esm, сохранил в новый esp. Так и есть! - куча записей про удаленные предметы .

Вот пример тестового, пустого по идее esp.

https://cloud.mail.ru/public/HDC9/7Qmh9F7hf

 

Поставил bDisableDuplicateReferenceCheck=1, опять загрузил FalloutNV.esm, сохранил - усё! чистый пустой esp.

Изменено пользователем Eastlion

Поделиться сообщением


Ссылка на сообщение

 

 

Поставил DisableDuplicateReferenceCheck=1, опять загрузил FalloutNV.esm, сохранил - усё! чистый пустой esp.

Ничоси...

Ну, я о такой опции даже не слышал)

 

@Вис961,  @Allnarta,

По задумке мысли такие:

1. Да, верно, через форм-листы, чтобы напрямую скрипт не вписывать.

2. Еще я слышал, что можно подменять модельку в записи через команды Лутаны или кого-то там. Но эта идея звучит косячной, т.к. видимо, заменятся все айтемы брони)

3. По количеству стадий, то думаю, и для силовой 5 хватит.

Там же не сделать привязки к тому, какая часть тела повредилась?

Поделиться сообщением


Ссылка на сообщение

 

 

Там же не сделать привязки к тому, какая часть тела повредилась?

 

В голой теории реально, но я упарюсь делать варианты не только по запасу прочности, а еще и по той или иной конечности.

Поделиться сообщением


Ссылка на сообщение

 

 

В голой теории реально, но я упарюсь делать варианты не только по запасу прочности, а еще и по той или иной конечности.

Можно для силовой сделать такое...

Хотя и правда, лучше пока не распыляться) 

Поделиться сообщением


Ссылка на сообщение

Вопрос такой по Nifscope

Иногда в игре переделываю под себя броню и одежду по мелочи, где текстуру перекрашу, где удалю лишний аксессуар или, наоборот, добавлю. Но обычно хватало Nifscope с его не очень удобным переносом. Тут нашел броник http://www.nexusmods.com/newvegas/mods/51728/ и решил добавить к нему футболку под куртку. Новую сделать, конечно же, не смогу, взял футболку с другой модели, в Nifscope соединить так и не смог, получалось криво. Полез в 3dmax, наложил футболку под куртку, криво изрезал и спрятал ошметки, вырезал кусок голого тела, чтобы не просвечивало, вот только тело и руки - одна модель, остались только руки, получилось что-то относительно удобоваримое. Экспортировал модельку в nif, захожу в игру, ничего нет. Подумал, ну и черт с ней, открываю в nifscope две модели, оригинал и переделанную, вставляю на оригинал через nifscope изрезанную футболку и отрезанные руки, теперь в игре есть броня, но без футболки и без рук. 

Внимание вопрос! Что надо добавить в nifscope, чтобы руки и футболка появились, или хотя бы как скопировать блок со старыми свойствами? А то при копировании блок с информацией просто вставляется вниз и никак не переносится в нужную группу

Поделиться сообщением


Ссылка на сообщение

Ребята, нужна помощь. Можете объяснить за что отвечает каждый скрипт? Разбираю плагин на f3, добавляющий альтернативный фаст тревел. Он еще в FWE вшит был. 

Set GameHour to GameHour + 2
player.RemoveItem caps001 wtcTravelCost
AddItem caps001 wtcTravelCost
SetStage aawtcDialogue 1 ;Travel to Megaton

Поделиться сообщением


Ссылка на сообщение

 

 

Set GameHour to GameHour + 2
 

Переводит игровое время на 2 часа вперёд

 

 

player.RemoveItem caps001 wtcTravelCost

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

 

 

AddItem caps001 wtcTravelCost

Добавить кому-то (видимо тому, на ком скрипт привязан) это же количество крышек.

 

 

SetStage aawtcDialogue 1

Поменять стадию квеста aawtcDialogue на 1.

Поделиться сообщением


Ссылка на сообщение

Travel to Megaton это перемещение к маркеру? 

 

На вашем сайте существует сборник скриптов?

Поделиться сообщением


Ссылка на сообщение

Всё, что написано после ; - это комментарии автора. Это уже не код. И нет, вроде бы у нас нет сборника скриптов.

Поделиться сообщением


Ссылка на сообщение

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

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

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

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

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

Войти

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

Войти


×
×
  • Создать...