Ir para conteúdo

christopher17288

Campones
  • Total de itens

    39
  • Registro em

  • Última visita

Sobre christopher17288

Perfil

  • Gênero
    Masculino

Informações

  • Forma que conheci o xTibia
    Otservs
  • Sou
    OT-Admin

christopher17288's Achievements

  1. O problema não é no script e sim no arquivo action.xml. Verifique o nome do arquivo especificado na XML e o nome do arquivo lua na pasta scripts, ambos têm de ser idênticos. Abraço.
  2. Quer que a explosão seja no SQM que o item foi jogado ou no player que jogou no chão?
  3. Fazer um complementozinho aqui no script do Dani... É que ele não fez a checagem que você queria, de não falar pro player de tal voc. local keywordHandler = KeywordHandler:new() local npcHandler = NpcHandler:new(keywordHandler) NpcSystem.parseParameters(npcHandler) function onCreatureAppear(cid) npcHandler:onCreatureAppear(cid) end function onCreatureDisappear(cid) npcHandler:onCreatureDisappear(cid) end function onCreatureSay(cid, type, msg) npcHandler:onCreatureSay(cid, type, msg) end function onThink() npcHandler:onThink() end -------------------------- ----PARTE CONFIGURAVEL---- -------------------------- local msgs = { ["mysterious island"] = "É uma ilha que antigos diziam ficar ao sudoeste de Carlin. Há um teleport que dizem aparecer nos pântanos de Venore, talvez, ele leve a essa ilha.", ["second promotion"] = "Há um NPC que vem de muito longe e fica a caminhas pelos campos de Thais, dizem que ele pode dar a segunda vocação para os aventureiros.", } local voc = 3 -- Voc que ele irá falar. ----------------------------- --FIM DA PARTE CONFIGURAVEL-- ----------------------------- function creatureSayCallback(cid, type, msg) if getPlayerVocation(cid) == voc then for k, v in pairs(msgs) do if msgcontains(msg, v) then npcHandler:say(msg[v], cid) end end else return npcHandler:say("Não falo com "..getPlayerVocationName(cid).."s.", cid) end return true end npcHandler:setCallback(CALLBACK_GREET, greetCallback) npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback) npcHandler:addModule(FocusModule:new())
  4. Não é mais fácil fazer por onStep ?
  5. Se alguém conseguir oque ? Por uma placa TP ? '-' Uma placa que faz com que teleport o player, porém, somente de 1 em 1 hr ? Se sim: local config = { pos = {x = 160, y = 54, z = 7}, --Pos para onde vai o indivíduo. storage = 838939, -- Não mecha } function convertTime(time) local t_table = {} t_table.days = math.floor(time / 86400) time = time - (t_table.days * 86400) t_table.hours = math.floor(time / 3600) time = time - (t_table.hours * 3600) t_table.minutes = math.floor(time / 60) t_table.seconds = time - (t_table.minutes * 60) return t_table end function onUse(cid, item, fromPosition, toPosition) if item.actionid == 5003 then if getPlayerStorageValue(cid, config.storage) >= 1 then local time_model = "%d minuto(s) e %d segundo(s)." local timeLeft = convertTime(getPlayerStorageValue(cid, config.storage) - os.time()) local str = "Desculpe, mas você só poderá clicar neste item novamente depois de "..time_model:format(timeLeft.minutes, timeLeft.seconds).."." doPlayerSendTextMessage(cid, 27, str) return doSendMagicEffect(getThingPos(cid), CONST_ME_POFF) else setPlayerStorageValue(cid, config.storage, os.time() + 1 * 60 * 60) doTeleportThing(cid, config.pos) doSendMagicEffect(getThingPos(cid), 37) return doSendAnimatedText(getThingPos(cid), "Teleport!", math.random(1,255)) end end return true end
  6. Olha colega, rsrs' Aqui está funcionando perfeitamente. Se liga, você vai usar o comando /spawn on e um BroadCast vai aparecer na tela (broadcast configuravel no script) e o teleport vai abrir em X posição. Dentro do teleport, eu recomendo que você crie uma pequena arena, como à minha: "Para melhor configuração." Bem, continuando.. Lá dentro, vão ser criados X bixos, (configuravel pelo script), nas posições "random", porém, somente dentro da areninha. Ou seja, vão ser criados tais bixos, de forma aleatória "em relação a posição", porém, somente dentro dessa tal arena. O mesmo acontece com os itens (que você também pediu). Eles também vao ser criados de forma aleatória dentro dessa arena, quanto a quantidade de itens, também será aleatória. (Tudo configurável pelo Script). Bom, pra você não se perder na parte do "inferior" e "superior". Aqui vai um exemplo: Quando você ver o script, vai entender o porque dessa print. rs' script: data/talkactions/talkactions.xml: <talkaction log="yes" words="/spawn" event="script" value="spawnrandom.lua"/> script: data/talkactions/talkactions.lua: monsters = {"Demon", "Ferumbras", "Ghoul", "Orshabaal", "Wolf", "Hydra", "Rat", "Cave Rat", "Medusa", "Fire Elemental"} -- nome dos monstros, pode adicionar mais. fromToPos = {{x = 155, y = 153, z = 9},{x = 166, y = 163, z = 9}} -- Position do Canto Esquerdo Superior. Position do Canto Direito Inferior. tpPos = {x = 159, y = 48, z = 7} -- Pos onde aparecerá o Teleport. tpPos1 = {x = 160, y = 157, z = 9} -- Pos para onde o teleport irá levar o Player. time = 10 --Tempo em que o Teleport fechará. mensagem = "O evento invasão terminou." -- Mensagem que será enviada quando o teleport fechar. mensagemcomeco = "O evento invasão iniciou." -- Mensagem que aparecerá assim que você usar o comando. itens = {2160, 2554, 2148} -- Id dos itens que serão criados. maximo_itens = 5 -- Maximo de itens que serão criados.// Cada item, pode ser criado de 1 a 5, de um modo random. function removeTp() local t = getTileItemById(tpPos, 1387).uid return t > 0 and doRemoveItem(t) and doSendMagicEffect(_Lib_Battle_Info.tpPos, CONST_ME_POFF) end function sortPosition(pos) --Função para fazer o random das Positions. local position = { x = math.random(pos[1].x, pos[2].x), y = math.random(pos[1].y, pos[2].y), z = 9 -- Não esqueça de configurar aqui, a posição Z do FromToPos. } return position end function CriarItens() for i = 1, #itens do a = 0 while a < 10 do a = a + 1 doCreateItem(itens[i],math.random(1, maximo_itens), sortPosition(fromToPos)) end end end function criarCriaturas() --Função para criar os Bichos. for i = 1, #monsters do doCreateMonster(monsters[i], sortPosition(fromToPos)) end addEvent(criarCriaturas, 60 * 1000) return true end function onSay(cid, words, param, channel) if (param == "on") then criarCriaturas() CriarItens() broadcastMessage(mensagemcomeco) doCreateTeleport(1387, tpPos1, tpPos) addEvent(removeTp, time * 60000) addEvent(broadcastMessage, time * 60000, mensagem) end return true end Não sei se era isso mesmo que você queria... Mas, qualquer coisa, comenta aew.. Vlw!
  7. creaturescript, use: function onLogin(cid) local storage,days = (getPlayerAccountId(cid)+550),1 if getGlobalStorageValue(storage) <= 0 then setGlobalStorageValue(storage, 1) addVipDays(cid, days) doCreatureSay(cid, "Você ganhou 1 dia de VIP!", TALKTYPE_ORANGE_1) end return true end E se você não usa o sistema de vip próprio do servidor, e sim baixou algum da net. Troque: addVipDaysByAccount(acc, 1) por: doPlayerAddPremiumDays(acc, 1) Não se esqueça da Tag. rs' Flw.
  8. Cara, tá.. Outra hora eu paro pra fazer o script pra ele não morrer pra qualquer tipo de criatura, sendo monstros ou players. Mas, agora eu só terminei esse que eu já tinha começado a fazer.. Que roda em torno de dois players se atacando. Aaahh.. E desculpa aew, o erro, sim, falta o 'returns false' e também eu não podia ter criado aquele local config. Mas como eu tinha relatado, nem conseguindo pensar eu não estava.. rsrs' Bom, aqui está o script funcionando, ele manda uma mensagem em segundos, para o player que está tentando atacar.. E quando acaba os segundos, o player consegue atacar. Mas isso, só vai acontecer, se o player morrer com a storage.. Bom, primeiramente, arquivo.lua, pro creaturescript: local storagelocal = 50508 --Storage que ele tem que ter, para quando morrer, virar imortal. local storageimortal = 394734534 --Storage de tempo, não mexe.. :V rsrs local tempo = 40 --Tempo em segundos, que o player vai ficar imortal. function onPrepareDeath(cid, corpse, deathlist) if (isPlayer(cid)) then if getPlayerStorageValue(cid, storagelocal) >= 1 then exhaustion.set(cid, storageimortal, tempo) end end return true end function onCombat(cid, target) if isPlayer(target) then if exhaustion.check(target, storageimortal) then doPlayerSendTextMessage(cid, 27,"O player "..getCreatureName(target).." ainda está imortal. Por: "..exhaustion.get(target, storageimortal).." ") return false end end return true end Com as Tags: <event type="preparedeath" name="MorteImortal" event="script" value="checagemimortal.lua"/> <event type="combat" name="AttackImortal" event="script" value="checagemimortal.lua"/> E os registros, pro login.lua: registerCreatureEvent(cid, "MorteImortal") registerCreatureEvent(cid, "AttackImortal") Lembrando que não precisa alterar os nomes, pra não correr o risco de erros, muda só o nome do arquivo, deixa o nome da tag. rs' Flw, até dps.
  9. Eu não entendi muito oque você disse.. '-' kkk' Não é essa a intenção ? Cada player só poder comprar 1 magia de cada grupo ? O Script roda assim: Tem 2 grupos, com 2 spells cada, se você chegar ao nivel 60 e comprar uma magia do grupo 1, você não pode mais comprar nenhuma outra magia do grupo 1. Mas, ao chegar level 100, você já ingressa no grupo 2 e pode comprar outras magias do level 100. Quando você usa "!buysupreme" dá para checar os leveis e as magias que podem ser compradas.. Em X Level, por X de grana. Não era isso que você queria? kkk ' Suas falas: '-' @ E veja se está tudo configurado certinho, tanto no script da creaturescripts quanto no da talkactions... Lembrando, a storage que você por no script de talkactions, tem que ser a mesma da Spell.. Assim como fiz nos exemplos acima.. '-' Caso queira, manda os nomes das magias pra mim, e os nomes do arquivo.lua que elas ficam, q eu configuro no script pra você..
  10. Cara... Vão dá 04:50 da manhã... Então, não vou testar, tava passando rápido e ví o pedido aí .. Bom, testa aí, se não funcionar, vejamos oque podemos fazer (se bem que só vou ter tempo agora, na quinta feita huahauha), mas alguém deve ajudar aí, é coisa simples.. '-' Tente em creaturescript/script checagemimortal.lua local config = { storagelocal = 50508, --Storage que ele tem que ter, para quando morrer, virar imortal. storageimortal = 39473, --Storage de tempo, não mexe.. :V rsrs tempo = 3600 --Tempo em segundos, que o player vai ficar imortal. } function onPrepareDeath(cid, corpse, deathlist) if getPlayerStorageValue(cid, config.storagelocal) >= 1 then setPlayerStorageValue(cid, config.storageimortal, 1) exhaustion.set(cid, config.storageimortal, config.time) end return true end function onCombat(cid, target) if isPlayer(cid) and isPlayer(target) then if getPlayerStorageValue(target, config.storageimortal) >= 1 then if exhaustion.check(cid, config.storageimortal) then return doPlayerSendCancel(cid, "O player "..getCreatureTarget(cid).." se mantem imortal ainda por "..exhaustion.get(cid, storage)..".") end end end return true end Tags: <event type="combat" name="CombatImortal" event="script" value="checagemimortal.lua"/> <event type="preparedeath" name="MorteImortal" event="script" value="checagemimortal.lua"/> Registers em login.lua registerCreatureEvent(cid, "CombatImortal") registerCreatureEvent(cid, "MorteImortal") Se tiver algum erro, perdão.. Não testei e são quase 05 da manhã .-.
  11. Fiz o script, mas por falta de atenção minha, eu fiz de um jeito diferente do que você pediu .. rs' Só 1 min.. Vou modifica-lo. @edit ! Bem, aqui voltamos nós.. rsrsrs' A primeira configuração, é opcional, mas acho que seria uma boa ... Uma boa mesmo ! "Para o System que tu quer" ... Tanto que fiz. rsrs' Bem, o primeiro System, é de o player receber mensagens ao ele chegar em X level, onde ele já possa comprar X magia. Assim: Bom.. Vamos lá, caso queira essa mensagenzinha, vá em: data/creaturescripts/creaturescript.xml e cole a Tag: <event type="advance" name="AdvanceLevel" event="script" value="checarlevel.lua"/> Registre-a no login.lua com: registerCreatureEvent(cid, "AdvanceLevel") Ainda em data/creaturescripts vá em /scripts e copie um arquivo.lua qualquer, cole lá mesmo e renomeie para: "checarlevel" Logo em seguida, isso dentro: local config = { levelgrupos = {grupo1 = 60, grupo2 = 100}, magiasgrupo1 = {magia1 = "exevo gran mas vis", magia2 = "exevo gran mas flam"}, magiasgrupo2 = {magia1 = "exevo gran mas mort", magia2 = "exevo gran mas san"} } function onAdvance(cid, skill, oldLevel, newLevel) if getPlayerLevel(cid) == config.levelgrupos.grupo1 then return doPlayerSendTextMessage(cid, 27, "Parabéns, você atingiu ao level ["..getPlayerLevel(cid).."] e ingressou ao Group1 ! Agora você pode obeter a ["..config.magiasgrupo1.magia1.."] ou ["..config.magiasgrupo1.magia2.."], utilize o comando !buysupreme+nomemagia para compra-la. Ex: !buysupreme "..config.magiasgrupo1.magia1..". Para mais informações, utilize o comando !buysupreme") end if getPlayerLevel(cid) == config.levelgrupos.grupo2 then return doPlayerSendTextMessage(cid, 27, "Você chegou ao level ["..getPlayerLevel(cid).."] e recebeu as opções de compra das supremes magias ["..config.magiasgrupo2.magia1.."] ou ["..config.magiasgrupo2.magia2.."], utilize o comando !buysupreme+nome magia para compra-la. Ex: !buysupreme "..config.magiasgrupo2.magia1..". Para mais informações, utilize o comando !buysupreme") end return true end Agora, mudando de rumo, vamos à: data/talkactions/talkactions.xml e colocar: <talkaction log="yes" words="!buysupreme" event="script" value="buyspells.lua"/> Depois, vamos em talkactions/scripts e copiar um qualquer lá, renomear para "buyspells" e colcar isso dentro: local config = { levelgroup1 = 60, --Level Group1. levelgroup2 = 100, --Level Group2. magiasgroup1 = {magia1 = "exevo gran mas vis", magia2 = "exevo gran mas flam", storage = 465412}, --Magias Grupo 1. Lembrete: Você pode adicionar mais magias, se souber.. magiasgroup2 = {magia1 = "exevo gran mas mort", magia2 = "exevo gran mas san", storage = 456422}, --Magias Grupo 2. Lembrete: Você pode adicionar mais magias, se souber.. moneymagiasgroup1 = 20000, --Quanto vai Custar cada Magia do Grupo 1. moneymagiasgroup2 = 40000, --Quanto vai Custar cada Magia do Grupo 2. } function onSay(cid, words, param) if param == '' then local str = ("SUPREME SPELLS:\n\n[Group 1] (Level "..config.levelgroup1.."): "..config.moneymagiasgroup1.." golds\n"..config.magiasgroup1.magia1.."\n"..config.magiasgroup1.magia2.."\n------------------------\n[Group 2] (Level "..config.levelgroup2.."): "..config.moneymagiasgroup2.." golds\n"..config.magiasgroup2.magia1.."\n"..config.magiasgroup2.magia2.."\n------------------------\n") doShowTextDialog(cid, 1821, str) return true end if param == config.magiasgroup1.magia1 then if getPlayerStorageValue(cid, config.magiasgroup1.storage) == 1 then return doPlayerSendTextMessage(cid, 27, "Você já comprou magias deste grupo.") end if getPlayerLevel(cid) >= config.levelgroup1 then if doPlayerRemoveMoney(cid, config.moneymagiasgroup1) then doPlayerSendTextMessage(cid,27, "Parabéééns! :V Você comprou a magia "..param..".") setPlayerStorageValue(cid, config.magiasgroup1.storage, 1) doSendMagicEffect(getPlayerPosition(cid), CONST_ME_FIREWORK_BLUE) return doSendAnimatedText(getPlayerPosition(cid), "Buy Magia", 18) else return doPlayerSendTextMessage(cid, 27, "Você não possui dinheiro suficiente para comprar esta magia.") end else return doPlayerSendTextMessage(cid, 27, "Você não possuir level suficiente para comprar esta magia. Utilize o comando !buysupreme para informações.") end elseif param == config.magiasgroup1.magia2 then if getPlayerStorageValue(cid, config.magiasgroup1.storage) == 1 then return doPlayerSendTextMessage(cid, 27, "Você já comprou magias deste grupo.") end if getPlayerLevel(cid) >= config.levelgroup1 then if doPlayerRemoveMoney(cid, config.moneymagiasgroup1) then doPlayerSendTextMessage(cid,27, "Parabéééns! :V Você comprou a magia "..param..".") setPlayerStorageValue(cid, config.magiasgroup1.storage, 1) doSendMagicEffect(getPlayerPosition(cid), CONST_ME_FIREWORK_BLUE) return doSendAnimatedText(getPlayerPosition(cid), "Buy Magia", 18) else return doPlayerSendTextMessage(cid, 27, "Você não possui dinheiro suficiente para comprar esta magia.") end else return doPlayerSendTextMessage(cid, 27, "Você não possuir level suficiente para comprar esta magia. Utilize o comando !buysupreme para informações.") end elseif param == config.magiasgroup2.magia1 then if getPlayerStorageValue(cid, config.magiasgroup2.storage) == 1 then return doPlayerSendTextMessage(cid, 27, "Você já comprou magias deste grupo.") end if getPlayerLevel(cid) >= config.levelgroup2 then if doPlayerRemoveMoney(cid, config.moneymagiasgroup2) then doPlayerSendTextMessage(cid,27, "Parabéééns! :V Você comprou a magia "..param..".") setPlayerStorageValue(cid, config.magiasgroup2.storage, 1) doSendMagicEffect(getPlayerPosition(cid), CONST_ME_FIREWORK_BLUE) return doSendAnimatedText(getPlayerPosition(cid), "Buy Magia", 18) else return doPlayerSendTextMessage(cid, 27, "Você não possui dinheiro suficiente para comprar esta magia.") end else return doPlayerSendTextMessage(cid, 27, "Você não possui level suficiente para comprar esta magia.") end elseif param == config.magiasgroup2.magia2 then if getPlayerStorageValue(cid, config.magiasgroup2.storage) == 1 then return doPlayerSendTextMessage(cid, 27, "Você já comprou magias deste grupo.") end if getPlayerLevel(cid) >= config.levelgroup2 then if doPlayerRemoveMoney(cid, config.moneymagiasgroup2) then doPlayerSendTextMessage(cid,27, "Parabéééns! :V Você comprou a magia "..param..".") setPlayerStorageValue(cid, config.magiasgroup2.storage, 1) doSendMagicEffect(getPlayerPosition(cid), CONST_ME_FIREWORK_BLUE) return doSendAnimatedText(getPlayerPosition(cid), "Buy Magia", 18) else return doPlayerSendTextMessage(cid, 27, "Você não possui dinheiro suficiente para comprar esta magia.") end else return doPlayerSendTextMessage(cid, 27, "Você não possui level suficiente para comprar esta magia.") end else doPlayerSendTextMessage(cid, 27, "Esta magia não faz parte de nenhum grupo, utilize o comando: !buysupreme para informações.") end return true end Ps: lá em cima, é a configuração. Dá para colocar mais spells, se você entender de scripts.. O script ficou meio grande, pois você queria algo configurável .. Certo? kk' Enfim, vou dá um exemplo de spell aqui: local combat = createCombatObject() setCombatParam(combat, COMBAT_PARAM_TYPE, COMBAT_PHYSICALDAMAGE) setCombatParam(combat, COMBAT_PARAM_EFFECT, CONST_ME_ENERGYHIT) setCombatParam(combat, COMBAT_PARAM_DISTANCEEFFECT, CONST_ANI_ENERGYBALL) setCombatFormula(combat, COMBAT_FORMULA_LEVELMAGIC, -120.5, -30, -120.1, 0) local condition = createConditionObject(CONDITION_HASTE) setConditionParam(condition, CONDITION_PARAM_TICKS, 22000) setConditionFormula(condition, -1.1, -1, -1.2, -1) setCombatCondition(combat, condition) local arr = { {0, 0, 1, 1, 1, 0, 0}, {0, 1, 1, 1, 1, 1, 0}, {1, 1, 1, 1, 1, 1, 1}, {1, 1, 1, 3, 1, 1, 1}, {1, 1, 1, 1, 1, 1, 1}, {0, 1, 1, 1, 1, 1, 0}, {0, 0, 1, 1, 1, 0, 0} } local area = createCombatArea(arr) setCombatArea(combat, area) function onCastSpell(cid, var) if (getPlayerStorageValue(cid, 465412) == 1) then doCombat(cid, combat, var) return doCreatureSay(cid, "Exevo Gram Mas Vis", TALKTYPE_ORANGE_1) else doPlayerSendCancel(cid,"Você precisa de level 60 e precisa ter comprado esta magia.") doSendMagicEffect(getThingPos(cid), CONST_ME_POFF) end return true end Você vai me achar um mongol e me perguntar, "porque ele tá deixando essa spelll aq???" Bom, é para você ver um exemplo de: if (getPlayerStorageValue(cid, 465412) == 1) then Ele checa se o player tem a storage "465412" se sim, ele faz executar a spell, se não, ele volta uma mensagem... ONDE O PLAYER GANHA ESSA STORAGE? Ham ? Ham ? Bom, lá no talkactions, você vai ver que na parte de: magiasgroup1 = {magia1 = "exevo gran mas vis", magia2 = "exevo gran mas flam", storage = 465412}, Ele envia essa storage para o player, quando o player compra a spell pelo comando... Mais especificamente dizendo: setPlayerStorageValue(cid, config.magiasgroup1.storage, 1) :V Era pra ser um comando, eu acabei criando um system .. hahaha' Mais uma coisinha, se você usar o comando "!buysupreme" sem ter nada na frente, ele abre um popup, assim: De acordo com as configurações que você fizer no local config. Bom, testa aí, dps responde aí em baixo, aqui funcionou perfeitamente.. :V (Se não souber adicionar mais spells no script, comenta aí.. Que eu ou alguém adc pra você.. rs') Flw!
  12. Passa mais informações... Ele dá use em algum item e troca x item por x magia? Ele compra por comando ? Ele compra de Npc?
  13. Ao ler o Erro, ví que o erro dá no SQLite e não em CreatureScripts. Se você tirar o script e matar algum player, tem certeza que esse erro não persiste, caso tire o script? '-' Se fosse algo com o script, ficaria o seguinte error: Error CreatureScript Interface - Error Creio.. rsrs' Tenta excluir a tag do script no creaturescript.xml, dá reload, matar alguém... Nos mostre o resultado, dps, mate alguém com o script rodando.. Só para vermos o resultado..
  14. Tha, então pra parar o erro, põe assim.. function onKill(cid, target, lastHit) if isPlayer(target) then return doSendMagicEffect(getThingPos(target), 65) end return true end Créditos pro Menino ali de cima. heheheh' Só fiz uma alteração para parar o erro... Player Chris matando o player Teste Dois Tres, efeito saindo, erro nenhum na distro.. http://prntscr.com/936yge
  15. Dei uma realçada nesse script. Se não funcionar, use: Em Data, creaturescripts, scripts: .lua function onPrepareDeath(cid, corpse, deathlist) if (isPlayer(cid)) then if getPlayerLevel(cid) >= 15 then local numero = 10 local porcento = getPlayerExperience(cid) * (numero/100) doPlayerAddExp(cid, - porcento) end end local health = getCreatureMaxHealth(cid) doCreatureAddHealth(cid, health) doTeleportThing(cid, getTownTemplePosition(getPlayerTown(cid))) return true end Data, creaturescripts, creaturescripts.xml: Tag: <event type="preparedeath" name="PrepareDeath" event="script" value="nome_do_arquivo.lua"/> Data, creaturescripts, login.lua: Adicione nos registros: registerCreatureEvent(cid, "PrepareDeath") Dê FeedBack ?
  • Quem Está Navegando   0 membros estão online

    • Nenhum usuário registrado visualizando esta página.
×
×
  • Criar Novo...