Quote: "whats wrong?"
Since you haven't explained what your code is supposed to do, neither whats wrong (besides the error), i guessed according to whats coded in it and started touching it.
I'll leave here what i achieved. Unless i get a further explanation, i can't be helpful.
Load Image "eddykid.png", 1, 1
Load Image "other.png", 2, 1
global r as integer
Do
cls
r = 0
Sprite 1,100,100,1
Sprite 2,MouseX(),MouseY(),2
PPCOL(2,1,1,255,256)
If r = 1
text 0,0,"Hi!"
Endif
Loop
Function PPCOL(sprite1,sprite2,minalpha,mem1,mem2)
memcolstart as integer
alphaskip as integer
memexa as dword
memexa2 as dword
posx as integer
posy as integer
pcheckx as integer
pchecky as integer
sp1left as integer
sp2left as integer
sp1top as integer
sp2top as integer
sp1right as integer
sp2right as integer
sp1bottom as integer
sp2bottom as integer
memcolstart = 8
alphaskip = 4
sp1left = sprite x(sprite1)
sp2left = sprite x(sprite2)
sp1top = sprite x(sprite1)
sp2top = sprite x(sprite2)
sp1right = sprite x(sprite1) + sprite width(sprite1)
sp2right = sprite x(sprite2) + sprite width(sprite2)
sp1bottom = sprite y(sprite1) + sprite height(sprite1)
sp2bottom = sprite y(sprite2) + sprite height(sprite2)
if sprite collision(sprite1,sprite2)
make memblock from image mem1,sprite1
make memblock from image mem2,sprite2
for x = 1 to Sprite Width(sprite1)
for y = 1 to Sprite Height(sprite1)
posx = sp1left + x
posy = sp1top + y
if posx > sp2left and posx < sp2right
if posy > sp2top and posy < sp2bottom
memexa = memblock dword (mem1,memcolstart + ( x + ( sprite width(sprite1)* y - sprite width(sprite1) ))*alphaskip)
pcheckx = posx - sprite x(sprite2)
pchecky = posy - sprite x(sprite2)
memexa2 = memblock dword (mem2,memcolstart + ( x + ( sprite width(sprite2)* y - sprite width(sprite2) ))*alphaskip)
if memexa >= minalpha and memexa2 >= minalpha
r = 1
endif
endif
endif
next y
next x
endif
EndFunction