Guerlot Posted September 4, 2017 Share Posted September 4, 2017 (edited) Hi guys, I'm currently working on a Bulletin Board in DC (similar to the boards in Witcher 3) and I'm wondering how to do a specific removal of a note. I'm using the same system than the Wanted quests in DC/Dugout Inn which requires to place a Xmarker, create a simple Alias pointing to it And then create a "Created to Object Alias at the Xmarker"See screenshot: In this specific example, If the player hasn't bought Home Plate yet, a Note will appear on the Board mentioning the house is available. If already bought, the note doesn't appear. Easy peazy. What I'm trying to do is: Once the Note has been created at the Xmarker, if the player buys the house WITHOUT reading/taking the note, I want to remove that note and clear that Xmarker (HomePlateMarker) Alias for later use (meaning that I could add a new Note at that Xmarker, later in the game). And this WITHOUT touching the FFDiamondCity02 quest (Vanilla quest linked to Home Plate's purchase) Like maybe a ChangeLocation script. I just don't know how to do it properly. thoughts? Edited September 4, 2017 by Guerlot Link to comment Share on other sites More sharing options...
Evangela Posted September 4, 2017 Share Posted September 4, 2017 (edited) You need to call clear() on the reference if the player doesn't read the note. Take this with a grain of salt since I can't actually test this. First you need way of telling the game the note been read or not. So you might need to make a quest to 'monitor' this. quest script example.. Scriptname HomeQuestScript extends Quest Bool property bHasBeenRead auto ; leave this empty/do not fill. For the note, this needs to be placed on the note. Scriptname ScriptNameHere extends ObjectReferece ; might need to extend ReferenceAlias, I\'m not sure. Quest property HomeQuest auto Event OnRead() (HomeQuest as HomeQuestScript).bHasBeenRead = true EndEvent Some external way of checking if it's been read..ReferenceAlias property HomePlateNote auto Quest property HomeQuest auto Function DisableIfNoteUnread() if (HomeQuest as HomeQuestScript).bHasBeenRead() == false HomePlateNote.Clear() endif EndFunction There's probably a better alternative, but I can't think of one at this time. Edit: One more thing. You need to check the box called optional. Otherwise the quest will not start, or stop adruptly if it's already running at the time of clearing, AND you wont be able to fill it with a new reference. Edited September 4, 2017 by Rasikko Link to comment Share on other sites More sharing options...
Guerlot Posted September 4, 2017 Author Share Posted September 4, 2017 (edited) Thanks Rasikko.The Clear() command is definitively what I was looking for. I only added HomePlateNote.Clear() in a Stage and doing a manual SetStage in game works just fine.Now I just need a way to call it in game, somehow. I really don't want to add that fragment in the vanilla quest. I'm thinking of adding a marker inside HomePlate (My mod is already adding a few things in it anyway) point an alias to it and use a OnCellLoad script in it that would call the stage Clearing the alias. The Player would naturally go inside HomePlate right after buying it anyway so it could be a good way to call it. I could even use a TRigger Activator in Home Plate that would be deleted once triggered P.S. I wouldn't need the Unread Bool and scripts. It doesn't matter if the note was not read because once the player buys Home Plate, that note becomes irrelevant, Read or not Edited September 4, 2017 by Guerlot Link to comment Share on other sites More sharing options...
Evangela Posted September 5, 2017 Share Posted September 5, 2017 There's always more than one way to do something, so I'm glad you found another way. :smile: Link to comment Share on other sites More sharing options...
Recommended Posts