ID:158025
 
When you Enter this turf

    To_King_Kai
Entered(mob/player/M)
if(istype(M,/mob/player))
M.loc = locate(382,166,2)
var/exp_gain = rand(200,300)
M.exp += exp_gain
M<<"<font color=yellow>You gain an Exp Bonus for succesfully making it accross snakeway"
M<<"<font color=yellow>Exp Bonus +[exp_gain]"
M.Level()
return ..()
else
return 0


It display's the message
                M<<"<font color=yellow>You gain an Exp Bonus for succesfully making it accross snakeway"
M<<"<font color=yellow>Exp Bonus +[exp_gain]"


Three times each. How would I make it only display this message once?
There is nothing in what you are showing that should make it display three times. There must be something elsewhere that is causing Entered() itself to get called three times. Watch your exp when this happens, see if it goes up by three times more than you expect, which it should if Entered() is happening three times.
Because you are moving three times. Most likely this is because you have thrown ..() three times into your Move() proc because you don't actually understand what it does.
Delete the other 2 stacked "To_King_Kai" turfs?

$5 that's the problem :p
In response to Ruben7
Ruben7 wrote:
Delete the other 2 stacked "To_King_Kai" turfs?

$5 that's the problem :p

Seeing as that is strictly impossible, I'll take that bet.
In response to Garthor
Lies. Is it? o.o
In response to Ruben7
There is always precisely one turf at every x,y,z coordinate within the bounds of the map. Layering turfs in the map editor is STRICTLY a graphical effect, and only the last-placed turf actually exists. The icons of all the other turfs simply get merged into the top turf's.
In response to Garthor
Garthor wrote:
Because you are moving three times. Most likely this is because you have thrown ..() three times into your Move() proc because you don't actually understand what it does.

Thanks Garthor, I corrected my mistake.