Jump to content

BrendonLeCount

Premium Member
  • Posts

    104
  • Joined

  • Last visited

Nexus Mods Profile

About BrendonLeCount

Profile Fields

  • Website URL
    https://twitter.com/Bl3countBrendon
  • Country
    United States
  • Currently Playing
    Skyrim VR, No Man's Sky VR
  • Favourite Game
    Dragon Age, Skyrim, X-Com, Fallout, Mass Effect

Recent Profile Visitors

44340 profile views

BrendonLeCount's Achievements

Enthusiast

Enthusiast (6/14)

  • First Post
  • Collaborator Rare
  • Week One Done
  • One Month Later
  • One Year In

Recent Badges

0

Reputation

  1. Oh, woops lol. I started poking around in the CK and discovered that I just hadn't progressed far enough in the main quest. There are a bunch of braziers that light up once you head up to see Paarthurnax. Still not that bright, but it's about what I was after. I did install the gardens one that you linked. Very cool, and it has some lights and details that trigger at the same time.
  2. Is it possible to show the sleep menu via script, without the player having to activate a bed? I tried putting a bed in a dummy cell and using DummyBedREF.Activate(PlayerREF) but no luck.
  3. I'm looking for a mod that subtly and incrementally restores Sky Haven Temple. I'm primarily interested in improved lighting. Ideally it would gradually improve as you induct new recruits, or at least wait until that process is complete before upgrading from vanilla. I'll probably take a look at Sky Haven Temple Restored and Expanded but it looks like it does more than I'm looking for (though I like the increased recruit count.) Depending on how much time I have I might consider making it myself. Anyone interested? It might be a little while. I'm currently working on a Skyrim version of Powered Power Armor and then planning to port Adventurers, Inc. over from oldrim.
  4. Thanks for taking a look. I'm back to working on this part of the mod, and apparently there's another part to the problem. For the properties involved, they act like they have the default value (0.0 for floats) rather than their assigned value. I tested this by changing line 126 in the first script to show Tss instead of temperature (it reported -0 instead of 60). Changing that line to report temperatureNormal results in the compile error I've been getting (temperatureNormal already gets accessed on line 84). Changing those float properties from auto to autoreadonly fixes both problems, but that's kind of limiting. Sorry about the code tag. Changing your theme from Underground to White (the button is in the lower left corner of the page) makes it readable, though it looks kind of funny after seeing a black background here for so many years.
  5. I'm seeing version 2.0.14/1.5.73. I see both recent ones in the archives as well. Is your browser caching or something like that? Could be mine. Computer is getting old like me. Yeah, looks like it was caching. I refreshed and it showed up. Thanks!
  6. Where is the download for the latest version? https://skse.silverlock.org/ is still showing version 2.0.12/1.5.62. Edit: Hmm, I see two new versions under Archives. Did it get taken down?
  7. Here's the script it extends: Scriptname PPAPowerArmorActiScript extends ObjectReference Actor property PlayerREF auto PPAMainQuestScript property PPAMainQuest auto PPAMenuConditions property PPAMenuConditionsQuest auto ObjectReference property PPAStorageREF auto Message property PPAMenuWorldBase auto Message property PPAMenuMainBase auto Message property PPAMenuWorldUpgrade auto Container property PPAArmorChest auto ReferenceAlias property Follower auto Float property scaleIncrease = -1.0 auto Float property maxCharge = 7200.0 auto Float property dischargeRate = 1.0 auto Float property dischargeRateCurrent = 1.0 auto hidden Float property updateInterval = 0.5 autoreadonly Float property keyHeldTime = 1.0 autoreadonly float property effortRun = 1.5 auto float property effortSprint = 2.5 auto Int property menuKeyCode = 25 auto hidden Float property charge = 0.0 auto hidden Actor property wearer = none auto hidden ReferenceAlias property owningAlias = none auto hidden ObjectReference property miscREF auto hidden ObjectReference property armorREF auto hidden ObjectReference property bootsREF auto hidden ObjectReference property gauntletsREF auto hidden ObjectReference property helmetREF auto hidden ObjectReference property storageContainer auto hidden ObjectReference property armorContainer auto hidden bool keyDownPA = false float keyDownPATimer = 0.0 float wearerScale bool equipped = false event OnActivate(ObjectReference akActionRef) if akActionRef == PlayerREF ShowWorldMenu() endif endevent event OnUpdate() if keyDownPA keyDownPATimer -= updateInterval if keyDownPATimer <= 0 && !Utility.IsInMenuMode() ShowEquippedMenu() endif endif int moveMode = GetMoveMode() if charge > 0 float effort = GetEffort(moveMode) float deltaCharge = effort * dischargeRate * updateInterval if deltaCharge > charge deltaCharge = charge endif RemoveCharge(deltaCharge) ArmorUpdated(updateInterval, moveMode, deltaCharge) else ArmorUpdated(updateInterval, moveMode, 0.0) endif if equipped RegisterForSingleUpdate(updateInterval) endif endevent int function GetMoveMode() if wearer.IsSprinting() return 2 elseif wearer.IsRunning() return 1 else return 0 endif endfunction float function GetEffort(int moveMode) if moveMode == 0 return 1.0 elseif moveMode == 1 return effortRun elseif moveMode == 2 return effortSprint endif endfunction event OnKeyDown(int keyCode) if keyCode == menuKeyCode && !Utility.IsInMenuMode() keyDownPA = true keyDownPATimer = keyHeldTime endif endevent event OnKeyUp(int keyCode, float holdTime) if keyCode == menuKeyCode keyDownPA = false if holdtime < keyHeldTime if !Utility.IsInMenuMode() PPAKeyTapped() endif endif endif endevent event OnMenuOpen(string menuName) if menuName == "Crafting Menu" armorContainer.RemoveItem(armorREF, 1, PlayerREF) armorContainer.RemoveItem(helmetREF, 1, PlayerREF) armorContainer.RemoveItem(gauntletsREF, 1, PlayerREF) armorContainer.RemoveItem(bootsREF, 1, PlayerREF) endif endevent event OnMenuClose(string menuName) if menuName == "Crafting Menu" PlayerREF.RemoveItem(armorREF, 1, armorContainer) PlayerREF.RemoveItem(helmetREF, 1, armorContainer) PlayerREF.RemoveItem(gauntletsREF, 1, armorContainer) PlayerREF.RemoveItem(bootsREF, 1, armorContainer) endif endevent function InitializeArmor(ObjectReference akArmorMiscREF) ; if owningAlias == none ; owningAlias = PPAMainQuest.RegisterArmor(self) ; if owningAlias != none miscREF = akArmorMiscREF SetMotionType(4, true) storageContainer = PPAStorageREF.PlaceAtMe(PPAArmorChest) armorContainer = PPAStorageREF.PlaceAtMe(PPAArmorChest) charge = maxCharge dischargeRateCurrent = dischargeRate ArmorInitialized() ; endif ; endif endfunction function ShowWorldMenu() SetHasFollower() bool exitMenu = false while exitMenu == false SetUpgradeConditionals() int response = PPAMenuWorldBase.Show(charge, 100.0 * charge / maxCharge) if (response == 0) ; exit exitMenu = true elseif response == 1 ; equip EquipOnActor(PlayerREF) exitMenu = true elseif response == 2 ; follower equip if Follower.GetActorReference() != none EquipOnActor(Follower.GetActorReference()) exitMenu = true endif elseif response == 3 ; charge exitMenu = ShowChargeMenu() elseif response == 4 ; storage OpenArmorStorage() exitMenu = true elseif response == 5 ; upgrades exitMenu = ShowUpgradeMenu() elseif response == 6 ; store PlayerREF.AddItem(miscREF, 1) MoveTo(PPAStorageREF) exitMenu = true endif endwhile endfunction bool function ShowUpgradeMenu() bool exitMenu = false while exitMenu == false int response = PPAMenuWorldUpgrade.Show() if response == 0 ; back return false elseif response == 1 ; installed exitMenu = ShowUpgradeMenuInstalled() elseif response == 2 ; compatible exitMenu = ShowUpgradeMenuCompatible() endif endwhile endfunction function ShowEquippedMenu() bool exitMenu = false int menuLevel = 0 while exitMenu == false if menuLevel == 0 SetUpgradeConditionals() int response = PPAMenuMainBase.Show(charge, 100.0 * charge / maxCharge) if (response == 0) ; exit exitMenu = true elseif response == 1 ; charge exitMenu = ShowChargeMenu() elseif response == 2 ; storage OpenArmorStorage() exitMenu = true elseif response == 3 ; unequip UnequipFromWearer(false) exitMenu = true elseif response == 4 ; store UnequipFromWearer(true) endif endif endwhile endfunction function EquipOnActor(Actor akActor) MoveTo(PPAStorageREF) armorContainer.AddItem(miscREF, 1) wearer = akActor ArmorEquipped() ;if scaleIncrease > 0 ; wearerScale = wearer.GetScale() ; wearer.SetScale(scaleIncrease) ;endif if akActor == PlayerREF RegisterForKey(25) endif equipped = true RegisterForSingleUpdate(updateInterval) endfunction function UnequipFromWearer(bool store) equipped = false UnregisterForUpdate() if (wearer == PlayerREF) UnregisterForKey(menuKeyCode) endif if store PlayerREF.AddItem(miscREF, 1) else SpawnAtRef(wearer) endif ArmorUnequipped() ;if wearerScale > 0 ; wearer.SetScale(wearerScale) ;endif wearer = none endfunction function OpenArmorStorage() storageContainer.Activate(PlayerREF) endfunction function AddCharge(float chargeAdded) if chargeAdded > 0 charge = charge + chargeAdded if charge > maxCharge charge = maxCharge endif ChargeRestored() endif endfunction function RemoveCharge(float chargeRemoved) if chargeRemoved > 0 charge = charge - chargeRemoved if charge <= 0 charge = 0 ChargeDepleted() endif endif endfunction function SpawnAtRef(ObjectReference akSpawnRef) armorContainer.AddItem(miscREF) MoveTo(akSpawnRef) endfunction function MiscRefOnPlayer(bool onPlayer) if onPlayer RegisterForMenu("Crafting Menu") else UnregisterForMenu("Crafting Menu") endif endfunction function SetHasFollower() if Follower.GetReference() == none PPAMenuConditionsQuest.hasFollower = 0 else PPAMenuConditionsQuest.hasFollower = 1 endif endfunction ;_______________________________________________ ; Abstract Functions ;----------------------------------------------- function ArmorUpdated(float deltaTime, int moveMode, float deltaCharge) endfunction function PPAKeyTapped() endfunction function ChargeArmor() endfunction function ChargeDepleted() endfunction function ChargeRestored() endfunction function ArmorEquipped() endfunction function ArmorUnequipped() endfunction function ArmorInitialized() endfunction bool function ShowChargeMenu() return false endfunction bool function ShowUpgradeMenuInstalled() return false endfunction bool function ShowUpgradeMenuCompatible() return false endfunction function SetUpgradeConditionals() endfunction function ApplyDeathSiphon(float baseHealth) endFunction
  8. Scriptname PPADwarvenPAActiScript extends PPAPowerArmorActiScript Armor property PPADwarvenBoots auto Armor property PPADwarvenCuirass auto Armor property PPADwarvenGauntlets auto Armor property PPADwarvenHelmet auto Sound property PPAChillerSound auto Explosion property PPABursterExplosion auto Explosion property PPASiphonExplosion auto MiscObject property DwarvenCenturionDynamo auto Ingredient property IceWraithTeeth auto MiscObject property PPACenturionDynamoDepleted auto MiscObject property PPAUpgradeArmPistons auto MiscObject property PPAUpgradeBatteryDwarven auto MiscObject property PPAUpgradeBurster auto MiscObject property PPAUpgradeChiller auto MiscObject property PPAUpgradeEmbodimentDwarven auto MiscObject property PPAUpgradeLegPistons auto MiscObject property PPAUpgradeReclaimer auto MiscObject property PPAUpgradeSiphon auto MiscObject property PPAUpgradeTelestorageNode auto Message property PPAMenuWorldChargeCore auto Message property PPAMenuWorldChargeCoreChiller auto Message property PPAMenuWorldInstallDwarvenA auto Message property PPAMenuWorldInstallDwarvenB auto Message property PPAMenuWorldInstallDwarvenC auto Message property PPAMenuWorldUninstallDwarvenA auto Message property PPAMenuWorldUninstallDwarvenB auto Message property PPAMenuWorldUninstallDwarvenC auto Message property PPAMenuWorldInfoArms auto Message property PPAMenuWorldInfoBatteryDwarven auto Message property PPAMenuWorldInfoBurster auto Message property PPAMenuWorldInfoChiller auto Message property PPAMenuWorldInfoEmbodiment auto Message property PPAMenuWorldInfoLegs auto Message property PPAMenuWorldInfoReclaimer auto Message property PPAMenuWorldInfoSiphon auto Message property PPAMenuWorldInfoTelestorage auto Message property PPATemperatureMessage auto Perk property PPADwarvenAssist auto float property dynamoCharge = 7200.0 auto float property dischargeRateReclaimer = 0.5 auto float property cOut = 0.001 auto float property temperatureRun = 100.0 auto float property temperatureRunReclaimer = 80.0 auto float property temperatureRunLegs = 120.0 auto float property temperatureSprint = 150.0 auto float property temperatureSprintReclaimer = 130.0 auto float property temperatureSprintLegs = 170.0 auto float property temperatureCritical = 120.0 auto float property temperatureNormal = 60.0 auto float property deltaTempChiller = 60.0 auto float property deltaTempBurster = 30.0 auto float property overheatDamageMult = 0.15 auto float property siphonInterval = 10.0 auto float property siphonChargeMult = 1.0 auto int property maxChillerCharges = 20 auto int hasUGTelestorageNode = 0 int hasUGLegs = 0 int hasUGArms = 0 int hasUGReclaimer = 0 int hasUGBurster = 0 int hasUGChiller = 0 int hasUGBattery1 = 0 int hasUGBattery2 = 0 int hasUGSiphon = 0 int hasUGEmbodiment = 0 float temperature float siphonTimer = 0.0 float tempMessageTimer = 0.0 int chillerCharges = 0 function ArmorUpdated(float deltaTime, int moveMode, float deltaCharge) ; Qout = (temperature - temperatureNormal) * Cout * dt ; Qgen = Cgen * dt ; Tss - temperatureNormal = Cgen / Cout ; Cgen = (Tss - temperatureNormal) * Cout ; dT = Qgen - Qout = (Tss - temperatureNormal) * Cout * dt - (temperature - temperatureNormal) * Cout * dt ; temperature = temperature + dt * Cout * (Tss - temperature) float Tss = temperatureNormal if wearer.HasPerk(PPADwarvenAssist) if (hasUGReclaimer == 1 && hasUGLegs == 1) || (hasUGReclaimer == 0 && hasUGLegs == 0) if moveMode == 1 Tss = temperatureRun elseif moveMode == 2 Tss = temperatureSprint endif elseif hasUGLegs == 1 if moveMode == 1 Tss = temperatureRunLegs elseif moveMode == 2 Tss = temperatureSprintLegs endif else if moveMode == 1 Tss = temperatureRunReclaimer elseif moveMode == 2 Tss = temperatureSprintReclaimer endif endif if hasUGSiphon == 1 if wearer.IsInCombat() if siphonTimer <= 0.0 siphonTimer = siphonInterval wearer.PlaceAtMe(PPASiphonExplosion, 1) else siphonTimer = siphonTimer - deltaTime endif else siphonTimer = 0.0 endif endif wearer.RestoreActorValue("Stamina", 100.0) endif temperature = temperature + deltaTime * cOut * (Tss - temperature) float temperatureDamage = temperatureCritical - temperature if (temperatureDamage > 0.0) wearer.DamageAV("Health", temperatureDamage * deltaTime * overheatDamageMult) endif if tempMessageTimer <= 0.0 tempMessageTimer = 10.0 PPATemperatureMessage.Show(temperature) else tempMessageTimer = tempMessageTimer - deltaTime endif endfunction function PPAKeyTapped() if hasUGBurster == 1 && temperature > temperatureCritical wearer.PlaceAtMe(PPABursterExplosion, 1) temperature = temperature - deltaTempBurster elseif hasUGChiller == 1 && chillerCharges > 0 PPAChillerSound.Play(wearer) temperature = temperature - deltaTempChiller endif endfunction function ChargeArmor() if wearer.GetItemCount(DwarvenCenturionDynamo) > 0 wearer.RemoveItem(DwarvenCenturionDynamo, 1) wearer.AddItem(PPACenturionDynamoDepleted, 1) AddCharge(dynamoCharge) endif endfunction function ChargeDepleted() if wearer.HasPerk(PPADwarvenAssist) == true wearer.RemovePerk(PPADwarvenAssist) endif endfunction function ChargeRestored() if wearer.HasPerk(PPADwarvenAssist) == false wearer.AddPerk(PPADwarvenAssist) endif endfunction function ArmorEquipped() armorContainer.RemoveItem(PPADwarvenCuirass, 1, true, wearer) wearer.EquipItem(PPADwarvenCuirass, true, true) armorContainer.RemoveItem(PPADwarvenHelmet, 1, true, wearer) wearer.EquipItem(PPADwarvenHelmet, true, true) armorContainer.RemoveItem(PPADwarvenGauntlets, 1, true, wearer) wearer.EquipItem(PPADwarvenGauntlets, true, true) armorContainer.RemoveItem(PPADwarvenBoots, 1, true, wearer) wearer.EquipItem(PPADwarvenBoots, true, true) temperature = temperatureNormal if charge > 0 wearer.AddPerk(PPADwarvenAssist) endif endfunction function ArmorUnequipped() wearer.UnequipItem(PPADwarvenCuirass, false, true) wearer.RemoveItem(PPADwarvenCuirass, 1, true, armorContainer) wearer.UnequipItem(PPADwarvenHelmet, false, true) wearer.RemoveItem(PPADwarvenHelmet, 1, true, armorContainer) wearer.UnequipItem(PPADwarvenGauntlets, false, true) wearer.RemoveItem(PPADwarvenGauntlets, 1, true, armorContainer) wearer.UnequipItem(PPADwarvenBoots, false, true) wearer.RemoveItem(PPADwarvenBoots, 1, true, armorContainer) if wearer.HasPerk(PPADwarvenAssist) == true wearer.RemovePerk(PPADwarvenAssist) endif endfunction function ArmorInitialized() armorContainer.AddItem(PPADwarvenCuirass, 1) armorContainer.AddItem(PPADwarvenHelmet, 1) armorContainer.AddItem(PPADwarvenGauntlets, 1) armorContainer.AddItem(PPADwarvenBoots, 1) endfunction bool function ShowChargeMenu() while true if hasUGChiller == 1 int response = PPAMenuWorldChargeCoreChiller.Show(charge, 100.0 * charge / maxCharge, dynamoCharge, chillerCharges, maxChillerCharges, maxChillerCharges) if response == 0 ; back return false elseif response == 1 ChargeArmor() elseif response == 2 PlayerREF.RemoveItem(IceWraithTeeth, 1) chillerCharges = maxChillerCharges endif else int response = PPAMenuWorldChargeCore.Show(charge, 100.0 * charge / maxCharge, dynamoCharge) if response == 0 ; back return false elseif response == 1 ChargeArmor() endif endif endwhile endfunction bool function ShowUpgradeMenuInstalled() int menuTab = 0 int response while true SetUpgradeConditionals() if menuTab == 0 response = PPAMenuWorldUninstallDwarvenA.Show() if response == 0 ; back return false elseif response == 1 ; soul siphon ShowInstallInfoSiphon() elseif response == 2 ; battery 1 ShowInstallInfoBattery1() elseif response == 3 ; battery 2 ShowInstallInfoBattery2() elseif response == 4 ; embodiment ShowInstallInfoEmbodiment() elseif response == 5 ; next menuTab = 1 endif elseif menuTab == 1 response = PPAMenuWorldUninstallDwarvenB.Show() if response == 0 ; back return false elseif response == 1 ; previous menuTab = 0 elseif response == 2 ; telestorage ShowInstallInfoTelestorage() elseif response == 3 ; arms ShowInstallInfoArms() elseif response == 4 ; legs ShowInstallInfoLegs() elseif response == 5 ; next menuTab = 2 endif elseif menuTab == 2 response = PPAMenuWorldUninstallDwarvenC.Show() if response == 0 ; back return false elseif response == 1 ; previous menuTab = 1 elseif response == 2 ; chiller ShowInstallInfoChiller() elseif response == 3 ; burster ShowInstallInfoBurster() elseif response == 4 ; reclaimer ShowInstallInfoReclaimer() endif endif endwhile endfunction bool function ShowUpgradeMenuCompatible() int menuTab = 0 int response while true SetUpgradeConditionals() if menuTab == 0 response = PPAMenuWorldInstallDwarvenA.Show() if response == 0 ; back return false elseif response == 1 ; soul siphon ShowInstallInfoSiphon() elseif response == 2 ; battery 1 ShowInstallInfoBattery1() elseif response == 3 ; battery 2 ShowInstallInfoBattery2() elseif response == 4 ; embodiment ShowInstallInfoEmbodiment() elseif response == 5 ; next menuTab = 1 endif elseif menuTab == 1 response = PPAMenuWorldInstallDwarvenB.Show() if response == 0 ; back return false elseif response == 1 ; previous menuTab = 0 elseif response == 2 ; telestorage ShowInstallInfoTelestorage() elseif response == 3 ; arms ShowInstallInfoArms() elseif response == 4 ; legs ShowInstallInfoLegs() elseif response == 5 ; next menuTab = 2 endif elseif menuTab == 2 response = PPAMenuWorldInstallDwarvenC.Show() if response == 0 ; back return false elseif response == 1 ; previous menuTab = 1 elseif response == 2 ; chiller ShowInstallInfoChiller() elseif response == 3 ; burster ShowInstallInfoBurster() elseif response == 4 ; reclaimer ShowInstallInfoReclaimer() endif endif endwhile endfunction function ShowInstallInfoSiphon() int response = PPAMenuWorldInfoSiphon.Show() if response == 1 ; install hasUGSiphon = 1 PlayerREF.RemoveItem(PPAUpgradeSiphon, 1) elseif response == 2 ; uninstall hasUGSiphon = 0 PlayerREF.AddItem(PPAUpgradeSiphon, 1) endif endfunction function ShowInstallInfoBattery1() int response = PPAMenuWorldInfoBatteryDwarven.Show() if response == 1 ; install hasUGBattery1 = 1 maxCharge = dynamoCharge * 2.0 PlayerREF.RemoveItem(PPAUpgradeBatteryDwarven, 1) elseif response == 2 ; uninstall hasUGBattery1 = 0 maxCharge = dynamoCharge * 1.0 if charge > maxCharge charge = maxCharge PlayerREF.AddItem(PPACenturionDynamoDepleted, 1) endif PlayerREF.AddItem(PPAUpgradeBatteryDwarven, 1) endif endfunction function ShowInstallInfoBattery2() int response = PPAMenuWorldInfoBatteryDwarven.Show() if response == 1 ; install hasUGBattery2 = 1 maxCharge = dynamoCharge * 3.0 PlayerREF.RemoveItem(PPAUpgradeBatteryDwarven, 1) elseif response == 2 ; uninstall hasUGBattery2 = 0 maxCharge = dynamoCharge * 2.0 if charge > maxCharge charge = maxCharge PlayerREF.AddItem(PPACenturionDynamoDepleted, 1) endif PlayerREF.AddItem(PPAUpgradeBatteryDwarven, 1) endif endfunction function ShowInstallInfoEmbodiment() int response = PPAMenuWorldInfoEmbodiment.Show() if response == 1 ; install hasUGEmbodiment = 1 PlayerREF.RemoveItem(PPAUpgradeEmbodimentDwarven, 1) elseif response == 2 ; uninstall hasUGEmbodiment = 0 PlayerREF.AddItem(PPAUpgradeEmbodimentDwarven, 1) endif endfunction function ShowInstallInfoTelestorage() int response = PPAMenuWorldInfoTelestorage.Show() if response == 1 ; install hasUGTelestorageNode = 1 PlayerREF.RemoveItem(PPAUpgradeTelestorageNode, 1) elseif response == 2 ; uninstall hasUGTelestorageNode = 0 PlayerREF.AddItem(PPAUpgradeTelestorageNode, 1) endif endfunction function ShowInstallInfoArms() int response = PPAMenuWorldInfoArms.Show() if response == 1 ; install hasUGArms = 1 PlayerREF.RemoveItem(PPAUpgradeArmPistons, 1) elseif response == 2 ; uninstall hasUGArms = 0 PlayerREF.AddItem(PPAUpgradeArmPistons, 1) endif endfunction function ShowInstallInfoLegs() int response = PPAMenuWorldInfoLegs.Show() if response == 1 ; install hasUGLegs = 1 PlayerREF.RemoveItem(PPAUpgradeLegPistons, 1) elseif response == 2 ; uninstall hasUGLegs = 0 PlayerREF.AddItem(PPAUpgradeLegPistons, 1) endif endfunction function ShowInstallInfoChiller() int response = PPAMenuWorldInfoChiller.Show() if response == 1 ; install hasUGChiller = 1 PlayerREF.RemoveItem(PPAUpgradeChiller, 1) elseif response == 2 ; uninstall hasUGChiller = 0 PlayerREF.AddItem(PPAUpgradeChiller, 1) endif endfunction function ShowInstallInfoBurster() int response = PPAMenuWorldInfoBurster.Show() if response == 1 ; install hasUGBurster = 1 PlayerREF.RemoveItem(PPAUpgradeBurster, 1) elseif response == 2 ; uninstall hasUGBurster = 0 PlayerREF.AddItem(PPAUpgradeBurster, 1) endif endfunction function ShowInstallInfoReclaimer() int response = PPAMenuWorldInfoReclaimer.Show() if response == 1 ; install hasUGReclaimer = 1 dischargeRateCurrent = dischargeRateReclaimer PlayerREF.RemoveItem(PPAUpgradeReclaimer, 1) elseif response == 2 ; uninstall hasUGReclaimer = 0 dischargeRateCurrent = dischargeRate PlayerREF.AddItem(PPAUpgradeReclaimer, 1) endif endfunction function SetUpgradeConditionals() PPAMenuConditionsQuest.hasUGTelestorageNode = hasUGTelestorageNode PPAMenuConditionsQuest.hasUGLegs = hasUGLegs PPAMenuConditionsQuest.hasUGArms = hasUGArms PPAMenuConditionsQuest.hasUGReclaimer = hasUGReclaimer PPAMenuConditionsQuest.hasUGBurster = hasUGBurster PPAMenuConditionsQuest.hasUGChiller = hasUGChiller PPAMenuConditionsQuest.hasUGBattery1 = hasUGBattery1 PPAMenuConditionsQuest.hasUGBattery2 = hasUGBattery2 PPAMenuConditionsQuest.hasUGSiphon = hasUGSiphon PPAMenuConditionsQuest.hasUGEmbodiment = hasUGEmbodiment endfunction function ApplyDeathSiphon(float baseHealth) if hasUGSiphon == 1 AddCharge(baseHealth * siphonChargeMult) endif endFunction Here it is in it's current form. I've changed the code to avoid referencing any properties more than once back to back in a function, but you can see the property declarations there.
  9. I'm getting a weird error message when trying to compile a script: It shows up anywhere that I reference a property a second time in a function. Here's the code in question: function PPAKeyTapped() if hasUGBurster == 1 && (upperTemperature >= temperatureBurst || lowerTemperature >= temperatureBurst) wearer.PlaceAtMe(PPABursterExplosion, 1) upperTemperature = upperTemperature - deltaTempBurster lowerTemperature = lowerTemperature - deltaTempBurster elseif hasUGChiller == 1 && chillerCharges > 0 PPAChillerSound.Play(wearer) upperTemperature = upperTemperature - deltaTempChiller lowerTemperature = lowerTemperature - deltaTempChiller endif endfunction As far as I can tell there is nothing wrong with the way the properties have been declared.
  10. I have a mod right now that lets you distribute gear to settlers via containers that you place the items in. In order to let you retrieve settler's existing gear, I had to get rid of settlers outfits and replace them with leveled items placed directly in their inventory, otherwise the settlers are still left with an outfit that they'll default to whenever they load or have their weapon changed. They won't automatically equip things other than their outfit, so I created a spell that steps through their inventory, equipping any armor that is found. In order to keep track of which settlers this was done to, I added a keyword. This was working great until the latest update to Fallout 4. Now, the keyword and spell aren't carrying over, so settlers fail to register in my code, and, even worse, the spell isn't around to make them equip what's in their inventory, so they end up naked. Prior to the update, settlers were created from an NPC that uses a leveled NPC as a template, which in turn contains a bunch of NPCs with different faces and genders that are in turn based on a template NPC. I made the changes to the template NPC, and edited the final NPC to make sure they carried over. Has anybody else noticed a change in the way settlers are created or templated?
  11. @LtAlbrecht - I'd imagine that a .50 bmg would go through an organic target, delivering only a fraction of its energy unless you're using it against heavy armor or a sentry bot. It would be a good thing to pair with a damage threshold system, letting the "overkill" ignore a fixed amount of damage threshold.
  12. I put together something to loot big areas after you're done clearing them, but without the necessary F4SE functions it's prohibitively slow (literally like 10 minutes to clear an area). As part of the same mod though there's a bot that teleports loot back to your settlement without your having to pick it up. It's not as automatic as follower autoloot, but it does let you loot absolutely everything without becoming overburdened.
  13. Thanks IMP of the Perverse .... by the way, do you have any idea where should I place this mod please ...? Thanks again and I really appreciate in advance your suggestion .. :cool: If you go for the script-injected version, I don't think it matters. The non-injected version has leveled lists that you'll need to merge by hand, so your merged patch just need to load last.
  14. West Tek has a bunch of night vision modes, one of them being the targeting shader.
  15. There is tin, oddly enough. You just need to change the tin can return item to tin rather than steel.
×
×
  • Create New...