We had a heated debate in the staff chat regarding an issue with quest log commands. I'd like to get the community's opinion on this matter.
At the moment, when using checkquest() the returned values are:
As a scripter, these values have always frustrated me as I couldn't use ! for checking if a user didn't have a quest, as 0 (has quest) would make this true. Not to mention that having 0 as a true value just doesn't make sense.
So for my rewrite of checkquest, now named questprogress() I changed the values to:
This is exactly how the command works in AEGIS. Now, the point at which the debate became heated was in regards to me removing the ability to check if a quest is marked as active or inactive. I explained my reasonings as follows:
The debate was to keep the ability to check if a quest is marked as active/inactive vs not having that ability.
I personally didn't see the purpose of such a function, due to the fact that the active/inactive state's function is purely to tell the client where it should show up in the log UI. And that from a script developers perspective, it just doesn't make sense to ever perform differently based on if a quest was marked as inactive in a quest log by the player (because it's often ton to hide a quest for later) because it's still considered an active state.
So, like I said, I've come here to ask your opinion. Would you ever make use of a function to check if a player had marked a quest as inactive? Or do you purely only need the ability to check if they don't have the quest, if they have it, and if they've completed it?
My vote is to only have the three options, as logically it makes more sense. What is your opinion on this matter?
At the moment, when using checkquest() the returned values are:
- -1 = Quest not started (not in quest log)
- 0 = Quest has been given, but the state is "inactive"
- 1 = Quest has been given, and the state is "active"
- 2 = Quest completed
As a scripter, these values have always frustrated me as I couldn't use ! for checking if a user didn't have a quest, as 0 (has quest) would make this true. Not to mention that having 0 as a true value just doesn't make sense.
So for my rewrite of checkquest, now named questprogress() I changed the values to:
- 0 = Quest not started (not in quest log)
- 1 = Quest has been given (state is ignored)
- 2 = Quest completed
This is exactly how the command works in AEGIS. Now, the point at which the debate became heated was in regards to me removing the ability to check if a quest is marked as active or inactive. I explained my reasonings as follows:
- Even though a quest is marked as inactive by a player, it is still considered a quest that is in-progress, and therefore in an active state of having the quest.
- Displaying different dialog / performing different actions to a player if they marked a quest as inactive can cause for some serious user experience issues (confusion).
why? Because, let's say a user had accidently marked a quest as inactive, or did it long ago then forgot. Then they went to do the quest and it wouldn't let them progress due to the fact that the quest was marked as inactive. Now you have an upset player who doesn't know what's going on.
- The inactive/active state in my opinion, is purely cosmetic (how it's displayed in the quest log UI), and should not be used in logic situations such as determining the progress of the quest in a script file.
- I don't know of any script or script dev that would actively make use of checking if a player has marked a quest as inactive.
- No official script checks if a user has marked a quest as inactive, because an inactive quest is still a quest that's in progress and therefore active in the eyes of the server.
- Could cause confusion for new script developers.
The debate was to keep the ability to check if a quest is marked as active/inactive vs not having that ability.
I personally didn't see the purpose of such a function, due to the fact that the active/inactive state's function is purely to tell the client where it should show up in the log UI. And that from a script developers perspective, it just doesn't make sense to ever perform differently based on if a quest was marked as inactive in a quest log by the player (because it's often ton to hide a quest for later) because it's still considered an active state.
So, like I said, I've come here to ask your opinion. Would you ever make use of a function to check if a player had marked a quest as inactive? Or do you purely only need the ability to check if they don't have the quest, if they have it, and if they've completed it?
My vote is to only have the three options, as logically it makes more sense. What is your opinion on this matter?
Last edited by a moderator:






