Jump to content

Can't get Radiant aliases to fill


kromey

Recommended Posts

Using the tutorial on the CK wiki as a guide, I tried to set up the first of what will become half a dozen Radiant locations; the idea is to find a random bandit, Forsworn, or necromancer boss and give them an item the player has to track down. Starting small I tried to do just the first, and when it failed I backed it down to just a random bandit boss -- just like the tutorial on the CK wiki!

 

Here's my list of quest aliases (if I can figure out how to insert an image here...):

 

(Boy, that's hard to read at the size the site scales it to...) LunarForge and Player are plain ol' "regular" reference aliases, pointing to exactly what you think they would. They work fine.

 

Fragment01Location, however, does not. As far as I can tell, this alias is failing to fill. Here's how it is defined:

 

Aside from the name, I see no difference between it and the ThiefLocation alias from the CK wiki's tutorial.

 

I'm determining that Fragment01Location is failing to fill based on this snippet in a quest fragment:

 

Debug.Notification("Fragment 1 is in "+Alias_Fragment01Location.GetLocation())
 
SetObjectiveDisplayed(10, True) ;Display our objective
Alias_Fragment01MapMarker.GetReference().AddToMap()

Edit: Weird, the last paragraph got eaten by the site apparently...

Can anyone help me figure out why my Radiant location alias is failing to fill? I could put the items out in the world myself, but that's boring, and besides this should work -- so why isn't it? I'm also assuming that the quest failing to fill in these non-optional aliases is the reason for two other issues I'm now having (the "start game enabled" quest doesn't start, and the text replacement variables in a quest objective have stopped filling in (were working perfectly before I added these Radiant aliases)), but if not that'll be something else to figure out later...

 

Double Edit:

Also eaten in the former last paragraph was the note that the Notification does appear, and says, "Fragment 1 is in None". This is the primary reason I believe this alias is failing to fill, I just can't figure out why.

Edited by kromey
Link to comment
Share on other sites

My first thought is of course it's filling, because it's not optional. The script fragment wouldn't fire if the quest didn't start, and the quest wouldn't start if the non-optional alias wasn't filled. My second thought is does the location store text? I'm confused by the 'none' since filled ref aliases will return something like [aliasref] or something like that when you put them in text without storing text. I'm not certain what a non text storing loc alias would display.

 

Try clicking 'stores text' just for testing. You would also need it if you're doing something like putting <Alias=Fragment01Location> in a note or something.

 

Alternatively, try something like:

 

If(Alias_Fragment01Location.GetLocation())
     Debug.Notification("Well, it's not empty!")
else
     Debug.Notification("Wow, it's rly empty >.<")
endif

Link to comment
Share on other sites

Ah, good point. I could easily test that by seeing what the Player and/or LunarForge aliases look like in text (although they're reference aliases, not location aliases, I'd imagine the behavior should be at least approximate). And I'll try your script fragment as well -- couldn't hurt at any rate.

 

My thoughts on the quest starting despite the failure were that that was why it wasn't starting automatically, despite "starts game enabled" being checked, and that my console commands (which I now note I failed to mention -- oops) were forcing the quest to start despite failing to fill non-optional aliases.

 

Good point on the "stores text" thing, I would have been back here asking about it when my text replacement failed later on, so thanks for that! :cool:

Link to comment
Share on other sites

Major facepalm here. :facepalm:

 

Look closely at the Fragment01Location alias. Look especially at its conditions. Compare those carefully to the ones the tutorial uses.

 

See it?

 

I was using the condition functions HasRefType and HasKeyword; I needed to be using LocationHasRefType and LocationHasKeyword. Y'know, just like the CK tutorial says. :rolleyes: I guess I need to be more careful when I RTFM...

 

The good news is that it works now. :dance: The quest auto-starts, my global variables used in text replacement in the quest objective are being evaluated now, and for the record the aforementioned Debug.Notification line outputs "Fragment 1 is in [Locat" (I assume it got truncated trying to say "[Location]" or something like that) when the alias fills successfully. And, we now know that using console commands to start/progress a quest indeed does force a quest to start even when non-optional aliases fail to fill!

 

Thanks for the help anyway, SinderionsBones, and like I already mentioned you preemptively solved my headache trying to figure out why the text replacement in my quest note wasn't working. :P

Link to comment
Share on other sites

  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...