GODSBANE123456 Posted July 2, 2010 Share Posted July 2, 2010 I have created a quest with a new NPC where if you click yes, then it runs a result script so that it setstage "questid" 5. That all works, but i then have a script that says: begin scripteffectstart if getstage "questid" == 5 player.moveto TargetRatid setstage "questid" 10 endifend That is the part that doesn't work, where it should load me to the targetrat, it jmust instead ends the conversation... I thought about using a spell, but that would kinda defeat the purpose of me creating this script in the firstplace... I know very little about scripting, so any help would be greatly appreciated. Thanks in advance. Link to comment Share on other sites More sharing options...
ub3rman123 Posted July 2, 2010 Share Posted July 2, 2010 A result script that is written into the dialogue editor? First, you can chop off the begin and end blocks, they don't use that in result scripts. Second: What's the getstage check for? If you click yes and the stage isn't 5, it won't do anything at all. You may want to add in a check so the response is only available if the stage is 5. Remove it if it's unnecessary. Third, don't include a moveto in a result script! Set the stage to 9 instead, then add this to the quest script: Begin Gamemodeif getstate "QuestID" == 9setstage "QuestID" 10player.moveto "Marker"endifend If you don't, it'll trigger a serious bug that can mess up the camera. Link to comment Share on other sites More sharing options...
GODSBANE123456 Posted July 2, 2010 Author Share Posted July 2, 2010 No no no no, you misunderstood me, i have a result script that sets the quest stage to 5, then i have a normal script that checks if the quest stage is at 5, and if so, then it should do player.moveto... Link to comment Share on other sites More sharing options...
ub3rman123 Posted July 2, 2010 Share Posted July 2, 2010 Ah. In that case, Begin ScriptEffectStart is for spells, I believe. Use Begin Gamemode. Also, don't include more than one gamemode block in a script, it can cause problems, in case you've already got one. Just wedge that if block into it. Link to comment Share on other sites More sharing options...
GODSBANE123456 Posted July 2, 2010 Author Share Posted July 2, 2010 I tried changing it to begin gamemode, still with no success, and i believe that i only have one block, this is my entire script in full scriptname ACPlayerteletoarenabegin gamemode if getstage ACArenaChallengeQuest == 5 player.moveto ACTargetRatmid setstage ACArenaChallengeQuest 10 endifend Link to comment Share on other sites More sharing options...
ub3rman123 Posted July 2, 2010 Share Posted July 2, 2010 Are you sure that the dialogue's result script is running? Try inserting a message line after the setstage command, to see if it is setting the stage properly. Link to comment Share on other sites More sharing options...
GODSBANE123456 Posted July 2, 2010 Author Share Posted July 2, 2010 Ok, i am really confused... I added a message to it, just saying hello, lasting for 10 seconds, problem is... it never came up, but when i went into the console, and typed in getstage acarenachallengequest It said that it was at stage 5... Edit...I just did some in-game console experimenting, and i used the setstage command and set it to 0, but when i used getstage to check if the setstage worked, it said it was still at stage 5 and yes i do have a stage 0 Link to comment Share on other sites More sharing options...
David Brasher Posted July 2, 2010 Share Posted July 2, 2010 Oblivion scripting language is a very unreliable and poorly-documented thing. Often there are usages of commands which do not work and there is no logical explanation. I think you may have encountered one of them. This reminds me of a script in one of my unpublished mods which does not work. When you encounter something that does not work and you are sure that you have debugged it so that is would work if Oblivion scripting language was rational and logical, then it is time to try something else, like a new trigger. ; Result script on dialog info "Yes." Set ACArenaChallengequest.Variable to 1 SCN ACPlayerTeleToArena ; Quest script applied to quest ACArenaChallengequest. ShortACVariable Short DoOnce Begin GameMode If ACArenaChallengequest.ACVariable == 1 && DoOnce == 0 Player.MoveTo ACTargetRatmid Set DoOnce to 1 SetStage ACArenaChallengeQuest 10 EndIf End I don't know if this will work, but it is something to try. Link to comment Share on other sites More sharing options...
GODSBANE123456 Posted July 2, 2010 Author Share Posted July 2, 2010 Umm it says unknown variable or function for line 9 ACPlayerteletoa (Line 9 is in red) it wont let me save it, so therefore i cannot compile it Scriptname ACPlayerteletoArena;Quest script applied to quest ACArenaChallengeQuestShort ACPlayerteletoaShort DoOnceBegin GameMode if AcPlayerteletparena.ACPlayerteletoa == 1 && DoOnce == 0 Player.mnoveto ACTargetRatmid Set DoOnce to 1 Setstage ACArenaChallengeQuest 10 endifend Link to comment Share on other sites More sharing options...
slygothmog Posted July 2, 2010 Share Posted July 2, 2010 What is AcPlayerteletparena. ? Your script does not know what this is, thats why it's telling you it's unknown.If ACPlayerteletoa has already been set to the value 1 elsewhere ( via dialogue for eg ) then it should look more like this. scn ACPlayerteletoArena ;Quest script applied to quest ACArenaChallengeQuest Short ACPlayerteletoaShort DoOnce Begin GameModeif ACPlayerteletoa == 1 && DoOnce == 0Player.moveto ACTargetRatmidSet DoOnce to 1Setstage ACArenaChallengeQuest 10endifend Link to comment Share on other sites More sharing options...
Recommended Posts