public static void AppBlink(Effect effectData, EntityParent caster, XPoint basePoint, bool isCommunicateMix)
    {
        Pos                 pos     = new Pos();
        Vector2             vector  = new Vector2();
        Vector3             vector2 = Vector3.get_zero();
        Vector3             vector3 = caster.Actor.FixTransform.get_forward();
        EffectBasePointType @base   = (EffectBasePointType)effectData.@base;

        if (@base != EffectBasePointType.SpawnPoint)
        {
            vector2 = basePoint.ApplyOffset(effectData.offset).position;
        }
        else
        {
            vector2 = LocalAgent.GetSpawnPosition(effectData.summonId);
        }
        if (effectData.blinkPoint != 0)
        {
            vector3 = LocalAgent.GetSpawnPosition(effectData.blinkPoint) - vector2;
        }
        pos.x    = (float)((int)vector2.x * 100);
        pos.y    = (float)((int)vector2.z * 100);
        vector.x = vector3.x;
        vector.y = vector3.z;
        LocalBattleProtocolSimulator.SendTeleport(caster.ID, pos);
    }