Thanks Carlos but it does not work.
all raised vertexes are at the same location (x,y,z). looks like a pyramid.

Here is the new code (Maybe I did not understand what you mean - sorry for my bad english):

void Terrain_Deform()
{
if (terrain_entity==NULL) {return;}

terrain_entity.emask |= DYNAMIC;
wait(1);

var closest_vertex = ent_nextvertex(terrain_entity , ActiveTileSquare.x);

CONTACT* c = ent_getvertex(terrain_entity,NULL,closest_vertex);
c.v.y += (float)32;

var verts_per_row = 25;
var vert2 = closest_vertex + 1;
var vert3 = closest_vertex - verts_per_row; // 500 vertexes per row!!
var vert4 = closest_vertex - (verts_per_row+1);
if(closest_vertex<verts_per_row)
{
closest_vertex+=verts_per_row;
}

if(closest_vertex%verts_per_row==0)
{
closest_vertex--;
}

// printf("Vertex1: %1f", (double)closest_vertex);
// printf("Vertex2: %1f", (double)vert2);
// printf("Vertex3: %1f", (double)vert3);
// printf("Vertex4: %1f", (double)vert4);


// c.y +=10;
ent_setvertex(terrain_entity , c , vert2);
wait(3);
// printf("Vertex: %3f", (double)closest_vertex);
// CONTACT* c = ent_getvertex(terrain_entity,NULL,(closest_vertex+32));

// closest_vertex += 25;
// printf("Vertex: %3f", (double)closest_vertex);


// c.vertex += (float)1; // nächster Vertex in x Richtung
// c.v.x -= (float)25;
// c.nx -= (float)25;
ent_setvertex(terrain_entity , c , vert3);
wait(3);


// c.vertex += (float)32; // nächster Vertex in z Richtung
// ent_setvertex(terrain_entity , c , closest_vertex);
wait(3);


// c.vertex += (float)1; // nächster Vertex in x Richtung
ent_setvertex(terrain_entity , c , vert4);
wait(3);
terrain_entity.emask &= ~DYNAMIC;
}