Ir para conteúdo
  • Cadastre-se

(Resolvido)Boosted Creature


Ir para solução Resolvido por MatteusDeli,

Posts Recomendados

Boas Pessoal do Tibia King

 

Gostaria de adicionar um sistema de Creature boost no meu baiak 8.6 TFS 0.4

 

Funcionaria da seguinte forma: a cada 24h 1 monstro aleatorio iria dropar mais loot e mais xp do que o normal! Alguem tem ou me pode ajudar com esse sistema? origado pela ajuda desde ja.

Citar

 

Algo deste genero!

 

boosted.png

Editado por bellatrikz (veja o histórico de edições)
Link para o post
Compartilhar em outros sites
  • Solução

@bellatrikz Boa noite, veja se é isso que voce quer 

 

data/lib crie um arquivo chamado boostedMonster.lua e cole isto dentro:

monster_name_backup = 74812 -- nao mexer
monster_exp_backup = 74813 -- nao mexer
monster_loot_backup = 74814 -- nao mexer

config_boosted = {

    ["00:00:00"] = { -- Horario de cada dia que irá ocorrer a troca dos monstros
        pos_monster = {x=161,y=58,z=7, stackpos = 253}, -- a posição aonde ficara o monstro informando a quantidade de exp e loot
        time_effects = 2 -- tempo em segundos que ficará saindo os efeitos
    }
    
}

monsters_boosteds = { -- Configuracao dos monstros que irão ter exp e loot aumentados
	[1] = {monster_name = "Dwarf", exp = 5, loot = 7},
	[2] = {monster_name = "Goblin", exp = 15, loot = 5},
	[3] = {monster_name = "Orc", exp = 25, loot = 15},
    [4] = {monster_name = "Dwarf Soldier", exp = 35, loot = 10},
    --[5] = {monster_name = "NOME DO MONSTRO", exp = "PORCENTAGEM DE EXP", loot = "PORCENTAGEM DO LOOT"},
}

 

agora em data/globalevents/scripts crie um arquivo chamado boosted.lua e cole isto dentro:


function onThink(interval, lastExecution)
	local current_hour = os.date("%X")
	if config_boosted[current_hour] then
		local time = config_boosted[current_hour]
		
		local monster = getTopCreature(time.pos_monster).uid
		local random_monster = monsters_boosteds[math.random(1, #monsters_boosteds)]
		if (monster >= 1) then
			doRemoveCreature(monster)
		end
		SummonMonster(time, random_monster)
		setGlobalStorageValue(monster_name_backup, random_monster.monster_name)
		setGlobalStorageValue(monster_exp_backup, random_monster.exp)
		setGlobalStorageValue(monster_loot_backup, random_monster.loot)
	end
	return true
end 	


function SummonMonster(time, monster)
	doCreateMonster(monster.monster_name, time.pos_monster)
	effectsMonster(time, monster)
end

function effectsMonster(time, monster)

	effectLoot(time.pos_monster, monster)
	effectExp(time.pos_monster, monster)
	doSendMagicEffect(time.pos_monster, 30)
	doSendAnimatedText(time.pos_monster, "Boosted", COLOR_DARKYELLOW)

	addEvent(function()
		effectsMonster(time, monster)
	end, time.time_effects * 1000)
end

function effectLoot(pos, monster)
	local pos_effect = {x=pos.x, y=pos.y-1, z=pos.z}
	doSendMagicEffect(pos_effect, 29)
	doSendAnimatedText(pos_effect, "Loot +"..monster.loot.."%", COLOR_DARKYELLOW)
end

function effectExp(pos, monster)
	local pos_effect = {x=pos.x, y=pos.y+1, z=pos.z}
	doSendMagicEffect(pos_effect, 29)
	doSendAnimatedText(pos_effect, "EXP +"..monster.exp.."%", COLOR_DARKYELLOW)
end

Em globalevents.xml registre esta tag:

<globalevent name="boosted" interval="1000" event="script" value="boosted.lua"/>

 

Agora em data/creatureevents/scripts crie um arquivo chamado boosted.lua e cole isto dentro:


function onKill(cid, target, damage, flags)
	
	if not (isMonster(target)) then
		return true
	end

	if (string.lower(getCreatureName(target)) == string.lower(getGlobalStorageValue(monster_name_backup))) then
		local exp = tonumber(getGlobalStorageValue(74813))
		doPlayerSetRate(cid, SKILL__LEVEL, getExperienceStage(getPlayerLevel(cid))*(getGlobalStorageValue(monster_exp_backup) / 1000))
		addLoot(getCreaturePosition(target), getCreatureName(target), {})
	else
		doPlayerSetRate(cid, SKILL__LEVEL, 1)
	end

	return true
end

function addLoot(position, name, ignoredList)
    local check = false
    for i = 0, 255 do
        position.stackpos = i
        corpse = getTileThingByPos(position)
        if corpse.uid > 0 and isCorpse(corpse.uid) then
            check = true 
            break
        end
    end
	if check == true then
        local newRate = (1 + (getGlobalStorageValue(monster_loot_backup)/100)) * getConfigValue("rateLoot")
        local mainbp = doCreateItemEx(1987, 1)
        local monsterLoot = getMonsterLootList(name)
        for i, loot in pairs(monsterLoot) do
            if math.random(1, 100000) <= newRate * loot.chance then 
                if #ignoredList > 0 then
                    if (not isInArray(ignoredList, loot.id)) then
                        doAddContainerItem(mainbp, loot.id, loot.countmax and math.random(1, loot.countmax) or 1)
                    end
                else
                    doAddContainerItem(mainbp, loot.id, loot.countmax and math.random(1, loot.countmax) or 1)
                end
            end
        end
        doAddContainerItemEx(corpse.uid, mainbp)  
    end
end

 

Em creatureevent.xml registre esta tag:

<event type="kill" name="BoostedMonster" event="script" value="boosted.lua"/>

 

Por ultimo abra o arquivo login.lua na mesma pasta (creatureevents/scripts) e cole esta linha antes do ultimo return true:

registerCreatureEvent(cid, "BoostedMonster")

 

OBS: A explicação de como adicionar os monstros etc.. Esta no arquivo boostedMonster.lua em data/lib.

Link para o post
Compartilhar em outros sites
8 horas atrás, MatteusDeli disse:

@bellatrikz Boa noite, veja se é isso que voce quer 

 

data/lib crie um arquivo chamado boostedMonster.lua e cole isto dentro:


monster_name_backup = 74812 -- nao mexer
monster_exp_backup = 74813 -- nao mexer
monster_loot_backup = 74814 -- nao mexer

config_boosted = {

    ["00:00:00"] = { -- Horario de cada dia que irá ocorrer a troca dos monstros
        pos_monster = {x=161,y=58,z=7, stackpos = 253}, -- a posição aonde ficara o monstro informando a quantidade de exp e loot
        time_effects = 2 -- tempo em segundos que ficará saindo os efeitos
    }
    
}

monsters_boosteds = { -- Configuracao dos monstros que irão ter exp e loot aumentados
	[1] = {monster_name = "Dwarf", exp = 5, loot = 7},
	[2] = {monster_name = "Goblin", exp = 15, loot = 5},
	[3] = {monster_name = "Orc", exp = 25, loot = 15},
    [4] = {monster_name = "Dwarf Soldier", exp = 35, loot = 10},
    --[5] = {monster_name = "NOME DO MONSTRO", exp = "PORCENTAGEM DE EXP", loot = "PORCENTAGEM DO LOOT"},
}

 

agora em data/globalevents/scripts crie um arquivo chamado boosted.lua e cole isto dentro:



function onThink(interval, lastExecution)
	local current_hour = os.date("%X")
	if config_boosted[current_hour] then
		local time = config_boosted[current_hour]
		
		local monster = getTopCreature(time.pos_monster).uid
		local random_monster = monsters_boosteds[math.random(1, #monsters_boosteds)]
		if (monster >= 1) then
			doRemoveCreature(monster)
		end
		SummonMonster(time, random_monster)
		setGlobalStorageValue(monster_name_backup, random_monster.monster_name)
		setGlobalStorageValue(monster_exp_backup, random_monster.exp)
		setGlobalStorageValue(monster_loot_backup, random_monster.loot)
	end
	return true
end 	


function SummonMonster(time, monster)
	doCreateMonster(monster.monster_name, time.pos_monster)
	effectsMonster(time, monster)
end

function effectsMonster(time, monster)

	effectLoot(time.pos_monster, monster)
	effectExp(time.pos_monster, monster)
	doSendMagicEffect(time.pos_monster, 30)
	doSendAnimatedText(time.pos_monster, "Boosted", COLOR_DARKYELLOW)

	addEvent(function()
		effectsMonster(time, monster)
	end, time.time_effects * 1000)
end

function effectLoot(pos, monster)
	local pos_effect = {x=pos.x, y=pos.y-1, z=pos.z}
	doSendMagicEffect(pos_effect, 29)
	doSendAnimatedText(pos_effect, "Loot +"..monster.loot.."%", COLOR_DARKYELLOW)
end

function effectExp(pos, monster)
	local pos_effect = {x=pos.x, y=pos.y+1, z=pos.z}
	doSendMagicEffect(pos_effect, 29)
	doSendAnimatedText(pos_effect, "EXP +"..monster.exp.."%", COLOR_DARKYELLOW)
end

Em globalevents.xml registre esta tag:


<globalevent name="boosted" interval="1000" event="script" value="boosted.lua"/>

 

Agora em data/creatureevents/scripts crie um arquivo chamado boosted.lua e cole isto dentro:



function onKill(cid, target, damage, flags)
	
	if not (isMonster(target)) then
		return true
	end

	if (string.lower(getCreatureName(target)) == string.lower(getGlobalStorageValue(monster_name_backup))) then
		local exp = tonumber(getGlobalStorageValue(74813))
		doPlayerSetRate(cid, SKILL__LEVEL, getExperienceStage(getPlayerLevel(cid))*(getGlobalStorageValue(monster_exp_backup) / 1000))
		addLoot(getCreaturePosition(target), getCreatureName(target), {})
	else
		doPlayerSetRate(cid, SKILL__LEVEL, 1)
	end

	return true
end

function addLoot(position, name, ignoredList)
    local check = false
    for i = 0, 255 do
        position.stackpos = i
        corpse = getTileThingByPos(position)
        if corpse.uid > 0 and isCorpse(corpse.uid) then
            check = true 
            break
        end
    end
	if check == true then
        local newRate = (1 + (getGlobalStorageValue(monster_loot_backup)/100)) * getConfigValue("rateLoot")
        local mainbp = doCreateItemEx(1987, 1)
        local monsterLoot = getMonsterLootList(name)
        for i, loot in pairs(monsterLoot) do
            if math.random(1, 100000) <= newRate * loot.chance then 
                if #ignoredList > 0 then
                    if (not isInArray(ignoredList, loot.id)) then
                        doAddContainerItem(mainbp, loot.id, loot.countmax and math.random(1, loot.countmax) or 1)
                    end
                else
                    doAddContainerItem(mainbp, loot.id, loot.countmax and math.random(1, loot.countmax) or 1)
                end
            end
        end
        doAddContainerItemEx(corpse.uid, mainbp)  
    end
end

 

Em creatureevent.xml registre esta tag:


<event type="kill" name="BoostedMonster" event="script" value="boosted.lua"/>

 

Por ultimo abra o arquivo login.lua na mesma pasta (creatureevents/scripts) e cole esta linha antes do ultimo return true:


registerCreatureEvent(cid, "BoostedMonster")

 

OBS: A explicação de como adicionar os monstros etc.. Esta no arquivo boostedMonster.lua em data/lib.

 

Obrigado MatteusDeli era isso mesmo grande ajuda! Funcionou perfeitamente vlw

Editado por bellatrikz (veja o histórico de edições)
Link para o post
Compartilhar em outros sites

Aqui está dando esse erro, pode me ajudar?
@MatteusDeli
image.thumb.png.688b78e117d2ca99d8cb4b91b068d8ef.png

@Edit:
Não sei se era algum erro de caractere especiais, mas refiz e ok, abriu a distro porém sem nenhum erro, mas o monstro não está na posição solicitada. Pode me ajudar?
Uso otx 0.4

@Editt;
Para funcionar, bastou eu alterar o horário de começo invés de edixar 00h, coloquei o horário de teste e funcionou o summon.

@EDIT HELP:

Tudo certo, as configs, o summon mas não está buffando o monstro, testei xp e o loot continuam o mesmo antes e depois de mostrar a creature boostada, pode ajudar? @MatteusDeli

Editado por alexpaimel (veja o histórico de edições)
Link para o post
Compartilhar em outros sites
  • 6 months later...
Em 30/04/2020 em 19:11, MatteusDeli disse:

@alexpaimel Eu testei no TFS 0.4 pode ser que no OTX não tenha algumas functions usadas no script, deve ser por isso que não esta aumentando a exp e o loot. Tenta dar uma testada em algum server TFS

o meu é tfs 0.4 não da erro nem aparece os monstros no mapa 

 

Link para o post
Compartilhar em outros sites
  • 1 year later...
  • Moderador
Em 29/04/2020 em 23:36, MatteusDeli disse:

[1] = {monster_name = "Dwarf", exp = 5, loot = 7}, [2] = {monster_name = "Goblin", exp = 15, loot = 5}, [3] = {monster_name = "Orc", exp = 25, loot = 15},

desculpa reviver o post mas essa parte do código o exp é um pouco bugado, fiz uns testes no meu OT e ele começa contar apartir do 25
exp = 25 é a exp padrão

exp = 50 é o dobro
então eu tive que dar uns pulo na lib e no global events pra ele calcular e mostrar certo kkkkkkkkkkkkkkkkk
teria alguma maneira de arrumar isso? ou nem suporte mais tem?

Link para o post
Compartilhar em outros sites
Em 27/01/2022 em 08:10, FeeTads disse:

desculpa reviver o post mas essa parte do código o exp é um pouco bugado, fiz uns testes no meu OT e ele começa contar apartir do 25
exp = 25 é a exp padrão

exp = 50 é o dobro
então eu tive que dar uns pulo na lib e no global events pra ele calcular e mostrar certo kkkkkkkkkkkkkkkkk
teria alguma maneira de arrumar isso? ou nem suporte mais tem?

Sempre q eu boto esse script buga a exp tbm, teria como postar a '''solução''' pf !

Link para o post
Compartilhar em outros sites
  • 3 months later...
Em 29/04/2020 em 23:36, MatteusDeli disse:

@bellatrikz Boa noite, veja se é isso que voce quer 

 

data/lib crie um arquivo chamado boostedMonster.lua e cole isto dentro:


monster_name_backup = 74812 -- nao mexer
monster_exp_backup = 74813 -- nao mexer
monster_loot_backup = 74814 -- nao mexer

config_boosted = {

    ["00:00:00"] = { -- Horario de cada dia que irá ocorrer a troca dos monstros
        pos_monster = {x=161,y=58,z=7, stackpos = 253}, -- a posição aonde ficara o monstro informando a quantidade de exp e loot
        time_effects = 2 -- tempo em segundos que ficará saindo os efeitos
    }
    
}

monsters_boosteds = { -- Configuracao dos monstros que irão ter exp e loot aumentados
	[1] = {monster_name = "Dwarf", exp = 5, loot = 7},
	[2] = {monster_name = "Goblin", exp = 15, loot = 5},
	[3] = {monster_name = "Orc", exp = 25, loot = 15},
    [4] = {monster_name = "Dwarf Soldier", exp = 35, loot = 10},
    --[5] = {monster_name = "NOME DO MONSTRO", exp = "PORCENTAGEM DE EXP", loot = "PORCENTAGEM DO LOOT"},
}

 

agora em data/globalevents/scripts crie um arquivo chamado boosted.lua e cole isto dentro:



function onThink(interval, lastExecution)
	local current_hour = os.date("%X")
	if config_boosted[current_hour] then
		local time = config_boosted[current_hour]
		
		local monster = getTopCreature(time.pos_monster).uid
		local random_monster = monsters_boosteds[math.random(1, #monsters_boosteds)]
		if (monster >= 1) then
			doRemoveCreature(monster)
		end
		SummonMonster(time, random_monster)
		setGlobalStorageValue(monster_name_backup, random_monster.monster_name)
		setGlobalStorageValue(monster_exp_backup, random_monster.exp)
		setGlobalStorageValue(monster_loot_backup, random_monster.loot)
	end
	return true
end 	


function SummonMonster(time, monster)
	doCreateMonster(monster.monster_name, time.pos_monster)
	effectsMonster(time, monster)
end

function effectsMonster(time, monster)

	effectLoot(time.pos_monster, monster)
	effectExp(time.pos_monster, monster)
	doSendMagicEffect(time.pos_monster, 30)
	doSendAnimatedText(time.pos_monster, "Boosted", COLOR_DARKYELLOW)

	addEvent(function()
		effectsMonster(time, monster)
	end, time.time_effects * 1000)
end

function effectLoot(pos, monster)
	local pos_effect = {x=pos.x, y=pos.y-1, z=pos.z}
	doSendMagicEffect(pos_effect, 29)
	doSendAnimatedText(pos_effect, "Loot +"..monster.loot.."%", COLOR_DARKYELLOW)
end

function effectExp(pos, monster)
	local pos_effect = {x=pos.x, y=pos.y+1, z=pos.z}
	doSendMagicEffect(pos_effect, 29)
	doSendAnimatedText(pos_effect, "EXP +"..monster.exp.."%", COLOR_DARKYELLOW)
end

Em globalevents.xml registre esta tag:


<globalevent name="boosted" interval="1000" event="script" value="boosted.lua"/>

 

Agora em data/creatureevents/scripts crie um arquivo chamado boosted.lua e cole isto dentro:



function onKill(cid, target, damage, flags)
	
	if not (isMonster(target)) then
		return true
	end

	if (string.lower(getCreatureName(target)) == string.lower(getGlobalStorageValue(monster_name_backup))) then
		local exp = tonumber(getGlobalStorageValue(74813))
		doPlayerSetRate(cid, SKILL__LEVEL, getExperienceStage(getPlayerLevel(cid))*(getGlobalStorageValue(monster_exp_backup) / 1000))
		addLoot(getCreaturePosition(target), getCreatureName(target), {})
	else
		doPlayerSetRate(cid, SKILL__LEVEL, 1)
	end

	return true
end

function addLoot(position, name, ignoredList)
    local check = false
    for i = 0, 255 do
        position.stackpos = i
        corpse = getTileThingByPos(position)
        if corpse.uid > 0 and isCorpse(corpse.uid) then
            check = true 
            break
        end
    end
	if check == true then
        local newRate = (1 + (getGlobalStorageValue(monster_loot_backup)/100)) * getConfigValue("rateLoot")
        local mainbp = doCreateItemEx(1987, 1)
        local monsterLoot = getMonsterLootList(name)
        for i, loot in pairs(monsterLoot) do
            if math.random(1, 100000) <= newRate * loot.chance then 
                if #ignoredList > 0 then
                    if (not isInArray(ignoredList, loot.id)) then
                        doAddContainerItem(mainbp, loot.id, loot.countmax and math.random(1, loot.countmax) or 1)
                    end
                else
                    doAddContainerItem(mainbp, loot.id, loot.countmax and math.random(1, loot.countmax) or 1)
                end
            end
        end
        doAddContainerItemEx(corpse.uid, mainbp)  
    end
end

 

Em creatureevent.xml registre esta tag:


<event type="kill" name="BoostedMonster" event="script" value="boosted.lua"/>

 

Por ultimo abra o arquivo login.lua na mesma pasta (creatureevents/scripts) e cole esta linha antes do ultimo return true:


registerCreatureEvent(cid, "BoostedMonster")

 

OBS: A explicação de como adicionar os monstros etc.. Esta no arquivo boostedMonster.lua em data/lib.

O meu anjo tudo bem: Desculpa reviver a postagem, mas como que faz se eu quiser colocar por exemplo, dia que for os Frost Dragon, todos os Frost Dragon dar o bonus ( Donate Frost Dragon, Castle Frost Dragon, Vip I, Vip 2, Vip 3)

Link para o post
Compartilhar em outros sites
  • 11 months later...

Gostaria muito desse script funcional!

-- Daily Monster adapted to base 0.3.7 at 08/27/2019 by Lyuzera.

DAILYMONSTER_EXPERIENCE = 1
DAILYMONSTER_LOOT = 2

DAILYMONSTER_FIRST = DAILYMONSTER_EXPERIENCE
DAILYMONSTER_LAST = DAILYMONSTER_LOOT

dailyMonster = {
	lootType = {
		percent = {7, 15}, -- porcentagem minima e máxima do loot (random)
		monsters = {''} -- criaturas que podem ser sorteadas com o tipo Loot (random)
	},

	experienceType = {
		percent = {15, 30}, -- porcentagem minima e máxima de experience (random)
		monsters = {'Frost Giants', 'Retroder', 'Demonio', 'Baby Hades', 'Archimonda', 'Overlord', 'Irahsae', 'Lord Nightmare', 'Obelisco Do Mar', 'Kong', 'Undead Darkshadow', 'Archangel', 'Alibaba', 'Jimmy Swamp', 'Dementador', 'Irlanquen', 'Super Archangel', 'Super Alibaba', 'Super Kong', 'Super Jimmy Swamp', 'Supremo Demon', 'Supremo Warlock', 'Super The Emperor', 'Super Supremo Demon', 'Supremo Hellhound', 'Super Supremo Draken Elite', 'Super Supremo Dragon Lord', 'Supremo Ashmunrah', 'Supremo Glacial Giant', 'Super Supremo Lord Nightmare', 'Supremo Draken Elite', 'Supremo Sea Serpent Ice', 'Supremo Draconia', 'Supremo Lord Nightmare', 'Supremo Gelidrazah', 'Supremo Dragon Lord', 'Wild Ninja Supremo', 'Supremo The Old Widow', 'Super Frost Viserion', 'Super Frost Spatial', 'Super Supremo Draconia', 'Super Supremo Balafhar', 'Super Supremo Sapphire', 'Angry Demon Supremo', 'Cave Spider', 'Supremo Rotworm Queen', 'Super Supremo Ice Golem', 'Super Supremo Fire Overlord', 'Sight Of Surrender', 'Guzzlemaw'} -- criaturas que podem ser sorteadas com o tipo experience (random)
	}
}

function dailyMonster.onStartup(self)
	math.randomseed(os.mtime())
	local type = math.random(DAILYMONSTER_FIRST, DAILYMONSTER_LAST)
	local name = 'unknown'
	local percent = 0
	local typeName = 'none'

	if type == DAILYMONSTER_EXPERIENCE then
		name = self.experienceType.monsters[math.random(1, #self.experienceType.monsters)]
		percent = math.random(self.experienceType.percent[1], self.experienceType.percent[2])
		typeName = 'Experience'
	elseif type == DAILYMONSTER_LOOT then
		name = self.lootType.monsters[math.random(1, #self.lootType.monsters)]
		percent = math.random(self.lootType.percent[1], self.lootType.percent[2])
		typeName = 'Loot'
	end

	setGlobalStorageValue('dailymonstername', name)
	setGlobalStorageValue('dailymonstertype', type)
	setGlobalStorageValue('dailymonsterpercent', percent)
	
	updateDailyMonster(name, type, percent)
	db.executeQuery('INSERT INTO `daily_monster` (`name`, `type`, `percent`, `lastday`) VALUES (' .. db.escapeString(name) .. ', ' .. type .. ', ' .. percent .. ', ' .. os.time() .. ')')

	print('>> ' .. name .. ' is the boosted creature of today ('.. percent .. '% of '  .. typeName .. ')')	
end

Gostaria muito desse script funcional, tenho esse mais nunca testei caso alguém tente? Ele é feito pra por na pasta LIB / daily_monster

Parte do Criaturescripts!

 

function onLogin(cid)
        local name = getGlobalStorageValue('dailymonstername')
        local type = getGlobalStorageValue('dailymonstertype')
        local percent = getGlobalStorageValue('dailymonsterpercent')
		
        if name and type and percent then
            local config = {
                [DAILYMONSTER_LOOT] = {message = "O bônus do monstro foi loot, então o monstro terá melhor drop de loot.", type = "Loot"},
                [DAILYMONSTER_EXPERIENCE] = {message = "O bônus do monstro foi experiência, então o monstro lhe dará mais experiência..", type = "Experience"}
            }

            local boost = config[type]
            if not boost then
            	return true
            end

            doPlayerSendTextMessage(cid, MESSAGE_EVENT_ADVANCE, "O monstro selecionado hoje foi: ".. name .."\nO atributo selecionado foi: (".. boost.type ..") com um bônus de: (".. (type == DAILYMONSTER_LOOT and 'Rate +' .. percent or percent .. '') .."%).\n\n" .. boost.message)
        end
	return true
end

 

Link para o post
Compartilhar em outros sites

Participe da conversa

Você pode postar agora e se cadastrar mais tarde. Se você tem uma conta, faça o login para postar com sua conta.

Visitante
Responder

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emojis são permitidos.

×   Seu link foi automaticamente incorporado.   Mostrar como link

×   Seu conteúdo anterior foi restaurado.   Limpar o editor

×   Não é possível colar imagens diretamente. Carregar ou inserir imagens do URL.

×
×
  • Criar Novo...

Informação Importante

Confirmação de Termo