예제 #1
0
        /// <summary>
        /// Change an MakeObject into a GameEvent
        /// "self"  = the local event
        /// "event_id:"id"" = the event id "id"
        /// "event_name:"Name"" = the event Name "Name"
        /// </summary>
        public GameEvent ToEvent()
        {
            try
            {
                switch (expr)
                {
                case "self":
                    return(InGame.Map.Events[MakeCommand.EventId]);

                default:
                    string[] temp = expr.Split(MakeCommand.ParamSeparator);
                    if (temp[0] == "event_id")
                    {
                        return(InGame.Map.Events[new MakeObject(temp[1].Substring(0, temp[1].Length)).ToInteger()]);
                    }
                    if (temp[0] == "event_name")
                    {
                        string name = new MakeObject(temp[1].Substring(0, temp[1].Length)).ToString();
                        foreach (GameEvent character in InGame.Map.Events)
                        {
                            if (character != null && character.CharacterName == name)
                            {
                                return(character);
                            }
                        }
                        throw new ArgumentException("Character name not found (Map ID:" + MakeCommand.MapId + ", event id:" + MakeCommand.EventId + ") : " + temp[1]);
                    }
                    return(null);
                }
            }
            catch
            {
                throw new ArgumentException("Syntax error (Map ID:" + MakeCommand.MapId + ", event id:" + MakeCommand.EventId + ") : " + expr);
            }
        }
예제 #2
0
        /// <summary>
        /// Change an MakeObject into a GameEvent
        /// "self"  = the local event
        /// "event_id:"id"" = the event id "id"
        /// "event_name:"Name"" = the event Name "Name"
        /// </summary>
        public GameEvent ToEvent()
        {
            try
            {
                switch (expr)
                {
                    case "self":
                        return InGame.Map.Events[MakeCommand.EventId];

                    default:
                        string[] temp = expr.Split(MakeCommand.ParamSeparator);
                        if (temp[0] == "event_id")
                        {
                            return InGame.Map.Events[new MakeObject(temp[1].Substring(0, temp[1].Length)).ToInteger()];
                        }
                        if (temp[0] == "event_name")
                        {
                            string name = new MakeObject(temp[1].Substring(0, temp[1].Length)).ToString();
                            foreach (GameEvent character in InGame.Map.Events)
                            {
                                if (character!=null && character.CharacterName == name) return character;
                            }
                            throw new ArgumentException("Character name not found (Map ID:" + MakeCommand.MapId + ", event id:" + MakeCommand.EventId + ") : " + temp[1]);
                        }
                        return null;
                }
            }
            catch
            {
                throw new ArgumentException("Syntax error (Map ID:" + MakeCommand.MapId + ", event id:" + MakeCommand.EventId + ") : " + expr);
            }
        }