Jump to content
⚠ Known Issue: Media on User Profiles ×

larryrathbun

Premium Member
  • Posts

    47
  • Joined

  • Last visited

Everything posted by larryrathbun

  1. Happens to me from Archery Gameplay Overhaul. Shooting an arrow fixes it.
  2. Good afternoon, I believe you can use OnActivate on a container and have that script change the contents. Then have the script Activate the container. This isn't perfect, but it should be close. scn ContainerScript begin OnActivate if ( Player.GetItemCount [item] == 1 ) ;do whatever endif Activate End
  3. Good evening, Can anyone help me? I was manually activating a plugin for a mod I am developing, and somehow move another mod (MCM) to the bottom of my load order. Before I jack everything up, is there a way to look at my last save file, get the load order, and put it back? I will be making use of the "export load order" function after this, I assure you. thanks.
  4. Good morning, I couldn't speak to everything in your list, but run about 100 mods and haven't yet had a problem with YUP. Load it early, so any mods can override its changes and you should have no issues.
  5. So, I was having trouble with actor value functions and no one was able to help. I had hoped someone could point me to something like this. I guess it doesn't exist, so I went and made it. There are 9 different Actor Value functions. Four Get the values, 5 change the values. In these functions, you can abbreviate "Actor Value" as "AV". I'm going to do this throughout. I am also going to eliminate the reference "Player." in the explanations, "Player.GetActorValue Barter" is the same as "Player.GetAV Barter". There is a TL:DR at the bottom. Four "Getting" functions: Now for the functions that change these values. I am going to run through each of them, using Barter as an example. At the end I will provide a TL:DR one line summary for each. In the examples, I underlined the field to watch as the example progresses. SetActorValue SetAV ModActorValue ModAV DamageActorValue DamageAV RestoreActorValue RestoreAV ForceActorValue ForceAV TL:DR GetAVInfo (console only) Returns a block of info about the value. GetAV Returns the "Current Value" GetBaseAV Returns the "Computed Base" GetPermanentAV Returns the "Level-up Value" SetAV: Changes the AV Override not the value. You can make this negative if you want. ModAV ModAV applies a permanent modifier (Perm) It can be positive or negative DamageAV DamageAV applies a negative damage modifier. (Damage) It's the absolute value of the passed value. RestoreAV RestoreAV applies a positive damage modifier. (Damage) It's the absolute value of the passed value. It can't take the Damage Modifier above 0. ForceAV ForceAV applies a Permanent modifier to make the Current Value Exactly what you pass to ForceAV You CAN modify with other functions afterward. Please share this if it helped you!
  6. Good evening, All testing is done from a save which is not saved again and has no modifications. Each test is done by loading the same clean save to ensure consistent results. I guess I am going to need to go in and actually see what these do. Because, they don't seem to do exactly what they say they do. Can anyone confirm that they act the same if called from script and console? I.e. does setav act the same from either? In the testing I was doing, I was getting different net results from player.setAV Barter 50 when called from console vs. from a script. It doesn't help that there are multiple different GetAV functions either. GetAV, GetBaseAV, GetPermAV. I guess I will try to figure out the difference in those as well. <Edit> I did some research on this and posted it in another thread here: https://forums.nexusmods.com/index.php?/topic/4903920-how-actorvalue-av-functions-work/?p=42853370. Hopefully it will help others. So, Question 2 is still out there. Any thoughts?
  7. Good afternoon, I am working on a mod to do something like the legendary skills in Skyrim. At level 100 in a skill, the player can choose to make the skill Legendary, reduce it to 25 and get a bonus perk. First Question: I need to be able to permanently force the player's skill value for a skill back to 25 and grant a bonus perk. This needs to be permanent, but not affect any perks, bobbles, etc... For example, the player is at 100 in Barter with a perk that adds +5. I want to allow them to make the skill "Legendary" and have it reset back to 25 (still getting the +5 from the perk for a total of 30). I have been playing around with SetAV, ModAV, ForceAV and none seem to perform as expected. Can anyone clue me in on the correct way to do this? Second question: I have worked out some level-up logic that calls the level-up screen without causing an XP loss and have it working successfully. To solve the issue of the player getting new skill points I tried setting all skill points settings to 0 using SetNumericGameValue but couldn't get any results. That command just didn't seem to do anything in the script. When I use it in console it returns that it worked, but the level-up changes don't take. I am trying to make this Project Nevada compatible, and I am sure PN is changing some values as well, which override the base game settings. I also tried giving a temporary perk that Adjust the Skill Point Gain Entry Point, but it also doesn't work. Possibly a PN override as well. As a work-around I currently assign a perk that maxes all skills at 100 (which prevents gaining skill points), then unassign the perk after level up. This has the undesirable side effect of allowing any perk to be chosen, even if the player could not otherwise qualify due to skill level. Can anyone help with either of these questions? <Edit> Third Question: - Resolved - DERP I am trying to setup my level up script as a function I can call from the main script. As soon as I change it to "Begin Function" it fails to compile. When set to OnActivate and placed on an object it works fine. As a test I created a simple script to test. This is set to be an Object script, which is what the Wiki says it should be. scn TestFunctionUDF Begin Function { } ;nothing End This fails to compile as well. I do not want to send any variables to the function or get results back. It is going to possibly be called multiple times during the script running and was trying to avoid a ginormous repeatd block of code that might have to be changed over and over in the future. Anyone know why it won't compile? Apparently the { } is required even if you are passing no arguments to the function. Thanks.
  8. Good afternoon, I am working on a small mod and have almost finished debugging. I decided to go back and try to add the one feature I had originally left out. I originally wanted my mod to start after a specific radio story was played by Three Dog, specifically that the Megaton bomb is disarmed. I could do this by editing the result script for the radio story in the GNR Radio Quest and adding a StartQuest command. However, I don't want to mess with that quest since popular mods like GNR Extended are all over it. Can anyone suggest an alternate way of doing it? I could link it to the side quest (MS11), but I would really prefer it to start after the Radio message about disarming the Megaton bomb is played. Currently I have a trigger box in place that starts the quest if you arrive at the quest location and haven't already started it, but I would prefer if it triggered when the radio story plays. Thanks in advance.
  9. Good evening, I have returned to Skyrim after a year or more, and have encountered an issue I do not remember having before. On some message boxes, the box is too wide for the screen. Since I don't remember this happening, I suspect I had a mod or an adjusted .ini setting to prevent it. Font size or something to that effect. Can anyone suggest a solution for this issue? Thank you.
  10. Hello again all, I have put together a farily simple weapons challenge mod that rewards the player for killing stuff with every type of weapon out there. The basic structure is like this: Throwing Spear Challenge Throwing Knife Challenge Throwing Hatchet Challenge Completing each of these awards a ThrowingChallegeToken. Collecting all three ThrowingChallengeTokens completes the Thrown Weapons Challenge, which awards a SubWeaponToken, removes the ThrownChallengeTokens, and gives a perk that increases damage with Thrown weapons. There are 7 other challenges (melee, energy, heavy, etc...) of similar design. Collecting all 8 SubWeaponTokens completes the Main Challange, which removes the SubWeaponTokens, the individual weapon perks, adds a perk that increase damage with ALL weapons, and unlocks some additional challenges. Everything has been going good until I test the challenges. After completing each individual challenge and sub challenge everything works fine. When completing the last individual challenge (which at the exact same moment completes the last sub weapon challenge and the main challenge) this is what happens: About 8 or 9 unrelated challenges suddenly complete. I find a note from the divide, I discover the Antenna thing from OWB, a bunch of just random stuff. I suspect it is something to do with the scripts running all at once, because they seem to happen out of order. I get the notification from the main challenge, then the sub-challenge, then the individual challenge. Can any suggest a way to track this down and repair it? The individual challenges are kill with a weapon from a form list. The sub-challenges and main challenge are collect a certain number of items (tokens). The sub-challenges and main challenge strip away the extra tokens when they complete and the main challenge removes perks, adds a new one, and unlock challenges on completion. Any help will be greatly appreciated. I can provide the mod file if someone thinks that will help or I can upload script blocks.
  11. Make an empty cell, put the chest in it and throw the whole thing off into the ether. The chest doesn't have to be anywhere the player ever goes.
  12. You could use different variants of the same character. That might be easiest, depending on how many "forms" you want to go through, and if each is discrete. Before changing from one variant to the other, you could script all items off into a hidden chest, change the forms, and then put all the items into the new forms inventory. If there are going to be lots of forms or combinations of powers, this probably won't work.
  13. SpectralDragon did this in Waterstone Manor. He may even have used that same object. You could probably ask, or even download the mod and see how it was done. http://skyrim.nexusmods.com/mods/37631/?
  14. You might see if you can find a spiraling stair or part to wrap around your tree. As Noobo said, Nord dungeon might work. Or if you have Dragonborn you could try use the levitator from inside the Mushroom house. If I remember correctly they used them in tree houses in Morrowind.
  15. Out of curiosity, have you found a similar trigger for spells? I would find it kinda threatening if some person was standing there with their hand half raised and little flames dancing around it. Possibly more so than if he actually had a knife.... Of course then you would have to find a way to determine what spell was equipped and if it was a "weapon" spell.
  16. I did not fill in the property. I got the impression from the tutorials I read that PlayerRef was a hardcoded, always available reference. That it was always the player and couldn't be assigned to anything else... That would explain it. I was right, it was amazingly simple...
  17. Someone will answer #1 soon enough, but... #2 is in the cell properties - right click on the cell name, choose edit. There is a lighting tab. #3 - The best answer is to fix the alignment of your pieces. You can close the seams by swapping out different pieces, rotating the ones you have around, or by using rocks and rubble (for caves). There are also detwist pieces which can bring you back in line. I noticed in the imperial dungeon sets that I had lots of trouble with rooms if I rotated pieces. Floors and walls were subtly off. If I left them at zero rotation and picked a different piece (that didn't need rotation to fit), 90% of the issues went away. Then patience, lots of walking through (I walked through my dungeon, drew a little map and circled problem spots, fixed them in the CK and then walked again) and looking for seams, and the detwist pieces fixed the rest. I probably had to do this 5 or 6 times total to get all the seams (hopefully). Be sure to look up as sometimes the seam is easier to see in the ceiling. I also used the TCL console command to get outside the normal map. That helped in places where I thought there was a seam but I couldn't get a good angle. The corridor pieces are the most basic way to think of it, rooms are similar with just more edges. Think of the corridor like a set of plugs with one male end and one female end. If you try to match up male to male you get seams. MF+MF works fine, but MF+FM gives a seam. Flip the piece 180 degrees to fix it. If you have no way to flip it because of the pieces you have to use, check for a detwist piece. These have different ends that might fix it. Sometimes you need to swap a different piece Hall1Way01 vs Hall1Way02. MF+FF+FM - The FF piece is a detwist that lets you connect two female ends without a seam. I also found it easier to build out from the most limited pieces. I only had 1 stair I could use, so I started fixing the seams outward from that stair. That kept me from having to start over again. (The first time I built everything and ended at the stair and then had to struggle for a piece that fit.) If this made it worse rather than better, sorry. I spent a couple hours struggling with this until I realized what they had done with the edges.
  18. That was a possibility, thanks for the confirmation. I sat down with it and got it working. Strangely my problem was coming with the line: Actor Property PlayerREF Auto Event OnActivate(ObjectReference akActionRef) if akActionRef == PlayerREF ;this line here was simply not working, never registered true I finally gave up and tried Event OnActivate(ObjectReference akActionRef) If akActionRef == Game.GetPlayer() ;using this method worked fine That was the issue. Was making my head hurt because as far as I know it should work either way and it is amazingly simple.
  19. Sjogga, Thanks for the reply. I wasn't in much of a scripty mood last night so I didn't work on it. I suspected it might not be out of order, but was just messing up on the multiple message boxes. I removed # 3 and then #4 started doing it. I used the message boxes originally because my script was just dropping out and I was trying to determine where, but debug.trace is probably a better way... Thanks again.
  20. Hello all, I am working on a basic mod and am making a basic activator script. I have tried many times, looked at tutorials and every time nothing works. It never crashes, it just doesn't do anything. I decided I must be missing something, so inserted some debug message boxes to show me where the script broke. Still nothing, so I deactivate everything except the message boxes, figuring I will rebuild the script one layer at a time until I figure it out. (This is how I learn, very hands on.) Simple right? I go pull the lever and the message boxes display out of order! 1, 2, 4, 5, 3. So I DELETE everything except the message boxes. Same result. Any ideas why? Scriptname AAMuseumSimpleEnableTest extends ObjectReference {Simple Activator Script for Basic Testing. Enables and Disables Objects.} Actor Property PlayerREF Auto ObjectReference Property TestLinkedRef Auto Event OnActivate(ObjectReference akActionRef) Debug.MessageBox("1. Begin the test player next.") Debug.MessageBox("2. You are the player.") Debug.MessageBox("3. Test the wall here.") Debug.MessageBox("4. Outside the disable test if.") Debug.MessageBox("5. About to end.") EndEvent Thanks in advance...
  21. That's it. I figured someone had already done this, it seems like an intuitive thing. What I am trying to to do is check the contents of the dead actor's inventory after the player loots them. Basically see what (if any) items are still in the inventory and run events based on that. So the script would trigger when the player closes the inventory. It would only trigger on loot, until the body is looted, nothing happens.
  22. Hello all, I am about to try my first Papyrus script, I did some light scripting in both Oblivion and New Vegas, so I have my idea laid out and am starting to work out how to do it. I understand that every object extends the form script and it flows down, with every function in a higher object being available to all the lower objects of it. Has anyone made a hierarchy or flow-down diagram? As in: Form | ------------------------ | | ActorBase Object | | Actor -------------- | | Book Armor I know this isn't accurate, but I think it demonstrates what I mean. I want see where I can get certain functions. If I had a flow-down I could follow it until I find the function I need to do what I want to do. Does this make any sense? BTW: I want to run a script that checks an actor's inventory after it is closed. As in, loot (or not) the body. Close the inventory screen. Script runs. I would want to be able to run it on every actor. Thanks in advance and apologies If this has already been asked.
×
×
  • Create New...