Urgent help with Modern Algebra's Quest Journal needed

Status
Not open for further replies.

Kes

Veteran
Veteran
Joined
Aug 3, 2012
Messages
21,983
Reaction score
11,285
First Language
English
Primarily Uses
RMVXA
Exactly!

That's what I did with A Tale of a Common Man. The main quest had no reward except the ending itself, and players seemed to like the ending very much, so I guess it worked.
 

Trihan

Speedy Scripter
Veteran
Joined
Apr 12, 2012
Messages
1,725
Reaction score
1,113
First Language
English
Primarily Uses
Iavra, your snippet won't quite work for a few reasons, mainly that by the time the original merge is called the party has been deleted. What you need to do is edit the party merge script directly, and put this somewhere before the line which calls delete_party:

party2.quests.list.each { |quest| 

      0.upto(quest.objectives.size) { |objid|

        if party2.quests.revealed?(quest.id) && party2.quests[quest.id].objective_status?:)revealed, objid)

          party1.quests[quest.id].reveal_objective(objid)

        end

      }

    }

 

This will reveal for party1 any objectives which were revealed for party2, with the exception of quests that party2 didn't have visibility of in the first place.
 
Last edited by a moderator:

Iavra

Veteran
Veteran
Joined
Apr 9, 2015
Messages
1,797
Reaction score
861
First Language
German
Primarily Uses
That's why i extended Game_Party.merge and not Game_Parties.merge ;)
 
Last edited by a moderator:

Kes

Veteran
Veteran
Joined
Aug 3, 2012
Messages
21,983
Reaction score
11,285
First Language
English
Primarily Uses
RMVXA
Having just tried that snippet I can report that it does indeed add all the quests into one list.  So great!

What it doesn't do (yet) is record what progress (if any) was made in any of party 2's quests, everything shows up as incomplete.

What I could do is a series of conditional checks to see if the switches which record the completion of an individual quest is ON or not.  If it is, then a script call to re-complete the quest might do it. I shall have to experiment and see. I'm not sure how to get the data where only some of the objectives were completed, though.
 

Trihan

Speedy Scripter
Veteran
Joined
Apr 12, 2012
Messages
1,725
Reaction score
1,113
First Language
English
Primarily Uses
I thought reveal objective retained completion from before, but that doesn't make sense because it's party 2 that did the completion, not party 1. Hang on a sec.

Iavra: The thing is, Game_Party doesn't HAVE a merge method so that's even worse. :p
 

cabfe

Cool Cat
Veteran
Joined
Jun 13, 2013
Messages
2,337
Reaction score
2,505
First Language
French
Primarily Uses
RMVXA
There's a function already included to be used with a script call: objective_complete?
 

Kes

Veteran
Veteran
Joined
Aug 3, 2012
Messages
21,983
Reaction score
11,285
First Language
English
Primarily Uses
RMVXA
There's a function already included to be used with a script call: objective_complete?
I cannot know which individual objectives a player has completed.  What I can know is that a quest is completed  That is because I activate a switch for that quest telling me that.  I can, therefore, check those switches to see if they are ON or OFF.
 

Trihan

Speedy Scripter
Veteran
Joined
Apr 12, 2012
Messages
1,725
Reaction score
1,113
First Language
English
Primarily Uses
Change it to this.

party2.quests.list.each { |quest| 

      0.upto(quest.objectives.size) { |objid|

        if party2.quests.revealed?(quest.id) && party2.quests[quest.id].objective_status?:)revealed, objid)

          party1.quests[quest.id].reveal_objective(objid)

          if party2.quests[quest.id].objective_status?:)complete, objid)

            party1.quests[quest.id].complete_objective(objid)

          elsif party2.quests[quest.id].objective_status?:)failed, objid)

            party1.quests[quest.id].fail_objective(objid)

          end

        end

      }

    }
 

cabfe

Cool Cat
Veteran
Joined
Jun 13, 2013
Messages
2,337
Reaction score
2,505
First Language
French
Primarily Uses
RMVXA
I cannot know which individual objectives a player has completed.  What I can know is that a quest is completed  That is because I activate a switch for that quest telling me that.  I can, therefore, check those switches to see if they are ON or OFF.
It's exactly what it does:

objective_complete?(quest_id, objective_id_1, ... objective_id_n)

->          This is satisfied if all the listed objectives have been completed

You only enter what you need to be checked, regardless of the overall status of the quest.

Of course, if you need to check every objective separately that'll make a very long conditional branch, but still doable without switches.

Edit: Trihan's version using a script is easier than through traditional eventing in this case.
 
Last edited by a moderator:

Kes

Veteran
Veteran
Joined
Aug 3, 2012
Messages
21,983
Reaction score
11,285
First Language
English
Primarily Uses
RMVXA
Awesome mode officially confirmed.  That new variant works perfectly.

You have no idea how pleased I am about that.  To have the whole thing running smoothly is such a weight off my mind.

Thank you very much indeed.

And thank you, too, Iavra and cabfe, for your contributions to the thinking on this.
 
Last edited by a moderator:

Andar

Veteran
Veteran
Joined
Mar 5, 2013
Messages
30,251
Reaction score
7,136
First Language
German
Primarily Uses
RMMV
This thread is being closed, due to being solved. If for some reason you would like this thread re-opened, please report this post and leave a message why. Thank you.
 
Status
Not open for further replies.

Users Who Are Viewing This Thread (Users: 0, Guests: 1)

Latest Threads

Latest Profile Posts

Just saw an article stating a Back to the FutureXTransformer comic crossover--and Doc Browns car is an Autobot. I am ALL FOR THIS!!
Well I sure didn't know fans could overheat and die. Room fans.
Felt like I dodged a bomb, my project was fine right after I force resetted due to a crash as I have yet to start working on it today..... :kaoback:
I have no idea what to do with my evening. I was working on the next Slip into Ruby but I kinda want to do something else for a bit. But I have no idea what. Yay indecision!
I hope your life going smoothly. I wish you do not find difficulty today. It's time to take action. Wish everyone take a break from the usual emotional intensity of social media and simply enjoy the sunshine and light conversation with others. Take action when you see that things are flagging.

Forum statistics

Threads
99,176
Messages
962,647
Members
130,750
Latest member
AmateruYukitteru
Top