[Script] Tfm/Metaloja
Script pra tribo "Flores de Athenas"Flamma
lua
2 years ago
3.6 kB
4
Indexable
local dados = { } --acima vão ficar os dados para carregar -------------------------------------------- ---@autor: Preuclides#3383 ---@descrição: um script de loja para a tribo "Flores de Athenas" --lista de quem tem cargo de organizador do script local organizadores = { [(debug.traceback()):match('(%w*%#%d+)')] = true } --optimizações local xtextarea, xrtextarea, ximage = ui.addTextArea, ui.removeTextArea, tfm.exec.addImage local temporario = { --dados temporários do jogador } local metaloja = {} --declarando a função que cria a lojinha do --classe da lojinha ---@textareas --[[ 0 = botão 1 = fundo da loja 2 = item1 3 = item2 4 = item3 5 = item2.1 6 = item2.2 7 = item2.3 8 = aba1 9 = aba2 10 = aba3 11 = aba4 12 = aba5 ]] local itensDaLoja = { ['QUEIJOS BARATOS'] = { 'queijinho', 'bluble', 'aa', 'a.1', 'b.2', 'c.3', }, ['QUEIJOS CAROS'] = { 'qj', 'qjinoco', 'beijo', 'caro.1', 'caro.2', 'caro.3', }, ['PELES'] = { 'pelo', 'skin', 'fursona', 'pele.1', 'pele.2', 'plo.3', }, ['CONSUMÍVEIS'] = { 'bola', 'neve', 'chuva', 'batata.1', 'amora.2', 'morango.3', }, ['OUTROS'] = { 'foca', 'javali', 'siriema', 'oto.1', 'oto.2', 'oto.3', } } local larguraDaLoja, alturaDaLoja = 680, 340 metaloja.init = function() --iniciando a classe da loja self = setmetatable({}, {__index=metaloja}) return self end function metaloja:botao() --cria botão xtextarea(0, '<font size="20"><a href="event:abrir">ㅤ </a></font>', nil, 10, 30, nil, nil, -1, -1, 0) ximage('166e9893b89.png', '!1', 10, 30) return self end function metaloja:abrir(jogador) --abre a loja pro jogador selecionado xtextarea(0, '<font size="20"><a href="event:fechar">ㅤ </a></font>', jogador, 10, 30, nil, nil, -1, -1, 0) xtextarea(1, '', jogador, 800/2-(larguraDaLoja/2), 400/2-(alturaDaLoja/2)+10, larguraDaLoja, alturaDaLoja) return self end function metaloja:fechar(jogador) --fecha a loja pro jogador selecionado xtextarea(0, '<font size="20"><a href="event:abrir">ㅤ </a></font>', jogador, 10, 30, nil, nil, -1, -1, 0) for i=1, 12 do xrtextarea(i, jogador) end return self end function metaloja:fazerItens(jogador, aba) --faz os itens for i=1, 3 do xtextarea(1+i, itensDaLoja[aba][i], jogador, ((((800-larguraDaLoja)/2)+((larguraDaLoja/3)*i))-larguraDaLoja/3)+((larguraDaLoja/6)/2), (400-(alturaDaLoja-20)/2)-120, 110, 100) end for i=1, 3 do xtextarea(4+i, itensDaLoja[aba][3+i], jogador, ((((800-larguraDaLoja)/2)+((larguraDaLoja/3)*i))-larguraDaLoja/3)+((larguraDaLoja/6)/2), (400-(alturaDaLoja-30)/2)+10, 110, 100) end return self end function metaloja:fazerAbas(jogador) --faz as abas do local i = 1 for k in next, itensDaLoja do xtextarea(7+i, '<p align="center"><a href="event:'..k..'">'..k..'</a></p>', jogador, (800-larguraDaLoja)/2+((larguraDaLoja/5)*i)-(larguraDaLoja/5), (400-alturaDaLoja)/2+20, larguraDaLoja/5, 20) i = i+1 end end return self end -- end local loja = metaloja.init():botao() --inicia a loja eventTextAreaCallback = function(_, j, e) --quando clica na loja if e == 'abrir' then loja:abrir(j):fazerItens(j, 'CONSUMÍVEIS'):fazerAbas(j) elseif e == 'fechar' then loja:fechar(j) else loja:fazerItens(j, e) end end
Editor is loading...