Пример #1
0
    public static TriggerFuncEntry createString(Func <TriggerExecutor, TriggerFuncData, TriggerArg, string> func)
    {
        TriggerFuncEntry re = new TriggerFuncEntry();

        re.stringFunc = func;
        re._type      = STriggerObjectType.String;
        return(re);
    }
Пример #2
0
    public static TriggerFuncEntry createObject(Func <TriggerExecutor, TriggerFuncData, TriggerArg, object> func)
    {
        TriggerFuncEntry re = new TriggerFuncEntry();

        re.objectFunc = func;
        re._type      = STriggerObjectType.Object;
        return(re);
    }
Пример #3
0
    public static TriggerFuncEntry createBoolean(Func <TriggerExecutor, TriggerFuncData, TriggerArg, bool> func)
    {
        TriggerFuncEntry re = new TriggerFuncEntry();

        re.boolFunc = func;
        re._type    = STriggerObjectType.Boolean;
        return(re);
    }
Пример #4
0
    public static TriggerFuncEntry createFloat(Func <TriggerExecutor, TriggerFuncData, TriggerArg, float> func)
    {
        TriggerFuncEntry re = new TriggerFuncEntry();

        re.floatFunc = func;
        re._type     = STriggerObjectType.Float;
        return(re);
    }
Пример #5
0
    public static TriggerFuncEntry createVoid(Action <TriggerExecutor, TriggerFuncData, TriggerArg> func)
    {
        TriggerFuncEntry re = new TriggerFuncEntry();

        re.voidFunc = func;
        re._type    = STriggerObjectType.Void;
        return(re);
    }
Пример #6
0
    /** 获取string值 */
    protected virtual string toGetStringFuncValue(TriggerFuncData func, TriggerArg arg)
    {
        TriggerFuncEntry entry = _funcMaker.get(func.id);
        Func <TriggerExecutor, TriggerFuncData, TriggerArg, string> f;

        if (entry == null || (f = entry.stringFunc) == null)
        {
            throwError("未找到的方法类型,String", func.id);
            return("");
        }

        return(f(this, func, arg));
    }
Пример #7
0
    /** 获取float值 */
    protected virtual float toGetFloatFuncValue(TriggerFuncData func, TriggerArg arg)
    {
        TriggerFuncEntry entry = _funcMaker.get(func.id);
        Func <TriggerExecutor, TriggerFuncData, TriggerArg, float> f;

        if (entry == null || (f = entry.floatFunc) == null)
        {
            throwError("未找到的方法类型,Float", func.id);
            return(0);
        }

        return(f(this, func, arg));
    }
Пример #8
0
    /** 执行同步方法 */
    protected virtual void toDoActionFunc(TriggerFuncData func, TriggerArg arg)
    {
        TriggerFuncEntry entry = _funcMaker.get(func.id);

        if (entry == null)
        {
            throwError("未找到的方法类型,void", func.id);
            return;
        }

        if (!entry.doEver(this, func, arg))
        {
            throwError("未找到的方法类型,void", func.id);
            return;
        }
    }
Пример #9
0
 public TriggerRegister()
 {
     offSet = TriggerFunctionType.off;
     list   = new TriggerFuncEntry[TriggerFunctionType.count - offSet];
     list[TriggerFunctionType.If - offSet]                        = TriggerFuncEntry.createVoid(delegate_If);
     list[TriggerFunctionType.While - offSet]                     = TriggerFuncEntry.createVoid(delegate_While);
     list[TriggerFunctionType.GetSVar - offSet]                   = TriggerFuncEntry.createObject(delegate_GetSVar);
     list[TriggerFunctionType.GetLocalVar - offSet]               = TriggerFuncEntry.createObject(delegate_GetLocalVar);
     list[TriggerFunctionType.Not - offSet]                       = TriggerFuncEntry.createBoolean(delegate_Not);
     list[TriggerFunctionType.And - offSet]                       = TriggerFuncEntry.createBoolean(delegate_And);
     list[TriggerFunctionType.And2 - offSet]                      = TriggerFuncEntry.createBoolean(delegate_And2);
     list[TriggerFunctionType.Or - offSet]                        = TriggerFuncEntry.createBoolean(delegate_Or);
     list[TriggerFunctionType.Or2 - offSet]                       = TriggerFuncEntry.createBoolean(delegate_Or2);
     list[TriggerFunctionType.Equals - offSet]                    = TriggerFuncEntry.createBoolean(delegate_Equals);
     list[TriggerFunctionType.EqualsInt - offSet]                 = TriggerFuncEntry.createBoolean(delegate_EqualsInt);
     list[TriggerFunctionType.EqualsFloat - offSet]               = TriggerFuncEntry.createBoolean(delegate_EqualsFloat);
     list[TriggerFunctionType.EqualsLong - offSet]                = TriggerFuncEntry.createBoolean(delegate_EqualsLong);
     list[TriggerFunctionType.EqualsString - offSet]              = TriggerFuncEntry.createBoolean(delegate_EqualsString);
     list[TriggerFunctionType.IsNull - offSet]                    = TriggerFuncEntry.createBoolean(delegate_IsNull);
     list[TriggerFunctionType.NotNull - offSet]                   = TriggerFuncEntry.createBoolean(delegate_NotNull);
     list[TriggerFunctionType.CompareInt - offSet]                = TriggerFuncEntry.createBoolean(delegate_CompareInt);
     list[TriggerFunctionType.CompareFloat - offSet]              = TriggerFuncEntry.createBoolean(delegate_CompareFloat);
     list[TriggerFunctionType.CompareLong - offSet]               = TriggerFuncEntry.createBoolean(delegate_CompareLong);
     list[TriggerFunctionType.GreaterThanInt - offSet]            = TriggerFuncEntry.createBoolean(delegate_GreaterThanInt);
     list[TriggerFunctionType.GreaterThanOrEqualInt - offSet]     = TriggerFuncEntry.createBoolean(delegate_GreaterThanOrEqualInt);
     list[TriggerFunctionType.LessThanInt - offSet]               = TriggerFuncEntry.createBoolean(delegate_LessThanInt);
     list[TriggerFunctionType.LessThanOrEqualInt - offSet]        = TriggerFuncEntry.createBoolean(delegate_LessThanOrEqualInt);
     list[TriggerFunctionType.GreaterThanFloat - offSet]          = TriggerFuncEntry.createBoolean(delegate_GreaterThanFloat);
     list[TriggerFunctionType.GreaterThanOrEqualFloat - offSet]   = TriggerFuncEntry.createBoolean(delegate_GreaterThanOrEqualFloat);
     list[TriggerFunctionType.LessThanFloat - offSet]             = TriggerFuncEntry.createBoolean(delegate_LessThanFloat);
     list[TriggerFunctionType.LessThanOrEqualFloat - offSet]      = TriggerFuncEntry.createBoolean(delegate_LessThanOrEqualFloat);
     list[TriggerFunctionType.GreaterThanLong - offSet]           = TriggerFuncEntry.createBoolean(delegate_GreaterThanLong);
     list[TriggerFunctionType.GreaterThanOrEqualLong - offSet]    = TriggerFuncEntry.createBoolean(delegate_GreaterThanOrEqualLong);
     list[TriggerFunctionType.LessThanLong - offSet]              = TriggerFuncEntry.createBoolean(delegate_LessThanLong);
     list[TriggerFunctionType.LessThanOrEqualLong - offSet]       = TriggerFuncEntry.createBoolean(delegate_LessThanOrEqualLong);
     list[TriggerFunctionType.GetSBoolean - offSet]               = TriggerFuncEntry.createBoolean(delegate_GetSBoolean);
     list[TriggerFunctionType.GetLocalBoolean - offSet]           = TriggerFuncEntry.createBoolean(delegate_GetLocalBoolean);
     list[TriggerFunctionType.RandomBoolean - offSet]             = TriggerFuncEntry.createBoolean(delegate_RandomBoolean);
     list[TriggerFunctionType.IsTimeMillisPass - offSet]          = TriggerFuncEntry.createBoolean(delegate_IsTimeMillisPass);
     list[TriggerFunctionType.AddInt - offSet]                    = TriggerFuncEntry.createInt(delegate_AddInt);
     list[TriggerFunctionType.SubInt - offSet]                    = TriggerFuncEntry.createInt(delegate_SubInt);
     list[TriggerFunctionType.MulInt - offSet]                    = TriggerFuncEntry.createInt(delegate_MulInt);
     list[TriggerFunctionType.DivInt - offSet]                    = TriggerFuncEntry.createInt(delegate_DivInt);
     list[TriggerFunctionType.InvertInt - offSet]                 = TriggerFuncEntry.createInt(delegate_InvertInt);
     list[TriggerFunctionType.RestInt - offSet]                   = TriggerFuncEntry.createInt(delegate_RestInt);
     list[TriggerFunctionType.AbsInt - offSet]                    = TriggerFuncEntry.createInt(delegate_AbsInt);
     list[TriggerFunctionType.Add1Int - offSet]                   = TriggerFuncEntry.createInt(delegate_Add1Int);
     list[TriggerFunctionType.Sub1Int - offSet]                   = TriggerFuncEntry.createInt(delegate_Sub1Int);
     list[TriggerFunctionType.ConvertFloat2Int - offSet]          = TriggerFuncEntry.createInt(delegate_ConvertFloat2Int);
     list[TriggerFunctionType.ConvertLong2Int - offSet]           = TriggerFuncEntry.createInt(delegate_ConvertLong2Int);
     list[TriggerFunctionType.GetSInt - offSet]                   = TriggerFuncEntry.createInt(delegate_GetSInt);
     list[TriggerFunctionType.GetLocalInt - offSet]               = TriggerFuncEntry.createInt(delegate_GetLocalInt);
     list[TriggerFunctionType.GetCurrentLoopIndex - offSet]       = TriggerFuncEntry.createInt(delegate_GetCurrentLoopIndex);
     list[TriggerFunctionType.GetCurrentListElement - offSet]     = TriggerFuncEntry.createObject(delegate_GetCurrentListElement);
     list[TriggerFunctionType.RandomInt - offSet]                 = TriggerFuncEntry.createInt(delegate_RandomInt);
     list[TriggerFunctionType.RandomRange - offSet]               = TriggerFuncEntry.createInt(delegate_RandomRange);
     list[TriggerFunctionType.GetTriggerGMCommandIntArg - offSet] = TriggerFuncEntry.createInt(delegate_GetTriggerGMCommandIntArg);
     list[TriggerFunctionType.AddFloat - offSet]                  = TriggerFuncEntry.createFloat(delegate_AddFloat);
     list[TriggerFunctionType.SubFloat - offSet]                  = TriggerFuncEntry.createFloat(delegate_SubFloat);
     list[TriggerFunctionType.MulFloat - offSet]                  = TriggerFuncEntry.createFloat(delegate_MulFloat);
     list[TriggerFunctionType.DivFloat - offSet]                  = TriggerFuncEntry.createFloat(delegate_DivFloat);
     list[TriggerFunctionType.InvertFloat - offSet]               = TriggerFuncEntry.createFloat(delegate_InvertFloat);
     list[TriggerFunctionType.AbsFloat - offSet]                  = TriggerFuncEntry.createFloat(delegate_AbsFloat);
     list[TriggerFunctionType.GetSFloat - offSet]                 = TriggerFuncEntry.createFloat(delegate_GetSFloat);
     list[TriggerFunctionType.GetLocalFloat - offSet]             = TriggerFuncEntry.createFloat(delegate_GetLocalFloat);
     list[TriggerFunctionType.ConvertInt2Float - offSet]          = TriggerFuncEntry.createFloat(delegate_ConvertInt2Float);
     list[TriggerFunctionType.ConvertLong2Float - offSet]         = TriggerFuncEntry.createFloat(delegate_ConvertLong2Float);
     list[TriggerFunctionType.AddLong - offSet]                   = TriggerFuncEntry.createLong(delegate_AddLong);
     list[TriggerFunctionType.SubLong - offSet]                   = TriggerFuncEntry.createLong(delegate_SubLong);
     list[TriggerFunctionType.MulLong - offSet]                   = TriggerFuncEntry.createLong(delegate_MulLong);
     list[TriggerFunctionType.DivLong - offSet]                   = TriggerFuncEntry.createLong(delegate_DivLong);
     list[TriggerFunctionType.InvertLong - offSet]                = TriggerFuncEntry.createLong(delegate_InvertLong);
     list[TriggerFunctionType.AbsLong - offSet]                   = TriggerFuncEntry.createLong(delegate_AbsLong);
     list[TriggerFunctionType.ConvertInt2Long - offSet]           = TriggerFuncEntry.createLong(delegate_ConvertInt2Long);
     list[TriggerFunctionType.ConvertFloat2Long - offSet]         = TriggerFuncEntry.createLong(delegate_ConvertFloat2Long);
     list[TriggerFunctionType.GetSLong - offSet]                  = TriggerFuncEntry.createLong(delegate_GetSLong);
     list[TriggerFunctionType.GetLocalLong - offSet]              = TriggerFuncEntry.createLong(delegate_GetLocalLong);
     list[TriggerFunctionType.GetTimeMillis - offSet]             = TriggerFuncEntry.createLong(delegate_GetTimeMillis);
     list[TriggerFunctionType.AddStr - offSet]                    = TriggerFuncEntry.createString(delegate_AddStr);
     list[TriggerFunctionType.ConvertInt2Str - offSet]            = TriggerFuncEntry.createString(delegate_ConvertInt2Str);
     list[TriggerFunctionType.ConvertFloat2Str - offSet]          = TriggerFuncEntry.createString(delegate_ConvertFloat2Str);
     list[TriggerFunctionType.ConvertLong2Str - offSet]           = TriggerFuncEntry.createString(delegate_ConvertLong2Str);
     list[TriggerFunctionType.ConvertBool2Str - offSet]           = TriggerFuncEntry.createString(delegate_ConvertBool2Str);
     list[TriggerFunctionType.GetSString - offSet]                = TriggerFuncEntry.createString(delegate_GetSString);
     list[TriggerFunctionType.GetLocalString - offSet]            = TriggerFuncEntry.createString(delegate_GetLocalString);
     list[TriggerFunctionType.AsList - offSet]                    = TriggerFuncEntry.createObject(delegate_AsList);
     list[TriggerFunctionType.CreateList - offSet]                = TriggerFuncEntry.createObject(delegate_CreateList);
     list[TriggerFunctionType.GetListSize - offSet]               = TriggerFuncEntry.createInt(delegate_GetListSize);
     list[TriggerFunctionType.ListAdd - offSet]                   = TriggerFuncEntry.createVoid(delegate_ListAdd);
     list[TriggerFunctionType.ListRemove - offSet]                = TriggerFuncEntry.createVoid(delegate_ListRemove);
     list[TriggerFunctionType.ListRemoveObj - offSet]             = TriggerFuncEntry.createBoolean(delegate_ListRemoveObj);
     list[TriggerFunctionType.ListClear - offSet]                 = TriggerFuncEntry.createVoid(delegate_ListClear);
     list[TriggerFunctionType.ListIndexOf - offSet]               = TriggerFuncEntry.createInt(delegate_ListIndexOf);
     list[TriggerFunctionType.ListContains - offSet]              = TriggerFuncEntry.createBoolean(delegate_ListContains);
     list[TriggerFunctionType.ForeachList - offSet]               = TriggerFuncEntry.createVoid(delegate_ForeachList);
     list[TriggerFunctionType.ListIsEmpty - offSet]               = TriggerFuncEntry.createBoolean(delegate_ListIsEmpty);
     list[TriggerFunctionType.AsMap - offSet]                     = TriggerFuncEntry.createObject(delegate_AsMap);
     list[TriggerFunctionType.CreateMap - offSet]                 = TriggerFuncEntry.createObject(delegate_CreateMap);
     list[TriggerFunctionType.GetMapSize - offSet]                = TriggerFuncEntry.createInt(delegate_GetMapSize);
     list[TriggerFunctionType.MapPut - offSet]                    = TriggerFuncEntry.createVoid(delegate_MapPut);
     list[TriggerFunctionType.MapRemove - offSet]                 = TriggerFuncEntry.createBoolean(delegate_MapRemove);
     list[TriggerFunctionType.MapClear - offSet]                  = TriggerFuncEntry.createVoid(delegate_MapClear);
     list[TriggerFunctionType.MapContains - offSet]               = TriggerFuncEntry.createBoolean(delegate_MapContains);
     list[TriggerFunctionType.MapIsEmpty - offSet]                = TriggerFuncEntry.createBoolean(delegate_MapIsEmpty);
     list[TriggerFunctionType.AsSet - offSet]                     = TriggerFuncEntry.createObject(delegate_AsSet);
     list[TriggerFunctionType.CreateSet - offSet]                 = TriggerFuncEntry.createObject(delegate_CreateSet);
     list[TriggerFunctionType.GetSetSize - offSet]                = TriggerFuncEntry.createInt(delegate_GetSetSize);
     list[TriggerFunctionType.SetAdd - offSet]                    = TriggerFuncEntry.createVoid(delegate_SetAdd);
     list[TriggerFunctionType.SetRemove - offSet]                 = TriggerFuncEntry.createBoolean(delegate_SetRemove);
     list[TriggerFunctionType.SetClear - offSet]                  = TriggerFuncEntry.createVoid(delegate_SetClear);
     list[TriggerFunctionType.SetContains - offSet]               = TriggerFuncEntry.createBoolean(delegate_SetContains);
     list[TriggerFunctionType.SetIsEmpty - offSet]                = TriggerFuncEntry.createBoolean(delegate_SetIsEmpty);
     list[TriggerFunctionType.OpenTrigger - offSet]               = TriggerFuncEntry.createVoid(delegate_OpenTrigger);
     list[TriggerFunctionType.CloseTrigger - offSet]              = TriggerFuncEntry.createVoid(delegate_CloseTrigger);
     list[TriggerFunctionType.RunTrigger - offSet]                = TriggerFuncEntry.createVoid(delegate_RunTrigger);
     list[TriggerFunctionType.RunTriggerAbs - offSet]             = TriggerFuncEntry.createVoid(delegate_RunTriggerAbs);
     list[TriggerFunctionType.Wait - offSet]                      = TriggerFuncEntry.createVoid(delegate_Wait);
     list[TriggerFunctionType.WaitUtil - offSet]                  = TriggerFuncEntry.createVoid(delegate_WaitUtil);
     list[TriggerFunctionType.Print - offSet]                     = TriggerFuncEntry.createVoid(delegate_Print);
     list[TriggerFunctionType.ForLoop - offSet]                   = TriggerFuncEntry.createVoid(delegate_ForLoop);
     list[TriggerFunctionType.BreakTrigger - offSet]              = TriggerFuncEntry.createVoid(delegate_BreakTrigger);
     list[TriggerFunctionType.BreakLoop - offSet]                 = TriggerFuncEntry.createVoid(delegate_BreakLoop);
     list[TriggerFunctionType.ContinueLoop - offSet]              = TriggerFuncEntry.createVoid(delegate_ContinueLoop);
     list[TriggerFunctionType.SetSVar - offSet]                   = TriggerFuncEntry.createVoid(delegate_SetSVar);
     list[TriggerFunctionType.RemoveSVar - offSet]                = TriggerFuncEntry.createVoid(delegate_RemoveSVar);
     list[TriggerFunctionType.SetLocalVar - offSet]               = TriggerFuncEntry.createVoid(delegate_SetLocalVar);
     list[TriggerFunctionType.GetEventIntArgs - offSet]           = TriggerFuncEntry.createInt(delegate_GetEventIntArgs);
     list[TriggerFunctionType.GetEventBoolArgs - offSet]          = TriggerFuncEntry.createBoolean(delegate_GetEventBoolArgs);
     list[TriggerFunctionType.GetEventStringArgs - offSet]        = TriggerFuncEntry.createString(delegate_GetEventStringArgs);
     list[TriggerFunctionType.GetGuideMainStep - offSet]          = TriggerFuncEntry.createInt(delegate_GetGuideMainStep);
     list[TriggerFunctionType.SetGuideMainStep - offSet]          = TriggerFuncEntry.createVoid(delegate_SetGuideMainStep);
     list[TriggerFunctionType.ShowUI - offSet]                    = TriggerFuncEntry.createVoid(delegate_ShowUI);
     list[TriggerFunctionType.HideUI - offSet]                    = TriggerFuncEntry.createVoid(delegate_HideUI);
     list[TriggerFunctionType.UnitIsAlive - offSet]               = TriggerFuncEntry.createBoolean(delegate_UnitIsAlive);
     list[TriggerFunctionType.IsPosEnabled - offSet]              = TriggerFuncEntry.createBoolean(delegate_IsPosEnabled);
     list[TriggerFunctionType.TriggerUnit - offSet]               = TriggerFuncEntry.createObject(delegate_TriggerUnit);
     list[TriggerFunctionType.PosDistance - offSet]               = TriggerFuncEntry.createFloat(delegate_PosDistance);
     list[TriggerFunctionType.GetUnitFightUnitID - offSet]        = TriggerFuncEntry.createInt(delegate_GetUnitFightUnitID);
     list[TriggerFunctionType.GetUnit - offSet]                   = TriggerFuncEntry.createObject(delegate_GetUnit);
     list[TriggerFunctionType.AsUnit - offSet]                    = TriggerFuncEntry.createObject(delegate_AsUnit);
     list[TriggerFunctionType.CreateAddPuppet - offSet]           = TriggerFuncEntry.createObject(delegate_CreateAddPuppet);
     list[TriggerFunctionType.AsPos - offSet]                     = TriggerFuncEntry.createObject(delegate_AsPos);
     list[TriggerFunctionType.GetUnitPos - offSet]                = TriggerFuncEntry.createObject(delegate_GetUnitPos);
     list[TriggerFunctionType.GetScenePlacePos - offSet]          = TriggerFuncEntry.createObject(delegate_GetScenePlacePos);
     list[TriggerFunctionType.PosPolar - offSet]                  = TriggerFuncEntry.createObject(delegate_PosPolar);
     list[TriggerFunctionType.AddPos - offSet]                    = TriggerFuncEntry.createObject(delegate_AddPos);
     list[TriggerFunctionType.AsDir - offSet]                     = TriggerFuncEntry.createObject(delegate_AsDir);
     list[TriggerFunctionType.GetUnitDir - offSet]                = TriggerFuncEntry.createObject(delegate_GetUnitDir);
     list[TriggerFunctionType.AddDir - offSet]                    = TriggerFuncEntry.createObject(delegate_AddDir);
     list[TriggerFunctionType.AddDirFloat - offSet]               = TriggerFuncEntry.createObject(delegate_AddDirFloat);
     list[TriggerFunctionType.KillUnit - offSet]                  = TriggerFuncEntry.createVoid(delegate_KillUnit);
     list[TriggerFunctionType.RemoveUnit - offSet]                = TriggerFuncEntry.createVoid(delegate_RemoveUnit);
     list[TriggerFunctionType.MoveToUnit - offSet]                = TriggerFuncEntry.createVoid(delegate_MoveToUnit);
     list[TriggerFunctionType.UnitAddAttribute - offSet]          = TriggerFuncEntry.createVoid(delegate_UnitAddAttribute);
     list[TriggerFunctionType.UnitAddHpPercent - offSet]          = TriggerFuncEntry.createVoid(delegate_UnitAddHpPercent);
 }
Пример #10
0
    /** 获取boolean方法返回值 */
    protected virtual bool toGetBooleanFuncValue(TriggerFuncData func, TriggerArg arg)
    {
        switch (func.id)
        {
        case TriggerFunctionType.And:
        {
            if (!getBoolean(func.args[0], arg))
            {
                return(false);
            }

            return(getBoolean(func.args[1], arg));
        }

        case TriggerFunctionType.And2:
        {
            if (!getBoolean(func.args[0], arg))
            {
                return(false);
            }

            if (!getBoolean(func.args[1], arg))
            {
                return(false);
            }

            return(getBoolean(func.args[2], arg));
        }

        case TriggerFunctionType.Or:
        {
            if (getBoolean(func.args[0], arg))
            {
                return(true);
            }

            return(getBoolean(func.args[1], arg));
        }

        case TriggerFunctionType.Or2:
        {
            if (getBoolean(func.args[0], arg))
            {
                return(true);
            }

            if (getBoolean(func.args[1], arg))
            {
                return(true);
            }

            return(getBoolean(func.args[2], arg));
        }
        }

        TriggerFuncEntry entry = _funcMaker.get(func.id);
        Func <TriggerExecutor, TriggerFuncData, TriggerArg, bool> f;

        if (entry == null || (f = entry.boolFunc) == null)
        {
            throwError("未找到的方法类型,Boolean", func.id);
            return(false);
        }

        return(f(this, func, arg));
    }