Jump to content

Getting My Quest to Trigger


Daedthr

Recommended Posts

Hello people

 

At the moment I've been making a quest to be part of a quest line mode I'm making, but I'm having trouble getting it to run. You see the quest I'm making has two alternative start stages (Stage 10 or Stage 15). Your meant to get the first one if your not in the Mages Guild, you level 20 or higher and you have got 67 fame of higher. Your meant to get the second one if you are Arch-Mage, you're level 20 or higher and you have got 45 fame or higher. The problem is it doesn't seem to be working.

 

I started a new test character walked him to the ICArena and to test it first I put his fame to 66. He's not joined the Mages Guild and I used the console to put him at level 19. I went into the arena, did one fight, he had 67 fame now. Then I used modpcs blade 25 to get him up 25 levels in blade, so he could level up. So then I slept and leveled him up. Hes now level 20 with 67 fame and hes not in the Mages Guild, but I didn't get the stage. I don't know why its not working, here is the script I made to try and start the quest:

 

ScriptName RamPolFollow

short raminusfollow

Begin gamemode

if ( player.GetStage IA01UnofficialBusiness < 10 ) && ( player.GetFactionRank MagesGuild == -1 ) && ( GetPCFame >= 67 ) && ( player.GetLevel >= 20 )
SetStage IA01UnofficialBusiness 10

endif

if ( player.GetStage IA01UnofficialBusiness < 10 ) && ( player.GetFactionRank MagesGuild == 9 )  && ( GetPCFame >= 45 ) && ( player.GetLevel >= 20 )
SetStage IA01UnofficialBusiness 15

endif

end

 

Any help to why its not working would be appreciated.

 

Daedthr

 

EDIT: I got it working by flagging the Start Game Enabled button. Just found out that quest scripts don't run unless the quest is running and my quest was set to start running by its own script. Doh!

 

Onto the next topic then....

Edited by Daedthr
Link to comment
Share on other sites

Making a quest with begin GameMode blocks initially enabled is considered sloppy to some. It will make your code run every frame in every cell. It isn't a big problem, it has a simply solution. I'm sorry about pm'ing you this but I feel it is that important to say it twice.

 

You can make the code disable itself with a simple function. Once the function has run, it will make the code stop running in each frame.

 

ScriptName RamPolFollow

short raminusfollow

Begin gamemode

if stopper == 0                            ;<--this is going to be set to 1 by an event, which also enables this quest.
  stopquest RamPolFollowQuest ;<--whatever your quest name is here
else

if ( player.GetStage IA01UnofficialBusiness < 10 ) && ( player.GetFactionRank MagesGuild == -1 ) && ( GetPCFame >= 67 ) && ( player.GetLevel >= 20 )
       SetStage IA01UnofficialBusiness 10

endif

if ( player.GetStage IA01UnofficialBusiness < 10 ) && ( player.GetFactionRank MagesGuild == 9 )  && ( GetPCFame >= 45 ) && ( player.GetLevel >= 20 )
       SetStage IA01UnofficialBusiness 15

endif

endif
    set stopper to 0
    return
end

 

Now, uncheck the box which makes it start game enabled. I assume that you are setting IA01UnofficialBusiness to another number (is it 5?). You could do a player level check to see if they are 20 or higher, then enable the quest. Or you could make a check that did this on an activator in an onload block. Any way that this can make sense to you will do.

 

What I am suggesting is that you make an activator which simply does this:

 

scn IA01questStarterScript

begin onLoad

if player.GetLevel >= 20
    set RamPolFollowQuest.stopper to 1
    startquest RamPolFollowQuest ;<--whatever your quest name is here
endif

end

 

Now you can attatch this script to an activator object (you don't even need to place it in visible range). Whenever the player enters a room with it in it (like the mages guild buildings), it will make a check and potentially update the quest data, forcing the code to run. When the code is done running, it will set the stopper back to 0, which will make it disable itself. Nifty, huh? You can add the activators to the mage's guilds and not worry, just let people know they are there. Let people know it will not conflict with other mods, as it won't. Unless you don't change the form ID....

 

This should work well for you,

theuseless

Link to comment
Share on other sites

  • Recently Browsing   0 members

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