The example is really simple, but this comment you made got me thinking:
You can add this script to make it work in 8.0:
/*
point_distance_3d(argument0,argument1,argument2,argument3,argument4,argument5)
*/
return sqrt(sqr(argument0-argument3)+sqr(argument1-argument4)+sqr(argument2-argument5))
It got me thinking about what scripts could be made to maximise GM8.0's compatibility with GM8.1. So here are some functions which replicate GM8.1 functionality.
///point_distance_3d(x1, y1, z1, x2, y2, z2)
return sqrt(sqr(argument0 - argument3) + sqr(argument1 - argument4) + sqr(argument2 - argument5));
///dot_product_3d(x1, y1, z1, x2, y2, z2)
return (argument0 * argument3 + argument1 * argument4 + argument2 * argument5) / sqrt((argument0 * argument0 + argument1 * argument1 + argument2 * argument2) * (argument3 * argument3 + argument4 * argument4 + argument5 * argument5));
///dot_product(x1, y1, x2, y2)
return (argument0 * argument3 + argument1 * argument4) / sqrt((argument0 * argument0 + argument1 * argument1) * (argument3 * argument3 + argument4 * argument4));
///draw_self()
draw_sprite_ext(sprite_index, image_index, x, y, image_xscale, image_yscale, image_angle, image_blend, image_alpha);
///clamp(val, min, max)
return median(argument0, argument1, argument2);
///lerp(val1, val2, amount)
return argument0 + (argument1 - argument0) * argument2;
///string_byte_length(str)
return string_length(argument0);
///string_byte_at(str, index)
return string_char_at(argument0, argument1);
///ansi_char(index)
return chr(index);
And to remove errors (but not replicate its function):
///d3d_light_define_ambient(color)
return argument0;
///d3d_set_zwriteenable(enable)
return argument0;
///get_function_address()
show_error("get_function_address called. No good workaround for this in GM8.0.", true);
return 0;///display_reset(aa)
return argument0;
//message_text_charset(type,charset)
return argument0 * argument1;