Function Error: Works as Code Block but not as Fuction

I have a snippet that I use 4 times in my script, I decided to create a function but when function is used I got an error:

Warning: 
desplazarPunto expects argument type(s) (var, double, double, double), 
but was called with (Autodesk.DesignScript.Geometry.Point, int, int, int). 

Original code block:

// Obtener las coordenadas del punto p
    coordenada_x = Point.X(p);
    coordenada_y = Point.Y(p);
    coordenada_z = Point.Z(p);

    // Convertir desplazamientos de milímetros a metros
    desplazamiento_m_x = desplazamiento_mm_x / 1000;
    desplazamiento_m_y = desplazamiento_mm_y / 1000;

    // Calcular el movimiento según la escala de la vista
    movimiento_escalado_x = desplazamiento_m_x * escala_vista;
    movimiento_escalado_y = desplazamiento_m_y * escala_vista;

    // Calcular la nueva coordenada
    nueva_coordenada_x = coordenada_x + movimiento_escalado_x;
    nueva_coordenada_y = coordenada_y + movimiento_escalado_y;

    // Crear el nuevo punto con las coordenadas ajustadas
    punto_nuevo = Point.ByCoordinates(nueva_coordenada_x,
   nueva_coordenada_y, 
  coordenada_z);

New function:

def desplazarPunto(	p: Point,
					desplazamiento_mm_x: var,
					desplazamiento_mm_y: var,
					escala_vista: var)
{
    // Obtener las coordenadas del punto p
    coordenada_x = Point.X(p);
    coordenada_y = Point.Y(p);
    coordenada_z = Point.Z(p);

    // Convertir desplazamientos de milímetros a metros
    desplazamiento_m_x = desplazamiento_mm_x / 1000;
    desplazamiento_m_y = desplazamiento_mm_y / 1000;

    // Calcular el movimiento según la escala de la vista
    movimiento_escalado_x = desplazamiento_m_x * escala_vista;
    movimiento_escalado_y = desplazamiento_m_y * escala_vista;

    // Calcular la nueva coordenada
    nueva_coordenada_x = coordenada_x + movimiento_escalado_x;
    nueva_coordenada_y = coordenada_y + movimiento_escalado_y;

    // Crear el nuevo punto con las coordenadas ajustadas
    punto_nuevo = Point.ByCoordinates(nueva_coordenada_x,
 nueva_coordenada_y, 
coordenada_z);

    return punto_nuevo;
};

What am I doing wrong?

Thank u for your time.

Cheers.

I can copy your definition and use it with a list of points so I’m not quite sure where your issue is from. I thought it was a list structure issue but the function should handle the list iteration automatically.

Something doesn’t seem right though, because the data types in the error message you pasted don’t match the data types in the screenshot you’ve shared. Are you sure you copied everything correctly as it is in the current graph?