Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #local map = require("mapa")
- smap 1 "mapa"
- #local event = require("event")
- sevent 1 "event"
- #local serialization = require("serialization")
- sserialization 1 "serialization"
- #local modem = require("component").modem
- scomponent 1 "component"
- smodem value component.modem
- #modem.open(1)
- 2 modem.open 1
- #local args = {...}
- sargs 3 ...
- @lua function illegalPlayer(pname) end
- @lua function invalidMove(pname, oldPos, newPos) end
- 2 component.glasses.removeAll
- @lua function pyth(x,y) return o4((x ^ 2) + (y ^ 2)) end
- svalidMoves value {[{10,14}]={{10,15}},[{10,15}]={{10,14},{10,16}},[{10,16}]={{10,15}}}
- sscale 7 args[1]
- sscale 6 scale 2
- smap.SCALE value scale
- ssize 7 args[2]
- ssize 6 size 30
- 2 map.start 0 0 size
- steam value {}
- @lua team[ "natan12_" ]=map.addAlly(10,15)
- swalls value {}
- 8 walls map.addWallV(9,14,3)
- 8 walls map.addWallV(11,14,3)
- 8 walls map.addWallH(9,17,3)
- 8 walls map.addWallH(9,13,3)
- ssave value args[3]=="save"
- ssave value (save)and(map.snapshot)
- 10 save o9 map.snapshot "/mnt/230/map-snapshot.png"
- sprint value o12
- @lua function main()
- @lua while true do
- @lua a,_,s,_,_,m = event.pull( "modem" )
- @lua t = serialization.unserialize(m)
- @lua if t.p and not team[t.p] then
- @lua print(t.p, "Illegal player" , s)
- @lua illegalPlayer(t.p)
- @lua elseif t.p then
- @lua local posX, posY = team[t.p].getPosition()
- @lua posX = posX/map.SCALE
- @lua posY = posY/map.SCALE
- @lua local pos = {posX, posY}
- @lua local newPos = {t.x, t.y}
- @lua local valid = false
- @lua if o5(pos, newPos) then valid = true
- @lua else fpairs(validMoves, function(k,v,e)
- @lua if o5(k, pos) then
- @lua fpairs(v, function(k2,v2,e2)
- @lua if o5(newPos, v2) then valid = true e() e2() end
- @lua end)
- @lua end
- @lua end) end
- @lua if not valid then
- @lua print(t.p, "Invalid move:" , pos[1] .. "," .. pos[2] .. "to" .. newPos[1] .. "," .. newPos[2], "Distance =" .. pyth(newPos[1]-pos[1], newPos[2]-pos[2]))
- @lua invalidMove(t.p, pos, newPos)
- @lua else
- @lua team[t.p].setPosition(newPos[1] * map.SCALE, newPos[2] * map.SCALE)
- @lua end
- @lua end
- @lua end
- @lua end
- 9 main
- 2 map.remove map.map
- 2 map.remove map.frame
- @lua function remove(_,v) map.remove(v) end
- 11 walls remove
- 11 team remove
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement