… | |
… | |
45 | } |
45 | } |
46 | } |
46 | } |
47 | |
47 | |
48 | if ($tr->move ($dir, $ob)) { |
48 | if ($tr->move ($dir, $ob)) { |
49 | # do multiple loops in case some player/item blocks another |
49 | # do multiple loops in case some player/item blocks another |
50 | while (@ontop) { |
50 | # do not endlessly loop as the server is far too broken, e.g. |
|
|
51 | # you cna drop floor son top of non-floors etc. |
|
|
52 | for (1..50) { |
|
|
53 | @ontop or last; |
51 | @ontop = map $_->move ($dir, $_) ? () : $_, @ontop; |
54 | @ontop = map $_->move ($dir, $_) ? () : $_, @ontop; |
52 | } |
55 | } |
53 | } |
56 | } |
54 | |
57 | |
55 | cf::override; |
58 | cf::override; |