Fireicefly

Meepvivor v.1.1 FR

Feb 1st, 2015
336
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Lua 12.15 KB | None | 0 0
  1. -- Meepvivor v.1.1
  2. -- Codeur : Fireicefly
  3. -- MapCrews : Alemjon et Commupro
  4.  
  5. function main() -- Fonction de lancement du module
  6.         player={}
  7.           tfm.exec.disableAutoScore (true)
  8.         tfm.exec.disableAutoNewGame(true) -- Désactivation du changement de cartes
  9.         tfm.exec.disableAutoShaman(true) -- Désactivation des chamanes sur les cartes
  10.         maps={"@5785097","@5780099","@5779599","@5229496","@5233166","@5230255","@5255658","@5779574","@5770316","@4806014","@5338931","@5158198","@5151115","@5287117","@5287678","@5290846","@5295879","@5387811","@5391345","@5398275","@5770277","@5770304","@5770335","@5785173"} -- Cartes à jouer
  11.  
  12.         playerleft=0
  13.         tfm.exec.setGameTime(0)
  14.         system.disableChatCommandDisplay("p", true)
  15.         admin={Fireicefly=true}
  16.         mapCrew={Alemjon=true,Commupro=true}
  17. end
  18.  
  19. function eventNewPlayer(name)
  20.         player[name]={
  21.         profilopen=false,
  22.         lbopen=false,
  23.         helpopen=false,
  24.         isplaying=false,
  25.         timemeep=os.time(),
  26.         profil={
  27.         meepmap=0,
  28.         meeptotal=0,
  29.         jouees=0,
  30.         victoire=0,
  31.         defaite=0,
  32.         survi=0,
  33.         exprequis=10,
  34.         xp=0,
  35.         lvl=1
  36.         },
  37.  
  38.  
  39.         }
  40.          tfm.exec.bindKeyboard(name, 32, true, true)
  41.          tfm.exec.bindKeyboard(name, 72, true, true)
  42.          tfm.exec.bindKeyboard(name, 76, true, true)
  43.          tfm.exec.bindKeyboard(name, 80, true, true)
  44.          if admin[name] then
  45.            tfm.exec.setNameColor(name, 0xEB1D51)
  46.          elseif mapCrew[name] then
  47.            tfm.exec.setNameColor(name, 0x2E72CB)
  48.          end
  49. end
  50.  
  51. function eventChatCommand(name,cmd)
  52.         local arg={}
  53.         for argument in cmd:gmatch("[^%s]+") do
  54.                 table.insert(arg,argument)
  55.         end
  56.         if arg[1]=="p" and arg[2]~="" then
  57.                 for all in pairs(tfm.get.room.playerList) do
  58.                         if all==arg[2] then
  59.                         ui.addTextArea(3001,"<font size='24px'><b><i><p align='center'>"..arg[2].."</p></i></b></font>",name,270,90,200,100,0x324650,0x2a2a2a,0.65,true)
  60.                         ui.addTextArea(3002,"<font size='13px'><J>Niveau<N> "..player[arg[2]].profil.lvl.." ("..player[arg[2]].profil.xp.."/"..player[arg[2]].profil.exprequis..")<br /><br /><J>Parties jouées<N>: "..player[arg[2]].profil.jouees.."<br /><br /><J>Parties gagnées<N>: "..player[arg[2]].profil.victoire.."<br /><br /><J>Parties réussies<N>: "..player[arg[2]].profil.survi.."<br /><br /><J>Nombre de défaite<N>: "..player[arg[2]].profil.defaite.."<br /><br /><J>Nombre de Meep(s)<N>: "..player[arg[2]].profil.meeptotal.."</font>",name,270,130,200,200,0x324650,0x2a2a2a,1,true)
  61.                         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)
  62.                         end
  63.                 end
  64.         end
  65. end
  66.  
  67. function eventTextAreaCallback(id, name, cb)
  68.         if cb=="closelb" then
  69.                 for i=5000,5093  do ui.removeTextArea(i,name) end
  70.                 player[name].lbopen=false
  71.         end
  72.         if cb=="closeprofil" then
  73.                 for i=3001,3003 do ui.removeTextArea(i, name) end
  74.                 player[name].profilopen=false
  75.         end
  76.         if cb=="closehelp" then
  77.                 for i=2001,2003 do ui.removeTextArea(i, name) end
  78.                 player[name].helpopen=false
  79.         end
  80. end
  81.  
  82. function eventNewGame()
  83.         local i=0
  84.         for all in pairs(tfm.get.room.playerList) do
  85.         i=i+1
  86.                 player[all].isplaying=true
  87.             playerleft=i
  88.         end
  89.          for all in pairs(tfm.get.room.playerList) do
  90.                 player[all].timemeep=os.time()
  91.                 player[all].profil.meepmap=0
  92.                 player[all].profil.jouees=player[all].profil.jouees+1
  93.     end
  94. end
  95.  
  96. function eventKeyboard (name, key, down, x, y)
  97.         if key==32 and player[name].timemeep<os.time()-1000 then
  98.                 player[name].profil.meepmap=player[name].profil.meepmap+1
  99.                 player[name].profil.meeptotal=player[name].profil.meeptotal+1
  100.                 tfm.exec.explosion(x, y, 15, 30, true)
  101.                 player[name].timemeep=os.time()
  102.                 elseif key==72 then
  103.                 if player[name].helpopen then
  104.                         for i=2001,2003 do ui.removeTextArea(i,name) end
  105.                         player[name].helpopen=false
  106.                 else
  107.                         viewHelp(name)
  108.                 end
  109.         elseif key==76 then
  110.                 if player[name].lbopen then
  111.                         for i=5000,5093 do ui.removeTextArea(i,name) end
  112.                         player[name].lbopen=false
  113.                 else
  114.                         viewLb(name)
  115.                 end
  116.         elseif key==80 then
  117.                 if player[name].profilopen then
  118.                         player[name].profilopen=false
  119.                         for i=3001,3003 do ui.removeTextArea(i,name) end
  120.                 else
  121.                         player[name].profilopen=true
  122.                         ui.addTextArea(3001,"<font size='24px'><b><i><p align='center'>"..name.."</p></i></b></font>",name,270,90,200,100,0x324650,0x2a2a2a,0.65,true)
  123.                         ui.addTextArea(3002,"<font size='13px'><J>Niveau<N> "..player[name].profil.lvl.." ("..player[name].profil.xp.."/"..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)
  124.                         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)
  125.                 end
  126.         end
  127. end
  128.  
  129.  
  130.  
  131.  
  132. function eventLoop(timePast, timeLeft)
  133.         for all in pairs(tfm.get.room.playerList) do
  134.         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)
  135.         if player[all].profil.xp >= player[all].profil.exprequis then
  136.           player[all].profil.xp=player[all].profil.xp-player[all].profil.exprequis
  137.           player[all].profil.exprequis=player[all].profil.exprequis*2
  138.           player[all].profil.lvl=player[all].profil.lvl+1
  139.         end
  140.         end    
  141.     if timeLeft <= 0 then
  142.         for name, info in pairs(player) do
  143.             if info.isplaying then -- ici ?
  144.                 player[name].profil.survi=player[name].profil.survi+1
  145.                      player[name].profil.xp=player[name].profil.xp+3
  146.                 break
  147.             end
  148.          end
  149.         tfm.exec.newGame(maps[math.random(#maps)]) -- On lance une carte de la liste
  150.     end
  151. end
  152.  
  153. function eventPlayerDied(name)
  154.         player[name].profil.defaite=player[name].profil.defaite+1
  155.         playerleft = playerleft - 1 -- On enlève 1 au nombre de joueurs de la partie
  156.         player[name].isplaying = false -- et on indique qu'il n'est plus dans la partie
  157.         if playerleft==1 then
  158.         victory()
  159.     end
  160.     if playerleft==0 then -- S'il n'y a plus de joueurs sur la carte ...
  161.        tfm.exec.newGame(maps[math.random(#maps)]) -- On lance une carte de la liste
  162.     end
  163. end
  164.  
  165.  
  166. function eventPlayerLeft(name)
  167.         if player[name].isplaying then
  168.                 playerleft=playerleft-1
  169.         end
  170. end
  171. function TrisLdb(var)
  172.         local listP={}
  173.         for name, inf in pairs (player) do
  174.            table.insert(listP, {name, inf.profil})
  175.         end
  176.         table.sort(listP, function (a,b) return a[2][var]>b[2][var]end)
  177.         return listP
  178. end
  179.  
  180. function LoadLb(var, name)
  181.         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
  182.         for _, inf in ipairs(TrisLdb(var)) do
  183.                 nDeux = inf[1]
  184.                 i=i+1
  185.                 if i>12 then break end
  186.                 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
  187.                 ui.addTextArea(lb_c_un,"<font size='12px'><J>"..i..". "..nDeux.."</font>",name,110,lb_y,110,20,0x000001,0x000001,0,true)
  188.                 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)
  189.                 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)
  190.                 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)
  191.                 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)
  192.                 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)
  193.                 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)
  194.         end
  195. end
  196.  
  197. function viewLb(name)
  198.         player[name].lbopen=true
  199.         ui.addTextArea(5000," <font size='15px'><J><b>LeaderBoard</b></font>",name,100,65,600,300,0x000001,0x000001,1,true)
  200.         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)
  201.         ui.addTextArea(5002,"<font size='11px'>[<R>Pseudo<N>]</font>",name,110,100,110,20,0x000001,0x000001,0,true)
  202.         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)
  203.         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)
  204.         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)
  205.         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)
  206.         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)
  207.         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)
  208.         LoadLb("victoire", name)
  209. end
  210.  
  211. function viewHelp(name)
  212.         player[name].helpopen=true
  213.         ui.addTextArea(2001,"<font size='24'><b><i> Aide</i></b></font>",name,200,65,400,220,0x324650,0x2a2a2a,0.65,true)
  214.         ui.addTextArea(2002,"<font size='18'><b> Commandes</b></font>:<br /><br /> <font size='14px'>Cliquez sur <VP>P<N> pour voir votre profil. <br /> Cliquez sur <VP>L<N> pour voir le Leaderboard. <br /> Cliquez sur <VP>H<N> pour voir l'aide.</font>",name,200,105,400,180,0x324650,0x2a2a2a,1,true)
  215.         ui.addTextArea(2003,"<p align='center'><a href='event:closehelp'><font size='13'><R>Fermer</font></a></p>",name,500,65,100,20,0x324650,0x2a2a2a,1,true)
  216. end
  217.  
  218. function victory()
  219.    for name, info in pairs(player) do
  220.         if info.isplaying then
  221.            player[name].profil.victoire=player[name].profil.victoire+1
  222.            player[name].profil.xp=player[name].profil.xp+2
  223.            break
  224.         end
  225.     end
  226.     tfm.exec.setGameTime(5, true)
  227. end
  228.  
  229. main() -- On appelle main pour mettre en place les paramètres du jeu.
  230.  
  231. for name in pairs(tfm.get.room.playerList) do eventNewPlayer(name) end
Advertisement
Add Comment
Please, Sign In to add comment