static void ReceviceCommandComponent(SyncSession session, ProtocolRequestBase e)
    {
        CommandComponent msg = new CommandComponent();

        {
            Dictionary <string, object> data2 = (Dictionary <string, object>)e.m_data["movedir"];
            SyncVector3 tmp2 = new SyncVector3();
            tmp2.x      = (int)data2["x"];
            tmp2.y      = (int)data2["y"];
            tmp2.z      = (int)data2["z"];
            msg.moveDir = tmp2;
        }
        {
            Dictionary <string, object> data2 = (Dictionary <string, object>)e.m_data["skilldir"];
            SyncVector3 tmp2 = new SyncVector3();
            tmp2.x       = (int)data2["x"];
            tmp2.y       = (int)data2["y"];
            tmp2.z       = (int)data2["z"];
            msg.skillDir = tmp2;
        }
        msg.isFire = (bool)e.m_data["isfire"];
        msg.id     = (int)e.m_data["id"];
        msg.frame  = (int)e.m_data["frame"];

        EventService.DispatchTypeEvent(session, msg);
    }
Ejemplo n.º 2
0
    void UpdateMove(EntityBase entity, int deltaTime)
    {
        MoveComponent mc = (MoveComponent)entity.GetComp("MoveComponent");

        SyncVector3 newPos = mc.pos.DeepCopy();

        newPos.x += (mc.dir.x * deltaTime / 1000) * mc.m_velocity / 1000;
        newPos.y += (mc.dir.y * deltaTime / 1000) * mc.m_velocity / 1000;
        newPos.z += (mc.dir.z * deltaTime / 1000) * mc.m_velocity / 1000;

        if (!entity.GetExistComp("FlyObjectComponent") &&
            entity.GetExistComp("CollisionComponent"))
        {
            CollisionComponent cc = (CollisionComponent)entity.GetComp("CollisionComponent");
            cc.area.position = newPos.ToVector();

            if (!IsCollisionBlock(cc.area))
            {
                mc.pos = newPos;
            }
        }
        else
        {
            mc.pos = newPos;
        }

        if (SyncDebugSystem.isDebug && SyncDebugSystem.IsFilter("MoveSystem"))
        {
            string content = "id: " + mc.Entity.ID + " m_pos " + mc.pos.ToVector() + " deltaTime " + deltaTime + " m_velocity " + mc.m_velocity + " m_dir " + mc.dir.ToVector();
            //Debug.Log(content);

            //SyncDebugSystem.syncLog += content + "\n";
        }
    }
Ejemplo n.º 3
0
 private void Awake()
 {
     _view           = GetComponent <NetView>();
     _actorRpc       = new ActorViewRpc(_view);
     _moveController = GetComponent <CharacterController>();
     _netPosition    = transform.position;
 }
    void UpdateMove(EntityBase entity, int deltaTime)
    {
        MoveComponent mc = entity.GetComp <MoveComponent>();

        SyncVector3 newPos = mc.pos.DeepCopy();

        newPos.x += mc.dir.x * deltaTime * mc.m_velocity / (1000 * 1000);
        newPos.y += mc.dir.y * deltaTime * mc.m_velocity / (1000 * 1000);
        newPos.z += mc.dir.z * deltaTime * mc.m_velocity / (1000 * 1000);

        if (entity.GetExistComp <CollisionComponent>())
        {
            CollisionComponent cc = entity.GetComp <CollisionComponent>();
            cc.area.position = newPos.ToVector();

            if (!IsCollisionBlock(cc.area))
            {
                mc.pos = newPos;
            }
        }
        else
        {
            mc.pos = newPos;
        }
    }
Ejemplo n.º 5
0
    public static SyncVector3 operator *(SyncVector3 a, SyncVector3 b)
    {
        SyncVector3 result = new SyncVector3();

        result.x = a.x * b.x / 1000;
        result.y = a.y * b.y / 1000;
        result.z = a.z * b.z / 1000;

        return(result);
    }
Ejemplo n.º 6
0
    public static SyncVector3 operator -(SyncVector3 a, SyncVector3 b)
    {
        SyncVector3 result = new SyncVector3();

        result.x = a.x - b.x;
        result.y = a.y - b.y;
        result.z = a.z - b.z;

        return(result);
    }
Ejemplo n.º 7
0
    public SyncVector3 DeepCopy()
    {
        SyncVector3 sv = new SyncVector3();

        sv.x = x;
        sv.y = y;
        sv.z = z;

        return(sv);
    }
Ejemplo n.º 8
0
    public static SyncVector3 operator /(SyncVector3 a, float b)
    {
        SyncVector3 result = new SyncVector3();

        result.x = (int)(a.x / b);
        result.y = (int)(a.y / b);
        result.z = (int)(a.z / b);

        return(result);
    }
Ejemplo n.º 9
0
    //顺时针
    public SyncVector3 RotateInXZ2(float angle)
    {
        SyncVector3 result = new SyncVector3();

        angle   *= Mathf.Deg2Rad;
        result.x = (int)(x * Mathf.Cos(angle) + z * Mathf.Sin(angle));
        result.z = (int)(-x * Mathf.Sin(angle) + z * Mathf.Cos(angle));

        return(result);
    }
Ejemplo n.º 10
0
    public static SyncVector3 operator /(SyncVector3 a, int b)
    {
        SyncVector3 result = new SyncVector3();

        result.x = a.x / b;
        result.y = a.y / b;
        result.z = a.z / b;

        return(result);
    }
        public void FromCommand(CommandComponent comp)
        {
            moveDir  = comp.moveDir.DeepCopy();
            skillDir = comp.skillDir.DeepCopy();

            element1 = comp.element1;
            element2 = comp.element2;
            isFire   = comp.isFire;

            frame = comp.frame;
            id    = comp.id;
        }
Ejemplo n.º 12
0
    void UpdateMove(EntityBase entity, int deltaTime)
    {
        MoveComponent mc = (MoveComponent)entity.GetComp("MoveComponent");

        SyncVector3 newPos = mc.pos.DeepCopy();

        newPos.x += (mc.dir.x * deltaTime / 1000) * mc.m_velocity / 1000;
        newPos.y += (mc.dir.y * deltaTime / 1000) * mc.m_velocity / 1000;
        newPos.z += (mc.dir.z * deltaTime / 1000) * mc.m_velocity / 1000;

        mc.pos = newPos;
    }
Ejemplo n.º 13
0
    public bool Equals(SyncVector3 sv)
    {
        if (sv.x != x)
        {
            return(false);
        }

        if (sv.y != y)
        {
            return(false);
        }

        if (sv.z != z)
        {
            return(false);
        }

        return(true);
    }
Ejemplo n.º 14
0
    SyncVector3 Offset_Circle_Circle(Area area)
    {
        float distance = Vector3.Distance(position, area.position);

        float r = radius + area.radius;

        //Debug.Log("distance " + distance + " r " + r + " ");

        if (distance < r)
        {
            SyncVector3 offset = new SyncVector3();
            offset.FromVector((area.position - position).normalized * (r - distance));

            return(offset);
        }
        else
        {
            return(new SyncVector3());
        }
    }
Ejemplo n.º 15
0
    public void OverlapLogic(EntityBase entity)
    {
        CollisionComponent cc = (CollisionComponent)entity.GetComp("CollisionComponent");
        MoveComponent      mc = (MoveComponent)entity.GetComp("MoveComponent");

        cc.area.position = mc.pos.ToVector();

        SyncVector3 offset = new SyncVector3();

        for (int i = 0; i < cc.CollisionList.Count; i++)
        {
            if (cc.CollisionList[i].GetExistComp("BlockComponent"))
            {
                CollisionComponent cctmp = (CollisionComponent)cc.CollisionList[i].GetComp("CollisionComponent");

                offset += cctmp.area.GetOffsetPos(cc.area);
            }
        }
        mc.pos = mc.pos + offset;
    }
    static void ReceviceCommandMsg(SyncSession session, ProtocolRequestBase e)
    {
        Protocol.CommandMsg msg = new Protocol.CommandMsg();
        msg.frame      = (int)e.m_data["frame"];
        msg.serverTime = (int)e.m_data["servertime"];
        {
            List <Dictionary <string, object> > data2 = (List <Dictionary <string, object> >)e.m_data["msg"];
            List <Protocol.CommandInfo>         list2 = new List <Protocol.CommandInfo>();
            for (int i2 = 0; i2 < data2.Count; i2++)
            {
                Protocol.CommandInfo tmp2 = new Protocol.CommandInfo();
                tmp2.frame = (int)data2[i2]["frame"];
                tmp2.id    = (int)data2[i2]["id"];
                {
                    Dictionary <string, object> data4 = (Dictionary <string, object>)data2[i2]["movedir"];
                    SyncVector3 tmp4 = new SyncVector3();
                    tmp4.x       = (int)data4["x"];
                    tmp4.y       = (int)data4["y"];
                    tmp4.z       = (int)data4["z"];
                    tmp2.moveDir = tmp4;
                }
                {
                    Dictionary <string, object> data4 = (Dictionary <string, object>)data2[i2]["skilldir"];
                    SyncVector3 tmp4 = new SyncVector3();
                    tmp4.x        = (int)data4["x"];
                    tmp4.y        = (int)data4["y"];
                    tmp4.z        = (int)data4["z"];
                    tmp2.skillDir = tmp4;
                }
                tmp2.element1 = (int)data2[i2]["element1"];
                tmp2.element2 = (int)data2[i2]["element2"];
                tmp2.isFire   = (bool)data2[i2]["isfire"];
                list2.Add(tmp2);
            }
            msg.msg = list2;
        }

        EventService.DispatchTypeEvent(session, msg);
    }
Ejemplo n.º 17
0
    void UpdateMove(EntityBase entity, int deltaTime)
    {
        TestMoveComponent    mc = (TestMoveComponent)entity.GetComp("TestMoveComponent");
        TestCommandComponent cc = (TestCommandComponent)entity.GetComp("TestCommandComponent");

        mc.dir        = cc.moveDir;
        mc.m_velocity = 4000;

        //Debug.Log("LockStepTestMoveSystem " + mc.dir);

        SyncVector3 newPos = mc.pos.DeepCopy();

        newPos.x += (mc.dir.x * deltaTime / 1000) * mc.m_velocity / 1000;
        newPos.y += (mc.dir.y * deltaTime / 1000) * mc.m_velocity / 1000;
        newPos.z += (mc.dir.z * deltaTime / 1000) * mc.m_velocity / 1000;

        //Debug.Log("mc.pos "+ mc.pos  + " newPos " + newPos + " mc.dir.x " + mc.dir.x + " mc.m_velocity " + mc.m_velocity);

        mc.pos = newPos;

        //Debug.DrawRay(newPos.ToVector(), Vector3.up, Color.yellow, 10);
    }
Ejemplo n.º 18
0
    List <CreatPostionInfo> GetCreatePostionInfos(SkillDataGenerate skillData, EntityBase skiller, int Length)
    {
        MoveComponent        mc  = skiller.GetComp <MoveComponent>();
        SkillStatusComponent ssc = skiller.GetComp <SkillStatusComponent>();

        List <CreatPostionInfo> result = new List <CreatPostionInfo>();

        //result.Clear();

        if (Length == 0)
        {
            return(result);
        }

        HardPointEnum l_FXCreatPoint = skillData.m_FlyCreatPoint;

        SyncVector3 forward = new SyncVector3().FromVector(ssc.skillDir.ToVector().normalized);
        SyncVector3 dir     = forward;
        SyncVector3 pos     = mc.pos;

        SyncVector3 leftBorder    = new SyncVector3();
        SyncVector3 leftDir       = new SyncVector3();
        SyncVector3 leftPos       = new SyncVector3();
        float       sectorStep    = 0;
        float       rectangleStep = 0;

        AreaDataGenerate area = DataGenerateManager <AreaDataGenerate> .GetData(skillData.m_FlyObjectArea);

        switch (area.m_SkewDirection)
        {
        case DirectionEnum.Forward: break;

        case DirectionEnum.Backward: forward *= -1; break;
            //case DirectionEnum.Close: forward = (emc.pos - mc.pos); break;
            //case DirectionEnum.Leave: forward = (mc.pos - emc.pos); break;
        }

        switch (area.m_Shape)
        {
        case AreaType.Circle:
            leftBorder = forward.RotateInXZ(360 * 0.5f);
            sectorStep = 360 / (Length + 1);
            break;

        case AreaType.Sector:
            leftBorder = forward.RotateInXZ(area.m_Angle * 0.5f);
            sectorStep = area.m_Angle / (Length + 1);
            pos        = pos + forward * area.m_SkewDistance;
            break;

        case AreaType.Rectangle:
            leftDir       = forward.RotateInXZ(90);
            leftPos       = pos + leftDir * area.m_Width * 0.5f;
            rectangleStep = area.m_Width / (Length + 1);

            break;
        }
        for (int i = 0; i < Length; i++)
        {
            switch (area.m_Shape)
            {
            case AreaType.Circle:
            case AreaType.Sector:
                dir = leftBorder.RotateInXZ2((i + 1) * sectorStep);

                break;

            case AreaType.Rectangle:
                pos = leftPos - leftDir * rectangleStep * (i + 1);
                break;
            }
            CreatPostionInfo cpi = new CreatPostionInfo();
            pos.y = 0;
            dir.y = 0;

            cpi.m_pos = pos;
            cpi.m_dir = dir;
            result.Add(cpi);

            //CreatPostionInfo cpi = new CreatPostionInfo();
            //cpi.m_pos = mc.pos.DeepCopy();
            //cpi.m_dir.FromVector( ssc.skillDir.DeepCopy().ToVector().normalized);

            //result.Add(cpi);
        }

        return(result);
    }