Jump to content

ArronDominion

Premium Member
  • Posts

    250
  • Joined

  • Last visited

Everything posted by ArronDominion

  1. Some scripting and retexturing of existing assets can go a long way. Think of features that might add to immersion or would be useful.
  2. For combat actor swap, I would have the spell fire during the entering combat phase from Mharphin himself.
  3. If Git gives you issues, not sure how subversion (most likely utilizing TortoiseSVN) or other VCs would work in this case or if they would provide different control over the project.
  4. Your Array needs to be populated before attempting to make changes. Also not sure if this applies in this case, but arrays can only be one dimensional, and FormLists my be functionally similar to an array (Don't know if it works that way or not so go ahead and try populating the array before trying the hot key logic again)
  5. I recommend for a large project with multiple team members to implement a version control to keep track of who makes what change (added/deleted/etc). I haven't used VCs for Skyrim, so cannot be more helpful than that.
  6. Here is the page for a Kill Actor Event: Kill Actor Event I have found the story manager to be somewhat temperamental in my past experience. The Story Manager in this case needs an alias/pointer of some sort to the NPC that is going to die.
  7. My dev environment consist of using Notepad++ for the editing, and the CK for the compiling (I know there is a Notepad++ plugin to handle compilation as well, just never saw the need because of the ease of switching between the two screens). I don't use Mod Organizer or anything fancy, which might allow for me to get away with that method. After looking at MotoSxorpio's link, that might be your best route for integration with Mod Organizer.
  8. Just posting an update saying this is not dead. I got busy for a bit (and have been in a funk...but not important) and just started recording more videos. Functional Recursion is finished and I have started on the Arrays sub-section, and finished Functions with Array Parameters (it isn't uploaded yet [assembling the 7 video files for the episode into a single file], but it will get there). Sorry for the delay in episode generation.
  9. That approach feels wrong to me, but I can't gauge all the reasons why. Offhand, I know that any concurrent events will be "eaten" by your system. if I equip and then immediately unequip the cowl, your script won't notice that I took it off, because your locking mechanism prevents concurrent calls but doesn't queue/defer them to run later.Very true drawback with this method, since the lock will not be updated until the event using the lock is finished, and the subsequent calls will not execute as intended until it is updated. Edit: Haven't read the Events Reference page until now, and did not know events could be evoked like functions. It would negate the need for a lock, to just return inside the while loop for the event you want to call if the cowl is equipped/not equipped.
  10. I was PM'd with this question and have been troubleshooting the issue, which I think at this time is a runtime efficiency issue. This was my first approach to solve the problem (Slightly similar to Cobb's example and it did not): This led to extracting portions of the block (haven't heard feedback yet on this part, so may or may not work) into a repeatable function call, to turn an iterative problem into a recursive problem. This makes the assumption that the introduced Equipped lock is still in place to provide framework for different functionality in the function calls: I suspect since it is a problem when equipping/unequipping in rapid succession that it is a runtime problem (due to what is on the script stack at the current time and the while iteration). Edit: Looking at the While block, The while condition is simply Index. Wonder if a stricter While block condition such as !(Index < 0) would help out. That would turn everything into: Another edit: should be < 1 instead of 0
  11. Printing an object such as an Actor will print out its object type and the internal id in use at the time. To print out an object name requires SKSE. If you are using SKSE check this page out: http://www.creationkit.com/GetName_-_Form
  12. Just as something to try: In your OnInit, could you set Player Red to equal Game.GetPlayer() and see if that works? Also make sure on the String concats that there are no spaces between the plus and your strings to concatenate.
  13. Sorry that wasn't clear. So you declare with a property in the script, and in the properties tab of the script, you can navigate to the particular global you are using. Alternatively if you name the global property in the script with the exact name in the editor window, you can Auto-Fill your property. It is not possible to be dynamic on assigning globals within the script itself, and you must use the built in property tools.
  14. Globals have little write use outside of a script, the main purpose is typically use it across scripts and dialogue as a read variable, occasionally writing to reflect condition changes (i.e. Lights are On, Lights are Off, Lights are on but Generators are off, etc). I do have to say when I was writing a music play control script for Mharphin, I discovered Globals cannot be declared negative, if you are trying to utilize a negative value. Only 0 - 32-bit-max-value work for a Global. Make sure you don't flag the Global as constant also, it will not allow for change if you do.
  15. Ahh thanks for clearing it up. Didn't sounds like performance issues would be a concern, and certainly not with the way you are doing it. I decided to look at the actual SilverSword weapon entry and it uses the description field for the flavor text, meaning you would have to edit the Dragonbone weapons if you wanted the description.
  16. Word uses special characters for ', ", and a few others that don't translate to the Creation Kit's dialogue or book system, resulting in the squares. If you are using Word 2007/2010/+, you can Save As .txt. That should get around your formatting issues when translating from the doc to Creation Kit.
  17. The way Bethesda does it is very efficient on the end user's machine. All they are doing is running the script when you equip a Silver Sword or un-equip a Silver Sword. With your method, you are required to check and see if the Actor has the following: 1) If the Actor does have the perk perform a series of if-elseif-else checks to see if the newly equipped weapon is of the right material (You will need a property for each Dragonbone weapon in the game, and this perk will not work for custom Dragonbone weapons) The perhaps slight performance hit (most players will not experience a performance hit if you run this event OnObjectEquipped and OnObjectUnequipped). In other words, I wouldn't worry about the script performance unless you get reports of lag. Your approach is definitely the compatibility-friendly approach. You can simulate the weapon add and remove perk approach by using the above events within your Player actor script.
  18. To clarify it will run every 2 in-game minutes, and in real time much less. It is definitely possible to change the outfit after a particular quest stage. Here are the steps for doing this (Note you will probably want to edit so you can reuse the script or reduce on properties): 1) Make sure you have a ReferenceAlias to your NPC 2) In your quest, there will be a Scripts tab. 3) Create a quest script with a ReferenceAlias property to your NPC and Outfit property to your outfit 4)Write a function that looks something like this: 5) In your quest stage, set kmyQuest to this script. If you have another script in use for kmyQuest, you will want to remove your new script and add the changes to that script 6) Call the following in the quest stage script block: That should be it for the basics, but again you probably want to redo for your mod's needs.
  19. Go to your base Data folder and look for a Scripts.rar. That compressed file contains all the source scripts.
  20. This seems to be a side effect of the update. It seems they removed the source scripts from all their .bsa, and proceeded to remove any detected with the Data folder. Edit: Look in your root Data folder for a Scripts.rar
  21. .pex will not help as they are compiled scripts. You require the source scripts (.psc) for the Creation Kit to open them. Looking at my update history, it looks like a consequence of the latest Creation Kit update is to delete all of the Vanilla scripts (not expansion) from your Source folder...that is annoying. Edit: All source files were removed from both the Data folder and from their .bsa from the most recent update. Edit2: Look in your root Data folder for a Scripts.rar
  22. Here is what I envision as the steps you need for doing this: First: Find the quest you want to check for being finished (I.E. DLC1MQ01) Second: In your script have the quest as a Quest Property Third: Have your outfit as an Outfit Property Fourth: Have your NPC as an Actor Propety (might not need if you attach the script to the NPC) Fifth: Decide on an attachment point for your script. I personally think your NPC will be the appropriate place for the script based on the current information, although there are other ways to do it. Here is an implementation I see, going to run with DLC1MQ01 as the example (forgive me if that is not the exact name of that quest): Note: It will change their outfit immediately once that quest is finished. So if you wanted to do this through NPC dialogue, you will need to call akSpeaker.SetOutfit(YourOutfit) in the End script fragment. Hope this helps out.
  23. Assuming that DLC2MQ01 is the Dragonborn DLC, you shouldn't encounter a problem since there is an exit strategy if someone uninstalled the mod (Might bark an error about SeranaAtDLC21MQ01 doesn't exist in the game console or something, but won't affect gameplay and the Update check will cease).
  24. While I agree there needs to be everyday applications such as the array example you provide (going over Arrays after I finish up the Recursion segment), I believe math functions are also important. I have been spending a lot of time looking up common math functions (ln, log, combinations, factorial, fibonacci, multiplication/division via addition/subtraction, determining even/odd, etc.) and find that the majority of those functions can be done given the operations Papyrus gives us. With little documentation on utilizing these math functions within Papyrus, I think it is beneficial to expand our math tools there, and using the tutorials as an avenue for expanding the math tools seemed like the natural course of action. A secondary result of the Events/Functions segment will be a math library. I have been utilizing other examples that are not math related when the time permits in the episode (did a recursive concatenation function in the Helper Functions video, where the user provides a message and a MessageBox pops up with the message displayed n+1 times. Example RecConcat("Yo ", 5) displays Yo 6 times). Once there are more tools built up from the episodes, I will be going into practical examples such as profit calculators from player-owned mines, Message Box mini-games such as Tic-Tac Toe, or a reward system based on junk items (i.e. rewarding scrolls/books for a certain amount of burned books/ruined books turned in). I do agree that generic type support would have been helpful.
  25. Just posting an update to this post. I am still recording these, currently in the Function Recursion section (Surprised the Creation Kit wiki didn't have information on recursion in brief) which is taking some time to go over in depth. Going to post the video playlist here for people to look at: Also going to copy-pasta some of the recursive math functions here if anyone wanted to play around with them (the last two are from an unrecorded video about helper functions, with a recursion focus on that): Factorial (starting from highest to lowest): Fibonacci sequence (brute force - is recalculation prone and bloats for larger values due to that): Integer Multiplication by Repetitive Addition: Integer Division by Repetitive Subtraction: Factorial Reverse (starting from 0 and working to desired value): Float Division by Repetitive Subtraction - Currently to Hundredths Place Precision: Float Multiplication by Repetitive Addition - Uses Division for the decimals (Only way I could think of for decimal precision) [requires the previous code]:
×
×
  • Create New...