Advertisement
Fireicefly

Meepvivor v.1.0 FR

Jan 31st, 2015
300
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Lua 8.10 KB | None | 0 0
  1. -- Meepvivor v.1.0
  2.  
  3. function main() -- Fonction de lancement du module
  4.     player={}
  5.     tfm.exec.disableAutoNewGame(true) -- Désactivation du changement de cartes
  6.     tfm.exec.disableAutoShaman(true) -- Désactivation des chamanes sur les cartes
  7.     maps={"@5770316","@4806014","@5338931","@5158198","@5151115","@5287117","@5287678","@5290846","@5295879","@5387811","@5391345","@5398275"} -- Cartes à jouer
  8.     playerleft=0
  9.     tfm.exec.setGameTime(0)
  10. end
  11.  
  12.  
  13. function eventNewPlayer(name)
  14.     player[name]={
  15.     profilopen=false,
  16.     lbopen=false,
  17.     isplaying=false,
  18.     timemeep=os.time(),
  19.     profil={
  20.     meepmap=0,
  21.     meeptotal=0,
  22.     jouees=0,
  23.     victoire=0,
  24.     defaite=0,
  25.     survi=0,
  26.     exprequis=10,
  27.     exp=0,
  28.     lvl=1
  29.     },
  30.  
  31.  
  32.     }
  33.      tfm.exec.bindKeyboard(name, 32, true, true)
  34.      tfm.exec.bindKeyboard(name, 76, true, true)
  35.      tfm.exec.bindKeyboard(name, 80, true, true)
  36. end
  37. function eventTextAreaCallback(id, name, cb)
  38.     if cb=="closelb" then
  39.         for i=5000,5093  do ui.removeTextArea(i,name) end
  40.         player[name].lbopen=false
  41.     end
  42.     if cb=="closeprofil" then
  43.         for i=3001,3003 do ui.removeTextArea(i, name) end
  44.         player[name].profilopen=false
  45.     end
  46. end
  47.  
  48. function eventNewGame()
  49.     local i=0
  50.     for all in pairs(tfm.get.room.playerList) do
  51.         i=i+1
  52.         player[all].isplaying=true
  53.         playerleft=i
  54.     end
  55.      for all in pairs(tfm.get.room.playerList) do
  56.         tfm.exec.giveMeep(all)
  57.         player[all].timemeep=os.time()
  58.         player[all].profil.meepmap=0
  59.         player[all].profil.jouees=player[all].profil.jouees+1
  60.     end
  61. end
  62.  
  63. function eventKeyboard (name, key, down, x, y)
  64.     if key==32 and player[name].timemeep<os.time()-10000 then
  65.         player[name].profil.meepmap=player[name].profil.meepmap+1
  66.         player[name].profil.meeptotal=player[name].profil.meeptotal+1
  67.         tfm.exec.explosion(x, y, 15, 30, true)
  68.         player[name].timemeep=os.time()
  69.     elseif key==76 then
  70.         if player[name].lbopen then
  71.             for i=5000,5093 do ui.removeTextArea(i,name) end
  72.             player[name].lbopen=false
  73.         else
  74.             viewLb(name)
  75.         end
  76.     elseif key==80 then
  77.         if player[name].profilopen then
  78.             player[name].profilopen=false
  79.             for i=3001,3003 do ui.removeTextArea(i,name) end
  80.         else
  81.             player[name].profilopen=true
  82.             ui.addTextArea(3001,"<font size='24px'><b><i><p align='center'>Profil</p></i></b></font>",name,270,90,200,100,0x324650,0x2a2a2a,0.65,true)
  83.             ui.addTextArea(3002,"<font size='12px'><J>Niveau<N> "..player[name].profil.lvl.." ("..player[name].profil.exp.."/"..player[name].profil.exprequis..")<br /><br /><J>Parties jouées<N>: "..player[name].profil.jouees.."<br /><br /><J>Parties gagnées<N>: "..player[name].profil.victoire.."<br /><br /><J>Parties réussies<N>: "..player[name].profil.survi.."<br /><br /><J>Nombre de défaite<N>: "..player[name].profil.defaite.."<br /><br /><J>Nombre de Meep(s)<N>: "..player[name].profil.meeptotal.."</font>",name,270,130,200,200,0x324650,0x2a2a2a,1,true)
  84.             ui.addTextArea(3003,"<p align='center'><a href='event:closeprofil'><font size='14'><R>Fermer</font></a></p>",name,270,315,200,20,0x324650,0x2a2a2a,1,true)
  85.         end
  86.     end
  87. end
  88.    
  89.  
  90.  
  91.  
  92. function eventLoop(timePast, timeLeft)
  93.     for all in pairs(tfm.get.room.playerList) do
  94.         ui.addTextArea(3," <font size='13'>Meep(s) Total :"..player[all].profil.meeptotal.." - Meep(s) Map :"..player[all].profil.meepmap.."</font>",all,5,376,300,50,0x324650,0x2a2a2a,0.8,true)
  95.         if player[all].profil.exp >= player[all].profil.exprequis then
  96.           player[all].profil.exp=player[all].profil.exp-player[all].profil.exprequis
  97.           player[all].profil.exprequis=player[all].profil.exprequis*2
  98.           player[all].profil.lvl=player[all].profil.lvl+1
  99.         end
  100.     end
  101.     if timeLeft <= 0 then
  102.         for name, info in pairs(player) do
  103.             if info.isplaying then
  104.                 player[name].profil.survi=player[name].profil.survi+1
  105.                      player[name].profil.exp=player[name].profil.exp+3
  106.             end
  107.         end
  108.         tfm.exec.newGame(maps[math.random(#maps)])
  109.     end
  110. end
  111.  
  112. function eventPlayerDied(name)
  113.     player[name].profil.defaite=player[name].profil.defaite+1
  114.     playerleft = playerleft - 1 -- On enlève 1 au nombre de joueurs de la partie
  115.     player[name].isplaying = false -- et on indique qu'il n'est plus dans la partie
  116.     if playerleft==1 then
  117.         victory()
  118.     end
  119.     if playerleft==0 then -- S'il n'y a plus de joueurs sur la carte ...
  120.        tfm.exec.newGame(maps[math.random(#maps)]) -- On lance une carte de la liste
  121.     end
  122. end
  123.  
  124.  
  125. function eventPlayerLeft(name)
  126.     if player[name].isplaying then
  127.         playerleft=playerleft-1
  128.     end
  129. end
  130. function TrisLdb(var)
  131.     local listP={}
  132.     for name, inf in pairs (player) do
  133.        table.insert(listP, {name, inf.profil})
  134.     end
  135.     table.sort(listP, function (a,b) return a[2][var]>b[2][var]end)
  136.     return listP
  137. end
  138.  
  139. function LoadLb(var, name)
  140.     local i=0; local lb_y=105; local lb_c_un=5009; local lb_c_deux=5021; local lb_c_trois=5033; local lb_c_quatre=5045; local lb_c_cinq=5057; local lb_c_six=5069; local lb_c_sept=5081
  141.     for _, inf in ipairs(TrisLdb(var)) do
  142.         nDeux = inf[1]
  143.         i=i+1
  144.         if i>12 then break end
  145.         lb_y=lb_y+20; lb_c_un=lb_c_un+1; lb_c_deux=lb_c_deux+1; lb_c_trois=lb_c_trois+1; lb_c_quatre=lb_c_quatre+1; lb_c_cinq=lb_c_cinq+1 lb_c_six=lb_c_six+1; lb_c_sept=lb_c_sept+1
  146.         ui.addTextArea(lb_c_un,"<font size='12px'><J>"..i..". "..nDeux.."</font>",name,110,lb_y,110,20,0x000001,0x000001,0,true)
  147.         ui.addTextArea(lb_c_deux,"<p align='center'><font size='12px'>"..player[nDeux].profil.survi.."</font></p>",name,220,lb_y,80,20,0x000001,0x000001,0,true)
  148.         ui.addTextArea(lb_c_trois,"<p align='center'><font size='12px'>"..player[nDeux].profil.victoire.."</font></p>",name,300,lb_y,80,20,0x000001,0x000001,0,true)
  149.         ui.addTextArea(lb_c_quatre,"<p align='center'><font size='12px'>"..player[nDeux].profil.jouees.."</font></p>",name,380,lb_y,80,20,0x000001,0x000001,0,true)
  150.         ui.addTextArea(lb_c_cinq,"<p align='center'><font size='12px'>"..player[nDeux].profil.lvl.."</font></p>",name,460,lb_y,80,20,0x000001,0x000001,0,true)
  151.         ui.addTextArea(lb_c_six,"<p align='center'><font size='12px'>"..player[nDeux].profil.defaite.."</font></p>",name,540,lb_y,80,20,0x000001,0x000001,0,true)
  152.         ui.addTextArea(lb_c_sept,"<p align='center'><font size='12px'>"..player[nDeux].profil.meeptotal.."</font></p>",name,620,lb_y,80,20,0x000001,0x000001,0,true)
  153.     end
  154. end
  155.  
  156. function viewLb(name)
  157.     player[name].lbopen=true
  158.     ui.addTextArea(5000," <font size='15px'><J><b>LeaderBoard</b></font>",name,100,65,600,300,0x000001,0x000001,1,true)
  159.     ui.addTextArea(5001,"<p align='right'><font size='13px'><a href='event:closelb'><R>Fermer </a></font></p>",name,600,65,100,20,0x000001,0x000001,0,true)
  160.     ui.addTextArea(5002,"<font size='11px'>[<R>Pseudo<N>]</font>",name,110,100,110,20,0x000001,0x000001,0,true)
  161.     ui.addTextArea(5003,"<p align='center'><font size='11px'><a href='event:by_wins'>[<R>Survecu<N></a>]</font></p>",name,220,100,80,20,0x000001,0x000001,0,true)
  162.     ui.addTextArea(5004,"<p align='center'><font size='11px'><a href='event:by_firsts'>[<R>Victoire<N></a>]</font></p>",name,300,100,80,20,0x000001,0x000001,0,true)
  163.     ui.addTextArea(5005,"<p align='center'><font size='11px'><a href='event:by_jouees'>[<R>Jouées<N></a>]</font></p>",name,380,100,80,20,0x000001,0x000001,0,true)
  164.     ui.addTextArea(5006,"<p align='center'><font size='11px'><a href='event:by_lvl'>[<R>Niveau<N></a>]</font></p>",name,460,100,80,20,0x000001,0x000001,0,true)
  165.     ui.addTextArea(5007,"<p align='center'><font size='11px'><a href='event:by_morts'>[<R>Défaite<N></a>]</font></p>",name,540,100,80,20,0x000001,0x000001,0,true)
  166.     ui.addTextArea(5008,"<p align='center'><font size='11px'><a href='event:by_points'>[<R>Total Meep<N></a>]</font></p>",name,620,100,80,20,0x000001,0x000001,0,true)
  167.     LoadLb("victoire", name)
  168. end
  169.  
  170.  
  171.  
  172. function victory()
  173.    for name, info in pairs(player) do
  174.         if info.isplaying then
  175.            player[name].profil.victoire=player[name].profil.victoire+1
  176.            player[name].profil.exp=player[name].profil.exp+2
  177.            break
  178.         end
  179.     end
  180.     tfm.exec.setGameTime(5, true)
  181. end
  182.  
  183.  
  184.  
  185.  
  186.  
  187.  
  188.  
  189.  
  190.  
  191. main() -- On appelle main pour mettre en place les paramètres du jeu.
  192.  
  193. for name in pairs(tfm.get.room.playerList) do eventNewPlayer(name) end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement