Split base removal chance for world-placed and container items
This commit is contained in:
parent
e843ab2505
commit
e99117ed8b
Binary file not shown.
@ -25,8 +25,8 @@ begin function {}
|
|||||||
|
|
||||||
; World
|
; World
|
||||||
|
|
||||||
set EULxWorldLootRemovalEnabled to GetINIFloat "World:LootRemovalEnabled" $sFile
|
|
||||||
set EULxWorldBaseRemovalChance to GetINIFloat "World:BaseRemovalChance" $sFile
|
set EULxWorldBaseRemovalChance to GetINIFloat "World:BaseRemovalChance" $sFile
|
||||||
|
set EULxWorldContRemovalChance to GetINIFloat "World:ContRemovalChance" $sFile
|
||||||
set EULxWorldSkipLocked to GetINIFloat "World:SkipLocked" $sFile
|
set EULxWorldSkipLocked to GetINIFloat "World:SkipLocked" $sFile
|
||||||
|
|
||||||
set EULxWorldWeaponRemovalMod to GetINIFloat "World:WeaponRemovalMod" $sFile
|
set EULxWorldWeaponRemovalMod to GetINIFloat "World:WeaponRemovalMod" $sFile
|
||||||
|
|||||||
@ -19,8 +19,8 @@ begin function {}
|
|||||||
|
|
||||||
; World
|
; World
|
||||||
|
|
||||||
SetINIFloat "World:LootRemovalEnabled" EULxWorldLootRemovalEnabled $sFile
|
|
||||||
SetINIFloat "World:BaseRemovalChance" EULxWorldBaseRemovalChance $sFile
|
SetINIFloat "World:BaseRemovalChance" EULxWorldBaseRemovalChance $sFile
|
||||||
|
SetINIFloat "World:ContRemovalChance" EULxWorldContRemovalChance $sFile
|
||||||
SetINIFloat "World:SkipLocked" EULxWorldSkipLocked $sFile
|
SetINIFloat "World:SkipLocked" EULxWorldSkipLocked $sFile
|
||||||
|
|
||||||
SetINIFloat "World:WeaponRemovalMod" EULxWorldWeaponRemovalMod $sFile
|
SetINIFloat "World:WeaponRemovalMod" EULxWorldWeaponRemovalMod $sFile
|
||||||
|
|||||||
@ -41,4 +41,18 @@ begin function { iSuccess }
|
|||||||
endif
|
endif
|
||||||
endif
|
endif
|
||||||
|
|
||||||
|
if EULxVersion < 4
|
||||||
|
set EULxVersion to 4
|
||||||
|
|
||||||
|
set EULxWorldContRemovalChance to EULxWorldBaseRemovalChance
|
||||||
|
|
||||||
|
if EULxSaveToINI
|
||||||
|
if FileExists "config\Unfound Loot.ini"
|
||||||
|
if GetINIFloat "General:Saved" "Unfound Loot.ini"
|
||||||
|
SetINIFloat "World:ContRemovalChance" EULxWorldContRemovalChance "Unfound Loot.ini"
|
||||||
|
endif
|
||||||
|
endif
|
||||||
|
endif
|
||||||
|
endif
|
||||||
|
|
||||||
end
|
end
|
||||||
|
|||||||
@ -8,7 +8,7 @@ begin function {}
|
|||||||
SetJohnnyOnLimbGoneEventHandler EULxActorBreakOnDecapitation EULxOnLimbGone 0
|
SetJohnnyOnLimbGoneEventHandler EULxActorBreakOnDecapitation EULxOnLimbGone 0
|
||||||
|
|
||||||
if IsModLoaded "JIP MiniMap.esp" == 0
|
if IsModLoaded "JIP MiniMap.esp" == 0
|
||||||
SetJohnnySeenDataEventHandler EULxWorldLootRemovalEnabled EULxOnSeen 0
|
SetJohnnySeenDataEventHandler 1 EULxOnSeen 0
|
||||||
endif
|
endif
|
||||||
|
|
||||||
if GetGameRestarted
|
if GetGameRestarted
|
||||||
|
|||||||
@ -4,7 +4,6 @@ ref rCell
|
|||||||
ref rTemp
|
ref rTemp
|
||||||
ref rItem
|
ref rItem
|
||||||
int iTemp
|
int iTemp
|
||||||
int iPrecalc
|
|
||||||
int bSkip
|
int bSkip
|
||||||
int bUniquesLoaded
|
int bUniquesLoaded
|
||||||
|
|
||||||
@ -12,7 +11,7 @@ array_var aUniques
|
|||||||
|
|
||||||
begin function { rCell }
|
begin function { rCell }
|
||||||
|
|
||||||
if EULxWorldLootRemovalEnabled == 0
|
if EULxWorldBaseRemovalChance == 0 && EULxWorldContRemovalChance == 0
|
||||||
return
|
return
|
||||||
endif
|
endif
|
||||||
|
|
||||||
@ -32,14 +31,18 @@ begin function { rCell }
|
|||||||
|
|
||||||
; Do not call EULxDelootifyCellItems if the cell has no items
|
; Do not call EULxDelootifyCellItems if the cell has no items
|
||||||
|
|
||||||
if GetFirstRefInCell rCell 201 0 0
|
if EULxWorldBaseRemovalChance != 0
|
||||||
set iPrecalc to 1
|
if GetFirstRefInCell rCell 201 0 0
|
||||||
call EULxPrecalculateRemovalChance
|
call EULxPrecalculateRemovalChance EULxWorldBaseRemovalChance
|
||||||
let bUniquesLoaded := 1
|
let bUniquesLoaded := 1
|
||||||
let aUniques := UnfoundLootUniqueStorageRef.GetAllItems
|
let aUniques := UnfoundLootUniqueStorageRef.GetAllItems
|
||||||
call EULxDelootifyCellItems rCell aUniques
|
call EULxDelootifyCellItems rCell aUniques
|
||||||
|
endif
|
||||||
|
endif
|
||||||
|
|
||||||
|
if EULxWorldContRemovalChance == 0
|
||||||
|
return
|
||||||
endif
|
endif
|
||||||
|
|
||||||
|
|
||||||
DebugPrint "Scanning %n (%i) for containers" rCell rCell
|
DebugPrint "Scanning %n (%i) for containers" rCell rCell
|
||||||
|
|
||||||
@ -47,6 +50,10 @@ begin function { rCell }
|
|||||||
|
|
||||||
set rTemp to GetFirstRefInCell rCell 27 0 0
|
set rTemp to GetFirstRefInCell rCell 27 0 0
|
||||||
|
|
||||||
|
if rTemp
|
||||||
|
call EULxPrecalculateRemovalChance EULxWorldContRemovalChance
|
||||||
|
endif
|
||||||
|
|
||||||
while rTemp
|
while rTemp
|
||||||
|
|
||||||
set bSkip to 0
|
set bSkip to 0
|
||||||
@ -97,11 +104,6 @@ begin function { rCell }
|
|||||||
continue
|
continue
|
||||||
endif
|
endif
|
||||||
|
|
||||||
if iPrecalc == 0
|
|
||||||
set iPrecalc to 1
|
|
||||||
call EULxPrecalculateRemovalChance
|
|
||||||
endif
|
|
||||||
|
|
||||||
if bUniquesLoaded == 0
|
if bUniquesLoaded == 0
|
||||||
let bUniquesLoaded := 1
|
let bUniquesLoaded := 1
|
||||||
let aUniques := UnfoundLootUniqueStorageRef.GetAllItems
|
let aUniques := UnfoundLootUniqueStorageRef.GetAllItems
|
||||||
|
|||||||
@ -1,12 +1,13 @@
|
|||||||
scn EULxPrecalculateRemovalChance
|
scn EULxPrecalculateRemovalChance
|
||||||
|
|
||||||
|
int iBaseRemovalChance
|
||||||
float fTemp
|
float fTemp
|
||||||
|
|
||||||
begin function {}
|
begin function { iBaseRemovalChance }
|
||||||
|
|
||||||
set fTemp to (( EULxLuckModifier / 10 ) * playerRef.getAV luck) / 100
|
set fTemp to (( EULxLuckModifier / 10 ) * playerRef.getAV luck) / 100
|
||||||
set fTemp to 1 - fTemp
|
set fTemp to 1 - fTemp
|
||||||
set fTemp to EULxWorldBaseRemovalChance * fTemp
|
set fTemp to iBaseRemovalChance * fTemp
|
||||||
set fTemp to fTemp / 100
|
set fTemp to fTemp / 100
|
||||||
|
|
||||||
;DebugPrint "Base removal chance %g, luck effect %g%% - new base removal chance %g%%" EULxWorldBaseRemovalChance EULxLuckModifier fTemp
|
;DebugPrint "Base removal chance %g, luck effect %g%% - new base removal chance %g%%" EULxWorldBaseRemovalChance EULxLuckModifier fTemp
|
||||||
|
|||||||
@ -22,8 +22,8 @@ begin function { iPreset, bAll }
|
|||||||
|
|
||||||
; World-placed Items
|
; World-placed Items
|
||||||
|
|
||||||
set EULxWorldLootRemovalEnabled to 1
|
|
||||||
set EULxWorldBaseRemovalChance to 85
|
set EULxWorldBaseRemovalChance to 85
|
||||||
|
set EULxWorldContRemovalChance to 85
|
||||||
set EULxWorldSkipLocked to 1
|
set EULxWorldSkipLocked to 1
|
||||||
|
|
||||||
set EULxWorldWeaponRemovalMod to 1.0
|
set EULxWorldWeaponRemovalMod to 1.0
|
||||||
@ -81,6 +81,7 @@ begin function { iPreset, bAll }
|
|||||||
set EULxMaxArmorCondition to 30
|
set EULxMaxArmorCondition to 30
|
||||||
|
|
||||||
set EULxWorldBaseRemovalChance to 95
|
set EULxWorldBaseRemovalChance to 95
|
||||||
|
set EULxWorldContRemovalChance to 95
|
||||||
set EULxWorldArmorRemovalMod to 1.0
|
set EULxWorldArmorRemovalMod to 1.0
|
||||||
set EULxWorldMiscRemovalMod to .80 ;sparse interiors
|
set EULxWorldMiscRemovalMod to .80 ;sparse interiors
|
||||||
set EULxWorldAmmoRemovalMod to 2.0 ;too much ammo as is
|
set EULxWorldAmmoRemovalMod to 2.0 ;too much ammo as is
|
||||||
@ -111,6 +112,7 @@ begin function { iPreset, bAll }
|
|||||||
set EULxWorldSkipLocked to 0
|
set EULxWorldSkipLocked to 0
|
||||||
|
|
||||||
set EULxWorldBaseRemovalChance to 95
|
set EULxWorldBaseRemovalChance to 95
|
||||||
|
set EULxWorldContRemovalChance to 95
|
||||||
set EULxWorldWeaponRemovalMod to 1.5
|
set EULxWorldWeaponRemovalMod to 1.5
|
||||||
set EULxWorldArmorRemovalMod to 0.6
|
set EULxWorldArmorRemovalMod to 0.6
|
||||||
set EULxWorldMiscRemovalMod to 0.33 ; junk doesnt get picked up
|
set EULxWorldMiscRemovalMod to 0.33 ; junk doesnt get picked up
|
||||||
@ -140,6 +142,7 @@ begin function { iPreset, bAll }
|
|||||||
set EULxMaxArmorCondition to 35
|
set EULxMaxArmorCondition to 35
|
||||||
|
|
||||||
set EULxWorldBaseRemovalChance to 66
|
set EULxWorldBaseRemovalChance to 66
|
||||||
|
set EULxWorldContRemovalChance to 66
|
||||||
set EULxWorldWeaponRemovalMod to 1.5
|
set EULxWorldWeaponRemovalMod to 1.5
|
||||||
set EULxWorldCurrencyRemovalMod to 2.0
|
set EULxWorldCurrencyRemovalMod to 2.0
|
||||||
|
|
||||||
@ -159,6 +162,4 @@ begin function { iPreset, bAll }
|
|||||||
|
|
||||||
endif
|
endif
|
||||||
|
|
||||||
call EULxPrecalculateRemovalChance
|
|
||||||
|
|
||||||
end
|
end
|
||||||
@ -131,11 +131,12 @@ begin MenuMode 1013
|
|||||||
|
|
||||||
SetMCMFloat 1 0 "_columns" 2
|
SetMCMFloat 1 0 "_columns" 2
|
||||||
|
|
||||||
call EULxMCMAddElement 4 "Enabled" EULxWorldLootRemovalEnabled
|
call EULxMCMAddElement 0 "Base removal chance" 0
|
||||||
call EULxMCMAddElement 2 "Base removal chance" EULxWorldBaseRemovalChance
|
|
||||||
call EULxMCMAddElement 5 "Skip locked containers" EULxWorldSkipLocked
|
|
||||||
call EULxMCMAddElement 0 "" 0
|
call EULxMCMAddElement 0 "" 0
|
||||||
|
|
||||||
|
call EULxMCMAddElement 2 "World-placed items" EULxWorldBaseRemovalChance
|
||||||
|
call EULxMCMAddElement 2 "Container items" EULxWorldContRemovalChance
|
||||||
|
|
||||||
call EULxMCMAddElement 0 "" 0
|
call EULxMCMAddElement 0 "" 0
|
||||||
call EULxMCMAddElement 0 "" 0
|
call EULxMCMAddElement 0 "" 0
|
||||||
|
|
||||||
@ -151,6 +152,8 @@ begin MenuMode 1013
|
|||||||
call EULxMCMAddElement 2.5 "Meds" EULxWorldMedsRemovalMod
|
call EULxMCMAddElement 2.5 "Meds" EULxWorldMedsRemovalMod
|
||||||
call EULxMCMAddElement 2.5 "Food" EULxWorldFoodRemovalMod
|
call EULxMCMAddElement 2.5 "Food" EULxWorldFoodRemovalMod
|
||||||
call EULxMCMAddElement 2.5 "Misc items" EULxWorldMiscRemovalMod
|
call EULxMCMAddElement 2.5 "Misc items" EULxWorldMiscRemovalMod
|
||||||
|
call EULxMCMAddElement 5 "Skip locked containers" EULxWorldSkipLocked
|
||||||
|
|
||||||
|
|
||||||
elseif iSubMenu == 3
|
elseif iSubMenu == 3
|
||||||
|
|
||||||
@ -254,14 +257,10 @@ begin MenuMode 1013
|
|||||||
|
|
||||||
elseif iSubMenu == 2
|
elseif iSubMenu == 2
|
||||||
|
|
||||||
if iOption == 1
|
if iOption == 3
|
||||||
set EULxWorldLootRemovalEnabled to fValue
|
|
||||||
SetJohnnySeenDataEventHandler fValue EULxOnSeen 0
|
|
||||||
|
|
||||||
elseif iOption == 2
|
|
||||||
set EULxWorldBaseRemovalChance to fValue
|
set EULxWorldBaseRemovalChance to fValue
|
||||||
elseif iOption == 3
|
elseif iOption == 4
|
||||||
set EULxWorldSkipLocked to fValue
|
set EULxWorldContRemovalChance to fValue
|
||||||
|
|
||||||
elseif iOption == 9
|
elseif iOption == 9
|
||||||
set EULxWorldWeaponRemovalMod to fValue
|
set EULxWorldWeaponRemovalMod to fValue
|
||||||
@ -281,6 +280,8 @@ begin MenuMode 1013
|
|||||||
set EULxWorldFoodRemovalMod to fValue
|
set EULxWorldFoodRemovalMod to fValue
|
||||||
elseif iOption == 17
|
elseif iOption == 17
|
||||||
set EULxWorldMiscRemovalMod to fValue
|
set EULxWorldMiscRemovalMod to fValue
|
||||||
|
elseif iOption == 18
|
||||||
|
set EULxWorldSkipLocked to fValue
|
||||||
endif
|
endif
|
||||||
|
|
||||||
elseif iSubMenu == 3
|
elseif iSubMenu == 3
|
||||||
@ -335,8 +336,6 @@ begin MenuMode 1013
|
|||||||
|
|
||||||
endif
|
endif
|
||||||
|
|
||||||
call EULxPrecalculateRemovalChance
|
|
||||||
|
|
||||||
if EULxSaveToINI
|
if EULxSaveToINI
|
||||||
call EULxINISaveSettings
|
call EULxINISaveSettings
|
||||||
endif
|
endif
|
||||||
@ -401,8 +400,10 @@ begin MenuMode 1013
|
|||||||
|
|
||||||
elseif iSubMenu == 2
|
elseif iSubMenu == 2
|
||||||
|
|
||||||
if iOption == 2
|
if iOption == 3
|
||||||
call EULxMCMAddScale "Base removal chance" EULxWorldBaseRemovalChance "%" 0 100 0 1
|
call EULxMCMAddScale "Base removal chance - world items" EULxWorldBaseRemovalChance "%" 0 100 0 1
|
||||||
|
elseif iOption == 4
|
||||||
|
call EULxMCMAddScale "Base removal chance - containers" EULxWorldContRemovalChance "%" 0 100 0 1
|
||||||
|
|
||||||
elseif iOption == 9
|
elseif iOption == 9
|
||||||
call EULxMCMAddScale "Weapon multiplier" EULxWorldWeaponRemovalMod "x" 0 10 1 0.1
|
call EULxMCMAddScale "Weapon multiplier" EULxWorldWeaponRemovalMod "x" 0 10 1 0.1
|
||||||
@ -490,7 +491,9 @@ begin MenuMode 1013
|
|||||||
|
|
||||||
elseif iSubMenu == 2
|
elseif iSubMenu == 2
|
||||||
|
|
||||||
if iOption == 2
|
if iOption == 3
|
||||||
|
SetUIFloat "StartMenu/MCM/_Value" 85
|
||||||
|
elseif iOption == 4
|
||||||
SetUIFloat "StartMenu/MCM/_Value" 85
|
SetUIFloat "StartMenu/MCM/_Value" 85
|
||||||
|
|
||||||
elseif iOption == 9 ; weapons
|
elseif iOption == 9 ; weapons
|
||||||
@ -600,12 +603,10 @@ begin MenuMode 1013
|
|||||||
|
|
||||||
SetUIFloat "StartMenu/MCM/*:9/visible" 1
|
SetUIFloat "StartMenu/MCM/*:9/visible" 1
|
||||||
|
|
||||||
if iMouseover == 1
|
if iMouseover == 3
|
||||||
SetUIString "StartMenu/MCM/*:9/string" "Enable or disable world items reduction."
|
SetUIString "StartMenu/MCM/*:9/string" "Removal chance for world-placed items. We get a random number between 0 and 100 and compare it with 100. If the number is smaller, the item gets removed. Set to 0 to disable."
|
||||||
elseif iMouseover == 2
|
elseif iMouseover == 4
|
||||||
SetUIString "StartMenu/MCM/*:9/string" "Removal chance for world-placed and container items. We get a random number between 0 and 100 and compare it with 100. If the number is smaller, the item gets removed."
|
SetUIString "StartMenu/MCM/*:9/string" "Removal chance for container items. We get a random number between 0 and 100 and compare it with 100. If the number is smaller, the item gets removed. Set to 0 to disable."
|
||||||
elseif iMouseover == 3
|
|
||||||
SetUIString "StartMenu/MCM/*:9/string" "Do not remove items from locked containers."
|
|
||||||
|
|
||||||
elseif iMouseover == 9
|
elseif iMouseover == 9
|
||||||
SetUIStringEx "StartMenu/MCM/*:9/string" "Removal chance multiplier for weapons. Higher = greater chance of these items being removed."
|
SetUIStringEx "StartMenu/MCM/*:9/string" "Removal chance multiplier for weapons. Higher = greater chance of these items being removed."
|
||||||
@ -628,6 +629,9 @@ begin MenuMode 1013
|
|||||||
elseif iMouseover == 17
|
elseif iMouseover == 17
|
||||||
SetUIString "StartMenu/MCM/*:9/string" "Removal chance multiplier for misc items. Higher = greater chance of these items being removed."
|
SetUIString "StartMenu/MCM/*:9/string" "Removal chance multiplier for misc items. Higher = greater chance of these items being removed."
|
||||||
|
|
||||||
|
elseif iMouseover == 18
|
||||||
|
SetUIString "StartMenu/MCM/*:9/string" "Do not remove items from locked containers."
|
||||||
|
|
||||||
else
|
else
|
||||||
SetUIFloat "StartMenu/MCM/*:9/visible" 0
|
SetUIFloat "StartMenu/MCM/*:9/visible" 0
|
||||||
endif
|
endif
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user