-
Total de itens
153 -
Registro em
-
Última visita
-
Dias Ganhos
9
Tudo que Antharaz postou
-
eu não te passei o script todo, erro meu, editei o primeiro post... basta substituir o anterior por este, mil perdões.
-
Coloque o script transform.lua na pasta data/talkactions/scripts/, verifique se digitou o nome corretamente... eu não te passei o script todo, erro meu, editei o primeiro post...
-
Sei que é um pouco tarde, mas antes tarde do que nunca: local target = 0 local prevTarget = 0 local maxChaseDistance = 20 local origPos = 0 local origDir = NORTH local lastAttack = 0 local followTimeout = 10 local function isSkulled(cid) local idType = isPlayer(cid) if (idType ~= 1) then return true end return false end local function goToOrigPos() target = 0 lastAttack = 0 selfFollow(0) doTeleportThing(getNpcCid(), origPos) end local function updateTarget() if(target == 0) then local list = getSpectators(getNpcPos(), 8, 8, false) for i=1, #list do local _target = list[i] if(_target ~= 0) then print() if (isMonster(_target) and selfFollow(_target)) then selfFollow(_target) target = _target prevTarget = target break elseif(isPlayer(_target) == TRUE and getPlayerSkullType(_target) >= 3 and getPlayerSkullType(_target) <= 5 and selfFollow(_target) and getPlayerAccess(_target) <= 2 ) then target = _target if(target ~= prevTarget) then selfSay("We do not tolerate people like you here!") end prevTarget = target break end end end end end function onCreatureAppear(cid) if(cid == getNpcCid()) then --Wake up call origPos = getNpcPos() --origLook = getCreatureDir(cid) end end function onCreatureDisappear(cid) if(target == cid) then goToOrigPos() end end function onCreatureMove(creature, oldPos, newPos) -- end function onThink() updateTarget() if(target == 0) then return end local playerPos = getCreaturePosition(target) local myPos = getNpcPos() if(myPos.z ~= playerPos.z) then goToOrigPos() return end if(math.abs(myPos.x - origPos.x) > maxChaseDistance or math.abs(myPos.y - origPos.y) > maxChaseDistance) then selfSay("I'll catch you next time.") goToOrigPos() return end if(lastAttack == 0) then lastAttack = os.clock() end if(os.clock() - lastAttack > followTimeout) then --To prevent bugging the npc by going to a place where he can't reach selfSay("You got me this time, but just wait.") goToOrigPos() return end if( (math.abs(playerPos.x - myPos.x) <= 1) and (math.abs(playerPos.y - myPos.y) <= 1)) then doTargetCombatHealth(getNpcCid(), target, COMBAT_LIFEDRAIN, -200, -300, CONST_ME_BLOCKHIT) lastAttack = os.clock() end end Testei em TFS 0.3.7 e funcionou certinho esse script com alterações que fiz, não entendi a gambiarra que tu arrumou neste seu npc, mas enfim... ele ataca monstros e jogadores com skulls brancas, vermelhas e pretas.
-
Eu me referia ao link do tópico com download do site para eu instalá-lo aqui e ir arrumando...
-
Desculpe a demora, achei que havia postado o script e só quando dei F5 para ver se você havia respondido que vi que não. Crie um arquivo chamado transform.lua no diretório data\talkactions\scripts com este conteúdo: local outfit = {lookType = 399} local combat = createCombatObject() setCombatParam(combat, COMBAT_PARAM_EFFECT, 42) setCombatParam(combat, COMBAT_PARAM_AGGRESSIVE, 0) local condition = createConditionObject(CONDITION_OUTFIT) setConditionParam(condition, CONDITION_PARAM_TICKS, 99999999999) addOutfitCondition(condition, outfit) setCombatCondition(combat, condition) local combat2 = createCombatObject() setCombatParam(combat2, COMBAT_PARAM_DISPEL, CONDITION_OUTFIT) setCombatParam(combat2, COMBAT_PARAM_EFFECT, 42) setCombatParam(combat2, COMBAT_PARAM_AGGRESSIVE, 0) function ver(cid,pos) local onl = getOnlinePlayers() for i=1,#onl do if getPlayerByName(onl[i]) == cid then local npos = getCreaturePosition(cid) if pos.x == npos.x and pos.y == npos.y and pos.z == npos.z then addEvent(ver, 500, cid, npos) else doCombat(cid, combat2,numberToVariant(cid)) end end end end function onSay(cid, words, param) doCombat(cid, combat2,numberToVariant(cid)) doCombat(cid, combat,numberToVariant(cid)) addEvent(ver, 500, cid, getCreaturePosition(cid)) return true end Em local outfit = {lookType = 399} no lugar de 399 você coloca o looktype que deseja que fique. Em setCombatParam(combat, COMBAT_PARAM_EFFECT, EFEITO_INICIAR) e em setCombatParam(combat2, COMBAT_PARAM_EFFECT, EFEITO_TERMINAR) no lugar de EFEITO_INICIAR e EFEITO_TERMINAR você coloca o combat effect que deseja que fique ao ativar a talkaction e ao voltar ao normal respectivamente. Caso não queira nenhum efeito, basta deletar estas linhas. Coloque a linha XML abaixo no arquivo talkactions.xml da pasta data\talkactions antes de </talkactions>: <talkaction words="!transform" event="script" value="transform.lua"/> ========== EDIT =========== Como conversamos em privado, para o seu servidor é um caso especial, então use o script abaixo: local outfit = {lookType = 222 , lookHead = 0, lookBody = 0, lookLegs = 0, lookFeet = 0, lookAddons = 0} local function isOnline(cid) local onl = getOnlinePlayers() for i=1,#onl do if getPlayerByName(onl[i]) == cid then return true end end return false end local function ver(cid,pos) if isOnline(cid) then local npos = getCreaturePosition(cid) if pos.x == npos.x and pos.y == npos.y and pos.z == npos.z then addEvent(ver, 500, cid, npos) else doSetCreatureOutfit(cid, outfit, 0) end end end function onSay(cid, words, param) doSetCreatureOutfit(cid, outfit, -1) addEvent(ver, 500, cid, getCreaturePosition(cid)) return true end No lugar de 222 você coloca o looktype que deseja para a magia.
-
Manda link do teu site para ter uma idéia do que pode ser...
-
Vamos por parte, primeiro iremos fazer com que fique escrito "Player with this name already exist." quando usado o mesmo nome que um vip embaixo da box de onde se digita o nome. Para isto você irá abrir o arquivo check_name.php localizado na pasta htdocs\ajax do seu site e substituir esta parte: if($server_config['sqlType'] == "mysql") $ots->connect(POT::DB_MYSQL, array('host' => $mysqlhost, 'user' => $mysqluser, 'password' => $mysqlpass, 'database' => $mysqldatabase) ); elseif($server_config['sqlType'] == "sqlite") $ots->connect(POT::DB_SQLITE, array('database' => $config_ini['server_path'].$sqlitefile)); $name_db = new OTS_Player(); $name_db->find($name); if($name_db->isLoaded()) echo '<font color="red"><b>Player with this name already exist.</b></font>'; else echo '<font color="green">Good. Your name will be:<br />"<b>'.ucwords($name).'</b>"</font>'; ?> Por esta: if($server_config['sqlType'] == "mysql") $ots->connect(POT::DB_MYSQL, array('host' => $mysqlhost, 'user' => $mysqluser, 'password' => $mysqlpass, 'database' => $mysqldatabase) ); elseif($server_config['sqlType'] == "sqlite") $ots->connect(POT::DB_SQLITE, array('database' => $config_ini['server_path'].$sqlitefile)); $name_db = new OTS_Player(); $name_db->find($name); $name_db2 = new OTS_Player(); $name_db2->find('[VIP] '.$name); if(($name_db->isLoaded()) or ($name_db2->isLoaded())) echo '<font color="red"><b>Player with this name already exist.</b></font>'; else echo '<font color="green">Good. Your name will be:<br />"<b>'.ucwords($name).'</b>"</font>'; ?> Só isto não basta, pois esta é uma menssagem temporária que o site passa para o visitante, se ele clicar em "submit" ele conseguirá criar o char. Para evitarmos isto, vá na pasta htdocs e abra o arquivo accountmanagement.php, lá você substituirá esta parte: if(empty($newchar_errors)) { $check_name_in_database = $ots->createObject('Player'); $check_name_in_database->find($newchar_name); if($check_name_in_database->isLoaded()) $newchar_errors[] .= 'This name is already used. Please choose another name!'; $number_of_players_on_account = $account_logged->getPlayersList()->count(); if($number_of_players_on_account >= $config['site']['max_players_per_account']) $newchar_errors[] .= 'You have too many characters on your account <b>('.$number_of_players_on_account.'/'.$config['site']['max_players_per_account'].')</b>!'; } Por esta: if(empty($newchar_errors)) { $check_name_in_database = $ots->createObject('Player'); $check_name_in_database->find($newchar_name); if($check_name_in_database->isLoaded()) $newchar_errors[] .= 'This name is already used. Please choose another name!'; $check_name_in_database->find('[VIP] '.$newchar_name); if($check_name_in_database->isLoaded()) $newchar_errors[] .= 'This name is already used. Please choose another name!'; $number_of_players_on_account = $account_logged->getPlayersList()->count(); if($number_of_players_on_account >= $config['site']['max_players_per_account']) $newchar_errors[] .= 'You have too many characters on your account <b>('.$number_of_players_on_account.'/'.$config['site']['max_players_per_account'].')</b>!'; } Assim o player ficará impossibilitado de criar um char com o nome de algum vip e evitará todos seus problemas. Para finalizar, basta remover todos os players que já tem nome de vips da sua database, para isto fiz uma query que você irá executar apenas uma vez, visto que após modificar o site não terá como eles abusarem disto novamente, porém eu necessitaria saber qual seu sistema de vip para fazer isto, se é por database, por storage e quais as tabelas com colunas ou storages que se usa. Aguardo retorno.
-
[8.6 ~ 9.x ] Gesior WebGesiorMudrocK 100%
tópico respondeu ao Mudrock de Antharaz em Lixeira Pública
Cara, precisava de uma database para usar e acabei usandoa sua, funcionou como uma luva *-* vlw -
É exatamente isto... só não entendi uma coisa, porque você simplesmente não testou e viu se funcionava ao invés de postar aqui? seria bem mais fácil...
-
Isto vai variar de acordo com a porta que você irá usar, eu alterei o doors.lua supondo que você usaria uma das portas de quests que tem o level mínimo. Abra o arquivo doors.lua localizado em data\actions\scripts\other e substitua esta parte: if(getItemLevelDoor(item.itemid) > 0) then if(item.actionid > 0 and getPlayerLevel(cid) >= (item.actionid - getItemLevelDoor(item.itemid))) then doTransformItem(item.uid, item.itemid + 1) doTeleportThing(cid, toPosition, TRUE) else doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "Only the worthy may pass.") end return TRUE end Por esta: if(getItemLevelDoor(item.itemid) > 0) then if(item.actionid > 0 and getPlayerLevel(cid) >= (item.actionid - getItemLevelDoor(item.itemid))) then if item.uniqueid > 80000 and getPlayerLevel(cid) > (item.uniqueid - 80000) then doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "You should have level "..(item.actionid - getItemLevelDoor(item.itemid)).."+ and "..(item.uniqueid - 80000).."-.") return true end doTransformItem(item.uid, item.itemid + 1) doTeleportThing(cid, toPosition, TRUE) else doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "Only the worthy may pass.") end return TRUE end Agora para configurar qual o level máximo e mínimo da porta você faz assim, no actionid da porta você coloca 1000 + o level mínimo e no uniqueid da porta você coloca 80000 + o level máximo da porta. Ex: se você quiser uma porta que passe players entre os leveis 100 e 300 ficaria assim: actionid = 1100 e uniqueid = 80300. Como você não informou o seu tfs, eu testei no 1.0, caso dê algum erro deixe um link para o server base que você usa. Resultado:
-
Estou fazendo as modificações no site para não conseguirem criar chars com mesmo nome de quem já tem "[VIP]", mas gostaria de saber qual sistema do seu site, gesior, modernacc, ou qual?
-
O problema deste é que só funciona se o vip estiver online né... provavelmente você tem uma table somente com os vips ou então uma coluna na table players que indica se é vip ou não, a partir daí, vc manda filtrar todos que estão marcados como vip na tabela, depois manipula a string do nome retirando o [VIP] e deleta quando achar alguém com esse nome. Para evitar futuros problemas como este, você poderia criar uma regra no gesior que quando procura se já existe alguém com este nome, verifica também se existe alguém com "[VIP] " + o nome, eu não posso fazer isto agora, mas te dei um caminho, lá para as 22h entro denovo aqui e boto a mão na massa se ainda estiver aberto o tópico. Qualquer coisa me manda PM.
-
Não entendi se você queria que criasse uma spell só para alterar a vida, a voc e a mana ou se queria que alterasse essa spell sua colocando isto, enfim, eu alterei esta sua spell do jeito que você solocitou: Vá em data\lib abra o arquivo 000-constant.lua e acreste esta linha: voc_stor = STORAGE_USADA No lugar de STORAGE_USADA você colocará a storage que a spell usará. Ex: 30001 A sua spell ficará assim: local outfit = {lookType = 399} -- Roupa que ira transformar no caso seu corpo ficara em choque local tempo = 2 * 1000 -- Tempo, nesse caso esta 60 segundos Lembrando que 1000 = 1 segundo local voc = VOC_ID local ml = 5 -- quantos ira aumentar o skill de ML local skillfist = 10 -- quantos ira aumentar o skill de Fist local skillsword = 0 -- quantos ira aumentar o skill de Sword local skillaxe = 0 -- quantos ira aumentar o skill de Axe local skillclub = 0 -- quantos ira aumentar o skill de Club local skilldistance = 0 -- quantos ira aumentar o skill de Distance local skillshield = 10 -- quantos ira aumentar o skill de Shield local health = 0 -- A cada 1 segundo quantos aumentar de vida local mana = 55 local combat = createCombatObject() local mhealth = VIDA_AUMENTADA local mmana = MANA_AUMENTADA setCombatParam(combat, COMBAT_PARAM_EFFECT, 42) setCombatParam(combat, COMBAT_PARAM_AGGRESSIVE, 0) local condition = createConditionObject(CONDITION_ATTRIBUTES) setConditionParam(condition, CONDITION_PARAM_TICKS, tempo) setConditionParam(condition, CONDITION_PARAM_STAT_MAGICLEVEL, ml) setConditionParam(condition, CONDITION_PARAM_SKILL_FIST, skillfist) setConditionParam(condition, CONDITION_PARAM_SKILL_SWORD, skillsword) setConditionParam(condition, CONDITION_PARAM_SKILL_AXE, skillaxe) setConditionParam(condition, CONDITION_PARAM_SKILL_CLUB, skillclub) setConditionParam(condition, CONDITION_PARAM_SKILL_DISTANCE, skilldistance) setConditionParam(condition, CONDITION_PARAM_SKILL_SHIELD, skillshield) setConditionParam(condition, CONDITION_PARAM_OUTFIT, outfit) setConditionParam(condition, CONDITION_PARAM_STAT_MAXHEALTH, mhealth) setConditionParam(condition, CONDITION_PARAM_STAT_MAXMANA, mmana) setCombatCondition(combat, condition) local condition = createConditionObject(CONDITION_HASTE) setConditionParam(condition, CONDITION_PARAM_SPEED, 100) setConditionParam(condition, CONDITION_PARAM_TICKS, tempo) setConditionParam(condition, CONDITION_PARAM_BUFF, TRUE) setCombatCondition(combat, condition) local condition = createConditionObject(CONDITION_REGENERATION) setConditionParam(condition, CONDITION_PARAM_SUBID, 1) setConditionParam(condition, CONDITION_PARAM_BUFF, TRUE) setConditionParam(condition, CONDITION_PARAM_TICKS, tempo) setConditionParam(condition, CONDITION_PARAM_HEALTHGAIN, health) setConditionParam(condition, CONDITION_PARAM_HEALTHTICKS, 1000) setConditionParam(condition, CONDITION_PARAM_MANAGAIN, mana) setConditionParam(condition, CONDITION_PARAM_MANATICKS, 1000) setCombatCondition(combat, condition) local sys = createConditionObject(CONDITION_OUTFIT) setConditionParam(sys, CONDITION_PARAM_TICKS, tempo) addOutfitCondition(sys, outfit) setCombatCondition(combat, sys) function onCastSpell(cid, var) registerCreatureEvent(cid, "stordeath") setPlayerStorageValue(cid, voc_stor, getPlayerVocation(cid)) doPlayerSetVocation(cid, voc) addEvent(doPlayerSetVocation,tempo,cid,getPlayerStorageValue(cid, voc_stor)) addEvent(setPlayerStorageValue,tempo,cid,voc_stor,0) return doCombat(cid, combat, var) end Aonde está local voc = VOC_ID, no lugar do VOC_ID você coloca o id da voc em que vai se transformar. Em local mhealth = VIDA_AUMENTADA você coloca o quanto irá aumentar a vida máxima de quem usar a spell e para a mana você faz o mesmo em local mmana = MANA_AUMENTADA. Como não existe uma condition de spell para vocation fiz de outra forma e para o caso do player morrer tive que fazer um creaturescript de ondeath que chamei de stordeath.lua: function onDeath(cid, corpse, deathList) local i = getPlayerStorageValue(cid, voc_stor) if i > 0 then doPlayerSetVocation(cid, i) setPlayerStorageValue(cid, voc_stor, 0) end return true end No creaturescripts.xml coloque esta linha antes de </creaturescripts>: <event type="death" name="stordeath" event="script" value="stordeath.lua"/>
-
Poste o link de onde você retirou este sistema e a versão do TFS que você está usando (ou um link com o server base), assim você facilita nossa vida...
-
Vamos lá, por partes... O primeiro script, para o /notation: function isOnTable(arg,t) for i=1,#t do if t[i]==arg then return true end end return false end function onSay(cid, words, param) local name,mot,op = string.explode(param,",")[1],string.explode(param,",")[2],getOnlinePlayers() acid = getPlayerByName(name) if (name == '') or (mot == '') or (acid == cid) or (not isOnTable(name,op)) then doPlayerSendTextMessage(cid, MESSAGE_STATUS_WARNING, "Você usou o comando errado, não mande menssagem para si mesmo e nem para um player offline. Diga: /notation player,motivo") return true end doPlayerSendTextMessage(acid,MESSAGE_STATUS_WARNING,mot) doPlayerSendTextMessage(acid,MESSAGE_STATUS_WARNING,"Você mandou para "..name.." a menssagem: "..mot) return true end Para o /ban, tem vários idênticos ao que você deseja, vou pegar um que funciona e que já tem no server que uso como exemplo, se não me engano é do BAIAK, testei no TFS 1.0: local default_comment = "Banido Temporariamente." local default_lenght = 1 -- ban time in hours function onSay(cid, words, param) local parametres = string.explode(param, ",") if(parametres[1] ~= nil) then local accId = getAccountIdByName(parametres[1]) if(accId > 0) then local lenght = default_lenght local comment = default_comment if(parametres[2] ~= nil and tonumber(parametres[2]) > 0) then lenght = tonumber(parametres[2]) end if(parametres[3] ~= nil) then comment = parametres[3] end doAddBanishment(accId, lenght * 3600, 23, ACTION_BANISHMENT, comment, getPlayerGUID(cid), comment) local player = getPlayerByNameWildcard(parametres[1]) if(isPlayer(player) == TRUE) then doRemoveCreature(player) end else doPlayerSendCancel(cid, "Player with name " .. parametres[1] .. " doesn't exist.") end else doPlayerSendCancel(cid, "You must enter name.") end return true end Esse comando do namelock achei bem inútil, seria mais fácil você colocar os nomes que não deseja na lista de namelock do GESIOR.
-
Me desculpe se eu for grosseiro, mas acho que você deveria recrutar um scripter para seu projeto, porque assim você não esperaria a "boa vontade" de alguém para fazer scripts que levam um pouco mais de tempo que os normais... também gostaria de saber se ainda precisa desse sistema, porque fui no link do seu projeto e vi que o sistema de DUEL está feito.... em todo caso, farei um do modo que você solicitou e editarei minha resposta o colocando aqui... Eu revi o tópico do seu server e realmente já está pronto este sistema...
-
Vamos lá amigo, crie um arquivo lua na pasta data\actions\scripts com o nome de sua preferência, no exemplo usarei teste.lua.Dentro do teste.lua coloque este código: function onUse(cid, item, fromPosition, itemEx, toPosition) local cpos,tpos = getCreaturePosition(cid), toPosition if item.itemid == PORTAID then if tpos.y > cpos.y then tpos.y = tpos.y + 1 else tpos.y = tpos.y - 1 end else if tpos.x > cpos.x then tpos.x = tpos.x + 1 else tpos.x = tpos.x - 1 end end doTeleportThing(cid, tpos) return 1 end Na linha onde está if item.itemid == PORTAID then ao invés de PORTAID você colocará o id da porta virada para baixo, como na imagem abaixo: Logo após abra o actions.xml localizado em data\actions e coloque a acrescente a seguinte linha acima de </actions>: <action itemid="ITEMID_PORTA;ITEMID_PORTA2" script="teste.lua"/> Aonde está ITEMID_PORTA e ITEMID_PORTA2 você substitui pelo id dela virada para cima e para baixo, não importando a ordem. Caso você use uma porta comum nos trainers, use o seguinte código ao invés do acima, substituindo o PORTA_ACTIONID pelo actionid que você colocar nas portas dos trainers: <action actionid="PORTA_ACTIONID" script="teste.lua"/>
-
tfs 1.2 [AJUDA] Erro ao executar SPAWN script globalevents
pergunta respondeu ao Session Start de Antharaz em Scripts
Posta o erro que da para ter uma noção e começar a ajudar... -
Iria ajudar bastante se você postasse uma menssagem com o erro que deu... ======== EDIT ======== É o seguinte, eu testei em um TFS 1.0 e funcionou perfeitamente bem os dois scripts, o que posso fazer por você é verificar porque não está funcionando no TFS que VOCÊ baixou e para isto eu precisaria do link do post dele ou do PRINT COM O ERRO QUE DÁ. Para o segundo script, não seis e é o caso, mas tente substituir todos os getCreatureMaxMana(cid) por getPlayerMaxMana(cid). Em segundo lugar, eu verifiquei o primeiro script na parte dos itens, e a quantidade que ele remove de barras para comprar sd e uh é diferente das que ele realmente retira do player, não verifiquei todos, apenas estes, mas deve ter mais erros de QUANTIDADE e não do script em si, enfim, aguardo resposta.
-
Sim, mas ali está como apenas sugestão, creio que isto deveria se tornar uma regra, pois isto é bem constante... e não ter um somente para web como é o caso e sim para todas áreas, como uma regra geral da parte de suporte... mas fico feliz que alguém já tenha tido esta idéia antes... dei uma olhada no seu tópico e vi que estava muito bem organizado :x padera até ser usado para a regra...
-
Bem, fiquei anos sem vir para o xtibia mas voltei e ando me deparando muito com pedidos de suporte onde a pessoa fala que tá dando o erro XXX no servidor dele quando acontece XXX coisa, mas não posta o script ou o server que ele fez o download, dificultando e atrasando o suporte que receberia. Isto também acontece quando se pede para criar scripts ou alterar algo no site que tenha que interagir com a DB, mas não informa qual site usa. Enfim, resumindo tudo, acredito que deveria ser regra postar o script (não apenas uma parte, porque as vezes o erro está bem mais além de onde ele acha que é) e/ou informar o site e versão.
-
No caso a pessoa ganharia o código no evento? se for o caso me fala a tabela e a coluna onde fica armazenado o cash do jogador... Outra coisa que nãop entendi, você quer um sistema no seu site ou por script para o jogador pegar os créditos ingame?
-
No arquivo "Savenewchar.php" substitua esta linha: if ($namein != "" && $vocin != "" && $sexin != "" && !file_exists($dirplayer . $namein . ".xml")) { Por esta: if ($namein != "" && $vocin != "" && $sexin >= 0 && $sexin <= 1 && $sexin != "" && !file_exists($dirplayer . $namein . ".xml")) { Aguardo resposta.
-
Manda link do OT que você baixou para darmos uma olhada.
-
hmm, deixe-me ver se entendi, você quer que quando o cara pague pelo cash ele receba um código que poderá ser usado por qualquer um e a qualquer momento, desde que tenha esta informação para resgatá-lo no servidor... isto? Se for o caso, você deve informar o sistema que você usa para confirmação de pagamento, se é direta, manual, como funciona (nesse caso informando as colunas, os valores que muda e talz) para que eu faça o código... caso não queira informar isto para todos verem, basta me mandar MP.
-
Quem Está Navegando 0 membros estão online
- Nenhum usuário registrado visualizando esta página.