Jump to content

LurkerGG

Members
  • Posts

    11
  • Joined

  • Last visited

Nexus Mods Profile

About LurkerGG

LurkerGG's Achievements

Rookie

Rookie (2/14)

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

Recent Badges

0

Reputation

  1. Even if it does not work, the fact you cleaned it up will help me learn new ways to script :D
  2. So I am working with my evolving follower script and attempting to improve it. So far the transformation between races happens for the Follower. I am trying to add a requirement that the NPC has to be a certain rank in the CurrentFollowerFaction for the race changes to take place. The script is intended to do the follower Check npcs current race, check the npcs rank in the Currentfollowerfaction and check the npcs level. Based on that information the npcs race is changed to the appropriate race. So far the race changes work but the npc is still being changed even though they are not 0 or higher rank with the CurrentFollowerFaction. I will be honest. I pretty much have no idea what I am doing and the script so far is just a hodge podge of other scripts I have pieced together. Thank you for any help you may be able to provide :) Scriptname Npc_evolutionscript_notext extends ActiveMagicEffect {NPC evolving through polymorph effect} Spell Property PolymorphSpell auto FormList Property WerewolfDispelList auto Race Property PolymorphRace1 auto Race Property PolymorphRace2 auto Race Property PolymorphRace3 auto Faction Property CurrentFollowerFaction auto Weapon Property MonsterWeapon auto Explosion Property EndExplosion auto ImageSpaceModifier Property ChangeFX auto Idle Property IdleWerewolfTransformation auto ; EVENTS Event OnEffectStart(Actor Target, Actor Caster) GetTargetActor().PlayIdle(IdleWerewolfTransformation) PrepShift() Utility.Wait(1.5) GetTargetActor().placeAtMe(EndExplosion) IF (Target.GetActorBase().GetRace() != PolymorphRace1) || (Target.GetActorBase().GetRace() != PolymorphRace2) || (Target.GetActorBase().GetRace() != PolymorphRace3) && (Target.GetFactionRank(CurrentFollowerFaction) >= 1) IF(Target.Getlevel() <= 29) GetTargetActor().SetRace(PolymorphRace1) ELSEIF (Target.Getlevel() <= 39) GetTargetActor().SetRace(PolymorphRace2) ELSE GetTargetActor().SetRace(PolymorphRace3) AnimationEnd() ENDIF ENDIF EndEvent Event OnEffectFinish(Actor Target, Actor Caster) Target.placeAtMe(EndExplosion) ChangeFx.Apply() endEvent Function AnimationEnd() EndFunction Function PrepShift() ; Debug.Trace("WEREWOLF: Prepping shift...") Actor player = GetCasterActor() int count = 0 while (count < WerewolfDispelList.GetSize()) Spell gone = WerewolfDispelList.GetAt(count) as Spell if (gone != None) GetTargetActor().DispelSpell(gone) endif count += 1 endwhile EndFunction [/Code]
  3. Awesome :D. Thank you so much :)
  4. I am having the same issue and attempted to report button to send a message to the staff. But I am not sure if the message was received or when/if anything can be done. Is this a fixable issue and is it ok for us to make forum threads on the mod discussion sections about our mods so people can discuss the mod? I keep getting messages asking for me to unlock the comments section of my mod but still am unable to. I appreciate any help in the matter :)
  5. So here is the working script. Clean saves are your friend when testing mods that use this script. Scriptname NPCpolymorphscript extends activemagiceffect {NPC transformation script} Spell Property PolymorphSpell auto FormList Property WerewolfDispelList auto Race Property PolymorphRace auto Race Property TargetsOriginalRace auto Weapon Property MonsterWeapon auto Explosion Property EndExplosion auto ImageSpaceModifier Property ChangeFX auto Idle Property IdleWerewolfTransformation auto ; EVENTS Event OnEffectStart(Actor Target, Actor Caster) TargetsOriginalRace = Target.GetActorBase().GetRace() if (Target.GetActorBase().GetRace() != PolymorphRace) Debug.Notification("Magic effect start.") GetTargetActor().UnequipAll() GetTargetActor().PlayIdle(IdleWerewolfTransformation) PrepShift() Utility.Wait(1.5) Game.ShakeCamera(afStrength = 0.5,afDuration = 1) GetTargetActor().placeAtMe(EndExplosion) GetTargetActor().SetRace(PolymorphRace) GetTargetActor().AddSpell(SPELLCLEAR1) GetTargetActor().EquipSpell(SPELLCLEAR1, 0) GetTargetActor().AddSpell(SPELLCLEAR2) GetTargetActor().EquipSpell(SPELLCLEAR2, 1) GetTargetActor().AddItem(WEAPONCLEAR1) GetTargetActor().EquipItem(WEAPONCLEAR1, 0) GetTargetActor().AddItem(WEAPONCLEAR2) GetTargetActor().EquipItem(WEAPONCLEAR2, 1) GetTargetActor().EquipSpell(PolymorphSpell, 0) GetTargetActor().AddSpell(PolymorphSpell) GetTargetActor().EquipSpell(PolymorphSpell, 0) GetTargetActor().AddItem(MonsterWeapon) GetTargetActor().EquipItem(MonsterWeapon, 0) GetTargetActor().AddItem(MonsterArmor) GetTargetActor().EquipItem(MonsterArmor) AnimationEnd() Endif EndEvent Event OnEffectFinish(Actor Target, Actor Caster) Target.placeAtMe(EndExplosion) ChangeFx.Apply() GetTargetActor().SetRace(TargetsOriginalrace) GetTargetActor().RemoveSpell(PolymorphSpell) GetTargetActor().UnEquipSpell(PolymorphSpell, 1) GetTargetActor().RemoveItem(MonsterWeapon) GetTargetActor().UnEquipItem(MonsterWeapon, 0) GetTargetActor().RemoveItem(MonsterArmor) GetTargetActor().UnEquipItem(MonsterArmor) GetTargetActor().AddSpell(SPELLCLEAR1) GetTargetActor().EquipSpell(SPELLCLEAR1, 0) GetTargetActor().AddSpell(SPELLCLEAR2) GetTargetActor().EquipSpell(SPELLCLEAR2, 1) GetTargetActor().AddItem(WEAPONCLEAR1) GetTargetActor().EquipItem(WEAPONCLEAR1, 0) GetTargetActor().AddItem(WEAPONCLEAR2) GetTargetActor().EquipItem(WEAPONCLEAR2, 1) Debug.Notification("Magic effect finish.") endEvent Function AnimationEnd() EndFunction Function PrepShift() ; Debug.Trace("WEREWOLF: Prepping shift...") Actor player = GetCasterActor() int count = 0 while (count < WerewolfDispelList.GetSize()) Spell gone = WerewolfDispelList.GetAt(count) as Spell if (gone != None) GetTargetActor().DispelSpell(gone) endif count += 1 endwhile EndFunction Armor Property MonsterArmor Auto SPELL Property SPELLCLEAR1 Auto SPELL Property SPELLCLEAR2 Auto WEAPON Property WEAPONCLEAR1 Auto WEAPON Property WEAPONCLEAR2 Auto [/Code]
  6. Ok I figured it out, it was something in the script. ; Debug.Trace("Trying to transform something that's not an actor; bailing out.", 2) return Was causing it to stop and not function and all. I will do further testing but once I am sure I have it down I will post the final script. Thanks again man for the assist :)
  7. Ok so the script you provided worked the moment I entered or left the building or area as lydia was in. I got the messages magic effect start and magic effect finish. This happened in my current save and a much much older save I had. I will try the original script again with the older save I have and a clean save. See if that may have been an issue.
  8. Thank you so much :) I have a feeling it might be a clean save issue >.< I just tested to see if lydia would change to reflect the changes I made on the mode and they did not until I turned the mod on and off. To my knowledge I was setting up the properties as they should have been. I will go over the tutorial you linked just encase. I will try the script you provided as well and get back with the results as soon as I can. thank you again :)
  9. I intended the spell to be either always effecting the target or be during combat. The problem is that it is not activating at all ingame. Since my first post I have been trying different setting and right now the magic effect that has the script on it has the following The first magic effect that has the script has the following settings; archetype "werewolf", Casting type "fire and forget", delivery "self", magicskill none and min skill 0. The assoc. item 1 is set to the npc test race I made (copy and minor change to the dremora race) Taper duration is set to 50 and other options are set to 0. Flags active are "no recast" and "no area" The magic effect is then put onto an ability and given the conditions of "get level" >= 1 and run on subject. the duration on the ability was given 1 minute just incase having no duration there would cause issues. The ability is then given the equip type none and the auto calculate for charge time and such is turned off. I then have the ability attached to a perk, under perk entries I simply selected the ability from the list and added it. I hope that provides more details on how exactly I am attempting to get the transformation to work.
  10. So with the assistance of several other scripts I found I have been working on getting a script/spell to work that will allow a npc to transform (like the werewolf, master of shapes and other polymorph spells) I admit this is a Frankenstein's monster of a script. I used parts of two different scripts. Removing certain parts (like the disabling of player abilities, dont want it to stop the player from going into their menu when a NPC transforms) and editing others to target the caster. I still am learning the basics of scripting in papyrus and the best way I learn is by doing. So I apologize if this is a nightmare to follow or there are really obvious issues. Now since this is a combat oriented ability I want the spell to force the npc to equip a certain weapon, armor or spell. Once the effect is over the items are uneqipped and removed. I was planning on making the items work like the untradable/seeable follower hunter bow and iron arrow to prevent the player from getting them. I plan for the transformation to work on the npc as a perk that activates either when they reach a certain level (YOUR LYDIA IS EVOLVING) or once combat starts. I have the chain looking like this; magic effect -> spell_fx -> magic effect cloak -> ability -> perk. At this point the script is compiling with no errors but I am not sure if it works yet. It could be the spell works but the npcs wont activate it since they do not need to. Here is the script. Thanks to both jaredbangerter (http://jaredbangerter.hubpages.com/hub/How-to-Create-New-Shape-Shifting-Spells-In-Skyrim#lastcomment) and zigurd88 for their scripts. I used jaredbangerter's script for the equip options and Zigurd88's script that works without having to complete the companion quest chain. Scriptname NPCpolymorphscript extends activemagiceffect {NPC transformation script} Spell Property PolymorphSpell auto FormList Property WerewolfDispelList auto Race Property PolymorphRace auto Race Property castersOriginalRace auto Weapon Property MonsterWeapon auto Explosion Property EndExplosion auto ImageSpaceModifier Property ChangeFX auto Idle Property IdleWerewolfTransformation auto ; EVENTS Event OnEffectStart(Actor Target, Actor Caster) ; Debug.Trace("Trying to transform something that's not an actor; bailing out.", 2) return if (Target.GetActorBase().GetRace() != PolymorphRace) GetCasterActor().UnequipAll() GetCasterActor().PlayIdle(IdleWerewolfTransformation) PrepShift() Utility.Wait(1.5) Game.ShakeCamera(afStrength = 0.5,afDuration = 1) GetCasterActor().placeAtMe(EndExplosion) GetCasterActor().SetRace(PolymorphRace) GetCasterActor().AddSpell(SPELLCLEAR1) GetCasterActor().EquipSpell(SPELLCLEAR1, 0) GetCasterActor().AddSpell(SPELLCLEAR2) GetCasterActor().EquipSpell(SPELLCLEAR2, 1) GetCasterActor().AddItem(WEAPONCLEAR1) GetCasterActor().EquipItem(WEAPONCLEAR1, 0) GetCasterActor().AddItem(WEAPONCLEAR2) GetCasterActor().EquipItem(WEAPONCLEAR2, 1) GetCasterActor().EquipSpell(PolymorphSpell, 0) GetCasterActor().AddSpell(PolymorphSpell) GetCasterActor().EquipSpell(PolymorphSpell, 0) GetCasterActor().AddItem(MonsterWeapon) GetCasterActor().EquipItem(MonsterWeapon, 0) GetCasterActor().AddItem(MonsterArmor) GetCasterActor().EquipItem(MonsterArmor) AnimationEnd() endif EndEvent Event OnEffectFinish(Actor Target, Actor Caster) ; change back if (Target == None) ; Debug.Trace("Trying to transform something that's not an actor; bailing out.", 2) return endif Target.placeAtMe(EndExplosion) ChangeFx.Apply() GetCasterActor().SetRace(castersOriginalRace) GetCasterActor().RemoveSpell(PolymorphSpell) GetCasterActor().UnEquipSpell(PolymorphSpell, 1) GetCasterActor().RemoveItem(MonsterWeapon) GetCasterActor().UnEquipItem(MonsterWeapon, 0) GetCasterActor().RemoveItem(MonsterArmor) GetCasterActor().UnEquipItem(MonsterArmor) GetCasterActor().AddSpell(SPELLCLEAR1) GetCasterActor().EquipSpell(SPELLCLEAR1, 0) GetCasterActor().AddSpell(SPELLCLEAR2) GetCasterActor().EquipSpell(SPELLCLEAR2, 1) GetCasterActor().AddItem(WEAPONCLEAR1) GetCasterActor().EquipItem(WEAPONCLEAR1, 0) GetCasterActor().AddItem(WEAPONCLEAR2) GetCasterActor().EquipItem(WEAPONCLEAR2, 1) endEvent Function AnimationEnd() EndFunction Function PrepShift() ; Debug.Trace("WEREWOLF: Prepping shift...") Actor player = GetCasterActor() int count = 0 while (count < WerewolfDispelList.GetSize()) Spell gone = WerewolfDispelList.GetAt(count) as Spell if (gone != None) GetCasterActor().DispelSpell(gone) endif count += 1 endwhile EndFunction Armor Property MonsterArmor Auto SPELL Property SPELLCLEAR1 Auto SPELL Property SPELLCLEAR2 Auto WEAPON Property WEAPONCLEAR1 Auto WEAPON Property WEAPONCLEAR2 Auto
×
×
  • Create New...