Jump to content

fg109

Members
  • Posts

    1192
  • Joined

  • Last visited

Everything posted by fg109

  1. @AwesomeSkyrimDude If you haven't already, check out the tutorials on the CK wiki. This one in particular seems to be what you're looking for. @VanyarElf Set the chest as the linked ref of your activator, and put this script on the activator: The "CustomSpell" would be whatever spell is supposed to open the chest. @avenger404 As I showed on the video, I could make it work with the script I provided you. If you did the same thing, but didn't get the same results, I really don't know what to say.
  2. Abilities are considered spells. An alternative, instead of removing abilities, is to only have 1 ability. The first rank of the perks adds the ability to the player. The second rank of the perk does nothing. The ability will have two magic effects. The first one is conditioned to run when the player has rank 1 but not rank 2 in the perk. The second runs when the player has both ranks of the perk.
  3. http://www.creationkit.com/GetEquippedItemType_-_Actor I actually had "!GetEquippedItemType(0) == 7" which means not equipped with a bow.
  4. @EnaiSaion So are you using the random search function or did you figure out some other way to find a reference to your summon? @AwesomeSkyrimDude The conditions in the perk window are only used if you happen to be adding the perk through the skills menu. If you were using a perk entry point, you could also condition when the perk comes into effect. But there is no way to place conditions on a perk that adds an ability, so you will have to set the conditions on the ability itself. I really haven't messed around much with perks, so I don't know if they're both running. I don't think so, but I don't know for sure.
  5. @EnaiSiaion If you want to be able to reference your summon, I refer you to this thread.
  6. @tunaisafish Thanks! :thumbsup: @AwesomeSkyrimDude Example: @avenger404 @phnx Maybe there's something weird about the conditions, and you just can't use them to create new things... Try using just one condition: GetMovementDirection == 0 So the magic effect should become active whenever the player is standing still. @Linky1 Add this script to your spells: @scrivener07 :thumbsup:
  7. @avenger404 Are you sure you copied the script correctly? It works fine for me. Again, the script is: It should be leaving NPCs with only 1 health. As for the NPCs not casting it, I forgot about that. Since to the NPCs, having it as just a script effect means the spell does no damage, they would normally not use it... So I guess just have the spell settings be what they are normally and add a single line to the script: @AwesomeSkyrimDude Yeah, tunaisafish had it right. It does mean Event Or Function.
  8. @ChampionOfHircine Okay, I made another video. It's the exact same thing as the other video, except I also went into the game to test it out: http://www.youtube.com/watch?v=-S_HNm4DTa4 It's really simple. I don't know how to make it any simpler. @AwesomeSkyrimDude EOF means Event or Function. Most likely you did not contain your code inside an event or function. Kudos to tunaisafish for pointing this out.
  9. Sounds like the "RegisterForAnimationEvent" is not working. I might have gotten the names of the animation events wrong. In the script, add this to OnEffectStart: RegisterForAnimationEvent(akTarget, "BlockAnticipateStart") RegisterForAnimationEvent(akTarget, "BlockAnticipateStop") RegisterForAnimationEvent(akTarget, "BlockBashSprint") RegisterForAnimationEvent(akTarget, "BlockHitStart") RegisterForAnimationEvent(akTarget, "BlockHitStop") RegisterForAnimationEvent(akTarget, "BlockStart") RegisterForAnimationEvent(akTarget, "BlockStartOut") RegisterForAnimationEvent(akTarget, "BlockStop") RegisterForAnimationEvent(akTarget, "BlockStopOut") and this to OnAnimationEvent: Debug.Notification("Received " + asEventName + " animation event.") Then load the game and try blocking. It should tell you which animation events are actually used in blocking. Once you've figured out which ones are actually used, you can swap it in for the events in the previous script I gave you.
  10. Both. A spell (or ability) must have the same casting and target type as its magic effects.
  11. @AwesomeSkyrimDude Yes, it could do with how you're applying it. The way it is now, it's meant to be attached to the magic effect of an ability (so constant effect, targeting self). Do you have that correct? If you do and it's still not working, forget about the perk for now and just add the ability to the player directly to check if it works.
  12. @AwesomeSkyrimDude Try adding some debug messages to the script in order to figure out what's happening: @avenger404 The script I gave you doesn't require and properties. I have no problems making a spell work with it. Are you sure you did everything correctly? Maybe try changing the effect archetype to script and see if that helps.
  13. @ChampionOfHircine Just do exactly what I did in the video. @cooltrickle You misplaced the RemoveSpell function. @Phnx There is no such thing as an OnGameStart event... I don't have fore's idles, so I don't know whether or not what I tell you will work. The game already plays idles when the player isn't moving. Why not add fore's idles to the possible idles it can play? Go to: GamePlay -> Animations... -> Actors\Characters\Behaviors\0_Master.hkx -> ActionIdle -> NPCIdleRoot -> NonCombatIdles and add the idles to the IdlePlayerRoot. If that doesn't work, then I guess you can try scripting. Instead of using a quest script, I would use a magic effect script. This is because you can put conditions on a magic effect to determine when it will run, so you can copy all the conditions that were on the IdlePlayerRoot. So use this for the magic effect script: and add the magic effect to an ability, and the ability to the player. @AwesomeSkyrimDude Sorry, didn't know you intended to use the script for an ability. So change the script so that it extends "ActiveMagicEffect" instead of "ReferenceAlias", and "OnEffectStart(Actor akTarget, Actor akCaster)" instead of "OnInit()" and "akTarget" instead of "GetActorReference()". @avenger404 You can script the damage of a spell like that, but then remember not to give the spell any magnitude, or at least don't have it as a value modifier with assoc. item health. This is because the script is applied on top of anything done by the effect itself, so having any actual effects on the spell might kill the actor. Scriptname Example extends ActiveMagicEffect Event OnEffectStart(Actor akTarget, Actor akCaster) float Damage = akTarget.GetActorValue("Health") - 1 akTarget.DamageActorValue("Health", Damage) EndEvent
  14. You can try this: If that doesn't work, then use this:
  15. To add a spell when an item is equipped and remove it when the item is unequipped, you would put a script like this on the item: Scriptname Example extends ObjectReference Spell property SpellToAdd auto Event OnEquipped(Actor akActor) akActor.AddSpell(SpellToAdd) EndEvent Event OnUnequipped(Actor akActor) akActor.RemoveSpell(SpellToAdd) EndEvent
  16. @screamingabdab Why not change their patrol package a little? I haven't done much with packages, but I think it should be possible to make a package template like this: 1. Travel procedure (target = patrol start marker) 2. Wait or Hold Position procedure (completes when both NPCs at start marker (use a GetDistance check from each other)) 3. Patrol
  17. @krptopyr To use a property from a quest as a condition for your packages, you will need the condition function GetVMQuestVariable. If you want to use a property from the quest in some other quest, then you need to do this: MyQuestScript property MyQuest auto ;some event int MyInt = MyQuest.IntProperty ;end some event You can put a script on the follower that checks for OnHit events. For the player, I recommend using a reference alias script instead, because my game always crashes when I try to put a script directly on the player. I suggest just modifying the script I gave you earlier to: And make sure the package has the ignore combat flag as well as the must complete flag checked.
  18. I haven't taken a look at the modified scripts, but in the original MineOreScript, this is used to keep track of how many times the player has struck the ore vein. The value is negative by default, indicating that the player has not started any strikes yet. StrikesCurrent -= 1 is just short-hand for StrikesCurrent = StrikesCurrent - 1 The reason why it takes 3 strikes before giving out ore even though "StrikesBeforeCollection = 1" by default is because the script doesn't actually detect the (animated) strikes. Instead, the MineOreFurnitureScript on the linked ref is the one telling the MineOreScript when an (animated) strike occurs. But the detection in the MineOreFurnitureScript is flawed, so it only detects it every 3rd strike.
  19. @AwesomeSkyrimDude Make sure that you keep the "extends ReferenceAlias" in the first line. This tells the compiler that the script extends the reference alias script, meaning it inherits all its functions and properties. @kryptopyr If you're not using the vanilla follower quest to control your followers, then trying to use one of its quest properties to control your followers wouldn't work. You can do it, but since the two things are unrelated you're not going to get any results. Using a combat override package sounds promising. @M3rvin SKSE with Papyrus support is still in closed beta, so you won't find any documentation (or functionality) for scripting. @screamingabdab If you have two NPCs sharing the same package to patrol the same route starting at the same location, why do you need a script for them to do the same thing at the same time? Wouldn't they start at the same time anyway? @avenger404 That means that you didn't define a property for the faction. Package fragments are strange because you can't add properties to them right away. So first, instead of putting in any script in the fragment, just put in a semicolon ";" and compile it. A script fragment for the package will be created. Now you have to close the package window, then re-open it. Now you can right-click the script and add properties to it. So you want to add a faction property named Test01 to the script. After doing that, and setting the property to your custom faction, you can paste the real script into the script fragment window and compile it.
  20. @scrivener07 Duke Patrick had the same problem and he decided to just go with a while loop. In your case, you could also have a script on the work bench to run the updates instead. Also, states are just there to help control whether or not something runs. So something like this: is the same as this: Using states are better than bools because supposedly it's faster and takes less processing power, or so I hear. I haven't tested it out for myself. It's also a lot less trouble to use if you happen to have a lot of events for each state/circumstance, or more than two states/circumstances. @Haplo_64 Sorry, but there are no script functions dealing with enchantment charges. @tmanthewhite Haven't looked at the quest, but I'm assuming that the giant must be assigned a reference alias. In the spells portion of the alias window for the giant, add an ability that fortifies health.
  21. Well, there is always the Creation Kit wiki, but I mostly learn from reading other people's forum posts. :psyduck: There's also the TES Alliance forums but it doesn't seem as active as either here or the Creation Kit forum. It has a good tutorial for beginners, but that's the only tutorial.
  22. Well, keep in mind that Papyrus isn't exactly fast. It's not going to be much good for controlling combat. That said, you could try this:
  23. You mean the linked lists created by Redwood Elf? Or did you mean something like: Scriptname MyArrayObjectScript extends ObjectReference Form[] Property FormArray Auto {128 element array} Int Property LastElementPosition = -1 Auto {The last non-None element in the array} Int Property NestedArrayCount = 0 Auto {Just how many layers of arrays do we have?} Function AddFormToArray(Form akForm) LastElementPosition += 1 int Position = LastElementPosition - (NestedArrayCount * 128) Form[] TempArray = FormArray int Count = 0 while (Count < NestedArrayCount) TempArray = (TempArray[127] as MyArrayObjectScript).FormArray Count += 1 endwhile if (Position == 127) ;the last element in the array TempArray[127] = PlaceAtMe(GetBaseObject(), 1, false, true) NestedArrayCount += 1 AddFormToArray(akForm) else TempArray[Position] = akForm endif EndFunction ?
  24. @kryptopyr It would be if (Registered && !IsPlayerTeammate()) and elseif (!Registered && IsPlayerTeammate()) But I'm not sure if that's exactly what you want. It might be better to check for the NPC's faction rank in the CurrentFollowerFaction. @Korodic It sucks, but Papyrus doesn't support nested arrays. :(
  25. Search for "Decorator Assistant". There should be one that requires Script Dragon and one that doesn't (by yours truly). If you have Script Dragon, I recommend you use that one since you'll be able to use hot keys.
×
×
  • Create New...