public void StartPtj(int questId)
{
try
{
var scroll = Item.CreateQuestScroll(questId);
var quest = scroll.Quest;
quest.MetaData.SetByte("QMRTCT", (byte)quest.Data.RewardGroups.Count);
quest.MetaData.SetInt("QMRTBF", 0x4321); // (specifies which groups to display at which position, 1 group per hex char)
quest.MetaData.SetString("QRQSTR", this.NPC.Name);
quest.MetaData.SetBool("QMMABF", false);
// Calculate deadline, based on current time and quest data
var now = ErinnTime.Now;
var diffHours = Math.Max(0, quest.Data.DeadlineHour - now.Hour - 1);
var diffMins = Math.Max(0, 60 - now.Minute);
var deadline = DateTime.Now.AddTicks(diffHours * ErinnTime.TicksPerHour + diffMins * ErinnTime.TicksPerMinute);
quest.Deadline = deadline;
// Do quests given out by NPCs *always* go into the
// quest pocket?
this.Player.Inventory.Add(scroll, Pocket.Quests);
ChannelServer.Instance.Events.OnCreatureStartedPtj(this.Player, quest.Data.PtjType);
}
catch (Exception ex)
{
Log.Exception(ex, "NpcScript.StartPtj: Quest '{0}'", questId);
this.Msg("(Error)");
}
}