Jump to content

csbx

Supporter
  • Posts

    649
  • Joined

  • Last visited

Everything posted by csbx

  1. I have an index within a script that adds items to a book--each entry is its own page. I was wondering if I could use that index--which tracks what page we're writing to--to open the book at that page when the player opens it. Even if the player opens the book and it then flips to that page. I've looked for something regarding this mechanic and haven't found it. Any ideas ?
  2. Superb and fulsome answer. I had no idea there were scripts (other than meta function scripts e.g. math) being used like this so this was educational for many reasons. Thanks a lot !
  3. How do I find this in the Creation Kit ? I look for that as a quest name, but there is none. If it's attached to another quest, how do I find that quest ? This may seem really obvious, but I'm afraid it really isn't obvious to me. There is no script by that name attached to CR06. I must be missing something obvious.
  4. Wow - thanks a lot--that's definitely it. But I'm confused about your method of finding that. My process was to see that 'Parent.Accepted()' was called and then to look for the Parent quest. I thought it was C00 based on the quest property on that script. But I don't see anything there. Where is this script ? You probably knew where to look--how !?
  5. Well, my lame little mod is chugging away having made some great progress in the last month or so. But I'm stuck at the following problem: My mod is looking at some radiant quests, but some of them are structured in ways I can't decipher. E.g. In the bounty quests BQ01-BQ04, the map marker is added to the map via quest stage 10. Easy. But in looking at, e.g. CR06 (stolen heirloom) and several other similar quests, I can't see where in the code this occurs--though I know that it does add a marker to the map. I was thinking it was some kind of parent quest script but I just don't see it after an hour of investigation. Could someone take a quick spin through CR06 and see where this is occurring ?
  6. My .esp is just under 200KB atm - though likely will be around 300KB when finished. I wish there was more available info (is there ?) on best practices and ways to reduce ram usage and other problems for end-users.
  7. So I can now confirm that the issue with having notes/books with changing aliases (e.g. if you do two bounty quests from bq01, does each note maintain integrity) is SOLVED when using this method of filling the alias is used. It is a pain in the ass compared to a bunch of strings stored in an array in a script, but it works.. I think all my mod is doing in terms of taking resources is adding an extra objref (somehow) stamped into each bounty letter received by the player. So if the player has 10 or 15 of these in their pockets, or left in trash chests etc. that seems like not a problem. Is having a bunch of objrefs in a cell the player never enters taxing ? Because obviously my 'pool' of objects that fill the aliases is sitting there and is only pulled from as needed for these quests.
  8. I'm ashamed to say it was an indexing problem re: formlists. I was essentially calling for index results way out of range due to wrongmath lolz. Thanks man.
  9. I'm going to give it a go. It's all set up, but I'm really daft about the syntax so something is wrong. I have: csbMagTextHolderAlias[QuestIndex].forceRefTo(MyFormlistWithMyObjRefs.GetAt(5) as objectreference) But the alias doesn't fill. It's weird--if I debug.messagebox the 'MyFormlistWithMyObjRefs.GetAt(5) as ObjectReference" it indeed yields something like "objectReference <The Id number>". I tried defining an objectreference property and dropping it in there and it worked just fine. Am I not allowed to pull an obj.ref from a formlist like that ? I'm so confused why that isn't working.
  10. Just to fill out a little more precisely what I'm trying to do: The mod I'm working on has a few modules associated with it. The module I'm working on now is about bounty quests. I'm trying to expand the 'even better quest objectives' concept to these quests. I have a small text blurb associated with certain locations and a function that looks at that quest's aliases, produces the right text for the generated location alias and fills the alias in the note the player receives. As discussed above, the setname/forceRefTo works swimmingly for the first quest, then--as you both seem to grasp well--the second fails because it effectively resets the first letter's 'blurb' alias. The only method I see to solve this is one objRef per blurb, then fill the alias with that objRef, re-using as needed. I'm not sure what a moderate approach would look like in this case. I'm just serving up one objRef at a time per bounty note--which don't appear in abundance, really.
  11. It may well be that I need fixed objectrefs / baseobjects - ie. fixed in the sense that they possess a name that does not change over time. Do you think that it's unwise to proceed using a method that would require creating probably 300+ such objects - e.g. creating that many misc objects, dragging them into Cell AAAmarkers e.g. and then via script popping them into the alias of a quest one at a time as needed ? Each would have a name 250ish chars. Would that be taxing on an end-user's system in terms of memory etc. ? I just have no understanding of how in the scheme of a modded game this move would stack up.
  12. Fuhhh - It's such a bummer - I had this sweet way to proceed with my mod, but it looks like I'll need another way. I agree with your suggestion that it's probably stamping from the name of the base object of the objectref. The method I was using obviously changes the name of that objectref so it's not persisting in the way the vanilla ones do [ie. the name of a given mapmarker/jarl/steward never changes]. I do have a workaround that involves having all of my bits of text assigned to objects from the get-go rather than do the setname/forceRefTo maneuver via script which is so convenient. But it's a PIA and not sure I have the will to do that.
  13. Since you are obviously pretty knowledgeable about this setname/forceRefTo approach to filling aliases, I was wondering if you knew off-hand, why this method of filling an alias might produce results that I describe in this thread: The short of it is that the repeatable BQ01 quest is (as it should) producing distinct bounty letters for each quest iteration, but only the vanilla aliases (steward, jarl, location) are correctly instantiating / persisting in each letter; the alias (with text) that I add using the method you showed me has the alias of the first bounty letter update to the newly filled alias instead of it remaining the same. Ie the note shouldn't change once the player receives it, but in my case it is--and only for that one non-vanilla alias. I realize you said above that the text only lasts as long as the alias and that a new bounty quest means re-setting the alias. But why does all the other info (location, jarl etc.) in the 1st bounty letter retain, whilst my alias doesn't ?
  14. Thank you for your time. I'm seeing that you are indeed correct about multiple bounty letters (say from BQ01) each of which has distinct text reflecting what aliases were at the time. But I'm noticing that this is working for the vanilla aliases and not for one that I'm introducing (which adds info to the bounty letter BQ01 in this case). I note that the vanilla aliases pertinent to the letter (steward, jarl, hold) use match reference, whereas I'm using a 'specific reference'. To be clear, I'm using the SetName / ForceRefTo approach to filling that alias with my own text. The result I'm getting is the following: Bounty letter 1: works normally with my text inserted into letter as it should Bounty letter 2 (after completing 1): all vanilla text associated with aliases is updated to current quest. But Bounty Letter 1 suddenly contains my bounty letter 2 alias text instead of retaining (instantiating) what it originally had. Sorry if this isn't clear.
  15. I'm making a somewhat comprehensive mod that I'd like to apply to radiant quests, but I'm not quite clear how they operate. When I look at BQ01, e.g., it seems like there are aliases for one location, one target, one letter. But if this is repeatable, how can you have more than one BQ01 letter with, say, assigned aliases from instance 1 attached to the first letter; and then the newly assigned aliases attached to the new letter (after completing first bounty). If there's only one alias for location, target, you can't have multiple bounty letters associated with BQ01, right ? So does the first one disappear ? Obviously I'm missing something here--anyone understand how these work ?
  16. Perhaps I misunderstood, but I thought in reading the CK wiki, I could define and build an array in the Event Oninit() and then reference that array (e.g. by checking what MyArray[index] is) from any functions in the script. I couldn't seem to get that to work. I have a couple of functions (in the same quest script) that overlap in their usage of a large array (50+ entries) and I would like to avoid doubling up the code. Is it possible to make this work ? Edit: Ah - I see. I split up the declaration as the example in the wiki suggests, put the latter portion in the Oninit and it worked beautifully.
  17. I have tried using: CorrectLocationText = MapMarker.getcurrentlocation() As String Where MapMarker is an objectReference (ie. the actual mapmarker from the cell view). Ie. from Riverwood's MapMarker, I'm just trying to pull 'Riverwood' as a string. What I'm doing is returning 'None' (I guess because the location is a reference, not a string..). Is there a correct / better way to approach this ?
  18. Thanks a lot - I made the brash assumption that you could 'instantiate' text into a note/book and it would just sit as an object in the world / be baked into saves. The workaround you outline is pretty clear and I'll get to work on that. I notice that the mod Missives offers a means (every time you look at the associated note !) of 'throwing away' the note. I guess I'll implement something like this or otherwise let the player know they're 'over-writing' previous notes. I had implemented a fixed book system to handle all of this--which involved hundreds of notes in the CK - but this dynamic approach is still probably in the end a little tidier. Thanks again - you've been a great help.
  19. I've made significant progress on my mod but am still having a hard time making this work as expected. As of now what I have is the note the player receives from the NPC has the correct text on it, but as soon as the alias is cleared, the note becomes [...] again. I'm sure this has something to do with 'stores text' and 'uses stored text' but I've tried several permutations across the letter alias and the textholder alias and nothing solves it. As of now I have: 3 aliases, in order: 1) npc who gives you note (optional, allow reserved, find matching ref using conditions--always fills ok 2) textholderAlias (stores text, with specific reference pointing to misc object ref in AAA markers with base object with text in name field) and 3) letter alias (create ref. to object -> my letter; create at ( my npc alias), uses stored text, stores text, initially disabled, optional) Any idea ? Edit: annoyingly enough, I went through this independently written tutorial for doing something similar to see if I was crazy, and I had exactly the same result: https://wiki.beyondskyrim.org/wiki/Arcane_University:Dynamic_Book_Entries I'm trying to use this idea in a context where the quest is repeatable so I need the text to be 'instantiated' into the note / book so that the quest can be stopped then started again for another note whilst keeping the original note (with different text) intact. Perhaps this is the difference between the tutorial above and what I'm trying to do.
  20. Thanks - I’m not understanding how it gets around having to declare properties in the script housing F() for each of those aliases smuggled in—eg if I have a search through a form list and I’m comparing the REF for each alias to items in that formlist, that would require a massive list of properties Alias1, Alias2…Alias99 each of which would point to the Alias’ in quest1, quest2…quest99 in my primary quest. Sorry if I misunderstand.
  21. In the mod I’m working on I have a primary quest that has a script containing function F(). In F() I need to reference aliases with the same name and function across many vanilla quests. quest 0 - aliasX quest 1 - aliasX Etc. I’ll be calling F() from each of these quests (unless there’s a better way) so could pass on which quest via F(0), F(1) etc. but I don’t understand how to avoid the hideousness of having a property for each quest alias in my primary quest script. Is there something I can do with an array to make this more efficient ?
  22. Yeah, I think you're on the right track. What I think is happening is that the aliases of the quest I'm pulling from fill--but milliseconds after I do my comparison.
  23. It's a ReferenceAlias and the quest (BQ01) and alias (mapmarker) are properly resolved in the properties window. But yeah, that's clearly the prob: I can't get the objectreference from that alias of that (vanilla) quest. Is there another comparison at a different level that would work ? I have a list of mapmarkers---that alias is filled with a mapmarker--I just need to compare them to find a match.
×
×
  • Create New...