KeinMitleid

Grimrock: Plate Path Puzzle

Jun 24th, 2013
71
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Lua 1.01 KB | None | 0 0
  1. -- insert name of door within quotes
  2. door = "puzzle_door"
  3.  
  4. -- insert names of plates, in order, within brackets
  5. plates = {  "puzzle_plate_a_5",
  6.         "puzzle_plate_a_6",
  7.         "puzzle_plate_a_5",
  8.         "puzzle_plate_a_2",
  9.         "puzzle_plate_a_1",
  10.         "puzzle_plate_a_4",
  11.         "puzzle_plate_a_1",
  12.         "puzzle_plate_a_2",
  13.         "puzzle_plate_a_3",
  14.         "puzzle_plate_a_2" }
  15.                    
  16. counter = 0
  17. last_plate = nil
  18.  
  19. for i = 1, #plates do
  20.     for j = 0, i - 1 do
  21.         if plates[i] == plates[j] then break end
  22.         if j == i - 1 then
  23.             hudPrint(tostring(plates[i]))
  24.             local plate = findEntity(plates[i])
  25.             plate:addConnector("activate", self.id, "isPressed")
  26.             plate:setTriggeredByParty(true)
  27.             plate:setTriggeredByMonster(false)
  28.             plate:setTriggeredByItem(false)
  29.         end
  30.     end
  31. end
  32.  
  33. function isPressed(plate)
  34.     if last_plate == plates[counter] and plate.id == plates[counter + 1] then
  35.         counter = counter + 1
  36.         if counter == #plates then findEntity(door):open() end
  37.         last_plate = plates[counter]
  38.     else
  39.         counter = 0
  40.         last_plate = nil
  41.     end
  42. end
Advertisement
Add Comment
Please, Sign In to add comment