ID:157752
 
Northeast()
return
if(usr.tempvars["Shinjid"]&&usr.tempvars["SActivated"]==0)
usr.tempvars["SActivated"]=1
if(rand(1,3)==1)
Northeast()
else
Southwest()
else
..()
usr.tempvars["SActivated"]=0
Northwest()
return
if(usr.tempvars["Shinjid"]&&usr.tempvars["SActivated"]==0)
usr.tempvars["SActivated"]=1
if(rand(1,3)==1)
Northwest()
else
Southeast()
else
..()
usr.tempvars["SActivated"]=0
Southeast()
return
if(usr.tempvars["Shinjid"]&&usr.tempvars["SActivated"]==0)
usr.tempvars["SActivated"]=1
if(rand(1,3)==1)
Southeast()
else
Northwest()
else
..()
usr.tempvars["SActivated"]=0
Southwest()
return
if(usr.tempvars["Shinjid"]&&usr.tempvars["SActivated"]==0)
usr.tempvars["SActivated"]=1
if(rand(1,3)==1)
Southwest()
else
Northeast()
else
..()
usr.tempvars["SActivated"]=0


They don't reverse. The north/west/ect are similar, yet all work fine!
Your way may be round about but I can't think of any reasons it would fail other then the returns at the beginning of each proc.

Try removing these.
 return
In response to Chowder
Er, sorry. Those were removed. I added them to disable diagonals, since the reversing wouldnt work on em
In response to Asellia
Your code runs perfectly in a test environment. As I thought it would... So the only thing that could be wrong with it is
1. tempvars["Shinjid"] is not a true value
2. Something is over-riding or under-ridding your override

You said they wont reverse..That's exactly what the code is set up to do if "Shinjid" is false, and another cause could be if those directions are being overridden further down the code.

You can test it by using this at the beginning of your diagonal procs.
world<<"The temp var is (tempvars["Shinjid"]&&1)"
If it shows 0 its not being set to true
If that fails to show somethings overriding it after your procs.
If it shows 1 and fails to reverse on multiple trys then something is overriding the default procs before your procs.