예제 #1
0
        public PQuestCreature(Creature_spawn Spawn, PQuestObjective Objective)
        {
            this.Spawn     = Spawn;
            Name           = Spawn.Proto.Name;
            this.Objective = Objective;

            if (Objective.Objective.Type == (byte)Objective_Type.QUEST_PROTECT_UNIT)
            {
                EvtInterface.AddEvent(Protected, Objective.Objective.Count, 1);
            }
        }
예제 #2
0
        public PQuestObject(PQuest_Info Info)
            : this()
        {
            this.Info = Info;
            Name      = Info.Name;
            Players   = new List <Player>();
            Stages    = new List <PQuestStage>();

            foreach (PQuest_Objective Obj in Info.Objectives)
            {
                Boolean exists = false;
                foreach (PQuestStage Stage in Stages)
                {
                    if (Stage.StageName == Obj.StageName)
                    {
                        exists = true;
                        break;
                    }
                }

                if (!exists)
                {
                    PQuestStage Stage = new PQuestStage();
                    Stage.StageName = Obj.StageName;
                    Stage.Number    = Stages.Count;

                    Stage.Description = Obj.Description;
                    Stages.Add(Stage);
                }

                foreach (PQuestStage Stage in Stages)
                {
                    if (Stage.StageName == Obj.StageName)
                    {
                        PQuestObjective Objective = new PQuestObjective();
                        Objective.Quest       = this;
                        Objective.Objective   = Obj;
                        Objective.ObjectiveID = Obj.Guid;


                        Objective.Count = 0;

                        Stage.AddObjective(Objective);
                    }
                }
            }
        }
예제 #3
0
 public void AddObjective(PQuestObjective Objective)
 {
     Objectives.Add(Objective);
 }