Jump to content

Ghaunadaur

Supporter
  • Posts

    796
  • Joined

  • Last visited

Everything posted by Ghaunadaur

  1. Not sure if it helps, but maybe try casting ref_to_check to a Form DTFollowersToExcludeList.HasForm(ref_to_check as Form) == false
  2. Don't start the script with a comment. You can add a documentation string underneath the header like you did with the ActorBase property. Scriptname MassReanimate extends ObjectReference {Mass Reanimate trigger script} Also remove the brackets behind PlayerRef, and there's a doubled up endif in the OnTriggerEnter block.
  3. @Arvaaperekele You could also use OnPlayerCameraState to trigger when the player is dismounting a horse. Example Event OnInit() RegisterForCameraState() EndEvent Event OnPlayerCameraState(int oldState, int newState) if (oldState == 10 && newState != 10) ; player is dismounting endif EndEvent
  4. No worries, we'll get that fixed. If you're still getting the error, that means the CK can't find the script sources. In the Data folder there should be a Scripts.rar archive, which contains the source files. Extract all of it to the Data folder.
  5. The script should extend ReferenceAlias. Also, you copied the script code to the documentation field. That's just a description for the script, so you can leave that empty, and press OK to generate the script. Now you should have a blank script with just the header line. Right click on the script and select 'edit source' to open the editor. Copy the rest of the code and compile it.
  6. One way to do this: Make a new quest and set it start game enabled. Then add a reference alias to quest, for fill type choose specific reference and pick PlayerRef. Add this script to the reference alias (give it a more unique name) Scriptname GhostScript extends ReferenceAlias Spell Property FlamesCustom auto EffectShader Property GhostFXShader auto Event OnObjectEquipped(Form akBaseObject, ObjectReference akReference) if (akBaseObject == FlamesCustom) GhostFXShader.Play(GetActorReference()) GetActorReference().SetAlpha(0.25) endif EndEvent Event OnObjectUnequipped(Form akBaseObject, ObjectReference akReference) if (akBaseObject == FlamesCustom) GhostFXShader.Stop(GetActorReference()) GetActorReference().SetAlpha(1.0) endif EndEvent After that, fill the properties. GhostFXShader is the ghost effect, just hit the auto-fill button to fill it. FlamesCustom would be your spell, you can rename it to the EditorID, so it will auto fill too.
  7. Download from GitHub: https://github.com/fireundubh/LibFire/releases
  8. I just realized that the RemoveKeywordFromRef function is exclusive to the SSE version of Papyrus Extender. The LE version has a ReplaceKeywordOnRef function, which in theory could work too, but sadly it only lasts for the current game session. :confused: Sorry about the confusion. Unfortunately I can't think of a practicable way to add and remove keywords for random NPCs, at least for Skyrim LE.
  9. No, that won't work. It would require to set up reference aliases for each currently affected NPC, so the number of possible affected NPCs would be limited to the number of available aliases.
  10. I think you have 2 options. 1. Papyrus Extender has 'AddKeywordToRef' and 'RemoveKeywordFromRef' functions. 2. Or use a quest alias. For this method, set up a quest with a reference alias for the player, but leave it empty. Make sure to check the 'optional' flag and add the keyword to the alias. Then use following script on the magic effect, fill the properties. Scriptname SomeScriptName extends ActiveMagicEffect Actor Property PlayerRef auto ReferenceAlias Property PlayerAlias auto Event OnEffectStart(Actor akTarget, Actor akCaster) if (akTarget == PlayerRef) PlayerAlias.ForceRefTo(PlayerRef) endif EndEvent Event OnEffectFinish(Actor akTarget, Actor akCaster) if (PlayerAlias.GetActorReference()) PlayerAlias.Clear() endif EndEvent
  11. Yeah, I know xEdit. What I meant so say was that I never tried to edit a localized plugin with it, so I can't tell if the strings are updated. I know that Creation Kit doesn't. That's why I de-localize the esp, make my edits, then localize again. This method worked well for me. Yes, by de-localizing, the strings will be written back into the esp file. Exactly. If you exported the translation to a sst file previously, you can just import it again, so you only need to translate the newly added text.
  12. Each time the esp is changed, chances are that the string ID's in the plugin and in the strings files are no longer matching. That would need to be tested in game or checked with xTranslator. I found it safest to redo the strings files after updating the esp. Same applies to outdated translations. But then it's up to the mod users to ensure they're not using an outdated translation. Not sure about xEdit, never tried that. I always de-localize the plugin before making any alterations.
  13. Yes, .esp files can be localized with SSEEdit. It's easy to do, just right click on the plugin and choose Other -> Localization -> Localize plugin. SSEEdit will then create 3 strings files in the Data\Strings folder, for example MyMod_English.STRINGS MyMod_English.DLSTRINGS MyMod_English.ILSTRINGS Make copies of and rename the files for different languages. In my experience, certain strings won't display correctly when packed in a compressed BSA, and you will get an <lookup failed> error. So either leave the BSA uncompressed or use the loose files. That's correct. The strings files will only contain the text that would normally be stored in the .esp file. Text in scripts is not included. I'm using xTranslator for editing strings files. Translations can be saved to a SST file and easily be loaded again if you need to make changes later.
  14. Another possibility would be to link those references to an enable parent, like an x-marker. Select all the refs, then press - key to open the batch window and link them to an enable parent all at once. Then select the the x-marker and press STRG+1 to toggle visibility. (If no longer needed, remove the links)
  15. I think the easiest way would be a hidden perk with 'Mod Spell Cost' entry point. Use a multiplier of 1.1 to increase the cost by 10%. Adding the perk to the player could be done with a little script on a quest, or simply through console command.
  16. This seems to be hard coded. You can set or clear the last ridden horse with SKSE function SetPlayersLastRiddenHorse, part of Game script.
  17. SetEssential() needs to run on the actor base. So this should work: akspeaker.GetActorBase().SetEssential() If it's a leveled actor, use GetLeveledActorBase() instead.
  18. OnTrackedStatsEvent should work for this. Example Event OnInit() RegisterForTrackedStatsEvent() EndEvent Event OnTrackedStatsEvent(string asStat, int aiStatValue) if (asStat == "Locations Discovered") ;do stuff endif EndEvent
  19. Please re-read the opening post. The OP wants to remove grass at a particular spot when a tent or bedroll is placed there, and add it again when removed, dynamically. I guess it's for a camping mod. This is not possible. The method you're describing is the process of changing ground texture at a fixed spot with the Creation Kit. There's nothing wrong with that, it's just not what the OP is trying to do.
  20. As far I know it's not possible to change ground textures dynamically. What you're trying to do is not possible I'm afraid.
  21. An easy solution to this would be to place a trigger box at the entrance of Whiterun and add a script to it, that checks for the player level. Example: Actor Property PlayerRef auto Book Property BookToAdd auto Event OnTriggerEnter(ObjectReference akActionRef) if (akActionRef as Actor == PlayerRef) if (PlayerRef.GetLevel() >= 40) GotoState("Done") PlayerRef.AddItem(BookToAdd, 1) Debug.Notification("Book added to player") endif endif endEvent State done ;done EndState
×
×
  • Create New...