Jump to content
Sign in to follow this  
Artur Henrique

Scripting Burst arrow antiga

Recommended Posts

.Qual servidor ou website você utiliza como base? 

otservbr-global

Qual o motivo deste tópico? 

Eu estou tentando fazer uma wand editada, a ideia é fazer ela bater em area, q nem era a burst arrow antigamente, aí fiz o script (anexado ai), só q tipo, eu queria q a area fosse aleatoria, n ficasse sempre batendo nos msm sqm tipo:

Ora bate assim                    Ora assim

❤️💛❤️                             💛❤️💛
❤️❤️❤️                             ❤️❤️💛
💛💛❤️                             💛❤️❤️

e por ai vai

 

Eu lembro q antigamente, qd ia escrever a area, dava pra por o 2 e ela servia como random, mas hj n dá em nda =\

Você tem o código disponível? Se tiver publique-o aqui: 

Spoiler

local area = createCombatArea({
     {1, 0, 1},
     {0, 3, 0},
     {1, 0, 1}
 })
 
 local combat = Combat()

 combat:setParameter(COMBAT_PARAM_TYPE, COMBAT_FIREDAMAGE)
 combat:setParameter(COMBAT_PARAM_EFFECT, CONST_ME_HITBYFIRE)
 combat:setParameter(COMBAT_PARAM_DISTANCEEFFECT, CONST_ANI_FIRE)
 combat:setArea(area)

 
function onGetFormulaValues(player, level, maglevel)
    local min = (maglevel / 2)
    local max = (maglevel * 2)
    return -min, -max
end

combat:setCallback(CALLBACK_PARAM_LEVELMAGICVALUE, "onGetFormulaValues")


 function onUseWeapon(player, variant)
    
     return combat:execute(player, variant)
 end
 

 

Edited by Artur Henrique (see edit history)

Titulo.png

Site com diversas Hotkeys/Shortkeys para elfbot, entre elas:

- Anti Push

- Tutorial Refiller

- Push Max

- Push Player Icon

- Mana bar (Igual do MageBot)

Share this post


Link to post
Share on other sites

@Artur Henrique você precisar criar as variações e depois usar math.random para selecionar as áreas a cada hit porém existe várias maneiras de fazer o mesmo também


🛠️ Projeto NTO NS 🛠️

📝 Detalhes 📝

🗺️ Mapa próprio em produção 🗺️

🖱️ Versão: 8.60 🖱️

🔥 War System 🔥

⚔️ Jutsus Próprios baseado no anime ⚔️

🔰 Itens com as características e efeitos do anime 🔰

💻 Para mais detalhes acesse as redes sociais do servidor abaixo 💻

💡 Usando como referencias Anime/Jogos/Wallpapers etc... para trazer algo mais próximo possível do universo de Naruto 💡

 

💎 Redes Sociais 💎

🌀 Facebook 🌀

🎒 Youtube 🎒
🌌 Discord 🌌

 

📚 Tutoriais / Conteúdos 📥

♨️ Clique Aqui ♨️

Share this post


Link to post
Share on other sites

 

1 hora atrás, LeoTK disse:

@Artur Henrique você precisar criar as variações e depois usar math.random para selecionar as áreas a cada hit porém existe várias maneiras de fazer o mesmo também

Então, só que tipo, independente doq eu faça, o setArea não pode ficar dentro de uma function, ou seja, vai ser carregado só quando o server abrir, entao meio q vai ser um "random" q vai ser sorteado só qd o server abre, vc consegue me dar um "norte" pra isso?


Titulo.png

Site com diversas Hotkeys/Shortkeys para elfbot, entre elas:

- Anti Push

- Tutorial Refiller

- Push Max

- Push Player Icon

- Mana bar (Igual do MageBot)

Share this post


Link to post
Share on other sites

@Artur Henrique achei este código em outro fórum porém é de uma magia da uma estudada e tenta implementar no seu já é meio caminho andado

 

Spoiler




local acombat, combat = createCombatObject(), createCombatObject()
setCombatParam(combat, COMBAT_PARAM_TYPE, COMBAT_PHYSICALDAMAGE)
setCombatParam(combat, COMBAT_PARAM_EFFECT, CONST_ME_NONE)
setCombatParam(combat, COMBAT_PARAM_DISTANCEEFFECT, CONST_ANI_ARROW)
setCombatFormula(combat, COMBAT_FORMULA_SKILL, 0, -9, 0.3, -5)

local arr1 = {
	{1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1},
	{1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1},
	{1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1},
	{1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1},
	{1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1},
	{1, 1, 1, 1, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1},
	{1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1},
	{1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1},
	{1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1},
	{1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1},
	{1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1}
}

setCombatArea(acombat, createCombatArea(arr1))

function onTargetTile(cid, pos)
	return math.random(2) == 1 and doCombat(cid, combat, positionToVariant(pos))
end
setCombatCallback(acombat, CALLBACK_PARAM_TARGETTILE, "onTargetTile")

function onCastSpell(cid, var)
	return doCombat(cid, acombat, var)
end


 

 


achei esse código também

 

Spoiler



local areaCombat, combat = createCombatObject(), createCombatObject()
setCombatParam(combat, COMBAT_PARAM_TYPE, COMBAT_ENERGYDAMAGE)
setCombatParam(combat, COMBAT_PARAM_EFFECT, 7)
setCombatParam(combat, COMBAT_PARAM_DISTANCEEFFECT, 5)
setCombatFormula(combat, COMBAT_FORMULA_LEVELMAGIC, -0.2, 1, -0.3, 1)
local myArray = {{3}}
local area = createCombatArea(myArray)
setCombatArea(areaCombat, area)
function onTargetTile(cid, pos)
    local posx, posy = math.random(-1,1), math.random(-1,1)
    return doCombat(cid, combat, positionToVariant({x = pos.x + posx, y = pos.y + posy, z = pos.z}))
end
setCombatCallback(areaCombat, CALLBACK_PARAM_TARGETTILE, "onTargetTile")
function onCastSpell(cid, var)
    addEvent(doCombat, 100, cid, areaCombat, var)
    addEvent(doCombat, 200, cid, areaCombat, var)
    addEvent(doCombat, 300, cid, areaCombat, var)
    return doCombat(cid, areaCombat, var)
end


 

 


🛠️ Projeto NTO NS 🛠️

📝 Detalhes 📝

🗺️ Mapa próprio em produção 🗺️

🖱️ Versão: 8.60 🖱️

🔥 War System 🔥

⚔️ Jutsus Próprios baseado no anime ⚔️

🔰 Itens com as características e efeitos do anime 🔰

💻 Para mais detalhes acesse as redes sociais do servidor abaixo 💻

💡 Usando como referencias Anime/Jogos/Wallpapers etc... para trazer algo mais próximo possível do universo de Naruto 💡

 

💎 Redes Sociais 💎

🌀 Facebook 🌀

🎒 Youtube 🎒
🌌 Discord 🌌

 

📚 Tutoriais / Conteúdos 📥

♨️ Clique Aqui ♨️

Share this post


Link to post
Share on other sites

Consegui, dei uma improvisada com os ifs e ficou bacana! brigadao ai 😃
depois eu vou tentar arrumar pra n bater 2x no msm sqm
 

Spoiler

local areaCombat, combat = createCombatObject(), createCombatObject()
combat:setParameter(COMBAT_PARAM_TYPE, COMBAT_FIREDAMAGE)
combat:setParameter(COMBAT_PARAM_EFFECT, CONST_ME_HITBYFIRE)
combat:setParameter(COMBAT_PARAM_DISTANCEEFFECT, CONST_ANI_FIRE)
 
function onGetFormulaValues(player, level, maglevel)
    local min = (maglevel / 2)
    local max = (maglevel * 2)
    return -min, -max
end
combat:setCallback(CALLBACK_PARAM_LEVELMAGICVALUE, "onGetFormulaValues")

local myArray = {{3}}
local area = createCombatArea(myArray)
setCombatArea(areaCombat, area)

function onTargetTile(cid, pos)
    local posx, posy = math.random(-1,1), math.random(-1,1)
    local posx2, posy2 = math.random(-1,1), math.random(-1,1)
    local posx3, posy3 = math.random(-1,1), math.random(-1,1)
    local posx4, posy4 = math.random(-1,1), math.random(-1,1)
    local posx5, posy5 = math.random(-1,1), math.random(-1,1)
    if posx == posy == 0 then
    local posx, posy = math.random(-1,1), math.random(-1,1)
        if posx == posy == 0 then    
            local posx, posy = 0, 1
        end
    end
    if posx2 == posy2 == 0 then
    local posx2, posy2 = math.random(-1,1), math.random(-1,1)
        if posx2 == posy2 == 0 then    
            local posx2, posy2 = 0, -1
        end
    end
    if posx3 == posy3 == 0 then
    local posx3, posy3 = math.random(-1,1), math.random(-1,1)
        if posx3 == posy3 == 0 then    
            local posx3, posy3 = 1, 0
        end
    end
    if posx4 == posy4 == 0 then
    local posx4, posy4 = math.random(-1,1), math.random(-1,1)
        if posx4 == posy4 == 0 then    
            local posx4, posy4 = -1, 0
        end
    end
    if posx5 == posy5 == 0 then
    local posx5, posy5 = math.random(-1,1), math.random(-1,1)
        if posx5 == posy5 == 0 then    
           local posx5, posy5 = math.random(-1,1), math.random(-1,1)
        end
    end
    return doCombat(cid, combat, positionToVariant({x = (pos.x + posx5), y = (pos.y + posy5), z = pos.z})), doCombat(cid, combat, positionToVariant({x = pos.x, y = pos.y, z = pos.z})), doCombat(cid, combat, positionToVariant({x = (pos.x + posx4), y = (pos.y + posy4), z = pos.z})), doCombat(cid, combat, positionToVariant({x = (pos.x + posx3), y = (pos.y + posy3), z = pos.z})), doCombat(cid, combat, positionToVariant({x = (pos.x + posx2), y = (pos.y + posy2), z = pos.z}))
end

setCombatCallback(areaCombat, CALLBACK_PARAM_TARGETTILE, "onTargetTile")

function onUseWeapon(cid, var)
    return doCombat(cid, areaCombat, var)
end


 

 

Edited by Artur Henrique (see edit history)

Titulo.png

Site com diversas Hotkeys/Shortkeys para elfbot, entre elas:

- Anti Push

- Tutorial Refiller

- Push Max

- Push Player Icon

- Mana bar (Igual do MageBot)

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Sign in to follow this  

  • Similar Content

    • By julo cesar
      Ola pessoa do Tk, esta dando esse erro na distrito quando vou dialogar com o npc
      Esse é bomber.lua
       --[[ ::::::::::::::::::::::::::::::::::::: ::: Script feita por Marshmello ::: ::: Não remova os creditos Plase ::: ::::::::::::::::::::::::::::::::::::: ]] 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 spawnPlayr = { playerS1 = {x = 978, y = 467, z = 7}, --Lugar onde o player1 vai spawn playerS2 = {x = 978, y = 447, z = 7}, --Lugar onde o player2 vai spawn playerS3 = {x = 948, y = 447, z = 7}, --Lugar onde o player2 vai spawn playerS4 = {x = 948, y = 467, z = 7},--Lugar onde o player3 vai spawn } -- não mexa daqui pra baixo global = { playerS1 = 14721, playerS2 = 14722, playerS3 = 14723, playerS4 = 14722, } globalName = { playerS1 = 14731, playerS2 = 14732, playerS3 = 14733, playerS4 = 14732, } ----------RESTO DAS CONFIGS ESTA NA LIB local function puxarPlayers() puxar1 = getCreatureByName(getGlobalStorageValue(globalName.playerS1)) puxar2 = getCreatureByName(getGlobalStorageValue(globalName.playerS2)) puxar2 = getCreatureByName(getGlobalStorageValue(globalName.playerS3)) puxar2 = getCreatureByName(getGlobalStorageValue(globalName.playerS4)) doTeleportThing(puxar1, spawnPlayr.playerS1) doTeleportThing(puxar2, spawnPlayr.playerS2) doTeleportThing(puxar3, spawnPlayr.playerS3) doTeleportThing(puxar4, spawnPlayr.playerS4) Bombermon.resetPlayerConfigs(puxar1) Bombermon.resetPlayerConfigs(puxar2) Bombermon.resetPlayerConfigs(puxar3) Bombermon.resetPlayerConfigs(puxa4) Bombermon.resetArea() setGlobalStorageValue(global.playerS1, -1) setGlobalStorageValue(global.playerS2, -1) setGlobalStorageValue(global.playerS3, -1) setGlobalStorageValue(global.playerS4, -1) setPlayerStorageValue(puxar1, 14731,-1) setPlayerStorageValue(puxar2, 14731,-1) setPlayerStorageValue(puxar3, 14731,-1) setPlayerStorageValue(puxar4, 14731,-1) setPlayerStorageValue(puxar1, 77947, 1) setPlayerStorageValue(puxar2, 77947, 1) setPlayerStorageValue(puxar3, 77947, 1) setPlayerStorageValue(puxar4, 77947, 1) doPlayerSendTextMessage(puxar1, 22, "Para soltar a bomba digite (!bomb) ou adicione o comando em sua hotkey!") doPlayerSendTextMessage(puxar2, 22, "Para soltar a bomba digite (!bomb) ou adicione o comando em sua hotkey!") doPlayerSendTextMessage(puxar3, 22, "Para soltar a bomba digite (!bomb) ou adicione o comando em sua hotkey!") doPlayerSendTextMessage(puxar4, 22, "Para soltar a bomba digite (!bomb) ou adicione o comando em sua hotkey!") end function creatureSayCallback(cid, type, msg) if(not npcHandler:isFocused(cid)) then return false end spawnPlayr = { playerS1 = {x = 1079, y = 198, z = 8}, playerS2 = {x = 1057, y = 198, z = 8}, playerS3 = {x = 1057, y = 218, z = 8}, playerS4 = {x = 1079, y = 2018, z = 8}, } global = { playerS1 = 14721, playerS2 = 14722, playerS3 = 14723, playerS4 = 14722, } globalName = { playerS1 = 14731, playerS2 = 14732, playerS3 = 14733, playerS4 = 14732, } if msgcontains(msg, 'sim') or msgcontains(msg, 'yes') then local areaBomb = {fromx = 1057, fromy = 198, fromz = 8, tox = 1079, toy = 218, toz = 8} local storage = 72821168 -- if getPlayerStorageValue(cid, storage) == 0 then -- selfSay('Você precisa está logado no new client para jogar o bombermon', cid) -- sendDialogNpc(cid, getNpcCid(),'Você precisa está logado no new client para jogar o bombermon') -- return true -- end if #getPlayersInArea(areaBomb) > 0 then selfSay('Você precisa esperar acabar uma rodada para entrar no bombermon', cid) sendDialogNpc(cid, getNpcCid(),'Você precisa esperar acabar uma rodada para entrar no bombermon') return true end if getPlayerStorageValue(cid,14731 ) > 0 then selfSay('Você já está na fila, por favor aguarde', cid) sendDialogNpc(cid, getNpcCid(),'Você já está na fila, por favor aguarde', cid) return true end if getGlobalStorageValue(global.playerS1) == -1 and getGlobalStorageValue(global.playerS2) == -1 and getGlobalStorageValue(global.playerS3) == -1 and getGlobalStorageValue(global.playerS4) == -1 then if doPlayerRemoveMoney(cid, Bombermon.Custo) then if getGlobalStorageValue(844664) < 0 then atualPremio = 0 else atualPremio = getGlobalStorageValue(844664) end setGlobalStorageValue(844564, atualPremio + 1) selfSay('Você entrou na fila de espera, Aguarde os outros jogadores para iniciar', cid) sendDialogNpc(cid, getNpcCid(),'Você entrou na fila de espera, Aguarde os outros jogadores para iniciar') setGlobalStorageValue(globalName.playerS1, getPlayerName(cid)) setGlobalStorageValue(global.playerS1, 1) setPlayerStorageValue(cid, 14731,1) addEvent(function() puxarPlayers() end, 5*1000) else selfSay('Você não tem 10 Hds para entrar no bombermon') end elseif getGlobalStorageValue(global.playerS1) == 1 and getGlobalStorageValue(global.playerS2) == -1 and getGlobalStorageValue(global.playerS3) == -1 and getGlobalStorageValue(global.playerS4) == -1 then if doPlayerRemoveMoney(cid, Bombermon.Custo) then if getGlobalStorageValue(844664) < 0 then atualPremio = 0 else atualPremio = getGlobalStorageValue(844664) end setGlobalStorageValue(844564, atualPremio + 1) selfSay('Você entrou na fila de espera, Aguarde os outros jogadores para iniciar', cid) sendDialogNpc(cid, getNpcCid(),'Você entrou na fila de espera, Aguarde os outros jogadores para iniciar') setGlobalStorageValue(globalName.playerS2, getPlayerName(cid)) setGlobalStorageValue(global.playerS2, 1) setPlayerStorageValue(cid, 14731,1) else selfSay('Você não tem 10 Hds para entrar no bombermon') end elseif getGlobalStorageValue(global.playerS1) == 1 and getGlobalStorageValue(global.playerS2) == 1 and getGlobalStorageValue(global.playerS3) == -1 and getGlobalStorageValue(global.playerS4) == -1 then if doPlayerRemoveMoney(cid, Bombermon.Custo) then if getGlobalStorageValue(844664) < 0 then atualPremio = 0 else atualPremio = getGlobalStorageValue(844664) end setGlobalStorageValue(844564, atualPremio + 1) selfSay('Você entrou na fila de espera, Aguarde os outros jogadores para iniciar', cid) sendDialogNpc(cid, getNpcCid(),'Você entrou na fila de espera, Aguarde os outros jogadores para iniciar') setGlobalStorageValue(globalName.playerS3, getPlayerName(cid)) setGlobalStorageValue(global.playerS3, 1) setPlayerStorageValue(cid, 14731,1) else selfSay('Você não tem 10 Hds para entrar no bombermon') end elseif getGlobalStorageValue(global.playerS1) == 1 and getGlobalStorageValue(global.playerS2) == 1 and getGlobalStorageValue(global.playerS3) == 1 and getGlobalStorageValue(global.playerS4) == -1 then if doPlayerRemoveMoney(cid, Bombermon.Custo) then if getGlobalStorageValue(844664) < 0 then atualPremio = 0 else atualPremio = getGlobalStorageValue(844664) end setGlobalStorageValue(844564, atualPremio + 1) selfSay('o Jogo irar iniciar em 5 segundos Preparece!!', cid) setGlobalStorageValue(globalName.playerS4, getPlayerName(cid)) setGlobalStorageValue(global.playerS4, 1) setPlayerStorageValue(cid, 14731,1) addEvent(function() puxarPlayers() end, 5*1000) else selfSay('Você não tem 10 Hds para entrar no bombermon') end end end return true end npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback) npcHandler:addModule(FocusModule:new())  
      Você tem alguma imagem que possa auxiliar no problema? Se sim, coloque-a aqui. 
       
    • By H. Gaudard
      Primeiramente, muito boa noite a toda a comunidade do TibiaKing, agradeço ao suporte que vocês oferecem a todos nós, desde já, o meu muito obrigado! Me perdoem se estiver na área incorreta.
       
      1- Devo informá-los que é um servidor derivado, porém creio que não terá diferença no suporte na resolução do meu problema;
      2- Uso como base Naruto B&W que está sendo completamente remodelada por mim, forgotten 8.60 0.3.6 v2.
       
      O PROBLEMA: 
      Ao usar weapon distance em algumas vocações específicas weapon distance crasha o servidor. Se eu usar no Naruto, crasha, porém o mesmo não acontece se eu usar o Sasuke, caso solicitado posso enviar o vocations.xml que está por enquanto DEFAULT como veio na base, e na base antiga mesmo as weapons funcionam, tentei ver se era as weapons, troquei em todos os diretórios onde estão itens weapons, itens.xml, weapons, movements, em tudo eu troquei onde tinha as weapons editados pelo que veio DEFAULT e funciona na base antiga
       
      Essas weapons distance testados são, Gunbai, e Rikudou Cetro, quem mexe com derivado sabe, mas como eu disse, não importa muito, não testei em outros mas creio que vá dá o mesmo problema nas vocações que tá crashando.
       
      Caso solicitado divulgo sem problema nenhum os scripts
       
      Não ocorre mensagem de erro! Simplesmente crasha!
       
      Você tem o código disponível? Se tiver publique-o aqui: (se solicitado publico)
         
       
    • By Hologram
      Alguem poderia me explicar como funcionam algumas linhas dessa lingua? To tentando entender mas to perdido
       
      Vou comentar dentro do script:
       
      MainWindow -- ; Creio que aqui seja o nome principal, como uma função ou algo do tipo, muito embora quem esteja sendo chamado pelo arquivo Lua é a linha de baixo "shopWindow" id: shopWindow -- ; Essa linha é chamada pela Lua, muito embora não seja setado nenhum diretório.. acho que qualquer arquivo .otui com o id "shopWindow" no computador estara sujeito a ser acessado !text: tr('System PvP') -- ; Texto na Barra da nova Gui size: 480 340 -- ; Tamanho da Gui @onEnter: modules.game_shop.hide() -- ; aqui parece que ele esta tentando acessar uma função ou pasta em "Modules" sdla.. e tabelas dentro dessa Modules.. mas não tenho certeza @onEscape: modules.game_shop.hide() -- ; Idem TabBarVertical -- ; Mesmo Caso da primeira linha id: shopTabBar -- ; Mesmo caso da segunda linha anchors.top: parent.top -- aqui aparentemente se refere ao tamanho de alguma coisa.. creio que seja uma coluna dentro da Gui do Shop, mas ele esta setado por uma função chamada "anchors" e "parent" e dentro delas creio que esteja valores como Top, Down, Left, Right e talvez outros.. anchors.left: parent.left anchors.bottom: closeButton.top Panel id: shopTabContent anchors.top: shopTabBar.top anchors.left: shopTabBar.right anchors.right: parent.right anchors.bottom: closeButton.top Button id: closeButton -- ; Botao de Close anchors.bottom: parent.bottom anchors.right: parent.right !text: tr('Close') width: 90 @onClick: modules.game_shop.hide()  
      Alguem sabe dizer se meus comentarios estão certos? e como eu altero o tamanho dessa tabela de uma função para um valor de numeros?
      Perdão pelas nubada, primeira vez que vejo essa lingua 
    • By Heitorzera13
      .Olá Galera do TK!
       
       
      Seguinte: 
      Baixei um ot mais ele vem com cliente proprio 8.60 
      Queria deixar ele pra entrar com qualquer cliente 8.60 usando o ip changer!
       
       
      Onde que eu edito na source?
       
       
       
         
       
       
    • By eunaosei123
      Boa noite, gostaria de um script que ao da use ele duplicaria a skill de pesca por determinado tempo.
       
  • Recently Browsing   0 members

    No registered users viewing this page.


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...