--- deliantra/server/ext/transports.ext 2006/12/21 22:41:34 1.2 +++ deliantra/server/ext/transports.ext 2007/05/18 19:46:22 1.4 @@ -38,6 +38,9 @@ my $ob = $pl->ob; if (my $tr = find_transport $pl) { + return cf::override 0 unless $ob->speed_left >= 0; + $ob->speed_left ($ob->speed_left - 1); + my @ontop; for (my $tr = $tr; $tr; $tr = $tr->more) { @@ -49,14 +52,14 @@ if ($tr->move ($dir, $ob)) { # do multiple loops in case some player/item blocks another # do not endlessly loop as the server is far too broken, e.g. - # you can drop floor son top of non-floors etc. + # you can drop floors on top of non-floors etc. for (1..50) { @ontop or last; @ontop = map $_->move ($dir, $_) ? () : $_, @ontop; } } - cf::override; + cf::override 1; } }, ;