Quest panels are used to display a list of quests to players and perform several quest-related actions such as accepting a quest. There are two quest panels in our virtual world. One is the panel that lists the available quests from an NPC. The other panel lists the player accepted quest log with completed and in-progress quests.
When a player triggers the quests event, we will pop up a panel to list the available quests from the NPC. Some quests are disabled because the player has not fulfilled the requirement of the quest. We will focus on listing the quests here and discuss the quest pre-requirement later.
We retrieve the list of quests for a given NPC. Every quest entry in the database contains a holder
field which is the NPC's name that own that quest. We need a server-side extension to query the database and pass the quest list to the quest panel, which is on client-side. We will...