Daedthr Posted July 26, 2012 Share Posted July 26, 2012 (edited) 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 July 26, 2012 by Daedthr Link to comment Share on other sites More sharing options...
theuseless Posted July 31, 2012 Share Posted July 31, 2012 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 More sharing options...
Recommended Posts