ID:144126
 
Code:
                                        for(var/obj/BeamingBeacon/F)
if(F.z==E.BeamLocation[3])
var/I=list(F.x-27,F.y-21)
for(var/turf/G in block(locate(F.x-1,F.y-1,F.z),locate(F.x+1,F.y+1,F.z)))
for(var/mob/H in G)
H.loc=locate(H.x-I[1],H.y-I[2],1)
for(var/obj/H in G)
H.loc=locate(H.x-I[1],H.y-I[2],1)


Problem description:

Funny enough, I can't contract the list and H.loc into

H.loc=locate(H.x-(F.x-27),H.y-(F.y-21),1)

For some bloody reason, It refuses to adjust H.y

Bump
I kind of see what you're doing here, but I don't really understand why you're doing it. Could you explain what this code does and what you're shooting for?
In response to Ephraim
Well, I want to get rid of the list I, and merge it with the H.Loc.. You dont have to know the rest
In response to Kazekage
All right, I'm probably wrong here, but this could be the problem.
var/I=list(F.x-27,F.y-21)

You said it's not changing H's y coordinate, right? Could F's y be influencing this? If F's y was 21, then that's the problem. Also, instead of using block, you should use oview(1, F).
In response to Ephraim
F.y is somewhere in the 60's, if its 21 too, it shouldnt matter, its supposed to do that.

The thing is. H.y should be 'translated' to a new location, with the same location above/under a reference spot, as on the new spot... if you understand.

if F.x is 21, the new Y will also be 21, which is what I want.