Esempio n. 1
0
 public static void SetQuestStepStatus(ActorPC pc, uint id, uint step, byte status)
 {
     SagaDB.Quest.QuestType type;
     if (id == 0 || step == 0)
     {
         return;
     }
     SagaDB.Quest.Quest quest;
     if (pc.QuestTable.ContainsKey(id))
     {
         quest = pc.QuestTable[id];
         type  = SagaDB.Quest.QuestType.OfficialQuest;
     }
     else
     {
         if (pc.PersonalQuestTable.ContainsKey(id))
         {
             quest = pc.PersonalQuestTable[id];
             type  = SagaDB.Quest.QuestType.PersonalQuest;
         }
         else
         {
             return;
         }
     }
     if (quest.Steps.ContainsKey(step) == false)
     {
         return;
     }
     SagaDB.Quest.Step step2 = quest.Steps[step];
     step2.Status = status;
     if (status == 2 && step2.nextStep != 0)
     {
         quest.Steps[step2.nextStep].Status = 1;
     }
     MapServer.charDB.UpdateQuest(pc, type, quest);
     Packets.Server.UpdateQuest p = new SagaMap.Packets.Server.UpdateQuest();
     p.SetQuestID(id);
     p.SetStep(step2);
     ActorEventHandlers.PC_EventHandler eh = (SagaMap.ActorEventHandlers.PC_EventHandler)pc.e;
     eh.C.netIO.SendPacket(p, eh.C.SessionID);
 }
Esempio n. 2
0
 public static void SetQuestStepStatus(ActorPC pc, uint id, uint step, byte status)
 {
     SagaDB.Quest.QuestType type;
     if (id == 0 || step == 0) return;
     SagaDB.Quest.Quest quest;
     if (pc.QuestTable.ContainsKey(id))
     {
         quest = pc.QuestTable[id];
         type = SagaDB.Quest.QuestType.OfficialQuest;
     }
     else
     {
         if (pc.PersonalQuestTable.ContainsKey(id))
         {
             quest = pc.PersonalQuestTable[id];
             type = SagaDB.Quest.QuestType.PersonalQuest;
         }
         else
             return;
     }
     if (quest.Steps.ContainsKey(step) == false) return;
     SagaDB.Quest.Step step2 = quest.Steps[step];
     step2.Status = status;
     if (status == 2 && step2.nextStep != 0)
     {
         quest.Steps[step2.nextStep].Status = 1;
     }
     MapServer.charDB.UpdateQuest(pc, type, quest);
     Packets.Server.UpdateQuest p = new SagaMap.Packets.Server.UpdateQuest();
     p.SetQuestID(id);
     p.SetStep(step2);
     ActorEventHandlers.PC_EventHandler eh = (SagaMap.ActorEventHandlers.PC_EventHandler)pc.e;
     eh.C.netIO.SendPacket(p, eh.C.SessionID);
 }