Project Zomboid

Project Zomboid

ProjectElevator
Selecting floor tweak
Hi. I just made a small tweak to the mod so that one can select the floor they want to go to, instead of travelling -3, +3 floors.


Change the function AddElevatorSubMenu in the file AddElevatorActions.lua as follows:

function AddElevatorSubMenu(player, context, square) local elevatorOption = context:addOption("Use Elevator", worldobjects); local subMenu = ISContextMenu:getNew(context); context:addSubMenu(elevatorOption, subMenu); local square = getPlayer():getCurrentSquare(); local lowest_floor = 0; local highest_floor = 0; local nb_floors = 0; -- finds the lowest floor while (SquareHasElevator(getCell():getGridSquare(square:getX(),square:getY(),square:getZ()-lowest_floor)) == true) do lowest_floor = lowest_floor + 1; end -- finds the highest floor while (SquareHasElevator(getCell():getGridSquare(square:getX(),square:getY(),square:getZ()+highest_floor)) == true) do highest_floor = highest_floor + 1; end -- compensate highest_floor = highest_floor - 1; lowest_floor = lowest_floor - 1; nb_floors = highest_floor + lowest_floor + 1; -- adds option for all the floors above you for i=highest_floor,1,-1 do subMenu:addOption(" Floor " .. (nb_floors - highest_floor + i), nil, ProjectElevator.UseElevator, getPlayer(), 250, square, "up", i); end -- current floor (non-clickable option) subMenu:addOption(">Floor " .. (nb_floors - highest_floor) .. "<", nil, nil); -- adds option for all the floors below you for i=1,lowest_floor,1 do subMenu:addOption(" Floor " .. (lowest_floor - i + 1), nil, ProjectElevator.UseElevator, getPlayer(), 250, square, "down", i); end end


Hope this helps
Last edited by -Ovis; 9 Mar @ 12:20pm