Allannaa Posted September 13, 2012 Share Posted September 13, 2012 Okay, I've read through 37 results over 2 pages, and I'm still horribly confused. And obviously, my script isn't compiling. Here's the deal. The player meets OldLady on the street in Whiterun and asks her if she knows of any work available. (That part worked.) She says Yep, I need someone to bring me some stuff. If you bring it, I'll give you my old house. (That worked.) The player can say Naw, not interested... or Sure, I'll get yer stuff. (That part worked.) HOWEVER.... now comes all the parts that I can't figure out/don't work. One -- When the player accepts the quest, OldLady will give him a list. I made the list (OldLadyNote) and put it in the OldLady's inventory. Was that wrong? I can't figure out how to get the list from OldLady to the player. (You know, like how a Courier hands you a mysterious note or sumpin'). I'd post the snippets of what I tried but honestly I worked on it for five days and none of it worked so I dumped it. I can't even remember how I started now. Two -- Eventually, the player buys, or loots, each of the 7 items off creatures/bandits/foresworn (and picks a particular flower). I don't care if the quest updates with each item, or updates when the player has all 7 items, and I've tried it both ways but I can't seem to get the quest script to advance. I can't get the player to give them to OldLady, either. I'm not sure if I'm needing "AddInventoryEvent" and specify the item, or "OnItemAdded" or what. Three -- Once the player has all 7 items and returns to OldLady, she's supposed to say Yay, you rock. Here's the key to the house, and I'll mark the spot on yer map. I've made the key and put it in OldLady's inventory; the exterior cell has its proper map marker. How the heck do I get the key from OldLady to the player, and how do I update the player's map?YES, I have read the Bethesda tutorial. YES, I got that whole "get my amulet back from the thief" thing to work. But as with the "talking rock" tutorial -- what good does it do me? I don't want to get OldLady's amulet back from some random bandit. I want OldLady to give the player a list, I want the player to collect the items, I want the player to give them back to OldLady, and I want OldLady to give the key and mark the map. I don't want to learn every in and out of papyrus scripting. I just want... well, the above. Where can I look for more specific tutorials, or, how do I do the above? Link to comment Share on other sites More sharing options...
littleork Posted September 13, 2012 Share Posted September 13, 2012 (edited) Do you really need her to have those items on her or can they appear on your inventory out of thin air? Because what most people will do is this script game.getplayer().additem(youritem,1) game.getplayer().removeitem(youritem,1) what the first one will do in the dialog box is make the item appear in your inventorythe 2nd will remove the item from your inventory. So you can use those codes to give the items back to the oldlady and to get items like the list in your inventory.You will need to add the properties of the items as well. For the part for the quest stage to advance when you get them all, that, I was never really able to make it work properly. Edited September 13, 2012 by littleork Link to comment Share on other sites More sharing options...
Allannaa Posted September 13, 2012 Author Share Posted September 13, 2012 (edited) Littleork -- Actually, no, I don't care how the list gets to the player's inventory, nor do I care how the key gets there (heck, at this point I'm ready to choke OldLady with that darned key)... So long as they GET there at the right point in the quest, hehe. I will start over again, this time with your method. I was wondering if the bear (for instance) from which the player loots the bear skin after she's killed it (one of the needed items) counts as a container, AND if the player counts as a container, when she's looted the item... And therefore, if I should be using container-type scripts (which are mostly what I see discussed here). I mean obviously this isn't one of those "onEquip" things -- you can't equip thistles or sabre-cat eyes. But you can harvest a thistle, and you can kill a bear or cat or slaughterfish and loot goodies off them. I still have no idea how to make the quest advance to "Go back to OldLady now ya got her stuff." I just thought it would be kinda nice if that popped up in the Journal as the next stage, so the player can keep track of how far along she is in the quest. I don't think an update is needed for each one (like the "bring me jazbay grapes" quest updates to 1/10 or 2/10 or whatever, each time you harvest some jazbay) but I WOULD like an update of some sort when all the different things are acquired. I *think* I know how to add the map marker (and make it fast-travel-able) after trialing-and-erroring around -- isn't it this....? "MyCottageMarker.AddToMap(true)" ... without the " marks obviously I haven't tried that yet, though, because I'm still stuck on getting OldLady's 7 items figured out. Edited September 13, 2012 by Allannaa Link to comment Share on other sites More sharing options...
Allannaa Posted September 14, 2012 Author Share Posted September 14, 2012 Okay, this is the part where I admit I'm apparently dumb as a sack of rocks. I tried Littleork's suggestion and I still am getting nowhere. This is what I have that won't compile: Scriptname OldLady01OldLadyList extends ObjectReference Quest Property OldLady01 Auto Event game.getplayer().additem(0101CC88,1) OldLady01.SetObjectiveDisplayed(20) OldLady01.SetStage(20) EndEvent At this point all I want to do is get the darned list into the player's hot little hands so the player can figure out the riddles and collect the 7 items. *tantrum* Thoughts? Advice? Link to comment Share on other sites More sharing options...
steve40 Posted September 17, 2012 Share Posted September 17, 2012 (edited) I don't make quests so I'm not very good with this sort of stuff. I've got birds on the brain. Literally. a) make a quest alias for the old ladyb) make a quest alias for the notec) in the dialog form, add a fragment to run when the player accepts the quest (off the dialog topic) like this: Alias_OldLady.GetRef().RemoveItem(Alias_QuestNote.GetRef(), 1, false, Game.GetPlayer()) kmyquest.SetObjectiveDisplayed(20) kmyquest.SetStage(20) where "Oldlady" and "QuestNote" are whatever name you used for the aliases. If it doesn't work, well, it's gotta be on the right track :) PS. if all else fails, PM Gasti89, he's a wiz at this sort of stuff Edited September 17, 2012 by steve40 Link to comment Share on other sites More sharing options...
Allannaa Posted September 19, 2012 Author Share Posted September 19, 2012 On 9/17/2012 at 6:35 AM, steve40 said: I don't make quests so I'm not very good with this sort of stuff. I've got birds on the brain. Literally. a) make a quest alias for the old ladyb) make a quest alias for the notec) in the dialog form, add a fragment to run when the player accepts the quest (off the dialog topic) like this: Alias_OldLady.GetRef().RemoveItem(Alias_QuestNote.GetRef(), 1, false, Game.GetPlayer()) kmyquest.SetObjectiveDisplayed(20) kmyquest.SetStage(20) where "Oldlady" and "QuestNote" are whatever name you used for the aliases. If it doesn't work, well, it's gotta be on the right track :) PS. if all else fails, PM Gasti89, he's a wiz at this sort of stuff Copied your snippet exactly, and here's the compile fail: Starting 1 compile threads for 1 files...Compiling "TIF__01023EA2"...c:\steam\steamapps\common\skyrim\Data\Scripts\Source\temp\TIF__01023EA2.psc(11,0): variable Alias_OldLadyAlias is undefinedc:\steam\steamapps\common\skyrim\Data\Scripts\Source\temp\TIF__01023EA2.psc(11,17): none is not a known user-defined typec:\steam\steamapps\common\skyrim\Data\Scripts\Source\temp\TIF__01023EA2.psc(11,35): variable Alias_QuestList is undefinedc:\steam\steamapps\common\skyrim\Data\Scripts\Source\temp\TIF__01023EA2.psc(11,54): none is not a known user-defined typec:\steam\steamapps\common\skyrim\Data\Scripts\Source\temp\TIF__01023EA2.psc(11,26): none is not a known user-defined typeNo output generated for TIF__01023EA2, compilation failed. Batch compile of 1 files finished. 0 succeeded, 1 failed.Failed on TIF__01023EA2 What on earth am I goofing up? The aliases themselves? Link to comment Share on other sites More sharing options...
Sjogga Posted September 19, 2012 Share Posted September 19, 2012 I think you may need to change it intoGetOwningQuest().Alias_oldlady.getactorref().removeitem(getowningquest().alias_list.getref(), false, game.getplayer()) Link to comment Share on other sites More sharing options...
steve40 Posted September 20, 2012 Share Posted September 20, 2012 (edited) "variable Alias_OldLadyAlias is undefined""variable Alias_QuestList is undefined" You need to use the Properties button in the CK to create a property for each alias (matching the name used in the fragment), then assign the alias "value" to the Property. Edited September 20, 2012 by steve40 Link to comment Share on other sites More sharing options...
Ashenfire Posted September 24, 2012 Share Posted September 24, 2012 (edited) Heya! I did the thief inventory thing to. It taught me how to successfully add items to my characters inventory. 1. I never figured out how to make ALIAS items drop into inventory. I did EXACTLY what you did, I burned for 5 days in frustration.2. I figured it out though!! I did mine via DIALOGUE. So lets say you had your oldladylist that you want to give to the player via dialogue.......1. You create the oldladylist item as normal. I would seriously create it as a book / note and not as any form list.2. In the dialogue you go to the fragment script area (begin or end).3. You write the script and save it , even though it fails. *Copy this in the fragment area: Game.GetPlayer().Additem(OldLadyList1,1) ;define variable OldLadyList1 in the PROPERTIES from the Begin or End script box 4. Once script fails, click on the PROPERTIES tab and click ADD property. It will ask you to choose INT or some other property, you will drop down the list and click on BOOK then on the second drop down you will select your oldladylist1(what ever YOU originally called it on creation) 5. Recompile and it should have no errors now. 6. Remember, the Alias reference didn't work for me either, so I tried it this way and it works. 7. Do the same procedure to drop any other item like an amulet. Just remember that you will change the BOOK reference to ARMOR, they treat amulets like armor. Edited September 24, 2012 by Ashenfire Link to comment Share on other sites More sharing options...
Allannaa Posted September 25, 2012 Author Share Posted September 25, 2012 (edited) On 9/20/2012 at 2:45 AM, steve40 said: "variable Alias_OldLadyAlias is undefined""variable Alias_QuestList is undefined" You need to use the Properties button in the CK to create a property for each alias (matching the name used in the fragment), then assign the alias "value" to the Property. I did that, following the steps EXACTLY, and no matter what, the script would not compile. I also actually did the "game.getplayer().add.item(questriddle,1) and it refused. I got so frustrated I actually made the amulet from the bethesda tute and typed THAT in there, and it wouldn't compile. Then I tried it with random items and books straight out of the CK's stock iassets and nothing -- no matter whether or not I created an alias (an alias for believe it or not, 500 gold even), it DID NOT compile, ever. It wouldn't run as part of a dialogue either, because I tried like heck to attatch it to the OldLady's dialogues. She goes thru her Yes I got work for ya, you want it?.... just fine. She lets the player say Yes or No just fine. What she won't do is give the list, accept the items once collected, give the key, or mark the map. I literally have followed every Beth tute on this, to include doing the exact quest the given tute is on, and I cannot get stuff to work like the tutes. I also tried this: On 9/19/2012 at 10:38 PM, Sjogga said: I think you may need to change it intoGetOwningQuest().Alias_oldlady.getactorref().removeitem(getowningquest().alias_list.getref(), false, game.getplayer()) Then I did this: On 9/24/2012 at 8:24 PM, Ashenfire said: Heya! I did the thief inventory thing to. It taught me how to successfully add items to my characters inventory. 1. I never figured out how to make ALIAS items drop into inventory. I did EXACTLY what you did, I burned for 5 days in frustration.2. I figured it out though!! I did mine via DIALOGUE. So lets say you had your oldladylist that you want to give to the player via dialogue.......1. You create the oldladylist item as normal. I would seriously create it as a book / note and not as any form list.2. In the dialogue you go to the fragment script area (begin or end).3. You write the script and save it , even though it fails. *Copy this in the fragment area: Game.GetPlayer().Additem(OldLadyList1,1) ;define variable OldLadyList1 in the PROPERTIES from the Begin or End script box 4. Once script fails, click on the PROPERTIES tab and click ADD property. It will ask you to choose INT or some other property, you will drop down the list and click on BOOK then on the second drop down you will select your oldladylist1(what ever YOU originally called it on creation) 5. Recompile and it should have no errors now. 6. Remember, the Alias reference didn't work for me either, so I tried it this way and it works. 7. Do the same procedure to drop any other item like an amulet. Just remember that you will change the BOOK reference to ARMOR, they treat amulets like armor. I gave up. Sjogga has since written a tutorial on another thread that actually teaches Papyrus without all the confusing silly crap, so I'm working on that in hopes to learn how this does, in fact, work. But it doesn't cut the frustration; I gues Ob spoiled me, because you basically really COULD type "event mynpc do this endevent" and have it work. Oh and, "OldLadyList" is actually a "note", and it's called "OldLadyRiddle"... based on an existing note with (obviously! hehe) the text of the list, not Delphine's Dossier (the model used). Edited September 25, 2012 by Allannaa Link to comment Share on other sites More sharing options...
Recommended Posts