Plastrader Posted January 18, 2013 Share Posted January 18, 2013 (edited) For the first question I'm sorry to say that I don't know as I haven't come to dialogue boxes yet.I'm stuck at the quest dialogues... :(And the dialogue bug... For the second one.Seeing I haven't worked with these things I'm just taking a wild guess.You need to play around with "Conditions"If this isn't the messages you're using, which ones are you using? And you might also have to extend your script even further to cope with those conditional items. Please see screenshot for reference. Edited January 18, 2013 by Plastrader Link to comment Share on other sites More sharing options...
Sjogga Posted January 18, 2013 Share Posted January 18, 2013 (edited) The first problem is solved by splitting your message in two. Delete the five last entries of the first message, then add an option named "Next". Create a new message with the five options you removed and an option named "Previous". After that, open your script and make it look something like this: Scriptname PoteriRaziali extends ObjectReference SPELL Property pPowerBretonAbsorbSpell Auto SPELL Property pRaceOrcBerserk Auto SPELL Property pPowerArgonianHistskin Auto SPELL Property pPowerDarkElfFlameCloak Auto SPELL Property pPowerHighElfMagickaRegen Auto SPELL Property pPowerImperialPacify Auto SPELL Property pPowerKhajiitNightEye Auto SPELL Property pPowerNordBattleCry Auto SPELL Property pPowerRedguardStaminaRegen Auto SPELL Property pPowerWoodElfCommandAnimal Auto Message Property ChoiceMessage01 auto Message Property ChoiceMessage02 auto Message Property Rimozione Auto int count = 0 Event OnEquipped(Actor reader) if (count < 4) Choice01() elseif (count >= 4) int unchoice = Rimozione.show() if (unchoice == 0) ; do nothing elseif (unchoice == 1) ; Assorbi incantesimo Game.GetPlayer().RemoveSpell(pPowerBretonAbsorbSpell) count = count - 1 elseif (unchoice == 2) ; Berserk Game.GetPlayer().RemoveSpell(pRaceOrcBerserk) count = count - 1 elseif (unchoice == 3) ; Pelle di Hist Game.GetPlayer().RemoveSpell(pPowerArgonianHistskin) count = count - 1 elseif (unchoice == 4) ; Manto infuocato Game.GetPlayer().RemoveSpell(pPowerDarkElfFlameCloak) count = count - 1 elseif (unchoice == 5) ; Nobile di nascita Game.GetPlayer().RemoveSpell(pPowerHighElfMagickaRegen) count = count - 1 elseif (unchoice == 6) ; Voce dell'imperatore Game.GetPlayer().RemoveSpell(pPowerImperialPacify) count = count - 1 elseif (unchoice == 7) ; Occhio notturno Game.GetPlayer().RemoveSpell(pPowerKhajiitNightEye) count = count - 1 elseif (unchoice == 8) ; Grido di battaglia Game.GetPlayer().RemoveSpell(pPowerNordBattleCry) count = count - 1 elseif (unchoice == 9) ; Scatto di adrenalina Game.GetPlayer().RemoveSpell(pPowerRedguardStaminaRegen) count = count - 1 elseif (unchoice == 10) ; Comanda animale Game.GetPlayer().RemoveSpell(pPowerWoodElfCommandAnimal) count = count - 1 endif endif EndEvent Function Choice01() int choice = ChoiceMessage01.show() if (choice == 0) ; do nothing elseif (choice == 1) ; Assorbi incantesimo Game.GetPlayer().AddSpell(pPowerBretonAbsorbSpell) count = count + 1 elseif (choice == 2) ; Berserk Game.GetPlayer().AddSpell(pRaceOrcBerserk) count = count + 1 elseif (choice == 3) ; Pelle di Hist Game.GetPlayer().AddSpell(pPowerArgonianHistskin) count = count + 1 elseif (choice == 4) ; Manto infuocato Game.GetPlayer().AddSpell(pPowerDarkElfFlameCloak) count = count + 1 elseif (choice == 5) ; Nobile di nascita Game.GetPlayer().AddSpell(pPowerHighElfMagickaRegen) count = count + 1 elseif (choice == 6) Choice02() endIf endFunction Function Choice02() int choice = ChoiceMessage02.show() if(choice == 0) elseif(choice == 1 Game.GetPlayer().AddSpell(pPowerImperialPacify) count = count + 1 elseif (choice == 2) ; Occhio notturno Game.GetPlayer().AddSpell(pPowerKhajiitNightEye) count = count + 1 elseif (choice == 3) ; Grido di battaglia Game.GetPlayer().AddSpell(pPowerNordBattleCry) count = count + 1 elseif (choice == 4) ; Scatto di adrenalina Game.GetPlayer().AddSpell(pPowerRedguardStaminaRegen) count = count + 1 elseif (choice == 5) ; Comanda animale Game.GetPlayer().AddSpell(pPowerWoodElfCommandAnimal) count = count + 1 elseif (choice == 6) Choice01() endif endFunction Split up the Unchoice in the same manner. Edited January 18, 2013 by Sjogga Link to comment Share on other sites More sharing options...
DreusFar Posted January 18, 2013 Author Share Posted January 18, 2013 yes that was the right way. I used an if (game.getplayer().hasspell(SPELL)) after every removal so if the player doesn't have the spell papyrus doesn't do "count=count - 1". Scriptname ScriptPoteriRaziali extends ObjectReference SPELL Property pPowerBretonAbsorbSpell Auto SPELL Property pRaceOrcBerserk Auto SPELL Property pPowerArgonianHistskin Auto SPELL Property pPowerDarkElfFlameCloak Auto SPELL Property pPowerHighElfMagickaRegen Auto SPELL Property pPowerImperialPacify Auto SPELL Property pPowerKhajiitNightEye Auto SPELL Property pPowerNordBattleCry Auto SPELL Property pPowerRedguardStaminaRegen Auto SPELL Property pPowerWoodElfCommandAnimal Auto Message Property ChoiceMessage01 Auto Message Property ChoiceMessage02 Auto Message Property UnchoiceMessage01 Auto Message Property UnchoiceMessage02 Auto int count = 0 Function Choice01() int choice=ChoiceMessage01.show() if (choice==0) ;do nothing elseif (choice==1) Game.GetPlayer().AddSpell(pPowerBretonAbsorbSpell) count = count+1 elseif (choice==2) Game.GetPlayer().AddSpell(pRaceOrcBerserk) count = count+1 elseif (choice==3) Game.GetPlayer().AddSpell(pPowerArgonianHistskin) count=count+1 elseif (choice==4) Game.GetPlayer().AddSpell(pPowerDarkElfFlameCloak) count=count+1 elseif (choice==5) Game.GetPlayer().AddSpell(pPowerHighElfMagickaRegen) count=count+1 elseif (choice==6) Choice02() endif endFunction Function Choice02() int choice=ChoiceMessage02.show() if (choice==0) Choice01() elseif (choice ==1) Game.GetPlayer().AddSpell(pPowerImperialPacify) count=count+1 elseif (choice ==2) Game.GetPlayer().AddSpell(pPowerKhajiitNightEye) count=count+1 elseif(choice==3) Game.GetPlayer().AddSpell(pPowerNordBattleCry) count=count+1 elseif(choice==4) Game.GetPlayer().AddSpell(pPowerRedguardStaminaRegen) count=count+1 elseif(choice==5) Game.GetPlayer().AddSpell(pPowerWoodElfCommandAnimal) count=count+1 endif endFunction Function Unchoice01() int unchoice=UnchoiceMessage01.show() if (unchoice==0) ;do nothing elseif (unchoice==1) if (Game.GetPlayer().HasSpell(pPowerBretonAbsorbSpell)) Game.GetPlayer().RemoveSpell(pPowerBretonAbsorbSpell) count = count - 1 endif elseif (unchoice==2) if (Game.GetPlayer().HasSpell(pRaceOrcBerserk)) Game.GetPlayer().RemoveSpell(pRaceOrcBerserk) count = count - 1 endif elseif (unchoice==3) if (Game.GetPlayer().HasSpell(pPowerArgonianHistskin)) Game.GetPlayer().RemoveSpell(pPowerArgonianHistskin) count= count - 1 endif elseif (unchoice==4) if (Game.GetPlayer().HasSpell(pPowerDarkElfFlameCloak)) Game.GetPlayer().RemoveSpell(pPowerDarkElfFlameCloak) count=count - 1 endif elseif (unchoice==5) if (Game.GetPlayer().HasSpell(pPowerHighElfMagickaRegen)) Game.GetPlayer().RemoveSpell(pPowerHighElfMagickaRegen) count=count - 1 endif elseif (unchoice==6) Unchoice02() endif endFunction Function Unchoice02() int unchoice=UnchoiceMessage02.show() if (unchoice==0) Unchoice01() elseif (unchoice==1) if (Game.GetPlayer().HasSpell(pPowerImperialPacify)) Game.GetPlayer().RemoveSpell(pPowerImperialPacify) count = count - 1 endif elseif (unchoice==2) if (Game.GetPlayer().HasSpell(pPowerKhajiitNightEye)) Game.GetPlayer().RemoveSpell(pPowerKhajiitNightEye) count = count - 1 endif elseif (unchoice==3) if (Game.GetPlayer().HasSpell(pPowerNordBattleCry)) Game.GetPlayer().RemoveSpell(pPowerNordBattleCry) count=count - 1 endif elseif (unchoice==4) if (Game.GetPlayer().HasSpell(pPowerRedguardStaminaRegen)) Game.GetPlayer().RemoveSpell(pPowerRedguardStaminaRegen) count=count - 1 endif elseif (unchoice==5) if (Game.GetPlayer().HasSpell(pPowerWoodElfCommandAnimal)) Game.GetPlayer().RemoveSpell(pPowerWoodElfCommandAnimal) count=count - 1 endif endif endFunction Event OnEquipped(Actor reader) if (count < 4) Choice01() elseif (count >= 4) Unchoice01() endif EndEvent I managed to do even the rest splitting the messages. So I've finished thank you to all of you for helping me Link to comment Share on other sites More sharing options...
Recommended Posts