Guest User

Jogo da memória (Pairs) - Transformice LUA

a guest
Sep 21st, 2015
368
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Lua 14.62 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 venceu o jogo!", 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.     for i, v in pairs(tabuleiro) do
  178.         for j, w in pairs(v) do
  179.             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)
  180.         end
  181.     end
  182. end
  183.  
  184. function eventNewGame()
  185.     if start then
  186.         ui.removeTextArea(-1)
  187.         ui.removeTextArea(0)
  188.         tfm.exec.setUIMapName("Jogo da memória")
  189.         for i, v in pairs(tabuleiro) do
  190.             for j, w in pairs(v) do
  191.                 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)
  192.             end
  193.         end
  194.         for p, v in pairs(tfm.get.room.playerList) do
  195.             jogador[p] = {tabuleiro = {}, score = 0, clique1 = false, clique2 = false, tempo = os.time() + 1000}
  196.             for i, v in pairs(tabuleiro) do
  197.                 jogador[p].tabuleiro[i] = {}
  198.                 for j, w in pairs(v) do
  199.                     jogador[p].tabuleiro[i][j] = w
  200.                 end
  201.             end
  202.             tfm.exec.setPlayerScore(p, 0, false)
  203.             tfm.exec.killPlayer(p)
  204.         end
  205.     end
  206. end
  207.  
  208. function eventLoop()
  209.     if start then
  210.         for i, v in pairs(jogador) do
  211.             verificaPares(i)
  212.         end
  213.     elseif victory then
  214.         if os.time() > intervalo then
  215.             victory = false
  216.             start = true
  217.             iniciaJogo(t1, t2)
  218.         end
  219.     end
  220. end
  221.  
  222. function iniciaJogo(i, j)
  223.     tabuleiro = geraTabuleiro(i or math.random(2,4)*2,j or math.random(1,3)*2)
  224.     start = true
  225.     tfm.exec.newGame(mapaTabuleiro(tabuleiro))
  226. end
  227.  
  228. tfm.exec.disableAfkDeath(true)
  229. tfm.exec.disableAutoNewGame(true)
  230. tfm.exec.disableAutoShaman(true)
  231. tfm.exec.disableAutoScore(true)
  232. iniciaJogo(t1, t2)
Advertisement
Add Comment
Please, Sign In to add comment