Search the Community
Showing results for tags 'ref'.
-
EDIT: FIXED Hi, I am creating a Hearthfire build your own home style house for my mod, Midwood Isle. The house works great, however I have run into a problem regarding checking if a room is complete (so that the option to pay to decorate it disappears). I currently have it set up so that when the misc object is created at a workbench, it enables the reference in the room and runs the Function CheckCompletionStatus() This function is setup like this (the example being the library room): The MI_CheckLibraryList is a formlist of all the Misc objects that can be created in the library - currently 35 objects. However, this seems to be very inconsistent.For some of the rooms, it sets the global when I have created like half the objects, and for some it never sets the global once all are created.Additionally, I tried changing it to be == 35, however this also doesnt work. The weird part is when I set it to == 5, sometimes it works and sometimes it doesn't.I was wondering if anyone knew of a problem with using formlists for GetItemCount or GetSize? After banging my head against a wall I tried coming up with a different approach (a bit messy): For this, the DecorationsLibrary points to an array of ObjectReferences (all the references that are enabled in the room). My thinking here was the script would quickly run through the array, and if any are disabled it sets a global that it is incomplete. At the end, if the global hasnt been set, the room is complete.The weird thing here is it causes the exact same issues as the first one. The same rooms that were completed early are still completed early, and the rooms that didn't complete still dont complete. From what I can tell, all the globals, formlists and arrays are identical to each other (except what they contain). The MiscObjects you create at the workbench all have the script calling the function CheckCompletionStatus() - so I have no idea whats different about the rooms. Alternatively, is there a better way for me to remove the dialogue to pay to decorate a room when it is completed? Hearthfire doesn't actually have this feature - so I'm almost tempted to just leave it, but it'd be nice to have. I'm completely lost in this, so would appreciate any advice!
- 3 replies
-
- ck
- references
-
(and 8 more)
Tagged with:
-
Hi, I made a mod "QuestSide" and along the way during the development one of the quests stopped working correctly, the issue is that during part of the quest if you put a specific item in the proper container it is supposed to update the quest, in game it doesn't do this. I can't find the problem with the script... looking at it, it should work but idk. Any Idea why it doesn't work? The quest starts with iDoOne set to 1, the problem comes when it's time for the pick up to be set, Which is when the item is placed in the container by the PC SCN PackageDeliveryQuestScript Short iDoOnceShort PickupShort DecisionShort RockShort DoneBeforeShort SpawnShort Ambush Begin Gamemode If iDoOnce ==1 && Decision ==0 && getstage aaPD ==1Set Decision to (Decision + GetRandomPercent)Set iDoOnce to 2Endif;__________________________________________________________________________; Which box If Decision ==0 && iDoOnce ==2Set Decision to (Decision + GetRandomPercent)Endif If Decision >0 && Decision <=10 && iDoOnce ==2Setstage aaPD 10Set iDoOnce to 3Endif If Decision >10 && Decision <=20 && iDoOnce ==2Setstage aaPD 20Set iDoOnce to 3Endif If Decision >20 && Decision <=30 && iDoOnce ==2Setstage aaPD 30Set iDoOnce to 3Endif If Decision >30 && Decision <=40 && iDoOnce ==2Setstage aaPD 40Set iDoOnce to 3Endif If Decision >40 && Decision <=50 && iDoOnce ==2Setstage aaPD 50Set iDoOnce to 3Endif If Decision >50 && Decision <=60 && iDoOnce ==2Setstage aaPD 51Set iDoOnce to 3Endif If Decision >60 && Decision <=70 && iDoOnce ==2Setstage aaPD 52Set iDoOnce to 3Endif If Decision >70 && Decision <=80 && iDoOnce ==2Setstage aaPD 53Set iDoOnce to 3Endif If Decision >80 && Decision <=90 && iDoOnce ==2Setstage aaPD 54Set iDoOnce to 3Endif If Decision >90 && Decision <=100 && iDoOnce ==2Setstage aaPD 55Set iDoOnce to 3Endif ;__________________________________________________________________________ If iDoOnce ==3 && Pickup ==0Set Pickup to (Pickup + GetRandomPercent)Set iDoOnce to 4Endif;__________________________________________________________________________; Rock one stages If Pickup ==0 && iDoOnce ==4Set Pickup to (Pickup + GetRandomPercent)Endif If Pickup >0 && Pickup <=50 && iDoOnce ==4 && aaDBox1.Getitemcount aaChems >=1 && getstage aaPD 10Setstage aaPD 60Set iDoOnce to 5Player.additem aaRockNote1 1aaDBox1.removeitem aaChems 1aaRock1.additem aaPay 1Endif If Pickup >0 && Pickup <=50 && iDoOnce ==4 && aaDBox2.Getitemcount aaChems >=1 && getstage aaPD 20Setstage aaPD 61Set iDoOnce to 5Player.additem aaRockNote1 1aaDBox2.removeitem aaChems 1aaRock1.additem aaPay 1Endif If Pickup >0 && Pickup <=50 && iDoOnce ==4 && aaDBox3.Getitemcount aaChems >=1 && getstage aaPD 30Player.additem aaRockNote1 1aaRock1.additem aaPay 1aaDBox3.removeitem aaChems 1Setstage aaPD 62Set iDoOnce to 5Endif If Pickup >0 && Pickup <=50 && iDoOnce ==4 && aaDBox4.Getitemcount aaChems >=1 && getstage aaPD 40Setstage aaPD 63Set iDoOnce to 5Player.additem aaRockNote1 1aaDBox4.removeitem aaChems 1aaRock1.additem aaPay 1Endif If Pickup >0 && Pickup <=50 && iDoOnce ==4 && aaDBox5.Getitemcount aaChems >=1 && getstage aaPD 50 Setstage aaPD 64Set iDoOnce to 5Player.additem aaRockNote1 1aaDBox5.removeitem aaChems 1aaRock1.additem aaPay 1Endif If Pickup >0 && Pickup <=50 && iDoOnce ==4 && aaDBox6.Getitemcount aaChems >=1 && getstage aaPD 51 Setstage aaPD 65Set iDoOnce to 5Player.additem aaRockNote1 1aaDBox6.removeitem aaChems 1aaRock1.additem aaPay 1Endif If Pickup >0 && Pickup <=50 && iDoOnce ==4 && aaDBox7.Getitemcount aaChems >=1 && getstage aaPD 52Setstage aaPD 66Set iDoOnce to 5Player.additem aaRockNote1 1aaDBox7.removeitem aaChems 1aaRock1.additem aaPay 1Endif If Pickup >0 && Pickup <=50 && iDoOnce ==4 && aaDBox8.Getitemcount aaChems >=1 && getstage aaPD 53Setstage aaPD 67Set iDoOnce to 5Player.additem aaRockNote1 1aaDBox8.removeitem aaChems 1aaRock1.additem aaPay 1Endif If Pickup >0 && Pickup <=50 && iDoOnce ==4 && aaDBox9.Getitemcount aaChems >=1 && getstage aaPD 54Setstage aaPD 68Set iDoOnce to 5Player.additem aaRockNote1 1aaDBox9.removeitem aaChems 1aaRock1.additem aaPay 1Endif If Pickup >0 && Pickup <=50 && iDoOnce ==4 && aaDBox10.Getitemcount aaChems >=1 && getstage aaPD 55Setstage aaPD 69Set iDoOnce to 5Player.additem aaRockNote1 1aaDBox10.removeitem aaChems 1aaRock1.additem aaPay 1Endif ;_________________________________________________________________________; Rock two stages If Pickup >50 && Pickup <=100 && iDoOnce ==4 && aaDBox1.Getitemcount aaChems >=1Setstage aaPD 70Set iDoOnce to 5Player.additem aaRockNote2 1aaDBox1.removeitem aaChems 1aaRock2.additem aaPay 1Endif If Pickup >50 && Pickup <=100 && iDoOnce ==4 && aaDBox2.Getitemcount aaChems >=1Setstage aaPD 71Set iDoOnce to 5Player.additem aaRockNote2 1aaDBox2.removeitem aaChems 1aaRock2.additem aaPay 1Endif If Pickup >50 && Pickup <=100 && iDoOnce ==4 && aaDBox3.Getitemcount aaChems >=1Setstage aaPD 72Set iDoOnce to 5Player.additem aaRockNote2 1aaDBox3.removeitem aaChems 1aaRock2.additem aaPay 1Endif If Pickup >50 && Pickup <=100 && iDoOnce ==4 && aaDBox4.Getitemcount aaChems >=1Setstage aaPD 73Set iDoOnce to 5Player.additem aaRockNote2 1aaDBox4.removeitem aaChems 1aaRock2.additem aaPay 1Endif If Pickup >50 && Pickup <=100 && iDoOnce ==4 && aaDBox5.Getitemcount aaChems >=1Setstage aaPD 74Set iDoOnce to 5Player.additem aaRockNote2 1aaDBox5.removeitem aaChems 1aaRock2.additem aaPay 1Endif If Pickup >50 && Pickup <=100 && iDoOnce ==4 && aaDBox6.Getitemcount aaChems >=1Setstage aaPD 75Set iDoOnce to 5Player.additem aaRockNote2 1aaDBox6.removeitem aaChems 1aaRock2.additem aaPay 1Endif If Pickup >50 && Pickup <=100 && iDoOnce ==4 && aaDBox7.Getitemcount aaChems >=1Setstage aaPD 76Set iDoOnce to 5Player.additem aaRockNote2 1aaDBox7.removeitem aaChems 1aaRock2.additem aaPay 1Endif If Pickup >50 && Pickup <=100 && iDoOnce ==4 && aaDBox8.Getitemcount aaChems >=1Setstage aaPD 77Set iDoOnce to 5Player.additem aaRockNote2 1aaDBox8.removeitem aaChems 1aaRock2.additem aaPay 1Endif If Pickup >50 && Pickup <=100 && iDoOnce ==4 && aaDBox9.Getitemcount aaChems >=1Setstage aaPD 78Set iDoOnce to 5Player.additem aaRockNote2 1aaDBox9.removeitem aaChems 1aaRock2.additem aaPay 1Endif If Pickup >50 && Pickup <=100 && iDoOnce ==4 && aaDBox10.Getitemcount aaChems >=1Setstage aaPD 79Set iDoOnce to 5Player.additem aaRockNote2 1aaDBox10.removeitem aaChems 1aaRock2.additem aaPay 1Endif ;__________________________________________________________________________; Spawn some raiders If Pickup >75 && Pickup <=100 && iDoOnce ==4 && Spawn ==0Set Spawn to 1aaRock2.placeatme EncFiendRandom 4Endif If Pickup >25 && Pickup <=50 && iDoOnce ==4 && Spawn ==0Set Spawn to 1aaRock1.placeatme EncFiendRandom 4Endif ; Box spawn If Decision >6 && Decision <=10 && iDoOnce ==4 && Ambush ==0Set Ambush to 1aaDBox1.Placeatme EncFiendRandom 3Endif If Decision >16 && Decision <=20 && iDoOnce ==4 && Ambush ==0Set Ambush to 1aaDBox2.Placeatme EncFiendRandom 3Endif If Decision >26 && Decision <=30 && iDoOnce ==4 && Ambush ==0Set Ambush to 1aaDBox3.Placeatme EncFiendRandom 3Endif If Decision >36 && Decision <=40 && iDoOnce ==4 && Ambush ==0Set Ambush to 1aaDBox4.Placeatme EncFiendRandom 3Endif If Decision >46 && Decision <=50 && iDoOnce ==4 && Ambush ==0Set Ambush to 1aaDBox5.Placeatme EncFiendRandom 3Endif If Decision >56 && Decision <=60 && iDoOnce ==4 && Ambush ==0Set Ambush to 1aaDBox6.Placeatme EncFiendRandom 3Endif If Decision >66 && Decision <=70 && iDoOnce ==4 && Ambush ==0Set Ambush to 1aaDBox7.Placeatme EncFiendRandom 3Endif If Decision >76 && Decision <=80 && iDoOnce ==4 && Ambush ==0Set Ambush to 1aaDBox5.Placeatme EncFiendRandom 3Endif If Decision >86 && Decision <=90 && iDoOnce ==4 && Ambush ==0Set Ambush to 1aaDBox5.Placeatme EncFiendRandom 3Endif If Decision >96 && Decision <=100 && iDoOnce ==4 && Ambush ==0Set Ambush to 1aaDBox5.Placeatme EncFiendRandom 3Endif ;__________________________________________________________________________; complete the correct stages If iDoOnce ==5 && Getstage aaPD <70 && GetStage aaPD >=60 && player.Getitemcount aaPay >=1Setstage aaPD 80Set iDoOnce to 6Endif If iDoOnce ==5 && Getstage aaPD <80 && GetStage aaPD >=70 && Player.Getitemcount aaPay >=1Setstage aaPD 85Set iDoOnce to 6Endif;__________________________________________________________________________; ask about delivery If DoneBefore ==1 && Player.gethasnote aaPDLoc ==0player.additem aaPDLoc 1Endif End
-
TLDR version: If I need an activator handling a puzzle to point to 8 references, what's a better practice: A) Have 8 forever persistent objectreference properties on it. B) Make 8 keywords, 8 properties for the keywords, add those references to my activator as linked references and call GetLinkedRef(KeywordX) when i need to point to them on my script. And second question: If a quest stops running is persistence originated from it's objectreference properties lost or the objects stay persistent forever? ----------------------------------------------- Full story: I'm working on another artifact mod and as usual I want to include a custom maze/puzzle like the micro-chess i did for my paladin mod. This micro-chess is handled from a quest that points to a bunch of objects references, tiles, pieces, markers, etc and therefore all of it it's persistant. Since they are properties they are essentially persistent forever as far as i know, which doesn't really hurt that much but it's better to avoid it whenever possible. The problem is how to avoid it? So, i was looking at vanilla stuff and realized that all traps and puzzles have linked references with keywords when more than one is needed, so that within the script GetLinkedRef(Keyword) is called to get the reference needed without making it persistent. But how to apply this when the thing handling everything is a quest, if the quest stops running i guess persistence is lost, is that right? If so then my micro-chess isn't all that problematic. Now the current dilema, new puzzle. And i'm making this one handled through activators. And need it to point to 8 references more or less. It's better to make persistent properties or use GetLinkedRef(KeywordX)? For the later i'd need to make 8 keywords, 8 properties for the keywords (or a keyword array to keep it cleaner?) and add the 8 linked references to my activators, is it worth it? Or is it like magic effect conditions, that when you have to make way to many it's better to make a script for it instead?
-
Hello Fellow Dwellers, i'm a bit new in modding and this is what i want is to make a custom craftable workbench and link it to the a specific workshop workbench without to put the custom workbench in the world by using CK. So i was able to make a custom workbench and know how to make it craftable , but now i don't know how to make it so that when i'm crafting the workbench in game that it is automatically linked to the specific workshop workbench. (like ' Linked Ref ' in CK only now must be included in the craftable workbench ) my English is not perfect so hope i explained good and you guys can help me out here i uploaded a image also. The mod is a update for my 1st mod
-
hello people, just wanted to know if there is a way to make multiple references, i made multiple force field doors and i want player to be able to disable them from one terminal, any ideas? i'm begginer in geck
-
Im currently trying to mod some of the Jarl's schedules but noticed that most have REF in their name, and i don't think ive ever come across this before. The only AI packages they have is being exiled (after the CW questline) and i can't figure out how they are operating with no AI and how i can fix it. All the other npcs in game are working as usual, and only the original copy of the npc exists.. im pretty sure the npc is used for being exiled and not a duplicate of the npc. Any help?
-
In the GECK vendorbox cel, the ref field is blank. Does this mean that it doesn't have one?
-
i'm in the midst of making a mod that's already been done, but i can't get that mod to work. any who, feel i've got stuck with nesting ref calls. what i would like to do: set someActorRef to getFirstRef 69 1 Label 100 if someActorRef set someInvRef to getFirstRef 70 1 <-- i need this confined to the someActorRef Label 101 if someInvRef moveTo someContainer getNextRef goto 101 endif getNextRef goto 100 endif i just slopped this down trying to convey what i was asking, just ignore the syntax ... i think it's legible enough to know whether this is possible w/ script.
