コード例 #1
0
    public override bool LimitExecHandler(HandleTarget Target, LimitData Limit, FuncContext context)
    {
        List<Ilife> target = Target.GetTarget((EFuncTarget)(Limit.Target));
        if (target.Count <= 0)
        {
            return false;
        }

        Vector3 targetPos = ((ITransformBehaviour) (target[0])).GetTransformData().GetPosition();
        float distance = Vector3.Distance(PlayerManager.Instance.GetPlayerInstance().GetTransformData().GetPosition(), targetPos);
        return OperationFunc.LimitOperatorValue((ELimitOperator)Limit.Oper, (int)(distance), Limit.ParamIntList[0]);
    }
コード例 #2
0
 public override bool LimitExecHandler(HandleTarget Target, LimitData Limit, FuncContext context)
 {
     List<Ilife> target = Target.GetTarget((EFuncTarget)(Limit.Target));
     if (Limit.Oper == (int) ELimitOperator.ELO_Equal)
     {
         return target[0] is PlayerCharacter;
     }
     else if (Limit.Oper == (int)ELimitOperator.ELO_NotEuqal)
     {
         return (!(target[0] is PlayerCharacter));
     }
     return false;
 }
コード例 #3
0
    public override bool LimitExecHandler(HandleTarget Target, LimitData Limit, FuncContext context)
    {
        List<Ilife> target = Target.GetTarget(EFuncTarget.EFT_User);
        if (target == null || target.Count <= 0)
            return false;

        if (!(target[0] is Npc))
            return false;

        Npc npc = (Npc)target[0];
        return npc.IsPlayerControlled;

    }
コード例 #4
0
 public override bool LimitExecHandler(HandleTarget Target, LimitData Limit, FuncContext context)
 {
     List<Ilife> target = Target.GetTarget((EFuncTarget)(Limit.Target));
     for (int i = 0; i < target.Count; ++i)
     {
         if (!(target[i] is PlayerCharacter))
         {
             continue;
         }
         int index = Limit.ParamIntList[0];
         bool flag = PlayerManager.Instance.GetCharCounterData().GetFlag(index);
         if (!OperationFunc.LimitOperatorValue((ELimitOperator)Limit.Oper, flag, (Limit.ParamIntList[1] != 0)))
         {
             return false;
         }
     }
     return true;
 }
コード例 #5
0
 public abstract bool LimitExecHandler(HandleTarget Target, LimitData Limit, FuncContext context); 
コード例 #6
0
 public void Read (TProtocol iprot)
 {
   TField field;
   iprot.ReadStructBegin();
   while (true)
   {
     field = iprot.ReadFieldBegin();
     if (field.Type == TType.Stop) { 
       break;
     }
     switch (field.ID)
     {
       case 1:
         if (field.Type == TType.I32) {
           Id = iprot.ReadI32();
         } else { 
           TProtocolUtil.Skip(iprot, field.Type);
         }
         break;
       case 2:
         if (field.Type == TType.Byte) {
           Logic = iprot.ReadByte();
         } else { 
           TProtocolUtil.Skip(iprot, field.Type);
         }
         break;
       case 3:
         if (field.Type == TType.List) {
           {
             LimitDataList = new List<LimitData>();
             TList _list8 = iprot.ReadListBegin();
             for( int _i9 = 0; _i9 < _list8.Count; ++_i9)
             {
               LimitData _elem10 = new LimitData();
               _elem10 = new LimitData();
               _elem10.Read(iprot);
               LimitDataList.Add(_elem10);
             }
             iprot.ReadListEnd();
           }
         } else { 
           TProtocolUtil.Skip(iprot, field.Type);
         }
         break;
       default: 
         TProtocolUtil.Skip(iprot, field.Type);
         break;
     }
     iprot.ReadFieldEnd();
   }
   iprot.ReadStructEnd();
 }
コード例 #7
0
 public override bool LimitExecHandler(HandleTarget Target, LimitData Limit, FuncContext context)
 {
     return ActionManager.Instance.CheckActionIsPlayed(Limit.ParamIntList[0]);
 }
コード例 #8
0
ファイル: LimitGroup.cs プロジェクト: Hengle/ClientFrameWork
        public void Read(TProtocol iprot)
        {
            TField field;

            iprot.ReadStructBegin();
            while (true)
            {
                field = iprot.ReadFieldBegin();
                if (field.Type == TType.Stop)
                {
                    break;
                }
                switch (field.ID)
                {
                case 1:
                    if (field.Type == TType.I32)
                    {
                        Id = iprot.ReadI32();
                    }
                    else
                    {
                        TProtocolUtil.Skip(iprot, field.Type);
                    }
                    break;

                case 2:
                    if (field.Type == TType.Byte)
                    {
                        Logic = iprot.ReadByte();
                    }
                    else
                    {
                        TProtocolUtil.Skip(iprot, field.Type);
                    }
                    break;

                case 3:
                    if (field.Type == TType.List)
                    {
                        {
                            LimitDataList = new List <LimitData>();
                            TList _list8 = iprot.ReadListBegin();
                            for (int _i9 = 0; _i9 < _list8.Count; ++_i9)
                            {
                                LimitData _elem10 = new LimitData();
                                _elem10 = new LimitData();
                                _elem10.Read(iprot);
                                LimitDataList.Add(_elem10);
                            }
                            iprot.ReadListEnd();
                        }
                    }
                    else
                    {
                        TProtocolUtil.Skip(iprot, field.Type);
                    }
                    break;

                default:
                    TProtocolUtil.Skip(iprot, field.Type);
                    break;
                }
                iprot.ReadFieldEnd();
            }
            iprot.ReadStructEnd();
        }
コード例 #9
0
 public override bool LimitExecHandler(HandleTarget Target, LimitData Limit, FuncContext context)
 {
     int random = Random.Range(0, 100);
     return OperationFunc.LimitOperatorValue((ELimitOperator)Limit.Oper, random, Limit.ParamIntList[0]);
 }
コード例 #10
0
 public override bool LimitExecHandler(HandleTarget Target, LimitData Limit, FuncContext context)
 {
     int missionCount = MissionManager.Instance.GetMissionCounter(Limit.ParamIntList[0]);
     return OperationFunc.LimitOperatorValue((ELimitOperator)Limit.Oper, missionCount, Limit.ParamIntList[1]);
 }
コード例 #11
0
 public override bool LimitExecHandler(HandleTarget Target, LimitData Limit, FuncContext context)
 {
     return MissionManager.Instance.CheckMissionAvailable(Limit.ParamIntList[0]);
 }