-
Total de itens
963 -
Registro em
-
Última visita
-
Dias Ganhos
2
Tudo que SmiX postou
-
dúvida Ajuda Terminar O Meu Evento (Event Of Burned) Função Onstatschange
pergunta respondeu ao Bennyhappy de SmiX em Scripts
Tenta assim: -
Obrigado!! Valeu caotic... Acho que ficou meio sem graça esse sistema...
-
Errado: Ficaria assim, 200 +1, e no outfits.xml vc mudaria o "quest=201" tendeu??
-
Vai em talkactions.xml e edita assim: <talkaction log="yes" words="/addskill" access="5" event="function" value="addSkill"/> O access="5" é que define se o ADM, GM etc vai usar o comando. Segui está lista. Access ---- Nome 1 ---- Player 2 ---- Tutor 3 ---- Game Master 4 ---- Community Manager 5 ---- GOD
-
Vai na sua lib e crie um arquivo com qualquer nome e cole isso: function doCreateItemInThePos(itemID, pos, actionID) local itemPos = doCreateItem(itemID, pos) doSetItemActionId(itemPos, actionID) end Agora vai em globalevents/scripts e crie um arquivo com o nome desejado e cole isso: local config = { pos = {x = , y = , z = }, -- pos que vai criar o item tempo = , -- Tempo que vai levar pra pode criar outro itemID = , -- Id do item actionID = -- Action Id do Item } function function onStartup() addEvent(doCreateItemInThePos, config.tempo * 1000 * 60, config.itemID, config.pos, config.actionID) end em globalenvets.XML coleque está tag: <globalevent name="itemPost" type="start" event="script" value="nome do arquivo.lua"/> Pronto, espero ter ajudado.
- 4 respostas
-
- globalevent
- duvida
-
(e 1 mais)
Tags:
-
Sua primeira dúvida: Vai no diretório data/weapons/weapons.xml e abra-o edite da meneira abaixo: Se item que você quer editar seja um wand ou um rod faça assim: <wand id="Id do Wand" level="level minimo para se usar o wand" mana="quantidade de mana que vai tirar do player" min="hit minimo" max="hit maximo" type="tipo de dano" event="function" value="default"> <vocation id="id da vocação que poderá usalo"/> </wand> Se for uma Sword: <melee id="id da sword" level="level que o player precisa ter para usala corretamente" unproperly="1" event="function" value="default"> <vocation id="id da vocação que poderá usala"/> </melee> Se for alguma arma de distância: <distance id="id da arma level="level que o player precisa ter parta usala corretamente" unproperly="1" event="function" value="default"> <vocation id="id da vocação que irá usala"/> </distance> Segunda Dúvida: Usa segui esse script: Vai á pasta lib e crie um arquivo chamado OutfitsIds.lua e cole isso: function checkOutfitVocation(cid) local outfitsId = { [1] = 200, -- [Aqui vocÊ coloca o id da vocação] e depois do sinal " = " coloca o ultimo número +1 -- -- Para adicionar mais só precisa copiar a linha acima, mudar o [id] = e colocar o ultimo valor +1 } getVocation = outfitsId[getPlayerVocation(cid)] setPlayerStorageValue(cid, getVocation, 1) end Agora em creaturescripts/scripts/login.lua cole essa linha: checkOutfitVocation(cid) Agora vamos em data/XML/outfits.xml e procure a outfit que você quer edita-la. Segui o exemplo abaixo: <outfit id="1" quest="200"> <list gender="0" lookType="142" name="Nome da outfit female"/> <list gender="1" lookType="12" name="Nome da outfit male"/> </outfit> Você só precisará editar o (quest="200") quest será o id da lib que eu falei Pronto!! Espero que tenha intendido e ajudado.
-
Foi mal, eu estava sem otServer para testar.. Agora está funcionando a magia que você postou com bug: Tenta ai: local combat = createCombatObject() setCombatParam(combat, COMBAT_PARAM_EFFECT, CONST_ME_MAGIC_GREEN) setCombatParam(combat, COMBAT_PARAM_AGGRESSIVE, 0) local condition = createConditionObject(CONDITION_ATTRIBUTES) setConditionParam(condition, CONDITION_PARAM_TICKS, 10000) setConditionParam(condition, CONDITION_PARAM_SKILL_CLUB, 75) setConditionParam(condition, CONDITION_PARAM_SKILL_SHIELD, 125) setCombatCondition(combat, condition) local area = createCombatArea(AREA_CIRCLE3X3) setCombatArea(combat, area) function onCastSpell(cid, var) return doCombat(cid, combat, var) end
-
A sua primeira dúvida: Se o "hit" for menor que 250 automaticamente o script vai alterar o "hit" para 250. Sua segunda dúvida, tenta assim: local combat = createCombatObject() setCombatParam(combat, COMBAT_PARAM_EFFECT, CONST_ME_MAGIC_GREEN) setCombatParam(combat, COMBAT_PARAM_AGGRESSIVE, 0) local condition = createConditionObject(CONDITION_ATTRIBUTES) setConditionParam(condition, CONDITION_PARAM_TICKS, 10000) setConditionParam(condition, CONDITION_PARAM_SKILL_CLUB, 75) setConditionParam(condition, CONDITION_PARAM_SKILL_SHIELD, 125) setCombatCondition(combat, condition) setCombatCallback(combat, CALLBACK_PARAM_LEVELMAGICVALUE, "onGetFormulaValues") local area = createCombatArea(AREA_CIRCLE3X3) setCombatArea(combat, area) function onCastSpell(cid, var) return doCombat(cid, combat, var) end
-
Local incorreto. O correto seria Dúvidas e Pedidos de Scripts. Reportado!
-
^}^ Parabéns Luck, gostei muito da ideia da implementação de um "Banco do Brasil" em ots. RESP + pra tu
-
Olá pessoal, venho lhes trazer um sistema, que por minha parte achei legal, feito por mim ele se chama Advertence System. Funciona basicamente em cima de advertências; que o player poderá receber caso uma ocasião aconteça. Só existem duas ocasiões até o momento, porque fiquei sem ideias de mais. Vamos ver(ler) um exemplo: Chega de Delongas e vamos ao que interessa. Crie um arquivo no diretório data/actions/scripts chamado(nomeado) advertenciaSystemAction.lua abra-o e cole o seguinte código dentro: function onUse(cid, item, fromPosition, itemEx, toPosition) if getPlayerStorageValue(cid, advertenceStorage) == 1 then doPlayerPopupFYI(cid, advertencia_Premium) doRemoveItem(item.uid, 1) elseif getPlayerStorageValue(cid, advertenceStorage) == 2 then doPlayerPopupFYI(cid, msgNotIsPremium) doRemoveItem(item.uid, 1) end end Agora abra o arquivo actions.XML encontrado no diretório data/actions e cole a tag a seguir: <action itemid="" script="advertenciaSystemAction.lua"/> Agora vamos em data/creaturescript/script e em seguida crie um arquivo chamado(nomeado) advertenciaSystemCreatureScript.lua e cole o seguinte código dentro: function onLogin(cid) doPlayerSendIconAdvertencia(cid, premium) doPlayerSendIconAdvertencia(cid, notpremium) return true end Agora vamos abrir o arquivo creaturescript.XML e colaremos a tag abaixo: <event type="login" name="advertenciaSystem" event="script" value="advertenciaSystemCreatureScript.lua"/> Agora vamos a parte final dos scripts, vá até a pasta data/lib e crie um arquivo chamado(nomeado) advertenciaSystemLib.lua e cole o seguinte código dentro: ----------- Mensagens de Advertencias ----------- advertencia_Premium = "Congrulations, you now is a player Premium." msgNotIsPremium = ""..getCreatureName(cid)..", you dont have a premium. You need buy! /n Go to WebSite this ot for more informations." ----------- Mensagens de Advertencias ----------- ----------- Configuração Gerais ----------- iconAdvertence = advertenceStorage = 8274 ----------- Configuração Gerais ----------- --[[ Tabela dos Tipos de Advertencias contidos nesta Versão 1.0 types = { ["premium"] ["notpremium"] } ]]-- function doPlayerSendIconAdvertencia(cid, type) if type == "premium" and getPlayerPremiumDays(cid) > 0 then doPlayerAddItem(cid, iconAdvertence, 1) setPlayerStorageValue(cid, advertenceStorage, 1) elseif type == "notpremium" and getPlayerPremiumDays(cid) < 1 then doPlayerAddItem(cid, iconAdvertence, 1) setPlayerStorageValue(cid, advertenceStorage, 2) end end end Agora vamos colocar a imagem do Ícone de Advertência em seu cliente. Programas necessários: Siga o tutorial abaixo a risca caso contrário será inútil sua tentativa. Abra o DatEditor com o seu cliente como na imagem abaixo: Depois de feito vá ate o botão no “FILE->New->Item” como na imagem abaixo: Anote o itemtype do novo item: Agora vá ao botão “Import->Sprites” e procure a imagem do Ícone que você salvou. Agora aperte a tecla “INSERT” do seu teclado e a sua imagem irá aparecer deste lado <<: Agora aperte “CTRL+S” para salvar e pronto a 1ª parte de adicionar o item ao seu ot esta completa. Vamos agora introduzir o item no item.XML, abra o ItemOtEditor com o item.OTB do seu ot. Após feito isso vá a “Other” e procure qualquer um dos últimos itens da mesma lista e selecione-o. Em “sid” você colocara o “itemtype” do DatEditor que lhe mandei gravar. Agora marque a opção “Pickupable” agora salve e pronto. Abra seu item.XML e cole a seguinte linha: <item id="idDoItemDaListaOther" article="a" name="Advertence Icon"></item> idDoItemDaListaOther = Nesta parte você coloca o id do item da lista other que você selecionou. Pegue este mesmo id e vá na lib colocalo lá. Uffffa Terminou... Espero que gostem, façam criticas e reportem bugs. Mais por favor reportem bugs e não erro de instalação. Quem quiser postar mais advertências podem me dizer que eu faço... Créditos: Formatação: SmiX Scripts: SmiX Tutorial: SmiX
-
Dúvida Sanada! Reportado!
-
Tenta assim, não testei: local vocatons_Promotions = { } -- Aqui bota os ids das promotions, OBS tem que ser mais q um número function onSay(cid, words) for _, pid in ipairs(getPlayersOnline()) do if isInArray(vocatons_Promotions, getPlayerVocation(pid)) then doPlayerSendTextMessage(cid, 27, "Players Promoteds: \n "..getCreatureName(pid).."") end end return true end
-
Tenta essa:
-
[Encerrado] Sources Cryingdamson 0.3.6 (8.60) V5
um tópico no fórum postou SmiX Tópicos Sem Resposta
Alguém por favor teria as sources deste server?? cryingdamson 0.3.6 (8.60) V5 Espero respostas.. -
Pokextreme - (Pxo) O Primeiro Sem Base Pda !
tópico respondeu ao boxxer321 de SmiX em Lixeira Pública
O cara não coloca o Changelog que eu fiz n pow.. Esse changelog foi feito pra mostrar a meu Amigo como tava o anda GAME. Faz um changelog melhor po... Bota imagens do GAME e tals.. Tirando isso ta muito massa o server, quem foi que fez?? kkkkkkk -
¬¬ @lordbug, por um lado você esta certo, e as funções com parametros?? como ficariam?? aoPlayerDeUmItem = doPlayerAddItem(cid, itemId, count)
-
Obrigado por ajudar.. Vou tentar melhorar... @Edit A pedido de uma "certa" pessoa por PM, fiz esse dark pikachu... Podem usa-lo em seu ot.. Está livre..
-
Meu deus, ja vi gente sem criatividade mais essa foi foda. kkk Vodkartzin @Topic Ta ai o pedido: function onUse(cid, item) if getPlayerStorageValue(cid, config.storage) < 1 and os.clock() == 12:00 then doPlayerAddItem(cid, config.item_que_vai_ganhar, config.quantidade) doSendMagicEffect(getThingPos(cid), math.random(28, 30)) setPlayerStorageValue(cid, config.storage, 1) doPlayerSendTextMessage(cid, 25, "Congrulations, you are is doned the mission") else doPlayerSendCancel(cid, "The chest is empyt") return true end end Desculpa ai se o script não funcionar. É porque nunca usei o os.clock..
-
Olá galera, vim hoje aqui postar minha primeira outfit. Como eu estou muito nessecitado de sprites em meu projeto, tive que tomar a iniciantiva de fazer as próprias. E o resultado é esse abaixo: Como eu sou um tanto novato nesta aréa, peço a vocês experts em spriters: • Programas e ferramentas ideias para criação de sprites • Avaliem e deim dicas sobre a minha sprite • Um bom meio de criar uma Outline perfeita Aguardando avaliações... Atualizado 12/11/2012 as 08:42 Uma outlina feita sábado pela manhã: Aguardando avaliações...
-
Sistema de Funções Traduzidas - By SmiX Eu acho que tem pessoas que não se interessão em scripts(De Tibia) por todas as funções serem em inglês, portando eu trago a vocês a funções traduzidas. Essas funções ajudaram as pessoas que querem ou estão aprendendo fazer scripts. Elas são traduzidas e com uma boa dinamica de uso. Vamos aprender a instala-las; Vamos no diretório (data/lib) em seguida criaremos um arquivo chamado "funcoesTraduzidas.lua" não esqueça do formato ".lua". Agora abra o arquivo criado e cole o seguinte código nele: --[[ Funções Traduzidas Para iniciantes by: SmiX ]]-- function oValorDaStorageDoPlayer(cid, numerodaStorage) return getPlayerStorageValue(cid, numerodaStorage) end function aQuantidadeDeLifeDoCriatura(cid) return getCreatureHealth(cid) end function oMaximoDeLifeDaCriatura(cid) return getCreatureMaxHealth(cid) end function aQuantidadeDeManaDaCriatura(cid) return getCreatureMana(cid) end function oMaximoDeManaDaCriatura(cid) return getCreatureMaxMana(cid) end function aCriaturaQueManda(cid) return getCreatureMaster(cid) end function asCreaturasSumonadas(cid) return getCreatureSummons(cid) end function aRoupaDaCriatura(cid) return getCreatureOutfit(cid) end function aPosicaoDaCriatura(cid) return getCreaturePosition(cid) end function oNomeDaCriatura(cid) return getCreatureName(cid) end function aVelocidadeDaCriatura(cid) return getCreatureSpeed(cid) end function aVelocidadeBaseDaCriatura(cid) return getCreatureBaseSpeed(cid) end function oAlvoDaCriatura(cid) return getCreatureTarget(cid) end function oIdDaCaveiraDaCriatura(cid) return getCreatureSkullType(cid) end function aCondicaoDaCriatura(cid, condicao) return getCreatureCondition(cid, condicao) end function aCriaturaNaoMover(cid) return getCreatureNoMove(cid) end function oQueOPlayerPerdeDeSkill(cid) return getPlayerLossSkill(cid) end function oQueOPlayerPerdeEmPorcentagem(cid, idDaPorcentagemPerdida) return getPlayerLossPercent(cid, idDaPorcentagemPerdida) end function aFomeDaCriatura(cid) return getPlayerFood(cid) end function oLevelDoPlayer(cid) return getPlayerLevel(cid) end function aExperienciaDoPlayer(cid) return getPlayerExperience(cid) end function oMagicLevelDoPlayer(cid) return getPlayerMagLevel(cid) end function oAcessoDoPlayerNoJogo(cid) return getPlayerAccess(cid) end function oSkillDoPlayer(cid, idDoSkill) return getPlayerSkillLevel(cid, idDoSkill) end function aCidadeNatalDoPlayer(cid) return getPlayerTown(cid) end function aVocacaoDoPlayer(cid) return getPlayerVocation(cid) end function oPlayerTiverOItem(cid, itemId, quantidade) return getPlayerItemCount(cid, itemId, quantidade) end function oSoulDoPlayer(cid) return getPlayerSoul(cid) end function aContaDoPlayer(cid) return getPlayerAccount(cid) end function oIpDoPlayer(cid) return getPlayerIp(cid) end function aCapacidadeDoPlayer(cid) return getPlayerFreeCap(cid) end function aIluminacaoDoPlayer(cid) return getPlayerLight(cid) end function oSlotDoPlayer(cid, idDoSlot) return getPlayerSlotItem(cid, idDoSlot) end function osItensDoPlayerNoDepotPelaCidade(cid, idDaCidade) return getPlayerDepotItems(cid, idDaCidade) end function oIdDaGuildDoPlayer(cid) return getPlayerGuildId(cid) end function oNomeDaGuildDoPlayer(cid) return getPlayerGuildName(cid) end function oRankDaGuildDoPlayer(cid) return getPlayerGuildRank(cid) end function oCodinomeDoPlayerNaGuild(cid) return getPlayerGuildNick(cid) end function oLevelDoPlayerNaGuild(cid) return getPlayerGuildLevel(cid) end function oSexoDoPlayer(cid) return getPlayerSex(cid) end function aDirecaoEmQueOPlayerEstaOlhando(cid) return getPlayerLookDir(cid) end function asBlessingsDoPlayer(cid) return getPlayerBlessing(cid, blessing) end function aGlobalStorage(numerodaGlobalStorage) return getGlobalStorageValue(numerodaGlobalStorage) end function troqueAStorageDoPlayer(cid, numerodaStorage, valorDaStorage) return setPlayerStorageValue(cid, numerodaStorage, valorDaStorage) end function troqueAGlobalStorage(numerodaGlobalStorage, valorDaGlobalStorage) return setGlobalStorageValue(numerodaGlobalStorage, valorDaGlobalStorage) end function aoPlayerAdicioneLife(cid, life) return doCreatureAddHealth(cid, life) end function aoPlayerAdicioneMana(cid, mana) return doCreatureAddMana(cid, mana) end function crieUmMonstroNaPocisao(nomeDoMonstro, posicao) return doCreateMonster(nomeDoMonstro, posicao) end function crieUmNpcNaPosicao(nomeDoNpc, posicao) return doCreateNpc(nomeDoNpc, posicao) end function troqueARoupaDaCriatura(cid, idDaRoupa, tempoQueARoupaVaiFica) return doSetCreatureOutfit(cid, idDaRoupa, tempoQueARoupaVaiFica) end se = if continue = then fim = end senao = else maisse = elseif pare = break or end --[[ Funções Traduzidas Para iniciantes by: SmiX ]]-- Pronto, agora vou dizer quais e como vocês podem usar as funções traduzidas. Todas as funções traduzidas estão de facil uso e de bom intendimento. No total eu traduzi 50 funções, as mais usadas, no entanto vou traduzir mais e postar-las aqui. Vou dar um exemplo de Script Que Você podera fazer com essas funções, vou criar uma Action que da ao Player 50 de mana e life se ele tiver a storage 6501 igual a 1: local storage, life, mana = 6501, 50, 50 function onUse(cid, item) se oValorDaStorageDoPlayer(cid, storage) == 1 continue aoPlayerAdicioneLife(cid, life) aoPlayerAdicioneMana(cid, mana) fim fim Você poderá usar o "se" no lugar do "if", o "continue" no lugar do "then", o "fim" no lugar do "end", o "senao" no lugar do "else", o "maisse" no lugar do "elseif" e o "pare" no lugar do "break". Créditos: 100% - SmiX Espero que tenham gostado do sistema e espero comentários. Fuiii.
-
Troca a function onLogin por onThink() local effect = 55 -- Efeito que vai usar local pos = { x = 1342, y = 1659, z = 5 } local storage = 4001 -- Storage que o player precisa ter function onThink(interval) if getPlayerStorageValue(cid, storage) == 1 then SendEffect(cid) end return TRUE end function SendEffect(cid) doSendMagicEffect(pos, effect) return TRUE end
-
Tenta assim: local config = { itens_necessarios_quest1 = , itens_necessarios_quest2 = , itens_necessarios_quest3 = , itens_necessarios_quest4 = , storage_usada = 6569, iten_que_vai_ganhar = , quantidade_de_item_que_vai_ganhar = 6 } function onUse(cid, item) if getPlayerStorageValue(cid, config.storage_usada) < 1 then if(doPlayerRemoveItem(cid, config.itens_necessarios_quest1, 1)) then doSendMagicEffect(getThingPos(cid), math.random(28, 30)) setPlayerStorageValue(cid, config.storage_usada, 1) doPlayerSendTextMessage(cid, 27, "Congratulations you passed the mission: 2") doSendAnimatedText(getThingPos(cid), "COMPLETED", math.random(1, 215)) else doPlayerSendTextMessage(cid, 27, "Sorry, you need a ""..getItemNameById(config.itens_necessarios_quest1).."" for pass a next mission.") return true end elseif getPlayerStorageValue(cid, config.storage_usada) == 1 then if(doPlayerRemoveItem(cid, config.itens_necessarios_quest2)) then doSendMagicEffect(getThingPos(cid), math.random(28, 30)) setPlayerStorageValue(cid, config.storage_usada, 2) doPlayerSendTextMessage(cid, 27, "Congratulations you passed the mission: 3") doSendAnimatedText(getThingPos(cid), "COMPLETED", math.random(1, 215)) else doPlayerSendTextMessage(cid, 27, "Sorry, you need a ""..getItemNameById(config.itens_necessarios_quest2).."" for pass a next mission.") return true end elseif getPlayerStorageValue(cid, config.storage_usada) == 2 then if(doPlayerRemoveItem(cid, config.itens_necessarios_quest3)) then doSendMagicEffect(getThingPos(cid), math.random(28, 30)) setPlayerStorageValue(cid, config.storage_usada, 3) doPlayerSendTextMessage(cid, 27, "Congratulations you passed the mission: 4") doSendAnimatedText(getThingPos(cid), "COMPLETED", math.random(1, 215)) else doPlayerSendTextMessage(cid, 27, "Sorry, you need a ""..getItemNameById(config.itens_necessarios_quest3).."" for pass a next mission.") return true end elseif getPlayerStorageValue(cid, config.storage_usada) == 3 then if(doPlayerRemoveItem(cid, config.itens_necessarios_quest4)) then doSendMagicEffect(getThingPos(cid), math.random(28, 30)) setPlayerStorageValue(cid, config.storage_usada, -1) doPlayerSendTextMessage(cid, 27, "Congratulations you've completed all the missions, you can now do it again.") doSendAnimatedText(getThingPos(cid), "COMPLETED", math.random(1, 215)) doPlayerAddItem(cid, config.iten_que_vai_ganhar, config.quantidade_de_item_que_vai_ganhar) else doPlayerSendTextMessage(cid, 27, "Sorry, you need a ""..getItemNameById(config.itens_necessarios_quest4).."" for end the mission.") return true end end return true end
-
Como quiserem: O sistema foi feito para dar uma alegrada em alguns otServers e funciona basicamente assim; E se o ADM quiser pode fazer uma quest, que só possa faze-la se o player tiver um certo número de Curtidas... Espero que tenham intendindo a base do sistema... @All Eu estou editando o PDA do Slicer, e estou colocando uns sistemas legais nele... Sistemas: Egg system By SmiX, Encubadora System By SmiX, Icon System 2.0 By SmiX, Torneio System By SmiX, Proteção de Locker By SmiX... Aguardem...
-
pedido Arrume Minha Spell [ Só Falta Uma Funçaozinha ]
pergunta respondeu ao tonynamoral de SmiX em Scripts
Tenta assim: local combat1 = createCombatObject() local combat = createCombatObject() setCombatParam(combat,COMBAT_PARAM_TYPE, COMBAT_FIREDAMAGE) setCombatParam(combat,COMBAT_PARAM_EFFECT, CONST_ME_HITBYFIRE) setCombatParam(combat,COMBAT_PARAM_DISTANCEEFFECT,CONST_ANI_FIRE) setCombatFormula(combat,COMBAT_FORMULA_LEVELMAGIC,-1.3,-30,-1.7,0) -- errado local arr = { {0,0,0,0,0,1,0,0,0,0,0}, {0,1,0,0,0,1,0,0,0,1,0}, {0,0,1,0,0,1,0,0,1,0,0}, {0,0,0,1,0,1,0,1,0,0,0}, {0,0,0,0,1,1,1,0,0,0,0}, {1,1,1,1,1,3,1,1,1,1,1}, {0,0,0,0,1,1,1,0,0,0,0}, {0,0,0,1,0,1,0,1,0,0,0}, {0,0,1,0,0,1,0,0,1,0,0}, {0,1,0,0,0,1,0,0,0,1,0}, {0,0,0,0,0,1,0,0,0,0,0} } local arr2 = { {1,3,0} } local area = createCombatArea(arr) setCombatArea(combat1,area) local function onCastSpell1(parameters) doCombat(parameters.cid, combat1, parameters.var) end function onCastSpell(cid, var) addEvent(doCombat, 3 * 1000 , cid, combat, var) for a=0,7 do doSendDistanceShoot(getThingPos(cid), changeposbydir(getThingPos(cid), a, a>3 and 4 or 5), CONST_ANI_FIRE) end end
-
Quem Está Navegando 0 membros estão online
- Nenhum usuário registrado visualizando esta página.