0 в игре
Скачать
Полицейская погоня под эстакадой в Mafia II

Вики

Помещения

Mafia II подгружает помещения у их дверей, как GTA загружает IPL: заправки, закусочная Джо и другие, бары («Одинокая звезда», «Хилл оф Тара», бар Иллии, бар Фредди), магазины одежды и оружия, мастерская Гарри, магазин Джузеппе, парикмахерские, свалка Бруски, автосалон, квартиры Вито и Джо, особняк Фальконе и другие — 49 мест и 355 дверей.

В MafiaM они по умолчанию свободные: все двери открываются как обычно, и никто ими не управляет — нет продавцов за прилавком, меню магазинов и касс, которые можно ограбить. Используйте их в своём моде как хотите: свой магазин (со своим меню), полицейский участок, дом.

world.setInteriors("free")     -- по умолчанию
world.setInteriors("closed")   -- всё закрыто
world.setInteriors("game")     -- как в одиночной игре: продавцы, покупки, ограбления

Или в m2o_server.ini: [world] interiors=free.

Как запереть дверь

Дверь находят по месту. Клиент знает двери вокруг игрока, сервер запирает дверь для всех:

-- клиент: дверь перед игроком
local x, y, z = player.getPosition()
local dx, dy, dz, locked = world.getNearestDoor(x, y, z, 2)
if dx then events.emitServer("toggleDoor", dx, dy, dz, not locked) end

-- сервер
events.onClient("toggleDoor", function(player, x, y, z, lock)
    if ownsHouseAt(player, x, y, z) then world.setDoorLocked(x, y, z, lock) end
end)

Переходы

Некоторые помещения игры не соединены с улицей: у их двери игра затемняет экран и переносит вас. world.addPassage делает это для любых двух мест — дверь в помещение, лифт, автосалон за городом:

world.addPassage{ from = {x, y, z}, to = {x, y, z, heading}, text = "Бар Фредди" }          -- [E] у двери
world.addPassage{ from = {x, y, z}, to = {x, y, z, heading}, key = false }                  -- просто войти
events.on("playerPassage", function(player, id) ... end)                                      -- кто прошёл

Запертую дверь нельзя открыть и выбить. world.resetDoor(x, y, z) возвращает её режиму помещений; замки ресурса снимаются, когда он останавливается.