View difference between Paste ID: t6ZMacZR and ZJSQV1PQ
SHOW: | | - or go back to the newest paste.
1
function clubmice()
2
  local bot = "Clubmicebot#0000"
3
  local answer_id = -1
4
5
  local answers = {}
6
  local bot_messages = {}
7
8
  local translations = {en = {}}
9
  local function get_translation(lang, text)
10
    if translations[lang] and translations[lang][text] then
11
      return translations[lang][text]
12
    elseif translations.en[text] then
13
      return translations.en[text]
14
    else
15
      return "%" .. text .. "%"
16
    end
17
  end
18
19
  get_translations = function()
20
    ui.addTextArea(100, "", bot)
21
  end
22
23
  local allowNewPlayer = false
24
  eventPlayerDied = tfm.exec.respawnPlayer
25
26
  eventNewPlayer = function(name)
27
    tfm.exec.respawnPlayer(name)
28
    tfm.exec.addImage("16d1282872f.png", "_0", 231, 31)
29
30
    if not allowNewPlayer then
31
      if name == bot then
32
        get_translations()
33
      end
34
      return
35
    end
36
37
    tfm.exec.chatMessage(get_translation(tfm.get.room.playerList[name].community, "welcome"), name)
38
  end
39
40
  eventTextAreaCallback = function(id, name, cb)
41
    if id == 101 then
42
      bot_messages[name] = cb
43
    elseif id == 102 then
44
      if name == bot then
45
        tfm.exec.chatMessage("<vi>[" .. bot .. "] <n>" .. cb, bot_messages[name])
46
      else
47
        tfm.exec.chatMessage("<cep>[" .. name .. "] <n>" .. cb, bot_messages[name])
48
      end
49
    elseif name == bot then
50
      if id == 100 then
51
        translations = {en = {}}
52
        for l, k, v in string.gmatch(cb, "([^:]+):([^:]+):([^:]+);") do
53
          local lang, key, value = string.gsub(string.gsub(string.gsub(l, "&2", ";"), "&1", ":"), "&0", "&"),
54
                       string.gsub(string.gsub(string.gsub(k, "&2", ";"), "&1", ":"), "&0", "&"),
55
                       string.gsub(string.gsub(string.gsub(v, "&2", ";"), "&1", ":"), "&0", "&")
56
57
          if not translations[lang] then
58
            translations[lang] = {[key] = value}
59
          else
60
            translations[lang][key] = value
61
          end
62
        end
63
64
        if not allowNewPlayer then
65
          allowNewPlayer = true
66
          for player in next, tfm.get.room.playerList do
67
            eventNewPlayer(player)
68
          end
69
70
        end
71
      elseif #cb > 0 then
72
        tfm.exec.chatMessage("<vi>[" .. bot .. "] <n>" .. cb, answers[id])
73
      end
74
    end
75
  end
76
77
  eventChatCommand = function(name, cmd)
78
    answer_id = (answer_id + 1) % 100
79
    answers[answer_id] = name
80
    ui.addTextArea(answer_id, name .. ":" .. tfm.get.room.playerList[name].community .. ":" .. cmd, bot)
81
  end
82
83
  eventNewGame = function()
84
    tfm.exec.addImage("16d1282872f.png", "_0", 231, 31)
85
  end
86
87
  system.disableChatCommandDisplay(nil)
88
  system.newTimer(get_translations, 60000, true)
89
  tfm.exec.disableAutoShaman(true)
90
  tfm.exec.disableAfkDeath(true)
91
  tfm.exec.disableAutoTimeLeft(true)
92
  tfm.exec.disableAutoNewGame(true)
93
  tfm.exec.newGame("@7642505")
94
  get_translations()
95
end
96
97
function fortmice()
98
  local mice = {}
99
  local noticias_version = 3
100
    
101
    print()
102
  local langs = {
103
  
104
105
        
106
    es = {
107
      bienvenida = "<font color='#FF0FCF'>    ¡Bienvenido a Fortmice!\n<font color='#C2C2DA'>Derriba a tus enemigos mientras construyes y sobrevives a la tormenta, el último en pie gana.\n\n <font color='#BABD2F'>¿Cómo jugar?<font color='#C2C2DA'> escribe <font color='#BABD2F'>!info</font>\n\n <font color='#1DC249'>Las victorias cuentan apartir de 7 jugadores en la sala.",        
108
      noticias_titulo = "<p align='center'><font size='22'><font color='#FFF504' face='Comic Sans MS'>¡NOTICIAS!</font><font size='9'> (23/10/19)",         
109
      noticias_texto = "<font size='14'><font size='14' color='#FFF504' face='Comic Sans MS'>»</font><font size='14' color='#0EE05A'><b> ¡¡NUEVO MODO DE JUEGO!!</b></font>:\n Enfrentamientos tormentosos\n<font size='14' color='#FFF504' face='Comic Sans MS'>»</font> Cambios en la tormenta:\n• Ahora la tormenta cambia de dirección aleatoriamente al final de las partidas.\n• Una nueva tormenta aparecerá desde el cielo.\n• Se mejoró la precisión de la tormenta.\n<font size='14' color='#FFF504' face='Comic Sans MS'>»</font> Ya puedes personalizar la tecla para los consumibles.\n<font size='14' color='#FFF504' face='Comic Sans MS'>»</font> Ahora es más fácil poner trampas, pulsa [space] para activar o desactivar.\n<font size='14' color='#FFF504' face='Comic Sans MS'>»</font> Se aumentó el número de lanzaderas de 5 a 6\n<font size='14' color='#FFF504' face='Comic Sans MS'>»</font> Gracias a Clofofa#0000 por la traducción al Portugués♥",
110
                 
111
      datos_corruptos = "<r>Tus datos estaban corruptos. Se han reiniciado.",
112
113
 -- MENÚ -------         
114
      controles_boton = "Cambiar controles",
115
      informacion_boton = "Información",
116
      noticias_boton = "Noticias",
117
      controles_encabezado = "Controles", 
118
       controles_aviso = "Al momento de dar click en \"Cambiar\", la primera tecla que presiones, será la nueva tecla asignada.",
119
        suelo = "Suelo",
120
         rampa = "Rampa",
121
          rescate = "Rescate",
122
           recarga = "Recarga",
123
            consumible = "Consumible",
124
             cambiar = "Cambiar",
125
              restaurarTodo = "Restaurar todo",
126
              presioneAhora = "¡Presione ahora!",
127
               esperandoKey = "Esperando...",
128
                cambiosGuardados = "¡Cambios guardados!",
129
       informacion_encabezado = "Información",
130
       informacion_cb_informacion = "Información",
131
       informacion_cb_controles = "Controles",
132
       informacion_cb_reglas = "Reglas",
133
       informacion_cb_staff = "Staff",
134
       informacion_informacion_contenido = "<p align='center'><font size='15' color='#FFF504' >\nDerriba a tus enemigos mientras construyes y sobrevives a la tormenta, el último en pie gana.</font></p>\n<font size='14'>\n<font color='#FFF504' face='Comic Sans MS'> »</font> No entres en la tormenta o morirás.\n<font color='#FFF504' face='Comic Sans MS'> »</font> Acércate y abre un cofre con click para obtener un armamento o consmible especial.\n<font color='#FFF504' face='Comic Sans MS'> »</font> Construye plataformas para cubrirte o avanzar por el mapa.\n<font color='#FFF504' face='Comic Sans MS'> »</font> Las finales de las partidas son más intensas; las plataformas duran menos, las balas transpasan los suelos y la tormenta cambia de dirección aleatoriamente.",
135
       informacion_controles_x = "Coloca un suelo sobre los pies de tu ratón.",
136
       informacion_controles_c = "Coloca una rampa hacia la dirección de tu ratón.",
137
       informacion_controles_z = "Coloca un suelo muy por debajo de tu ratón para cuando vayas cayendo en picada.",
138
       informacion_controles_space = "Activa o utiliza los consumibles (Trampas, lanzaderas, impulsador)",
139
       informacion_reglas_contenido = "<p align='center'><font size='15' color='#FFF504' >\nSi incumples alguna de estas reglas, podrías ser sancionado por los moderadores o adminsitradores DE FORTMICE.</font></p><font size='13'>\n<font color='#FFF504' face='Comic Sans MS'> 1.</font> No está permitido hacer equipos (team).\n<font color='#FFF504' face='Comic Sans MS'> 2.</font> No está permitido hacer farming de victorias.\n<font color='#FFF504' face='Comic Sans MS'> 3.</font> No insultes, ofendas ni utilices un lenguaje soez.\n<font color='#FFF504' face='Comic Sans MS'> 4.</font> No utilices trampas (Software de terceros o modificaciones del sistema) para obtener ventaja sobre el resto de jugadores.\n<font color='#FFF504' face='Comic Sans MS'> 5.</font> Evita jugar en los extremos del mapa (irte a lo más alto del mapa).",
140
       informacion_staff_contenido = "<p align='center'><font size='15' color='#FFF500' >\nEl staff de #fortmice se encarga de atender sugerencias, reportes  (jugadores, bugs..) o hacer valer las reglas.</font></p>\n<font size='14'>\n<cite>Administradores:</cite>\n\n<font color='#D3CB13' face='Comic Sans MS'>[Hackinzkt#0000]</font> Creador de fortmice.\n\n<font color='#D3CB13' face='Comic Sans MS'>[Tocutoeltuco#0000]</font> Host y colaborador.\n\n<font color='#D3CB13' face='Comic Sans MS'>[Lua#1908]</font> Beta tester.",                     
141
--- HUD --------
142
    hud_uimap = "<font color='#D7CF21'>Fortmice</font> | Construye, lucha y gana.",
143
    hud_plataformas = "Plataformas:",
144
    hud_vivos = "Vivos:",
145
    hud_municion = "Munición",
146
    hud_recarga = "Recarga",
147
    abrirCofre = "Abrir cofre",
148
    hud_espectador = "Espectador",
149
    hud_cofre_bombas = "Bombas",
150
    hud_cofre_lapidas = "Lápidas",
151
    hud_cofre_cajas = "Cajas",
152
    hud_cofre_minigunnevada = "Minigun nevada",
153
    hud_cofre_sniper = "Sniper de doble cañón",
154
    hud_cofre_100plataformas = "100 plataformas",
155
    hud_cofre_impulsador = "Impulsador",
156
    hud_cofre_trampas = "Trampas",
157
    hud_cofre_lanzaderas = "Lanzaderas",           
158
--- AVISOS ----
159
    aviso_victoria = "<font color='#FFFFFF' size='30' face='Comic Sans MS'>             Victoria Magistral!",
160
    aviso_victoriaDescrip = "ha ganado la partida.",
161
    aviso_victoriasContador = "Victorias:",
162
    aviso_tormenta = "  ¡Se avecina una tormenta!",
163
    aviso_tormentaUp = "      ¡Se avecina una tormenta desde arriba!",
164
    aviso_nadieGana = "           Nadie gana!",
165
    aviso_nadieGanaDescrip = "Nadie ha logrado sobrevivir :(",
166
    aviso_modoDeJuegoNombre = "Enfrentamientos tormentosos",
167
    aviso_modoDeJuegoDescrip = "Sigue la ruta de la tormenta mientras te enfrentas.",
168
    aviso_textAreaModoDeJuego = "MODO DE JUEGO",
169
    feed = "ha muerto",
170
      
171
            
172
173
    },
174
    en = {
175
      bienvenida = "<font color='#FF0FCF'>          Welcome to Fortmice!\n<font color='#C2C2DA'>Knock down your enemies while building and surviving the storm, the last player standing wins.\n\n <font color='#BABD2F'>How to play?<font color='#C2C2DA'> Write <font color='#BABD2F'>!info</font>\n\n <font color='#1DC249'>The victories count from 7 players in the room.",
176
            
177
            
178
      noticias_titulo = "<p align='center'><font size='22'><font color='#FFF504' face='Comic Sans MS'>NEWS!</font><font size='9'>  (23/10/19)",
179
180
             noticias_texto = "<font size='14'><font size='14' color='#FFF504' face='Comic Sans MS'>»</font><font size='14' color='#0EE05A'><b> NEW GAME MODE!</b></font>:\n Stormy clashes\n<font size='14' color='#FFF504' face='Comic Sans MS'>»</font> Changes in the storm:\n• Now the storm changes direction randomly at the end of the games.\n• A new storm will appear from the sky.\n• The precision of the storm was improved.\n<font size='14' color='#FFF504' face='Comic Sans MS'>»</font> You can now customize the key for consumables.\n<font size='14' color='#FFF504' face='Comic Sans MS'>»</font> Now it's easier to place traps, press [space] to activate or deactivate.\n<font size='14' color='#FFF504' face='Comic Sans MS'>»</font> The number of lauch pads was increased from 5 to 6.\n<font size='14' color='#FFF504' face='Comic Sans MS'>»</font> Thanks to Clofofa#0000 for the Portuguese translation♥",
181
            
182
            
183
            
184
      datos_corruptos = "<r>Your data was corrupt. It was resetted.",
185
    
186
-- MENU ------
187
      controles_boton = "Change controls",
188
       informacion_boton = "Information",
189
        noticias_boton = "News",
190
         controles_encabezado = "Controls", 
191
          controles_aviso = "At the moment of clicking on \"Change\", the first key that you press will be the new key assigned.",
192
           suelo = "Floor",
193
            rampa = "Ramp",
194
             rescate = "Rescue",
195
              recarga = "Reload",
196
               consumible = "Consumable",
197
                cambiar = "Change",
198
                 restaurarTodo = "Restore all",
199
                  presioneAhora = "Press Now!",
200
                   esperandoKey = "Waiting...",
201
                    cambiosGuardados = "Changes saved!",
202
      informacion_encabezado = "Information",
203
      informacion_cb_informacion = "Information",
204
      informacion_cb_controles = "Controls",
205
      informacion_cb_reglas = "Rules",
206
      informacion_cb_staff = "Staff",
207
      informacion_informacion_contenido = "<p align='center'><font size='15' color='#FFF504' >\nKnock down your enemies while building and surviving the storm, the last player standing wins.</font></p>\n<font size='14'>\n<font color='#FFF504' face='Comic Sans MS'> »</font> Do not enter the storm or you will die.\n<font color='#FFF504' face='Comic Sans MS'> »</font> Approach and open a chest with click to get a special armament or consumable.\n<font color='#FFF504' face='Comic Sans MS'> »</font> Build platforms to cover you or move on the map.\n<font color='#FFF504' face='Comic Sans MS'> »</font> The finals of the matches are more intense; the platforms last less, the bullets cross the grounds and the storm changes direction randomly.",
208
      informacion_controles_x = "Place a floor on the feet of your mouse.",
209
      informacion_controles_c = "Place a ramp towards the direction of your mouse.",
210
      informacion_controles_z = "Place a ground far below your mouse for when you are plummeting.",
211
      informacion_controles_space = "Activate or use consumables (Traps, launch pads, booster)",
212
      informacion_reglas_contenido = "<p align='center'><font size='15' color='#FFF504' >\nIf you break any of these rules, you could be sanctioned by the moderators or administrators of FORTMICE.</font></p><font size='13'>\n<font color='#FFF504' face='Comic Sans MS'> 1.</font> It is not allowed to make teams.\n<font color='#FFF504' face='Comic Sans MS'> 2.</font> It is not allowed to do victory farming.\n<font color='#FFF504' face='Comic Sans MS'> 3.</font> Do not insult, offend or use obscene language.\n<font color='#FFF504' face='Comic Sans MS'> 4.</font> Do not use traps (third party software or system modifications) to gain an advantage over other players.\n<font color='#FFF504' face='Comic Sans MS'> 5.</font> Avoid playing at the extremes of the map (go to the top of the map).",
213
      informacion_staff_contenido = "<p align='center'><font size='15' color='#FFF500' >\nThe #fortmice staff takes care of suggestions, reports (players, bugs ...) or enforcing the rules.</font></p>\n<font size='14'>\n<cite>Administrators:</cite>\n\n<font color='#D3CB13' face='Comic Sans MS'>[Hackinzkt#0000]</font> Creator of Fortmice\n\n<font color='#D3CB13' face='Comic Sans MS'>[Tocutoeltuco#0000]</font> Host and collaborator.\n\n<font color='#D3CB13' face='Comic Sans MS'>[Lua#1908]</font> Beta tester.",
214
                       
215
--- HUD -----
216
      hud_uimap = "<font color='#D7CF21'>Fortmice</font> | Build, fight and win.",
217
      hud_plataformas = "Platforms:",
218
      hud_vivos = "Alive:",
219
      hud_municion = "Ammo:",
220
      hud_recarga = "Reload:",
221
      abrirCofre = "Open chest",
222
      hud_espectador = "Spectator",
223
      hud_cofre_bombas = "Bombs",
224
      hud_cofre_lapidas = "Tombstones",
225
      hud_cofre_cajas = "Boxes",
226
      hud_cofre_minigunnevada = "Snowy minigun",
227
      hud_cofre_sniper = "Double barrel sniper",
228
      hud_cofre_100plataformas = "100 platforms",
229
      hud_cofre_impulsador = "Booster",
230
      hud_cofre_trampas = "Traps",
231
      hud_cofre_lanzaderas = "Launch pads",
232
--- AVISOS ----
233
      aviso_victoria = "<font color='#FFFFFF' size='30' face='Comic Sans MS'>             Victory Royale!",
234
      aviso_victoriaDescrip = "has won the game.",
235
      aviso_victoriasContador = "Victories:",
236
      aviso_tormenta = "       A storm is coming!",
237
      aviso_tormentaUp = "       A storm is coming from the sky!",
238
      aviso_nadieGana = "            Nobody wins!",
239
      aviso_nadieGanaDescrip = "No one has survived :(",
240
      aviso_modoDeJuegoNombre = "Stormy clashes",
241
      aviso_modoDeJuegoDescrip = "Follow the route of the storm while fighting.",
242
      aviso_textAreaModoDeJuego = "GAME MODE",
243
      feed = "has died",
244
    },
245
        
246
        
247
    br = {
248
      bienvenida = "<font color='#FF0FCF'>          Bem-vindo ao Fortmice!\n<font color='#C2C2DA'>Derrube seus inimigos enquanto constrói e sobrevive à tempestade, o último jogador sobrevivente vence.\n\n <font color='#BABD2F'>Como jogar?<font color='#C2C2DA'> escreve <font color='#BABD2F'>!info</font>\n\n <font color='#1DC249'>As vitórias contam com 7 jogadores na sala.",                  
249
      noticias_titulo = "<p align='center'><font size='22'><font color='#FFF504' face='Comic Sans MS'>NOTÍCIAS!</font><font size='9'> (23/10/19)",   
250
      noticias_texto = "<font size='14'><font size='14' color='#FFF504' face='Comic Sans MS'>»</font><font size='14' color='#0EE05A'><b> NOVO MODO DE JOGO!!</b></font>:\n Confrontos tempestuosos\n<font size='14' color='#FFF504' face='Comic Sans MS'>»</font> Mudanças na tempestade:\n• Agora a tempestade muda de direrção aleatoriamente no fim dos jogos.\n• Uma nova tempestade irá aparecer do céu.\n• A precisão da tempestade foi melhorada.\n<font size='14' color='#FFF504' face='Comic Sans MS'>»</font> Você agora pode customizar as teclas para os consumíveis.\n<font size='14' color='#FFF504' face='Comic Sans MS'>»</font> Agora é mais fácil para posicionar traps, pressione [espaço] para ativar ou desativar.\n<font size='14' color='#FFF504' face='Comic Sans MS'>»</font> O número de launch pads foi aumentado de 5 para 6.\n<font size='14' color='#FFF504' face='Comic Sans MS'>»</font><font size='12'> Obrigado a <cite>Clofofa#0000</cite> pela tradução para o Português♥",
251
            
252
-- MENÚ ----------
253
      controles_boton = "Alterar controles",
254
      informacion_boton = "Informação",
255
      noticias_boton = "Notícias",
256
      controles_encabezado = "Controles",
257
       controles_aviso = "No momento que clicar em \"Mudar\", a primeira tecla que você apertar, será a nova tecla atribuída.",
258
        suelo = "Chão",
259
         rampa = "Rampa",
260
          rescate = "Regaste",
261
           recarga = "Recarregar",
262
            consumible = "Consumível",
263
             cambiar = "Mudar",
264
              restaurarTodo = "Restaurar tudo",
265
               presioneAhora = "Pressione agora!",
266
                esperandoKey = "Esperando...",
267
                 cambiosGuardados = "Mudanças salvas!",
268
      informacion_encabezado = "informação",
269
      informacion_cb_informacion = "informação",
270
      informacion_cb_controles = "Controles",
271
      informacion_cb_reglas = "Regras",
272
      informacion_cb_staff = "Staff",
273
      informacion_informacion_contenido = "<p align='center'><font size='15' color='#FFF504' >\nDerrube seus inimigos enquanto constrói e sobrevive à tempestade, o último jogador sobrevivente vence.</font></p>\n<font size='14'>\n<font color='#FFF504' face='Comic Sans MS'> »</font>  Não entre na tempestade ou você vai morrer.\n<font color='#FFF504' face='Comic Sans MS'> »</font> Se aproxime e abra um baú clicando no mesmo para conseguir um armamento especial ou consumível.\n<font color='#FFF504' face='Comic Sans MS'> »</font>  Construa plataformas para se proteger ou mover pelo mapa.\n<font color='#FFF504' face='Comic Sans MS'> »</font> Os finais das partidas são mais intensos; as plataformas duram menos, as balas atravessam os pisos e a tempestade muda de direção aleatoriamente.",
274
      informacion_controles_x = "Cria um piso no pé do seu rato.",
275
      informacion_controles_c = "Cria uma rampa de acordo com a direção do seu rato.",
276
      informacion_controles_z = "Cria um chão muito abaixo do seu rato para quando você estiver despecando.",
277
      informacion_controles_space = "Ativa ou usa consumíveis (Armadilha, Plataforma de Lançamento, booster)",
278
       informacion_reglas_contenido = "<p align='center'><font size='15' color='#FFF504' >\nSe você quebrar qualquer uma dessas regras, você poderá ser punido pelos moderadores ou administradores DO FORTMICE.</font></p><font size='13'>\n<font color='#FFF504' face='Comic Sans MS'> 1.</font> Não é permitido fazer times.\n<font color='#FFF504' face='Comic Sans MS'> 2.</font> Não é permitido farmar vitórias.\n<font color='#FFF504' face='Comic Sans MS'> 3.</font> Não insulte, ofenda ou use linguagem obscena.\n<font color='#FFF504' face='Comic Sans MS'> 4.</font> Não use hacks (programas de terceiros ou modificações do sistema) para ganhar vantagem sobre os outros jogadores.\n<font color='#FFF504' face='Comic Sans MS'> 5.</font> Evite jogar nos extremos do mapa (indo para o topo do mapa).",
279
      informacion_staff_contenido = "<p align='center'><font size='15' color='#FFF500' >\nOs staffs do #fortmice cuidam das sugestões, reportes (jogadores, bugs...) e aplicam as regras.</font></p>\n<font size='14'>\n<cite>Administradores:</cite>\n\n<font color='#D3CB13' face='Comic Sans MS'>[Hackinzkt#0000]</font> Criador do Fortmice.\n\n<font color='#D3CB13' face='Comic Sans MS'>[Tocutoeltuco#0000]</font> Host e colaborador.\n\n<font color='#D3CB13' face='Comic Sans MS'>[Lua#1908]</font> Beta tester.",
280
             
281
            
282
-- HUD --------
283
      hud_uimap = "<font color='#D7CF21'>Fortmice</font> | construir, lutar e vencer",
284
      hud_plataformas = "Plataformas:",
285
      hud_vivos = "Vivo:",
286
      hud_municion = "Munição:",
287
      hud_recarga = "Recarrega:",
288
      abrirCofre = "Abrir Baú",
289
      hud_espectador = "Espectador",
290
      hud_cofre_bombas = "Bombas",
291
      hud_cofre_lapidas = "Lápides",
292
      hud_cofre_cajas = "Caixas",
293
      hud_cofre_minigunnevada = "Minigun nevada",
294
      hud_cofre_sniper = "Atirador de cano duplo",
295
      hud_cofre_100plataformas = "100 plataformas",
296
      hud_cofre_impulsador = "Impulsor",
297
      hud_cofre_trampas = "Armadilha",
298
      hud_cofre_lanzaderas = "Plataforma de lançamento",
299
 -- AVISOS ----
300
      aviso_victoria = "<font color='#FFFFFF' size='30' face='Comic Sans MS'>             Vitória Royale!",
301
      aviso_victoriaDescrip = "ganhou o jogo.",
302
      aviso_victoriasContador = "Vitórias:",
303
      aviso_tormenta = "  Uma tempestade está vindo!",
304
      aviso_tormentaUp = "       Uma tempestade está vindo do céu!",
305
      aviso_nadieGana = "         Ninguém ganha!",
306
      aviso_nadieGanaDescrip = "Ninguém sobreviveu :(",
307
      aviso_modoDeJuegoNombre = "Confrontos tempestuosos",
308
      aviso_modoDeJuegoDescrip = "Siga a rota da tempestade enquanto luta.",
309
      aviso_textAreaModoDeJuego = "MODO DE JOGO",
310
      feed = "morreu",
311
    },
312
    fr = {
313
      bienvenida = "<font color='#FF0FCF'>     Bienvenue à Fortmice!\n<font color='#C2C2DA'>Éliminez vos ennemis tout en construisant et en survivant à la tempête, le dernier joueur en vie gagne.\n\n <font color='#BABD2F'>Comment jouer?<font color='#C2C2DA'> tirer avec <font color='#BABD2F'>click</font> et construire avec les clés <font color='#BABD2F'>X C Z</font>\n <font color='#BABD2F'>Tout bug ou suggestion? <font color='#C2C2DA'>contact avec <font color='#BABD2F'>Hackinzkt#0000</font> ou <font color='#68A8F2'>les modérateurs fortmice</font>\n<r><b>LES MODERATEURS DE FORTMICE NE SONT PAS DES MODERATEURS DE TRANSFORMICE.</b></r>",
314
      noticias_titulo = "<p align='center'><font size='22'><font color='#FFF504' face='Comic Sans MS'>INFORMATIONS!</font><font size='9'> (13/9/19)",
315
     -- noticias_texto = "<font size='14' color='#FFF504' face='Comic Sans MS'>»</font><font size='14'> Une barrière de protection a été ajoutée au début des jeux pour éviter les morts subites.\n<font size='14' color='#FFF504' face='Comic Sans MS'>»</font> Les crânes ont également été enlevés près des respawns.\n<font size='14' color='#FFF504' face='Comic Sans MS'>»</font> SLa durée des plateformes au début des jeux a été réduite pour éviter la stagnation. \n<font size='14' color='#FFF504' face='Comic Sans MS'>»</font> La force des flèches a été augmentée de 41 à 45. \n<font size='14' color='#FFF504' face='Comic Sans MS'>»</font> Le nombre maximum de rats dans la chambre a été réduit de 25 à 22. \n<font size='14' color='#FFF504' face='Comic Sans MS'>»</font> Correction d'un bug qui entraînait la fin du jeu plus tôt.\n<font size='14' color='#FFF504' face='Comic Sans MS'>»</font> Le message de confirmation des contrôles a été déplacé (dans le tchat) car il causait des problèmes.\n<font size='14' color='#FFF504' face='Comic Sans MS'>»</font> Les données sont maintenant sauvegardées (victoires, configuration des contrôles)",
316
                        --- HUD --------
317
      hud_uimap = "<font color='#D7CF21'>Fortmice</font> | Build, fight and win.",
318
      hud_plataformas = "Platforms:",
319
      hud_vivos = "Alive:",
320
      hud_municion = "Ammo:",
321
      hud_recarga = "Reload:",
322
    }
323
  }
324
  langs.pt = langs.br
325
326
  local function translate(lang, text)
327
      if langs[lang] and langs[lang][text] then
328
          return langs[lang][text]
329
      elseif langs.en[text] then
330
          return langs.en[text]
331
      else
332
          return "$" .. text .. "$"
333
      end
334
  end
335
    
336
  keyz = {
337
    [0] = "&lt;",
338
    [2] = ">",
339
    [32] = "space",
340
    [65] = "A",
341
    [66] = "B",
342
    [67] = "C",
343
    [68] = "D",
344
    [69] = "E",
345
    [70] = "F",
346
    [71] = "G",
347
    [72] = "H",
348
    [73] = "I",
349
    [74] = "J",
350
    [75] = "K",
351
    [76] = "L",
352
    [77] = "M",
353
    [78] = "N",
354
    [79] = "O",
355
    [80] = "P",
356
    [81] = "Q",
357
    [82] = "R",
358
    [83] = "S",
359
    [84] = "T",
360
    [85] = "U",
361
    [86] = "V",
362
    [87] = "W",
363
    [88] = "X",
364
    [89] = "Y",
365
    [90] = "Z",
366
    [48] = "0",
367
    [49] = "1",
368
    [50] = "2",
369
    [51] = "3",
370
    [52] = "4",
371
    [53] = "5",
372
    [54] = "6",
373
    [55] = "7",
374
    [56] = "8",
375
    [57] = "9",
376
    [97] = "1",
377
    [98] = "2",
378
    [99] = "3",
379
  }
380
381
  local loadPlayerData, savePlayerData
382
  do
383
    local stringData = {}
384
    local dataSystemVersion = "0.1"
385
    local moduleIdentifier = "fm"
386
    local dataVersion = "0.6"
387
    local resetOnOlderVersion = "0.3"
388
    local saveValues = {
389
      victorias = "number",
390
      key_rampa = "number",
391
      key_suelo = "number",
392
      key_recarga = "number",
393
      key_rescate = "number",
394
      key_consumible = "number",
395
      noticias_version = "number",
396
    }
397
    --[[
398
        Explicación:
399
      Al usar datos hosteados en mi cuenta (Tocutoeltuco#0000), todos los datos que
400
      yo use (ya sea para este o para otro módulo) se compartirán. Es decir,
401
      tu system.savePlayerData en #fortmice afecta el system.loadPlayerData en cualquier
402
      otro módulo o script que yo cargue, y viceversa. Lo mismo con los archivos.
403
      Por lo tanto, este sistema requiere un identificador de módulo (el tuyo será fm),
404
      así tu modulo no modifica datos de otros módulos. La version del sistema de datos
405
      es por si en algún momento cambio el sistema. La versión de los datos es por si
406
      en algún momento se te ocurre cambiar los datos guardados, en tal caso, el código
407
      detectará si alguien tiene una version más antigua que la que estás usando, y si lo es
408
      checkeará si es menor que resetOnOlderVersion, si lo es, reseteará sus datos y le mandará
409
      un mensaje.
410
      saveValues son los valores que guardas, te recomiendo no modificarlo sin avisarme
411
    ]]
412
413
    local function getDefaultData()
414
      return {
415
        plataformas = 12,
416
        reloadPlataformas = 0,
417
        flechasDefault = 1,
418
        canShoot = nil,
419
        inGame = 0,
420
        showUpdate = 0,
421
        tImpulsador = 10,
422
        tWaitingKey= 20,
423
        asignandoKey=  0,
424
        txt_salud = 100,
425
        cofre101102Bombas = 0,
426
        cofre103104Lapidas = 0,
427
        cofre105106Impulsador = 0,
428
        cofre108Sniper = 0,
429
        cofre110111Trampa = 0,
430
        cofre112113Cajas = 0,
431
        cofre114115Lanzaderas= 0,
432
        cofre116117MinigunNevada= 0,            
433
        trampas = 4,
434
        trampasOn = 0,
435
        lanzaderas = 6,
436
        force = 45,
437
        ammo = 7,
438
        txt_key_rampa = "C",
439
        txt_key_suelo = "X",
440
        txt_key_recarga = "Q",
441
        txt_key_rescate = "Z",
442
        txt_key_consumible = "space",
443
        victorias = 0,
444
        key_rampa = 67,
445
        key_suelo = 88,
446
        key_recarga = 81,
447
        key_rescate = 90,
448
        key_consumible = 32,
449
        noticias_version = 0
450
      }
451
    end
452
453
    local function onPlayerDataLoaded(player)
454
      tfm.exec.setPlayerScore(player,mice[player].victorias,false)
455
      mice[player].txt_key_rampa = keyz[mice[player].key_rampa]
456
      mice[player].txt_key_suelo = keyz[mice[player].key_suelo]
457
      mice[player].txt_key_recarga = keyz[mice[player].key_recarga]
458
      mice[player].txt_key_rescate = keyz[mice[player].key_rescate]
459
      mice[player].txt_key_consumible = keyz[mice[player].key_consumible]
460
      ui.addTextArea(22, "<b>"..mice[player].txt_key_suelo.."", player, 11, 320, 14, 15, 0x00000F, 0x000000, 0.5, true)
461
      ui.addTextArea(23, "<b>"..mice[player].txt_key_rampa.."</a>", player, 40, 320, 14, 15, 0x00000F, 0x000000, 0.5, true)
462
      ui.addTextArea(28, "<b>"..mice[player].txt_key_rescate.."", player, 70, 320, 14, 15, 0x00000F, 0x000000, 0.5, true)
463
      if mice[player].noticias_version < noticias_version then
464
        displayUpdate(player)
465
      end
466
      mice[player].noticias_version = noticias_version
467
      savePlayerData(player)
468
    end
469
470
    function eventPlayerDataLoaded(player, data)
471
      if data == "" then
472
        stringData[player] = moduleIdentifier .. ":0:0;"
473
        return onPlayerDataLoaded(player)
474
      end
475
476
      if string.sub(data, 1, 2 + #dataSystemVersion) ~= "|" .. dataSystemVersion .. "|" then
477
        stringData[player] = moduleIdentifier .. ":0:0;"
478
        tfm.exec.chatMessage(translate(tfm.get.room.playerList[player].community, "datos_corruptos"), player)
479
      else
480
        data = string.sub(data, 3 + #dataSystemVersion)
481
        stringData[player] = data
482
        local version, module_data = string.match(data, moduleIdentifier .. ":([^:]+):([^;]+);")
483
484
        if version then
485
          if version <= resetOnOlderVersion then
486
            tfm.exec.chatMessage(translate(tfm.get.room.playerList[player].community, "datos_corruptos"), player)
487
          else
488
            for key, value in string.gmatch(string.gsub(string.gsub(module_data, "&0", ":"), "&1", ";"), "([^:]+):([^;]+);") do
489
              if saveValues[key] == "number" then
490
                mice[player][key] = tonumber(value)
491
              elseif saveValues[key] == "boolean" then
492
                mice[player][key] = value == "1"
493
              elseif saveValues[key] == "string" then
494
                mice[player][key] = string.gsub(string.gsub(string.gsub(value, "&2", ":"), "&3", ";"), "&4", "&")
495
              else
496
                mice[player] = getDefaultData()
497
                tfm.exec.chatMessage(translate(tfm.get.room.playerList[player].community, "datos_corruptos"), player)
498
                break
499
              end
500
            end
501
          end
502
        end
503
      end
504
      onPlayerDataLoaded(player)
505
    end
506
507
    function loadPlayerData(player)
508
      mice[player] = getDefaultData()
509
510
      if not system.loadPlayerData(player) then
511
        onPlayerDataLoaded(player)
512
      end
513
    end
514
515
    function savePlayerData(player)
516
      if not stringData[player] then return end
517
518
      local moduleData = moduleIdentifier .. ":" .. dataVersion .. ":"
519
      local valueData, globalData
520
      for key, saveType in next, saveValues do
521
        valueData = key .. "&0"
522
        if saveType == "boolean" then
523
          moduleData = moduleData .. valueData .. (mice[player][key] and "1" or "0") .. "&1"
524
        elseif saveType == "number" then
525
          moduleData = moduleData .. valueData .. tostring(tonumber(mice[player][key]) or 0) .. "&1"
526
        elseif saveType == "string" then
527
          moduleData = moduleData .. valueData .. string.gsub(string.gsub(string.gsub(mice[player][key], "&", "&4"), ";", "&3"), ":", "&2") .. "&1"
528
        else
529
          error("Can not cast data to " .. saveType .. " to save it.", 2)
530
        end
531
      end
532
533
      globalData = "|" .. dataSystemVersion .. "|"
534
      for module, version, data in string.gmatch(stringData[player], "([^:]+):([^:]+):([^;]+);") do
535
        if module == moduleIdentifier then
536
          globalData = globalData .. moduleData .. ";"
537
        else
538
          globalData = globalData .. module .. ":" .. version .. ":" .. data .. ";"
539
        end
540
      end
541
542
      system.savePlayerData(player, globalData)
543
    end
544
  end
545
546
  commands = {"n","p","ban","desban","getwins"}
547
  for i,command in ipairs(commands) do system.
548
      disableChatCommandDisplay(command,true)
549
  end
550
551
  local maps= {7642772,7642774,7642776,7642777,7625644,7626683,7642778,7423106,7428983,7532123,7532125,7532128,7533224,7533232,7577881,7578387,7625705,7625890,7625938,7626300,7626345,7626636,7626678,7642780}
552
     local gameModemaps= {7646218,7646220,7646221,7646222,7647932,7647934}
553
554
555
  local admins = {"Hackinzkt#0000","Tocutoeltuco#0000","Lua#1908"}
556
  local mods = {}
557
  local banlist = {}
558
  local acurrentMap
559
  local playersInRoom = 0
560
  last_player_name_alive = ""
561
  local toRespawn = {}
562
  tFeed = 0
563
  tlastPlayer = 0
564
  tgameMode = 0
565
  feedID= 50
566
  feedTxT= 0
567
  tTormentComming = 20
568
  quickPlataform = 0
569
  globalPlataformas = 0
570
  inCheese = 0
571
  firstRound = 0
572
  toDespawn = {}
573
  facingLeft = {}
574
  victory = 0
575
  tStorm = 0
576
  feedID= 50
577
  feedPos = 390
578
barreras = 10000
579
580
  local settings = {
581
      recoil = 2,
582
      maxObjects = 14,
583
      ammoTicks = 3,
584
  }
585
586
  local textareaCoords = {}
587
  local SETTINGS = {
588
    mapLength = 4800,
589
    textareaAmount = 17,
590
    textareaSize = 18,
591
  }
592
593
  function players_alive()
594
    nr = 0
595
    for name,player in pairs(tfm.get.room.playerList) do
596
      if tfm.get.room.playerList[name].isDead == false then
597
        nr = nr +1
598
        last_player_name_alive = name
599
      end
600
    end
601
    return nr
602
  end
603
604
605
606
  function isAdmin (name)
607
  for _,adminName in pairs(admins) do
608
  tfm.exec.setNameColor(adminName,0xFCF903)
609
  if name == adminName then return true end
610
  end
611
  return false
612
  end
613
614
  function isMod (name)
615
  for _,modName in pairs(mods) do
616
  tfm.exec.setNameColor(modName,0x54B2DF)
617
  if name == modName then return true end
618
  end
619
  return false
620
  end
621
622
  function isBanned (name)
623
  for _,bannedName in pairs(banlist) do
624
  if name == bannedName then return true end
625
  end
626
  return false
627
  end
628
629
630
  --------- TORMENTA LEFT ---------
631
632
  local textAreaWIDTHL = 5000
633
  local textAreaHEIGHTL = 1300
634
  avanceTormentLeft = 0
635
  local textareaLeft = setmetatable({ x = 0, y = 0, radiusX = (textAreaWIDTHL+4990) / 4, radiusY = (textAreaHEIGHTL+200) / 2}, {
636
    __call = function(list, objectX, objectY)
637
      local x, y = (list.x - objectX), (list.y - objectY)
638
      return x >= -list.radiusX and x <= list.radiusX and y >= -list.radiusY and y <= list.radiusY
639
    end
640
  })
641
  textareaLeft.x = -2508
642
  textareaLeft.y = 445
643
644
  --------- TORMENTA RIGHT ---------
645
646
  local textAreaWIDTH = 5000
647
  local textAreaHEIGHT = 1300
648
  avanceTormentRight = 0
649
  local textarea = setmetatable({ x = 0, y = 0, radiusX = (textAreaWIDTH+200) / 4, radiusY = (textAreaHEIGHT+200) / 2}, {
650
    __call = function(list, objectX, objectY)
651
      local x, y = (list.x - objectX), (list.y - objectY)
652
      return x >= -list.radiusX and x <= list.radiusX and y >= -list.radiusY and y <= list.radiusY
653
    end
654
  })
655
  textarea.x = 6104
656
  textarea.y = 445
657
    
658
    
659
    
660
     --------- TORMENTA UP ---------
661
    
662
    local textAreaWIDTHUP = 4800
663
local textAreaHEIGHTUP = 800
664
665
local textareaUp = setmetatable({ x = 0, y = 0, radiusX = (textAreaWIDTHUP) / 2, radiusY = (textAreaHEIGHTUP) / 2}, {
666
667-
	__call = function(list, objectX, objectY)
667+
  __call = function(list, objectX, objectY)
668-
		local x, y = (list.x - objectX), (list.y - objectY)
668+
    local x, y = (list.x - objectX), (list.y - objectY)
669
670
671-
		return x >= -list.radiusX and x <= list.radiusX and y >= -list.radiusY and y <= list.radiusY
671+
    return x >= -list.radiusX and x <= list.radiusX and y >= -list.radiusY and y <= list.radiusY
672-
	end
672+
673
})
674
675
textareaUp.x = 2400
676
textareaUp.y = -600
677
    avanceTormentaUp = 0
678
679
680
    
681
    
682
    
683
684
685
686
  local players = {}
687
  local objects = {}
688
689
  keys = {67,88,81,90,0,2,32,49,50,51,52,53,54,55,56,57,58,59,65,66,68,69,70,71,72.73,74,75,76,77,78,79,80,82,83,84,85,86,87,89,97,98,99}
690
  _C = 67
691
  _X = 88
692
  _Q = 81
693
  _Z = 90
694
  _A = 65
695
  _B = 66
696
  _E = 69
697
  _left = 0
698
  _right = 2
699
  _space = 32
700
  _rampaDerecha = {width=80, height=10, foreground=true, miceCollision=true, groundCollision=true, type=0, angle=-45, friction=0.2}
701
  _rampaIzquierda = {width=80, height=10, foreground=true, miceCollision=true, groundCollision=true, type=0, angle=45, friction=0.2}
702
  _Suelo = {width=80, height=10, foreground=true, miceCollision=true, groundCollision=true, type=0, angle=0, friction=0.3}
703
  _rescate = {width=100, height=10, foreground=true, miceCollision=true, groundCollision=true, type=0, angle=-180, friction=0.3}
704
  _lanzaderaRight = {width=50, height=10, foreground=true, miceCollision=true, groundCollision=true, type=2, angle=40, friction=0, restitution=2}
705
  _lanzaderaCentro = {width=50, height=10, foreground=true, miceCollision=true, groundCollision=true, type=2, angle=0, friction=0, restitution=5}
706
  _lanzaderaLeft = {width=50, height=10, foreground=true, miceCollision=true, groundCollision=true, type=2, angle=-40, friction=0, restitution=2}
707
708
   _trampaBase = {width=10, height=115, foreground=true, miceCollision=true, groundCollision=false,mass=999999, linearDamping=5,angularDamping=1, type=3, angle=-90, friction=999,dynamic=false, restitution=5}
709
  _trampalado1 = {width=10, height=115, foreground=true, miceCollision=true, groundCollision=false,mass=999999,linearDamping=5,angularDamping=1, type=3, angle=30, friction=999,dynamic=false, restitution=2}
710
  _trampalado2 = {width=10, height=115, foreground=true, miceCollision=true, groundCollision=false,mass=999999, linearDamping=5,angularDamping=1, type=3, angle=-30, friction=999,dynamic=false, restitution=2}
711
   _trampaSpiderWeb = {width=75, height=75, foreground=false, miceCollision=false, type=15}
712
713
   _barreraLeft = {width=10, height=1200, foreground=true,groundCollision=false, miceCollision=true, type=15}
714
   _barreraRight = {width=10, height=1200, foreground=false,groundCollision=false, miceCollision=true, type=15}
715
   _barreraUpLeft = {width=2400, height=10, foreground=false,groundCollision=false, miceCollision=true, type=15}
716
   _barreraUpRight = {width=2400, height=10, foreground=false,groundCollision=false, miceCollision=true, type=15}
717
718
719
  -- END  -----------------------------------
720
721
722
  function main()
723
724
    for n in pairs(tfm.get.room.playerList) do
725
      eventNewPlayer(n)
726
  tfm.exec.setPlayerScore(n,0)
727
tfm.exec.setUIMapName(""..translate(tfm.get.room.playerList[n].community, "hud_uimap").."")
728
  end
729
730
    tfm.exec.disableAutoNewGame()
731
  tfm.exec.disableAutoTimeLeft()
732
  tfm.exec.disableAutoShaman()
733
  tfm.exec.disableAutoScore(true)
734
  tfm.exec.disablePhysicalConsumables()
735
  tfm.exec.disableMinimalistMode()
736
  tfm.exec.disableWatchCommand()
737
  tfm.exec.setRoomMaxPlayers(22)
738
      objects = queue.new()
739
  startGame()
740
  end
741
742
743
744
745
746
747
748
  function eventNewPlayer(name)
749
  tfm.exec.setUIMapName(""..translate(tfm.get.room.playerList[name].community, "hud_uimap").."")
750
  tfm.exec.chatMessage(""..translate(tfm.get.room.playerList[name].community, "bienvenida").."",name)
751-
 ui.addTextArea(951,"<font size='13' color='#FFFFFF'> "..players_alive().."", name, 13, 260, 80, 23, 0x324650, 0x000000, 0, true)
751+
  tfm.exec.addImage("16dfb1c1dfe.png", ":1", 6, 260, name)
752
 ui.addTextArea(951,"<font size='13' color='#FFFFFF'>"..players_alive().."", name, 25, 262, 80, 23, 0x324650, 0x000000, 0, true)
753
  ui.addTextArea(30100, "<font size='15' color='#FFFFFF'><a href='event:options'>≡", nil, 6, 23, 16, 22, 0x00000f, 0x00000f, 0.3, true)
754
  ui.addTextArea(9992, "<p align='center'><font size='16'><font color='#FFF500' face='Comic Sans MS'>"..translate(tfm.get.room.playerList[name].community, "hud_espectador").."</font>", name, 325, 372, 140, 25, 0x00000F, 0x000000, 0.5, true)
755
  ui.addTextArea(21, "<font size='15' color='#FFFFFF'>"..translate(tfm.get.room.playerList[name].community, "hud_plataformas").."", name, 5, 290, 100, 20, 0x324650, 0x000000, 0, true)
756
  ui.addTextArea(22, "<b>X", name, 11, 320, 14, 15, 0x00000F, 0x000000, 0.5, true)
757
  ui.addTextArea(23, "<b>C", name, 40, 320, 14, 15, 0x00000F, 0x000000, 0.5, true)
758
  ui.addTextArea(28, "<b>Z", name, 70, 320, 14, 15, 0x00000F, 0x000000, 0.5, true)
759
  playersInRoom = playersInRoom + 1
760
    for _,k in pairs(keys) do
761
      system.bindKeyboard(name, k, true)
762
    end
763
764
    playerz[name]={
765
      timestamp=os.time(),
766
      offsets={x=3, y=8},
767
      visible=false,
768
      side = 1
769
    }
770
        
771
772
  loadPlayerData(name)
773
  end
774
775
776
  function eventPlayerLeft (name)
777
  playersInRoom = playersInRoom - 1
778
  end
779
780
  -------------------------------------- ROTATION -----------------------------------
781
782
783
784
785
       
786
     function startGame()
787
        if gameMode <=1 then
788
  tfm.exec.newGame(maps[math.random(#maps)])
789
end
790
        if gameMode >1 then
791
            tfm.exec.newGame(gameModemaps[math.random(#gameModemaps)])
792
            end
793
        
794
  nadieGana = 0
795
  victory = 0
796
  avanceTormenta = 0
797
  avanceTormentaUp = 0
798
  tTormentComming = 20
799
  tnadieGanaLoop = 6
800
  quickPlataform = 1
801
  firstRound = firstRound + 1
802
        
803
804
        textareaUp.x = 2400
805
   textareaUp.y = -600
806
        
807
        
808
   direccion = 0
809
   stormUp = false
810
811
  end
812
813
814
  function eventNewGame()
815
  tStorm = 160
816
   gameMode = gameMode + 1
817
    tfm.exec.setGameTime(172)
818
      isAdmin()
819
         isMod()
820
821
 
822
823
824
  --------------------- CLEAN TextAreas -----------------------------
825
826
  ui.removeTextArea(50,nil)
827
  ui.removeTextArea(51,nil)
828
  ui.removeTextArea(52,nil)
829
  ui.removeTextArea(53,nil)
830
  ui.removeTextArea(9998,nil)
831
  ui.removeTextArea(9992,nil)
832
  ui.removeTextArea(666,nil)
833
  ui.removeTextArea(668,nil)
834
  ui.removeTextArea(667,nil)
835
  ui.removeTextArea(665,nil)
836
  ui.removeTextArea(669,nil)
837
  ui.removeTextArea(777,nil)
838
  ui.removeTextArea(443,nil)
839
  ui.removeTextArea(444,nil)
840
  ui.removeTextArea(445,nil)
841
  ui.removeTextArea(446,nil)
842
  ui.removeTextArea(447,nil)
843
  ui.removeTextArea(448,nil)
844
  ui.removeTextArea(27,nil)
845
  ui.removeTextArea(288,nil)
846
  ui.removeTextArea(29,nil)
847
  ui.removeTextArea(-9999,nil)
848
  ui.removeTextArea(201,nil)
849
  ui.removeTextArea(202,nil)
850
   ui.removeTextArea(203,nil)
851
  ui.removeTextArea(-999,nil)
852
  ui.removeTextArea(-998,nil)
853
  ui.removeTextArea(-997,nil)
854
  ui.removeTextArea(-996,nil)
855
856
  ---------------------------------COFRES TEXTAREA-----------------------------
857
858
  textareaCoords = {}
859
860
    for id = 1, SETTINGS.textareaAmount do
861
  id = id+100
862
      local rand = math.random
863
      local x, y = rand(SETTINGS.mapLength), rand(350)
864
865
      textareaCoords[#textareaCoords + 1] = {x = x, y = y}
866
         
867
for player, data in next, tfm.get.room.playerList do   
868
      ui.addTextArea(id,"<font color='#00000F'><a href='event:abrirCofre'>"..translate(data.community, "abrirCofre").."</a>", player, x, y+30, 70, SETTINGS.textareaSize, 0xFFC500, 0x795722, 0.8, false)
869
        end
870
                
871
    end
872
873
  --------------------- RESET DEFAULT VALUES from mice[name] -----------------------------
874
875
  for name in pairs(tfm.get.room.playerList) do
876
  if name and mice[name] then                                                                                                   
877
  mice[name].plataformas = 12
878
  mice[name].inGame = 1
879
  mice[name].txt_salud = 100
880
  mice[name].flechasDefault = 1
881
  mice[name].canShoot = true
882
  mice[name].reloadPlataformas = 0
883
  mice[name].cofre101102Bombas = 0
884
  mice[name].cofre103104Lapidas = 0
885
  mice[name].cofre105106Impulsador = 0
886
  mice[name].cofre108Sniper = 0
887
  mice[name].cofre112113Cajas = 0
888
  mice[name].cofre110111Trampa = 0
889
  mice[name].trampas = 4
890
  mice[name].trampasOn = 0
891
  mice[name].cofre114115Lanzaderas = 0
892
  mice[name].cofre116117MinigunNevada = 0
893
  mice[name].lanzaderas = 6
894
  mice[name].ammo = 7
895
  mice[name].force = 45
896
  savePlayerData(name)
897
  tfm.exec.setUIMapName(""..translate(tfm.get.room.playerList[name].community, "hud_uimap").."")
898
  ui.addTextArea(20, "<font size='15' color='#FFFFFF'>"..translate(tfm.get.room.playerList[name].community, "hud_municion").."", name, 5, 345, 90, 50, 0x324650, 0x000000, 0, true)
899
  ui.addTextArea(22, "<b>"..mice[name].txt_key_suelo.."", name, 11, 320, 14, 15, 0x00000F, 0x000000, 0.5, true)
900
  ui.addTextArea(23, "<b>"..mice[name].txt_key_rampa.."</a>", name, 40, 320, 14, 15, 0x00000F, 0x000000, 0.5, true)
901
  ui.addTextArea(24, "<font size='15' color='#FFFFFF'>12/12", name, 90, 318, nil, 20, 0x324650, 0x000000, 0, true)
902
  ui.addTextArea(28, "<b>"..mice[name].txt_key_rescate.."", name, 70, 320, 14, 15, 0x00000F, 0x000000, 0.5, true)
903
  -- ui.addTextArea(44455, "Salud: "..mice[name].txt_salud.."", name,320, 290, 102, 27, 0x324650, 0x000000, 1, true)
904
  ui.removeTextArea(25,name)
905
  ui.removeTextArea(26,name)
906
  end
907
   end
908
        
909-
             ui.addTextArea(951, "<font size='13' color='#FFFFFF'> "..players_alive().." ", player, 13, 260, 80, 23, 0x324650, 0x000000, 0, true)
909+
910
             ui.addTextArea(951, "<font size='13' color='#FFFFFF'>"..players_alive().." ", player, 25, 262, 80, 23, 0x324650, 0x000000, 0, true)
911
            end
912
        
913
  ui.removeTextArea(29,nil) -- tramaps munición
914
915
  ---------------------------------------------------------------------
916
   for _,playerName in pairs(banlist) do
917
  tfm.exec.killPlayer(playerName);
918
  end
919
920
     players = {}
921
      for name in pairs(tfm.get.room.playerList) do
922
          initPlayer(name)
923
      end
924
925
        
926
        
927
                if gameMode <= 2 then
928
929
           textarea.x = 6104
930
   textarea.y = 445
931
  textareaLeft.x = -2508
932
  textareaLeft.y = 445
933
            
934
             barreras = 10000
935
  barreras = barreras + 4
936
   tfm.exec.addPhysicObject(barreras,-6,201, _barreraLeft)
937
    tfm.exec.addPhysicObject(barreras-1,4806,201, _barreraRight)
938
  tfm.exec.addPhysicObject(barreras-2,1200,-5, _barreraUpLeft)
939
   tfm.exec.addPhysicObject(barreras-3,3600,-5, _barreraUpRight)
940
  end
941
942
943
        
944
        
945
  if gameMode == 3 then
946
  textarea.x = 2000
947
   textarea.y = 445
948
  textareaLeft.x = -2508
949
   textareaLeft.y = 445
950
            direccion = 1
951
    for player, data in next, tfm.get.room.playerList do        
952
ui.addTextArea(12200, "<p align='center'><font size='35' color='#0082FF' face = 'Lucida Handwriting Cursiva'>"..translate(data.community, "aviso_modoDeJuegoNombre").."", player, 3, 83, 795, 49, 0x000000, 0x000000, 0, true)
953
ui.addTextArea(12201, "<p align='center'><font size='35' color='#FFFFFF' face = 'Lucida Handwriting Cursiva'>"..translate(data.community, "aviso_modoDeJuegoNombre").."", player, 5, 83, 795, 51, 0x000000, 0x000000, 0, true)
954
ui.addTextArea(12202, "<p align='center'><font size='35' color='#000000'>___________", player, 298, 90, 196, 48, 0x000000, 0x000000, 0, true)
955
ui.addTextArea(12203, "<p align='center'><font size='35' color='#000000'>___________", player, 297, 43, 200, 52, 0x000000, 0x000000, 0, true)
956
ui.addTextArea(12204, "<p align='center'><font color='#ffdd00'>"..translate(data.community, "aviso_textAreaModoDeJuego").."", player, 672, 28, 120, 20, 0x6a7495, 0xffdd00, 1, true)
957
ui.addTextArea(12205, "<p align='center'><font color='#FFF500' size='14'>"..translate(data.community, "aviso_modoDeJuegoDescrip").."", player, 179, 138, 430, 20, 0x324650, 0xffdd00, 0, true)
958
end
959
            
960
    tgameMode = 10 
961
            
962
                         barreras = 10000
963
  barreras = barreras + 4
964
   tfm.exec.addPhysicObject(barreras,-6,201, _barreraLeft)
965
    tfm.exec.addPhysicObject(barreras-1,690,201, _barreraRight)
966
  tfm.exec.addPhysicObject(barreras-2,1200,-5, _barreraUpLeft)
967
   tfm.exec.addPhysicObject(barreras-3,3600,-5, _barreraUpRight)
968
  elseif gameMode == 4 then
969
   gameMode = 1
970
  end
971
972
973
  end
974
975
976
    
977
978
979
  function eventPlayerDied(name)
980
  ui.addTextArea(9992, "<p align='center'><font size='16'><font color='#FFF500' face='Comic Sans MS'>"..translate(tfm.get.room.playerList[name].community, "hud_espectador").."</font>", name, 325, 372, 140, 25, 0x00000F, 0x000000, 0.5, true)
981
 ui.removeTextArea(25,name)
982
 ui.removeTextArea(26,name)
983
        ui.removeTextArea(26,name)
984
   ui.removeTextArea(-9999,name)
985
    mice[name].tImpulsador = 0
986-
  ui.addTextArea(951, "<font size='13' color='#FFFFFF'> "..players_alive().." ", player, 13, 260, 80, 23, 0x324650, 0x000000, 0, true)
986+
987
  ui.addTextArea(951, "<font size='13' color='#FFFFFF'>"..players_alive().." ", player, 25, 262, 80, 23, 0x324650, 0x000000, 0, true)
988
            end
989
990
   if not isBanned(name) then
991
     tFeed = 10
992
      feedID = feedID + 1
993
       feedPos = feedPos - 20
994
        mice[name].showUpdate = mice[name].showUpdate + 1
995
            for player, data in next, tfm.get.room.playerList do
996
  ui.addTextArea(feedID, "<font size='14'><font color='#FFF500' face='Comic Sans MS'>"..name.."</font><font color='#FFFFFF'> "..translate(data.community, "feed").."", player, 570,feedPos, 240, 20, 0x324650, 0x000000, 0, true)
997
                end
998
            
999
  ui.removeTextArea(-9999,name)
1000
  end
1001
  if feedID >= 53 then
1002
   feedID = 50
1003
    feedPos = 390
1004
  end
1005
  tfm.exec.setPlayerScore(name,mice[name].victorias,false)
1006
1007
  if playersInRoom >=7 and players_alive() == 1 then
1008
   mice[last_player_name_alive].victorias = mice[last_player_name_alive].victorias + 1
1009
  tfm.exec.setPlayerScore(last_player_name_alive,mice[last_player_name_alive].victorias,false)
1010
  end
1011
        
1012
  -- Asegura que el valor de gameMode cambie a 1
1013
if players_alive() == 1  and gameMode == 3 then
1014
  gameMode = 0 
1015
            end
1016
        
1017
  if players_alive() == 1 then
1018
  victory = 1
1019
   tStorm = 5
1020
  ui.addTextArea(666, "", nil, 240, 76, 345, 45, 0x417FBC, 0x417FBC, 1, true)
1021
            for player, data in next, tfm.get.room.playerList do
1022
  ui.addTextArea(668,""..translate(data.community, "aviso_victoria").."", player, 200, 77, 380, 50, 0x324650, 0x000000, 0, true)
1023
  ui.addTextArea(665, "<p align='center'><font color='#FFFFFF' size='14'><font color='#FFF504'>"..last_player_name_alive.."</font> "..translate(data.community, "aviso_victoriaDescrip").."", player, 240, 130, 350, 45, 0x417FBC, 0x417FBC, 0, true)
1024
  ui.addTextArea(669, "<p align='center'><font color='#FFFFFF' size='12'>"..translate(data.community, "aviso_victoriasContador").."<font color='#FFF504'> "..mice[last_player_name_alive].victorias.."</font>", player, 238, 150, 350, 45, 0x417FBC, 0x417FBC, 0, true)
1025
 
1026
            end
1027
            
1028
  ui.addTextArea(667, "<font color='#FFF504' size='45' face='Comic Sans MS'>#1", nil, 242, 68, 73, 60, 0x324650, 0x000000, 0, true)
1029
  ui.removeTextArea(-9999,last_player_name_alive)
1030
  mice[last_player_name_alive].tImpulsador = 0
1031
   mice[last_player_name_alive].cofre105106Impulsador = 0
1032
  avanceTormenta = 0
1033
  ui.removeTextArea(445,nil)
1034
  ui.removeTextArea(446,nil)
1035
  ui.removeTextArea(447,nil)
1036
  ui.removeTextArea(448,nil)
1037
  ui.removeTextArea(-999,nil)
1038
  ui.removeTextArea(-998,nil)           
1039
  ui.removeTextArea(444,nil)
1040
  ui.removeTextArea(443,nil)
1041
  ui.removeTextArea(442,nil)   
1042
  ui.removeTextArea(441,nil)  
1043
  ui.removeTextArea(-999,nil)
1044
  ui.removeTextArea(-998,nil)
1045
  ui.removeTextArea(-997,nil)
1046
  ui.removeTextArea(-996,nil)
1047
            
1048
  tlastPlayer = 11
1049
  tfm.exec.setGameTime(7)
1050
1051
  end
1052
        -- Asegura que el valor de gameMode cambie a 1
1053
if players_alive() == 0 and victory == 0  and gameMode == 3 then
1054
            gameMode = 0
1055
            end
1056
        
1057
  if players_alive() == 0 and victory == 0 then
1058
  tStorm = 5
1059
  ui.addTextArea(445, "", nil, 240, 76, 345, 45, 0xC00F0F, 0xC00F0F, 1, true)
1060
            for player, data in next, tfm.get.room.playerList do
1061
  ui.addTextArea(446, "<font color='#FFFFFF' size='30' face='Comic Sans MS'>"..translate(data.community, "aviso_nadieGana").."", player, 240, 77, 380, 50, 0x324650, 0x000000, 0, true)
1062
  ui.addTextArea(447, "<font color='#FFF504' size='45' face='Comic Sans MS'>#-1", player, 242, 68, 100, 65, 0x324650, 0x000000, 0, true)
1063
  ui.addTextArea(448, "<p align='center'><font color='#FFFFFF' size='14'>"..translate(data.community, "aviso_nadieGanaDescrip").."", player, 240, 130, 345, 20, 0xC00F0F, 0xC00F0F, 0.8, true)
1064
            end
1065
  tfm.exec.setGameTime(5)
1066
  avanceTormenta = 0
1067
              ui.removeTextArea(444,nil)
1068
  ui.removeTextArea(443,nil)
1069
  ui.removeTextArea(442,nil)   
1070
  ui.removeTextArea(441,nil)  
1071
  ui.removeTextArea(-999,nil)
1072
  ui.removeTextArea(-998,nil)
1073
  ui.removeTextArea(-997,nil)
1074
  ui.removeTextArea(-996,nil)
1075
  end
1076
  end
1077
1078
1079
  tnadieGanaLoop = 6
1080
  local loopCount = 0
1081
  avanceTormenta = 0
1082
  gameMode = 0
1083
  returnStorm = nil
1084
  returnStormState = 0
1085
  blueTorment = "0x00B8FF"
1086
  pinkTorment = "0xD701CF"
1087
stormUp = nil
1088
1089
1090
  function stormDamage()
1091
        --- Dirección de la tormenta
1092
        stormDirection()
1093
        
1094
        
1095
  -- Daño al tocar la tormenta:
1096
        if direccion == 0 then
1097
  for k, v in next, tfm.get.room.playerList do
1098
      if textareaLeft(v.x+20, v.y) or textarea(v.x-20, v.y) then
1099
      tfm.exec.killPlayer(k)
1100
    end
1101
  end
1102
       end
1103
        
1104
        if stormUp then            
1105
          for k, v in next, tfm.get.room.playerList do
1106
      if textareaUp(v.x, v.y) then
1107
      tfm.exec.killPlayer(k)
1108
1109
    end
1110
  end
1111
       end
1112
        
1113
        
1114
                if direccion == 0 and tStorm <= 10 then
1115
  for k, v in next, tfm.get.room.playerList do
1116
      if textareaLeft(v.x, v.y) or textarea(v.x, v.y) then
1117
      tfm.exec.killPlayer(k)
1118
1119
    end
1120
  end
1121
       end
1122
       --    -->
1123
        if direccion == 1 then
1124
          for k, v in next, tfm.get.room.playerList do
1125
      if textareaLeft(v.x+25, v.y) or textarea(v.x+20, v.y) then
1126
     tfm.exec.killPlayer(k)
1127
    end
1128
  end
1129
       end
1130
        --   <--
1131
        if direccion == 2 then
1132
          for k, v in next, tfm.get.room.playerList do
1133
      if textareaLeft(v.x-20, v.y) or textarea(v.x-25, v.y) then
1134
     tfm.exec.killPlayer(k)
1135
1136
        
1137
    end
1138
  end
1139
        end
1140
        
1141
        
1142
  end
1143
    
1144
    
1145
    -- direccion 0 la tormenta se cierra normal
1146
-- direccion 1 va hacia la derecha
1147
-- direccion 2 va hacia la izquierda
1148
direccion = 0
1149
1150
    
1151
function stormDirection()
1152
1153
-- LA TORMENTA FLUYE NORMAL
1154
        
1155
      -- Hacia el centro  
1156
if direccion == 0 then
1157
ui.addTextArea(201, "", nil, textareaLeft.x - textareaLeft.radiusX , textareaLeft.y - textareaLeft.radiusY, textAreaWIDTHL, textAreaHEIGHTL,0x00B8FF, 0xFFFFFF, 0.6, false)
1158
textareaLeft.x = textareaLeft.x + avanceTormenta
1159
ui.addTextArea(202, "", nil, textarea.x - textarea.radiusX , textarea.y - textarea.radiusY, textAreaWIDTH, textAreaHEIGHT,0x00B8FF, 0xFFFFFF, 0.6, false)
1160
textarea.x = textarea.x - avanceTormenta
1161
             end
1162
1163
if tStorm == 45 and gameMode <= 2 then
1164
direccion = math.random(1,2)
1165
elseif tStorm == 34 and gameMode <= 2 then
1166
direccion = math.random(1,2)
1167
elseif tStorm == 20 and gameMode <= 2 then
1168
direccion = 0
1169
            avanceTormenta = 3
1170
elseif tStorm == 25 and gameMode == 3 then
1171
direccion = 0
1172
            avanceTormenta = 7
1173
end
1174
        
1175
-- Hacia la derecha
1176
if direccion == 1 then
1177
1178
ui.addTextArea(201, "", nil, textareaLeft.x - textareaLeft.radiusX , textareaLeft.y - textareaLeft.radiusY, textAreaWIDTHL, textAreaHEIGHTL,0x00B8FF, 0xFFFFFF, 0.6, false)
1179
textareaLeft.x = textareaLeft.x + avanceTormenta
1180
ui.addTextArea(202, "", nil, textarea.x - textarea.radiusX , textarea.y - textarea.radiusY, textAreaWIDTH, textAreaHEIGHT,0x00B8FF, 0xFFFFFF, 0.6, false)
1181
textarea.x = textarea.x + avanceTormenta
1182
-- aqu iba un 
1183
end
1184
-- Hacia la izquierda
1185
if direccion == 2 then
1186
ui.addTextArea(201, "", nil, textareaLeft.x - textareaLeft.radiusX , textareaLeft.y - textareaLeft.radiusY, textAreaWIDTHL, textAreaHEIGHTL,0x00B8FF, 0xFFFFFF, 0.6, false)
1187
textareaLeft.x = textareaLeft.x - avanceTormenta
1188
ui.addTextArea(202, "", nil, textarea.x - textarea.radiusX , textarea.y - textarea.radiusY, textAreaWIDTH, textAreaHEIGHT,0x00B8FF, 0xFFFFFF, 0.6, false)
1189
textarea.x = textarea.x - avanceTormenta
1190
end
1191
1192
end
1193
1194
  --[[
1195
   if mice[k].txt_salud >=1 then
1196
         mice[k].txt_salud = mice[k].txt_salud - 30
1197
             ui.addTextArea(44455, "Salud: "..mice[k].txt_salud.."", k,320, 290, 102, 27, 0x324650, 0x000000, 1, true)
1198
   if mice[k].txt_salud <=0 then
1199
     tfm.exec.killPlayer(k)
1200
      mice[k].txt_salud = 0
1201
       ui.removeTextArea(44455,k)
1202
   end
1203
  end
1204
1205
      end
1206
    end
1207
1208
  end
1209
  --]]
1210
  ------------------------------ LOOP -----------------------------
1211
1212
  function eventLoop(t,tr, name)
1213
  if tStorm >= 1 then
1214
  tStorm = tStorm - 0.5
1215
  end
1216
1217
  if tStorm <= 154 and gameMode <=2 then
1218
  stormDamage()
1219
end
1220
         tormentaComming()
1221
 
1222
1223
  if tStorm <= 152 and gameMode <= 2 then
1224
  tTormentComming = tTormentComming -1
1225
  avanceTormenta = avanceTormenta + 0.07
1226
 end
1227
1228
  if tStorm == 148 and gameMode <=2 then
1229
  quickPlataform = 0
1230
            avanceTormenta = 6
1231
  end
1232
            
1233
if tStorm == 135 and gameMode <=2 then
1234
avanceTormenta = 8
1235
            end
1236
        
1237
        if tStorm == 70 and gameMode <=2 then
1238
avanceTormenta = 7
1239
            end
1240
        if tStorm == 45 then
1241
            quickPlataform = 1
1242
            end
1243
        
1244
        if tStorm <= 95 and victory == 0 then
1245
            stormUp = true
1246
            avanceTormentaUp = 2
1247
textareaUp.y = textareaUp.y + avanceTormentaUp
1248
         ui.addTextArea(203, "", nil, textareaUp.x - textareaUp.radiusX , textareaUp.y - textareaUp.radiusY, textAreaWIDTHUP, textAreaHEIGHTUP,0x00B8FF, 0xFFFFFF, 0.6, false)
1249
 
1250
        end
1251
        
1252
                    
1253
                    -- GAME MODE: Enfrentamientos tormentosos
1254
                    
1255
if tStorm <= 158 and gameMode ==3 then
1256
  stormDamage()
1257
end
1258
     
1259
        if tStorm == 148 and gameMode ==3 then
1260
  quickPlataform = 0
1261
            avanceTormenta = 13
1262
  end
1263
        
1264
                if tStorm == 70 and gameMode ==3 then
1265
            avanceTormenta = 14
1266
  end
1267
                    
1268
                    
1269
                    -- Devuelve GameMode al inicio.
1270
                    if tStorm == 1 and gameMode == 3 then
1271
            gameMode = 0
1272
            end
1273
        
1274
                    
1275
1276
      if loopCount == 0  then
1277
          ammo()
1278
      end
1279
      loopCount = (loopCount + 1) % settings.ammoTicks
1280
1281
  if quickPlataform == 0 then
1282
  for i,cannon in ipairs(toDespawn) do
1283
      if cannon[1] <= os.time()-5000  then
1284
                    tfm.exec.removeObject(cannon[2])
1285
        tfm.exec.removePhysicObject(cannon[2])
1286
        table.remove(toDespawn,i)
1287
      end
1288
    end
1289
  end
1290
1291
  if quickPlataform == 1 then
1292
  for i,cannon in ipairs(toDespawn) do
1293
      if cannon[1] <= os.time()-1500  then
1294
        tfm.exec.removePhysicObject(cannon[2])
1295
  tfm.exec.removeObject(cannon[2])
1296
1297
        table.remove(toDespawn,i)
1298
      end
1299
    end
1300
  end
1301
        
1302
1303
  if tr <= 0 then
1304
      startGame()
1305
    end
1306
1307
1308
  if tFeed >= 1 then
1309
      tFeed=tFeed-1
1310
  elseif tFeed == 0 then
1311
  feedID = 50
1312
  feedPos = 390
1313
  ui.removeTextArea(50,nil)
1314
  ui.removeTextArea(51,nil)
1315
  ui.removeTextArea(52,nil)
1316
  ui.removeTextArea(53,nil)
1317
    end
1318
1319
1320
  if tlastPlayer >= 1 then
1321
  tlastPlayer = tlastPlayer-1
1322
  elseif tlastPlayer == 0 then
1323
  ui.removeTextArea(777,nil)
1324
  end
1325
        
1326
1327
  for name in pairs(tfm.get.room.playerList) do
1328
          if name and mice[name] then
1329
  if mice[name].tImpulsador >= 1 and mice[name].cofre105106Impulsador == 1 then
1330
  mice[name].tImpulsador = mice[name].tImpulsador-1
1331
  ui.addTextArea(-9999, "<p align='center'><font size='16'><font color='#FFF500' face='Comic Sans MS'>Booster!</font> "..mice[name].tImpulsador.."s",name, 325, 372, 140, 25, 0x00000F, 0x000000, 0.5, true)
1332
  end
1333
          end
1334
  end
1335
1336
  for name in pairs(tfm.get.room.playerList) do
1337
          if name and mice[name] then
1338
  if mice[name].asignandoKey >= 1  and mice[name].tWaitingKey >=1 then
1339
  mice[name].tWaitingKey = mice[name].tWaitingKey-1
1340
  ui.addTextArea(310, "<p align='center'><font size='15'><font color='#FFFFFF' face='Comic Sans MS'>Waiting... "..mice[name].tWaitingKey.."s", name, 170, 185, 500, 100, 0x324650, 0x000000, 0, true)
1341
1342
  elseif mice[name].tWaitingKey == 0 then
1343
  ui.removeTextArea(301,name)
1344
  ui.removeTextArea(302,name)
1345
  ui.removeTextArea(303,name)
1346
  ui.removeTextArea(304,name)
1347
  ui.removeTextArea(305,name)
1348
  ui.removeTextArea(306,name)
1349
  ui.removeTextArea(310,name)
1350
  mice[name].asignandoKey = 0
1351
  mice[name].tWaitingKey = 20
1352
  end
1353
  end
1354
  end
1355
1356
1357
  if tgameMode >= 1 then
1358
  tgameMode = tgameMode-1
1359
  elseif tgameMode == 0 then
1360
  ui.removeTextArea(12200,nil)
1361
  ui.removeTextArea(12201,nil)
1362
  ui.removeTextArea(12202,nil)
1363
  ui.removeTextArea(12203,nil)
1364
  ui.removeTextArea(12204,nil)
1365
  ui.removeTextArea(12205,nil)
1366
  end
1367
    end
1368
1369
1370
  function tormentaComming()
1371
        
1372
         if tStorm == 154 then
1373
            for player, data in next, tfm.get.room.playerList do
1374
    ui.addTextArea(-997, "<font color='#FFFFFF' size='24' face='Comic Sans MS'>"..translate(data.community, "aviso_tormenta").."", player, 250, 100, nil, nil, 0x00B8FF, 0xFFFFFF, 0, true)
1375
                end
1376
            
1377
  ui.addTextArea(-998, "<p align='center'><font size='40' color='#D50DC4' face='Webdings'>n ", nil, 385, 60, nil, nil, 0x324650, 0x000000, 0, true)
1378
  ui.addTextArea(-999, "<p align='center'><font size='25' color='#FFFFFF' face='Webdings'>~", nil, 392, 74, nil, nil, 0x324650, 0x000000, 0, true)
1379
  ui.addTextArea(-996, "<p align='center'><font size='45' color='#FFFFFF' face='Arial'>☁️", nil, 385, 50, nil, nil, 0x324650, 0x000000, 0, true)
1380
1381
  elseif tStorm == 148 then
1382
              tfm.exec.removePhysicObject(barreras)
1383
  tfm.exec.removePhysicObject(barreras-1)
1384
  tfm.exec.removePhysicObject(barreras-2)
1385
  tfm.exec.removePhysicObject(barreras-3)
1386
  ui.removeTextArea(-999,nil)
1387
  ui.removeTextArea(-998,nil)
1388
  ui.removeTextArea(-997,nil)
1389
  ui.removeTextArea(-996,nil)
1390
   end       
1391
  if tStorm == 95 then
1392
                for player, data in next, tfm.get.room.playerList do
1393
  ui.addTextArea(444, "<font color='#FFFFFF' size='20' face='Comic Sans MS'>"..translate(data.community, "aviso_tormentaUp").."", player, 200, 100, nil, nil, 0x00B8FF, 0xFFFFFF, 0, true)
1394
                end
1395
            
1396
  ui.addTextArea(443, "<p align='center'><font size='40' color='#D50DC4' face='Webdings'>n ", nil, 385, 60, nil, nil, 0x324650, 0x000000, 0, true)
1397
  ui.addTextArea(442, "<p align='center'><font size='25' color='#FFFFFF' face='Webdings'>~", nil, 392, 74, nil, nil, 0x324650, 0x000000, 0, true)
1398
  ui.addTextArea(441, "<p align='center'><font size='45' color='#FFFFFF' face='Arial'>☁️", nil, 385, 50, nil, nil, 0x324650, 0x000000, 0, true) 
1399
       elseif tStorm == 90 then
1400
  ui.removeTextArea(444,nil)
1401
  ui.removeTextArea(443,nil)
1402
  ui.removeTextArea(442,nil)   
1403
            ui.removeTextArea(441,nil)  
1404
  end
1405
  end
1406
    
1407
  -------------------------------------- COMMANDS -----------------------------------
1408
1409
  function eventChatCommand(name, command)
1410
  args = {}
1411
  for arg in command:gmatch ("[^%s]+") do
1412
  table.insert (args, arg)
1413
  end
1414
1415
  if command == "n" and isAdmin(name) and gameMode <=2 then
1416
  startGame()
1417
            elseif command == "n" and isAdmin(name) and gameMode >= 3 then
1418
            gameMode = 0
1419
            startGame()
1420
end
1421
        
1422
        if command == "info" then
1423
            
1424
1425
  ui.addTextArea(30100, "<font size='15' color='#FFFFFF'><a href='event:options'>≡", name, 6, 23, 16, 22, 0x00000f, 0x00000f, 0.3, true)
1426
  ui.removeTextArea(30102,name)
1427
ui.addTextArea(30020, ""..translate(tfm.get.room.playerList[name].community, "informacion_informacion_contenido").."", name, 208, 141, 409, 243, 0x00000f, 0x000000, 0.6, true)
1428
ui.addTextArea(30021, "<p align='center'><font size='22'><font color='#FFF504' face='Comic Sans MS'>"..translate(tfm.get.room.playerList[name].community, "informacion_encabezado").."", name, 268, 89, 287, 31, 0x00000f, 0x000000, 0.6, true)
1429
ui.addTextArea(30037, "<font size='19' color='#FF1E1E'><b><a href='event:closeInfo'>X", name, 568, 92, 22, 24, 0x324650, 0x000000, 0, true)
1430
ui.addTextArea(30022, "<p align='center'><a href='event:info'><font color='#FFF504'>"..translate(tfm.get.room.playerList[name].community, "informacion_cb_informacion").."</font></a> | <a href='event:infoControles'>"..translate(tfm.get.room.playerList[name].community, "informacion_cb_controles").."</a> | <a href='event:infoReglas'>"..translate(tfm.get.room.playerList[name].community, "informacion_cb_reglas").."</a> | <a href='event:infoStaff'>"..translate(tfm.get.room.playerList[name].community, "informacion_cb_staff").."</a>", name, 280, 137, 272, 20, 0x00000f, 0x000000, 0, true)  
1431
            end
1432
        
1433
            
1434
  if command:sub(1,1) == "p" and isAdmin(name) or isMod(name)  then
1435
  tfm.exec.chatMessage ("<font color='#A4CBDC'>• <VI>[#fortmice]:</font> <font color='#BABD2F'>"..command:sub(3).."",nil)
1436
  end
1437
1438
1439
1440
  if args[1] == "ban" and tfm.get.room.playerList[args[2]] then
1441
   if isAdmin (name) or isMod(name) then
1442
    if isBanned(args[2]) then
1443
  else
1444
1445
  table.insert (banlist, args[2])
1446
  tfm.exec.killPlayer(args[2]);
1447
  tfm.exec.chatMessage("<font color='#A4CBDC'>• <font color='#C2C2DA'>"..args[2].."</font><font color='#F01C1C'> SE HA PORTADO MAL!",name)
1448
1449
1450
   end
1451
    end
1452
  end
1453
1454
  if args[1] == "getwins" and tfm.get.room.playerList[args[2]] then
1455
  if isAdmin(name) then
1456
1457
  mice[args[2]].victorias = args[3]
1458
  savePlayerData(args[2])
1459
  end
1460
  end
1461
1462
  if args[1] == "desban" and tfm.get.room.playerList[args[2]] then
1463
   if isAdmin (name) or isMod(name) then
1464
    if not isBanned(args[2]) then
1465
  else
1466
   for i,bannedName in pairs(banlist) do
1467
    if args[2] == bannedName then
1468
      table.remove (banlist, i)
1469
  tfm.exec.chatMessage("<font color='#A4CBDC'>• <font color='#C2C2DA'>"..args[2].."</font><font color='#E88888'> HA RECIBIDO UNA OPORTUNIDAD!",name)
1470
  break
1471
    end
1472
  end
1473
    end
1474
    end
1475
  end
1476
1477
1478
  end
1479
1480
  --------------------------------- WEAPON SCRIPT -----------------------------------
1481
1482
1483
  function initPlayer(name)
1484
      players[name] = {ammo = 0}
1485
          if name and mice[name] then
1486
      ui.addTextArea(0, "", name, 10, 372, mice[name].ammo * 15, 20, 0x00000F, 0x000000, 0.6,true)
1487
      system.bindMouse(name, true)
1488
          end
1489
  end
1490
1491
1492
1493
1494
  function eventMouse(name, x, y)
1495
      local player = players[name]
1496
      if player and player.ammo > 0  and tfm.get.room.playerList[name].isDead==false then
1497
          -- remove one ammo
1498
          ui.removeTextArea(player.ammo * 2 - 1, name)
1499
          ui.removeTextArea(player.ammo * 2, name)
1500
          player.ammo = player.ammo - 1
1501
1502
          local roomPlayer = tfm.get.room.playerList[name]
1503
1504
1505
          local dx = x - roomPlayer.x
1506
          local dy = y - roomPlayer.y
1507
          local angle = math.atan2(dy, dx)
1508
1509
          local vx = math.cos(angle)
1510
          local vy = math.sin(angle)
1511
1512
1513
1514
   ----------------- Arma dependiendo del cofre ----------------------
1515
1516
1517
1518
1519
  if mice[name].flechasDefault == 1 and mice[name].canShoot then
1520
  queue.insert(objects, tfm.exec.addShamanObject(35, roomPlayer.x + 20 * vx, roomPlayer.y + 20 * vy, angle*180/math.pi, mice[name].force * vx, mice[name].force * vy, false))
1521
  end
1522
  if mice[name].cofre101102Bombas == 1 and mice[name].canShoot then
1523
  queue.insert(objects, tfm.exec.addShamanObject(23, roomPlayer.x + 20 * vx, roomPlayer.y + 20 * vy, angle*180/math.pi, mice[name].force * vx, mice[name].force * vy, false))
1524
  end
1525
1526
  if mice[name].cofre108Sniper == 1 and mice[name].canShoot then
1527
  queue.insert(objects, tfm.exec.addShamanObject(60, roomPlayer.x + 20 * vx, roomPlayer.y + 20 * vy, angle*180/math.pi, mice[name].force * vx, mice[name].force * vy, false))
1528
1529
  queue.insert(objects, tfm.exec.addShamanObject(60, roomPlayer.x + 20 * vx, roomPlayer.y + 60 * vy, angle*180/math.pi, mice[name].force * vx, mice[name].force * vy, false))
1530
1531
1532
  end
1533
1534
  if mice[name].cofre103104Lapidas == 1 and mice[name].canShoot then
1535
  queue.insert(objects, tfm.exec.addShamanObject(90, roomPlayer.x + 20 * vx, roomPlayer.y + 20 * vy, angle*180/math.pi, mice[name].force * vx, mice[name].force * vy, false))
1536
  end
1537
1538
  if mice[name].cofre112113Cajas == 1 and mice[name].canShoot then
1539
  queue.insert(objects, tfm.exec.addShamanObject(110, roomPlayer.x + 20 * vx, roomPlayer.y + 20 * vy, angle*180/math.pi, mice[name].force * vx, mice[name].force * vy, false))
1540
  end
1541
1542
  if mice[name].cofre116117MinigunNevada == 1 and mice[name].canShoot then
1543
  queue.insert(objects, tfm.exec.addShamanObject(34, roomPlayer.x + 20 * vx, roomPlayer.y + 20 * vy, angle*180/math.pi, mice[name].force * vx, mice[name].force * vy, false))
1544
  queue.insert(objects, tfm.exec.addShamanObject(34, roomPlayer.x + 20 * vx, roomPlayer.y + 20 * vy, angle*180/math.pi, mice[name].force * vx, mice[name].force * vy, false))
1545
  queue.insert(objects, tfm.exec.addShamanObject(34, roomPlayer.x + 20 * vx, roomPlayer.y + 20 * vy, angle*180/math.pi, mice[name].force * vx, mice[name].force * vy, false))
1546
  queue.insert(objects, tfm.exec.addShamanObject(34, roomPlayer.x + 20 * vx, roomPlayer.y + 20 * vy, angle*180/math.pi, mice[name].force * vx, mice[name].force * vy, false))
1547
  end
1548
1549
1550
1551
  if mice[name].trampas >0 and mice[name].cofre110111Trampa == 1 and mice[name].trampasOn == 1 and tfm.get.room.playerList[name].isDead==false then
1552
1553
  mice[name].trampasOn = 0
1554
  mice[name].trampas = mice[name].trampas - 1
1555
  ui.addTextArea(-9999, "<p align='center'><font size='16'><font color='#FFF500' face='Comic Sans MS'>Traps:</font> "..mice[name].trampas.."/4 </font>",name, 310, 372, 178, 25, 0x00000F, 0x000000, 0.5, true)
1556
1557
1558
  globalPlataformas = globalPlataformas + 4
1559
1560
  tfm.exec.addPhysicObject(globalPlataformas, x, y+40, _trampaBase)
1561
   tfm.exec.addPhysicObject(globalPlataformas-1, x-28, y-10, _trampalado1)
1562
    tfm.exec.addPhysicObject(globalPlataformas-2, x+28, y-10, _trampalado2)
1563
     tfm.exec.addPhysicObject(globalPlataformas-3, x, y+5, _trampaSpiderWeb)
1564
  
1565
1566
1567
  table.insert(toDespawn,{os.time(),globalPlataformas})
1568
    table.insert(toDespawn,{os.time(),globalPlataformas-1})
1569
      table.insert(toDespawn,{os.time(),globalPlataformas-2})
1570
      table.insert(toDespawn,{os.time(),globalPlataformas-3})
1571
  playerz[name].timestamp=os.time()
1572
1573
  end
1574
          local recoil = -vx * settings.recoil
1575
1576
          if recoil <= -1 or recoil >= 1 then
1577
              tfm.exec.movePlayer(name, 0, 0, true, recoil, 0, true)
1578
          end
1579
1580
1581
          if objects.size > settings.maxObjects then
1582
              tfm.exec.removeObject(queue.remove(objects))
1583
          end
1584
      end
1585
  end
1586
1587
1588
  function ammo()
1589
      for name, player in pairs(players) do
1590
          local ammo = player.ammo
1591
          if name and mice[name] then
1592
          if ammo < mice[name].ammo then
1593
              -- add one ammo
1594
              player.ammo = ammo + 1
1595
              ui.addTextArea(ammo * 2 + 1, "", name, 14 + ammo * 15, 380, 3, 3, 0xFFF504, 0x990000, 1,true)
1596
          end
1597
  end
1598
      end
1599
  end
1600
1601
  playerz = {}
1602
1603
1604
  queue = {}
1605
  function queue.new()
1606
      return {
1607
          tail = nil,
1608
          head = nil,
1609
          size = 0
1610
      }
1611
  end
1612
  function queue.insert(self, v)
1613
      local i = {
1614
          value = v,
1615
          next = nil
1616
      }
1617
      if self.tail and self.head then
1618
          self.tail.next = i
1619
      else
1620
          self.head = i
1621
      end
1622
      self.tail = i
1623
      self.size = self.size + 1
1624
  end
1625
  function queue.peek(self)
1626
      if self.head then
1627
          return self.head.value
1628
      else
1629
          error("queue is empty")
1630
      end
1631
  end
1632
  function queue.remove(self)
1633
      local r = queue.peek(self)
1634
      self.head = self.head.next
1635
      if not self.head then
1636
          tail = nil
1637
      end
1638
      self.size = self.size - 1
1639
      return r
1640
  end
1641
1642
1643
1644
  ------------------------------ PLATAFORMAS SCRIPT -----------------------------------
1645
1646
  function eventKeyboard(name, key, down, px, py)
1647
1648
  if mice[name].asignandoKey ==  1 then
1649
  mice[name].key_suelo = key
1650
  i = key
1651
  mice[name].txt_key_suelo = keyz[i]
1652
  ui.addTextArea(22, "<b>"..mice[name].txt_key_suelo.."", name, 11, 320, 14, 15, 0x00000F, 0x000000, 0.5, true)
1653
  ui.addTextArea(30032, ""..mice[name].txt_key_suelo.."", name, 371, 182, 18, 18, 0x324650, 0x000000, 1, true)
1654
  ui.removeTextArea(301,name)
1655
  ui.removeTextArea(302,name)
1656
  ui.removeTextArea(303,name)
1657
  ui.removeTextArea(304,name)
1658
  ui.removeTextArea(305,name)
1659
  ui.removeTextArea(306,name)
1660
  ui.removeTextArea(310,name)
1661
  mice[name].asignandoKey = 0
1662
  mice[name].tWaitingKey = 20
1663
  tfm.exec.chatMessage("<font color='#FFFFFF'>"..translate(tfm.get.room.playerList[name].community, "cambiosGuardados").."</font>",name)
1664
  savePlayerData(name)
1665
  end
1666
1667
  if mice[name].asignandoKey ==  2 then
1668
  mice[name].key_rampa = key
1669
  i = key
1670
  mice[name].txt_key_rampa = keyz[i]
1671
  ui.addTextArea(23, "<b>"..mice[name].txt_key_rampa.."", name, 40, 320, 14, 15, 0x00000F, 0x000000, 0.5, true)
1672
  ui.addTextArea(30033, ""..mice[name].txt_key_rampa.."", name, 371, 223, 19, 19, 0x324650, 0x000000, 1, true)
1673
  ui.removeTextArea(301,name)
1674
  ui.removeTextArea(302,name)
1675
  ui.removeTextArea(303,name)
1676
  ui.removeTextArea(304,name)
1677
  ui.removeTextArea(305,name)
1678
  ui.removeTextArea(306,name)
1679
  ui.removeTextArea(310,name)
1680
  mice[name].asignandoKey = 0
1681
  mice[name].tWaitingKey = 20
1682
tfm.exec.chatMessage("<font color='#FFFFFF'>"..translate(tfm.get.room.playerList[name].community, "cambiosGuardados").."</font>",name)
1683
  savePlayerData(name)
1684
  end
1685
1686
  if mice[name].asignandoKey ==  3 then
1687
  mice[name].key_recarga = key
1688
  i = key
1689
  mice[name].txt_key_recarga = keyz[i]
1690
  ui.addTextArea(30035, ""..mice[name].txt_key_recarga.."", name, 371, 304, 19, 19, 0x324650, 0x000000, 1, true)
1691
  ui.removeTextArea(301,name)
1692
  ui.removeTextArea(302,name)
1693
  ui.removeTextArea(303,name)
1694
  ui.removeTextArea(304,name)
1695
  ui.removeTextArea(305,name)
1696
  ui.removeTextArea(306,name)
1697
  ui.removeTextArea(310,name)
1698
  mice[name].asignandoKey = 0
1699
  mice[name].tWaitingKey = 20
1700
tfm.exec.chatMessage("<font color='#FFFFFF'>"..translate(tfm.get.room.playerList[name].community, "cambiosGuardados").."</font>",name)
1701
  savePlayerData(name)
1702
  end
1703
1704
1705
  if mice[name].asignandoKey ==  4 then
1706
1707
  mice[name].key_rescate = key
1708
  i = key
1709
  mice[name].txt_key_rescate = keyz[i]
1710
  ui.addTextArea(28, "<b>"..mice[name].txt_key_rescate.."", name, 70, 320, 14, 15, 0x00000F, 0x000000, 0.5, true)
1711
  ui.addTextArea(30034, ""..mice[name].txt_key_rescate.."", name, 371, 265, 19, 19, 0x324650, 0x000000, 1, true)
1712
  ui.removeTextArea(301,name)
1713
  ui.removeTextArea(302,name)
1714
  ui.removeTextArea(303,name)
1715
  ui.removeTextArea(304,name)
1716
  ui.removeTextArea(305,name)
1717
  ui.removeTextArea(306,name)
1718
  ui.removeTextArea(310,name)
1719
  mice[name].asignandoKey = 0
1720
  mice[name].tWaitingKey = 20
1721
tfm.exec.chatMessage("<font color='#FFFFFF'>"..translate(tfm.get.room.playerList[name].community, "cambiosGuardados").."</font>",name)
1722
  savePlayerData(name)
1723
  end
1724
        
1725
  if mice[name].asignandoKey ==  5 then
1726
1727
  mice[name].key_consumible = key
1728
  i = key
1729
  mice[name].txt_key_consumible= keyz[i]
1730
  ui.addTextArea(30036, ""..mice[name].txt_key_consumible.."", name, 371, 343, nil, 20, 0x324650, 0x000000, 1, true)
1731
  ui.removeTextArea(301,name)
1732
  ui.removeTextArea(302,name)
1733
  ui.removeTextArea(303,name)
1734
  ui.removeTextArea(304,name)
1735
  ui.removeTextArea(305,name)
1736
  ui.removeTextArea(306,name)
1737
  ui.removeTextArea(310,name)
1738
  mice[name].asignandoKey = 0
1739
  mice[name].tWaitingKey = 20
1740
tfm.exec.chatMessage("<font color='#FFFFFF'>"..translate(tfm.get.room.playerList[name].community, "cambiosGuardados").."</font>",name)
1741
  savePlayerData(name)
1742
  end
1743
1744
1745
  if key == _left then
1746
      facingLeft[name] = false
1747
  end
1748
    if key == _right then
1749
      facingLeft[name] = true
1750
  end
1751
1752
  if key == mice[name].key_rampa and mice[name].plataformas >0 and tfm.get.room.playerList[name].isDead==false then
1753
  if facingLeft[name] then
1754
  globalPlataformas = globalPlataformas + 1
1755
  mice[name].plataformas = mice[name].plataformas - 1
1756
  ui.addTextArea(24, "<font size='15' color='#FFFFFF'>"..mice[name].plataformas.."/12", name, 90, 318, nil, 20, 0x324650, 0x000000, 0, true)
1757
1758
  tfm.exec.addPhysicObject(globalPlataformas, px + 75, py-20, _rampaDerecha)
1759
       table.insert(toDespawn,{os.time(),globalPlataformas})
1760
       playerz[name].timestamp=os.time()
1761
  else
1762
  globalPlataformas = globalPlataformas + 1
1763
  mice[name].plataformas = mice[name].plataformas - 1
1764
  ui.addTextArea(24, "<font size='15' color='#FFFFFF'>"..mice[name].plataformas.."/12", name, 90, 318, nil, 20, 0x324650, 0x000000, 0, true)
1765
1766
  tfm.exec.addPhysicObject(globalPlataformas, px - 75, py-20, _rampaIzquierda)
1767
1768
   table.insert(toDespawn,{os.time(),globalPlataformas})
1769
       playerz[name].timestamp=os.time()
1770
  end
1771
  end
1772
1773
1774
  if key == mice[name].key_suelo and mice[name].plataformas >0 and tfm.get.room.playerList[name].isDead==false then
1775
   if facingLeft[name] then
1776
  globalPlataformas = globalPlataformas + 1
1777
    mice[name].plataformas = mice[name].plataformas - 1
1778
  ui.addTextArea(24, "<font size='15' color='#FFFFFF'>"..mice[name].plataformas.."/12", name, 90, 318, nil, 20, 0x324650, 0x000000, 0, true)
1779
1780
  tfm.exec.addPhysicObject(globalPlataformas, px + 41, py+ 20, _Suelo)
1781
       table.insert(toDespawn,{os.time(),globalPlataformas})
1782
       playerz[name].timestamp=os.time()
1783
1784
  else
1785
  globalPlataformas = globalPlataformas + 1
1786
    mice[name].plataformas = mice[name].plataformas - 1
1787
  ui.addTextArea(24, "<font size='15' color='#FFFFFF'>"..mice[name].plataformas.."/12", name, 90, 318, nil, 20, 0x324650, 0x000000, 0, true)
1788
1789
  tfm.exec.addPhysicObject(globalPlataformas, px - 41, py+ 20, _Suelo)
1790
       table.insert(toDespawn,{os.time(),globalPlataformas})
1791
       playerz[name].timestamp=os.time()
1792
  end
1793
  end
1794
1795
1796
  if key == mice[name].key_recarga  and mice[name].reloadPlataformas <=24 and mice[name].plataformas <=11 and tfm.get.room.playerList[name].isDead==false then
1797
  mice[name].reloadPlataformas = mice[name].reloadPlataformas + 1
1798
  ui.addTextArea(25, "<b>"..mice[name].txt_key_recarga.."", name, 145, 320, 14, 17, 0x00000F, 0x000000, 0.5, true)
1799
  ui.addTextArea(26, "<font size='15' color='#FFFFFF'>"..translate(tfm.get.room.playerList[name].community, "hud_recarga").." "..mice[name].reloadPlataformas.."/25", name, 164, 318, nil, 25, 0x324650, 0x000000, 0, true)
1800
1801
  end
1802
  if mice[name].reloadPlataformas ==25  then
1803
  mice[name].plataformas = 12
1804
  mice[name].reloadPlataformas = 0
1805
  ui.addTextArea(24, "<font size='15' color='#FFFFFF'>"..mice[name].plataformas.."/12", name, 90, 318, nil, 20, 0x324650, 0x000000, 0, true)
1806
  ui.removeTextArea(25,name)
1807
  ui.removeTextArea(26,name)
1808
  end
1809
  if mice[name].plataformas ==0 then
1810
  ui.addTextArea(25, "<b>"..mice[name].txt_key_recarga.."", name, 144, 320, 14, 17, 0x00000F, 0x000000, 0.5, true)
1811
1812
  ui.addTextArea(26, "<font size='15' color='#FFFFFF'>"..translate(tfm.get.room.playerList[name].community, "hud_recarga").." "..mice[name].reloadPlataformas.."/25", name, 164, 318, nil, 25, 0x324650, 0x000000, 0, true)
1813
  end
1814
1815
  if key == mice[name].key_rescate and mice[name].plataformas >0 and tfm.get.room.playerList[name].isDead==false then
1816
1817
  globalPlataformas = globalPlataformas + 1
1818
    mice[name].plataformas = mice[name].plataformas - 1
1819
  ui.addTextArea(24, "<font size='15' color='#FFFFFF'>"..mice[name].plataformas.."/12", name, 90, 318, nil, 20, 0x324650, 0x000000, 0, true)
1820
1821
  tfm.exec.addPhysicObject(globalPlataformas, px + 1, py+ 130, _rescate)
1822
       table.insert(toDespawn,{os.time(),globalPlataformas})
1823
       playerz[name].timestamp=os.time()
1824
  end
1825
1826
1827
  if key == mice[name].key_consumible and mice[name].cofre105106Impulsador == 1  and mice[name].tImpulsador == 0 and tfm.get.room.playerList[name].isDead==false then
1828
  if facingLeft[name] then
1829
  tfm.exec.addShamanObject (24,px,py+10,0,100,-200,false)
1830
  tfm.exec.movePlayer(name, 0, 10, true, 90, -155, true)
1831
  mice[name].tImpulsador = 8
1832
  else
1833
  tfm.exec.addShamanObject (24,px,py+10,0,100,-200,false)
1834
  tfm.exec.movePlayer(name, 0, 10, true, -90, -155, true)
1835
  mice[name].tImpulsador = 8
1836
  end
1837
  end
1838
1839
  if key == mice[name].key_consumible and mice[name].cofre110111Trampa == 1 and mice[name].trampasOn == 0 and mice[name].trampas >0 and tfm.get.room.playerList[name].isDead == false then
1840
         mice[name].trampasOn = 1
1841
            ui.addTextArea(-9999, "<p align='center'><font size='16'><font color='#FFF500' face='Comic Sans MS'>Traps:</font> Activate!</font>",name, 310, 372, 178, 25, 0x00000F, 0x000000, 0.5, true)  
1842
            elseif key == mice[name].key_consumible and mice[name].cofre110111Trampa == 1 and mice[name].trampasOn == 1 and tfm.get.room.playerList[name].isDead == false then
1843
            mice[name].trampasOn = 0
1844
              ui.addTextArea(-9999, "<p align='center'><font size='16'><font color='#FFF500' face='Comic Sans MS'>Traps:</font> "..mice[name].trampas.."/4 </font>",name, 310, 372, 178, 25, 0x00000F, 0x000000, 0.5, true)
1845
            
1846
            end
1847
1848
  if key == mice[name].key_consumible and mice[name].lanzaderas > 0 and mice[name].cofre114115Lanzaderas == 1 and tfm.get.room.playerList[name].isDead==false then
1849
   mice[name].lanzaderas = mice[name].lanzaderas - 1
1850
1851
  ui.addTextArea(-9999, "<p align='center'><font size='16'><font color='#FFF500' face='Comic Sans MS'>Launch Pads:</font> "..mice[name].lanzaderas.."/6",name, 310, 372, 178, 25, 0x00000F, 0x000000, 0.5, true)
1852
  globalPlataformas = globalPlataformas + 3
1853
1854
  tfm.exec.movePlayer(name, 0, -20, true, 0, 0, true)
1855
  tfm.exec.addPhysicObject(globalPlataformas, px + 40, py+ 10, _lanzaderaRight)
1856
  tfm.exec.addPhysicObject(globalPlataformas-1, px + -30, py+ 10, _lanzaderaLeft)
1857
  tfm.exec.addPhysicObject(globalPlataformas-2, px + 5, py+ -5, _lanzaderaCentro)
1858
1859
   table.insert(toDespawn,{os.time(),globalPlataformas})
1860
   table.insert(toDespawn,{os.time(),globalPlataformas-1})
1861
   table.insert(toDespawn,{os.time(),globalPlataformas-2})
1862
1863
       playerz[name].timestamp=os.time()
1864
1865
     end
1866
        
1867
             
1868
  if mice[name].plataformas <=3 then
1869
  ui.addTextArea(24, "<font size='15' color='#FFF504'><b>"..mice[name].plataformas.."/12", name, 90, 318, nil, 20, 0x324650, 0x000000, 0, true)
1870
1871
  end
1872
  if mice[name].plataformas <=0 then
1873
  ui.addTextArea(24, "<font size='15' color='#FF0000'><b>"..mice[name].plataformas.."/12", name, 90, 318, nil, 20, 0x324650, 0x000000, 0, true)
1874
  end
1875
        
1876
  end
1877
  -------------------------- CALLBACKS -----------------------------
1878
1879
  function eventTextAreaCallback(id, name, cb)
1880
  local player = players[name]
1881
1882
  if id == 101 and tfm.get.room.playerList[name].isDead==false then
1883
    for n, data in next, tfm.get.room.playerList do
1884
      for i, coords in next, textareaCoords do
1885
1886
        if data.x+100 > coords.x+100 and data.x+100 < coords.x+100 + SETTINGS.textareaSize+100 and data.y+100 > coords.y+100 and data.y+100 < coords.y+100 + SETTINGS.textareaSize+100 then
1887
          mice[name].cofre101102Bombas= 1
1888
  mice[name].flechasDefault = 0
1889
  mice[name].ammo = 5
1890
          initPlayer(name)
1891
      ui.addTextArea(0, "", name, 10, 372, mice[name].ammo * 15, 20, 0x00000F, 0x000000, 0.6,true)
1892
1893
   for chest=101,SETTINGS.textareaAmount+100 do
1894
    ui.removeTextArea(chest, name)
1895
   end
1896
1897
  ui.removeTextArea(101,nil)
1898
1899
   for ammo=1,15 do
1900
    ui.removeTextArea(ammo, name)
1901
   end
1902
1903
1904
1905
  ui.addTextArea(-9999, "<p align='center'><font size='16'><font color='#FFF500' face='Comic Sans MS'>"..translate(tfm.get.room.playerList[name].community, "hud_cofre_bombas").."</font>",name, 325, 372, 140, 25, 0x00000F, 0x000000, 0.5, true)
1906
          break
1907
        end
1908
      end
1909
    end
1910
  end
1911
1912
  if id == 102 and tfm.get.room.playerList[name].isDead==false then
1913
    for n, data in next, tfm.get.room.playerList do
1914
      for i, coords in next, textareaCoords do
1915
1916
        if data.x+100 > coords.x+100 and data.x+100 < coords.x+100 + SETTINGS.textareaSize+100 and data.y+100 > coords.y+100 and data.y+100 < coords.y+100 + SETTINGS.textareaSize+100 then
1917
          mice[name].cofre101102Bombas = 1
1918
  mice[name].flechasDefault = 0
1919
  mice[name].ammo = 5
1920
          initPlayer(name)
1921
      ui.addTextArea(0, "", name, 10, 372, mice[name].ammo * 15, 20, 0x00000F, 0x000000, 0.6,true)
1922
1923
   for chest=101,SETTINGS.textareaAmount+100 do
1924
    ui.removeTextArea(chest, name)
1925
   end
1926
  ui.removeTextArea(102,nil)
1927
   for ammo=1,15 do
1928
    ui.removeTextArea(ammo, name)
1929
   end
1930
  ui.addTextArea(-9999, "<p align='center'><font size='16'><font color='#FFF500' face='Comic Sans MS'>"..translate(tfm.get.room.playerList[name].community, "hud_cofre_bombas").."</font>",name, 325, 372, 140, 25, 0x00000F, 0x000000, 0.5, true)
1931
1932
          break
1933
        end
1934
      end
1935
    end
1936
  end
1937
1938
  if id == 103 and tfm.get.room.playerList[name].isDead==false then
1939
    for n, data in next, tfm.get.room.playerList do
1940
      for i, coords in next, textareaCoords do
1941
1942
        if data.x+100 > coords.x+100 and data.x+100 < coords.x+100 + SETTINGS.textareaSize+100 and data.y+100 > coords.y+100 and data.y+100 < coords.y+100 + SETTINGS.textareaSize+100 then
1943
          mice[name].cofre103104Lapidas = 1
1944
  mice[name].flechasDefault = 0
1945
1946
  mice[name].ammo = 2
1947
  mice[name].force = 32
1948
          initPlayer(name)
1949
      ui.addTextArea(0, "", name, 10, 372, mice[name].ammo * 15, 20, 0x00000F, 0x000000, 0.6,true)
1950
1951
   for chest=101,SETTINGS.textareaAmount+100 do
1952
    ui.removeTextArea(chest, name)
1953
   end
1954
  ui.removeTextArea(103,nil)
1955
   for ammo=1,15 do
1956
    ui.removeTextArea(ammo, name)
1957
   end
1958
1959
  ui.addTextArea(-9999, "<p align='center'><font size='16'><font color='#FFF500' face='Comic Sans MS'>"..translate(tfm.get.room.playerList[name].community, "hud_cofre_lapidas").."</font>",name, 325, 372, 140, 25, 0x00000F, 0x000000, 0.5, true)
1960
1961
          break
1962
        end
1963
      end
1964
    end
1965
  end
1966
1967
  if id == 104 and tfm.get.room.playerList[name].isDead==false then
1968
    for n, data in next, tfm.get.room.playerList do
1969
      for i, coords in next, textareaCoords do
1970
1971
        if data.x+100 > coords.x+100 and data.x+100 < coords.x+100 + SETTINGS.textareaSize+100 and data.y+100 > coords.y+100 and data.y+100 < coords.y+100 + SETTINGS.textareaSize+100 then
1972
          mice[name].cofre103104Lapidas = 1
1973
  mice[name].flechasDefault = 0
1974
1975
  mice[name].ammo = 2
1976
  mice[name].force = 32
1977
          initPlayer(name)
1978
1979
      ui.addTextArea(0, "", name, 10, 372, mice[name].ammo * 15, 20, 0x00000F, 0x000000, 0.6,true)
1980
1981
   for chest=101,SETTINGS.textareaAmount+100 do
1982
    ui.removeTextArea(chest, name)
1983
   end
1984
  ui.removeTextArea(104,nil)
1985
   for ammo=1,15 do
1986
    ui.removeTextArea(ammo, name)
1987
   end
1988
  ui.addTextArea(-9999, "<p align='center'><font size='16'><font color='#FFF500' face='Comic Sans MS'>"..translate(tfm.get.room.playerList[name].community, "hud_cofre_lapidas").."</font>",name, 325, 372, 140, 25, 0x00000F, 0x000000, 0.5, true)
1989
1990
          break
1991
        end
1992
      end
1993
    end
1994
  end
1995
1996
1997
  if id == 105 and tfm.get.room.playerList[name].isDead==false then
1998
    for n, data in next, tfm.get.room.playerList do
1999
      for i, coords in next, textareaCoords do
2000
2001
        if data.x+100 > coords.x+100 and data.x+100 < coords.x+100 + SETTINGS.textareaSize+100 and data.y+100 > coords.y+100 and data.y+100 < coords.y+100 + SETTINGS.textareaSize+100 then
2002
2003
  mice[name].cofre105106Impulsador = 1
2004
  mice[name].tImpulsador = 1
2005
2006
   for chest=101,SETTINGS.textareaAmount+100 do
2007
    ui.removeTextArea(chest, name)
2008
   end
2009
  ui.removeTextArea(105,nil)
2010
  ui.addTextArea(-9999, "<p align='center'><font size='16'><font color='#FFF500' face='Comic Sans MS'>"..translate(tfm.get.room.playerList[name].community, "hud_cofre_impulsador").."</font>"..mice[name].tImpulsador.."",name, 325, 372, 140, 25, 0x00000F, 0x000000, 0.5, true)
2011
2012
          break
2013
        end
2014
      end
2015
    end
2016
  end
2017
2018
  if id == 106 and tfm.get.room.playerList[name].isDead==false then
2019
    for n, data in next, tfm.get.room.playerList do
2020
      for i, coords in next, textareaCoords do
2021
2022
        if data.x+100 > coords.x+100 and data.x+100 < coords.x+100 + SETTINGS.textareaSize+100 and data.y+100 > coords.y+100 and data.y+100 < coords.y+100 + SETTINGS.textareaSize+100 then
2023
2024
  mice[name].cofre105106Impulsador = 1
2025
  mice[name].tImpulsador = 1
2026
   for chest=101,SETTINGS.textareaAmount+100 do
2027
    ui.removeTextArea(chest, name)
2028
   end
2029
  ui.removeTextArea(106,nil)
2030
  ui.addTextArea(-9999, "<p align='center'><font size='16'><font color='#FFF500' face='Comic Sans MS'>"..translate(tfm.get.room.playerList[name].community, "hud_cofre_impulsador").."</font>"..mice[name].tImpulsador.."",name, 325, 372, 140, 25, 0x00000F, 0x000000, 0.5, true)
2031
2032
          break
2033
        end
2034
      end
2035
    end
2036
  end
2037
2038
2039
  if id == 107 and tfm.get.room.playerList[name].isDead==false then
2040
    for n, data in next, tfm.get.room.playerList do
2041
      for i, coords in next, textareaCoords do
2042
2043
        if data.x+100 > coords.x+100 and data.x+100 < coords.x+100 + SETTINGS.textareaSize+100 and data.y+100 > coords.y+100 and data.y+100 < coords.y+100 + SETTINGS.textareaSize+100 then
2044
2045
  mice[name].plataformas = 100
2046
  ui.removeTextArea(25,name)
2047
  ui.removeTextArea(26,name)
2048
  ui.addTextArea(24, "<font size='15' color='#FFFFFF'>100/12", name, 90, 318, nil, 20, 0x324650, 0x000000, 0, true)
2049
  mice[name].ammo = 6
2050
2051
          initPlayer(name)
2052
      ui.addTextArea(0, "", name, 10, 372, mice[name].ammo * 15, 20, 0x00000F, 0x000000, 0.6,true)
2053
2054
   for chest=101,SETTINGS.textareaAmount+100 do
2055
    ui.removeTextArea(chest, name)
2056
   end
2057
  ui.removeTextArea(107,nil)
2058
   for ammo=1,15 do
2059
    ui.removeTextArea(ammo, name)
2060
   end
2061
  ui.addTextArea(-9999, "<p align='center'><font size='16'><font color='#FFF500' face='Comic Sans MS'>"..translate(tfm.get.room.playerList[name].community, "hud_cofre_100plataformas").."</font>",name, 315, 372, 170, 25, 0x00000F, 0x000000, 0.5, true)
2062
2063
          break
2064
        end
2065
      end
2066
    end
2067
  end
2068
2069
2070
  if id == 108 and tfm.get.room.playerList[name].isDead==false then
2071
    for n, data in next, tfm.get.room.playerList do
2072
      for i, coords in next, textareaCoords do
2073
2074
        if data.x+100 > coords.x+100 and data.x+100 < coords.x+100 + SETTINGS.textareaSize+100 and data.y+100 > coords.y+100 and data.y+100 < coords.y+100 + SETTINGS.textareaSize+100 then
2075
  mice[name].cofre108Sniper = 1
2076
  mice[name].flechasDefault = 0
2077
  mice[name].ammo = 1
2078
  mice[name].force = 80
2079
2080
          initPlayer(name)
2081
2082
      ui.addTextArea(0, "", name, 10, 372, mice[name].ammo * 15, 20, 0x00000F, 0x000000, 0.6,true)
2083
   for chest=101,SETTINGS.textareaAmount+100 do
2084
    ui.removeTextArea(chest, name)
2085
   end
2086
  ui.removeTextArea(108,nil)
2087
   for ammo=1,15 do
2088
    ui.removeTextArea(ammo, name)
2089
   end
2090
  ui.addTextArea(-9999, "<p align='center'><font size='16'><font color='#FFF500' face='Comic Sans MS'>"..translate(tfm.get.room.playerList[name].community, "hud_cofre_sniper").."</font>",name, 300, 372, 210, 25, 0x00000F, 0x000000, 0.5, true)
2091
2092
          break
2093
        end
2094
      end
2095
    end
2096
  end
2097
2098
2099
2100
  if id == 109 and tfm.get.room.playerList[name].isDead==false then
2101
    for n, data in next, tfm.get.room.playerList do
2102
      for i, coords in next, textareaCoords do
2103
2104
        if data.x+100 > coords.x+100 and data.x+100 < coords.x+100 + SETTINGS.textareaSize+100 and data.y+100 > coords.y+100 and data.y+100 < coords.y+100 + SETTINGS.textareaSize+100 then
2105
  mice[name].plataformas = 100
2106
  mice[name].ammo = 6
2107
  ui.removeTextArea(25,name)
2108
  ui.removeTextArea(26,name)
2109
  ui.addTextArea(24, "<font size='15' color='#FFFFFF'>100/12", name, 90, 318, nil, 20, 0x324650, 0x000000, 0, true)
2110
2111
2112
          initPlayer(name)
2113
2114
      ui.addTextArea(0, "", name, 10, 372, mice[name].ammo * 15, 20, 0x00000F, 0x000000, 0.6,true)
2115
2116
2117
   for chest=101,SETTINGS.textareaAmount+100 do
2118
    ui.removeTextArea(chest, name)
2119
   end
2120
  ui.removeTextArea(109,nil)
2121
   for ammo=1,15 do
2122
    ui.removeTextArea(ammo, name)
2123
   end
2124
  ui.addTextArea(-9999, "<p align='center'><font size='16'><font color='#FFF500' face='Comic Sans MS'>"..translate(tfm.get.room.playerList[name].community, "hud_cofre_100plataformas").."</font>",name, 315, 372, 170, 25, 0x00000F, 0x000000, 0.5, true)
2125
2126
          break
2127
        end
2128
      end
2129
    end
2130
  end
2131
2132
  if id == 110 and tfm.get.room.playerList[name].isDead==false then
2133
    for n, data in next, tfm.get.room.playerList do
2134
      for i, coords in next, textareaCoords do
2135
2136
        if data.x+100 > coords.x+100 and data.x+100 < coords.x+100 + SETTINGS.textareaSize+100 and data.y+100 > coords.y+100 and data.y+100 < coords.y+100 + SETTINGS.textareaSize+100 then
2137
2138
2139
2140
  mice[name].cofre110111Trampa = 1
2141
2142
   for chest=101,SETTINGS.textareaAmount+100 do
2143
    ui.removeTextArea(chest, name)
2144
   end
2145
  ui.removeTextArea(110,nil)
2146
2147
  ui.addTextArea(-9999, "<p align='center'><font size='16'><font color='#FFF500' face='Comic Sans MS'>"..translate(tfm.get.room.playerList[name].community, "hud_cofre_trampas")..":</font> "..mice[name].trampas.."/4 </font>",name, 310, 372, 178, 25, 0x00000F, 0x000000, 0.5, true)
2148
          break
2149
        end
2150
      end
2151
    end
2152
  end
2153
2154
  if id == 111 and tfm.get.room.playerList[name].isDead==false then
2155
    for n, data in next, tfm.get.room.playerList do
2156
      for i, coords in next, textareaCoords do
2157
2158
        if data.x+100 > coords.x+100 and data.x+100 < coords.x+100 + SETTINGS.textareaSize+100 and data.y+100 > coords.y+100 and data.y+100 < coords.y+100 + SETTINGS.textareaSize+100 then
2159
2160
  mice[name].cofre110111Trampa = 1
2161
   for chest=101,SETTINGS.textareaAmount+100 do
2162
    ui.removeTextArea(chest, name)
2163
   end
2164
  ui.removeTextArea(111,nil)
2165
  ui.removeTextArea(9997,name)
2166
  ui.removeTextArea(9996,name)
2167
2168
  ui.addTextArea(-9999, "<p align='center'><font size='16'><font color='#FFF500' face='Comic Sans MS'>"..translate(tfm.get.room.playerList[name].community, "hud_cofre_trampas")..":</font> "..mice[name].trampas.."/4</font>",name, 310, 372, 178, 25, 0x00000F, 0x000000, 0.5, true)
2169
          break
2170
        end
2171
      end
2172
    end
2173
  end
2174
2175
  if id == 112 and tfm.get.room.playerList[name].isDead==false then
2176
    for n, data in next, tfm.get.room.playerList do
2177
      for i, coords in next, textareaCoords do
2178
2179
        if data.x+100 > coords.x+100 and data.x+100 < coords.x+100 + SETTINGS.textareaSize+100 and data.y+100 > coords.y+100 and data.y+100 < coords.y+100 + SETTINGS.textareaSize+100 then
2180
          mice[name].cofre112113Cajas = 1
2181
  mice[name].flechasDefault = 0
2182
2183
  mice[name].ammo = 5
2184
2185
          initPlayer(name)
2186
2187
      ui.addTextArea(0, "", name, 10, 372, mice[name].ammo * 15, 20, 0x00000F, 0x000000, 0.6,true)
2188
2189
   for chest=101,SETTINGS.textareaAmount+100 do
2190
    ui.removeTextArea(chest, name)
2191
   end
2192
  ui.removeTextArea(112,nil)
2193
   for ammo=1,15 do
2194
    ui.removeTextArea(ammo, name)
2195
   end
2196
  ui.addTextArea(-9999, "<p align='center'><font size='16'><font color='#FFF500' face='Comic Sans MS'>"..translate(tfm.get.room.playerList[name].community, "hud_cofre_cajas").."</font>",name, 325, 372, 140, 25, 0x00000F, 0x000000, 0.5, true)
2197
2198
          break
2199
        end
2200
      end
2201
    end
2202
  end
2203
2204
2205
  if id == 113 and tfm.get.room.playerList[name].isDead==false then
2206
    for n, data in next, tfm.get.room.playerList do
2207
      for i, coords in next, textareaCoords do
2208
2209
        if data.x+100 > coords.x+100 and data.x+100 < coords.x+100 + SETTINGS.textareaSize+100 and data.y+100 > coords.y+100 and data.y+100 < coords.y+100 + SETTINGS.textareaSize+100 then
2210
          mice[name].cofre112113Cajas = 1
2211
  mice[name].flechasDefault = 0
2212
  mice[name].ammo = 5
2213
2214
          initPlayer(name)
2215
2216
      ui.addTextArea(0, "", name, 10, 372, mice[name].ammo * 15, 20, 0x00000F, 0x000000, 0.6,true)
2217
2218
   for chest=101,SETTINGS.textareaAmount+100 do
2219
    ui.removeTextArea(chest, name)
2220
   end
2221
  ui.removeTextArea(113,nil)
2222
   for ammo=1,15 do
2223
    ui.removeTextArea(ammo, name)
2224
   end
2225
  ui.addTextArea(-9999, "<p align='center'><font size='16'><font color='#FFF500' face='Comic Sans MS'>"..translate(tfm.get.room.playerList[name].community, "hud_cofre_cajas").."</font>",name, 325, 372, 140, 25, 0x00000F, 0x000000, 0.5, true)
2226
2227
          break
2228
        end
2229
      end
2230
    end
2231
  end
2232
2233
2234
  if id == 114 and tfm.get.room.playerList[name].isDead==false then
2235
    for n, data in next, tfm.get.room.playerList do
2236
      for i, coords in next, textareaCoords do
2237
2238
        if data.x+100 > coords.x+100 and data.x+100 < coords.x+100 + SETTINGS.textareaSize+100 and data.y+100 > coords.y+100 and data.y+100 < coords.y+100 + SETTINGS.textareaSize+100 then
2239
  mice[name].cofre114115Lanzaderas = 1
2240
2241
   for chest=101,SETTINGS.textareaAmount+100 do
2242
    ui.removeTextArea(chest, name)
2243
   end
2244
  ui.removeTextArea(114,nil)
2245
2246
  ui.removeTextArea(9997,name)
2247
  ui.removeTextArea(9996,name)
2248
2249
  ui.addTextArea(-9999, "<p align='center'><font size='16'><font color='#FFF500' face='Comic Sans MS'>"..translate(tfm.get.room.playerList[name].community, "hud_cofre_lanzaderas")..":</font> "..mice[name].lanzaderas.."/6",name, 310, 372, 178, 25, 0x00000F, 0x000000, 0.5, true)
2250
          break
2251
        end
2252
      end
2253
    end
2254
  end
2255
2256
2257
  if id == 115 and tfm.get.room.playerList[name].isDead==false then
2258
    for n, data in next, tfm.get.room.playerList do
2259
      for i, coords in next, textareaCoords do
2260
2261
        if data.x+100 > coords.x+100 and data.x+100 < coords.x+100 + SETTINGS.textareaSize+100 and data.y+100 > coords.y+100 and data.y+100 < coords.y+100 + SETTINGS.textareaSize+100 then
2262
2263
  mice[name].cofre114115Lanzaderas = 1
2264
2265
2266
   for chest=101,SETTINGS.textareaAmount+100 do
2267
    ui.removeTextArea(chest, name)
2268
   end
2269
  ui.removeTextArea(115,nil)
2270
  ui.removeTextArea(9997,name)
2271
  ui.removeTextArea(9996,name)
2272
  ui.addTextArea(-9999, "<p align='center'><font size='16'><font color='#FFF500' face='Comic Sans MS'>"..translate(tfm.get.room.playerList[name].community, "hud_cofre_lanzaderas")..":</font> "..mice[name].lanzaderas.."/6",name, 310, 372, 178, 25, 0x00000F, 0x000000, 0.5, true)
2273
          break
2274
        end
2275
      end
2276
    end
2277
  end
2278
2279
  if id == 116 and tfm.get.room.playerList[name].isDead==false then
2280
    for n, data in next, tfm.get.room.playerList do
2281
      for i, coords in next, textareaCoords do
2282
2283
        if data.x+100 > coords.x+100 and data.x+100 < coords.x+100 + SETTINGS.textareaSize+100 and data.y+100 > coords.y+100 and data.y+100 < coords.y+100 + SETTINGS.textareaSize+100 then
2284
          mice[name].cofre116117MinigunNevada = 1
2285
  mice[name].flechasDefault = 0
2286
  mice[name].ammo = 6
2287
  mice[name].force = 90
2288
    initPlayer(name)
2289
2290
      ui.addTextArea(0, "", name, 10, 372, mice[name].ammo * 15, 20, 0x00000F, 0x000000, 0.6,true)
2291
2292
   for chest=101,SETTINGS.textareaAmount+100 do
2293
    ui.removeTextArea(chest, name)
2294
   end
2295
  ui.removeTextArea(116,nil)
2296
   for ammo=1,15 do
2297
    ui.removeTextArea(ammo, name)
2298
   end
2299
  ui.addTextArea(-9999, "<p align='center'><font size='16'><font color='#FFF500' face='Comic Sans MS'>"..translate(tfm.get.room.playerList[name].community, "hud_cofre_minigunnevada").."</font>",name, 325, 372, 140, 25, 0x00000F, 0x000000, 0.5, true)
2300
          break
2301
        end
2302
      end
2303
    end
2304
  end
2305
2306
2307
  if id == 117 and tfm.get.room.playerList[name].isDead==false then
2308
    for n, data in next, tfm.get.room.playerList do
2309
      for i, coords in next, textareaCoords do
2310
        if data.x+100 > coords.x+100 and data.x+100 < coords.x+100 + SETTINGS.textareaSize+100 and data.y+100 > coords.y+100 and data.y+100 < coords.y+100 + SETTINGS.textareaSize+100 then
2311
          mice[name].cofre116117MinigunNevada = 1
2312
  mice[name].flechasDefault = 0
2313
  mice[name].ammo = 6
2314
  mice[name].force = 90
2315
   initPlayer(name)
2316
2317
      ui.addTextArea(0, "", name, 10, 372, mice[name].ammo * 15, 20, 0x00000F, 0x000000, 0.6,true)
2318
2319
   for chest=101,SETTINGS.textareaAmount+100 do
2320
    ui.removeTextArea(chest, name)
2321
   end
2322
  ui.removeTextArea(117,nil)
2323
   for ammo=1,15 do
2324
    ui.removeTextArea(ammo, name)
2325
   end
2326
  ui.addTextArea(-9999, "<p align='center'><font size='16'><font color='#FFF500' face='Comic Sans MS'>"..translate(tfm.get.room.playerList[name].community, "hud_cofre_minigunnevada").."</font>",name, 325, 372, 140, 25, 0x00000F, 0x000000, 0.5, true)
2327
2328
          break
2329
        end
2330
      end
2331
    end
2332
  end
2333
2334
  if cb == "asignarX" then
2335
2336
  ui.addTextArea(301, "", name, 6, 6, 787, 389, 0x00000F, 0x000000, 0.9, true)
2337
  ui.addTextArea(302, "<p align='center'><font size='30'><font color='#FFF500' face='Comic Sans MS'>"..translate(tfm.get.room.playerList[name].community, "presioneAhora").."", name, 170, 138, 500, 100, 0x324650, 0x000000, 0, true)
2338
  mice[name].asignandoKey = 1
2339
2340
  ui.removeTextArea(303,name)
2341
  ui.removeTextArea(304,name)
2342
  ui.removeTextArea(305,name)
2343
  ui.removeTextArea(306,name)
2344
  end
2345
2346
  if cb == "asignarC" then
2347
2348
  ui.addTextArea(301, "", name, 6, 6, 787, 389, 0x00000F, 0x000000, 0.9, true)
2349
  ui.addTextArea(302, "<p align='center'><font size='30'><font color='#FFF500' face='Comic Sans MS'>"..translate(tfm.get.room.playerList[name].community, "presioneAhora").."", name, 170, 138, 500, 100, 0x324650, 0x000000, 0, true)
2350
  mice[name].asignandoKey = 2
2351
2352
2353
  ui.removeTextArea(303,name)
2354
  ui.removeTextArea(304,name)
2355
  ui.removeTextArea(305,name)
2356
  ui.removeTextArea(306,name)
2357
2358
  end
2359
2360
  if cb == "asignarQ" then
2361
2362
  ui.addTextArea(301, "", name, 6, 6, 787, 389, 0x00000F, 0x000000, 0.9, true)
2363
  ui.addTextArea(302, "<p align='center'><font size='30'><font color='#FFF500' face='Comic Sans MS'>"..translate(tfm.get.room.playerList[name].community, "presioneAhora").."", name, 170, 138, 500, 100, 0x324650, 0x000000, 0, true)
2364
  mice[name].asignandoKey = 3
2365
  ui.removeTextArea(303,name)
2366
  ui.removeTextArea(304,name)
2367
  ui.removeTextArea(305,name)
2368
  ui.removeTextArea(306,name)
2369
  end
2370
2371
2372
2373
  if cb == "asignarZ" then
2374
  ui.addTextArea(301, "", name, 6, 6, 787, 389, 0x00000F, 0x000000, 0.9, true)
2375
  ui.addTextArea(302, "<p align='center'><font size='30'><font color='#FFF500' face='Comic Sans MS'>"..translate(tfm.get.room.playerList[name].community, "presioneAhora").."", name, 170, 138, 500, 100, 0x324650, 0x000000, 0, true)
2376
  mice[name].asignandoKey = 4
2377
  ui.removeTextArea(303,name)
2378
  ui.removeTextArea(304,name)
2379
  ui.removeTextArea(305,name)
2380
  ui.removeTextArea(306,name)
2381
  end
2382
2383
  if cb == "asignarSpace" then
2384
  ui.addTextArea(301, "", name, 6, 6, 787, 389, 0x00000F, 0x000000, 0.9, true)
2385
  ui.addTextArea(302, "<p align='center'><font size='30'><font color='#FFF500' face='Comic Sans MS'>"..translate(tfm.get.room.playerList[name].community, "presioneAhora").."", name, 170, 138, 500, 100, 0x324650, 0x000000, 0, true)
2386
  mice[name].asignandoKey = 5
2387
  ui.removeTextArea(303,name)
2388
  ui.removeTextArea(304,name)
2389
  ui.removeTextArea(305,name)
2390
  ui.removeTextArea(306,name)
2391
  end
2392
2393
2394
  if cb == "reset" then
2395
  mice[name].key_rampa = 67
2396
  mice[name].key_suelo = 88
2397
  mice[name].key_recarga = 81
2398
  mice[name].key_rescate = 90
2399
  mice[name].key_consumible = 32
2400
  mice[name].txt_key_rampa = "C"
2401
  mice[name].txt_key_suelo = "X"
2402
  mice[name].txt_key_recarga = "Q"
2403
  mice[name].txt_key_rescate = "Z"
2404
  mice[name].txt_key_consumible = "space"
2405
  savePlayerData(name)
2406
  ui.addTextArea(22, "<b>"..mice[name].txt_key_suelo.."", name, 11, 320, 14, 15, 0x00000F, 0x000000, 0.5, true)
2407
  ui.addTextArea(23, "<b>"..mice[name].txt_key_rampa.."", name, 40, 320, 14, 15, 0x00000F, 0x000000, 0.5, true)
2408
  ui.addTextArea(28, "<b>"..mice[name].txt_key_rescate.."", name, 70, 320, 14, 15, 0x00000F, 0x000000, 0.5, true)
2409
2410
ui.addTextArea(30032, ""..mice[name].txt_key_suelo.."", name, 371, 182, 18, 18, 0x324650, 0x000000, 1, true)
2411
ui.addTextArea(30033, ""..mice[name].txt_key_rampa.."", name, 371, 223, 19, 19, 0x324650, 0x000000, 1, true)
2412
ui.addTextArea(30034, ""..mice[name].txt_key_rescate.."", name, 371, 265, 19, 19, 0x324650, 0x000000, 1, true)
2413
ui.addTextArea(30035, ""..mice[name].txt_key_recarga.."", name, 371, 304, 19, 19, 0x324650, 0x000000, 1, true)
2414
ui.addTextArea(30036, ""..mice[name].txt_key_consumible.."", name, 371, 343, nil, 20, 0x324650, 0x000000, 1, true)
2415
2416
  tfm.exec.chatMessage("<font color='#FFFFFF'>"..translate(tfm.get.room.playerList[name].community, "cambiosGuardados").."</font>",name)
2417
  end
2418
2419
  if cb == "options" then
2420
  ui.addTextArea(30102, "<font color='#FFFFFF'><a href='event:controles'><font color='#FFF504'>"..translate(tfm.get.room.playerList[name].community, "controles_boton").."</font></a> ≡ <a href='event:info'><font color='#FFF504'>"..translate(tfm.get.room.playerList[name].community, "informacion_boton").."</font></a> ≡ <a href='event:update'><font color='#FFF504'>"..translate(tfm.get.room.playerList[name].community, "noticias_boton").."</font></a>", name, 34, 26, 307, 18, 0x00000f, 0x00000f, 0.5, true)
2421
  ui.addTextArea(30100, "<font size='15' color='#FFF504'><a href='event:closeOptions'>≡", name, 6, 23, 16, 22, 0x00000f, 0x00000f, 0.3, true)
2422
2423
  end
2424
2425
  if cb == "closeOptions" then
2426
  ui.addTextArea(30100, "<font size='15' color='#FFFFFF'><a href='event:options'>≡", name, 6, 23, 16, 22, 0x00000f, 0x00000f, 0.3, true)
2427
  ui.removeTextArea(30102,name)
2428
  end
2429
2430
  if cb == "controles" then
2431
  ui.removeTextArea(30102,name)
2432
  ui.addTextArea(30100, "<font size='15' color='#FFFFFF'><a href='event:options'>≡", name, 6, 23, 16, 22, 0x00000f, 0x00000f, 0.3, true)
2433
ui.addTextArea(30020, "<p align='center'><font size='22'><font color='#FFF504' face='Comic Sans MS'>"..translate(tfm.get.room.playerList[name].community, "controles_encabezado").."", name, 268, 79, 287, 31, 0x00000f, 0x000000, 0.6, true)
2434
ui.addTextArea(30021, "<p align='center'><font size='11'>"..translate(tfm.get.room.playerList[name].community, "controles_aviso").."", name, 268, 130, 284, 260, 0x00000f, 0x000000, 0.6, true)
2435
ui.addTextArea(30022, "", name, 276, 181, 270, 20, 0x00000f, 0x000000, 0.5, true)
2436
ui.addTextArea(30023, "", name, 277, 222, 270, 20, 0x00000f, 0x000000, 0.5, true)
2437
ui.addTextArea(30024, "", name, 277, 263, 270, 20, 0x00000f, 0x000000, 0.5, true)
2438
ui.addTextArea(30025, "", name, 277, 303, 270, 20, 0x00000f, 0x000000, 0.5, true)
2439
ui.addTextArea(30026, "", name, 277, 343, 270, 20, 0x00000f, 0x000000, 0.5, true)
2440
ui.addTextArea(30027, "<p align='center'><font size='15' color='#FFFFFF'>"..translate(tfm.get.room.playerList[name].community, "suelo")..":", name, 266, 180, 72, 24, 0x00000f, 0x000000, 0, true)
2441
ui.addTextArea(30028, "<p align='center'><font size='15' color='#FFFFFF'> "..translate(tfm.get.room.playerList[name].community, "rampa")..":", name, 266, 221, 72, 31, 0x00000f, 0x000000, 0, true)
2442
ui.addTextArea(30029, "<p align='center'><font size='15' color='#FFFFFF'>"..translate(tfm.get.room.playerList[name].community, "recarga")..":", name, 266, 302, 80, 22, 0x00000f, 0x000000, 0, true)
2443
ui.addTextArea(30030, "<p align='center'><font size='15' color='#FFFFFF'>"..translate(tfm.get.room.playerList[name].community, "rescate")..":", name, 264, 262, 86, 31, 0x00000f, 0x000000, 0, true)
2444
ui.addTextArea(30031, "<p align='center'><font size='12' color='#FFFFFF'>"..translate(tfm.get.room.playerList[name].community, "consumible")..":", name, 264, 344, 100, 23, 0x00000f, 0x000000, 0, true)
2445
ui.addTextArea(30032, ""..mice[name].txt_key_suelo.."", name, 371, 182, 18, 18, 0x324650, 0x000000, 1, true)
2446
ui.addTextArea(30033, ""..mice[name].txt_key_rampa.."", name, 371, 223, 19, 19, 0x324650, 0x000000, 1, true)
2447
ui.addTextArea(30034, ""..mice[name].txt_key_rescate.."", name, 371, 265, 19, 19, 0x324650, 0x000000, 1, true)
2448
ui.addTextArea(30035, ""..mice[name].txt_key_recarga.."", name, 371, 304, 19, 19, 0x324650, 0x000000, 1, true)
2449
ui.addTextArea(30036, ""..mice[name].txt_key_consumible.."", name, 371, 343, nil, 20, 0x324650, 0x000000, 1, true)
2450
ui.addTextArea(30037, "<p align='center'><font size='15' color='#FFF504'><a href='event:asignarC'>"..translate(tfm.get.room.playerList[name].community, "cambiar").."", name, 447, 221, 100, 21, 0x8c8c8c, 0x000000, 0.5, true)
2451
ui.addTextArea(30038, "<p align='center'><font size='15' color='#FFF504'><a href='event:asignarQ'>"..translate(tfm.get.room.playerList[name].community, "cambiar").."", name, 447, 301, 100, 22, 0x8c8c8c, 0x000000, 0.5, true)
2452
ui.addTextArea(30039, "<p align='center'><font size='15' color='#FFF504'><a href='event:asignarX'>"..translate(tfm.get.room.playerList[name].community, "cambiar").."", name, 446, 178, 100, 21, 0x8c8c8c, 0x000000, 0.5, true)
2453
ui.addTextArea(30040, "<p align='center'><font size='15' color='#FFF504'><a href='event:asignarZ'>"..translate(tfm.get.room.playerList[name].community, "cambiar").."", name, 447, 262, 100, 21, 0x8c8c8c, 0x000000, 0.5, true)
2454
ui.addTextArea(30041, "<p align='center'><font size='15' color='#FFF504'><a href='event:asignarSpace'>"..translate(tfm.get.room.playerList[name].community, "cambiar").."", name, 447, 343, 100, 22, 0x8c8c8c, 0x000000, 0.5, true)
2455
ui.addTextArea(30042, "<p align='center'><font size='9'><a href='event:reset'>"..translate(tfm.get.room.playerList[name].community, "restaurarTodo").."", name, 172, 370, 87, 20, 0x00000f, 0x000000, 0.5, true)
2456
ui.addTextArea(30043, "<font size='19' color='#FF1E1E'><b><a href='event:closeControles'>X", name, 568, 83, 22, 25, 0x324650, 0x000000, 0, true)
2457
  
2458
end
2459
2460
  if cb == "closeControles" then
2461
  for close= 30020,30043 do
2462
  ui.removeTextArea(close,name)
2463
  end
2464
  end
2465
2466
  if cb == "info" then
2467
  ui.addTextArea(30100, "<font size='15' color='#FFFFFF'><a href='event:options'>≡", name, 6, 23, 16, 22, 0x00000f, 0x00000f, 0.3, true)
2468
  ui.removeTextArea(30102,name)
2469
ui.addTextArea(30020, ""..translate(tfm.get.room.playerList[name].community, "informacion_informacion_contenido").."", name, 208, 141, 409, 243, 0x00000f, 0x000000, 0.6, true)
2470
ui.addTextArea(30021, "<p align='center'><font size='22'><font color='#FFF504' face='Comic Sans MS'>"..translate(tfm.get.room.playerList[name].community, "informacion_encabezado").."", name, 268, 89, 287, 31, 0x00000f, 0x000000, 0.6, true)
2471
ui.addTextArea(30037, "<font size='19' color='#FF1E1E'><b><a href='event:closeInfo'>X", name, 568, 92, 22, 24, 0x324650, 0x000000, 0, true)
2472
ui.addTextArea(30022, "<p align='center'><a href='event:info'><font color='#FFF504'>"..translate(tfm.get.room.playerList[name].community, "informacion_cb_informacion").."</font></a> | <a href='event:infoControles'>"..translate(tfm.get.room.playerList[name].community, "informacion_cb_controles").."</a> | <a href='event:infoReglas'>"..translate(tfm.get.room.playerList[name].community, "informacion_cb_reglas").."</a> | <a href='event:infoStaff'>"..translate(tfm.get.room.playerList[name].community, "informacion_cb_staff").."</a>", name, 280, 137, 272, 20, 0x00000f, 0x000000, 0, true)           
2473
  elseif cb =="infoControles" then
2474
2475
ui.addTextArea(30020, "\n<font size='14'>\n<font color='#FFF504' face='Comic Sans MS'> "..translate(tfm.get.room.playerList[name].community, "suelo")..": ["..mice[name].txt_key_suelo.."]</font> "..translate(tfm.get.room.playerList[name].community, "informacion_controles_x").."\n\n<font color='#FFF504' face='Comic Sans MS' size='13'> "..translate(tfm.get.room.playerList[name].community, "rampa")..": ["..mice[name].txt_key_rampa.."]</font> "..translate(tfm.get.room.playerList[name].community, "informacion_controles_c").."\n\n<font color='#FFF504' face='Comic Sans MS'> "..translate(tfm.get.room.playerList[name].community, "rescate")..": ["..mice[name].txt_key_rescate.."]</font> "..translate(tfm.get.room.playerList[name].community, "informacion_controles_z").."\n\n<font color='#FFF504' face='Comic Sans MS'> "..translate(tfm.get.room.playerList[name].community, "consumible")..": ["..mice[name].txt_key_consumible.."]</font> "..translate(tfm.get.room.playerList[name].community, "informacion_controles_space").."", name, 208, 141, 409, 243, 0x00000f, 0x000000, 0.6, true)
2476
ui.addTextArea(30037, "<font size='19' color='#FF1E1E'><b><a href='event:closeInfo'>X", name, 568, 92, 22, 24, 0x324650, 0x000000, 0, true)
2477
ui.addTextArea(30022, "<p align='center'><a href='event:info'>"..translate(tfm.get.room.playerList[name].community, "informacion_cb_informacion").."</a> | <a href='event:infoControles'><font color='#FFF504'>"..translate(tfm.get.room.playerList[name].community, "informacion_cb_controles").."</font></a> | <a href='event:infoReglas'>"..translate(tfm.get.room.playerList[name].community, "informacion_cb_reglas").."</a> | <a href='event:infoStaff'>"..translate(tfm.get.room.playerList[name].community, "informacion_cb_staff").."</a>", name, 280, 137, 272, 20, 0x00000f, 0x000000, 0, true)
2478
            
2479
            elseif cb == "infoReglas" then
2480
            
2481
                       ui.addTextArea(30020, ""..translate(tfm.get.room.playerList[name].community, "informacion_reglas_contenido").."", name, 207, 140, 409, 243, 0x00000f, 0x000000, 0.6, true)
2482
ui.addTextArea(30022, "<p align='center'><a href='event:info'>"..translate(tfm.get.room.playerList[name].community, "informacion_cb_informacion").."</a> | <a href='event:infoControles'>"..translate(tfm.get.room.playerList[name].community, "informacion_cb_controles").."</a> | <a href='event:infoReglas'><font color='#FFF504'>"..translate(tfm.get.room.playerList[name].community, "informacion_cb_reglas").."</font></a> | <a href='event:infoStaff'>"..translate(tfm.get.room.playerList[name].community, "informacion_cb_staff").."</a>", name, 280, 137, 272, 20, 0x00000f, 0x000000, 0, true)
2483
            
2484
            
2485
  elseif cb =="infoStaff" then
2486
ui.addTextArea(30020, ""..translate(tfm.get.room.playerList[name].community, "informacion_staff_contenido").."", name, 207, 140, 409, 243, 0x00000f, 0x000000, 0.6, true)
2487
ui.addTextArea(30022, "<p align='center'><a href='event:info'>"..translate(tfm.get.room.playerList[name].community, "informacion_cb_informacion").."</a> | <a href='event:infoControles'>"..translate(tfm.get.room.playerList[name].community, "informacion_cb_controles").."</a> | <a href='event:infoReglas'>"..translate(tfm.get.room.playerList[name].community, "informacion_cb_reglas").."</a> | <a href='event:infoStaff'><font color='#FFF504'>"..translate(tfm.get.room.playerList[name].community, "informacion_cb_staff").."</font></a>",name, 280, 137, 272, 20, 0x00000f, 0x000000, 0, true)
2488
  end
2489
        
2490
2491
2492
  if cb == "closeControles" then
2493
  for close= 30020,30040 do
2494
  ui.removeTextArea(close,name)
2495
  end
2496
  end
2497
2498
2499
2500
  if cb == "closeInfo" then
2501
  ui.removeTextArea(30020,name)
2502
  ui.removeTextArea(30021,name)
2503
  ui.removeTextArea(30022,name)
2504
  ui.removeTextArea(30037,name)
2505
  end
2506
2507
  if cb == "update" then
2508
  displayUpdate(name)
2509
  ui.removeTextArea(30102,name)
2510
  end
2511
2512
  if cb == "closeUpdate" then
2513
  ui.removeTextArea(30020,name)
2514
  ui.removeTextArea(30021,name)
2515
  ui.removeTextArea(30037,name)
2516
  end
2517
   end
2518
    
2519
  function displayUpdate(name)
2520
  for delete = 30020, 30040 do
2521
  ui.removeTextArea(delete,name)
2522
  end
2523
  ui.addTextArea(30100, "<font size='15' color='#FFFFFF'><a href='event:options'>≡", name, 6, 23, 16, 22, 0x00000f, 0x00000f, 0.3, true)
2524
  ui.addTextArea(30020, ""..translate(tfm.get.room.playerList[name].community, "noticias_texto").."",name, 214, 140, 400, 238, 0x00000F, 0x000000, 0.6, true)
2525
  ui.addTextArea(30021, ""..translate(tfm.get.room.playerList[name].community, "noticias_titulo").."",name, 266, 90, 287, 31, 0x00000F, 0x000000, 0.6, true)
2526
  ui.addTextArea(30037, "<font size='19' color='#FF1E1E'><b><a href='event:closeUpdate'>X", name, 569, 93, 22, 25, 0x324650, 0x000000, 0, true)
2527
  end
2528
2529
  main()
2530
end
2531
2532
function crawl()
2533
  local cmd = ""
2534
  local maps = {}
2535
  local map = nil
2536
  local loaded = false
2537
  local first = nil
2538
2539
  local function calculateMaps()
2540
    if map and not loaded then
2541
      tfm.exec.chatMessage(map)
2542
      map = nil
2543
    end
2544
2545
    if #maps > 0 then
2546
      loaded = false
2547
      map = "@" .. maps[1]
2548
      table.remove(maps, 1)
2549
2550
      tfm.exec.newGame(map)
2551
    end
2552
  end
2553
2554
  local function parseCommand(command)
2555
    maps = {}
2556
    for map in string.gmatch(command, "[^;]+") do
2557
      maps[#maps + 1] = map
2558
    end
2559
  end
2560
2561
  function eventNewGame()
2562
    if tfm.get.room.currentMap == map then
2563
      loaded = true
2564
    end
2565
  end
2566
2567
  function eventChatMessage(player, msg)
2568
    if not first then
2569
      first = player
2570
    end
2571
    if player ~= first then return end
2572
2573
    if msg == "#" then
2574
      parseCommand(cmd)
2575
      cmd = ""
2576
    else
2577
      cmd = cmd .. msg
2578
    end
2579
  end
2580
2581
  system.newTimer(calculateMaps, 3500, true)
2582
  tfm.exec.disableAutoNewGame(true)
2583
  tfm.exec.chatMessage("<vp>Loaded")
2584
end
2585
2586
if tfm.get.room.name == "*#fortmice0clubmice" then
2587
  clubmice()
2588
elseif tfm.get.room.name:sub(1, 17) == "*#fortmice0crawl0" then
2589
  crawl()
2590
else
2591
  fortmice()
2592
end