Several problems preventing me from finishing mod.

Post » Wed Aug 28, 2013 5:37 am

Hi, I've got a few blocker issues preventing me from finishing my mod that I can't seem to figure out, at all.

First of all, I'm changing it so potions heal over time. This works fine, the problem is it doesn't affect player-made potions and I don't know how to make it so it does. Any clue? Searching has oddly produced almost no results for this, which is strange because of all the mods that do this feature anyways I'd figure I'd be able to easily find documentation on player-made potions and effects.

Secondly, using SKSE I've got a system that detects when the player gains three levels and upon this awards a bonus perk point and displays a nice little message. Only issue is that this doesn't work at all. Apparently, it's because I need to hook the quest its apart of into the "story manager" somehow, but the documentation svcks on this and I'm completely lost. I've already got the script setup to detect the "level up story manager event node" but this really doesn't seem to work. I've also got my quest pointed to the Level up event. I'm guessing I need to somehow go in an add my own custom node but I can't see how or where to do this?

Thirdly, I can't get my master-skill script to work even though it worked fine before and it has me completely confused. I think I can do a workaround for this that will work (swapping out the menu event for a simple OnUpdate) so its not a big deal right now, but just curious if I'm missing something super obvious here. The intent of this script is to increase a gvar by a certain amount when the player has the perks in the script every time they open a menu, the issue is the gvar never increases except for the first one. All my properties are correct, by the way so that shouldn't be the issue.

GlobalVariable Property CPO_MasterSkillCount Autoactor Property PlayerRef AutoPerk Property CPO_HA_PERK_MajorSkills Auto  Perk Property CPO_2H_PERK_MajorSkills Auto  Perk Property CPO_1H_PERK_MajorSkills Auto  Perk Property CPO_LA_PERK_MajorSkills Auto  Perk Property CPO_AR_PERK_MajorSkills Auto  Perk Property CPO_BL_PERK_MajorSkills Auto  ;Minorskills used as perks belowPerk Property SteelSmithing AutoPerk Property Stealth00 AutoPerk Property NoviceLocks00 AutoPerk Property LightFingers00 AutoPerk Property Haggling00 AutoPerk Property Alchemist00 AutoPerk Property IllusionNovice00 AutoPerk Property ConjurationNovice00 AutoPerk Property DestructionNovice00 AutoPerk Property RestorationNovice00 AutoPerk Property AlterationNovice00 AutoPerk Property Enchanter00 AutoQuest Property CPO_MajorSkillQuestStages AutoBool HasHeavyArmorMajorSkillBool HasLAMajorSkillBool HasARMajorSkillBool HasBLMajorSkillBool Has2HMajorSkillBool Has1HMajorSkill;Minorskills belowBool HasSmithingMajorSkillBool HasSneakMajorSkillBool HasLockMajorSkillBool HasPickMajorSkillBool HasSpeechMajorSkillBool HasAlchMajorSkillBool HasIllusionMajorSkillBool HasConjurMajorSkillBool HasDestructMajorSkillBool HasRestorMajorSkillBool HasAlterMajorSkillBool HasEnchMajorSkillEvent OnInit()	RegisterForMenu("LevelUp Menu")endEvent;NOTE: Use this function for tutorial on how to use mod!Event OnMenuOpen(String MenuName)	if MenuName == "LevelUp Menu"		if PlayerRef.HasPerk(CPO_HA_PERK_MajorSkills) && HasHeavyArmorMajorSkill != true			CPO_MasterSkillCount.SetValue((CPO_MasterSkillCount.GetValue()) + 1)			HasHeavyArmorMajorSkill = true		endIf		if PlayerRef.HasPerk(CPO_2H_PERK_MajorSkills) && Has2HMajorSkill != true			CPO_MasterSkillCount.SetValue((CPO_MasterSkillCount.GetValue()) + 1)			Has2HMajorSkill = true		endIf			if PlayerRef.HasPerk(CPO_1H_PERK_MajorSkills) && Has1HMajorSkill != true			CPO_MasterSkillCount.SetValue((CPO_MasterSkillCount.GetValue()) + 1)			Has1HMajorSkill = true		endIf		if PlayerRef.HasPerk(CPO_LA_PERK_MajorSkills) && HasLAMajorSkill != true			CPO_MasterSkillCount.SetValue((CPO_MasterSkillCount.GetValue()) + 1)			HasLAMajorSkill = true		endIf		if PlayerRef.HasPerk(CPO_AR_PERK_MajorSkills) && HasARMajorSkill != true			CPO_MasterSkillCount.SetValue((CPO_MasterSkillCount.GetValue()) + 1)			HasARMajorSkill = true		endIf		if PlayerRef.HasPerk(CPO_BL_PERK_MajorSkills) && HasBLMajorSkill != true			CPO_MasterSkillCount.SetValue((CPO_MasterSkillCount.GetValue()) + 1)			HasBLMajorSkill = true		endIf	;Minor skills below, do not count twoards the full major skill amount		if PlayerRef.HasPerk(SteelSmithing) && HasSmithingMajorSkill != true			CPO_MasterSkillCount.SetValue((CPO_MasterSkillCount.GetValue()) + 0.5)			HasSmithingMajorSkill = true		endIf		if PlayerRef.HasPerk(Stealth00) && HasSneakMajorSkill != true			CPO_MasterSkillCount.SetValue((CPO_MasterSkillCount.GetValue()) + 0.5)			HasSneakMajorSkill = true		endIf		if PlayerRef.HasPerk(NoviceLocks00) && HasLockMajorSkill != true			CPO_MasterSkillCount.SetValue((CPO_MasterSkillCount.GetValue()) + 0.5)			HasLockMajorSkill = true		endIf		if PlayerRef.HasPerk(LightFingers00) && HasPickMajorSkill != true			CPO_MasterSkillCount.SetValue((CPO_MasterSkillCount.GetValue()) + 0.5)			HasPickMajorSkill = true		endIf		if PlayerRef.HasPerk(Haggling00) && HasSpeechMajorSkill != true			CPO_MasterSkillCount.SetValue((CPO_MasterSkillCount.GetValue()) + 0.5)			HasSpeechMajorSkill = true		endIf		if PlayerRef.HasPerk(Alchemist00) && HasAlchMajorSkill != true			CPO_MasterSkillCount.SetValue((CPO_MasterSkillCount.GetValue()) + 0.5)			HasAlchMajorSkill = true		endIf		if PlayerRef.HasPerk(IllusionNovice00) && HasIllusionMajorSkill != true			CPO_MasterSkillCount.SetValue((CPO_MasterSkillCount.GetValue()) + 0.5)			HasIllusionMajorSkill = true		endIf		if PlayerRef.HasPerk(ConjurationNovice00) && HasConjurMajorSkill != true			CPO_MasterSkillCount.SetValue((CPO_MasterSkillCount.GetValue()) + 0.5)			HasConjurMajorSkill = true		endIf		if PlayerRef.HasPerk(DestructionNovice00) && HasDestructMajorSkill != true			CPO_MasterSkillCount.SetValue((CPO_MasterSkillCount.GetValue()) + 0.5)			HasDestructMajorSkill = true		endIf		if PlayerRef.HasPerk(RestorationNovice00) && HasRestorMajorSkill != true			CPO_MasterSkillCount.SetValue((CPO_MasterSkillCount.GetValue()) + 0.5)			HasRestorMajorSkill = true		endIf		if PlayerRef.HasPerk(AlterationNovice00) && HasAlterMajorSkill != true			CPO_MasterSkillCount.SetValue((CPO_MasterSkillCount.GetValue()) + 0.5)			HasAlterMajorSkill = true		endIf		if PlayerRef.HasPerk(Enchanter00) && HasEnchMajorSkill != true			CPO_MasterSkillCount.SetValue((CPO_MasterSkillCount.GetValue()) + 0.5)			HasEnchMajorSkill = true		endIf					; Skill count check				if CPO_MasterSkillCount.GetValue() >= 4.5			CPO_MajorSkillQuestStages.SetStage(10)			UnregisterForMenu("LevelUp Menu")		endif	endifendEvent

I have a feeling its because the Openmenu event is somehow completely screwed up, so I might try and do an onupdate instead. Its attached to a quest that runs on game start.

User avatar
Scotties Hottie
 
Posts: 3406
Joined: Thu Jun 08, 2006 1:40 am

Post » Wed Aug 28, 2013 1:56 pm

If you haven't already, you will need to change all the ingredient effects to make sure they also have duration. I have used this method and it worked successfully.

I don't know anything about the quest related nodes you are talking about, but why not simply add this to your script that triggers whenever the LevelUp Menu is opened? Just use a simple variable to track their level and award a point every third one.

Regarding the final question, can you explain more clearly what you're trying to accomplish? The script looks fine, but you say that the gVar only gets increased the first time--isn't this because after it increases once for each skill, you set the boolean to true, so it wont happen again? I have a feeling I'm misunderstanding what you're trying to accomplish though.

User avatar
Amy Smith
 
Posts: 3339
Joined: Mon Feb 05, 2007 10:04 pm

Post » Wed Aug 28, 2013 3:30 pm

In order to add a quest to a Story Manager event you need to create a Quest Node inside the Story Manager Event Node. You can do this by opening up the Story Manager Event Node (Increase Level in this case), right-clicking the Stacked Event Node (at the top) and selecting New Quest Node. With the newly created Quest Node selected, check the box called Shares Event. If you do not do this, then you might stop other quest nodes from being processed. Right-click your Quest Node and select Add Quests to open a window where you can select your quest. You can then add conditions for starting the quest to the node or quest entry.

I assume that "level up story manager event node" means that you set the Event box in your quest's Quest Data tab to Increase Level. This simply means that condition functions used inside your quest will give you event data specific to the Story Manager Node you selected. In this case that means that you have access to the level that the player has reached.

User avatar
Sophie Morrell
 
Posts: 3364
Joined: Sat Aug 12, 2006 11:13 am

Post » Wed Aug 28, 2013 12:10 pm

Thanks.

I've figured out the story manager stuff, turns out the way to add a quest to it is to right click the very top event node and then add a quest node. only problem is it only fires once (I want this quest to run every level), but I think its because I just need to set it so stages can repeat or some other setting.

As far as the latter, I've also figured it out - turns out "Levelup menu" doesn't fire until you pick your attributes, so my script is working fine. I was wanting to look for a way to detect when the skill menu was opened but it turns out the menu I was looking for should have been "StatsMenu" not "Levelup Menu"

User avatar
Marcia Renton
 
Posts: 3563
Joined: Fri Jan 26, 2007 5:15 am


Return to V - Skyrim