[Script] Tfm/Conspiração v7
Flamma
lua
3 years ago
52 kB
9
Indexable
--para testes
local demo = true
local jogadoresDemo = {'Sh4nyyyyyyyy#0000', 'Infectsoul#2048', 'Preuclides#3383', 'Eminencia_elfia#6880', 'Cen#1969', 'Sklag#2552'}
-----------------------------------------------------------------------------------------------------------------------------------
local coroutine_create = coroutine.create
local coroutine_resume = coroutine.resume
local coroutine_yield = coroutine.yield
local math_random = math.random
local ui_addTextArea = ui.addTextArea
local ui_removeTextArea = ui.removeTextArea
local tfm_exec_addImage = tfm.exec.addImage
local tfm_exec_removeImage = tfm.exec.removeImage
local tfm_exec_respawnPlayer = tfm.exec.respawnPlayer
local tfm_exec_setPlayerScore = tfm.exec.setPlayerScore
do
math.randomseed(math_random()*os.time()*math_random())
end
do local desativar = {'AutoShaman', 'AutoNewGame', 'AutoTimeLeft', 'AfkDeath', 'AutoScore'}
for i=1, #desativar do
tfm.exec['disable'..desativar[i]]()
end
end
local comunidade = 'br'--tfm.get.room.community
local organizadores = {['Preuclides#3383'] = true} --se é organizador do module
local jogadoresGlobais = {
['Preuclides#3383'] = {pontos=10, comunidade='br'},
['Infectsoul#2048'] = {pontos=5, comunidade='br'},
['Hallonin#0000'] = {pontos=3, comunidade='en'}
} --jogadores e seu número de vitórias e a comunidade
setmetatable(jogadoresGlobais, {__index = function()
return {pontos=0, comunidade='xx'}
end})
local jogadoresNoJogo = {} --{nick, papel} lista de jogadores na cadeira
local jogadoresChave = {} --uma cópia do jogadoresNoJogo, mas como {['nick'] = papel}
local jogadoresTotais = 0
local papeisNoJogo = {1, 0, 0, 1, 1, 1} --0 é espião, 1 é sociedade
local sequenciaPossivelDeAgentes = {{2, 3, 2, 2, 3}, {2, 2, 2, 3, 3}, {2, 3, 2, 3, 2}} --sequência de número de agente nas missões
local sequenciaDaPartida = {} --a sequência de agentes na partida atual
local setColorTag
do
local colors = { }
setColorTag = function(tag, color) --por bolodefchoco#0095
assert(tag, "Missing tag.")
assert(color, "Missing color.")
if type(color) == "number" then
color = string.format("#%06x", color)
else
color = tostring(color)
if not string.find(color, '#') then
color = "#" .. color
end
end
tag = tostring(tag)
if not string.find(tag, "^<.->$") then
tag = "<" .. tag .. ">"
end
colors[#colors + 1] = { tag = tag, color = color }
end
local putColors = function(str)
for i = 1, #colors do
str = string.gsub(str, colors[i].tag, "<font color=\"" .. colors[i].color .. "\">")
end
return str
end
local addTextArea = ui_addTextArea
ui_addTextArea = function(id, str, ...)
return addTextArea(id, putColors(str), ...)
end
end
local coresPadrao = {
brancoDeTexto = 'FDFDFE',
brancoMaisEscuro = 'EDEDEE',
corDeEspaco = 'BABD2F',
textAreaFundo = '000001',
textAreaBorda = '554444',
espiao = 'FF0C40',
sociedade = '10FF54',
lider = '0950FF',
espiaoEscolhido = 'FF6B00',
missaoNumero = 'FFBF00',
missaoEspecialTitulo = 'FFAAFF',
missaoEspecial = 'ED67EA',
colocarLider = '0730CC',
colocarPadrao = 'CC0A00',
colocarCinza = '20BB10',
colocarCheio = 'AAAABC',
colocarVerde = '30CD20',
colocarBemEscuro = '55557A',
_colocar = ':)'
}
for k in next, coresPadrao do
setColorTag(tostring(k), coresPadrao[k])
end --coloca todos no html
local imagens = {
['faltam'] = {},
['meio'] = {},
['tempo'] = {}
}
---------------------------------modos e etc.---------------------------------
local listaDeModos = {
{ --pegar as cadeiras 1
--cadeira
_primeiraVez = true, --se é a primeira vez que tá sendo executado
_modoAtual = true, --se esse é o modo ativo ou não
duracaoDoModo = 0 --duração do modo
},
{ --parte em que mostra se vc é espião ou sociedade 2
--'inciar',
_primeiraVez = true,
_modoAtual = false,
duracaoDoModo = 5
},
{ --exibição da missão que iniciará 3
--'exibir',
_primeiraVez = true,
_modoAtual = false,
duracaoDoModo = 10 --este número precisa de ser maior que ou igual a 7
},
{ --seleção de agentes pelo líder 4
--'selecionar',
_primeiraVez = true,
_modoAtual = false,
duracaoDoModo = 25
},
{ --aprovação da missão pela população 5
--'aprovar',
_primeiraVez = true,
_modoAtual = false,
duracaoDoModo = 15
},
{ --se missão foi aprovada 6
--'checar',
_primeiraVez = true,
_modoAtual = false,
_segundaVez = false,
duracaoDoModo = 3
},
{ --durante a execução da missão 7
--'agir',
_primeiraVez = true,
_modoAtual = false,
duracaoDoModo = 10
},
{ --depois da missão, resultado 8
--'resultar',
_primeiraVez = true,
_modoAtual = false,
duracaoDoModo = 5
},
{ --quado chega na última missão 9
--'finalizar',
_primeiraVez = true,
_modoAtual = false,
duracaoDoModo = 500
}
}
---------------------------------elementos da missão---------------------------------
--número da missão atual
local _missaoAtual = 1
--quem estará escolhendo os agentes
local liderDaMissao = ''
--quantos agentes terão na missão atual
local numeroDeAgentesNaMissao = 0
--número de missões sabotadas (o jogo acaba quando atingir o limite 3)
local missoesSabotadas = 0
--numero de missões bem-sucedidas (acima ↑)
local missoesSucedidas = 0
--numero de agente que ja foram recusados
local agentesRecusados = 0
--limite pra dar aleatorio qnd muitos são recusados
local limiteRecusados = 3
--em % qual a chance de ser sabotado
local aleatorioSabotar = 60 --60% de chance de a missão ser sabotada em caso de limite de recusas na aprovação
--quem aprovou em lista
local quemAprovou = {}
--quem recusou em lista
local quemRecusou = {}
--número do primeiro líder da missão
local numeroEscolhido = 0
--número do título da missão selecionada
local missaoSelecionada = {}
--lider da missão
local agentesAtuais = {}
--lista de agentes e se eles sabotaram ou nao + papel deles
local agentes = {
--['Nome#0001'] = {true, 0} nick, se sabotou ou n, papel
}
local tempoPercorrido = 0
---------------------------------textos do jogo---------------------------------
--todos os textos do jogo
--eles podem ser traduzidos
local textos = {
['br'] = {
mensagemAleatoria = {
'11"Frpdqgr" pdalol.',
'Adeus, Buda.',
'Siga o seu objetivo.',
'Seja compassivo.',
'O gato anda arranhando pessoas.',
'Disseram-me: "0 é a cor do azar".',
'Obliviscitur tenebris.',
'Ac tenebras.',
'Invenire astrologus.',
'Memento mori.',
'Et non moriatur.',
'Não esqueça por que você está aqui.',
'Maloso vobiscum et cum spiritum.',
'AXE. Paz.',
'Você deveria entender...',
'Um par de olhos está sobre você.',
'Ele está feliz com um desastre.',
'Este sorriso é suspeito.',
'Tenha algo em mente. Estratégia.',
'Eu vejo você.',
'É você?',
'Como você sabia?',
'Mi vitae, felis, bibendum.',
'Maior sum quam liber tuus.',
'Não acredite em ninguém.',
'Ele será bom?',
'Não trate bem quem te odeia. Reciprocidade.',
'O "bom samaritano" sempre é um traidor.',
'Sic gorgiamus allos subjuntos freira.'
},
listaDeMissoes = function(numeroExtra)
if numeroExtra == nil then
return 16
end
return({
--1-3
--nada
{'Achatar a Terra', ('Que a Terra é plana todo o globo sabe. Os dias estão contados, a sociedade viu o capitão do exército inimigo comentando sobre a contrução de equipamentos de terraformação para curvar a Terra, localizados num parque que será manchete. Sugeriu-se que %s agentes da sociedade viajassem para os parques da cidade, onde o congressista Manchuriano e os agentes, acompanhados por quatro carros de palhaços chamando a atenção do público, destruiriam a máquina e achataria a Terra novamente.'):format(numeroDeAgentesNaMissao)},
--irá falar com papiro
{'Fabricar papiro', 'Rejeitamos a modernidade e abraçamos a tradição. A sociedade construirá mais papiros. Não papel, papel não. Papiro. Duas folhas, quatro folhas, elas são separadas. Eles têm milênios de existência. Papiro muito fino. Isto é para você. O papiro é fresco. Não imitarás. Curso gratuito de respiração. Respiração profunda. Você dá sinais na porta, então você deve dar as instruções. A sociedade pode comprar uma nova fazenda para plantar árvores e fazer papiros. O código hammurabi é mais antigo e não é feito com papiro...'}, --poderá pular alto
{'Gravar pouso falso na Lua', ('A diretora da sociedade manda uma carta: "Cara sociedade, uma nave espacial apareceu em Hollywood onde o menino está e começou a filmá-lo pulando. Dentro do navio está o capitão do exército japonês com máscara de macaco, pedindo pela entrega do material do pouso lunar falso. Sombras apareceram me chamando para a gravação lunar. Livre como macaco, haha. Quero que vocês lidem com isto. Atenciosamente, Diretora Hello Kitty". O membro %s vai nos liderar nessa.'):format(liderDaMissao)},
--4-6
--irá virar um reptil
{'Visitar líderes reptilianos', 'Uma carta escrita em nome do Rei Calango para um de seus favoritos marítimos contava sobre o desejo de os répteis em aliar-se à nossa sociedade. Os calangos provaram ser uma marca igualmente evocativa de líder, e não um gosto resistente ao ridículo. À medida que o país se apressava de contar séculos de sagas e dinastias, Calango, o imortal, retratou os leitores com o registro de suas aventuras nos pântamos. Devemos visitar o pântano secreto do Rei para firmar a aliança.'},
--irá virar um vampiro
{'Achar filho do Conde Drácula', 'O gato sugeriu fincar uma estaca no coração do vampiro para que ele se dissipe e sejamos mais fortes. Ah! Bobeira... Nadaremos em ouro com a aliança dos vampiros. Justiça, Romênia, preferência. Desde quando você quer justiça para os cristãos? Peter (memória falsa) sugeriu que um vampiro de aparência humana se tornasse humano (ah hah, perfeito porque essa pessoa provavelmente ficaria melhor). O gato lamentavelmente esfaqueou o vampiro romeniano e rasgou sua linda lingerie.'},
--poderá usar meep
{'Começar um desastre "natural"', ('O cientista Peter, assistente na base de aquecimento da ionosfera, olha para Mara Chung, agarra seu namorado Luca em algum lugar na multidão, entra no corredor e bate a porta do centro de pesquisa. Ele concluiu seu pensamento: Este monte de fracotes não percebe o que nós representamos. Histeria em massa. Moeda de piada para as autoridades da cidade da próxima semana. Aqueça a ionosfera na temperatura máxima com a ajuda de %s agentes para destruir este lugar.'):format(numeroDeAgentesNaMissao)},
--7-9
--irá poder entrar em uma parte secreta do mapa
{'Inspec. bunker apocalíptico', 'Na Groenlândia comemos peixes capturados há apenas alguns meses, os ursos nos trazem comida depois de procurar mísseis nucleares no subsolo, há um enorme bunker, seu verde reluzente na neve, absorvedores de eco varreram a escuridão, usamos luvas brancas aqui, alguns pequenos manequins sendo substituídos, um soldado avança, Pelé voa como um velho urso polar, somos solenes, elogios para o diretor angolano David do bunker. Pede-nos para inspecionar.'},
--poderá tocar música
{'Virar um cantor cria', 'É horrível ser mídia mas não ser notado, a galera é dominada pelo dinheiro, dizem que ser humano é um animal racional. Mentiras... Vivemos em um mundo falho. Você quer consumismo ou objetividade? O consumo não te evolui. O mundo é perverso e cru. Não sei você. Maluco acima. Digno de rancor abaixo. A sociedade deveria usar o seu poder para disseminar essas ideias que nos trarão evolução. A arte muda o mundo, eu sou um artista. Cante a verdade, mesmo que seus superiores não gostem.'},
--
{'Sabotar alianças internacionais', 'A Santíssima Trindade que une os países deve ser derrubada. Manipularemos o governo japonês para atacar ativistas japoneses. Manifestantes não conseguem silenciar os defensores do sistema. A cobra da sociedade envenenará aqueles que se oporem a ela. A ação das forças sombrias de Roma, assustando as feministas, conspira por motivos ecniilistas legítimos contra fatos políticos. Os opressores chineses globais dizem "adeus Buda". Somento a sociedade pode apagar as uniões globais.'},
--10-12
{'Sabotar organizações rivais', 'Uma época em que movimentos desonestos usados em tecnologias gatinas (propriedade dos gatos) levam, espontaneamente, a uma evolução evolutivos de um robô móvel biológico secreto capaz de se infiltrar dentro de cada organismo para controlar, escanear, monitorar, visualizar e registrar as atividades humanas dia e noite. A sociedade usará os dispositivos imponentes para vigilância e mapeamento celular que colocam em risco a humanidade para retalhar as ações dos inimigos.'},
{'Encontrar o homem de Marte', ('Luca estava sentado nu no chão enquanto conversava com o homem de Marte, salvador de mundos perigosos colonizados. Luca (memória real) lhe oferecia um gato em troca da salvação da Terra (que é plana). Bigode, máscara e vestido são as roupas naturais do homem de Marte. Balões coloridos voavam pela estrada marciana. Eram eles: os palhaços e o homem manchuriano, que procuravam pela companhia de %s agentes para visitá-lo. Precisamos de bigodes, máscaras e vestidos para nos juntar a eles.'):format(numeroDeAgentesNaMissao)},
{'Eleger candidato manchuriano', 'Mara Chong organizou uma audiência ao candidato manchuriano. A diretora Hello Kitty buscava o consulado chinês. O congressista era o modelo de palco. A cobra produziu o filme de campanha como uma paródia de espionagem. Mara Chong repreendeu a cobra pela ironia. Só falta os agentes distribuirem o show de música & comédia que mostra por que a legislação da Manchúria aprovou o capturador de graves, dedicou as baleias a Deus e transformou os manchurianos em súditos benevolentes 15 minutos depois.'},
--13-15
{'Prever o futuro com tarot', '\n\nParece que essa <missaoEspecial><b>missão</b></font> é <missaoEspecial><b>especial</b></font>. Madame Lulu joga suas cartas na mesa e simbolos são revelados. Apenas os agentes da missão veem as letras. Este futuro será profíquo?'},
{'Encontrar-se com a Bruxa Real', '\n\n<missaoEspecial><b>Missão especial</b></font>. Encontre a Bruxa Real. Ela desfrutará de seus poderes absolutos para te metamorfosear em sociedade ou espião, de acordo com seus desejos. Só um agente da missão pode se comunicar com ela.'},
{'Conversar com a Bruxa Maléfica', '\n\nHello kitty<missaoEspecial><b> deu uma missão especial</b></font>. A Bruxa Maléfica jogará uma praga na Missão #5, fazendo com que ela seja bem-sucedida ou sabotada de modo automático, sem importar quais são os agentes da missão. Só um agente pode conversar com a Bruxa Maléfica.'},
--16
{'Contatar espião soviético', ('\n\nUma <missaoEspecial><b>missão especial</b></font> selvagem apareceu: Reintegração. Não temos contato no Vietnã. Nosso detetive russo desvendará o disfarce inimigo, seu assistente mandará um telégrafo para nossa base. Cremos que %s agentes serão escolhidos para interpretar a mensagem. Onde fica o Vietnã?'):format(numeroDeAgentesNaMissao)}
})[numeroExtra]
end,
textareas = function(numeroExtra)
return ({
--1-3
'<p align="center"><font size="12"><brancoMaisEscuro>Faltam <missaoNumero>%s</font> membros</font></p>',
'Fim de jogo',
'\n\n[ ERRO ]</font> O jogo quebrou!\nRecarregue o script\nou mude de sala para corrigir.</b>\n\n<font size="16">Chame no Discord: flamma#0050 caso o erro persista.',
--4-6
'Aprovar',
'Recusar',
[[<font size="20"><b><espiao> Você é um espião</font></b></font>
<font size="12"><brancoDeTexto>   ➜ <espiao>Infiltre</font> e <espiao>sabote</font> 3 missões da <font color="#'..coresPadrao.sociedade..'">sociedade</font> para vencer;
   ➜ Seja discreto: não deixe que a <sociedade>sociedade</font> descubra
    sua verdadeira <espiao>identidade</font>;
   ➜ Tente fazer com que o <lider>Líder</font> da missão escolha você.
    pois <espiao>espiões</font> só podem sabotar ao serem escolhidos.</font>]],
[[<font size="20"><sociedade><b> Você é sociedade</b></font></font>
<font size="12"><brancoDeTexto>   ➜ Complete <sociedade>3 missões</font> com <sociedade>sucesso</font> para vencer;
   ➜ Fique atento: há <espiao>2 espiões</font> infiltrados na <sociedade>sociedade</font>
    que podem sabotar as missões;
   ➜ Ao ser o <lider>Líder</font> da missão, escolha com sabedoria
    pois um <espiao>espião</font> pode sabotar a missão inteira.</font>
]],
[[<font size="20"><b><lider> Você é expectador</font></b></font>
<font size="12"><brancoDeTexto>   ➜ Bem-vind(e|a|o) ao jogo :) Você é <lider>expectador</font>;
   ➜ Aguarde o início de uma nova partida, você pode fazer outra
    coisa enquanto isso;
   ➜ Leia as regras ali. <font size="24">☛</font></font>
]],
[[espaço]]})[numeroExtra]
end
}
}
local _textAreaVisivel = {}
---------------------------------textareas---------------------------------
setmetatable(jogadoresNoJogo, {__index = function()
return {'</b><font size="11">[ espaço ]', 2}
end})
setmetatable(textos, {__index = function()
return {
mensagemAleatoria = {
'PT-11"Frpdqgr" pdalol.',
'Maybe the last mission...',
'Follow your objective.',
'Be compassive.',
'The cat is angry.',
'Someone say to me: "0 is a unfair color".',
'Obliviscitur tenebris.',
'Ac tenebras.',
'Invenire astrologus.',
'Memento mori.',
'Et non moriatur.',
'Remember again: follow your objective.',
'Maloso vobiscum et cum spiritum.',
'I long for peace.',
'I can not understand.',
'The eyes of society is on you.',
'Why the leader is so happy?',
'This smile...',
'Be smart... Everyone lie.',
'I see you.',
'It is you?',
'Someone know what he could not know.',
'Mi vitae, felis, bibendum.',
'Maior sum quam liber tuus.',
'Do not believe.',
'Will he be a good leader?',
'Why I treat them good? Reciprocity.',
'I figured it out, who use good words is a traitor.',
'Sic gorgiamus allos subjuntos freira.'
},
listaDeMissoes = function(numeroExtra)
if numeroExtra == nil then
return 16
end
return({
--1-3
--nada
{'Flatten the earth', ('All the globe know that the earth is flat. I count the days, the society saw the captain of enemy army "hablando" about how good is to speak spanish in a non-flat earth. Sus. They have a terraforming machine to curve the earth. The society will send %s agents to travel to the city park, where the manchurian spy congressist will meet four clown cars, and the agents with a watermelon on the head, will draw attention and destroy the non-flat-machine. The globe will stay flat as it always has been.'):format(numeroDeAgentesNaMissao)},
--irá falar com papiro no chat
{'Build papyrus machine', 'We reject modernity and embrace tradition. The society shalt build more papyrus. Not paper. Not paper. Papyrus. Two sheet, four sheet, they are separed. We are millennia of existence. Very thin papyrus. This is for you. The papyrus is fresh. Ye shalt not mimic. Free breathing course. Deep breathing. You give sinals in the door, so you shalt give the instructions. The society may buy a new farm to plant trees and make papyrus. The hammurabi code is older, and it is not made with papyrus...'},
{'Fake moon dark moon', 'THE SOCIETY RECEIVED A LETTER: "Dear society, a misterious spaceship from an E.T. has been found in Hollywood where the boy is and started to film him jumping. Some asiatic ship (not spaceship, but from ocean) with a captain using a monkey mask is so happy asking by the fake-dark moon. We should record shadows of the fake-dark moon. He is free as a monkey, haha, so happy, i wanna be a free animal too. Maybe a cat. Please, deal with it.\nSincerely,\nHello Kitty, the society owner"'},
--4-6
{'Visit the reptilian empire', 'A letter written on behalf of King Lizard to one of his seafaring favorites told of the desire of reptiles to ally with our society. Lizards proved to be an equally evocative mark of leader, not a ridicule-resistant taste. As the country rushed to recount centuries of sagas and dynasties, King Lizard, the immortal, portrayed readers with a record of his adventures in the swamps. We must visit the secret swamp of the Lizard King to firm the alliance.'},
{'Find the son of Count Dracula', 'The cat suggested sticking a stake in the heart of the vampire so that it would dissipate and we would be stronger. Oh! Silly... We will swim in gold with the vampire alliance. Justice, Romania, preference. Since when do you want justice for Christians? Peter (false memory) suggested that a human-looking vampire become human (ah hah, perfect because that person would probably look better). The cat pitifully stabbed the Romanian vampire and tore his beautiful lingerie.'},
{'Start a "natural" disaster', 'Peter, the cientist of the society, look to Mara Chung, catches his boyfriend Luca in the crowd, go to science search center and close the door. He had an epifany: this bunch of weaklings do not realize what we stand for. A long kiss in the search base. The crowd outside was hysteric. Joke coin for everyone in this smalltown. We should burn the ionosphere and destroy this place. The couple went to the ionosphere heater.'},
--7-9
{'Rest in apocalipse', 'In Greenland we eat fish caught just a few months ago, bears bring us food after searching for nuclear missiles underground, there is a huge bunker, its gleaming green in the snow, echo absorbers swept the darkness, we wear white gloves here, some small mannequins being replaced, a soldier advances, football player flies like an old polar bear, we are solemn, praise for the Angolan director David of the bunker. Ask us to inspect.'},
{'Sing a trap song', 'The smarts must hate capitalism. The end of supply and demand. Only the nature can make urgency messages. The money is primitive, perverse, crude and passionate. Crazy above. Worthy of grudge below. Become musicians, famous, trap is in, money is out. Do you know what is fame? The society should be famous. Select agents to become famous.'},
{'Sell cookies to old ladies', 'The old ladies are sweet. We manipulate the japanese government to atack japanese acts. Old ladies are not the system defensors. We love cookies, but not cookie poison. The Roman Empire will make the young ladies scared, we conspiry by legitmes ecniilists ideals against facts. The opressors say "Goodbye Buda". We need to sell more cookies with chocolat.'},
--10-12
{'Talk with spirits', 'Spirits can control, scan, monitore, see and register human activies in day and night. Spirits will guide us. Spirits are so red. I think the spirits do not like cats. The spirits like sonic. Spirits is not a mercatory. Ancians spirits will kill us. Say "no" to spirits. I love spirits. Spiritys will make my day happier. Spirits do not like yellow.'},
{'Find marcian man', ('Luca was naked in the ground while he was talking with the marcian man, the savior of conflicted and colonized worlds. Marco (true memory) offer to him a cat in exchange of the salvation of the Earth (and the Earth is flat). Mustache, mask and dress are natural clothes of the marcian man. Colorful balloons flew across the marcian road. Wow! The clown and the manchurian man, were looking for the company of %s agents to visit Mars. We need mustaches, mask and dress.'):format(numeroDeAgentesNaMissao)},
{'Eleger candidato manchuriano', 'Mara Chong organizou uma audiência ao candidato manchuriano. A diretora Hello Kitty buscava o consulado chinês. O congressista era o modelo de palco. A cobra produziu o filme de campanha como uma paródia de espionagem. Mara Chong repreendeu a cobra pela ironia. Só falta os agentes distribuirem o show de música & comédia que mostra por que a legislação da Manchúria aprovou o capturador de graves, dedicou as baleias a Deus e transformou os manchurianos em súditos benevolentes 15 minutos depois.'},
--13-15
{'Prever o futuro com tarot', '\n\nParece que essa <missaoEspecial><b>missão</b></font> é <missaoEspecial><b>especial</b></font>. Madame Lulu joga suas cartas na mesa e simbolos são revelados. Apenas os agentes da missão veem as letras. Este futuro será profíquo?'},
{'Encontrar-se com a Bruxa Real', '\n\n<missaoEspecial><b>Missão especial</b></font>. Encontre a Bruxa Real. Ela desfrutará de seus poderes absolutos para te metamorfosear em sociedade ou espião, de acordo com seus desejos. Só um agente da missão pode se comunicar com ela.'},
{'Conversar com a Bruxa Maléfica', '\n\nHello kitty<missaoEspecial><b> deu uma missão especial</b></font>. A Bruxa Maléfica jogará uma praga na Missão #5, fazendo com que ela seja bem-sucedida ou sabotada de modo automático, sem importar quais são os agentes da missão. Só um agente pode conversar com a Bruxa Maléfica.'},
--16
{'Contatar espião soviético', ('\n\nUma <missaoEspecial><b>missão especial</b></font> selvagem apareceu: Reintegração. Não temos contato no Vietnã. Nosso detetive russo desvendará o disfarce inimigo, seu assistente mandará um telégrafo para nossa base. Cremos que %s agentes serão escolhidos para interpretar a mensagem. Onde fica o Vietnã?'):format(numeroDeAgentesNaMissao)}
})[numeroExtra]
end,
textareas = function(numeroExtra)
return ({
'<p align="center"><font size="12"><brancoMaisEscuro><missaoNumero>%s</font> players left</font></p>',
'Fim de jogo',
'\n\n[ ERROR ]</font> Game is broken!\nRestart the script\nOr change your room.</b>\n\n<font size="16">You can also give me a head up in Discord: flamma#0050',
'Aprove',
'Refuse',
[[<font size="20"><b><espiao> You're a spy</font></b></font>
<font size="12"><brancoDeTexto>   ➜ You must <espiao>infiltrate</font> and <espiao>sabotage</font> 3 <sociedade>society</font>'s missions
    to win; you have one spy ally, his name is in red too;
   ➜ Try to make sure no one finds out that you're a <espiao>spy</font>
    don't tell this to others;
   ➜ The mission's <lider>Leader</font> should choose you because
    if you're in a mission, you can <espiao>sabotage</font></font> it.]],
[[<font size="20"><sociedade><b> You're society</b></font></font>
<font size="12"><brancoDeTexto>   ➜ You need to <sociedade>successfully</font> complete 3 missions
    to win the game;
   ➜ Be careful: there are <espiao>2 spies</font> in the <sociedade>society</font> that
    will sabotage the missions;
   ➜ You should find out who is <espiao>spy</font>. Be aware and
    do not choose <espiao>spies</font> when you're a <lider>Leader</font>.</font>
]],
[[<font size="20"><b><lider> You're a spectator</font></b></font>
<font size="12"><brancoDeTexto>   ➜ Welcome to the game. You're a <lider>spectator</font>;
   ➜ Please, wait a new round begins; listen to a music
    while you wait;
   ➜ You can read the rules there. <font size="24">☛</font>
]],
--9
[[space]]})[numeroExtra]
end
}
end})
for i=1, 25 do --número de textareas no total
_textAreaVisivel[i] = {['nil'] = {'nil', 10}} --todas ganham o atributo 'nil'
end
for k in next, tfm.get.room.playerList do
if jogadoresGlobais[k] == nil then
jogadoresGlobais[k] = {pontos=0, comunidade=tfm.get.room.community}
tfm_exec_setPlayerScore(k, 0)
else
if jogadoresGlobais[k].comunidade == nil then
jogadoresGlobais[k].comunidade = tfm.get.room.community
end
tfm_exec_setPlayerScore(k, jogadoresGlobais[k].pontos)
end
end
local textAreas = function(numeroDaTextArea, jogadorAlvo, textoAuxiliar, numeroExtra, numeroExtra2)
local numeroDaTextArea = numeroDaTextArea or 1
local nomes = ''
if numeroDaTextArea < 7 then
nomes = jogadoresNoJogo[numeroDaTextArea][1]
end
local numeroExtra = numeroExtra or 1
local numeroExtra2 = numeroExtra2 or 0
local textoAuxiliar = textoAuxiliar or ''
local jogadorAlvo = jogadorAlvo or nil
if type(numeroExtra) == 'boolean' then
numeroExtra = 1
end
if numeroDaTextArea == 7 then
imagens['faltam'][#imagens['faltam']+1] = tfm_exec_addImage('16f7b2decb4.png', '!999', 313, 11, nil, 0.7, 1.2)
end
if numeroDaTextArea == 8 and next(imagens['tempo']) == nil then
for i=1, #imagens['faltam'] do
tfm_exec_removeImage(imagens['faltam'][i])
end
imagens['tempo'][#imagens['tempo']+1] = tfm_exec_addImage('16f7b2decb4.png', '!999', 352, 11, nil, 0.35, 1.2)
end
if numeroDaTextArea == 11 then
imagens['meio'][#imagens['meio']+1] = tfm_exec_addImage('16f2ebcccc8.png', '!1000', 150, 140)
end
if nomes == '</b><font size="11">[ espaço ]' then
nomes = '</b><font size="11">[ '..textos[comunidade].textareas(9)..' ]'
end
for i=numeroDaTextArea, numeroDaTextArea do
return ({
--1-6 - lista de cadeiras :format(6-jogadoresTotais)
{1, "<p align='center'><font size='10'><b><font color='#"..textoAuxiliar.."'>"..nomes, jogadorAlvo, -2, 130, 100, 20, nil, nil, 0, false},
{2, "<p align='center'><font size='10'><b><font color='#"..textoAuxiliar.."'>"..nomes, jogadorAlvo, 129, 130, 120, 20, nil, nil, 0, false},
{3, "<p align='center'><font size='10'><b><font color='#"..textoAuxiliar.."'>"..nomes, jogadorAlvo, 269, 130, 120, 20, nil, nil, 0, false},
{4, "<p align='center'><font size='10'><b><font color='#"..textoAuxiliar.."'>"..nomes, jogadorAlvo, 416, 130, 120, 20, nil, nil, 0, false},
{5, "<p align='center'><font size='10'><b><font color='#"..textoAuxiliar.."'>"..nomes, jogadorAlvo, 550, 130, 120, 20, nil, nil, 0, false},
{6, "<p align='center'><font size='10'><b><font color='#"..textoAuxiliar.."'>"..nomes, jogadorAlvo, 699, 130, 100, 20, nil, nil, 0, false},
--7 - do modo 'cadeira', text areas de jogadores que faltam
{7, (textos[comunidade].textareas(1):format(6-jogadoresTotais)), jogadorAlvo, 320, 20, 160, 25, tonumber('0x'..coresPadrao.textAreaFundo), tonumber('0x'..coresPadrao.textAreaBorda), 0},
--8 - contagem de tempo na maioria do listaDeModos
{8, '<p align="center"><font size="14" color="#'..coresPadrao.missaoNumero..'">'..numeroExtra-tempoPercorrido, nil, 375, 20, 40, 20, 0x000001, 0x443333, 0},
--9 do modo 'encerrar', mostra "fim de jogo"
{9, ('<p align="center"><font size="12" color="#C2C2DA">%s'):format(textos[comunidade].textareas(2)), nil, 375, 20, 50, 20, nil, nil, 0.5},
--10 mensagem de erro quando a coroutine quebra
{10,'\n\n\n\n\n\n\n\n\n<p align="center"><font color="#FFFFFF" size="24" face="lucida console"><b> <font color="#FF0000"></font></font>'..textos[comunidade].textareas(3), nil, 0, 0, 800, 400, tonumber('0x'..coresPadrao.brancoMaisEscuro), tonumber('0x'..coresPadrao.brancoMaisEscuro), 0, false},
--11 do modo 'iniciar', mostra se é espião ou sociedade; do modo 'exibir', mostra a missão e quem está escolhendo a missão
--do modo 'aprovar', mostra se pode ser aprovado
--do modo 'checar', mostra se agentes foram aprovados
{11, textoAuxiliar, jogadorAlvo, 200, 159, 400, 200, tonumber('0x'..coresPadrao.textAreaFundo), tonumber('0x'..coresPadrao.textAreaBorda), 0, false},
--12 do modo exibir, mostra a descrição da missão
{12, textoAuxiliar, jogadorAlvo, 280, 190, 268, 170, nil, nil, 0, false},
--13 do modo exibir, mostra o líder da missão
{13, textoAuxiliar, jogadorAlvo, 210, 200, 380, 132, nil, nil, 0, false},
--14-19 do modo selecionar, adiciona uma pessoa na missão
{13+numeroExtra, textoAuxiliar, jogadorAlvo, (140*numeroExtra)+28-140, 150, 45, 18, tonumber('0x'..coresPadrao._colocar), nil, 1, false},
{15}, {16}, {17}, {18}, {19}, --textareas simbólicas
{20, ('<p align="center"><font color="#%s" size="11"><a href="event:%s">%s</a></font></p>'):format(coresPadrao.brancoDeTexto, textoAuxiliar, textos[comunidade].textareas(4)), jogadorAlvo, 230, 320, 135, 22, numeroExtra, tonumber('0x'..coresPadrao.textAreaBorda), 1, false}, --terminar
{21, ('<p align="center"><font color="#%s" size="11"><a href="event:%s">%s</a></font></p>'):format(coresPadrao.brancoDeTexto, textoAuxiliar, textos[comunidade].textareas(5)), jogadorAlvo, 435, 320, 135, 22, numeroExtra, tonumber('0x'..coresPadrao.textAreaBorda), 1, false},
{22, textoAuxiliar, jogadorAlvo, 200, 192, 400, 200, nil, nil, 0, false},
{23, textoAuxiliar, jogadorAlvo, 230, 320, 135, 22, numeroExtra, tonumber('0x'..coresPadrao.textAreaBorda), 1, false}, --terminar
{24, textoAuxiliar, jogadorAlvo, 435, 320, 135, 22, numeroExtra, tonumber('0x'..coresPadrao.textAreaBorda), 1, false},
{25, textoAuxiliar, nil, 10, 300, 300, 200, nil, nil, 0, false}
})[i]
end
end
local removerTextArea = function(numeroDaTextArea, jogadorAlvo, ...) --remove text area
if ... then --se tem + de 1 textarea pra remover
local argumentos = {...}
for i=1, #argumentos do
ui_removeTextArea(argumentos[i], jogadorAlvo)
if jogadorAlvo == nil then
_textAreaVisivel[argumentos[i]] = {['nil'] = {'nil', 10}}
end
end
end
ui_removeTextArea(numeroDaTextArea, jogadorAlvo)
if jogadorAlvo == nil then
_textAreaVisivel[numeroDaTextArea] = {['nil'] = {'nil', 10}}
end
end
local carregarTextArea = function(numeroDaTextArea, jogadorAlvo, textoAuxiliar, numeroExtra, analisar) --carrega textarea
local numeroDaTextArea = numeroDaTextArea or 1
ui_addTextArea(table.unpack(textAreas(numeroDaTextArea, jogadorAlvo, textoAuxiliar, numeroExtra)))
if jogadorAlvo == nil and analisar ~= true then
_textAreaVisivel[numeroDaTextArea]['nil'] = {textoAuxiliar, numeroExtra}
for k in next, tfm.get.room.playerList do
_textAreaVisivel[numeroDaTextArea][k] = {textoAuxiliar, numeroExtra}
end
elseif analisar ~= true then
_textAreaVisivel[numeroDaTextArea][jogadorAlvo] = {textoAuxiliar, numeroExtra}
end
return false
end
local generoMuda = function(nomeDoAlvo, textArea) --mudar o gênero das textareas
local genero = tfm.get.room.playerList[nomeDoAlvo] and tfm.get.room.playerList[nomeDoAlvo].gender or 0
for k in textArea:gmatch('%-%(%w+%|%w+%|%w+%)') do
local k = (k:gsub('%(', '%%('):gsub('%)', '%%)'))
if genero == 0 then
textArea = textArea:gsub(k, k:match('%-%%%((%w+)%|%w+%|%w+%%%)'))
elseif genero == 1 then
textArea = textArea:gsub(k, k:match('%-%%%(%w+%|(%w+)%|(%w+)%%%)'))
else
textArea = textArea:gsub(k, k:match('%-%%%(%w+%|%w+%|(%w+)%%%)'))
end
end
return textArea
end
--------------------------------- funções ---------------------------------
--funções úteis (essas não fui eu quem fez, créditos aos criadores obviamente rs)
local shuffle = function(tbl) --embaralhador, coloca a tabela em ordem aleatória
local t = {}
for i, v in ipairs(tbl) do
local pos = math_random(1, #t+1)
table.insert(t, pos, v)
end
return t
end
local CleanNils = function(t)
local ans = {}
for _, v in next, t do
if v ~= nil then
ans[#ans+1] = v
end
end
return ans
end
local tablelength = function(T) --contar o número de elementos na tabela
local count = 0
for _ in next, T do if T[_] ~= '' and T[_] ~= false then count = count + 1 end end
return count
end
local gradient = function(targetPlayer, force, imagem, camada, opacity) --por sklag#2552, adiciona as imagens em modo degradê
local y = 0
local opacity = opacity or 1.16
local numeroDeImagens = 0
local imagem = imagem or '17948da3319.png'
local camada = camada or '!'
while opacity > force do
y = y +1
opacity = opacity-force
numeroDeImagens = numeroDeImagens+1
tfm_exec_addImage(imagem, camada..'1', 0, y, targetPlayer, 800, 1, nil, opacity)
tfm_exec_addImage(imagem, camada..'1', 0, 400-y, targetPlayer, 800, 1, nil, opacity)
end
return numeroDeImagens
end
do local escolhe5 = {}
for i=1, textos[comunidade].listaDeMissoes() do
escolhe5[#escolhe5+1] = i
end
for i=1, 5 do
local n = escolhe5[math_random(#escolhe5)]
missaoSelecionada[#missaoSelecionada+1] = n
for i2=1, #escolhe5 do
if escolhe5[i2] == n then
escolhe5[i2] = nil
end
end
escolhe5 = CleanNils(escolhe5)
end
end
print(missaoSelecionada)
for i=1, math_random(4, 8) do
papeisNoJogo = (shuffle(papeisNoJogo)) --embaralha a tabela "papel" pra definir espião ou sociedade
end
local analisarJogador = function(nomeDoJogador)
local taNoJogo = false
for i=1, 6 do
if jogadoresNoJogo[i][1] == nomeDoJogador then
taNoJogo = true
end
end
if jogadoresGlobais[nomeDoJogador] == nil then
jogadoresGlobais[nomeDoJogador] = {pontos=0, comunidade=tfm.get.room.community}
tfm_exec_setPlayerScore(nomeDoJogador, 0)
else
if jogadoresGlobais[nomeDoJogador].comunidade == nil then
jogadoresGlobais[nomeDoJogador].comunidade = tfm.get.room.community
end
tfm_exec_setPlayerScore(nomeDoJogador, jogadoresGlobais[nomeDoJogador].pontos)
end
system.bindKeyboard(nomeDoJogador, 32, true, true) --espaço
tfm_exec_respawnPlayer(nomeDoJogador) --ressuscita
if listaDeModos[1]._modoAtual then --mostra "faltam x jogadores"
carregarTextArea(7, nil, nil, nil, true)
for i=1, 6 do --exibe as textareas sempre q alguém novo entra
if jogadoresNoJogo[i][1] == '</b><font size="11">[ espaço ]' then
carregarTextArea(i, nomeDoJogador, coresPadrao.corDeEspaco, true) --"[ espaço ]" se a cadeira tá vazia
end
end
else
gradient(nomeDoJogador, 0.002, nil, nil, 0.4)
for i=1, #_textAreaVisivel do
if _textAreaVisivel[i]['nil'][1] ~= 'nil' then
carregarTextArea(i, nomeDoJogador, _textAreaVisivel[i]['nil'][1], _textAreaVisivel[i]['nil'][2], true)
end
if _textAreaVisivel[i][nomeDoJogador] ~= nil then
if _textAreaVisivel[i][nomeDoJogador][1] ~= 'nil' then
carregarTextArea(i, nomeDoJogador, _textAreaVisivel[i][nomeDoJogador][1], _textAreaVisivel[i][nomeDoJogador][2], true)
end
end
end
end
end
for k in next, tfm.get.room.playerList do
analisarJogador(k)
end
local fazerMapa = function(jogadorAlvo)
tfm_exec_addImage('18522944176.png', '_1001', 0, 14, jogadorAlvo) --fundo
tfm_exec_addImage('1852293f469.png', '_1002', 0, 24, jogadorAlvo) --cadeiras
tfm_exec_addImage('18522930d1d.png', '_1003', 0, 14, jogadorAlvo) --fundoIcones
tfm_exec_addImage('18522935a65.png', '~1', -2, 14, jogadorAlvo) --icones
tfm_exec_addImage('1852293a772.png', '&1', 0, 18, jogadorAlvo) --lampadas
end
local enfeite = function(tipoDaParticula, posicaoDoJogador)
for i=1, math_random(12, 15) do
tfm.exec.displayParticle(tipoDaParticula, math_random((26-140+(140*posicaoDoJogador)), (66-140+(140*posicaoDoJogador))), math_random(43, 93))
end
end
-------------------------
--coroutine que será chamada pelo eventLoop
local scriptDoGato = coroutine_create(function()
while true do
if listaDeModos[1]._modoAtual and jogadoresTotais == 6 then --cadeira - pegar as cadeiras
sequenciaDaPartida = sequenciaPossivelDeAgentes[math_random(#sequenciaPossivelDeAgentes)]
listaDeModos[1]._modoAtual = false --começa o modo iniciar quando as cadeiras são preenchidas
listaDeModos[2]._modoAtual = true
tempoPercorrido = 0
removerTextArea(7, nil)
------------------------------------------------------------------------------------------
end
if listaDeModos[2]._modoAtual then --iniciar - mostra sociedade ou espião
carregarTextArea(8, nil, nil, listaDeModos[2].duracaoDoModo) --contagem do tempo
if listaDeModos[2]._primeiraVez then
numeroEscolhido = math_random(#jogadoresNoJogo) --escolhe o líder aleatóraimente
gradient(nil, 0.002, nil, nil, 0.4)
for i=1, #jogadoresNoJogo do --muda a cor dos espiões para vermelho
if jogadoresNoJogo[i][2] == 0 then
for j=1, #jogadoresNoJogo do
if jogadoresNoJogo[j][2] == 0 then
carregarTextArea(i, jogadoresNoJogo[j][1], coresPadrao.espiao)
end
end --abaixo: mostra a mensagem do espião
carregarTextArea(11, jogadoresNoJogo[i][1], textos[jogadoresGlobais[jogadoresNoJogo[i][1]].comunidade].textareas(6))
elseif jogadoresNoJogo[i][2] == 1 then--mostra a mensagem da sociedade
carregarTextArea(11, jogadoresNoJogo[i][1], textos[jogadoresGlobais[jogadoresNoJogo[i][1]].comunidade].textareas(7))
else
carregarTextArea(11, jogadoresNoJogo[i][1], textos[jogadoresGlobais[jogadoresNoJogo[i][1]].comunidade].textareas(8))
end
end
liderDaMissao = jogadoresNoJogo[numeroEscolhido][1] --coloca o líder da missão aleatoriamente
listaDeModos[2]._primeiraVez = false
end
if tempoPercorrido == listaDeModos[2].duracaoDoModo then --vê se o modo iniciar já acabou
removerTextArea(11, nil) --tira a textarea de exibição padrão
tempoPercorrido = 0 --padrão de mudar o modo
listaDeModos[2]._modoAtual = false
listaDeModos[3]._modoAtual = true
coroutine_yield() --para por 1 seg
end
if tempoPercorrido >= listaDeModos[2].duracaoDoModo+3 then --derruba o jogo se houver algum problema
break
end
------------------------------------------------------------------------------------------
end
if listaDeModos[3]._modoAtual then
carregarTextArea(8, nil, nil, listaDeModos[3].duracaoDoModo) --tempo
if listaDeModos[3]._primeiraVez then
listaDeModos[3]._primeiraVez = false
numeroDeAgentesNaMissao = sequenciaDaPartida[_missaoAtual]
carregarTextArea(11, nil, ('<font size="18"><b><missaoNumero> %s</font></b></font>'):format((textos[comunidade].listaDeMissoes(missaoSelecionada[_missaoAtual]))[1]))
carregarTextArea(12, nil, '<p align="justify"><font size="10" color="#'..coresPadrao.brancoMaisEscuro..'">'..(textos[comunidade].listaDeMissoes(missaoSelecionada[_missaoAtual]))[2]..'</font></p>')
elseif tempoPercorrido == tonumber(string.match(tostring(listaDeModos[3].duracaoDoModo*0.85), '(%d+)'))-1 then
removerTextArea(12, nil)
elseif tempoPercorrido == tonumber(string.match(tostring(listaDeModos[3].duracaoDoModo*0.85), '(%d+)')) then
carregarTextArea(13, nil, generoMuda(liderDaMissao, '\n<font size="12" color="#'..coresPadrao.lider..'"><b>'..liderDaMissao..'</b></font><font size="12" color="#'..coresPadrao.brancoDeTexto..'"> foi escolhid-(e|a|o) como líder da missão.\n<font size="12">El-(u|a|e) terá que selecionar '..numeroDeAgentesNaMissao.. ' agentes para completá-la.\n\n\n\n\n\n\n\n<p align="right"><font size="9">'..textos[comunidade].mensagemAleatoria[math_random(#textos[comunidade].mensagemAleatoria)]..'</font></p></font>'))
elseif tempoPercorrido == listaDeModos[3].duracaoDoModo then
removerTextArea(11, nil, 12, 13)
tempoPercorrido = 0
listaDeModos[3]._modoAtual = false
listaDeModos[4]._modoAtual = true
elseif tempoPercorrido >= listaDeModos[3].duracaoDoModo+3 then
break
end
------------------------------------------------------------------------------------------
end
if listaDeModos[4]._modoAtual then
end
coroutine_yield()
end
end)
---------------------------------------------------------
--funções chamadas pelo transformice
do
local aCada1Segundo
eventLoop = function() --"aii mimimi coroutine desnecessaria" AAAAAAAAA RASENGAN
if aCada1Segundo then
aCada1Segundo = false
return
end
local checagem, resultado = coroutine_resume(scriptDoGato)
if checagem == false then
gradient(nil, 0.01, '17948d9ecc2.png', ':', 0.9)
carregarTextArea(25, nil, '<brancoDeTexto>...: '..resultado)
for i=1, 14 do
removerTextArea(10+i)
end
carregarTextArea(10, nil)
coroutine_resume = function() return true end
end
tempoPercorrido = tempoPercorrido+1
aCada1Segundo = true
end
end
eventNewPlayer = function(jogadorQueEntrou)
analisarJogador(jogadorQueEntrou) --novo player = dá oq é necessário p ele
ui.setMapName('Soçaite')
imagens['tempo'][#imagens['tempo']+1] = tfm_exec_addImage('16f7b2decb4.png', '!999', 352, 11, jogadorQueEntrou, 0.35, 1.2)
fazerMapa(jogadorQueEntrou)
end
eventPlayerLeft = function(jogadorQueSaiu)
if listaDeModos[1]._modoAtual then
for i=1, 6 do
if jogadoresNoJogo[i][1] == jogadorQueSaiu then
jogadoresNoJogo[i] = nil
carregarTextArea(i, nil, coresPadrao.corDeEspaco)
jogadoresTotais = jogadoresTotais-1
carregarTextArea(7, nil)
end
end
end
end
eventPlayerDied = function(nomeDoJogador)
tfm_exec_respawnPlayer(nomeDoJogador)
end
eventTextAreaCallback = function(numeroDaTextArea, quemClicou, nomeDoEvento)
end
eventKeyboard = function(nomeDoJogador, teclaPressionada, _, posicaoXDoRato)
if teclaPressionada == 32 and listaDeModos[1]._modoAtual then --cá temos cada textarea das cadeiras, tb coloca os jogadores na tabela {jogadores}
for i=1, 6 do
if demo then
posicaoXDoRato = 30-140+i*140
nomeDoJogador = jogadoresDemo[i]
end
for j=1, 6 do
if jogadoresNoJogo[j][1] == nomeDoJogador then return end --quem já tem cadeira não pode pegar outra
end
if posicaoXDoRato > 25-140+i*140 and posicaoXDoRato < 75-140+i*140 and (jogadoresNoJogo[i][1] == '</b><font size="11">[ espaço ]') then --verifica se o posicaoXDoRato do jogador é em cima de uma cadeira
jogadoresNoJogo[i] = {nomeDoJogador, papeisNoJogo[i]}; jogadoresChave[nomeDoJogador] = {papel = papeisNoJogo[i]}
jogadoresTotais = jogadoresTotais+1;
carregarTextArea(i, nil, coresPadrao.brancoDeTexto)
carregarTextArea(7, nil)
--insere txtareas
end
end
end
end
--mapa
do
local mapaXML = [[<C><P H="800" D="x_deadmeat/x_pictos/s_1105-fs8.png,20,701;x_deadmeat/x_pictos/d_1733-fs8.png,154,656;x_deadmeat/x_pictos/d_1733-fs8.png,153,679;x_deadmeat/x_pictos/d_1733-fs8.png,153,710;x_deadmeat/x_pictos/d_1733-fs8.png,153,742;x_deadmeat/x_pictos/d_1734-fs8.png,351,746;x_deadmeat/x_pictos/d_1727-fs8.png,519,719;x_deadmeat/x_pictos/d_1295-fs8.png,1136,620;x_deadmeat/x_pictos/s_1045-fs8.png,1124,656;x_deadmeat/x_pictos/s_1045-fs8.png,1082,635;x_deadmeat/x_pictos/s_1045-fs8.png,1166,635;x_deadmeat/x_pictos/s_1045-fs8.png,1123,616;x_deadmeat/x_pictos/s_1045-fs8.png,1206,615;x_deadmeat/x_pictos/s_1045-fs8.png,1165,595;x_deadmeat/x_pictos/s_1045-fs8.png,1245,596;x_deadmeat/x_pictos/s_1045-fs8.png,1204,575;x_deadmeat/x_campement/Nuages.png,-12,736" Ca="" MEDATA="13,1;;;;-0;0:::1-"/><Z><S><S T="12" X="400" Y="373" L="800" H="66" P="0,0,0.3,0.2,0,0,0,0" o="000000" c="3"/><S T="12" X="401" Y="159" L="1500" H="66" P="0,0,0.3,0.2,0,0,0,0" o="000000"/><S T="12" X="400" Y="-47" L="800" H="100" P="0,0,0,0.2,0,0,0,0" o="6a7495" c="4" N=""/><S T="12" X="900" Y="32" L="10" H="265" P="0,0,0,9999,0,0,0,0" o="324650"/><S T="12" X="-100" Y="32" L="10" H="265" P="0,0,0,9999,0,0,0,0" o="324650"/><S T="10" X="197" Y="752" L="65" H="150" P="0,0,0.3,0,0,0,0,0" m=""/><S T="10" X="389" Y="821" L="56" H="110" P="0,0,0.3,0,0,0,0,0" m=""/><S T="10" X="579" Y="805" L="82" H="66" P="0,0,0.3,0,0,0,0,0" m=""/><S T="9" X="337" Y="786" L="244" H="50" P="0,0,0,0,0,0,0,0" m=""/><S T="9" X="578" Y="786" L="244" H="50" P="0,0,0,0,0,0,0,0" m=""/><S T="10" X="596" Y="758" L="33" H="26" P="0,0,0.3,0,0,0,0,0" m=""/><S T="10" X="563" Y="762" L="47" H="16" P="0,0,2,0,-27,0,0,0" m=""/><S T="10" X="61" Y="740" L="80" H="33" P="0,0,0.3,0,0,0,0,0" m=""/><S T="1" X="-66" Y="132" L="171" H="34" P="0,0,0,0.2,10,0,0,0" m=""/><S T="1" X="866" Y="132" L="171" H="34" P="0,0,0,0.2,-10,0,0,0" m=""/></S><D><P X="58" Y="141" T="19" C="8A311B" P="0,0"/><P X="196" Y="141" T="19" C="8A311B" P="0,0"/><P X="323" Y="141" T="19" C="8A311B" P="0,0"/><P X="480" Y="141" T="19" C="8A311B" P="0,0"/><P X="604" Y="141" T="19" C="8A311B" P="0,0"/><P X="737" Y="141" T="19" C="8A311B" P="0,0"/><DS X="400" Y="110"/></D><O/><L/></Z></C>]]
tfm.exec.newGame(mapaXML)
tfm_exec_addImage('166dc37c641.png', '?0', 0, 401)
fazerMapa()
imagens['faltam'][#imagens['faltam']+1] = tfm_exec_addImage('16f7b2decb4.png', '!999', 313, 11, nil, 0.7, 1.2)
ui.setMapName('Soçaite')
endEditor is loading...