Advertisement
Thetroz

[Reto] Recoger puntos

Oct 2nd, 2016
312
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Lua 5.22 KB | None | 0 0
  1. local map = {'<C><P H="800" L="1200" /><Z><S><S P="0,0,0.3,0.2,0,0,0,0" L="213" o="324650" H="57" X="108" Y="115" T="12" /><S P="0,0,0,0,0,0,0,0" L="10" o="324650" H="620" X="251" Y="297" T="12" /><S P="0,0,0,0,-72,0,0,0" L="10" o="324650" H="500" X="486" Y="685" T="12" /><S P="0,0,0,0,-70,0,0,0" L="10" o="324650" H="500" X="440" Y="723" T="12" /><S P="0,0,0,0,0,0,0,0" L="10" o="324650" H="620" X="1" Y="307" T="12" /><S P="0,0,0.3,0.2,0,0,0,0" L="523" o="324650" H="16" X="930" Y="809" T="12" /><S P="0,0,20,0.2,0,0,0,0" L="15" H="819" X="1195" Y="408" T="4" /><S P="0,0,0.3,0.2,0,0,0,0" L="1205" o="324650" H="10" X="600" Y="-1" T="12" /><S P="0,0,0.3,0.2,0,0,0,0" L="534" o="324650" H="33" X="579" Y="69" T="12" /><S P="0,0,0.3,0.2,0,0,0,0" L="534" o="324650" H="33" X="572" Y="249" T="12" /><S P="0,0,0.3,0.2,0,0,0,0" L="534" o="324650" H="33" X="569" Y="411" T="12" /><S P="0,0,0.3,0.2,0,0,0,0" L="534" o="324650" H="33" X="618" Y="571" T="12" /><S P="0,0,0.1,0.1,90,0,0,0" L="534" o="324650" H="33" X="1037" Y="310" T="12" /><S P="0,0,0.3,0.2,0,0,0,0" L="11" o="324650" H="90" X="354" Y="599" T="12" /><S P="0,0,,,,0,0,0" L="206" H="182" X="103" Y="708" T="9" /><S P="0,0,,,,0,0,0" L="433" H="85" X="421" Y="757" T="9" /><S P="0,0,,,,0,0,0" L="75" H="100" X="242" Y="667" T="9" /><S P="0,0,,,,0,0,0" L="201" H="476" X="104" Y="381" T="9" /><S P="0,0,0,0,0,0,0,0" L="10" o="324650" H="250" X="210" Y="268" T="12" /><S P="0,0,0,0,0,0,0,0" L="10" o="324650" H="200" X="210" Y="540" T="12" /><S P="0,0,0.3,0.2,0,0,0,0" X="210" L="10" o="324650" H="200" c="2" Y="434" T="12" /></S><D><DS Y="56" X="91" /></D><O><O X="16" C="11" Y="182" P="0" /><O X="93" C="11" Y="181" P="0" /><O X="162" C="11" Y="180" P="0" /><O X="17" C="11" Y="371" P="0" /><O X="122" C="11" Y="362" P="0" /><O X="167" C="11" Y="278" P="0" /><O X="19" C="11" Y="270" P="0" /><O X="95" C="11" Y="264" P="0" /><O X="494" C="11" Y="530" P="0" /><O X="695" C="11" Y="530" P="0" /><O X="403" C="11" Y="371" P="0" /><O X="670" C="11" Y="368" P="0" /><O X="419" C="11" Y="203" P="0" /><O X="670" C="11" Y="203" P="0" /><O X="461" C="11" Y="29" P="0" /><O X="624" C="11" Y="27" P="0" /><O X="1015" C="11" Y="241" P="0" /><O X="1010" C="11" Y="445" P="0" /><O X="1064" C="11" Y="330" P="0" /><O X="230" C="11" Y="381" P="0" /><O X="26" C="11" Y="27" P="0" /><O X="226" C="11" Y="207" P="0" /><O X="880" C="2" Y="769" P="0" /><O X="971" C="2" Y="768" P="0" /><O X="1063" C="2" Y="770" P="0" /><O X="1063" C="2" Y="769" P="0" /><O X="694" C="11" Y="662" P="0" /></O></Z></C>'}
  2. local objects = {}
  3. local contador_in = 5
  4. local contador = 0
  5. local ganadores = {}
  6. local mice = {}
  7. local timer = 33
  8. local mostrar = false
  9.  
  10. function main()
  11.     for name in pairs(tfm.get.room.playerList) do
  12.         eventNewPlayer(name)
  13.     end
  14. end
  15.  
  16. function eventNewPlayer(name)
  17.     for i=1,200 do
  18.       tfm.exec.bindKeyboard(name,i,true,true)
  19.      
  20.         end
  21.     mice[name] = {puntos = 0,objects = true, timer = 0}
  22. end
  23.  
  24. function eventNewGame()
  25.         local xml = tfm.get.room.xmlMapInfo.xml
  26.         local s = {}
  27.                 for c in xml:gmatch('(<O [^<]-C="11"[^>]-/>)') do
  28.                 x = c:match('X="(%d+)"')
  29.                 y = c:match('Y="(%d+)"')
  30.                 insertobject(x,y)
  31.                 end
  32. end
  33.  
  34. function insertobject(x,y,id)
  35.     local a={1,1,1,1,1,1,1,2,2,2,2,2,2,2,2,2,2,2,2,2,3,3,3,4,5,5,5,5,5,5,5,5,5,5,5,5,6,6,6,7,8,8,9,10,11}
  36.     id=id or math.random(1,a[#a])
  37.     table.insert(objects,{id=id,x=x,y=y})
  38.     local numtable=#objects
  39.     ui.addTextArea(numtable+9000,"",p,x,y,10,10,math.random(0x000000, 0xFFFFFF),0x000001,0.75,false)
  40. end
  41.  
  42. function takeobject(p,x,y)
  43.     for a,b in pairs(objects)do
  44.         if mice[p].objects then
  45.         if x<b.x+20 and x>b.x-20 and y<b.y+20 and y>b.y-20 then
  46.             mice[p].objects=false
  47.             mice[p].timer = 2
  48.             ui.removeTextArea(a+9000,p)
  49.             mice[p].puntos = mice[p].puntos + 1
  50.         end
  51.         end
  52.     end
  53. end
  54.  
  55. function eventLoop()
  56.     contador_in = contador_in - 0.5
  57.     timer = timer - 0.5
  58.     if mostrar == true then
  59.     tfm.exec.setUIMapName("Tiempo restante : <v>"..math.ceil(timer).."!\n\n\n")
  60.     end
  61.         if contador_in > -1 then
  62.         ui.addTextArea(0, "<p align='center'><b><font size='18'>Preparados...Empezamos en <v>"..math.ceil(contador_in).."", nil, 270, 27, 300, 50, 0x003366, 0x000000, 1)
  63.         end
  64.         if contador_in == -1 then
  65.         ui.addTextArea(0, "<p align='center'><b><font size='18'>¡A recoger puntos!<br><font size='10'>Recogelos con la tecla <b>espacio.", nil, 270, 27, 300, 50, 0x003366, 0x000000, 1, true)
  66.         timer = 33
  67.         tfm.exec.disableAutoShaman(true)
  68.         tfm.exec.disableAutoNewGame(true)
  69.         tfm.exec.newGame(map[1])
  70.         mostrar = true
  71.         end
  72.  
  73.     if timer == 0 then
  74.         for name in pairs(tfm.get.room.playerList) do
  75.             table.insert(ganadores, ""..name.." : "..mice[name].puntos.."")
  76.             tfm.exec.killPlayer(name)
  77.             mostrar = false
  78.             tfm.exec.setUIMapName("Tiempo restante : <v>¡TERMINÓ!\n\n\n")
  79.         end
  80.     ui.addTextArea(1, "<b><font size='14' color='#000'><p align='center'>Puntos.</p><br>"..table.concat(ganadores, "<br>").."", nil, 13, 27, 150, 200, 0x0099ff, 0x000000, 1)
  81.     end
  82.     for p in pairs(tfm.get.room.playerList) do
  83. mice[p].timer = mice[p].timer - 1
  84.  
  85. if mice[p].timer < 0 then
  86.             mice[p].objects=true
  87. end
  88. end
  89.     end
  90.  
  91. function eventKeyboard(p,k,d,x,y)
  92.     if k==32 then
  93.       takeobject(p,x,y)
  94.     end
  95. end
  96.  
  97. main()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement