Ir para conteúdo

GstvoLiber

Campones
  • Total de itens

    64
  • Registro em

  • Última visita

Tudo que GstvoLiber postou

  1. Não entendi o que você quer saber... Tem como explicar sua dúvida melhor ?? -GstavoLiber
  2. Acho que já respondi essa pergunta umas 4x hoje rsrs... É por causa da sua Lib 050-function estar diferente da que o cara usou para fazer o sistema. Baixe algum servidor 8.60, ou 8.70 que utilize TFS, pegue essa lib e ponha no lugar do seu. Faça backup antes pra não bugar o servidor e vir me chingar. =D PS: Aconselho a aprender a falar em ingles, os caras descutiram no próprio tópico como arrumar esse erro. Se possível +REP -GstavoLiber
  3. Lendo os comentários, percebi que não é só você que está com esses problemas, então, vi a solução: Na sua pasta Libs tem um arquivo chamado 050-function. Procure pelo servidor OTX 2.1 - 8.60 e procure o mesmo arquivo, depois copie e cole no lugar do seu. Isso deve resolver. Provavelmente é por causa do seu TFS ser diferente, e falta algumas funções na lib 050-function. Tenta ai qualquer coisa me pergunta. Se possível +REP -GstavoLiber
  4. GstvoLiber

    [query] Ban

    Cara, vai ser dificil rsrs Tenta executar isso CREATE TABLE ban_table ( id INTEGER NOT NULL, account INTEGER NOT NULL, added INTEGER NOT NULL, expires INTEGER NOT NULL, admin_id INTEGER NOT NULL DEFAULT 0, comment TEXT NOT NULL, PRIMARY KEY ( id ) ); Se nao funcionar mesmo assim, e seu server for 9.6 +, troca seu sistema de ban por esse: BAN SYSTEM 9.6 (sei que está linkado outro fórum, só estou tentando ajudar.) Se possível +REP -GstavoLiber
  5. GstvoLiber

    Premium

    Cara, faz um favor, entra na sua pasta liquids e pega o código da sua mana potion sem ser o meu código, quero ver quais as funções ele usa, é provavel que seu TFS não aceite um função que puis ai... No Aguardo.
  6. Nossa nem deu tempo deu responder rsrsrs. Ai depois só falta por o actionid no tile né? Ou nem precisa?
  7. Nesse seu caso, é só mudar na linha: setCombatParam(combat, COMBAT_PARAM_CREATEITEM, 1492) Para um ID de firefield que não cause dano, agora sobre o PZ não tenho idéia rsrs.
  8. Simples, em actions/scripts Cria um arquivo novo com qualquer nome .lua e poe dentro... ----- Config ----- local config = { cost = 500, -- Price item_id = 7620, -- Rune/Potion backpack_id = 2001 -- Backpack } local name = getItemNameById(7620) -- Same as item_id above ----- End Config ----- function onUse(cid, item, fromPosition, itemEx, toPosition) if doPlayerRemoveMoney(cid, config.cost) == TRUE then local bp = doPlayerAddItem(cid, config.backpack_id, 1) doSendMagicEffect(fromPosition, CONST_ME_GIFT_WRAPS) doSendAnimatedText(fromPosition, "Comprado", TEXTCOLOR_RED) doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_RED, "VOcê comprou uma backpack de ".. name .."s por ".. config.cost .." gold.") for i=1,20 do doAddContainerItem(bp, config.item_id, 1) -- You can edit this number, it will give shots per rune. end else doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Você precisa de ".. config.cost .." gold para comprar uma backpack de ".. name .."s.") end return TRUE end Modifique o id da potion, o preço, e o id da backpack. Em Actions.xml adicione... <action actionid="2000" event="script" value="nomeDoArquivo.lua"/> Mude o 2000 para um numero de actionid valido em seu servidor, e o nome do arquivo para o qual vc salvou o arquivo de cima. Depois no RME vai na alavanca e clica com botao direito e vai em propriedades, e poe o numero da actionid igual ao que vc configurou ali em cima. Peguei esse código de um membro de outro fórum. Créditos a rollback. Se possível +REP -GstavoLiber
  9. É só substituir por esse: local keywordHandler = KeywordHandler:new() local npcHandler = NpcHandler:new(keywordHandler) NpcSystem.parseParameters(npcHandler) local talkState = {} local parameters = {} local teleports = { ["Random Void"] = {price = 100, position = {x = 0, y = 0, z = 7}} } 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 function onCreatureSayCallback(cid, type, msg) if(not npcHandler:isFocused(cid)) then return false end local talkUser = NPCHANDLER_CONVBEHAVIOR == CONVERSATION_DEFAULT and 0 or cid for name, info in pairs(teleports) do if msgcontains(msg, name) then selfSay("Você quer ir para {".. name .."}?", cid) talkState[talkUser] = 1 parameters[talkUser] = info break end end if talkState[talkUser] == 1 then if msgcontains(msg, "yes") then if isPlayerPzLocked(cid) or getCreatureSkullType(cid) > 0 then selfSay("Desculpe, você não pode viajar com PZ ou Skull por favor volte quando não estiver com PZ ou Skull.", cid) return true end if doPlayerRemoveMoney(cid, parameters[talkUser].price) then doTeleportThing(cid, parameters[talkUser].position) selfSay("Boa viagem!", cid) else selfSay("Desculpe, você não possui ".. parameters[talkUser].price .." gp para viajar.", cid) talkState[talkUser] = 0 end elseif msgcontains(msg, "no") then selfSay("Tudo bem, volte quando mudar de ideia.", cid) talkState[talkUser] = 0 npcHandler:releaseFocus(cid) end end return true end local msg = "Olá, |PLAYERNAME|. Gostaria de viajar? Posso te levar para: " local i = 1 for name, info in pairs(teleports) do msg = msg .." {".. name .."}" .. (i == 1 and "" or ", ") i = i + 1 end npcHandler:setMessage(MESSAGE_GREET, msg) npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, onCreatureSayCallback) npcHandler:addModule(FocusModule:new()) Qualquer erro ou dúvida me pergunte. Se possível +REP -GstavoLiber
  10. GstvoLiber

    Premium

    Mostra pra min oque aconteceu no distro... Lembrando que esse script só vai funcionar se for com mana potion, testa primeiro usando a mana potion, se ela funcionar, é porque vc editou o antidote potion errado. Mas antes de tudo, faz como eu te disse, como exemplo na potion mana simples, se nela funcionar me avise.
  11. É um erro na tabela de Treiner Offline, você executou algum comando na database sobre o mesmo? Qual foi?
  12. GstvoLiber

    Premium

    Mas você testou, funcionou??
  13. blessingReductionBase = 30 blessingReductionDecrement = 5 eachBlessReduction = 8 Traduzindo, talvez não seja isso, mas quase certeza: blessingReductionBase = Percentual de redução da bless blessingReductionDecrement = Decremento da bless ( acho que tira um pouco dos 30% ) eachBlessReduction = valor de redução de CADA bless Se possível +REP -GstavoLiber
  14. Bom, fiz esse script para sanar uma dúvida de um membro da comunidade, e quero compartilhar com vocês, acho que não chega a ser um tutorial, mas está bem explicado e espero que usem =) Veja: -Antes de mais nada, entre no seu RME e faça a área da quest, depois modifique as coordenadas no script segundo seu mapa. - Lembre-se de colocar um tile diferente para ajudar o player a saber a posição correta de onde estar, e de por a alavanca no lugar correto. - Adicione mais posições para nascer os monstros, quanto mais posições mais dinamico fica sua quest. Em Actions/scripts, adicione um novo documento .lua com nome que desejar, e ponha isso dentro.. local TeleportInPos = { x = 74, y = 111, z = 10} -- Posição para onde os players serão teleportados local LeverPos = { x = 90, y = 110, z = 10} -- Posição da Alavanca local timeToRemove = 40 -- Time before quest reset local tile1Pos = { x = 80, y = 80, z = 8 } -- lugar que o player deverá estar para puxar a alavanca local str = 2000 -- modifique para um storage valido no seu server local config = { { x = 19, y = 8, z = 7 }, { x = 20, y = 10, z = 7 }, { x = 23, y = 12, z = 7 }, { x = 22, y = 11, z = 7 }, { x = 28, y = 20, z = 7 } } function onUse(cid, item, frompos, item2, topos) if(getCreaturePosition(cid) == tile1Pos) then if(getPlayerStorageValue(uid, str) == 0) then doTeleportThing(cid, TeleportInPos) doSendMagicEffect(TeleportInPos, CONST_ME_TELEPORT) doPlayerSendTextMessage(cid,22,"Agora começará sua quest. Bom sorte! ") addEvent(wave1(cid), 10) addEvent(wave2(cid), 10) addEvent(wave10(cid), 1) else doPlayerSendTextMessage(cid,22,"Você não está na posição correta, ou já fez essa quest! ") -- Mensagem caso o char n esteja no tile correto end end end function wave1(cid) doCreateMonster(Dragon, config[math.random(1, #config)]) doCreateMonster(Demodras, config[math.random(1, #config)]) end function wave2(cid) doCreateMonster(Hydra, config[math.random(1, #config)]) doCreateMonster(Spider, config[math.random(1, #config)]) end function wave10(cid) doCreateMonster(TheBoss, config[math.random(1, #config)]) end Então, embaixo de: function wave2(cid) doCreateMonster(Hydra, config[math.random(1, #config)]) doCreateMonster(Spider, config[math.random(1, #config)]) end Adicione quantas waves quiser, seguindo o modelo: function waveN(cid) doCreateMonster(MONSTRO, config[math.random(1, #config)]) doCreateMonster(MONSTRO, config[math.random(1, #config)]) end n = numero da wave MONSTRO = nome do monstro Depois, em baixo de: addEvent(wave2(cid), 10) Adicione quantas waves vc tiver, seguindo o modelo: addEvent(waveN(cid), 10) Onde n = numero da wave Feito isso tudo, bora configurar para iniciar o evento... Em actions.xml adicione a linha: <action uniqueid="1026" script="nomedoarquivo.lua"/> Mude o nome do arquivo, e no RME coloque o uniqueid 1026 na sua alavanca, que deverá estar no lugar correto também. Depois disso, devemos modificar o arquivo do monstro ( The Boss). Para isso continue: Em Creaturescript/scripts adicione um arquivo com nome de sua escolha .lua e coloque isso dentro: function onDeath(cid, corpse, killer) local Pos = {x = 340, y = 840, z = 15} -- posicao para onde o player irá (sala de premios) local monstName = "TheBoss" -- nome do monstro if isMonster(cid) then if string.lower(getCreatureName(cid)) == string.lower(monstName) then doTeleportThing(killer[1], Pos) end end return TRUE end Modifique apenas a posição para a qual o player será teleportado e o nome do monstro boss. Feito isso, volte para creaturescripts.xml e adicione: <event type="death" name="Teleportquest" event="script" value="quest1.lua"/> Modificando o nome do arquivo. Estamos quase acabando ! rsrs Vá para a pasta monster e procure pelo arquivo do monstro escolhido para ser o boss, no meu caso escolhi o TheBoss, dentro do arquivo do boss, coloque: <script> <event name="Teleportquest"/> </script> E pronto !! A quest está feita. EXTRA Agora, basta ir em actions/scripts e criar um novo arquivo para o bau da quest com qualquer nome .lua e adicionar dentro: function onUse(cid, item, frompos, item2, topos) if item.uid == 2001 then -- mude para um valor que será colocado em uniqueid no bau queststatus = getPlayerStorageValue(cid,2000) -- mude para o numero da sua storage if queststatus == -1 or queststatus == 0 then doPlayerSendTextMessage(cid,22,"Você Achou Um Bolo De 100k") item_uid = doPlayerAddItem(cid,2160,10) -- mude o premio! 2160 = Crystal Coin e 10 = quantidade. setPlayerStorageValue(cid,2000,1) -- mude apenas o 2000 para o valor da sua storage else doPlayerSendTextMessage(cid,22,"Você já fez esta quest! ") end end return true end Faça as modificações que achar necessário. Depois em actions.xml adicione: <action uniqueid="2001" script="bau1.lua"/> No RME, agora no baú, adicione a uniqueid, no meu caso 2001. Bom, espero que goste e utilize em seu servidor!! Se possivel, +REP Utilizei como base Script do Vodkart para o teleport. ( acho que é assim que escreve o nick dele ). -GstavoLiber
  15. GstvoLiber

    Premium

    Bom, para seu numero 1, basta modificar seus codigos de Potion em actions/scripts/liquids.. Veja um exemplo da mana potion... local MIN = 70 local MAX = 130 local EMPTY_POTION = 7636 local exhaust = createConditionObject(CONDITION_EXHAUST) setConditionParam(exhaust, CONDITION_PARAM_TICKS, (getConfigInfo('timeBetweenExActions') - 100)) function onUse(cid, item, fromPosition, itemEx, toPosition) if isPlayer(itemEx.uid) == FALSE then return FALSE end if hasCondition(cid, CONDITION_EXHAUST_HEAL) == TRUE then doPlayerSendDefaultCancel(cid, RETURNVALUE_YOUAREEXHAUSTED) return TRUE end if doPlayerAddMana(itemEx.uid, math.random(MIN, MAX)) == LUA_ERROR then return FALSE end doAddCondition(cid, exhaust) doSendMagicEffect(getThingPos(itemEx.uid), CONST_ME_MAGIC_BLUE) doCreatureSay(itemEx.uid, "Aaaah...", TALKTYPE_ORANGE_1) doRemoveItem(item.uid, 1) doPlayerAddItem(cid, EMPTY_POTION, 1) return TRUE end Modifiquei por.. local MIN = 70 local MAX = 130 local EMPTY_POTION = 7636 local ehPremmy = getPlayerPremiumDays(cid) local exhaust = createConditionObject(CONDITION_EXHAUST) setConditionParam(exhaust, CONDITION_PARAM_TICKS, (getConfigInfo('timeBetweenExActions') - 100)) function onUse(cid, item, fromPosition, itemEx, toPosition) if(ehPremmy >= 1) then if isPlayer(itemEx.uid) == FALSE then return FALSE end if hasCondition(cid, CONDITION_EXHAUST_HEAL) == TRUE then doPlayerSendDefaultCancel(cid, RETURNVALUE_YOUAREEXHAUSTED) return TRUE end if doPlayerAddMana(itemEx.uid, math.random(MIN, MAX)) == LUA_ERROR then return FALSE end doAddCondition(cid, exhaust) doSendMagicEffect(getThingPos(itemEx.uid), CONST_ME_MAGIC_BLUE) doCreatureSay(itemEx.uid, "Aaaah...", TALKTYPE_ORANGE_1) doRemoveItem(item.uid, 1) doPlayerAddItem(cid, EMPTY_POTION, 1) return TRUE else doPlayerSendTextMessage(cid, 27, "Você não é premium account !") end end Pronto, agora acho que só usa quem for Premmy Account. Possíveis erros: - Você utiliza um sistema de premium diferente do global; - O player restaura mana, mas ao invez dos efeitos ele retorna a mensagem de que não é premium; Bom, caso ele continue cosneguindo usar a potion, talvez você deva mecher aqui : Em actions/scripts/liquids no arquivo potions.lua : local config = { removeOnUse = "no", usableOnTarget = "yes", -- can be used on target? (fe. healing friend) splashable = "no", realAnimation = "no", -- make text effect visible only for players in range 1x1 healthMultiplier = 1.0, manaMultiplier = 1.0, } config.removeOnUse = getBooleanFromString(config.removeOnUse) config.usableOnTarget = getBooleanFromString(config.usableOnTarget) config.splashable = getBooleanFromString(config.splashable) config.realAnimation = getBooleanFromString(config.realAnimation) local POTIONS = { [8704] = {empty = 7636, splash = 2, health = {50, 100}}, -- small health potion [7618] = {empty = 7636, splash = 2, health = {100, 200}}, -- health potion [7588] = {empty = 7634, splash = 2, health = {200, 400}, level = 50, vocations = {3, 4, 7, 8}, vocStr = "knights and paladins"}, -- strong health potion [7591] = {empty = 7635, splash = 2, health = {500, 700}, level = 80, vocations = {4, 8}, vocStr = "knights"}, -- great health potion [8473] = {empty = 7635, splash = 2, health = {800, 1000}, level = 130, vocations = {4, 8}, vocStr = "knights"}, -- ultimate health potion [7620] = {empty = 7636, splash = 7, mana = {70, 130}}, -- mana potion [7589] = {empty = 7634, splash = 7, mana = {110, 190}, level = 50, vocations = {1, 2, 3, 5, 6, 7}, vocStr = "sorcerers, druids and paladins"}, -- strong mana potion [7590] = {empty = 7635, splash = 7, mana = {200, 300}, level = 80, vocations = {1, 2, 5, 6}, vocStr = "sorcerers and druids"}, -- great mana potion [8472] = {empty = 7635, splash = 3, health = {200, 400}, mana = {110, 190}, level = 80, vocations = {3, 7}, vocStr = "paladins"} -- great spirit potion } local exhaust = createConditionObject(CONDITION_EXHAUST) setConditionParam(exhaust, CONDITION_PARAM_TICKS, (getConfigInfo('timeBetweenExActions') - 100)) function onUse(cid, item, fromPosition, itemEx, toPosition) local potion = POTIONS[item.itemid] if(not potion) then return false end if(not isPlayer(itemEx.uid) or (not config.usableOnTarget and cid ~= itemEx.uid)) then if(not config.splashable) then return false end if(toPosition.x == CONTAINER_POSITION) then toPosition = getThingPos(item.uid) end doDecayItem(doCreateItem(2016, potion.splash, toPosition)) doTransformItem(item.uid, potion.empty) return true end if(hasCondition(cid, CONDITION_EXHAUST_HEAL)) then doPlayerSendDefaultCancel(cid, RETURNVALUE_YOUAREEXHAUSTED) return true end if(((potion.level and getPlayerLevel(cid) < potion.level) or (potion.vocations and not isInArray(potion.vocations, getPlayerVocation(cid)))) and not getPlayerCustomFlagValue(cid, PLAYERCUSTOMFLAG_GAMEMASTERPRIVILEGES)) then doCreatureSay(itemEx.uid, "Only " .. potion.vocStr .. (potion.level and (" of level " .. potion.level) or "") .. " or above may drink this fluid.", TALKTYPE_ORANGE_1) return true end local health = potion.health if(health and not doCreatureAddHealth(itemEx.uid, math.ceil(math.random(health[1], health[2]) * config.healthMultiplier))) then return false end local mana = potion.mana if(mana and not doPlayerAddMana(itemEx.uid, math.ceil(math.random(mana[1], mana[2]) * config.manaMultiplier))) then return false end doSendMagicEffect(getThingPos(itemEx.uid), CONST_ME_MAGIC_BLUE) if(not realAnimation) then doCreatureSay(itemEx.uid, "Aaaah...", TALKTYPE_ORANGE_1) else for i, tid in ipairs(getSpectators(getCreaturePosition(cid), 1, 1)) do if(isPlayer(tid)) then doCreatureSay(itemEx.uid, "Aaaah...", TALKTYPE_ORANGE_1, false, tid) end end end doAddCondition(cid, exhaust) if(not potion.empty or config.removeOnUse) then doRemoveItem(item.uid, 1) return true end doRemoveItem(item.uid, 1) doPlayerAddItem(cid, potion.empty, 1) return true end Modifiquei por: local config = { removeOnUse = "no", usableOnTarget = "yes", -- can be used on target? (fe. healing friend) splashable = "no", realAnimation = "no", -- make text effect visible only for players in range 1x1 healthMultiplier = 1.0, manaMultiplier = 1.0, TemPremmy = getPlayerPremiumDays(cid) } config.removeOnUse = getBooleanFromString(config.removeOnUse) config.usableOnTarget = getBooleanFromString(config.usableOnTarget) config.splashable = getBooleanFromString(config.splashable) config.realAnimation = getBooleanFromString(config.realAnimation) local POTIONS = { [8704] = {empty = 7636, splash = 2, health = {50, 100}}, -- small health potion [7618] = {empty = 7636, splash = 2, health = {100, 200}}, -- health potion [7588] = {empty = 7634, splash = 2, health = {200, 400}, level = 50, vocations = {3, 4, 7, 8}, vocStr = "knights and paladins"}, -- strong health potion [7591] = {empty = 7635, splash = 2, health = {500, 700}, level = 80, vocations = {4, 8}, vocStr = "knights"}, -- great health potion [8473] = {empty = 7635, splash = 2, health = {800, 1000}, level = 130, vocations = {4, 8}, vocStr = "knights"}, -- ultimate health potion [7620] = {empty = 7636, splash = 7, mana = {70, 130}}, -- mana potion [7589] = {empty = 7634, splash = 7, mana = {110, 190}, level = 50, vocations = {1, 2, 3, 5, 6, 7}, vocStr = "sorcerers, druids and paladins"}, -- strong mana potion [7590] = {empty = 7635, splash = 7, mana = {200, 300}, level = 80, vocations = {1, 2, 5, 6}, vocStr = "sorcerers and druids"}, -- great mana potion [8472] = {empty = 7635, splash = 3, health = {200, 400}, mana = {110, 190}, level = 80, vocations = {3, 7}, vocStr = "paladins"} -- great spirit potion } local exhaust = createConditionObject(CONDITION_EXHAUST) setConditionParam(exhaust, CONDITION_PARAM_TICKS, (getConfigInfo('timeBetweenExActions') - 100)) function onUse(cid, item, fromPosition, itemEx, toPosition) local potion = POTIONS[item.itemid] if(config.TemPremmy >= 1) then if(not potion) then return false end if(not isPlayer(itemEx.uid) or (not config.usableOnTarget and cid ~= itemEx.uid)) then if(not config.splashable) then return false end if(toPosition.x == CONTAINER_POSITION) then toPosition = getThingPos(item.uid) end doDecayItem(doCreateItem(2016, potion.splash, toPosition)) doTransformItem(item.uid, potion.empty) return true end if(hasCondition(cid, CONDITION_EXHAUST_HEAL)) then doPlayerSendDefaultCancel(cid, RETURNVALUE_YOUAREEXHAUSTED) return true end if(((potion.level and getPlayerLevel(cid) < potion.level) or (potion.vocations and not isInArray(potion.vocations, getPlayerVocation(cid)))) and not getPlayerCustomFlagValue(cid, PLAYERCUSTOMFLAG_GAMEMASTERPRIVILEGES)) then doCreatureSay(itemEx.uid, "Only " .. potion.vocStr .. (potion.level and (" of level " .. potion.level) or "") .. " or above may drink this fluid.", TALKTYPE_ORANGE_1) return true end local health = potion.health if(health and not doCreatureAddHealth(itemEx.uid, math.ceil(math.random(health[1], health[2]) * config.healthMultiplier))) then return false end local mana = potion.mana if(mana and not doPlayerAddMana(itemEx.uid, math.ceil(math.random(mana[1], mana[2]) * config.manaMultiplier))) then return false end doSendMagicEffect(getThingPos(itemEx.uid), CONST_ME_MAGIC_BLUE) if(not realAnimation) then doCreatureSay(itemEx.uid, "Aaaah...", TALKTYPE_ORANGE_1) else for i, tid in ipairs(getSpectators(getCreaturePosition(cid), 1, 1)) do if(isPlayer(tid)) then doCreatureSay(itemEx.uid, "Aaaah...", TALKTYPE_ORANGE_1, false, tid) end end end doAddCondition(cid, exhaust) if(not potion.empty or config.removeOnUse) then doRemoveItem(item.uid, 1) return true end doRemoveItem(item.uid, 1) doPlayerAddItem(cid, potion.empty, 1) return true else doPlayerSendTextMessage(cid, 27, "Você não é premium account !") end end Em outras palavras, antes de executar o código que adiciona mana para os players, eu testei se ele era premium, se fosse, executava o código, se não, parava. Aguardo FeedBack. -GstavoLiber
  16. GstvoLiber

    Spells Rain

    Bom, de spell não entendo muito, mas existe um GlobalEvent, no qual, faz chover em seu servidor, ou mais preciso, em volta de seu personagem, dando a impressão de que está chovendo no mundo do tibia... Com esse globalevent posso te ajudar, mas com as spells... ai não manjo. Aguardo.
  17. #x5tv2 #x5tv #tixinhadois #melaotreze A placa Zotac 610 2gb ddr3 é uma boa placa ?? Valeu!
  • Quem Está Navegando   0 membros estão online

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