Jump to content
Close

Pokemon Nox Oficial

Member
  • Content Count

    17
  • Joined

  • Last visited

1 Follower

About Pokemon Nox Oficial

  • Rank
    Baker

Recent Profile Visitors

The recent visitors block is disabled and is not being shown to other users.

  1. Olá sou programador e WebMaster, segue meu whats (11) 99824-2295
  2. Opa, desculpe não ter retornado, ontem eu acabei tendo alguns projetos e não consegui entrar aqui direito, mas que bom que deu certo. Em relação ao erro do monster eu acredito que nenhum dos dois está sendo verificado se é parede ou não, estou testando umas funções para ver se consigo chegar a um check se é parede ou não e te passo Oi, tenta esse script: local create_tab = { area = {{x=2795,y=879,z=7}, {x=2799,y=886,z=7}}, -- começo e fim items = { {chance = 50, itemid = 2173, amount = 1}, {chance = 10, itemid = 2494, amount = 1}, {chance = 100, itemid = 2159, amount = 20}, {chance = 100, itemid = 2160, amount = 100}, {chance = 100, name = "Gerador"}, -- monster name {chance = 100, itemid = 1111, amount = 1, actionID = 26008} -- uma chest por exemplo } } function isWalkable(pos) -- by Nord / editado por Omega if getTileThingByPos({x = pos.x, y = pos.y, z = pos.z, stackpos = 0}).itemid == 0 then return false elseif isCreature(getTopCreature(pos).uid) then return false elseif getTileInfo(pos).protection then return false elseif hasProperty(getThingFromPos(pos).uid, 3) or hasProperty(getThingFromPos(pos).uid, 7) then return false end return true end function doAddItenFromMap() local var = create_tab.items[math.random(#create_tab.items)] local pos = RetornarPosicao() if var.chance > math.random(1, 100) then if var.name ~= nil then CriarMonstroPos(var.name, pos) else local ret = doCreateItem(var.itemid, var.amount, pos) if var.actionID ~= nil then doItemSetAttribute(ret, "aid", var.actionID) end end else doAddItenFromMap() end end function RetornarPosicao() local pos = {x= math.random(create_tab.area[1].x,create_tab.area[2].x), y=math.random(create_tab.area[1].y,create_tab.area[2].y), z=create_tab.area[1].z} if isWalkable(pos) == true then return pos else return RetornarPosicao() end end ---- Novo --- o Distro continuará dando o erro, porém se o monstro não for criado ele tentará criar em outra posição function CriarMonstroPos(Nome, pos) -- Eu testei esse método, por algum motivo quando da erro, o doCreateMonster(..) retorna true rsrs... if doCreateMonster(Nome, pos) == true then -- Caso de erro e o montro não seja criado, o método será chamado novamente doBroadcastMessage("Não criou", 20) -- Depois de testar, comenta essa linha, ela servira de indicação para você ver se quando não cria, ele cai aqui CriarMonstroPos(Nome, RetornarPosicao()) -- Tentar recriar o monstro passando nova posição return false end doSendDistanceShoot({x = pos.x - math.random(4, 6), y = pos.y - 5, z = pos.z}, pos, CONST_ANI_FIRE) addEvent(doSendMagicEffect, 150, pos, CONST_ME_HITBYFIRE) addEvent(doSendMagicEffect, 150, pos, CONST_ME_FIREAREA) doSendMagicEffect(pos, CONST_ME_MORTAREA) end function onThink(cid, interval, lastExecution) doAddItenFromMap() return true end me retorna se mesmo dando o erro do monstro não sendo criado, ele criou em outra pos.
  3. Então cara, vou ver o que posso fazer aqui e já retorno.
  4. Cara, você tem que liberar as portas e o IP tanto no firewall quanto no roteador, e outra coisa, o no-ip é meio bugado, eu configurei no meu servidor tb e não funcionou, configurei exatamente da mesma forma como eu havia feito no passado, se não funcionou eu recomendo desistir, até pq é uma bosta mesmo rsrs e contrata um VPS com ip fixo que é bem melhor
  5. Olá eu fiz um script, bem provavel não dará erro mas eu não testei rsrs.. Testa ai e me fala.. O script a seguir, deve ser colocado em globalevents, cria um arquivo.lua dentro de "Servidor/data/globalevents/scripts" e adicione o script a seguir, agora salve-o. Agora você deve colocar a tag em "Servidor/data/globalevents/globalevents.xml" contendo um horário, ou a frequência que o script irá ser chamado, exemplo: <globalevent name="NomeScript" time="21:50" event="script" value="NOMEDOARQUIVO.lua"/> ou <globalevent name="NomeScript" interval="100" event="script" value="NOMEDOARQUIVO.lua"/> time, seria o horário que o item vai spawnar, e interval será de segundos em segundos, no caso ali está configurado para ser todos os dias as 21:50 e o de baixo vai ocorrer de 100 em 100 segundos local fromx = 2795 -- posiçao x superior a esquerda da area que sera analisada local tox = 2799 -- posiçao x inferior a direita da area que sera analisada local fromy = 879 -- posiçao y superior a esquerda da area que sera analisada local toy = 886 -- posiçao y inferior a direita da area que sera analisada local floor = 7 -- posição z referece ao andar que criara o item -- Inicio e Fim devem ser 0, pois serão preenchidos de acordo com sua chance, -- e se você preencher não fará diferença pois o valor será modificado mesmo assim :D -- Quanto maior o número em "Chance" maior será a probabilidade de ser o item escolhido local Itens = { {Item = 2160, Chance = 100, Inicio = 0, Fim = 0}, {Item = 2161, Chance = 100, Inicio = 0, Fim = 0} {Item = 2162, Chance = 80, Inicio = 0, Fim = 0} {Item = 2163, Chance = 500, Inicio = 0, Fim = 0} {Item = 2164, Chance = 200, Inicio = 0, Fim = 0} } function onThink(cid, interval, lastExecution) local pos = {x= math.random(fromx, tox), y=math.random(fromy, toy), z=floor} local ItemSpawn = RetornarItemRandom() if ItemSpawn > 0 then if doCreateItem(ItemSpawn, 1, pos) == true then return true end end return true end function RetornarItemRandom() local Num = 0 -- Adicionar probabilidades for i = 1, #Itens do Itens[i].Inicio = Num Num = ((Num + Itens[i].Chance) - 1) Itens[i].Fim = Num end -- Criar a chance local Math = math.random(0, Num) -- Retornar item for i = 1, #Itens do if Itens[i].Inicio <= Math and Itens[i].Fim >= Math then return Itens[i].Item end end return 0 end
  6. fala amigo, respondi isso no tópico a seguir: veja se te ajuda..
  7. testado -- coloca assim: local keywordHandler = KeywordHandler:new() local npcHandler = NpcHandler:new(keywordHandler) NpcSystem.parseParameters(npcHandler) local talkState = {} 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 creatureSayCallback(cid, type, msg) if(not npcHandler:isFocused(cid)) then return false end -- VARIÁVEIS -- local talkUser = NPCHANDLER_CONVBEHAVIOR == CONVERSATION_DEFAULT and 0 or cid msg = string.lower(msg) local nome_primeiro_npc = "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" local nome_terceiro_npc = "xxxxxxxxxxxxxxxxxxxxxxxxxx" local id_item = 1441 ----------------------------------- [[ ID DO ITEM PARA DROP]] --------------------------------- local quantidade_item = 3 local id_item1 = 1440 ----------------------------------- [[ ID DO ITEM PARA DROP]] --------------------------------- local quantidade_item1 = 1 local id_item_recebido1 = 1450 local id_item_recebido2 = 2148 local id_item_recebido3 = 1443 local quantidade_item_recebido1 = 4 ----------------------------------- [[ BOX]] --------------------------------- local quantidade_item_recebido2 = 100 ----------------------------------- [[ BOX]] --------------------------------- local quantidade_item_recebido3 = 1 ----------------------------------- [[ BOX]] --------------------------------- ----------------------------------- [ DIALOGO COM NPC] --------------------------------- if msgcontains(msg, 'help') or msgcontains(msg, 'ajuda') or msgcontains(msg, 'missao') then if getPlayerStorageValue(cid, 9992) == 1 then -- STORAGE DO PRIMEIRO NPC, OU SEJA, VERIFICA SE FALOU COM PRIMEIRO NPC. if getPlayerStorageValue(cid, 9991) == 1 then -- VERIFICA SE JÁ FEZ A MISSÃO DO SEGUNDO NPC selfSay("Você já fez minha missão, agora você deve falar diretamente com o NPC " ..nome_terceiro_npc.. ".", cid) talkState[talkUser] = 0 return true else selfSay("Preciso que você me traga " ..quantidade_item.. " xxxxxxxxxxxxxxxx e xxxxxxxxxxxx. Você trouxe?", cid) talkState[talkUser] = 1 return true end else selfSay("Você deve falar com o NPC " ..nome_primeiro_npc.. " para conseguir fazer minha missão.", cid) talkState[talkUser] = 0 return true end elseif (msgcontains(msg, 'yes') or msgcontains(msg, 'sim')) and talkState[talkUser] == 1 then if doPlayerRemoveItem(cid, id_item, quantidade_item) then selfSay("Você me trouxe as " ..quantidade_item.. " que eu precisava. Agora você consegue falar com o NPC " ..nome_terceiro_npc.. ".", cid) doPlayerAddItem(cid, id_item_recebido1, quantidade_item_recebido1) doPlayerAddItem(cid, id_item_recebido2, quantidade_item_recebido2) doPlayerAddItem(cid, id_item_recebido3, quantidade_item_recebido3) doSendMagicEffect(getThingPos(cid), 29) setPlayerStorageValue(cid, 9991, 1) talkState[talkUser] = 0 return true else selfSay("Você não trouxe a quantidade de xxxxxxxxxxxe eu preciso. Me traga " ..quantidade_item.. " xxxxxxxxxxxxxxxxxxxx para prosseguir com a missão.", cid) talkState[talkUser] = 0 return true end return true end return true end npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback) npcHandler:addModule(FocusModule:new())
  8. O item estara na bag do player, ou é um item no mapa? Caso seja na bag do player, ai está 😄 local a = { remove = 8978, -- Item que vai ser removido. add = 11450 -- Item que vai ser adicionado. } local Tempo = 5 -- segundos function onUse(cid, item, frompos, item2, topos) if doPlayerRemoveItem(cid, a.remove, 1) then doPlayerAddItem(cid, a.remove, 1) doPlayerSendCancel(cid, "O item irá se transformar depois de "..Tempo.." segundos") else doPlayerSendCancel(cid, "você não tem o item") end addEvent(function() if doPlayerRemoveItem(cid, a.remove, 1) then doPlayerAddItem(cid, a.add, 1) doSendMagicEffect(getPlayerPosition(cid), 28) doPlayerSendCancel(cid, "Você transformou sua "..getItemNameById(a.remove).." em uma "..getItemNameById(a.add).."!") else doPlayerSendCancel(cid, "Você não tem um "..getItemNameById(a.remove)) end end, Tempo * 1000) return true end
  9. @mord em algumas linhas estavam faltando a vírgula ( , )... arrumei pra você local saga = { [1] = {[1] = 66, [2] = 91, [3] = 18, [4] = 31, [5] = 92, [6] = 40, [7] = 305, [8] = 320, [9] = 179, [10] = 394, [11] = 397, [12] = 124, [13] = 788, [14] = 812, [15] = 811, effect = 10}, --[Vocation] = {[1] = Roupa, effect = Efeito da transformação} [13] = {[1] = 93, [2] = 6, [3] = 5, [4] = 306, [5] = 7, [6] = 94, [7] = 59, [8] = 8, [9] = 178, [10] = 95, [11] = 567, [12] = 164, [13] = 816, [14] = 1131, effect = 10}, [34] = {[1] = 194, [2] = 175, [3] = 169, [4] = 173, [5] = 172, [6] = 171, [7] = 174, [8] = 170, [9] = 565,[10] = 566, [11] = 701, effect = 10}, [50] = {[1] = 67, [2] = 72, [3] = 158, [4] = 65, [5] = 329, [6] = 188, [7] = 62, [8] = 189, [9] = 335, [10] = 57, [11] = 518, effect = 10}, [70] = {[1] = 102, [2] = 103, [3] = 105, [4] = 107, [5] = 108, [6] = 314, [7] = 315, [8] = 333, [9] = 563, [10] = 314, effect = 10}, [90] = {[1] = 331, [2] = 199, [3] = 196, [4] = 197, [5] = 198, [6] = 332, effect = 10}, [110] = {[1] = 88, [2] = 341, [3] = 343, [4] = 342, [5] = 344, [6] = 345, effect = 10}, [130] = {[1] = 296, [2] = 297, [3] = 298, [4] = 299, [5] = 300, [6] = 548, [7] = 749, effect = 10}, [150] = {[1] = 384, [2] = 385, [3] = 568, effect = 10}, [170] = {[1] = 97, [2] = 285, [3] = 98, [4] = 284, [5] = 99, [6] = 569, [7] = 589, [8] = 211 , [9] = 806, [10] = 807, effect = 10}, [190] = {[1] = 373, [2] = 374, [3] = 375, [4] = 376, [5] = 318, [6] = 377, effect = 10}, [200] = {[1] = 11, [2] = 287, [3] = 12, [4] = 10, [5] = 289, [6] = 288, [7] = 13, [8] = 14 , [9] = 813, [10] = 814, effect = 10}, [220] = {[1] = 35, [2] = 476, [3] = 477, [4] = 478, [5] = 481, [6] = 483, [7] = 486, [8] = 489, [9] = 573, effect = 10}, [240] = {[1] = 437, [2] = 438, [3] = 439, [4] = 340, [5] = 343, [6] = 517, effect = 10}, [210] = {[1] = 452, [2] = 453, [3] = 254, [4] = 457, [5] = 458, [6] = 459, [7] = 460, [8] = 595, effect = 10}, [250] = {[1] = 421, [2] = 411, [3] = 422, [4] = 423, [5] = 424, [6] = 708, [7] = 709, [8] = 420 , [9] = 660, effect = 10}, [270] = {[1] = 491, [2] = 490, [3] = 495, [4] = 493, [5] = 494, [6] = 647, effect = 10}, [280] = {[1] = 503, [2] = 504, [3] = 505, [4] = 506, [5] = 789, [6] = 790, effect = 10}, [290] = {[1] = 309, [2] = 312, [3] = 311, [4] = 324, [5] = 319, [6] = 326, [7] = 328, effect = 10}, [300] = {[1] = 509, [2] = 510, [3] = 511, [4] = 16, [5] = 323, [6] = 159, [7] = 512, [8] = 513, [9] = 514, [10] = 515, effect = 10}, [310] = {[1] = 465, [2] = 466, [3] = 470, [4] = 551, [5] = 378, [6] = 379, [7] = 380, [8] = 381, [9] = 382, [10] = 572, effect = 10}, [340] = {[1] = 535, [2] = 536, [3] = 537, [4] = 538, [5] = 539, [6] = 540, [7] = 590, [8] = 591 , [9] = 592, [10] = 593, [11] = 594, effect = 10}, [375] = {[1] = 793, [2] = 794, [3] = 795, [4] = 796, [5] = 797, [6] = 798, [7] = 799, [8] = 800 , [9] = 801, [10] = 802, [11] = 803, [12] = 804, [13] = 805, effect = 10}, [390] = {[1] = 579, [2] = 580, [3] = 582, [4] = 579, [5] = 635, effect = 10}, [396] = {[1] = 817, [2] = 818, [3] = 819, [4] = 820, [5] = 821, [6] = 822, [7] = 823, [8] = 823, [9] = 824, [10] = 825, [11] = 826, [11] = 827, [12] = 828, effect = 10}, [408] = {[1] = 817, effect = 10}, } vale ressaltar tb que no [396] = {..} existem dois [11], eu deixei em negrito abaixo aqui: [396] = {[1] = 817, [2] = 818, [3] = 819, [4] = 820, [5] = 821, [6] = 822, [7] = 823, [8] = 823, [9] = 824, [10] = 825, [11] = 826, [11] = 827, [12] = 828, effect = 10}, testei no meu servidor e está certo agora... basta substituir o objeto "Saga" do seu script por esse que te enviei.
  10. function onSay(cid, words, param) local FraseInicio = "Correr" -- frase que você quer que diga, caso queira voltar para Strong hast basta mudar aqui :D if exhaustion.get(cid, 501) then doPlayerSendCancel(cid, 'Voce precisa esperar 10 segundos para usar novamente.') return true end doCreatureSay(cid, FraseInicio.." "..param, TALKTYPE_ORANGE_1) doChangeSpeed(cid, 1 * 100) doSendMagicEffect(getPlayerPosition(cid), 12) exhaustion.set(cid, 501, 10) addEvent(function() if isCreature(cid) then doChangeSpeed(cid, 1 * -100) end end, 10000) -- Tempo que vai durar a talkaction return true end onde está local Frase Inicio, seria a frase de inicio que irá juntar ao que o player quer dizer, por exemplo caso o player não coloque nenhum parametro, será a frase inicial, caso ele coloque parametro, essa frase inicial que atualmente é correr irá juntar ao que o player digitar ficando por exemplo "Correr Mais rápido que o vento" está ai 😄
  11. Qual o motivo deste tópico? Estou com erro no TFS Está surgindo algum erro? Se sim coloque-o aqui. Você tem o código disponível? Se tiver publique-o aqui: local shinys = { "Venusaur", "Charizard", "Blastoise", "Butterfree", "Beedrill", "Pidgeot", "Rattata", "Raticate", "Raichu", "Zubat", "Golbat", "Paras", "Parasect", "Venonat", "Venomoth", "Growlithe", "Arcanine", "Abra", "Alakazam", "Tentacool", "Tentacruel", "Farfetch'd", "Grimer", "Muk", "Gengar", "Onix", "Krabby", "Kingler", "Voltorb", "Electrode", "Cubone", "Marowak", "Hitmonlee", "Hitmonchan", "Tangela", "Horsea", "Seadra", "Scyther", "Jynx", "Electabuzz", "Pinsir", "Magikarp", "Gyarados", "Snorlax", "Dragonair", "Dratini"} local raros = {"Dragonite"} local function ShinyName(cid) if isCreature(cid) then if string.find(tostring(getCreatureName(cid)), "Shiny") then local newName = tostring(getCreatureName(cid)):match("Shiny (.*)") doCreatureSetNick(cid, newName) if isMonster(cid) then doSetCreatureDropLoot(cid, false) end end end end local function doSetRandomGender(cid) if not isCreature(cid) then return true end if isSummon(cid) then return true end local gender = 0 local name = getCreatureName(cid) if not newpokedex[name] then return true end local rate = newpokedex[name].gender if rate == 0 then gender = 3 elseif rate == 1000 then gender = 4 elseif rate == -1 then gender = 0 elseif math.random(1, 1000) <= rate then gender = 4 else gender = 3 end doCreatureSetSkullType(cid, gender) end local function doShiny(cid) if isCreature(cid) then if isSummon(cid) then return true end if getPlayerStorageValue(cid, 74469) >= 1 then return true end if getPlayerStorageValue(cid, 22546) >= 1 then return true end if isNpcSummon(cid) then return true end if getPlayerStorageValue(cid, 637500) >= 1 then return true end --alterado v1.9 if isInArray(shinys, getCreatureName(cid)) then --alterado v1.9 \/ chance = 1 --1% chance elseif isInArray(raros, getCreatureName(cid)) then --n coloquem valores menores que 0.1 !! chance = 1 --1% chance else return true end if math.random(1, 1000) <= chance*10 then doSendMagicEffect(getThingPos(cid), 18) local name, pos = "Shiny ".. getCreatureName(cid), getThingPos(cid) doRemoveCreature(cid) local shi = doCreateMonster(name, pos, false) setPlayerStorageValue(shi, 74469, 1) else setPlayerStorageValue(cid, 74469, 1) end --/\ else return true end end function onSpawn(cid) registerCreatureEvent(cid, "Experience") registerCreatureEvent(cid, "GeneralConfiguration") registerCreatureEvent(cid, "DirectionSystem") registerCreatureEvent(cid, "CastSystem") if isSummon(cid) then registerCreatureEvent(cid, "SummonDeath") return true end addEvent(doSetRandomGender, 5, cid) addEvent(doShiny, 10, cid) addEvent(ShinyName, 15, cid) addEvent(adjustWildPoke, 5, cid) return true end Estou tendo esse problema, quando vai iniciar o servidor ele da muitos erros, se alguém souber o que pode ser e me ajudar agradeço muito.
  12. não entendi essa ultima parte, você precisa que tire 1 poke de onde?
  13. cara, eu não manjo muito de transparência, porém tem uma forma que encontrei esses dias que é deixando transparente pelo otcliente, vou fazer um passo a passo pra ti 😄 e já retorno Segue os passos abaixo que você vai conseguir deixar itens transparentes 😄 1) Baixa o arquivo que deixei em anexo e extraia ele dentro de Modules de seu otclient: game_transparency.zip 2) abra o arquivo things.lua encontrado dentro da pasta game_transparency que você acabou de extrair. Segue o modelo: function init() fp = { -- 50% items = {[13681]=0.6, [13679]=0.3}, itemsFG = {}, creatures = {}, effects = {}, missEffects = {}, } local str = "items\n " for i,v in pairs(fp.items) do opacity = 0.7 if v < 1 then opacity = v end str = str .. (opacity == v and i or v) .. "\n opacity: "..(opacity).."\n full-ground: false\n " end for i,v in pairs(fp.itemsFG) do opacity = 0.7 if v < 1 then opacity = v end str = str .. (opacity == v and i or v) .. "\n opacity: "..(opacity).."\n full-ground: true\n " end str = str.. "\ncreatures\n " for i,v in pairs(fp.creatures) do opacity = 0.7 if v < 1 then opacity = v end str = str .. (opacity == v and i or v) .. "\n opacity: "..(opacity).."\n " end str = str.. "\neffects\n " for i,v in pairs(fp.effects) do opacity = 0.7 if v < 1 then opacity = v end str = str .. (opacity == v and i or v) .. "\n opacity: "..(opacity).."\n " end str = str.. "\nmissiles\n " for i,v in pairs(fp.missEffects) do opacity = 0.7 if v < 1 then opacity = v end str = str .. (opacity == v and i or v) .. "\n opacity: "..(opacity).."\n " end local f = io.open('./modules/game_transparency/things.otml', 'w') f:write(str) f:close() connect(g_game, {onClientVersionChange = onClientVersionChange}) end function terminate() end function onClientVersionChange(version) g_things.loadOtml('/game_transparency/things.otml') end Acima, veja o seguinte trecho logo após o init(): fp = { -- 50% items = {[13681]=0.6, [13679]=0.3}, itemsFG = {}, creatures = {}, effects = {}, missEffects = {}, } Onde está Items = {[13681]=0.6} você deve colocar dentro de [..] o ID do item que você pega no Object builder, ou seja abra o object builder com sua spr e dat, e pegue o ID do item... ficando [IDClient] = 0.6... Onde está 0.6 é a quantidade de transparencia que você quer, o número vai de 0 a 1 sendo 0.1, 0.2, 0.3 e assim por diante... Abaixo segue um exemplo do que seria o IDClient são esses números que está logo após a foto... caso você queira mais de um item transparente, basta colocar , após o 0.6 ficando assim: Items = { [13682]=0.6, [13681]=0.6, [13684]=0.6, [136]=0.6, [1]=0.6, [1361]=0.6, [12681]=0.6, [113]=0.6 } e assim por diante. Agora você testa o item para ver se ele ficou transparente, lembrando que no "andar 7" na maioria dos TFS não mostra as coisas que tem no andar 8, ficando um pretão em vez de mostrar as coisas abaixo, então eu recomendo testar no andar 6 para cima. Caso não tenha funcionado, vá na pasta do seu cliente, entre em "Modules > Game_Things" e abra o arquivo things.lua. Procure pela linha load() e logo abaixo dela, coloque g_game.enableFeature(GameSpritesAlphaChannel) -- habilitar transparencia.. Agora teste novamente... OBs: Não recomendo você copiar o codigo acima do post do tibia king, pois é capaz que quando você colar no bloco de notas acabar indo com alguns caracteres que eles usam para deixar o texto em negrito e assim por diante :D, então antes de colar oficialmente nos arquivos, coloque em um notepad++ e veja se não tem nenhum caracter invisivel 😄 Bom é isso. 😄 Espero que isso te ajude. Bom, os créditos não são meus, porém, não me lembro de que post que tirei, mas foi daqui do tibia king, infelizmente não lembro o nome dele. segue abaixo uma demonstração: Pokemon Nox desde 2016 De uma conferida 😄 https://pokenox.com.br

Open Tibia Server

Quer aprender a criar seu próprio servidor de Tibia? Então está no lugar certo, aqui você encontrará milhares de tutorias, scripts, códigos, mapas e utilitários para que você possa fazer o seu próprio servidor de Tibia começando do zero.

Redes Sociais

Anuncie no Tibia King

Precisa de mais visibilidade em seus projetos? Quer fazer um plano publicitário para o seu servidor? Anuncie no Tibia King e faça sua divulgação, possuímos centenas de acessos simultâneos e milhares diários, com certeza será a sua solução!

×
×
  • Create New...