Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- -- Meepvivor v.1.0
- function main() -- Fonction de lancement du module
- player={}
- tfm.exec.disableAutoNewGame(true) -- Désactivation du changement de cartes
- tfm.exec.disableAutoShaman(true) -- Désactivation des chamanes sur les cartes
- maps={"@5770316","@4806014","@5338931","@5158198","@5151115","@5287117","@5287678","@5290846","@5295879","@5387811","@5391345","@5398275"} -- Cartes à jouer
- playerleft=0
- tfm.exec.setGameTime(0)
- end
- function eventNewPlayer(name)
- player[name]={
- profilopen=false,
- lbopen=false,
- isplaying=false,
- timemeep=os.time(),
- profil={
- meepmap=0,
- meeptotal=0,
- jouees=0,
- victoire=0,
- defaite=0,
- survi=0,
- exprequis=10,
- exp=0,
- lvl=1
- },
- }
- tfm.exec.bindKeyboard(name, 32, true, true)
- tfm.exec.bindKeyboard(name, 76, true, true)
- tfm.exec.bindKeyboard(name, 80, true, true)
- end
- function eventTextAreaCallback(id, name, cb)
- if cb=="closelb" then
- for i=5000,5093 do ui.removeTextArea(i,name) end
- player[name].lbopen=false
- end
- if cb=="closeprofil" then
- for i=3001,3003 do ui.removeTextArea(i, name) end
- player[name].profilopen=false
- end
- end
- function eventNewGame()
- local i=0
- for all in pairs(tfm.get.room.playerList) do
- i=i+1
- player[all].isplaying=true
- playerleft=i
- end
- for all in pairs(tfm.get.room.playerList) do
- tfm.exec.giveMeep(all)
- player[all].timemeep=os.time()
- player[all].profil.meepmap=0
- player[all].profil.jouees=player[all].profil.jouees+1
- end
- end
- function eventKeyboard (name, key, down, x, y)
- if key==32 and player[name].timemeep<os.time()-10000 then
- player[name].profil.meepmap=player[name].profil.meepmap+1
- player[name].profil.meeptotal=player[name].profil.meeptotal+1
- tfm.exec.explosion(x, y, 15, 30, true)
- player[name].timemeep=os.time()
- elseif key==76 then
- if player[name].lbopen then
- for i=5000,5093 do ui.removeTextArea(i,name) end
- player[name].lbopen=false
- else
- viewLb(name)
- end
- elseif key==80 then
- if player[name].profilopen then
- player[name].profilopen=false
- for i=3001,3003 do ui.removeTextArea(i,name) end
- else
- player[name].profilopen=true
- 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)
- 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)
- 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)
- end
- end
- end
- function eventLoop(timePast, timeLeft)
- for all in pairs(tfm.get.room.playerList) do
- 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)
- if player[all].profil.exp >= player[all].profil.exprequis then
- player[all].profil.exp=player[all].profil.exp-player[all].profil.exprequis
- player[all].profil.exprequis=player[all].profil.exprequis*2
- player[all].profil.lvl=player[all].profil.lvl+1
- end
- end
- if timeLeft <= 0 then
- for name, info in pairs(player) do
- if info.isplaying then
- player[name].profil.survi=player[name].profil.survi+1
- player[name].profil.exp=player[name].profil.exp+3
- end
- end
- tfm.exec.newGame(maps[math.random(#maps)])
- end
- end
- function eventPlayerDied(name)
- player[name].profil.defaite=player[name].profil.defaite+1
- playerleft = playerleft - 1 -- On enlève 1 au nombre de joueurs de la partie
- player[name].isplaying = false -- et on indique qu'il n'est plus dans la partie
- if playerleft==1 then
- victory()
- end
- if playerleft==0 then -- S'il n'y a plus de joueurs sur la carte ...
- tfm.exec.newGame(maps[math.random(#maps)]) -- On lance une carte de la liste
- end
- end
- function eventPlayerLeft(name)
- if player[name].isplaying then
- playerleft=playerleft-1
- end
- end
- function TrisLdb(var)
- local listP={}
- for name, inf in pairs (player) do
- table.insert(listP, {name, inf.profil})
- end
- table.sort(listP, function (a,b) return a[2][var]>b[2][var]end)
- return listP
- end
- function LoadLb(var, name)
- 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
- for _, inf in ipairs(TrisLdb(var)) do
- nDeux = inf[1]
- i=i+1
- if i>12 then break end
- 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
- ui.addTextArea(lb_c_un,"<font size='12px'><J>"..i..". "..nDeux.."</font>",name,110,lb_y,110,20,0x000001,0x000001,0,true)
- 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)
- 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)
- 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)
- 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)
- 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)
- 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)
- end
- end
- function viewLb(name)
- player[name].lbopen=true
- ui.addTextArea(5000," <font size='15px'><J><b>LeaderBoard</b></font>",name,100,65,600,300,0x000001,0x000001,1,true)
- 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)
- ui.addTextArea(5002,"<font size='11px'>[<R>Pseudo<N>]</font>",name,110,100,110,20,0x000001,0x000001,0,true)
- 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)
- 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)
- 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)
- 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)
- 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)
- 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)
- LoadLb("victoire", name)
- end
- function victory()
- for name, info in pairs(player) do
- if info.isplaying then
- player[name].profil.victoire=player[name].profil.victoire+1
- player[name].profil.exp=player[name].profil.exp+2
- break
- end
- end
- tfm.exec.setGameTime(5, true)
- end
- main() -- On appelle main pour mettre en place les paramètres du jeu.
- for name in pairs(tfm.get.room.playerList) do eventNewPlayer(name) end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement