-
Total de itens
1165 -
Registro em
-
Última visita
-
Dias Ganhos
13
Posts postados por Omega
-
-
2 horas atrás, Frenvius disse:
então cara, o estado do forum ta bem critico, eu to cuidando disso primeiro, pra dps pensar em expandir a comunidade, pq no próprio fórum n ta mto boa
Que pena, cara, de verdade
O que está acontecendo dessa vez?
-
6 horas atrás, Poccnn disse:
Viu que treta fácil? Imagina se aparece alguém com a paciência pra tretar de volta? Foi exatamente isso que eu quis dizer: que nas boas épocas desse fórum (e na boa época de Tibia), eu poderia vir aqui e rir da treta idiota que isso iria gerar.
Infelizmente, não tenho mais idade nem paciência pra tretar com isso eu mesmo
PS.: Se achar diferentão por ser ateu em 2017 é complicado.
-
Em 2017-2-26 at 21:05, Frenvius disse:
Hm, vou ver isso ai, vai que eu crio um
Nada ainda? =P
-
Em 2017-5-6 at 15:36, Poccnn disse:
E ainda continua virgem? Kkkkkkkkk
Triste que esse fórum tá tão parado que a assinatura desse cara nem provoca tretas... uns anos atrás, alguém teria criado um tópico de treta idiota que me faria rir
-
Cria aí, então
-
Passei aqui, fui vendo e ele tá banido. Só fiquei curioso, então alguém sabe? Passar bem.
-
Na verdade, é algo simples de se pensar. Não existe SEGREDO além disso.
"Gentileza gera gentileza, violência gera violência."
Eu, CIDADÃO, não tenho nenhuma culpa pela marginalidade de ninguém.
Estudei em escola militar maior parte de minha vida, tive exemplos de uma boa educação dentro e fora da escola e por isso não sou marginal.
CADEIA não resolve, mas provavelmente vai deixar a rua, meu bairro, minha cidade e meu país mais seguro.
Hoje em dia tenho hora pra voltar pra casa pra não ser assaltado. Meu empreendimento é bancário, e precisa de segurança pra quem trabalha e pra quem toma o serviço (clientes).
Discordo de você. Eu acho que temos culpa, sim. Temos culpa por omissão. Acho que toda vez que a gente se contenta com uma situação terrível (como nosso sistema carcerário) em vez de procurar soluções ou cobrar soluções do governo, somos culpados por omissão. É muito fácil você olhar pra um pivete de 16 anos que te assaltou e querer que ele vá pra cadeia, mas eu acho que isso é covardia.
E antes que venham falar mais besteira, eu já fui assaltado 4 vezes e, em uma delas, tomei um soco na cara de um garoto com metade da minha altura. Não culpo eles, não quero que eles morram nem que percam suas vidas inutilmente na cadeia. Quero que o governo se responsabilize por eles e acho que toda vez que eu ignoro a quantidade de garotos pedindo esmola nas ruas do Rio, eu também sou culpado pela situação. Seguindo o pensamento do profeta gentileza: todo mundo sabe que jogar na cadeia um adolescente de 16 anos que não teve nenhuma oportunidade, nenhum exemplo, nenhuma orientação é uma violência estúpida. Quanta violência isso vai gerar?
Voltar pra casa sem ser assaltado é um direito, sim. Eu detesto o Rio de Janeiro porque toda vez que eu vou sair de casa, penso que posso ser assaltado. Mesmo assim, acho que querer trancar alguém assim na cadeia ainda mais cedo é egoísmo.
Afinal, se eu estivesse na situação deles, vivendo uma vida com raríssimas oportunidades, com pais ausentes e violentos, com toda a sociedade me olhando feio, eu acho que acharia bem fácil justificar roubar de algum rapaz de classe média andando tranquilo com um sorriso no rosto. Acho que eu faria isso e acharia certo. E acho que se fosse o caso, eu gostaria que alguém me desse uma chance de não apodrecer num sistema carcerário tão fodido quanto o nosso.
-
É, esqueci de um 'pequeno' detalhe fundamental
local tpId = 1387 local tps = { --[[ ["nome do monstro (letras minúsculas)"] = {pos = {posição da criação do tp}, toPos = {para onde o tp irá levar}, time = tempo para o tp sumir, killAmount = quantos montros deve matar, str = número aleatório para storage} ]] ["orshabaal"] = {pos = {x=761, y=57, z=7}, toPos = {x=767, y=52, z=7}, time = 30, killAmount = 5, str = 10629}, } function removeTp(tp) local t = getTileItemById(tp.pos, tpId) if t then doRemoveItem(t.uid, 1) doSendMagicEffect(tp.pos, CONST_ME_POFF) end end function onDeath(cid) local tp = tps[getCreatureName(cid):lower()] if not tp then return true end if getGlobalStorageValue(tp.str) + 2 >= tp.killAmount then doCreateTeleport(tpId, tp.toPos, tp.pos) doCreatureSay(cid, "O teleport irá sumir em "..tp.time.." segundos.", TALKTYPE_ORANGE_1) addEvent(removeTp, tp.time * 1000, tp) setGlobalStorageValue(tp.str, -1) else setGlobalStorageValue(tp.str, getGlobalStorageValue(tp.str) + 1) end return true end
Engraçado que minha identação tá saindo destorcida...
-
Tentei aqui, mas não testei:
local tpId = 1387 local tps = { --[[ ["nome do monstro (letras minúsculas)"] = {pos = {posição da criação do tp}, toPos = {para onde o tp irá levar}, time = tempo para o tp sumir, killAmount = quantos montros deve matar, str = número aleatório para storage} ]] ["orshabaal"] = {pos = {x=761, y=57, z=7}, toPos = {x=767, y=52, z=7}, time = 30, killAmount = 5, str = 10629}, } function removeTp(tp) local t = getTileItemById(tp.pos, tpId) if t then doRemoveItem(t.uid, 1) doSendMagicEffect(tp.pos, CONST_ME_POFF) end end function onDeath(cid) local tp = tps[getCreatureName(cid):lower()] if not tp then return true end if getGlobalStorageValue(tp.str) + 1 >= tp.killAmount then doCreateTeleport(tpId, tp.toPos, tp.pos) doCreatureSay(cid, "O teleport irá sumir em "..tp.time.." segundos.", TALKTYPE_ORANGE_1) addEvent(removeTp, tp.time * 1000, tp) setGlobalStorageValue(tp.str, -1) end return true end
Só fiz algumas alterações no script do Fawz.
-
Não sei se vai funcionar.
local tpId = 1387 local tps = { ["Orshabaal"] = {pos = {x=761, y=57, z=7}, toPos = {x=767, y=52, z=7}, time = 30}, } function removeTp(tp) local t = getTileItemById(tp.pos, tpId) if t then doRemoveItem(t.uid, 1) doSendMagicEffect(tp.pos, CONST_ME_POFF) end end function onDeath(cid) local tp = tps[getCreatureName(cid)] local x = 5 -- qtd de monstros que tem que matar. if tp >= x then doCreateTeleport(tpId, tp.toPos, tp.pos) doCreatureSay(cid, "O teleport irá sumir em "..tp.time.." segundos.", TALKTYPE_ORANGE_1) addEvent(removeTp, tp.time*1000, tp) end return TRUE end
Espero que você esteja aberto a críticas construtivas, Fawz:
- Um possível bug fácil de evitar é que existe variação nos servidores do nome começar com letra maiúscula ou não. O ideal é orientar o usuário a colocar todos os nomes em letras minúsculas e usar getCreatureName(cid):lower() que converte a string para letras minúsculas, facilitando a comparação
- Quando você faz tp >= x vai dar problema, porque tp é uma tabela e não pode ser comparado dessa forma com um número. Você precisa criar alguma forma de contagem e depois resetá-la quando o contador chegar em x. Aconselho usar global storage (getGlobalStorageValue(str) e setGlobalStorageValue(str, num))
- Por último e menos importante, true possui valor verdadeiro padrão em Lua, enquanto TRUE surgiu de algum lugar nos scripts e parece mais legal, então usam porque tem uma gambiarra que faz com que funcione. Moral da história: utilize true em vez de TRUE.
-
Dota mesmo? Ou Dota 2? Gosto do primeiro mas posso tentar o 2.
Hahaha dinossauro do cacete. DotA 2 mesmo. Meu nick é Vendetta
Eu o/, mas infelizmente me mudei e agora to com uma net mt zuada, e pior que nem baixei o reborn ainda kkk, jogo a uns 3 anos mas ainda sou lvl 35 kk (mais da metade desse tempo fiquei com net zuada tb jogando contra bots e pvts com os amigos) jogava de earth spirit, ember spirit, storm, meepo, rubick, abaddon sao os meus favoritos, mas tb jogo com o resto, so não jogo com aquela vontade >
Opa, adicionei ae pra gente jogar, então. Tá com qual MMR?
-
Tirando a hegemonia do LoL aqui... quem joga aí?
-
Sem mais...
Hahahahahaha tinha que ser você pra me postar isso
-
É muita ilusão achar que diminuir a maioridade penal vai diminuir a violência. Nossos sistemas carcerário e jurídico são horríveis, não vai mudar nada jogar um adolescente na cadeia, só causar mais revolta e, quando ele sair, vai reincidir pior ainda. Pra mim isso é só uma reação exagerada ao que o noticiário mostra, mas que, na prática, não vai mudar nada, e é só pra fingir que estão resolvendo alguma coisa.
-
Pelo que eu entendi do script do Rigby, sempre que você usar o item de virar vip sua vida vai aumentar, podendo usá-lo indefinidamente. Além disso, ele não contabiliza a vida adicional que você vai ganhar nem tira a vida extra quando você deixa de ser VIP.
-
Eu tive uma ideia de como fazer, mas tá bem complicado. Se ninguém conseguir fazer de um jeito melhor, eu tento aqui.
Tô considerando mudar o hpmax direto na db e atualizar a cada login, mas é muito propício a bugs...
-
-- config by uotl£ -- distancia contando os quadros no chao ate chegar a parede resumo tamanho do raio -- lado_raio 1 ->> 2 <<-- 3 / \ 4 | -- | \ / effect = efeito pos = posição dano = porcentagem do dano local config = { {effect = 15,pos = {x = 1091, y = 997, z = 7},distancia = 3,dano = 100,lado_raio = 1}, {effect = 15,pos = {x = 1091, y = 970, z = 7},distancia = 3,dano = 100,lado_raio = 1}, {effect = 15,pos = {x = 1091, y = 979, z = 7},distancia = 3,dano = 100,lado_raio = 1}, {effect = 15,pos = {x = 1084, y = 988, z = 7},distancia = 3,dano = 100,lado_raio = 4}, } -- config by uotl£ function onThink(cid, interval, lastExecution) atirador () return true end function atirador () for sinal, valor in pairs(config) do for i = 1,valor.distancia do if valor.lado_raio == 1 then doSendMagicEffect({x = valor.pos.x+i, y = valor.pos.y, z = valor.pos.z},valor.effect) check = {x = valor.pos.x+i, y = valor.pos.y, z = valor.pos.z,stackpos=255} elseif valor.lado_raio == 2 then doSendMagicEffect({x = valor.pos.x-i, y = valor.pos.y, z = valor.pos.z},valor.effect) check = {x = valor.pos.x-i, y = valor.pos.y, z = valor.pos.z,stackpos=255} elseif valor.lado_raio == 3 then doSendMagicEffect({x = valor.pos.x, y = valor.pos.y-i, z = valor.pos.z},valor.effect) check = {x = valor.pos.x, y = valor.pos.y-i, z = valor.pos.z,stackpos=255} elseif valor.lado_raio == 4 then doSendMagicEffect({x = valor.pos.x, y = valor.pos.y+i, z = valor.pos.z},valor.effect) check = {x = valor.pos.x, y = valor.pos.y+i, z = valor.pos.z,stackpos=255} end tmp = getThingFromPos(check) if(tmp.uid ~= 0) then if isCreature(tmp.uid) then -- se quer que attack os bichos usa esse "if isCreature(tmp.uid) then" p = (getCreatureMaxHealth(tmp.uid)/100)*valor.dano doCreatureAddHealth(tmp.uid, -p) doSendAnimatedText(getCreaturePosition(tmp.uid), math.ceil (p),145) end end end end end
Tem até dizendo como fazer no próprio código:
se quer que attack os bichos usa esse "if isCreature(tmp.uid) then" -
deu sim consegui fazer aparecer em laranja
e preciso de mais uma ajuda com minha vip tentei manda msg privada pra vc mais não deu intão vo usa o topico aki mesmo
o seguinte
meu vip é por storage 13540 tem como fazer um script pra aumentar 10% de vida e mana do player que for vip e depois que a vip acabar esse acressimo na vida e na mana volte ao normal
Isso é bem mais complicado do que parece, mas acho que dá pra fazer. Cria outro tópico explicando direitinho, já que esse já foi movido. E me passa o tópico do seu sistema VIP.
-
Tenta isso aqui. Basta configurar em prize_id o item que você quer que o jogador receba.
local prize_id = 1234 -- id do item que vai ganhar local focus = 0 local max_distance = 8 local talk_start = 0 local conv = 0 local fighting = false local challenger = 0 local afk_limit_time = 30 -- seconds local afk_time = 0 -- don't change local battle_turn = 1 -- don't change local challenger_turn = 0 -- don't change local pokemons = { {name = "Clone Blastoise", optionalLevel = 100, sex = SEX_MALE, nick = "", ball = "super"}, {name = "Clone Charizard", optionalLevel = 100, sex = SEX_MALE, nick = "", ball = "super"}, {name = "Clone Gengar", optionalLevel = 100, sex = SEX_MALE, nick = "", ball = "super"}, {name = "Clone Venusaur", optionalLevel = 100, sex = SEX_MALE, nick = "", ball = "super"}, } local function doSummonGymPokemon(npc) local this = npc if #getCreatureSummons(this) >= 1 or focus == 0 then return true end local it = pokemons[battle_turn] doSummonMonster(this, it.name) local summon = getCreatureSummons(this)[1] local balleffect = pokeballs["normal"].effect if it.ball and pokeballs[it.ball] then balleffect = pokeballs[it.ball].effect end doSendMagicEffect(getThingPos(summon), balleffect) setPlayerStorageValue(summon, 10000, balleffect) setPlayerStorageValue(summon, 10001, gobackmsgs[math.random(#gobackmsgs)].back:gsub("doka", it.nick ~= "" and it.nick or it.name)) setPlayerStorageValue(summon, 1007, it.nick ~= "" and it.nick or it.name) doSetMonsterGym(summon, focus) addEvent(adjustWildPoke, 15, summon, it.optionalLevel) local name = it.nick ~= "" and it.nick or getCreatureName(this).."s "..it.name doCreatureSay(this, gobackmsgs[math.random(#gobackmsgs)].go:gsub("doka", getPlayerStorageValue(summon, 1007)), 1) fighting = true battle_turn = battle_turn + 1 end local function doWinDuel(cid, npc) if not isCreature(cid) then return true end doPlayerAddItem(cid, prize_id, 1) doCreatureSay(npc, "You won the duel! Congratulations, take this "..getItemNameById(prize_id).." as a prize.", 1) end function onCreatureSay(cid, type, msg) local msg = string.lower(msg) if focus == cid then talk_start = os.clock() end if msgcontains(msg, 'hi') and focus == 0 and getDistanceToCreature(cid) <= 4 then focus = cid talk_start = os.clock() conv = 1 selfSay("Olhe so "..getCreatureName(cid)..", mais um viajante fracassado,voce veio aqui por vontade propria,mais para sair sera obrigado a seguir minhas regras,diga {duel} para acabarmos logo com isso") return true end if isDuelMsg(msg) and conv == 1 and focus == cid then --if getPlayerItemCount(cid, gymbadges[getCreatureName(getThis())]) >= 1 then -- selfSay("You have already won my Marsh Badge, maybe some other day we can fight.") -- focus = 0 --return true --end if not hasPokemon(cid) then selfSay("Solte seu pokemon para comecarmos a batalha.") return true end selfSay("You are challenging me to a battle. It will be a "..#pokemons.." pokemon limit battle, let's start?") conv = 2 return true end if isConfirmMsg(msg) and conv == 2 and focus == cid then challenger = focus setPlayerStorageValue(cid, 990, 1) selfSay("Yea, let's fight!") talk_start = os.clock() addEvent(doSummonGymPokemon, 850, getThis()) conv = 3 return true end if isNegMsg(msg) and conv == 2 and focus == cid then focus = 0 selfSay("Era melhor sevoce tivesse ficado fora do meu caminho!") return true end if msgcontains(msg, 'bye') and focus == cid then selfSay('Bye and do your best trainer!') setPlayerStorageValue(focus, 990, -1) focus = 0 return true end end local afk_warning = false function onThink() --doSendAnimatedText(getThingPos(getThis()), getCreatureName(getThis()), 215) if focus == 0 then selfTurn(2) fighting = false challenger = 0 challenger_turn = 0 battle_turn = 1 afk_time = 0 afk_warning = false if #getCreatureSummons(getThis()) >= 1 then setPlayerStorageValue(getCreatureSummons(getThis())[1], 1006, 0) doCreatureAddHealth(getCreatureSummons(getThis())[1], -getCreatureMaxHealth(getCreatureSummons(getThis())[1])) end return true else if not isCreature(focus) then focus = 0 return true end if fighting then talk_start = os.clock() if not isCreature(getCreatureTarget(getThis())) then if #getCreatureSummons(challenger) >= 1 then if getCreatureOutfit(getCreatureSummons(challenger)[1]).lookType ~= 2 then --alterado v1.6 selfAttackCreature(getCreatureSummons(challenger)[1]) challenger_turn = challenger_turn + 1 afk_time = 0 end else afk_time = afk_time + 0.5 end end if afk_time > afk_limit_time then setPlayerStorageValue(focus, 990, -1) focus = 0 selfSay("Fraco!Ja esperava isso de viajantes desse tipo!") return true end if not afk_warning and afk_time > afk_limit_time / 2 then selfSay("Where's your pokemon? Let's fight!") afk_warning = true end if #getCreatureSummons(getThis()) == 0 then if battle_turn > #pokemons then addEvent(doWinDuel, 1000, focus, getThis()) setPlayerStorageValue(focus, 990, -1) focus = 0 return true end addEvent(doSummonGymPokemon, 1000, getThis()) end if not hasPokemon(challenger) or challenger_turn >= 7 or challenger_turn > #pokemons then selfSay("You lost our duel! Maybe some other time you'll defeat me.") setPlayerStorageValue(focus, 990, -1) focus = 0 return true end end local npcpos = getThingPos(getThis()) local focpos = getThingPos(focus) if npcpos.z ~= focpos.z then setPlayerStorageValue(focus, 990, -1) focus = 0 selfSay("Bye then.") return true end if (os.clock() - talk_start) > 30 then selfSay("Good bye and keep training!") setPlayerStorageValue(focus, 990, -1) focus = 0 end if getDistanceToCreature(focus) > max_distance then setPlayerStorageValue(focus, 990, -1) focus = 0 return true end local dir = doRedirectDirection(getDirectionTo(npcpos, focpos)) selfTurn(dir) end return true end
-
esse comando não deu certo doPlayerSendMessage(cid, MESSAGE_EVENT_ORANGE, "O evento double xp esta ativado! Aproveite!") deu erro e o player não logava com o evento aberto
troquei por esse e deu doPlayerSendTextMessage(cid,19,"O evento double xp esta ativado! Aproveite!")
Vlw pela ajuda
Opa, disponha e que bom que você conseguiu consertar. Espero que tenha conseguido manter a mensagem laranja, afinal.
-
function onLogin(cid) if getGlobalStorageValue(102590) > 0 then doPlayerSendMessage(cid, MESSAGE_EVENT_ORANGE, "O evento double xp esta ativado! Aproveite!") end return true end
Salva na pasta creaturescripts/scripts como doublexplogin.lua e registra no creaturescripts.xml
<event type="login" name="Double Xp Login" event="script" value="doublexplogin.lua"/>
-
--[[ PERFECT UPGRADE SYSTEM 2.0 Criado por Oneshot É proibido a venda ou a cópia sem os devidos créditos desse script. ]]-- UpgradeHandler = { levels = { [1] = {100, false, false}, [2] = {90, false, false}, [3] = {75, false, false}, [4] = {60, true, false}, [5] = {45, true, false}, [6] = {30, true, false}, [7] = {25, true, false}, [8] = {20, true, true}, [9] = {15, true, true}, [10] = {10, true, true}, [11] = {10, true, true}, [12] = {5, true, true} }, broadcast = 7, attributes = { ["attack"] = 2, ["defense"] = 1, ["armor"] = 1 }, message = { console = "Trying to refine %s to level +%s with %s%% success rate.", success = "You have upgraded %s to level +%s", fail = "You have failed in upgrade of %s to level +%s", downgrade = "The upgrade level of %s has downgraded to +%s", erase = "The upgrade level of %s has been erased.", maxlevel = "The targeted %s is already on max upgrade level.", notupgradeable = "This item is not upgradeable.", broadcast = "The player %s was successful in upgrading %s to level +%s.\nCongratulations!!", invalidtool = "This is not a valid upgrade tool.", toolrange = "This upgrade tool can only be used in items with level between +%s and +%s" }, tools = { [8306] = {range = {0, 10}, info = {chance = 0, removeable = true}}, }, isEquipment = function(self) local weaponType = self:getItemWeaponType() return ((weaponType > 0 and weaponType < 7) or self.item.armor ~= 0) end, setItemName = function(self, name) return doItemSetAttribute(self.item.uid, "name", name) end, chance = function(self) local chances = {} chances.upgrade = (self.levels[self.item.level + 1][1] or 100) chances.downgrade = (self.item.level * 5) chances.erase = (self.item.level * 3) return chances end } function UpgradeHandler:new(item) local obj, ret = {} obj.item = {} obj.item.level = 0 obj.item.uid = item.uid for key, value in pairs(getItemInfo(item.itemid)) do obj.item[key] = value end ret = setmetatable(obj, {__index = function(self, index) if _G[index] then return (setmetatable({callback = _G[index]}, {__call = function(self, ...) return self.callback(item.uid, ...) end})) else return UpgradeHandler[index] end end}) if ret:isEquipment() then ret:update() return ret end return false end function UpgradeHandler:update() self.item.level = (tonumber(self:getItemName():match("%+(%d+)")) or 0) end function UpgradeHandler:refine(uid, item) if not self.item then doPlayerSendTextMessage(uid, MESSAGE_STATUS_CONSOLE_BLUE, self.message.notupgradeable) return "miss" end local tool = self.tools[item.itemid] if(tool == nil) then doPlayerSendTextMessage(uid, MESSAGE_EVENT_DEFAULT, self.message.invalidtool) return "miss" end if(self.item.level > #self.levels) then doPlayerSendTextMessage(uid, MESSAGE_STATUS_CONSOLE_RED, self.message.maxlevel:format(self.item.name)) return "miss" end if(self.item.level < tool.range[1] or self.item.level >= tool.range[2]) then doPlayerSendTextMessage(uid, MESSAGE_STATUS_CONSOLE_RED, self.message.toolrange:format(unpack(tool.range))) return "miss" end local chance = (self:chance().upgrade + tool.info.chance) doPlayerSendTextMessage(uid, MESSAGE_STATUS_CONSOLE_BLUE, self.message.console:format(self.item.name, (self.item.level + 1), math.min(100, chance))) if(tool.info.removeable == true) then doRemoveItem(item.uid, 1) end if chance * 100 > math.random(1, 10000) then doPlayerSendTextMessage(uid, MESSAGE_STATUS_CONSOLE_ORANGE, self.message.success:format(self.item.name, (self.item.level + 1))) if (self.item.level + 1) >= self.broadcast then doBroadcastMessage(self.message.broadcast:format(getCreatureName(uid), self.item.name, (self.item.level + 1))) end self:setItemName((self.item.level > 0 and self:getItemName():gsub("%+(%d+)", "+".. (self.item.level + 1)) or (self:getItemName() .." +1"))) for key, value in pairs(self.attributes) do if getItemAttribute(self.item.uid, key) ~= nil or self.item[key] ~= 0 then doItemSetAttribute(self.item.uid, key, (self.item.level > 0 and getItemAttribute(self.item.uid, key) or self.item[key]) + value) end end return "success" else doRemoveItem(self.item.uid, 1) doPlayerSendTextMessage(uid, MESSAGE_STATUS_CONSOLE_BLUE, "You have broken your item while trying to upgrade it.") end end
Assim deve quebrar o item toda vez que ele não conseguir o upgrade. É só substituir esse código pelo upgradesystem.lua original. Qualquer problema, avisa aí.
-
Segue uma lista para download com os principais clientes de Tibia ainda utilizados.
- Tibia 10.79
- Tibia 10.76
- Tibia 10.37
- Tibia 8.60
- Tibia 8.54
- Tibia 8.00
- Tibia 7.72
- Tibia 7.60
- Tibia 7.4
Todos os links são do site tibia.sx. Lá todos os outros clientes poderão ser baixados.
-
Olá XTibiano,
Sua noticia foi reprovada.
Abraços.
-
Quem Está Navegando 0 membros estão online
- Nenhum usuário registrado visualizando esta página.
INVOCAÇÃO - Nível lendário
em Barzinho do Éks
Postado
Incrível como sempre aparece alguma coisa que me lembra de voltar a abrir esse fórum. E como que isso ainda tá de pé depois de tudo que passou.