Mousetat

Memory game edited

Sep 16th, 2016
277
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 14.71 KB | None | 0 0
  1. -- Jogo da memória
  2. -- Escrito por Ninguem - Data: 21/09/15
  3.  
  4. -- Tamanho do tabuleiro
  5. -- -- Ponha pelo menos um número par
  6. -- -- Se quiser tamanho aleatório ponha nil
  7. t1, t2 = 6, 5
  8.  
  9.  
  10. start = true
  11. tabuleiro = {}
  12. jogador = {}
  13. tempo = os.time()
  14.  
  15. imagens = {
  16. "0","0l7dha7jwg","0LkiSmJ9MgT4DpEC5G3kIU4tHFVOxpaBzhPYj7XyL9Q","0r52kx7z7e","0WRRxwKhLUgeO8cT5eJ6iQuvAHGolyBrdosj2zCM9U","1","10","11","12","13","14","15","16","17","18","19","1bmdn2xfe3","1wh7Savw9WT0FLBvBW5Fm4QuOL20KPwqqcyWzoC6i0U","2","20","2000","21","2100","2101","2102","2103","2104","22","2200","2201","23","24","25","26","2f20g04h4","2gadpw47O5uaKQC5g5IdztctbQUzrcrp9onTnmdk2cM","2sp1roej2k","2uiUmXA8sIkyPb1c1kJ6w6i7gnHYfMu8Oc5VzUevwcg","3","30dxX8W05XRWo1NmKCcvFOeFYXLxZCS2kraEleDUYg","33ud0ZXci3buO3ymFkNJx1fGf1ueuYmdO67vbi98D0","3ccsbyvhpz","3mz5qd4z2y","3zmln25hyh","4","43pvoouh93","4bozqopqi5","4s0tu2","5","514gqnn1ms","5d6cb9i08b","5i12KDxD08qPGxnCYA0jjaxAVO8xzsQQMJTvkyrNd8","5UTdCOlQm2xAqz8F8c4tBCSe0Gdfxt3fdjbe5gr6yc","5uvk7ird2s","6","699EkXWpCYe3LPlESNYuKqjpa2pgpbiYmDd6kDx8YQ","6lwapv0kox","6nRd8qAGJGLVy9Y2yopFXyxvYTgb3n8nHMeQtQFI","6zl1JiWlG9OCyrriBsMzD0ia5QiF8S9YvAxWG3FnTXA","7","79kw5CwboMEPcKml0GpCcQ2dXPY7ZDOYgUVnMkTpVg","7DIJOtMaacRkhPNjTnlJLvYOPa8Dv08lsVX4tinhg","8","82yuoxjduv","8EpuLts9LEboiuCmmd8youBAVFnZtC4Z3dxaLJ3m4","8lFGMEhoJVfLQcExQqkw82SmkmMAHmJguAfzipw8aBM","8wj5bxfeb1","8zDx58YZBtldvBLf0rliXN92o2yDJoHdLxJnuFQ","9","96Vj8WDHwhZ3IkUCaiuf8PvnkcqMMhQ3XoQ44xo","9ec28u0en9","9hyr75cSjxb2m3AprvOBWxCMX8W8tkSgzbr9ZaU8A","9RKBXtSbzZY7wZNHdHF8MjpTFNc34zReG23B6P6lbA4","a204204204","A6NTejvUde9zWCh5z05WmjYPb3d6jFkFpH1ppsRSXwQ","aHsNLaHZFPjgxmZ8IIsc3jv4pdPbOReP3GXEICQg0","ax87sag23a","bbjuqm7ljl","bexotv9zrh","bkrb1t5hmv","bl4zmmj3me","buPtPjM7hsVWE1JCKmd0MhjbKvhz7tf88Yd581kg","c2ov7ejhie","c402402402c","ce5oxzhglp","Cf4CoL80oRxwiZApBqEVTBhDicMeVQJyQ9fmZfJyDdo","cGdHynPCHroFFrehfxWh4AOJU5djLfH505IHeckRU","ChIbtHOaeAhxGi3KYuK4WBpHO04dIAi7pVPdZVc7zQk","CIgfMrehmiIaj63gwByoxFsOTLtQD1Z3XF8l8f0ps","cmlbqsw9te","COaQkXxqOrRrFZAZWLaAlxJ4abXuXDNEDknW5zNafIE","crlDpPHdSzwpyARMioyU93vqJ5Q7BUfhXxfpk08NX0","ctehds0xye","CZNLOef8kmUFc9dWQ2IZDxcZvst1eojFkaKGPWIT1Y","dmArdOYFrkvaltGstPFMO4JQbZRrXDt4aDZqSPqKYbg","dutgm5orpb","DVdTfS2ik8vUiOzYeTaTjlATGzkcuQTQOKzlHfkkyyc","e0wCR6i1a3zmPBU9We6pd9mVJJmTZaLQpklAR72IsI","E31T4VaUFehRxjZfvuhioGJM2bigkMyad9DD9txAw8","eff81rwlig","EfTGZt5lhyEOspAXNdrTrPNGDTf5MpRCnCcvqt0I","eL7N3SgFpOxR2fYxQOmCBKdv4zIvcdtTCvrmidyJU","ew93duer51","eyod69sgfz","f204f402f","f8s2pte6ir","fBa7AfOL8KuN50mPAo3obAjh5NHb2Gk8PgqOr40VyTk","FD6Q8lJNpiK33vl9dhGiQiBx3f7TmebdNb6cFDQ7g8","fg6l1hqncq","fgKxUeiHLfEMMc4ojwAlEGnxkkHEpmjzhVnN7Yn5XI","fqyzbydjw5","g0os4wr69m","g5patd5hvb","g75ev2twxd","g76y35nbis","GGf0TYFkxA0PcKR3a0q3BEM7eG2Br65roa70raF6ihY","Gm9BAufh8LGzSzBC7aiCTeYHT9DsZRyAOvXmjjNGw","gQVRUSChjplZIhGuyCdz9tHyMdcNYy0BIkdt2ck4hVk","gS9Og2jgByW6TkJNIehtk4YUHdxc5Vl5wWSCaXsUDmM","h3ddnzmlsf","h6eijakwhk","HBqbuRx5ArdoJOz809pZ9HHcTwFXa7jgK74oy04vJI","HNiGEDvZ3aFP45ay5OaNJIwMgxV5HwnItg7PAdR6F2k","HoXki0OskT5VpFNsk6P0p1ZLXJozE5k6LBgM33OE2Y","I01l2fnq2t30SVxZ75CrLj4C7fH96M2klOiHXEFuU","ik83ur9fbd","ip97ba4tk2","ipgudzyogg","J1m295WzjhdWqb81JdtGOSbibUtRXOmq33VJ3kiThc","j5zr4gorvr","jgkh6sfbs8","JoKxhRIk0e0egPZoNKKgESqoeesZ47DwyjH854JUek","JVopemvVaFPQPXJmN5Q9wq8z5eUxVRPViRY7J0njs","k7q2zb9d1b","KfLJIuw1rwwL5lh8YVy6rctDT83ZzE1AxeSyjhyqE","kQepnZAtTQAFXnR4UsMETR7qgN1iKYnV65L0LMCUd0","ks6QIZKaDmufnQMFnvpJESCIDjXd4RtUxzNOdeWxgU","l3oictwye7","LBFpqgn10T1lNSMa9tlITX1yJlfEiMyvqTAgJjrhv4","lbo8tlpcki","LlhMXnHN9S6UYVZuhzXsiHbLkhIsgKb0APw8qG0","lNKtNCA6wr3SLAe5w5jrSuVZPdZUWZFVhjgbaTWKk","m20402","Mhbi91w1V3iG57Y49rl1ThXgkUI784CKSdMB9b9nomU","MoAb5bYEWJO2IpP7k9GYbd8EsDDyMSJiZSC9KVfxqA","mregotuukq","n4ds62s6i1","NbWYiwXhplR1e3rE0riaheqHoVffjYNShK9zdnZZnNI","njk3z9bnlu","nlYqwmGtZIBbnRkQavZGN259NKSWdHNwrcersknpVQ","nmbm1156u1rXEwNBPDWJDRMl0fzyWZwvV95Lp3zHU","npZ0fohuGfeTn519YlaWV4yfKDAzmuyUbH6qmPE0E","o202044","objdeEAPoVMi058bVlYFsJlqjtkGsn1vWFi1CfhINGo","ok0gtd8qeg","OV7erW0FjFAHHcCWji0xEbu42U1vXVJZGxGvHlDHM","ow2bc4rku0","p2ZElXoNCeLEVfuw5LAZgT0DKQ1WEFkESx5Q6TMjeo","p40jBVwJNCAfvLuAOqVioqbHWgdv1sA3QIGcZqdS6fk","P57Gjs4Rw89wQ8isaia3X7N2csoHnQoEZYIHnhqVI","pgiyiw1x1w","pi6op2gp99","pLmduY5bcSARb78P48gA6HKnLuhYKBJe1WFPRkBWQOE","povqgjlxpv","PxItJf9Eygly0F2l0LZav0MgTvU45sGe7jPJWmojgRQ","q2o6jjjxay","q440022","qQN0cBRbFfNQHDSg1h9Dv9yy1ElDzCHZe9Z3p7XZ2o4","qv5qo1hhsz","qWvDSzkpGqkrnreHWCesVDjgjVjosYIbz81RRjQLVy0","QXAaFrcBovyFpUD2a04BKEzLk2lqYLWzp3vFozn2eFI","rjnfFdqMwxsbP15bR2BEXmiR5UuAosGfc5e77NdTc","roKr8DzoyJmoQ1Z6LW8PTMwuEaHsrBirMy3Cs7vynU","S1sAttWNRMg0zs5JQDknD92C4CI5bxTlFPfGNtmRPU","s2IfI5tSvW5ghPeAPyB32iz5OIBYqCULOOOI7sM4","s7n5wfbvti","S8mRUsPdIPhc5LqEfxS1tP5tOwB0NsQVasy0NjVr0","Se18YNs6V6Ss3tp52AcGFaRgUSWpFuBA0yVMGuuqih0","srk29axDzd1shGgH3syRS2TYJoR0iDK2jR9AAi0yWB0","SSA4n5gwcgXygaWpD6bP7rdrDaHTs9BZEjK0L1ZvDz8","ssrC6Y2LaN1XDvl9WLUPSozl6Q3fzWN7nwxKLmuFRyU","StznjnJGNJP3dhEGSNbedjQQxYVn0krJY9VIuNAd4","T2io2PRTj1jLM63s5oQpfq4nY1T2ACt9oPiCaRcZH6c","T54O5XV0bsQskH0Wo6Z1hNdaXQfzu98UQjOc2jfd8","tag_cadeau","tag_citrouille","tag_craie","tag_oeuf","tfzhcj89vi","tgotwx8x3y","To0HmN4L9XTvqRqSsqnDB0J5nQXtldm5QTTCaK1LI","tUyjLYs7vrFi5u1BXwXnthj9okSpFaorOO5aA6Svc","U20ULGn0opswTDwYlFVrONq6oCm3AjenXseHsxNQHEg","u3niod6Bbc7lD7WgVdzCXmIEZz5mBhxYiED6JIbivGo","U6BRlCKgHEyUeAYHikTzaubpNrSbXUsJQBFqGGWyU","v0Pc3IZXqOJpk3Y0KniIUH5RiPgJ4hSXFuq0MJTXUY0","v474yi4mgc","V81O8HKAs9KCjy36B2HVGNNTm18ncjDCxJyOQxG8","VfgZohcF7SrxhlxxOWYtmJ1gH62JEzmcNyOEuejG8","vq1CNJxAUjx3bLe7Mv2I9wmBYOysnaJtVJjJXbo0","VujTCIIiJyysfZCFfYLjcUPOofoCmvB9Cj61rCE","vx5lklum30","wdJNrAOobBistUcMKykHKjRf9SrgoybOuSdPbbK34c","wgvf9w0l76","wJ0oFf8vYpPgqeCfCHKqnIeXZ78pk6JYS6c0KdEOGw","ws9LkVGU3zpCOPexR4BCCiRV6IJ1dRlE191cBSg5A","x4COVjaFPlajsu74QCdz598pn7jwlXuhmn9LS0ErQ","x74leSJzuhbfdpMy16hPAkyjxKBFiD4o3cu6QCk","x8d0y5yovf","xaEL6bbYCHtZwydYAcD8j6iaD6NiFnDH2XTy0bBc6Ro","XhoRVi2Uf6z2s8R379ax6OWWkTpVhfz5UyIgzZUkDhY","XJZCpcfYG6USKPs5pare2slAx7DFXV0k5mtbvASuVXo","xmy573nxwv","y0MsvgYGN2Xnw0L9DDt79TggVUqIRwEApw7Syl938","y5nrBqYGSVgBHqDMMKToBB4YXZPZLRaqCYcUkSPhI","YbUq2DsYDSRwCFImNXm9sNmd0wMlDD0YrqHmFJF8sGs","YX3w9C6eKKB32tlXXJksjgUED752Jw9ybOhDvMiT4","yy5lgdnb3r","z5k6FofFGNqoLIdPVAgJ1gj8A0lgdUACH89XtAkoA","zcr1t92wm8","ZHEjLkXN56Ak5PHKyrMPK9Wgcihh46cht8XioAm6Q","zkhxx0h2bq","ZO3yexm6s3UBwNIMWKd9voJ8h2QU2kHJYJLcKfSKI","ZoJsUWWAjkjGlJ17FLUtjYgo5AhHof2hZvwDFsOmanA","zsoimp88d6"
  17. }
  18.  
  19. fundos = {
  20. "x_deadmeat/x_interfaces/x_login.jpg",
  21. "x_evenements/x_carnaval2014.jpg",
  22. "x_evenements/x_fondHalloween.jpg",
  23. "x_evenements/x_fondNowel2013.jpg",
  24. "x_evenements/x_fondSVa.jpg",
  25. "x_transformice/x_connexion/x_cimetiere.jpg",
  26. "x_transformice/x_connexion/x_indi.jpg",
  27. "x_transformice/x_connexion/x_noel2014.jpg",
  28. "x_transformice/x_connexion/x_papaque_2015.jpg",
  29. "x_transformice/x_connexion/x_plage.jpg",
  30. "x_transformice/x_maps/x_hw2014/x_1.jpg",
  31. "x_transformice/x_maps/x_hw2014/x_2.jpg",
  32. "x_transformice/x_maps/x_hw2014/x_3.jpg",
  33. "x_transformice/x_maps/x_papaques_2015/map1.jpg",
  34. "x_transformice/x_maps/x_papaques_2015/map2.jpg",
  35. "x_transformice/x_maps/x_peche2014/x_jungle.jpg",
  36. "x_transformice/x_maps/x_peche2014/x_montagne.jpg",
  37. "x_transformice/x_maps/x_peche2014/x_nuages.jpg",
  38. "x_transformice/x_maps/x_peche2014/x_plage.jpg",
  39. "x_transformice/x_maps/x_peche2014/x_temple.jpg",
  40. "x_transformice/x_maps/x_peche2015/map-aventure-1.jpg",
  41. "x_transformice/x_maps/x_peche2015/map-aventure-2.png",
  42. "x_transformice/x_maps/x_peche2015/map-aventure-3.jpg",
  43. "x_transformice/x_maps/x_peche2015/musee-vide.jpg",
  44. "x_transformice/x_maps/x_rentree2015/map-classe.jpg",
  45. "x_transformice/x_maps/x_rentree2015/map-proviseur.jpg",
  46. "x_transformice/x_maps/x_rentree2015/map-sport.jpg",
  47. "x_transformice/x_salon801/x_bar.jpg",
  48. "x_transformice/x_salon801/x_jardin1.jpg",
  49. "x_transformice/x_salon801/x_place.jpg",
  50. }
  51.  
  52. function split(txt, sep)
  53. local arg = {}
  54. for i, v in string.gmatch(txt, string.format("[^%s]+", sep)) do
  55. table.insert(arg, i)
  56. end
  57. return arg
  58. end
  59.  
  60. function geraTabuleiro(l, h)
  61. local pecasId = {}
  62. for i=1, #imagens do
  63. table.insert(pecasId, i)
  64. end
  65. local qtd = (l*h)/2
  66. local pecasEscolhidas = {}
  67. for i=1, qtd do
  68. local rand = math.random(#pecasId)
  69. table.insert(pecasEscolhidas, pecasId[rand])
  70. table.insert(pecasEscolhidas, pecasId[rand])
  71. table.remove(pecasId, rand)
  72. end
  73. local tabuleiro = {}
  74. for i=1, h do
  75. tabuleiro[i] = {}
  76. for j=1, l do
  77. tabuleiro[i][j] = table.remove(pecasEscolhidas, math.random(#pecasEscolhidas))
  78. end
  79. end
  80. return tabuleiro
  81. end
  82.  
  83. function mapaTabuleiro(tabuleiro)
  84. local piso = [[<S L="%d" o="6a7495" H="%d" X="%d" Y="%d" T="12" P="0,0,0.3,0.2,0,0,0,0" />]]
  85. local xml = [[<C><P Ca="" D="%s" /><Z><S>%s<S v="200" L="%d" o="ffffff" H="%d" X="400" Y="200" T="12" P="0,0,0.3,0.2,0,0,0,0" /><S L="%d" o="0" H="%d" X="%d" Y="%d" T="12" P="0,0,0.3,0.2,0,0,0,0" /><S L="%d" o="0" H="%d" X="%d" Y="%d" T="12" P="0,0,0.3,0.2,0,0,0,0" /><S L="%d" o="0" H="%d" X="%d" Y="%d" T="12" P="0,0,0.3,0.2,0,0,0,0" /><S L="%d" o="0" H="%d" X="%d" Y="%d" T="12" P="0,0,0.3,0.2,0,0,0,0" /></S><D /><O /></Z></C>]]
  86. local pattern = "x_transformice/x_inventaire/%s.jpg,%d,%d"
  87. local img = {}
  88. local yInicio = 200 - #tabuleiro * 26
  89. local xInicio = 400 - #tabuleiro[1] * 26
  90. for i, v in pairs(tabuleiro) do
  91. for j, w in pairs(v) do
  92. table.insert(img, string.format(pattern, imagens[w], (j-1)*52+xInicio+6, (i-1)*52+yInicio+6))
  93. end
  94. end
  95. table.insert(img, fundos[math.random(#fundos)])
  96. local bordaHL = #tabuleiro[1]*52+20
  97. local bordaHH = 12
  98. local bordaHX = 400
  99. local bordaHY1 = 200 - (#tabuleiro * 26 +5)
  100. local bordaHY2 = 200 + (#tabuleiro * 26 +5)
  101. local bordaVL = 12
  102. local bordaVH = #tabuleiro*52+20
  103. local bordaVX1 = 400 - (#tabuleiro[1] * 26 +5)
  104. local bordaVX2 = 400 + (#tabuleiro[1] * 26 +5)
  105. local bordaVY = 200
  106. local pisos = {}
  107. for i=0, #tabuleiro do
  108. table.insert(pisos, string.format(piso, bordaHL, bordaHH, bordaHX, bordaHY1+5+i*52))
  109. end
  110. for i=0, #tabuleiro[1] do
  111. table.insert(pisos, string.format(piso, bordaVL, bordaVH, bordaVX1+5+i*52, bordaVY))
  112. end
  113. return string.format(xml, table.concat(img, ";"),table.concat(pisos), bordaHL, bordaVH, bordaHL+14, bordaHH, bordaHX, bordaHY1-7, bordaHL+14, bordaHH, bordaHX, bordaHY2+7, bordaVL, bordaVH+14, bordaVX1-7, bordaVY, bordaVL, bordaVH+14, bordaVX2+7, bordaVY)
  114. end
  115.  
  116. function eventTextAreaCallback(id, p, cmd)
  117. local arg = split(cmd, " ")
  118. if start and jogador[p] and arg[1] == "peca" then
  119. local i = tonumber(arg[2])
  120. local j = tonumber(arg[3])
  121. if not jogador[p].clique2 then
  122. if jogador[p].clique1 and (jogador[p].clique1.i ~= i or jogador[p].clique1.j ~= j) then
  123. ui.addTextArea(id,"", p, 406 - (#tabuleiro[1] * 26) + (j-1)*52, 209 - (#tabuleiro * 26) + (i-1)*52, 40, 40, -1, 0xffffff, 1, true)
  124. jogador[p].clique2 = {["i"] = i, ["j"] = j}
  125. else
  126. ui.addTextArea(id,"", p, 406 - (#tabuleiro[1] * 26) + (j-1)*52, 209 - (#tabuleiro * 26) + (i-1)*52, 40, 40, -1, 0xffffff, 1, true)
  127. jogador[p].clique1 = {["i"] = i, ["j"] = j}
  128. end
  129. end
  130. jogador[p].tempo = os.time() + 600
  131. end
  132. end
  133.  
  134. function declaraVencedor(p)
  135. start = false
  136. victory = true
  137. intervalo = os.time() + 10000
  138. ui.addTextArea(0, "", nil, 0, 0, 800, 400, 1, 1, 0.6, true)
  139. ui.addTextArea(-1, string.format("<p align='center'><font color='#ffffff' size='60px'>%s WON THE GAME!", p), nil, 0, 120, 800, 400, 0, 0, 0, true)
  140. tfm.exec.setPlayerScore(p, 1, true)
  141. for i, v in pairs(tabuleiro) do
  142. for j, w in pairs(v) do
  143. ui.removeTextArea(i*#v+j)
  144. end
  145. end
  146. end
  147.  
  148. function verificaPares(p)
  149. local c1 = jogador[p].clique1
  150. local c2 = jogador[p].clique2
  151. if start and c1 and c2 and os.time() > jogador[p].tempo then
  152. if tabuleiro[c1.i][c1.j] == tabuleiro[c2.i][c2.j] then
  153. local x1 = 406 - (#tabuleiro[1] * 26) + (c1.j-1)*52
  154. local y1 = 209 - (#tabuleiro * 26) + (c1.i-1)*52
  155. local x2 = 406 - (#tabuleiro[1] * 26) + (c2.j-1)*52
  156. local y2 = 209 - (#tabuleiro * 26) + (c2.i-1)*52
  157. ui.addTextArea(c1.i*#tabuleiro[1]+c1.j,"", p, x1, y1, 40, 40, 0x6a7495, 0x6a7495, 0.9, true)
  158. ui.addTextArea(c2.i*#tabuleiro[1]+c2.j,"", p, x2, y2, 40, 40, 0x6a7495, 0x6a7495, 0.9, true)
  159. --ui.removeTextArea(c1.i*#tabuleiro[1]+c1.j, p)
  160. --ui.removeTextArea(c2.i*#tabuleiro[1]+c2.j, p)
  161. jogador[p].score = jogador[p].score + 1
  162. if jogador[p].score >= (#tabuleiro * #tabuleiro[1]) / 2 then
  163. declaraVencedor(p)
  164. end
  165. tfm.exec.setPlayerScore(p, 1, true)
  166. else
  167. ui.addTextArea(c1.i*#tabuleiro[1]+c1.j,string.format("<font size='32px' face='Wingdings'><p align='center'><v><a href='event:peca %d %d'>%c", c1.i, c1.j, 118), p, 406 - (#tabuleiro[1] * 26) + (c1.j-1)*52, 209 - (#tabuleiro * 26) + (c1.i-1)*52, 40, 40, 0x324650, 0xffffff, 1, true)
  168. ui.addTextArea(c2.i*#tabuleiro[1]+c2.j,string.format("<font size='32px' face='Wingdings'><p align='center'><v><a href='event:peca %d %d'>%c", c2.i, c2.j, 118), p, 406 - (#tabuleiro[1] * 26) + (c2.j-1)*52, 209 - (#tabuleiro * 26) + (c2.i-1)*52, 40, 40, 0x324650, 0xffffff, 1, true)
  169. end
  170. jogador[p].clique1 = false
  171. jogador[p].clique2 = false
  172. tfm.exec.removePhysicObject(1)
  173. end
  174. end
  175.  
  176. function eventNewPlayer(p)
  177. print(p)
  178. for i, v in pairs(tabuleiro) do
  179. for j, w in pairs(v) do
  180. ui.addTextArea(i*#v+j,string.format("<font size='32px' face='Wingdings'><p align='center'><v>%c", 118), p, 406 - (#tabuleiro[1] * 26) + (j-1)*52, 209 - (#tabuleiro * 26) + (i-1)*52, 40, 40, 0x324650, 0xffffff, 1, true)
  181. end
  182. end
  183. end
  184.  
  185. for name,player in pairs(tfm.get.room.playerList) do
  186. eventNewPlayer(name)
  187. end
  188.  
  189. function eventNewGame()
  190. if start then
  191. ui.removeTextArea(-1)
  192. ui.removeTextArea(0)
  193. tfm.exec.setUIMapName("Memory game")
  194. for i, v in pairs(tabuleiro) do
  195. for j, w in pairs(v) do
  196. ui.addTextArea(i*#v+j,string.format("<font size='32px' face='Wingdings'><p align='center'><v><a href='event:peca %d %d'>%c", i, j, 118), nil, 406 - (#tabuleiro[1] * 26) + (j-1)*52, 209 - (#tabuleiro * 26) + (i-1)*52, 40, 40, 0x324650, 0xffffff, 1, true)
  197. end
  198. end
  199. for p, v in pairs(tfm.get.room.playerList) do
  200. jogador[p] = {tabuleiro = {}, score = 0, clique1 = false, clique2 = false, tempo = os.time() + 1000}
  201. for i, v in pairs(tabuleiro) do
  202. jogador[p].tabuleiro[i] = {}
  203. for j, w in pairs(v) do
  204. jogador[p].tabuleiro[i][j] = w
  205. end
  206. end
  207. tfm.exec.setPlayerScore(p, 0, false)
  208. tfm.exec.killPlayer(p)
  209. end
  210. end
  211. end
  212.  
  213. function eventLoop()
  214. if start then
  215. for i, v in pairs(jogador) do
  216. verificaPares(i)
  217. end
  218. elseif victory then
  219. if os.time() > intervalo then
  220. victory = false
  221. start = true
  222. iniciaJogo(t1, t2)
  223. end
  224. end
  225. end
  226.  
  227. function iniciaJogo(i, j)
  228. tabuleiro = geraTabuleiro(i or math.random(2,4)*2,j or math.random(1,3)*2)
  229. start = true
  230. tfm.exec.newGame(mapaTabuleiro(tabuleiro))
  231. end
  232.  
  233. tfm.exec.disableAfkDeath(true)
  234. tfm.exec.disableAutoNewGame(true)
  235. tfm.exec.disableAutoShaman(true)
  236. tfm.exec.disableAutoScore(true)
  237. iniciaJogo(t1, t2)
Advertisement
Add Comment
Please, Sign In to add comment