Jump to content

Need help with Akatosh Blessing Mod


KennithEM

Recommended Posts

The Script is not working.


ScriptName AkatoshBlessingboxSCRIPT

short q

Begin GameMode

set q to GetStageDone mq01 90


if q == 1

player.additemns AkatoshBlessingRemotebox 1

SetMessageIcon "icons\AkatoshBlessing\statuegodakatosh.dds"

MessageEX "Akatosh Offers You His Blessing" 6

stopquest AkatoshBlessingRemoteboxqust


endif


end

Link to comment
Share on other sites

There's seems no serious error on the first glance, except that quest ID have propably a misstype - StopQuest AkatoshBlessingRemoteBoxQuest ? This script uses OBSE commands too, if you can't compile it, is OBSE working in your editor? Maybe to make it in more dumb way will help:

ScriptName AkatoshBlessingboxSCRIPT
short q
short stage

Begin GameMode

set stage to GetStage MQ01
if player.IsInInterior == 0 && stage >= 90 ;player got out of sewers
   set q to 1
else
   set q to 0
endif
 
if  q == 1
   if player.GetItemCount AkatoshBlessingRemoteBox == 0
      player.additemns AkatoshBlessingRemotebox 1
      SetMessageIcon "icons\AkatoshBlessing\statuegodakatosh.dds"
      MessageEX "Akatosh Offers You His Blessing" 6
      stopquest AkatoshBlessingRemoteboxqust ;maybe a misstype here?
   endif
endif 
 
end

According to my CS, stage 90 in this quest will just add journal entry and set stage to 100. Stage 100 will stop both MQ01 and CharacterGen quests and will make this quest completed.

 

Edit: Changed a condition setting q, as this quest isn't started automaticaly.

Edited by RomanR
Link to comment
Share on other sites

I really hope i don't look that dumb but I'm interpreting that you mean to make it like this.


ScriptName AkatoshBlessingboxSCRIPT

short stage


Begin GameMode


set stage to GetStage MQ01

if player.IsInInterior == 0 && stage >= 90 ;player got out of sewers

set stage to 1

else

set stage to 0

endif


if q == 1

if player.GetItemCount AkatoshBlessingRemoteBox == 0

player.additemns AkatoshBlessingRemotebox 1

SetMessageIcon "icons\AkatoshBlessing\statuegodakatosh.dds"

MessageEX "Akatosh Offers You His Blessing" 6

stopquest AkatoshBlessingRemoteboxqust

endif

endif


end

Link to comment
Share on other sites

No, I ment it exactly as I posted. I'm using extra variable and condition to set q variable, so as you exit the tutorial sewers and you see the a message box upon its completion, the q variable will be set to 1. That's why I called using an extra variable and changed condition for setting q a "dumber way". If it's not working, you can use "show" command in console to see if both variables are set correctly, as this is a quest script.

Link to comment
Share on other sites

For starters, is AkatoshBlessingboxSCRIPT your quest script? It looks like an object script you put on a box you named AkatoshBlessingbox. An object script only runs when the object is in the same cell as the player OR the object is in the player's inventory.

 

Secondly, you should start now, giving your newly created things and scripts names that distinguish them from vanilla things as well as those that other mods have, like KEMAkatoshBlessingboxSCRIPT.

Edited by GamerRick
Link to comment
Share on other sites

Can you try something then?

 

Open the console and enter (or whatever the actual quest ID is) and then exit the console:

StartQuest AkatoshBlessingRemoteboxqust

If this doesn't cause it to add the item and then stop the quest again, let us know.

 

Other than that, to debug this you can add PrintToConole commands (PrintC for short) after every instruction, like so:

ScriptName AkatoshBlessingboxSCRIPT
short q
Begin GameMode
set q to GetStageDone mq01 90
PrintC "MQ01 stage 90 done = %g", q

if  q == 1
player.additemns AkatoshBlessingRemotebox 1
PrintC "Added the remote box to the player"
SetMessageIcon "icons\AkatoshBlessing\statuegodakatosh.dds"
PrintC "Set the message icon"
MessageEX "Akatosh Offers You His Blessing" 6
PrintC "MessageEX processed"
stopquest AkatoshBlessingRemoteboxqust
PrintC "ALL DONE!"

endif

end

Then you would open the console again to see what messages get printed there.

 

I know that the MessageEX command can compile but then fail to actually run if it doesn't like the inputs for some reason. Many OBSE commands are like that and can then cause the script to crash, which then causes the system to never run it again. You will never see anything that tells you this happened. Hence the PrintC's to see what actually works and identify the instruction that is causing the problem.

 

According to the OBSE docs, the SetMessageIcon command will look for that icon at Data\Textures\Menus\icons\AkatoshBlessing\statuegodakatosh.dds

Make sure the file is there. I have no idea what happens if it isn't, but even if that crashed the script, it still should have executed the above instructions and added the item to the player.

Edited by GamerRick
Link to comment
Share on other sites

  • Recently Browsing   0 members

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