1
artifact-tracker/Source/Scripts/ETR_TrackNewItems.psc

83 lines
3.7 KiB
Plaintext
Raw Normal View History

2022-06-16 12:02:24 +00:00
Scriptname ETR_TrackNewItems extends ReferenceAlias
Actor Property PlayerRef Auto
FormList Property ETR_ItemsNew Auto
FormList Property ETR_ItemsFound Auto
FormList Property ETR_ItemsStored Auto
FormList Property ETR_ExcludeFromNew Auto
FormList Property ETR_PersistentStorageList Auto
event OnInit()
if Game.GetModByName("HearthFires.esm") < 255 && Game.GetModByName("Enderal - Forgotten Stories.esm") == 255
ETR_ExcludeFromNew.AddForm(Game.GetFormFromFile(0x807, "HearthFires.esm")) ; BYOHHouseCraftingCategorySmithing
endif
OnPlayerLoadGame()
endevent
event OnPlayerLoadGame()
AddInventoryEventFilter(ETR_ItemsNew)
if skse.GetPluginVersion("Ahzaab's moreHUD Plugin") >= 30800
ahzmorehud.RegisterIconFormList("dbmNew", ETR_ItemsNew)
ahzmorehud.RegisterIconFormList("dbmFound", ETR_ItemsFound)
ahzmorehud.RegisterIconFormList("dbmDisp", ETR_ItemsStored)
endif
if skse.GetPluginVersion("Ahzaab's moreHUD Inventory Plugin") >= 10017
ahzmorehudie.RegisterIconFormList("dbmNew", ETR_ItemsNew)
ahzmorehudie.RegisterIconFormList("dbmFound", ETR_ItemsFound)
ahzmorehudie.RegisterIconFormList("dbmDisp", ETR_ItemsStored)
endif
; Rebuild all lists to avoid discrepancies, stale data, and broken records
ETR_ItemsStored.Revert()
2022-06-19 20:35:56 +00:00
ETR_Functions.AddItemsOfTypeAndKeywordToList(ETR_PersistentStorageList, ETR_ItemsStored, 26, None, ETR_ExcludeFromNew)
ETR_Functions.AddItemsOfTypeAndKeywordToList(ETR_PersistentStorageList, ETR_ItemsStored, 41, None, ETR_ExcludeFromNew)
ETR_Functions.AddItemsOfTypeAndKeywordToList(ETR_PersistentStorageList, ETR_ItemsStored, 27, None, ETR_ExcludeFromNew)
ETR_Functions.AddItemsOfTypeAndKeywordToList(ETR_PersistentStorageList, ETR_ItemsStored, 32, None, ETR_ExcludeFromNew)
2022-06-16 12:02:24 +00:00
ETR_ItemsFound.Revert()
2022-06-19 20:35:56 +00:00
ETR_Functions.AddItemsOfTypeAndKeywordToList(PlayerRef, ETR_ItemsFound, 26, None, ETR_ExcludeFromNew, false, false, false)
ETR_Functions.AddItemsOfTypeAndKeywordToList(PlayerRef, ETR_ItemsFound, 41, None, ETR_ExcludeFromNew, false, false, false)
ETR_Functions.AddItemsOfTypeAndKeywordToList(PlayerRef, ETR_ItemsFound, 27, None, ETR_ExcludeFromNew, false, false, false)
ETR_Functions.AddItemsOfTypeAndKeywordToList(PlayerRef, ETR_ItemsFound, 32, None, ETR_ExcludeFromNew, false, false, false)
2022-06-16 12:02:24 +00:00
2022-06-19 20:35:56 +00:00
Actor[] aFollowers = ETR_Functions.GetPlayerFollowers()
2022-06-16 12:02:24 +00:00
int i = aFollowers.length
while i > 0
i -= 1
if ! aFollowers[i].IsDead() && ! aFollowers[i].IsDisabled()
2022-06-19 20:35:56 +00:00
ETR_Functions.AddItemsOfTypeAndKeywordToList(aFollowers[i], ETR_ItemsFound, 26, None, ETR_ExcludeFromNew, false, false, false)
ETR_Functions.AddItemsOfTypeAndKeywordToList(aFollowers[i], ETR_ItemsFound, 41, None, ETR_ExcludeFromNew, false, false, false)
ETR_Functions.AddItemsOfTypeAndKeywordToList(aFollowers[i], ETR_ItemsFound, 27, None, ETR_ExcludeFromNew, false, false, false)
ETR_Functions.AddItemsOfTypeAndKeywordToList(aFollowers[i], ETR_ItemsFound, 32, None, ETR_ExcludeFromNew, false, false, false)
2022-06-16 12:02:24 +00:00
endif
endwhile
ETR_ItemsNew.Revert()
2022-06-19 20:35:56 +00:00
ETR_Functions.AddAllFormsToList(ETR_ItemsNew, 26, None, ETR_ExcludeFromNew) ; armor
ETR_Functions.AddAllFormsToList(ETR_ItemsNew, 41, None, ETR_ExcludeFromNew) ; weapons
ETR_Functions.AddAllFormsToList(ETR_ItemsNew, 27, None, ETR_ExcludeFromNew) ; books
ETR_Functions.AddAllFormsToList(ETR_ItemsNew, 32, None, ETR_ExcludeFromNew) ; misc items
2022-06-16 12:02:24 +00:00
endevent
event OnItemAdded(Form akBaseItem, int aiItemCount, ObjectReference akItemReference, ObjectReference akSourceContainer)
ETR_ItemsNew.RemoveAddedForm(akBaseItem)
ETR_ItemsFound.AddForm(akBaseItem)
ETR_ItemsStored.RemoveAddedForm(akBaseItem)
Debug.Notification("New artifact acquired: " + akBaseItem.GetName())
endevent