Cześć, nie wykonujesz skryptu, tylko porównujesz jego ID. Skrypty wywołujesz jak każdą inną funkcję, czyli w pierwszym if-ie daj:
if(scr_arrow_can_hit() == 1) (...)
Dodatkowo dodam od siebie, że zamiast używać other w skryptach, to powinieneś przesyłać dane poprzez parametry. Poprawia czytelność kodu oraz pozwala używać tego skryptu w różnych miejscach a nie tylko w Collision Event:
///scr_arrow_can_hit(array, against_id)
var arr = argument0;
var inst = argument1;
var i, al = array_length_1d(arr);
for(i=0; i<al; i++)
{
if(arr[i] == inst) return 0;
}
return 1;
Potem używasz tego skryptu w ten sposób:
if(scr_arrow_can_hit(other.array_objectID, id) == 1) (...)