コード例 #1
0
        public static void RemoveDelayedAction(string value, WorldClient client)
        {
            int id = int.Parse(value);

            DelayedActionRecord record = DelayedActionRecord.DelayedActions.Find(r => r.Id == id);

            DelayedActionManager.DelayedActions.RemoveAll(act => act.Record == record);
            record.RemoveInstantElement();

            client.Character.Reply($"Successfully deleted DelayedAction {id}.");
        }
コード例 #2
0
        public static void DJCommand(string value, WorldClient client)
        {
            int id = DelayedActionRecord.DelayedActions.DynamicPop(x => x.Id);
            DelayedActionRecord record = new DelayedActionRecord(id, "Monsters", 30, value, client.Character.Map.Id.ToString());

            record.AddElement();
            DelayedAction action = new DelayedAction(record);

            DelayedActionManager.AddAction(action);
            action.Execute();
        }
コード例 #3
0
        public static void DjCommand(string value, WorldClient client)
        {
            if (value == null)
            {
                client.Character.ReplyError("You must provide a list of monsters to spawn. Example: 23,24,25,26.");
                return;
            }

            int id = DelayedActionRecord.DelayedActions.DynamicPop(x => x.Id);
            DelayedActionRecord record =
                new DelayedActionRecord(id, "Monsters", 30, value, client.Character.Map.Id.ToString());

            record.AddElement();
            DelayedAction action = new DelayedAction(record);

            DelayedActionManager.AddAction(action);
            action.Execute();
        }
コード例 #4
0
        public static void CreateDelayedAction(string value, WorldClient client)
        {
            var split = value.Split(' ');

            string actionType = split[0];            // for dungeon: Monsters
            int    interval   = int.Parse(split[1]); // ex: 30 (in seconds)
            string value1     = split[2];            // For dungeons: list of monsters
            var    value2     = client.Character.Map.Id.ToString();

            DelayedActionRecord record = new DelayedActionRecord(actionType, interval, value1, value2);

            record.AddInstantElement();

            DelayedAction action = new DelayedAction(record);

            DelayedActionManager.AddAction(action);
            action.Execute();

            client.Character.Reply($"Successfully created DelayedAction record {record}.");
        }
コード例 #5
0
        public static void TestCommand(string value, WorldClient client)
        {
            client.SendRaw(RawDataManager.GetRawData("gvgpanel"));
            client.Character.Reply("Done");
            //  client.Character.SpellAnim(7356);
            return;

            client.Character.Record.Stats.LifePoints         = 99999;
            client.Character.Record.Stats.ActionPoints.Base += 99;
            client.Character.Record.Stats.MaxLifePoints      = 99999;
            client.Character.RefreshStats();
            return;

            int id = DelayedActionRecord.DelayedActions.DynamicPop(x => x.Id);
            DelayedActionRecord record = new DelayedActionRecord(id, "CharacterMonster", 50, value, client.Character.Map.Id.ToString());

            record.AddElement();
            DelayedAction action = new DelayedAction(record);

            DelayedActionManager.AddAction(action);
            action.Execute();
        }
コード例 #6
0
 public DelayedAction(DelayedActionRecord record)
 {
     this.Record = record;
     this.Timer  = new ActionTimer(record.Interval * 1000, Execute, true);
     this.Action = (DelayedActionEnum)Enum.Parse(typeof(DelayedActionEnum), Record.ActionType);
 }