Aura.Channel.Scripting.Scripts.NpcScript.StartPtj C# (CSharp) Метод

StartPtj() публичный Метод

Starts PTJ quest.
public StartPtj ( int questId ) : void
questId int
Результат void
		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)");
			}
		}