Xander9009 Posted March 10, 2014 Share Posted March 10, 2014 (edited) I'm making and testing this myself to avoid any further snags, but I need to know what the item is that's being crafted. Is it a generic item that might be found elsewhere or is it a unique item that can only be obtained through crafting. For the record, my script nearly worked except it needed the "Form" changed to "ObjectReference" and "Silent" changed to "abSIlent". I had to remove the Crafting Menu check because it wasn't registering. Thus the need to know if the item might be obtained elsewhere. I used a generic iron dagger, and when I crafted it, it immediately became a quest item like expected. The only problem is that it would have done the same thing if I'd found the dagger instead of crafting it. Edited March 10, 2014 by Xander9009 Link to comment Share on other sites More sharing options...
Masterofnet Posted March 10, 2014 Author Share Posted March 10, 2014 That is great. No the item would be unique. It could only be obtained through crafting and only once. Link to comment Share on other sites More sharing options...
Masterofnet Posted March 11, 2014 Author Share Posted March 11, 2014 (edited) This code from Xander9009 ( with his modifications ) works. It registers the alias right out of the forge. But you can not drop the item when the quest ends. Maybe We are back to trying to force the Alias in the Stage. Or maybe this code can be fixed. Scriptname A1TQPlayerForceAliasScript extends ReferenceAliasArmor Property MyObject AutoReferenceAlias Property RefAlias AutoEvent OnItemAdded(Form akBaseItem, Int aiItemCount, ObjectReference akItemReference, ObjectReference akSourceContainer) Utility.Wait(0.1)ObjectReference MyObjectRef = Game.GetPlayer().DropObject(MyObject)RefAlias.ForceRefTo(MyObjectRef)Game.GetPlayer().AddItem(MyObjectRef, abSilent = True)A1TQCraft1.SetObjectivedisplayed(10)A1TQCraft1.SetStage(20)EndEventQuest Property A1TQCraft1 Auto With this code you can force the alias of a note if you ad the property to the quest script that you can drop after the quest. alias_Note.ForceRefTo(Game.GetPlayer().PlaceAtMe(Note))(WICourier as WICourierScript).addAliasToContainer(alias_Note) Edited March 11, 2014 by Masterofnet Link to comment Share on other sites More sharing options...
Xander9009 Posted March 11, 2014 Share Posted March 11, 2014 Now that that's working, use a stage script fragment to empty the reference with Alias_AliasName.Clear() Link to comment Share on other sites More sharing options...
Masterofnet Posted March 11, 2014 Author Share Posted March 11, 2014 (edited) The item will not drop out of inventory. Alias_TheArmor.Clear() Is there a reason we could not force the Alias in the Stage? With this code you can force the alias of a note if you ad the property to the quest script that you can drop after the quest. alias_Note.ForceRefTo(Game.GetPlayer().PlaceAtMe(Note))(WICourier as WICourierScript).addAliasToContainer(alias_Note) The note is an alias and it able to be dropped after the quest ends. Edited March 11, 2014 by Masterofnet Link to comment Share on other sites More sharing options...
Xander9009 Posted March 11, 2014 Share Posted March 11, 2014 Is it something the player shouldn't have access to later? Something like Meridia's Beacon? If so, then use: Game.GetPlayer().RemoveItem(Alias_TheArmor, 1) Or if that gives you an error, try: Game.GetPlayer().RemoveItem(Alias_TheArmor.GetRef(), 1) They're guesses, though. I don't know why Clear() wouldn't work. Link to comment Share on other sites More sharing options...
Masterofnet Posted March 11, 2014 Author Share Posted March 11, 2014 (edited) Its a weapon or piece or armor that is crafted and used in a specific quest against a specific opponent. After the quest it should be treated like any quest item and discarded if the player chooses. Did you try to clear the alias and see if you could drop the item? I could be doing something wrong. Is there a reason we can not try forcing the alas in the Stage? Edited March 11, 2014 by Masterofnet Link to comment Share on other sites More sharing options...
Xander9009 Posted March 11, 2014 Share Posted March 11, 2014 I'm a bit confused. Did you actually stop the quest at the end, or just mark it as finished? Stopping the quest really should empty all of the aliases. I think you should try that again. Just, at the last step in the last stage, put in Stop(). Or if that gives you an error, perhaps GetOwningQuest().Stop(). If that doesn't work (and it really should), then I'll get it working from here and let you know. I'll probably end up using ForceRefTo(Something_Innocuous). Link to comment Share on other sites More sharing options...
Masterofnet Posted March 11, 2014 Author Share Posted March 11, 2014 GetOwningQuest().Stop() Won't compile This is what I have. ;Quest CompletedAlias_TheArmor.GetRef().Disable()Alias_TheArmor.Clear()CompleteAllObjectives()Stop() And the complete box checked. Link to comment Share on other sites More sharing options...
Masterofnet Posted March 11, 2014 Author Share Posted March 11, 2014 There is another issue. When I pick up any object at the start of the game it triggers the quest. Link to comment Share on other sites More sharing options...
Recommended Posts