Vaya nombrecito el del post xD, no había una forma más "corta" de definirlo xDDD

Autor: Yo :v (NiuWeb)
Versión de GM utilizada: 1.4.1657 stable version
Descripción: Alternativa mejorada de la función propia del GM string_pos(). Busca las coincidencias de una substring en una string y devuelve la posición de las mismas en un array unidimensional.
La substring puede ser tanto un solo caracter como varios; si es una cadena con más de 1 caracter, el script la buscará igualmente, y devolverá la posición del primer caracter en donde la haya encontrado, por ejemplo: Si busco "gato" en la string "el gato vuela, es un gato volador porque gustavo lo vio volar", el script me devolverá la posición de la "g" de la primera coincidencia de "gato" (es decir, la posición 4) y la "g" de la segunda coincidencia de "gato" (es decir, la posición 22).
De no encontrar la cadena buscada, el script devolverá 0.

Código:
[gml]
///string_pos_fixed(str, substr);
var str = argument0;
var substr = argument1;
var lenght = string_length(str);
var arr = 0, c, m;
for(var i = 1; i <= lenght; i++)
{
    if string_length(substr) == 1
     {
        c = string_copy(str,i,1);
        if c == substr
         {
            if is_array(arr)
                arr[array_length_1d(arr)] = i;
            else
                arr[0] = i;
         }
     }
    else
     {
        m = string_copy(str,i,string_length(substr));
        if m == substr
         {
            if is_array(arr)
                arr[array_length_1d(arr)] = i;
            else
                arr[0] = i;
         }
     }
}

return arr;
[/gml]

Argumentos:
[gml]
string_pos_fixed(str, substr);
[/gml]



str:La cadena en donde buscar coincidencias
substr:La cadena a buscar


Espero pueda ser de utilidad para alguien, no olviden dar créditos si lo desean :B
alaberga regué el café.

BA:STFW&RTFM