Split the _00E_Game_SkillmenuSC alias into three separate quests, removed the Hero Menu hotkey setting
This commit is contained in:
parent
4e2e2166c6
commit
d4cda7ea92
BIN
Separate affinity quest.esp
Normal file
BIN
Separate affinity quest.esp
Normal file
Binary file not shown.
BIN
Separate hero menu.esp
Normal file
BIN
Separate hero menu.esp
Normal file
Binary file not shown.
BIN
Separate meditation hotkey.esp
Normal file
BIN
Separate meditation hotkey.esp
Normal file
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
BIN
scripts/_00e_heromenualias.pex
Normal file
BIN
scripts/_00e_heromenualias.pex
Normal file
Binary file not shown.
BIN
scripts/_00e_meditationhotkeyalias.pex
Normal file
BIN
scripts/_00e_meditationhotkeyalias.pex
Normal file
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
@ -4,24 +4,23 @@ Scriptname _00E_EnderalMCM extends SKI_ConfigBase
|
||||
; EVENTS
|
||||
;=====================================================================================
|
||||
|
||||
int function _GetScriptVersion() Global
|
||||
return 1
|
||||
endFunction
|
||||
|
||||
Event OnPageReset(string page)
|
||||
|
||||
If _00E_ConfigMenu_Meditate == None
|
||||
_00E_ConfigMenu_Meditate = Game.GetFormFromFile(0x00046D98, "Skyrim.esm") as Message
|
||||
EndIf
|
||||
If _00E_FS_IsForgottenStoriesActivated == None
|
||||
_00E_FS_IsForgottenStoriesActivated = Game.GetFormFromFile(0x0004320E, "Skyrim.esm") as GlobalVariable
|
||||
EndIf
|
||||
|
||||
; adding options to rebind new key options: 1) Hero menu 2) meditation 3) Phasmalist summon apparition 4) Horseflute
|
||||
SetCursorFillMode(TOP_TO_BOTTOM)
|
||||
AddHeaderOption(_00E_ConfigMenu_Keybindings.GetName())
|
||||
iKeyID = self.AddKeyMapOption(_00E_ConfigMenu_OpenHeroMenu.GetName(), iHeroMenuKeymap, 0)
|
||||
iKeyMeditateID = self.AddKeyMapOption(_00E_ConfigMenu_Meditate.GetName(), Player.iMeditateKeycode, 0)
|
||||
If _00E_FS_IsForgottenStoriesActivated.GetValueInt() == 1
|
||||
iKeyID02 = self.AddKeyMapOption(_00E_FS_ConfigMenu_Phasmalist_Teleport.GetName(), iFSPhasmalistTeleportKeymap, 0)
|
||||
iKeyMountID = self.AddKeyMapOption(_00E_FS_ConfigMenu_Mount_Teleport.GetName(), iFSMountTeleportKeymap, 0)
|
||||
EndIf
|
||||
SetCursorFillMode(TOP_TO_BOTTOM)
|
||||
|
||||
AddHeaderOption(_00E_ConfigMenu_Keybindings.GetName())
|
||||
iKeyMeditateID = self.AddKeyMapOption(_00E_ConfigMenu_Meditate.GetName(), PlayerMeditation.iMeditateKeycode, 0)
|
||||
iKeyID02 = self.AddKeyMapOption(_00E_FS_ConfigMenu_Phasmalist_Teleport.GetName(), iFSPhasmalistTeleportKeymap, 0)
|
||||
iKeyMountID = self.AddKeyMapOption(_00E_FS_ConfigMenu_Mount_Teleport.GetName(), iFSMountTeleportKeymap, 0)
|
||||
|
||||
; adding gameplay options to enable / disable: 1) read aloud books 2) videos skip
|
||||
AddHeaderOption(_00E_ConfigMenu_GameplayOptions.GetName())
|
||||
@ -43,16 +42,10 @@ EndEvent
|
||||
; this event is responsible for assigning new keys, and passes the information to the respecitive scripts that registers for the key
|
||||
Event OnOptionKeyMapChange(int option, int keyCode, string conflictControl, string conflictName)
|
||||
|
||||
If option == iKeyID
|
||||
|
||||
iHeroMenuKeymap = keyCode
|
||||
self.SetKeyMapOptionValue(iKeyID, iHeroMenuKeymap, false)
|
||||
Player.SetHeroMenuKey(iHeroMenuKeymap)
|
||||
|
||||
ElseIf option == iKeyMeditateID
|
||||
If option == iKeyMeditateID
|
||||
|
||||
self.SetKeyMapOptionValue(iKeyMeditateID, keyCode, false)
|
||||
Player.SetMeditateKey(keyCode)
|
||||
PlayerMeditation.SetMeditateKey(keyCode)
|
||||
|
||||
ElseIf option == iKeyID02
|
||||
|
||||
@ -94,9 +87,7 @@ EndEvent
|
||||
; the information is located in the Language_Translate.txt
|
||||
Event OnOptionHighlight(int option)
|
||||
|
||||
If option == iKeyID
|
||||
SetInfoText("$ConfigMenuKeyInfo")
|
||||
ElseIf option == iKeyMeditateID
|
||||
If option == iKeyMeditateID
|
||||
SetInfoText("$ConfigMenuKeyInfo")
|
||||
ElseIf option == iKeyID02
|
||||
SetInfoText("$ConfigMenuKeyInfo")
|
||||
@ -135,14 +126,10 @@ EndFunction
|
||||
; PROPERTIES
|
||||
;=====================================================================================
|
||||
|
||||
_00E_Game_SkillmenuSC Property Player Auto
|
||||
|
||||
int iKeyID
|
||||
Int iKeyMeditateID
|
||||
int iKeyID02
|
||||
int iKeyMountID
|
||||
;int iMeditateKeycode = 21
|
||||
int iHeroMenuKeymap = 35
|
||||
int iFSPhasmalistTeleportKeymap = 34
|
||||
int iFSMountTeleportKeymap = 38
|
||||
int toggleOID_MenuTutorials
|
||||
@ -156,7 +143,6 @@ int toggleOID_VideoSkip
|
||||
Message Property _00E_ConfigMenu_Keybindings Auto
|
||||
Message Property _00E_ConfigMenu_OtherOptions Auto
|
||||
Message Property _00E_ConfigMenu_GameplayOptions Auto
|
||||
Message Property _00E_ConfigMenu_OpenHeroMenu Auto
|
||||
Message Property _00E_ConfigMenu_Meditate Auto
|
||||
Message Property _00E_FS_ConfigMenu_Phasmalist_Teleport Auto
|
||||
Message Property _00E_FS_ConfigMenu_Mount_Teleport Auto
|
||||
@ -171,7 +157,6 @@ Message Property _00E_ConfigMenu_VideoSkip Auto
|
||||
_FS_Phasmalist_ControlQuest Property controlQuest Auto
|
||||
_00E_Horseflute_SC Property _00E_HorseFlute_New Auto
|
||||
|
||||
GlobalVariable Property _00E_FS_IsForgottenStoriesActivated Auto
|
||||
GlobalVariable Property _00E_DisableMenuTutorials Auto
|
||||
GlobalVariable Property _00E_DisableCraftingTutorials Auto
|
||||
GlobalVariable Property _00E_DisableSkillTutorials Auto
|
||||
@ -179,3 +164,4 @@ GlobalVariable Property _00E_DisableQuestTutorials Auto
|
||||
GlobalVariable Property _00E_DisableOtherTutorials Auto
|
||||
GlobalVariable Property _00E_DisableReadAloudBooks Auto
|
||||
GlobalVariable Property _00E_VideoSkip Auto
|
||||
_00E_MeditationHotkeyAlias Property PlayerMeditation Auto
|
||||
|
@ -197,12 +197,6 @@ State RealPlayer
|
||||
EndWhile
|
||||
EndIf
|
||||
|
||||
If bShowHeroMenuHelpBox && (_00E_DisableMenuTutorials.GetValueInt() == 0)
|
||||
bShowHeroMenuHelpBox = False
|
||||
Message.ResetHelpMessage("Empty")
|
||||
_00E_Tutorial_HeroMenue.ShowAsHelpMessage("Empty", 7, 30, 1)
|
||||
EndIf
|
||||
|
||||
RegisterForSingleUpdate(3.5) ; seems like a decent value
|
||||
EndEvent
|
||||
|
||||
@ -279,11 +273,6 @@ function levelUp()
|
||||
Player.SetActorValue("Stamina", Player.GetBaseActorValue("Stamina")+11)
|
||||
endif
|
||||
|
||||
Int iPlayerLevel = PlayerLevel.GetValueInt()
|
||||
If iPlayerLevel >= 2 && iPlayerLevel <= 5
|
||||
bShowHeroMenuHelpBox = True
|
||||
EndIf
|
||||
|
||||
Endfunction
|
||||
|
||||
bool function receiveEP(int amount)
|
||||
@ -428,7 +417,6 @@ Sound Property UILevelUp Auto
|
||||
|
||||
bool isdead
|
||||
Bool ShowEXPMessage
|
||||
bool bShowHeroMenuHelpBox = false
|
||||
bool bDoneQuestCompleted = false
|
||||
bool bDoneArcanistsFever = false
|
||||
bool bOreAchievementUnlocked = false
|
||||
|
@ -7,68 +7,21 @@ Scriptname _00E_Game_SkillmenuSC extends ReferenceAlias
|
||||
;
|
||||
;
|
||||
|
||||
Import Math
|
||||
Import ActorValueInfo
|
||||
Import _00E_QuestFunctions
|
||||
|
||||
int function _GetScriptVersion() Global
|
||||
return 1
|
||||
endFunction
|
||||
|
||||
; This script handles the custom character menu
|
||||
|
||||
;=====================================================================================
|
||||
; EVENTS
|
||||
;=====================================================================================
|
||||
|
||||
Event OnInit()
|
||||
|
||||
iCurrentAffinityIndex = -1
|
||||
InitAffinitySystem()
|
||||
|
||||
InitializeActorValueInfos()
|
||||
UpdateKeyRegistration()
|
||||
RegisterForMenu("Journal Menu")
|
||||
|
||||
EndEvent
|
||||
|
||||
Event OnPlayerLoadGame()
|
||||
|
||||
InitAffinitySystem()
|
||||
UpdateKeyRegistration()
|
||||
RegisterForMenu("Journal Menu")
|
||||
|
||||
EndEvent
|
||||
|
||||
Event OnKeyDown(Int KeyCode)
|
||||
|
||||
If KeyCode == iHeroMenuKeycode || (MenuOpen && (KeyCode == iExitHeroMenuKeycode1 || KeyCode == iExitHeroMenuKeycode2))
|
||||
If !MenuOpen
|
||||
If Utility.IsInMenuMode() == False && UI.IsTextInputEnabled() == False && PlayerREF.GetCurrentLocation() != _00E_Dreamworld_Location && bReadyToOpen
|
||||
bReadyToOpen = False
|
||||
InitializeActorValueInfos()
|
||||
OpenSkillmenu()
|
||||
Utility.Wait(0.5)
|
||||
bReadyToOpen = True
|
||||
EndIf
|
||||
Else ; MenuOpen
|
||||
CloseSkillmenu()
|
||||
EndIf
|
||||
|
||||
ElseIf KeyCode == iMeditateKeycode
|
||||
Spell meditateSpell = _00E_Class_Meditate.GetNthSpell(0)
|
||||
|
||||
If PlayerREF.HasSpell(_00E_Class_Meditate) && Utility.IsInMenuMode() == False && UI.IsTextInputEnabled() == False && PlayerRef.IsOnMount() == False && Game.IsLookingControlsEnabled() == true && UI.IsMenuOpen("Dialogue Menu") == False && PlayerREF.GetCurrentLocation() != _00E_Dreamworld_Location
|
||||
meditateSpell.Cast(PlayerREF, PlayerREF)
|
||||
EndIf
|
||||
EndIf
|
||||
|
||||
EndEvent
|
||||
|
||||
Event OnMenuClose(String MenuName)
|
||||
|
||||
UpdateKeyRegistration()
|
||||
|
||||
EndEvent
|
||||
|
||||
|
||||
@ -76,194 +29,6 @@ EndEvent
|
||||
; FUNCTIONS
|
||||
;=====================================================================================
|
||||
|
||||
Function _UpdateExitHeroMenuKeyRegistration(Int iExitKeycode)
|
||||
If iExitKeycode != iHeroMenuKeycode && iExitKeycode != iMeditateKeycode
|
||||
If MenuOpen
|
||||
RegisterForKey(iExitKeycode)
|
||||
Else
|
||||
UnregisterForKey(iExitKeycode)
|
||||
EndIf
|
||||
EndIf
|
||||
EndFunction
|
||||
|
||||
Function UpdateKeyRegistration()
|
||||
RegisterForKey(iHeroMenuKeycode)
|
||||
|
||||
RegisterForKey(iMeditateKeycode)
|
||||
bMeditateKeyRegistered = True
|
||||
|
||||
_UpdateExitHeroMenuKeyRegistration(iExitHeroMenuKeycode1)
|
||||
_UpdateExitHeroMenuKeyRegistration(iExitHeroMenuKeycode2)
|
||||
EndFunction
|
||||
|
||||
Function SetHeroMenuKey(int iNewKeyCode)
|
||||
UnregisterForKey(iHeroMenuKeycode)
|
||||
iHeroMenuKeycode = iNewKeyCode
|
||||
UpdateKeyRegistration()
|
||||
EndFunction
|
||||
|
||||
Function SetMeditateKey(int iNewMeditateKeycode)
|
||||
UnregisterForKey(iMeditateKeycode)
|
||||
iMeditateKeycode = iNewMeditateKeycode
|
||||
UpdateKeyRegistration()
|
||||
EndFunction
|
||||
|
||||
Function InitializeActorValueInfos()
|
||||
|
||||
AiHealth = GetActorValueInfoByID(24)
|
||||
AiStamina = GetActorValueInfoByID(26)
|
||||
AiMagicka = GetActorValueInfoByID(25)
|
||||
|
||||
AiRanged = GetActorValueInfoByID(8)
|
||||
AiLightArmor = GetActorValueInfoByID(12)
|
||||
AiPsionics = GetActorValueInfoByID(21) ; Vanilla - Illusion
|
||||
AiElementarism = GetActorValueInfoByID(20); Vanilla - Destruction
|
||||
AiManipulation = GetActorValueInfoByID(18); Vanilla - Alteration
|
||||
AiOneHanded = GetActorValueInfoByID(6) ; Vanilla - OneHanded
|
||||
AiTwoHanded = GetActorValueInfoByID(7) ; Vanilla - TwoHanded
|
||||
AiParry = GetActorValueInfoByID(9) ; Vanilla - Block
|
||||
AiLightMagic = GetActorValueInfoByID(22) ; Vanilla - Restoration
|
||||
AiEntrophy = GetActorValueInfoByID(19) ; Vanilla - Conjuration
|
||||
AiHeavyArmor = GetActorValueInfoByID(11) ; Vanilla - HeavyArmor
|
||||
AiSneak = GetActorValueInfoByID(15) ; Vanilla - Sneak
|
||||
|
||||
AiAlchemy = GetActorValueInfoByID(16) ; Vanilla - Alchemy
|
||||
AiPickpocket = GetActorValueInfoByID(13) ; Vanilla - Pickpocket
|
||||
AiEnchanting = GetActorValueInfoByID(23) ; Vanilla - Enchanting
|
||||
AiLockpicking = GetActorValueInfoByID(14) ; Vanilla - Lockpicking
|
||||
AiSmithing = GetActorValueInfoByID(10) ; Vanilla - Smithing
|
||||
AiSpeechcraft = GetActorValueInfoByID(17) ; Vanilla - Speechcraft
|
||||
|
||||
EndFunction
|
||||
|
||||
Function OpenSkillmenu()
|
||||
|
||||
If PlayerREF.GetCurrentLocation() != _00E_Dreamworld_Location
|
||||
MenuOpen = True
|
||||
|
||||
_00E_Game_MenuIMOD.Apply()
|
||||
UI.OpenCustomMenu("00E_heromenu")
|
||||
UI.InvokeStringA("CustomMenu", "_root.heromenu_mc.SetStringValues", GetStrings())
|
||||
UI.InvokeFloatA("CustomMenu", "_root.heromenu_mc.SetIntValues", GetFloats())
|
||||
UI.InvokeFloatA("CustomMenu", "_root.heromenu_mc.SetModifier", GetMods())
|
||||
EndIf
|
||||
|
||||
EndFunction
|
||||
|
||||
Function CloseSkillmenu()
|
||||
|
||||
UI.CloseCustomMenu()
|
||||
_00E_Game_MenuIMOD.Remove()
|
||||
MenuOpen = False
|
||||
|
||||
EndFunction
|
||||
|
||||
Float[] Function GetFloats()
|
||||
|
||||
Float[] SkillmenuFloats = New Float[33]
|
||||
|
||||
; float fNeededEXP = ((pow((PlayerLevel.GetValueInt() + 1), EXPMultSlope.GetValue()) * EXPMult.GetValue()) - (pow(PlayerLevel.GetValueInt(), EXPMultSlope.GetValue()) * EXPMult.GetValue()))
|
||||
|
||||
int iPlayerLevel = PlayerLevel.GetValueInt()
|
||||
float fEXPMultSlope = EXPMultSlope.GetValue()
|
||||
float fEXPMult = EXPMult.GetValue()
|
||||
float fEXPNeededForCurrentLevel = PlayerREF.ComputeNeededExp(iPlayerLevel - 1, fEXPMultSlope, fEXPMult)
|
||||
float fEXPNeededForNextLevel = PlayerREF.ComputeNeededExp(iPlayerLevel, fEXPMultSlope, fEXPMult)
|
||||
int iPlayerExp = PlayerExp.GetValueInt()
|
||||
|
||||
SkillmenuFloats[0] = (AiHealth.GetBaseValue(PlayerREF)) as Int
|
||||
SkillmenuFloats[1] = AiHealth.GetCurrentValue(PlayerREF) as Int
|
||||
SkillmenuFloats[2] = aiMagicka.GetBaseValue(PlayerREF) as Int
|
||||
SkillmenuFloats[3] = aiMagicka.GetCurrentValue(PlayerREF) as Int
|
||||
SkillmenuFloats[4] = aiStamina.GetBaseValue(PlayerREF) as Int
|
||||
SkillmenuFloats[5] = aiStamina.GetCurrentValue(PlayerREF) as Int
|
||||
SkillmenuFloats[6] = (-1*(PlayerREF.GetActorValue("LastFlattered"))) as Int
|
||||
SkillmenuFloats[7] = fEXPNeededForNextLevel
|
||||
; (pow(PlayerLevel.GetValueInt(), EXPMultSlope.GetValue()) * (EXPMult.GetValue()*fEXPAcceleration))
|
||||
;SkillmenuFloats[7] = ((pow((PlayerLevel.GetValueInt()), EXPMultSlope.GetValue()) * EXPMult.GetValue()) - (pow(PlayerLevel.GetValueInt() - 1, EXPMultSlope.GetValue()) * EXPMult.GetValue())) as Float
|
||||
SkillmenuFloats[8] = iPlayerExp
|
||||
SkillmenuFloats[9] = iPlayerLevel
|
||||
SkillmenuFloats[10] = Lernpunkte.GetValueInt()
|
||||
SkillmenuFloats[11] = Handwerkspunkte.GetValueInt()
|
||||
SkillmenuFloats[12] = TalentPoints.GetValueInt()
|
||||
SkillmenuFloats[13] = aiPsionics.GetBaseValue(PlayerREF) as Int
|
||||
SkillmenuFloats[14] = aiElementarism.GetBaseValue(PlayerREF) as Int
|
||||
SkillmenuFloats[15] = aiManipulation.GetBaseValue(PlayerREF) as Int
|
||||
SkillmenuFloats[16] = aiOneHanded.GetBaseValue(PlayerREF) as Int
|
||||
SkillmenuFloats[17] = aiParry.GetBaseValue(PlayerREF) as Int
|
||||
SkillmenuFloats[18] = aiRanged.GetBaseValue(PlayerREF) as Int
|
||||
SkillmenuFloats[19] = aiEntrophy.GetBaseValue(PlayerREF) as Int
|
||||
SkillmenuFloats[20] = aiLightMagic.GetBaseValue(PlayerREF) as Int
|
||||
SkillmenuFloats[21] = aiTwoHanded.GetBaseValue(PlayerREF) as Int
|
||||
SkillmenuFloats[22] = aiLightArmor.GetBaseValue(PlayerREF) as Int
|
||||
SkillmenuFloats[23] = aiHeavyArmor.GetBaseValue(PlayerREF) as Int
|
||||
SkillmenuFloats[24] = aiSneak.GetBaseValue(PlayerREF) as Int
|
||||
SkillmenuFloats[25] = aiAlchemy.GetBaseValue(PlayerREF) as Int
|
||||
SkillmenuFloats[26] = aiPickpocket.GetBaseValue(PlayerREF) as Int
|
||||
SkillmenuFloats[27] = aiLockpicking.GetBaseValue(PlayerREF) as Int
|
||||
SkillmenuFloats[28] = aiEnchanting.GetBaseValue(PlayerREF) as Int
|
||||
SkillmenuFloats[29] = aiSmithing.GetBaseValue(PlayerREF) as Int
|
||||
SkillmenuFloats[30] = aiSpeechcraft.GetBaseValue(PlayerREF) as Int
|
||||
|
||||
; 31 Ist der Füllstand des Balkens (Beginnend bei 0)
|
||||
; 32 ist der Maximalwert des Balkens (Für gefüllten Balken)
|
||||
SkillmenuFloats[31] = iPlayerExp - fEXPNeededForCurrentLevel
|
||||
SkillmenuFloats[32] = fEXPNeededForNextLevel - fEXPNeededForCurrentLevel
|
||||
; if PlayerExp.GetValueInt() == 1
|
||||
; SkillmenuFloats[31] = PlayerExp.GetValueInt()
|
||||
; SkillmenuFloats[32] = (pow(1, EXPMultSlope.GetValue()) * EXPMult.GetValue())
|
||||
; Else
|
||||
; SkillmenuFloats[31] = (PlayerExp.GetValueInt()-(pow((PlayerLevel.GetValueInt() - 1), EXPMultSlope.GetValue()) * EXPMult.GetValue()))
|
||||
; SkillmenuFloats[32] = (pow(PlayerLevel.GetValueInt(), EXPMultSlope.GetValue()) * EXPMult.GetValue()) - (pow((PlayerLevel.GetValueInt() - 1), EXPMultSlope.GetValue()) * EXPMult.GetValue())
|
||||
; EndIf
|
||||
|
||||
Return SkillmenuFloats
|
||||
|
||||
EndFunction
|
||||
|
||||
Float[] Function GetMods()
|
||||
|
||||
; Gets all modifiers applied to stats and skills
|
||||
|
||||
Float[] SkillmenuMods = New Float[21]
|
||||
|
||||
SkillmenuMods[0] = ((aiHealth.GetMaximumValue(PlayerREF) as Int) - (aiHealth.GetBaseValue(PlayerREF) as Int))
|
||||
SkillmenuMods[1] = ((aiMagicka.GetMaximumValue(PlayerREF) as Int) - aiMagicka.GetBaseValue(PlayerREF) as Int)
|
||||
SkillmenuMods[2] = ((aiStamina.GetMaximumValue(PlayerREF) as Int) - aiStamina.GetBaseValue(PlayerREF) as Int)
|
||||
SkillmenuMods[3] = ((aiPsionics.GetCurrentValue(PlayerREF) as Int) - aiPsionics.GetBaseValue(PlayerREF) as Int)
|
||||
SkillmenuMods[4] = ((aiElementarism.GetCurrentValue(PlayerREF) as Int) - aiElementarism.GetBaseValue(PlayerREF) as Int)
|
||||
SkillmenuMods[5] = ((aiManipulation.GetCurrentValue(PlayerREF) as Int) - aiManipulation.GetBaseValue(PlayerREF) as Int)
|
||||
SkillmenuMods[6] = ((aiOneHanded.GetCurrentValue(PlayerREF) as Int) - aiOneHanded.GetBaseValue(PlayerREF) as Int)
|
||||
SkillmenuMods[7] = ((aiParry.GetCurrentValue(PlayerREF) as Int) - aiParry.GetBaseValue(PlayerREF) as Int)
|
||||
SkillmenuMods[8] = ((aiRanged.GetCurrentValue(PlayerREF) as Int) - aiRanged.GetBaseValue(PlayerREF) as Int)
|
||||
SkillmenuMods[9] = ((aiEntrophy.GetCurrentValue(PlayerREF) as Int) - aiEntrophy.GetBaseValue(PlayerREF) as Int)
|
||||
SkillmenuMods[10] = ((aiLightMagic.GetCurrentValue(PlayerREF) as Int) - aiLightMagic.GetBaseValue(PlayerREF) as Int)
|
||||
SkillmenuMods[11] = ((aiTwoHanded.GetCurrentValue(PlayerREF) as Int) - aiTwoHanded.GetBaseValue(PlayerREF) as Int)
|
||||
SkillmenuMods[12] = ((aiLightArmor.GetCurrentValue(PlayerREF) as Int) - aiLightArmor.GetBaseValue(PlayerREF) as Int)
|
||||
SkillmenuMods[13] = ((aiHeavyArmor.GetCurrentValue(PlayerREF) as Int) - aiHeavyArmor.GetBaseValue(PlayerREF) as Int)
|
||||
SkillmenuMods[14] = ((aiSneak.GetCurrentValue(PlayerREF) as Int) - aiSneak.GetBaseValue(PlayerREF) as Int)
|
||||
SkillmenuMods[15] = ((aiAlchemy.GetCurrentValue(PlayerREF) as Int) - aiAlchemy.GetBaseValue(PlayerREF) as Int)
|
||||
SkillmenuMods[16] = ((aiPickpocket.GetCurrentValue(PlayerREF) as Int) - aiPickpocket.GetBaseValue(PlayerREF) as Int)
|
||||
SkillmenuMods[17] = ((aiLockpicking.GetCurrentValue(PlayerREF) as Int) - aiLockpicking.GetBaseValue(PlayerREF) as Int)
|
||||
SkillmenuMods[18] = ((aiEnchanting.GetCurrentValue(PlayerREF) as Int) - aiEnchanting.GetBaseValue(PlayerREF) as Int)
|
||||
SkillmenuMods[19] = ((aiSmithing.GetCurrentValue(PlayerREF) as Int) - aiSmithing.GetBaseValue(PlayerREF) as Int)
|
||||
SkillmenuMods[20] = ((aiSpeechcraft.GetCurrentValue(PlayerREF) as Int) - aiSpeechcraft.GetBaseValue(PlayerREF) as Int)
|
||||
|
||||
Return SkillmenuMods
|
||||
|
||||
EndFunction
|
||||
|
||||
String[] Function GetStrings()
|
||||
|
||||
String[] SkillmenuStrings = new string[2]
|
||||
|
||||
SkillmenuStrings[0] = Player.GetName()
|
||||
SkillmenuStrings[1] = GetPlayerClassName()
|
||||
|
||||
Return SkillmenuStrings
|
||||
|
||||
EndFunction
|
||||
|
||||
Int Function RegisterPerkTree(int index, FormList perkTree, Message affinityName_Male, Message affinityName_Female)
|
||||
PerkTree_Trees[index] = perkTree
|
||||
PerkTree_AffinityNames_Male[index] = affinityName_Male
|
||||
@ -282,8 +47,6 @@ Function InitAffinitySystem()
|
||||
|
||||
BlockClassUpdates = True
|
||||
|
||||
Bool isFS = (_00E_FS_IsForgottenStoriesActivated.GetValueInt() == 1)
|
||||
|
||||
; Perk trees
|
||||
PerkTree_Trees = New FormList[12]
|
||||
PerkTree_AffinityNames_Male = New Message[12]
|
||||
@ -302,13 +65,8 @@ Function InitAffinitySystem()
|
||||
PerkTree_TrickeryIndex = RegisterPerkTree( 8, TrickeryPerks, _00E_Game_TrickeryName, _00E_Game_TrickeryName_Female)
|
||||
PerkTree_VagabondIndex = RegisterPerkTree( 9, VagabondPerks, _00E_Game_VagabondName, _00E_Game_VagabondName_Female)
|
||||
|
||||
If isFS
|
||||
PerkTree_PhasmalistIndex = RegisterPerkTree(10, FS_PhasmalistPerks, _00E_FS_Game_PhasmalistName, _00E_FS_Game_PhasmalistName_Female)
|
||||
PerkTree_TheriantrophistIndex = RegisterPerkTree(11, FS_TheriantrophistPerks, _00E_FS_Game_TheriantrophistName, _00E_FS_Game_TheriantrophistName_Female)
|
||||
Else
|
||||
PerkTree_PhasmalistIndex = 10
|
||||
PerkTree_TheriantrophistIndex = 11
|
||||
EndIf
|
||||
PerkTree_PhasmalistIndex = RegisterPerkTree(10, FS_PhasmalistPerks, _00E_FS_Game_PhasmalistName, _00E_FS_Game_PhasmalistName_Female)
|
||||
PerkTree_TheriantrophistIndex = RegisterPerkTree(11, FS_TheriantrophistPerks, _00E_FS_Game_TheriantrophistName, _00E_FS_Game_TheriantrophistName_Female)
|
||||
|
||||
; Affinities
|
||||
Affinity_Spells = New Spell[21]
|
||||
@ -330,29 +88,16 @@ Function InitAffinitySystem()
|
||||
Affinity_WanderingMageIndex = 10
|
||||
; Affinity_WanderingMageIndex = RegisterAffinity(10, __Config_AffinityAbs[10], , )
|
||||
|
||||
If isFS
|
||||
Affinity_SpectralistIndex = RegisterAffinity(11, _00E_FS_Affinity_AbRitualist, _00E_FS_Game_Affinity_Spectralist, _00E_FS_Game_Affinity_Spectralist_Female)
|
||||
Affinity_GhostBladeIndex = RegisterAffinity(12, _00E_FS_Affinity_AbGhostblade, _00E_FS_Game_Affinity_GhostBlade, _00E_FS_Game_Affinity_GhostBlade_Female)
|
||||
Affinity_SpectralWarriorIndex = RegisterAffinity(13, _00E_FS_Affinity_AbSpectralWarrior, _00E_FS_Game_Affinity_SpectralWarrior, _00E_FS_Game_Affinity_SpectralWarrior_Female)
|
||||
Affinity_BruteIndex = RegisterAffinity(14, _00E_FS_Affinity_AbBrute, _00E_FS_Game_Affinity_Brute, _00E_FS_Game_Affinity_Brute_Female)
|
||||
Affinity_DrifterIndex = RegisterAffinity(15, _00E_FS_Affinity_AbDrifter, _00E_FS_Game_Affinity_Drifter, _00E_FS_Game_Affinity_Drifter_Female)
|
||||
Affinity_DruidIndex = RegisterAffinity(16, _00E_FS_Affinity_AbDruid, _00E_FS_Game_Affinity_Druid, _00E_FS_Game_Affinity_Druid_Female)
|
||||
Affinity_NightwolfIndex = RegisterAffinity(17, _00E_FS_Affinity_AbNightwolf, _00E_FS_Game_Affinity_Nightwolf, _00E_FS_Game_Affinity_Nightwolf_Female)
|
||||
Affinity_RavagerIndex = RegisterAffinity(18, _00E_FS_Affinity_AbRavager, _00E_FS_Game_Affinity_Ravager, _00E_FS_Game_Affinity_Ravager_Female)
|
||||
Affinity_ScourgeOfTheWildsIndex = RegisterAffinity(19, _00E_FS_Affinity_AbScourge, _00E_FS_Game_Affinity_ScourgeOfTheWilds, _00E_FS_Game_Affinity_ScourgeOfTheWilds_Female)
|
||||
Affinity_SoulcallerIndex = RegisterAffinity(20, _00E_FS_Affinity_AbSoulcaller, _00E_FS_Game_Affinity_Soulcaller, _00E_FS_Game_Affinity_Soulcaller_Female)
|
||||
Else
|
||||
Affinity_SpectralistIndex = 11
|
||||
Affinity_GhostBladeIndex = 12
|
||||
Affinity_SpectralWarriorIndex = 13
|
||||
Affinity_BruteIndex = 14
|
||||
Affinity_DrifterIndex = 15
|
||||
Affinity_DruidIndex = 16
|
||||
Affinity_NightwolfIndex = 17
|
||||
Affinity_RavagerIndex = 18
|
||||
Affinity_ScourgeOfTheWildsIndex = 19
|
||||
Affinity_SoulcallerIndex = 20
|
||||
EndIf
|
||||
Affinity_SpectralistIndex = RegisterAffinity(11, _00E_FS_Affinity_AbRitualist, _00E_FS_Game_Affinity_Spectralist, _00E_FS_Game_Affinity_Spectralist_Female)
|
||||
Affinity_GhostBladeIndex = RegisterAffinity(12, _00E_FS_Affinity_AbGhostblade, _00E_FS_Game_Affinity_GhostBlade, _00E_FS_Game_Affinity_GhostBlade_Female)
|
||||
Affinity_SpectralWarriorIndex = RegisterAffinity(13, _00E_FS_Affinity_AbSpectralWarrior, _00E_FS_Game_Affinity_SpectralWarrior, _00E_FS_Game_Affinity_SpectralWarrior_Female)
|
||||
Affinity_BruteIndex = RegisterAffinity(14, _00E_FS_Affinity_AbBrute, _00E_FS_Game_Affinity_Brute, _00E_FS_Game_Affinity_Brute_Female)
|
||||
Affinity_DrifterIndex = RegisterAffinity(15, _00E_FS_Affinity_AbDrifter, _00E_FS_Game_Affinity_Drifter, _00E_FS_Game_Affinity_Drifter_Female)
|
||||
Affinity_DruidIndex = RegisterAffinity(16, _00E_FS_Affinity_AbDruid, _00E_FS_Game_Affinity_Druid, _00E_FS_Game_Affinity_Druid_Female)
|
||||
Affinity_NightwolfIndex = RegisterAffinity(17, _00E_FS_Affinity_AbNightwolf, _00E_FS_Game_Affinity_Nightwolf, _00E_FS_Game_Affinity_Nightwolf_Female)
|
||||
Affinity_RavagerIndex = RegisterAffinity(18, _00E_FS_Affinity_AbRavager, _00E_FS_Game_Affinity_Ravager, _00E_FS_Game_Affinity_Ravager_Female)
|
||||
Affinity_ScourgeOfTheWildsIndex = RegisterAffinity(19, _00E_FS_Affinity_AbScourge, _00E_FS_Game_Affinity_ScourgeOfTheWilds, _00E_FS_Game_Affinity_ScourgeOfTheWilds_Female)
|
||||
Affinity_SoulcallerIndex = RegisterAffinity(20, _00E_FS_Affinity_AbSoulcaller, _00E_FS_Game_Affinity_Soulcaller, _00E_FS_Game_Affinity_Soulcaller_Female)
|
||||
|
||||
|
||||
; Init affinitiesUnlocked if necessary
|
||||
@ -393,15 +138,16 @@ Function UpdateMajorSchool()
|
||||
EndIf
|
||||
EndFunction
|
||||
|
||||
int Function GetPointsInClass(Formlist akClassPerkformlist)
|
||||
int Function GetPointsInClass(Formlist akClassPerkformlist) Global
|
||||
|
||||
Actor PlREF = Game.GetForm(0x14) as Actor
|
||||
Form[] perkForms = akClassPerkformlist.ToArray()
|
||||
int PointsSpentInClass
|
||||
|
||||
int iClassIndex = 0
|
||||
While iClassIndex < perkForms.Length
|
||||
Perk iPerk = perkForms[iClassIndex] as Perk
|
||||
If iPerk && PlayerREF.HasPerk(iPerk)
|
||||
If iPerk && PlREF.HasPerk(iPerk)
|
||||
PointsSpentInClass += 1
|
||||
EndIf
|
||||
iClassIndex += 1
|
||||
@ -504,7 +250,7 @@ Function UpdateUnlockedAffinities(Int[] PerkDistribution)
|
||||
; Cleric: Manipulation + Bastion/Rage
|
||||
TryUnlockAffinity(PerkDistribution, Affinity_ClericIndex, PerkTree_ManipulationIndex, PerkTree_BastionIndex, PerkTree_RageIndex)
|
||||
|
||||
; Assassin/Assassine: Infiltraor und Klingentänzer
|
||||
; Assassin/Assassine: Infiltraor und Klingentänzer
|
||||
TryUnlockAffinity(PerkDistribution, Affinity_AssasinIndex, PerkTree_EspionageIndex, PerkTree_DerwishIndex)
|
||||
|
||||
; Wayfarer/Vielgereister: Vagabund und Gauner
|
||||
@ -513,28 +259,28 @@ Function UpdateUnlockedAffinities(Int[] PerkDistribution)
|
||||
; Black Mage/Schwarzmagier: Entropie und Elementarismus
|
||||
TryUnlockAffinity(PerkDistribution, Affinity_BlackMageIndex, PerkTree_LifeAndDeathIndex, PerkTree_ElementalismIndex)
|
||||
|
||||
; Black Keeper/Schwarzer Hüter: Sinistra und Bastion
|
||||
; Black Keeper/Schwarzer Hüter: Sinistra und Bastion
|
||||
TryUnlockAffinity(PerkDistribution, Affinity_DarkKeeperIndex, PerkTree_LifeAndDeathIndex, PerkTree_BastionIndex)
|
||||
|
||||
; Fencer/Fechtmeister: Klingentänzer und Vandale
|
||||
; Fencer/Fechtmeister: Klingentänzer und Vandale
|
||||
TryUnlockAffinity(PerkDistribution, Affinity_FencerIndex, PerkTree_DerwishIndex, PerkTree_RageIndex)
|
||||
|
||||
; Bladebreaker/Klingenbrecher: Klingentänzer/Bastion
|
||||
; Bladebreaker/Klingenbrecher: Klingentänzer/Bastion
|
||||
TryUnlockAffinity(PerkDistribution, Affinity_BladebreakerIndex, PerkTree_DerwishIndex, PerkTree_BastionIndex)
|
||||
|
||||
; Shadow Dancer/Schattentänzer: Infiltator und Sinistra/Thaumaturg
|
||||
; Shadow Dancer/Schattentänzer: Infiltator und Sinistra/Thaumaturg
|
||||
TryUnlockAffinity(PerkDistribution, Affinity_ShadowdancerIndex, PerkTree_EspionageIndex, PerkTree_LifeAndDeathIndex)
|
||||
|
||||
; Wandering Mage/Wandermagier: Vagabund und Thaumaturg/Elementarist (currently not implemented)
|
||||
TryUnlockAffinity(PerkDistribution, Affinity_WanderingMageIndex, PerkTree_VagabondIndex, PerkTree_ElementalismIndex, PerkTree_ManipulationIndex)
|
||||
|
||||
; Arcane Archer/Arkaner Schütze: Gauner und Thaumaturg/Elementarist/Sinistra
|
||||
; Arcane Archer/Arkaner Schütze: Gauner und Thaumaturg/Elementarist/Sinistra
|
||||
TryUnlockAffinity(PerkDistribution, Affinity_ArcaneArcherIndex, PerkTree_TrickeryIndex, PerkTree_ElementalismIndex, PerkTree_ManipulationIndex, PerkTree_LifeAndDeathIndex)
|
||||
|
||||
; Ritualist (Spectralist): Sinistrop und Phasmalist
|
||||
TryUnlockAffinity(PerkDistribution, Affinity_SpectralistIndex, PerkTree_PhasmalistIndex, PerkTree_LifeAndDeathIndex)
|
||||
|
||||
; Spectral Warrior: Phasmalist und Vandale/Hüter/Klingentänzer
|
||||
; Spectral Warrior: Phasmalist und Vandale/Hüter/Klingentänzer
|
||||
TryUnlockAffinity(PerkDistribution, Affinity_SpectralWarriorIndex, PerkTree_PhasmalistIndex, PerkTree_RageIndex, PerkTree_BastionIndex, PerkTree_DerwishIndex)
|
||||
|
||||
; Ghostblade: Phasmalist und Infiltrator/Gauner
|
||||
@ -644,12 +390,8 @@ Function GetPlayerClass()
|
||||
iNewAffinityIndex = iOldAffinity
|
||||
|
||||
; FS ask
|
||||
ElseIf _00E_FS_IsForgottenStoriesActivated.GetValueInt() == 1
|
||||
iNewAffinityIndex = AskForAffinityFS(unlockedAffinityIndices, nTotalUnlockedAffinityCount, iOldAffinity)
|
||||
|
||||
; Old ask
|
||||
Else
|
||||
iNewAffinityIndex = AskForAffinityOld(unlockedAffinityIndices, nTotalUnlockedAffinityCount, iOldAffinity, oldAffinities)
|
||||
iNewAffinityIndex = AskForAffinityFS(unlockedAffinityIndices, nTotalUnlockedAffinityCount, iOldAffinity)
|
||||
EndIf
|
||||
EndIf
|
||||
|
||||
@ -673,48 +415,6 @@ Function GetPlayerClass()
|
||||
|
||||
Endfunction
|
||||
|
||||
Int Function AskForAffinityOld(Int[] unlockedAffinityIndices, Int nUnlockedAffinities, Int iOldAffinity, Bool[] oldAffinities)
|
||||
|
||||
; Find first newly unlocked affinity, and fall back to first old unlocked affinity in case it fails
|
||||
Int iNewAffinity = -1
|
||||
Int iFallbackAffinity = -1
|
||||
|
||||
Int Index = 0
|
||||
While Index < nUnlockedAffinities && iNewAffinity < 0
|
||||
Int iAffinity = unlockedAffinityIndices[Index]
|
||||
If iAffinity != iOldAffinity
|
||||
If oldAffinities[iAffinity] == False
|
||||
iNewAffinity = iAffinity
|
||||
EndIf
|
||||
If iFallbackAffinity < 0
|
||||
iFallbackAffinity = iAffinity
|
||||
EndIf
|
||||
EndIf
|
||||
Index += 1
|
||||
EndWhile
|
||||
|
||||
If iNewAffinity < 0
|
||||
iNewAffinity = iFallbackAffinity
|
||||
EndIf
|
||||
|
||||
If iNewAffinity >= 0 && iOldAffinity >= 0
|
||||
_00E_Affinity_Message_Actor_01.SetName(GetAffinityName(iOldAffinity))
|
||||
_00E_Affinity_Message_Actor_02.SetName(GetAffinityName(iNewAffinity))
|
||||
|
||||
int iButton = _00E_Affinity_Messagebox.Show()
|
||||
|
||||
if iButton == 0 ; Old
|
||||
Return iOldAffinity
|
||||
Elseif iButton == 2 ; Keep old and don't show again
|
||||
bDontShowAffinityMessageAgain = True
|
||||
Return iOldAffinity
|
||||
EndIf
|
||||
EndIf
|
||||
|
||||
Return iNewAffinity
|
||||
|
||||
EndFunction
|
||||
|
||||
Int Function AskForAffinityFS(Int[] unlockedAffinityIndices, Int nUnlockedAffinities, Int iOldAffinity)
|
||||
Bool enableDoNotShowAgain = False
|
||||
|
||||
@ -792,11 +492,6 @@ EndFunction
|
||||
|
||||
_00E_QuestFunctions Property Levelsystem Auto
|
||||
|
||||
int iHeroMenuKeycode = 35
|
||||
|
||||
Int Property iExitHeroMenuKeycode1 = 15 AutoReadOnly ; 15 = TAB
|
||||
Int Property iExitHeroMenuKeycode2 = 1 AutoReadOnly ; 1 = ESC
|
||||
|
||||
int Property MajorClassIndex Auto Hidden
|
||||
int Property MinorClassIndex Auto Hidden
|
||||
int Property MajorSchool Auto
|
||||
@ -805,45 +500,14 @@ int Property MajorSchool Auto
|
||||
int iCurrentAffinityIndex = -1
|
||||
bool[] affinitiesUnlocked
|
||||
bool bDontShowAffinityMessageAgain
|
||||
bool bHasAffinityBonus = False ; Left for backward compatibility with 1.2.x.x
|
||||
bool bMemoryTreeAchievementUnlocked = False
|
||||
|
||||
bool bReadyToOpen = True
|
||||
bool bStatsMenuOpen = False
|
||||
; bool bControlsHaveBeenDisabled
|
||||
|
||||
ActorValueInfo AiHealth
|
||||
ActorValueInfo AiStamina
|
||||
ActorValueInfo AiMagicka
|
||||
|
||||
ActorValueInfo AiRanged ; Vanilla - Marksman
|
||||
ActorValueInfo AiLightArmor ; Vanilla - Light Armor
|
||||
ActorValueInfo AiPsionics ; Vanilla - Illusion
|
||||
ActorValueInfo AiElementarism ; Vanilla - Destruction
|
||||
ActorValueInfo AiManipulation ; Vanilla - Alteration
|
||||
ActorValueInfo AiOneHanded ; Vanilla - OneHanded
|
||||
ActorValueInfo AiTwoHanded ; Vanilla - TwoHanded
|
||||
ActorValueInfo AiParry ; Vanilla - Block
|
||||
ActorValueInfo AiLightMagic ; Vanilla - Restoration
|
||||
ActorValueInfo AiEntrophy ; Vanilla - Conjuration
|
||||
ActorValueInfo AiHeavyArmor ; Vanilla - HeavyArmor
|
||||
ActorValueInfo AiSneak ; Vanilla - Sneak
|
||||
|
||||
ActorValueInfo AiAlchemy ; Vanilla - Alchemy
|
||||
ActorValueInfo AiPickpocket ; Vanilla - Pickpocket
|
||||
ActorValueInfo AiEnchanting ; Vanilla - Enchanting
|
||||
ActorValueInfo AiLockpicking ; Vanilla - Lockpicking
|
||||
ActorValueInfo AiSmithing ; Vanilla - Smithing
|
||||
ActorValueInfo AiSpeechcraft ; Vanilla - Speechcraft
|
||||
|
||||
ActorBase Property Player Auto
|
||||
_00E_EPUpdateFunctions Property PlayerREF Auto
|
||||
|
||||
ActorBase Property _00E_Affinity_Message_Actor_01 Auto
|
||||
ActorBase Property _00E_Affinity_Message_Actor_02 Auto
|
||||
|
||||
bool MenuOpen = False
|
||||
|
||||
Message Property _00E_Game_sUnlockedAffinity Auto
|
||||
|
||||
; name messages
|
||||
@ -892,14 +556,10 @@ Message Property _00E_Game_TrickeryName Auto
|
||||
Message Property _00E_Game_VagabondName Auto
|
||||
;end name messages
|
||||
|
||||
Message Property _00E_Affinity_Messagebox Auto
|
||||
{Only necessary if FS is NOT used}
|
||||
Message Property _00E_Affinity_MessageboxNew Auto
|
||||
Message Property _00E_Affinity_MessageboxFirstAffinity Auto
|
||||
Message Property _00E_Affinity_DoNotShowAgain Auto
|
||||
|
||||
Location Property _00E_Dreamworld_Location Auto
|
||||
|
||||
Spell Property _00E_Affinity_AbBattlemage Auto
|
||||
Spell Property _00E_Affinity_AbCleric Auto
|
||||
Spell Property _00E_Affinity_AbAssassin Auto
|
||||
@ -921,20 +581,8 @@ Spell Property _00E_FS_Affinity_AbRavager Auto
|
||||
Spell Property _00E_FS_Affinity_AbScourge Auto
|
||||
Spell Property _00E_FS_Affinity_AbSoulcaller Auto
|
||||
|
||||
GlobalVariable Property PlayerExp Auto
|
||||
GlobalVariable Property PlayerNeededExp Auto
|
||||
GlobalVariable Property PlayerLevel Auto
|
||||
GlobalVariable Property Lernpunkte Auto
|
||||
GlobalVariable Property Handwerkspunkte Auto
|
||||
GlobalVariable Property TalentPoints Auto
|
||||
GlobalVariable Property EXPMultSlope Auto
|
||||
GlobalVariable Property EXPMult Auto
|
||||
GlobalVariable Property EXPAcceleration Auto
|
||||
GlobalVariable Property _00E_FS_IsForgottenStoriesActivated Auto
|
||||
GlobalVariable Property _00E_AchievementsEnabled Auto
|
||||
|
||||
ImageSpaceModifier Property _00E_Game_MenuIMOD Auto
|
||||
|
||||
Sound Property UIQuestCompleteM Auto
|
||||
|
||||
Quest Property NQ31 Auto
|
||||
@ -1022,8 +670,3 @@ Int Affinity_ScourgeOfTheWildsIndex
|
||||
Int Affinity_SoulcallerIndex
|
||||
|
||||
Bool BlockClassUpdates
|
||||
|
||||
Bool bMeditateKeyRegistered = False
|
||||
Int Property iMeditateKeycode = 21 Auto Hidden ; 21 (Y on QWERTY, Z on QWERTZ)
|
||||
Int Property iQuickStatsKeycode = 53 Auto Hidden ; 53 (/ on QWERTZ, - on QWERTY)
|
||||
Shout Property _00E_Class_Meditate Auto
|
@ -1,5 +0,0 @@
|
||||
Scriptname _00E_HeroMenu Hidden
|
||||
|
||||
function Show() Global
|
||||
((Game.GetForm(0x10AA2) as Quest).GetAlias(0) as _00E_Game_SkillmenuSC).OpenSkillmenu()
|
||||
endfunction
|
227
source/scripts/_00e_heromenualias.psc
Normal file
227
source/scripts/_00e_heromenualias.psc
Normal file
@ -0,0 +1,227 @@
|
||||
Scriptname _00E_HeroMenuAlias extends ReferenceAlias Hidden
|
||||
|
||||
int function _GetScriptVersion() Global
|
||||
return 1
|
||||
endFunction
|
||||
|
||||
Event OnInit()
|
||||
|
||||
InitializeActorValueInfos()
|
||||
RegisterForModEvent("Enderal_OpenHeroMenu", "OnHeroMenuRequest")
|
||||
|
||||
EndEvent
|
||||
|
||||
Event OnPlayerLoadGame()
|
||||
|
||||
if GetState() != ""
|
||||
GotoState("")
|
||||
endif
|
||||
RegisterForModEvent("Enderal_OpenHeroMenu", "OnHeroMenuRequest")
|
||||
|
||||
EndEvent
|
||||
|
||||
Event OnHeroMenuRequest(string eventName, string strArg = "", float numArg = 0.0, Form sender = None)
|
||||
GotoState("TryToOpen")
|
||||
EndEvent
|
||||
|
||||
state TryToOpen
|
||||
Event OnBeginState()
|
||||
If (! Utility.IsInMenuMode() || UI.IsMenuOpen("TweenMenu")) && ! UI.IsTextInputEnabled() && GetReference().GetCurrentLocation() != _00E_Dreamworld_Location
|
||||
GotoState("Active")
|
||||
else
|
||||
GotoState("")
|
||||
endif
|
||||
EndEvent
|
||||
endstate
|
||||
|
||||
state Active
|
||||
Event OnBeginState()
|
||||
_00E_Game_MenuIMOD.Apply()
|
||||
RegisterForControl("Cancel")
|
||||
RegisterForControl("Quick Stats")
|
||||
if ! UI.IsMenuOpen("CustomMenu")
|
||||
UI.OpenCustomMenu("00E_heromenu")
|
||||
endif
|
||||
UI.InvokeStringA("CustomMenu", "_root.heromenu_mc.SetStringValues", GetStrings())
|
||||
UI.InvokeFloatA("CustomMenu", "_root.heromenu_mc.SetIntValues", GetFloats())
|
||||
UI.InvokeFloatA("CustomMenu", "_root.heromenu_mc.SetModifier", GetMods())
|
||||
EndEvent
|
||||
|
||||
Event OnControlDown(string sControl)
|
||||
GotoState("")
|
||||
EndEvent
|
||||
|
||||
Event OnEndState()
|
||||
UnregisterForAllControls()
|
||||
UI.CloseCustomMenu()
|
||||
_00E_Game_MenuIMOD.Remove()
|
||||
EndEvent
|
||||
endstate
|
||||
|
||||
Function InitializeActorValueInfos()
|
||||
|
||||
AiHealth = ActorValueInfo.GetActorValueInfoByID(24)
|
||||
AiStamina = ActorValueInfo.GetActorValueInfoByID(26)
|
||||
AiMagicka = ActorValueInfo.GetActorValueInfoByID(25)
|
||||
|
||||
AiRanged = ActorValueInfo.GetActorValueInfoByID(8)
|
||||
AiLightArmor = ActorValueInfo.GetActorValueInfoByID(12)
|
||||
AiPsionics = ActorValueInfo.GetActorValueInfoByID(21) ; Vanilla - Illusion
|
||||
AiElementarism = ActorValueInfo.GetActorValueInfoByID(20); Vanilla - Destruction
|
||||
AiManipulation = ActorValueInfo.GetActorValueInfoByID(18); Vanilla - Alteration
|
||||
AiOneHanded = ActorValueInfo.GetActorValueInfoByID(6) ; Vanilla - OneHanded
|
||||
AiTwoHanded = ActorValueInfo.GetActorValueInfoByID(7) ; Vanilla - TwoHanded
|
||||
AiParry = ActorValueInfo.GetActorValueInfoByID(9) ; Vanilla - Block
|
||||
AiLightMagic = ActorValueInfo.GetActorValueInfoByID(22) ; Vanilla - Restoration
|
||||
AiEntrophy = ActorValueInfo.GetActorValueInfoByID(19) ; Vanilla - Conjuration
|
||||
AiHeavyArmor = ActorValueInfo.GetActorValueInfoByID(11) ; Vanilla - HeavyArmor
|
||||
AiSneak = ActorValueInfo.GetActorValueInfoByID(15) ; Vanilla - Sneak
|
||||
|
||||
AiAlchemy = ActorValueInfo.GetActorValueInfoByID(16) ; Vanilla - Alchemy
|
||||
AiPickpocket = ActorValueInfo.GetActorValueInfoByID(13) ; Vanilla - Pickpocket
|
||||
AiEnchanting = ActorValueInfo.GetActorValueInfoByID(23) ; Vanilla - Enchanting
|
||||
AiLockpicking = ActorValueInfo.GetActorValueInfoByID(14) ; Vanilla - Lockpicking
|
||||
AiSmithing = ActorValueInfo.GetActorValueInfoByID(10) ; Vanilla - Smithing
|
||||
AiSpeechcraft = ActorValueInfo.GetActorValueInfoByID(17) ; Vanilla - Speechcraft
|
||||
|
||||
EndFunction
|
||||
|
||||
Float[] Function GetFloats()
|
||||
|
||||
Actor PlayerREF = GetReference() as Actor
|
||||
Float[] SkillmenuFloats = New Float[33]
|
||||
|
||||
; float fNeededEXP = ((pow((PlayerLevel.GetValueInt() + 1), EXPMultSlope.GetValue()) * EXPMult.GetValue()) - (pow(PlayerLevel.GetValueInt(), EXPMultSlope.GetValue()) * EXPMult.GetValue()))
|
||||
|
||||
int iPlayerLevel = PlayerLevel.GetValueInt()
|
||||
float fEXPMultSlope = EXPMultSlope.GetValue()
|
||||
float fEXPMult = EXPMult.GetValue()
|
||||
float fEXPNeededForCurrentLevel = (PlayerREF as _00E_EPUpdateFunctions).ComputeNeededExp(iPlayerLevel - 1, fEXPMultSlope, fEXPMult)
|
||||
float fEXPNeededForNextLevel = (PlayerREF as _00E_EPUpdateFunctions).ComputeNeededExp(iPlayerLevel, fEXPMultSlope, fEXPMult)
|
||||
int iPlayerExp = PlayerExp.GetValueInt()
|
||||
|
||||
SkillmenuFloats[0] = (AiHealth.GetBaseValue(PlayerREF)) as Int
|
||||
SkillmenuFloats[1] = AiHealth.GetCurrentValue(PlayerREF) as Int
|
||||
SkillmenuFloats[2] = aiMagicka.GetBaseValue(PlayerREF) as Int
|
||||
SkillmenuFloats[3] = aiMagicka.GetCurrentValue(PlayerREF) as Int
|
||||
SkillmenuFloats[4] = aiStamina.GetBaseValue(PlayerREF) as Int
|
||||
SkillmenuFloats[5] = aiStamina.GetCurrentValue(PlayerREF) as Int
|
||||
SkillmenuFloats[6] = (-1*(PlayerREF.GetActorValue("LastFlattered"))) as Int
|
||||
SkillmenuFloats[7] = fEXPNeededForNextLevel
|
||||
; (pow(PlayerLevel.GetValueInt(), EXPMultSlope.GetValue()) * (EXPMult.GetValue()*fEXPAcceleration))
|
||||
;SkillmenuFloats[7] = ((pow((PlayerLevel.GetValueInt()), EXPMultSlope.GetValue()) * EXPMult.GetValue()) - (pow(PlayerLevel.GetValueInt() - 1, EXPMultSlope.GetValue()) * EXPMult.GetValue())) as Float
|
||||
SkillmenuFloats[8] = iPlayerExp
|
||||
SkillmenuFloats[9] = iPlayerLevel
|
||||
SkillmenuFloats[10] = Lernpunkte.GetValueInt()
|
||||
SkillmenuFloats[11] = Handwerkspunkte.GetValueInt()
|
||||
SkillmenuFloats[12] = TalentPoints.GetValueInt()
|
||||
SkillmenuFloats[13] = aiPsionics.GetBaseValue(PlayerREF) as Int
|
||||
SkillmenuFloats[14] = aiElementarism.GetBaseValue(PlayerREF) as Int
|
||||
SkillmenuFloats[15] = aiManipulation.GetBaseValue(PlayerREF) as Int
|
||||
SkillmenuFloats[16] = aiOneHanded.GetBaseValue(PlayerREF) as Int
|
||||
SkillmenuFloats[17] = aiParry.GetBaseValue(PlayerREF) as Int
|
||||
SkillmenuFloats[18] = aiRanged.GetBaseValue(PlayerREF) as Int
|
||||
SkillmenuFloats[19] = aiEntrophy.GetBaseValue(PlayerREF) as Int
|
||||
SkillmenuFloats[20] = aiLightMagic.GetBaseValue(PlayerREF) as Int
|
||||
SkillmenuFloats[21] = aiTwoHanded.GetBaseValue(PlayerREF) as Int
|
||||
SkillmenuFloats[22] = aiLightArmor.GetBaseValue(PlayerREF) as Int
|
||||
SkillmenuFloats[23] = aiHeavyArmor.GetBaseValue(PlayerREF) as Int
|
||||
SkillmenuFloats[24] = aiSneak.GetBaseValue(PlayerREF) as Int
|
||||
SkillmenuFloats[25] = aiAlchemy.GetBaseValue(PlayerREF) as Int
|
||||
SkillmenuFloats[26] = aiPickpocket.GetBaseValue(PlayerREF) as Int
|
||||
SkillmenuFloats[27] = aiLockpicking.GetBaseValue(PlayerREF) as Int
|
||||
SkillmenuFloats[28] = aiEnchanting.GetBaseValue(PlayerREF) as Int
|
||||
SkillmenuFloats[29] = aiSmithing.GetBaseValue(PlayerREF) as Int
|
||||
SkillmenuFloats[30] = aiSpeechcraft.GetBaseValue(PlayerREF) as Int
|
||||
|
||||
SkillmenuFloats[31] = iPlayerExp - fEXPNeededForCurrentLevel
|
||||
SkillmenuFloats[32] = fEXPNeededForNextLevel - fEXPNeededForCurrentLevel
|
||||
|
||||
Return SkillmenuFloats
|
||||
|
||||
EndFunction
|
||||
|
||||
Float[] Function GetMods()
|
||||
|
||||
; Gets all modifiers applied to stats and skills
|
||||
|
||||
Actor PlayerREF = GetReference() as Actor
|
||||
Float[] SkillmenuMods = New Float[21]
|
||||
|
||||
SkillmenuMods[0] = ((aiHealth.GetMaximumValue(PlayerREF) as Int) - (aiHealth.GetBaseValue(PlayerREF) as Int))
|
||||
SkillmenuMods[1] = ((aiMagicka.GetMaximumValue(PlayerREF) as Int) - aiMagicka.GetBaseValue(PlayerREF) as Int)
|
||||
SkillmenuMods[2] = ((aiStamina.GetMaximumValue(PlayerREF) as Int) - aiStamina.GetBaseValue(PlayerREF) as Int)
|
||||
SkillmenuMods[3] = ((aiPsionics.GetCurrentValue(PlayerREF) as Int) - aiPsionics.GetBaseValue(PlayerREF) as Int)
|
||||
SkillmenuMods[4] = ((aiElementarism.GetCurrentValue(PlayerREF) as Int) - aiElementarism.GetBaseValue(PlayerREF) as Int)
|
||||
SkillmenuMods[5] = ((aiManipulation.GetCurrentValue(PlayerREF) as Int) - aiManipulation.GetBaseValue(PlayerREF) as Int)
|
||||
SkillmenuMods[6] = ((aiOneHanded.GetCurrentValue(PlayerREF) as Int) - aiOneHanded.GetBaseValue(PlayerREF) as Int)
|
||||
SkillmenuMods[7] = ((aiParry.GetCurrentValue(PlayerREF) as Int) - aiParry.GetBaseValue(PlayerREF) as Int)
|
||||
SkillmenuMods[8] = ((aiRanged.GetCurrentValue(PlayerREF) as Int) - aiRanged.GetBaseValue(PlayerREF) as Int)
|
||||
SkillmenuMods[9] = ((aiEntrophy.GetCurrentValue(PlayerREF) as Int) - aiEntrophy.GetBaseValue(PlayerREF) as Int)
|
||||
SkillmenuMods[10] = ((aiLightMagic.GetCurrentValue(PlayerREF) as Int) - aiLightMagic.GetBaseValue(PlayerREF) as Int)
|
||||
SkillmenuMods[11] = ((aiTwoHanded.GetCurrentValue(PlayerREF) as Int) - aiTwoHanded.GetBaseValue(PlayerREF) as Int)
|
||||
SkillmenuMods[12] = ((aiLightArmor.GetCurrentValue(PlayerREF) as Int) - aiLightArmor.GetBaseValue(PlayerREF) as Int)
|
||||
SkillmenuMods[13] = ((aiHeavyArmor.GetCurrentValue(PlayerREF) as Int) - aiHeavyArmor.GetBaseValue(PlayerREF) as Int)
|
||||
SkillmenuMods[14] = ((aiSneak.GetCurrentValue(PlayerREF) as Int) - aiSneak.GetBaseValue(PlayerREF) as Int)
|
||||
SkillmenuMods[15] = ((aiAlchemy.GetCurrentValue(PlayerREF) as Int) - aiAlchemy.GetBaseValue(PlayerREF) as Int)
|
||||
SkillmenuMods[16] = ((aiPickpocket.GetCurrentValue(PlayerREF) as Int) - aiPickpocket.GetBaseValue(PlayerREF) as Int)
|
||||
SkillmenuMods[17] = ((aiLockpicking.GetCurrentValue(PlayerREF) as Int) - aiLockpicking.GetBaseValue(PlayerREF) as Int)
|
||||
SkillmenuMods[18] = ((aiEnchanting.GetCurrentValue(PlayerREF) as Int) - aiEnchanting.GetBaseValue(PlayerREF) as Int)
|
||||
SkillmenuMods[19] = ((aiSmithing.GetCurrentValue(PlayerREF) as Int) - aiSmithing.GetBaseValue(PlayerREF) as Int)
|
||||
SkillmenuMods[20] = ((aiSpeechcraft.GetCurrentValue(PlayerREF) as Int) - aiSpeechcraft.GetBaseValue(PlayerREF) as Int)
|
||||
|
||||
Return SkillmenuMods
|
||||
|
||||
EndFunction
|
||||
|
||||
String[] Function GetStrings()
|
||||
|
||||
String[] SkillmenuStrings = new string[2]
|
||||
|
||||
SkillmenuStrings[0] = Player.GetName()
|
||||
SkillmenuStrings[1] = AffinityAlias.GetPlayerClassName()
|
||||
|
||||
Return SkillmenuStrings
|
||||
|
||||
EndFunction
|
||||
|
||||
|
||||
ImageSpaceModifier Property _00E_Game_MenuIMOD Auto
|
||||
Location Property _00E_Dreamworld_Location Auto
|
||||
|
||||
GlobalVariable Property PlayerLevel Auto
|
||||
GlobalVariable Property PlayerExp Auto
|
||||
GlobalVariable Property EXPMultSlope Auto
|
||||
GlobalVariable Property EXPMult Auto
|
||||
|
||||
GlobalVariable Property Lernpunkte Auto
|
||||
GlobalVariable Property Handwerkspunkte Auto
|
||||
GlobalVariable Property TalentPoints Auto
|
||||
|
||||
ActorBase Property Player Auto
|
||||
|
||||
ActorValueInfo AiHealth
|
||||
ActorValueInfo AiStamina
|
||||
ActorValueInfo AiMagicka
|
||||
|
||||
ActorValueInfo AiRanged ; Vanilla - Marksman
|
||||
ActorValueInfo AiLightArmor ; Vanilla - Light Armor
|
||||
ActorValueInfo AiPsionics ; Vanilla - Illusion
|
||||
ActorValueInfo AiElementarism ; Vanilla - Destruction
|
||||
ActorValueInfo AiManipulation ; Vanilla - Alteration
|
||||
ActorValueInfo AiOneHanded ; Vanilla - OneHanded
|
||||
ActorValueInfo AiTwoHanded ; Vanilla - TwoHanded
|
||||
ActorValueInfo AiParry ; Vanilla - Block
|
||||
ActorValueInfo AiLightMagic ; Vanilla - Restoration
|
||||
ActorValueInfo AiEntrophy ; Vanilla - Conjuration
|
||||
ActorValueInfo AiHeavyArmor ; Vanilla - HeavyArmor
|
||||
ActorValueInfo AiSneak ; Vanilla - Sneak
|
||||
|
||||
ActorValueInfo AiAlchemy ; Vanilla - Alchemy
|
||||
ActorValueInfo AiPickpocket ; Vanilla - Pickpocket
|
||||
ActorValueInfo AiEnchanting ; Vanilla - Enchanting
|
||||
ActorValueInfo AiLockpicking ; Vanilla - Lockpicking
|
||||
ActorValueInfo AiSmithing ; Vanilla - Smithing
|
||||
ActorValueInfo AiSpeechcraft ; Vanilla - Speechcraft
|
||||
|
||||
_00E_Game_SkillmenuSC Property AffinityAlias Auto
|
40
source/scripts/_00e_meditationhotkeyalias.psc
Normal file
40
source/scripts/_00e_meditationhotkeyalias.psc
Normal file
@ -0,0 +1,40 @@
|
||||
Scriptname _00E_MeditationHotkeyAlias extends ReferenceAlias Hidden
|
||||
|
||||
int function _GetScriptVersion() Global
|
||||
return 1
|
||||
endFunction
|
||||
|
||||
Function UpdateKeyRegistration()
|
||||
RegisterForKey(iMeditateKeycode)
|
||||
EndFunction
|
||||
|
||||
Function SetMeditateKey(int iNewMeditateKeycode)
|
||||
UnregisterForKey(iMeditateKeycode)
|
||||
iMeditateKeycode = iNewMeditateKeycode
|
||||
UpdateKeyRegistration()
|
||||
EndFunction
|
||||
|
||||
Event OnInit()
|
||||
UpdateKeyRegistration()
|
||||
EndEvent
|
||||
|
||||
Event OnPlayerLoadGame()
|
||||
UpdateKeyRegistration()
|
||||
EndEvent
|
||||
|
||||
Event OnKeyDown(Int KeyCode)
|
||||
|
||||
Spell meditateSpell = _00E_Class_Meditate.GetNthSpell(0)
|
||||
Actor PlayerREF = GetReference() as Actor
|
||||
|
||||
If ! Utility.IsInMenuMode() && PlayerREF.HasSpell(_00E_Class_Meditate) && ! UI.IsTextInputEnabled() && ! PlayerRef.IsOnMount() && ! PlayerRef.IsSwimming() && Game.IsLookingControlsEnabled() && ! UI.IsMenuOpen("Dialogue Menu") && PlayerREF.GetCurrentLocation() != _00E_Dreamworld_Location
|
||||
meditateSpell.Cast(PlayerREF, PlayerREF)
|
||||
EndIf
|
||||
|
||||
EndEvent
|
||||
|
||||
Int Property iMeditateKeycode = 21 Auto ; 21 (Y on QWERTY, Z on QWERTZ)
|
||||
|
||||
Shout Property _00E_Class_Meditate Auto
|
||||
|
||||
Location Property _00E_Dreamworld_Location Auto
|
@ -454,7 +454,6 @@ Actor Property PlayerREF Auto
|
||||
Actor Property _00E_MC_JesparREF Auto
|
||||
Actor Property MQ02_CampBanditREF Auto
|
||||
|
||||
_00E_Game_SkillmenuSC Property Player Auto
|
||||
_00E_QuestFunctions Property Levelsystem Auto
|
||||
|
||||
Potion Property _00E_LehrbuchBlockTo25 Auto
|
||||
|
@ -3,6 +3,10 @@ Scriptname _00E_NQR01_Functions extends Quest Conditional
|
||||
Import Utility
|
||||
Import _00E_QuestFunctions
|
||||
|
||||
int function _GetScriptVersion() Global
|
||||
return 1
|
||||
endFunction
|
||||
|
||||
;=====================================================================================
|
||||
; EVENTS
|
||||
;=====================================================================================
|
||||
@ -682,8 +686,6 @@ Actor Property FS_NQR01_Fistfighter02 Auto
|
||||
Actor Property FS_NQR01_PitFighterFacadeParentREF Auto
|
||||
Actor Property FS_NQR01_SC8_IAmInTheWayRatREF Auto
|
||||
|
||||
_00E_Game_SkillmenuSC Property Player Auto
|
||||
|
||||
; 1: The Destroyer / Deathviper
|
||||
; 2: The Wanderer / The Wanderer
|
||||
; 3: The Prophet / The Prophetess
|
||||
|
@ -1041,7 +1041,7 @@ bool Function RequirementsMetMemoryBook(int iTier, Perk Perk01, Perk Perk02, Per
|
||||
ClassFormList03 = ManipulationPerks
|
||||
EndIf
|
||||
|
||||
int iTotalPointsInRequiredClass = (PlayerSkillMenu.GetPointsInClass(ClassFormList01) + PlayerSkillMenu.GetPointsInClass(ClassFormList02) + PlayerSkillMenu.GetPointsInClass(ClassFormList03))
|
||||
int iTotalPointsInRequiredClass = (_00E_Game_SkillmenuSC.GetPointsInClass(ClassFormList01) + _00E_Game_SkillmenuSC.GetPointsInClass(ClassFormList02) + _00E_Game_SkillmenuSC.GetPointsInClass(ClassFormList03))
|
||||
if iTotalPointsInRequiredClass >= iRequiredPoints
|
||||
Return True
|
||||
Else
|
||||
@ -1262,8 +1262,6 @@ Formlist Property ElementalismPerks Auto
|
||||
Formlist Property LifeAndDeathPerks Auto
|
||||
Formlist Property ManipulationPerks Auto
|
||||
|
||||
_00E_Game_SkillmenuSC Property PlayerSkillMenu Auto
|
||||
|
||||
Bool _MemoryBookReadLocked = False
|
||||
|
||||
;-------------------------------------TELEPORT SCRIPT-----------------------------------
|
||||
|
Loading…
Reference in New Issue
Block a user