Ir para conteúdo
Close

REFORMULAMOS A SEÇÃO DE CLASSIFICADOS! - Crie grátis os seus anúncios de procura e oferta de serviços e produtos relacionados ao OTServ! - Acesse através do nosso menu ou clique aqui e confira já!

Líderes


Conteúdo Popular

Mostrando conteúdo com a maior reputação desde 10/11/2018 em todas áreas

  1. 2 pontos
    Africano

    Show OFF JohnBonner

    Mapa feito para o evento Mapper King
  2. 1 ponto
    BaiakStyller Sodoma E aí rapaziada do TibiaKing, tranquilos? Andei procurando alguns OTs para passar o tempo, e encontrei um legal para quem curte Styller e Baiak, ou os dois misturados. O Servidor e gringo, mas não e nada demais! Informações: · Offline Trainer · Refine System · War System · Castle 24Horas · Voc Bal · VIP System · Stages [1-300] High [300-+] Low · Novos Monstros · Zombie Event · Ice Cube Event · Tibia Quest · Custom Quests · Todas as 4 vocações possuem Set · Cast System · E muito mais! Algumas imagens do Servidor: - Download: https://www.mediafire.com/file/29u0bm1yi151p9h/Baiak_Styller_Sodoma_8.6.zip/file - Scan:https://www.virustotal.com/#/file/cde216aec0fa5b667ecbe41232b2deeec0b3c733b4a026cd47b235b62e8ccfaa/detection O Scan está acusando vírus, mas e por conta do executável (utilizado para ligar o servidor). Baixem por sua propiá conta e risco!
  3. 1 ponto
    Bragaia12

    [SHOWOFF] Bragaia12 Mapper Showoff

    Olá pessoal! Me chamo Bruno e mappeio desde a versão 8.6 do Tibia! Nunca compartilhei meu trabalhos aqui no TibiaKing, apenas postava na Otland, porém meu Showoff lá foi apagado e perdi vários dos meus trabalhos registrados já que atualmente perdi vários arquivos de mapas durante os anos. Mas então, já trabalhei de mapper para o Lincoln do SoldadinhosATS e também com o Ítalo do TiberaaOT (há muito tempo atrás) e também no projeto do Ítalo que era a OTProjects, eu ficava encarregado na parte de administração de vendas de mapas. Bom, agora que vocês já conhecem um pouquinho da minha história, vou começar a postar algumas fotos de mapas, tiradas pelo RME mesmo. Abraços, Bruno. Estou postando minhas primeiras imagens.
  4. 1 ponto
    DdJs

    RME

    Já tentou fazer isso? Redirecionar a versão correta do cliente no RME.
  5. 1 ponto

    Expira em: 2 meses e 15 dias

    • Procura-se Freelancers
    • A combinar

    Olá pessoal, tudo bom? Sou Manager da equipe do PokeWonder, trabalho diretamente na administração/formação da equipe e suas necessidades de modo geral. O que precisamos? Estamos precisando de profissionais competentes para área de programação, com conhecimento: Lua, C++ e OTC (Não necessariamente ter todas as qualificações) E iremos efetuar testes de novos membros para auxiliar o setor de Spriting. O trabalho podendo ser "Fixo" dependendo do seu desempenho ou de forma única como "Freelance". Nossas redes sociais: + Facebook: https://www.facebook.com/pokewonder/ + Nosso Discord: https://discord.gg/f2JNp69 Contato para mais informações: + Discord: - Stigal#0824 + E-mail: stigalcontato@gmail.com (Preferencialmente contato via Discord) Agradeço a atenção de todos, interessados poderão entrar em contato. Atenciosamente, Stigal.

    Valor não especificado

  6. 1 ponto
    Lyu

    Channel Help Mute (TFS 0.4)

    Introdução : Muta um jogador no canal HELP por meio de um comando. game.cpp Procure por Game::playerSay, abaixo de player->setIdleTime(0) adicione : if (channelId == CHANNEL_HELP) { std::string helpmute = "0"; player->getStorage("455010", helpmute); time_t now = time(NULL); time_t seconds = atoi(helpmute.c_str()) - now; if (seconds > 0) { std::stringstream sec; sec << "You are muted for " << seconds << " seconds on this channel."; player->sendTextMessage(MSG_STATUS_SMALL, sec.str()); return false; } } data/talkactions/scripts/helpmute.lua : function onSay(cid, words, param) if param == '' then return doPlayerSendCancel(cid, 'Informe o nome do jogador e o tempo em segundos.') end local default = 600 local tmp = string.explode(param, ',') if not isCreature(getCreatureByName(tmp[1])) then return doPlayerSendCancel(cid, 'Jogador inexistente ou off-line.') end setPlayerStorageValue(getCreatureByName(tmp[1]), 455010, os.time() + (tonumber(tmp[2]) or default)) doPlayerSendCancel(cid, 'O jogador ' .. tmp[1] .. ' foi mutado.') return true end data/talkactions/talkactions.xml : <talkaction log="yes" group="4" access="3" words="/helpmute" event="script" value="helpmute.lua"/> Como utilizar? Para impedir um jogador de falar no Channel Help, utilize o comando /helpmute Playername, segundos. Para resetar os segundos, utilize o mesmo comando só que em segundos, coloque 0. Comando disponível apenas para a acessos superiores, configuração disponível no XML talkactions.xml. Versão do TFS: 0.4 Créditos: Lyu
  7. 1 ponto
    underewarr

    [SHOW OFF] Underewar ACC

    Estou criando um novo website para a comunidade focado em servidores derivados de pokemon. ainda não sei se farei com suporte para outros servidores, em breve a primeira versão será liberada aqui no tk Mas informações em breve. Só desenvolvi as paginas abaixo assim que finalizar outras venho atualizar todos. IMAGEMS Index.php Create Account.php Login.php @update 1.1 Check Login criado , para evitar bugs nas compras"duplicar etc, bug que ainda existe em alguns websites. Pagina after login criada com painéis para melhorar a interação do usuário com o site. @Rank list 1.0 Criado um exemplo do rank list. Deixem sugestões e dicas. Ainda não adicionei o body do nav em todas as paginas mas faço isso depois. Loginacess.php @Supporte.php
  8. 1 ponto
    Jovim

    Action Que de Group Id ao player

    @Black Fenix Em data/actions/scripts, crie um arquivo .lua com o nome que desejar e adicione o script a baixo dentro. Em data/actions, abra o arquivo actions.xml e adicione a tag a baixo. Qualquer coisa é só postar ai
  9. 1 ponto
    Bragaia12

    [SHOWOFF] Bragaia12 Mapper Showoff

    Prison para o AuraOT!
  10. 1 ponto
    Brunds

    [Wono 4.0] Client Full 4.0 Open

    Fala galera bom estou disponibilizando o client wono 4.0 para download para vocês utilizarem em seus projeto tem bastante coisa legal nele espero que ajude quem esta a procura de sprites boas para começar seus projetos de nto version obj <?xml version="1.0" encoding="utf-8"?> <versions> <version value="710" string="7.10" dat="3DFF4B2A" spr="3DFF4AEB" otb="0"/> <version value="730" string="7.30" dat="411A6233" spr="411A6279" otb="0"/> <version value="740" string="7.40" dat="41BF619C" spr="41B9EA86" otb="1"/> <version value="750" string="7.50" dat="42F81973" spr="42F81949" otb="1"/> <version value="755" string="7.55" dat="437B2B8F" spr="434F9CDE" otb="2"/> <version value="760" string="7.60" dat="439D5A33" spr="439852BE" otb="3"/> <version value="770" string="7.70" dat="439D5A33" spr="439852BE" otb="3"/> <version value="780" string="7.80" dat="44CE4743" spr="44CE4206" otb="4"/> <version value="790" string="7.90" dat="457D854E" spr="457957C8" otb="5"/> <version value="792" string="7.92" dat="459E7B73" spr="45880FE8" otb="6"/> <version value="800" string="8.00" dat="467FD7E6" spr="467F9E74" otb="7"/> <version value="810" string="8.10" dat="475D3747" spr="475D0B01" otb="8"/> <version value="811" string="8.11" dat="47F60E37" spr="47EBB9B2" otb="9"/> <version value="820" string="8.20" dat="486905AA" spr="4868ECC9" otb="10"/> <version value="830" string="8.30" dat="48DA1FB6" spr="48C8E712" otb="11"/> <version value="840" string="8.40" dat="493D607A" spr="493D4E7C" otb="12"/> <version value="841" string="8.41" dat="49B7CC19" spr="49B140EA" otb="13"/> <version value="842" string="8.42" dat="49C233C9" spr="49B140EA" otb="14"/> <version value="850" string="8.50 v1" dat="4A49C5EB" spr="4A44FD4E" otb="15"/> <version value="850" string="8.50 v2" dat="4A4CC0DC" spr="4A44FD4E" otb="15"/> <version value="850" string="8.50 v3" dat="4AE97492" spr="4ACB5230" otb="15"/> <version value="852" string="8.52" dat="4A4CC0DC" spr="4A44FD4E" otb="0"/> <version value="853" string="8.53" dat="4AE97492" spr="4ACB5230" otb="0"/> <version value="854" string="8.54 v1" dat="4B1E2CAA" spr="4B1E2C87" otb="16"/> <version value="854" string="8.54 ntrl" dat="4B28B8A6" spr="4B1E2C87" otb="16"/> <version value="854" string="8.54 compiled" dat="8CC2FFF8" spr="C125BDAE" otb="16"/> <version value="854" string="8.54 v2" dat="4B28B8A9" spr="8AA2771A" otb="16"/> <version value="854" string="8.54 v3" dat="4B28B89E" spr="4B1E2C87" otb="17"/> <version value="854" string="8.54 po" dat="954C96F4" spr="95499D4D" otb="16"/> <version value="855" string="8.55" dat="4B98FF53" spr="4B913871" otb="18"/> <version value="860" string="8.60 v1" dat="4C28B721" spr="4C220594" otb="19"/> <version value="860" string="8.60 v2" dat="4C2C7993" spr="4C220594" otb="20"/> <version value="861" string="8.61" dat="4C6A4CBC" spr="4C63F145" otb="21"/> <version value="862" string="8.62" dat="4C973450" spr="4C63F145" otb="22"/> <version value="870" string="8.70" dat="4CFE22C5" spr="4CFD078A" otb="23"/> <version value="871" string="8.71" dat="4D41979E" spr="4D3D65D0" otb="24"/> <version value="872" string="8.72" dat="4DAD1A1A" spr="4DAD1A32" otb="25"/> <version value="900" string="9.00" dat="4DBAA20B" spr="4DAD1A32" otb="27"/> <version value="910" string="9.10" dat="4E12DAFF" spr="4E12DB27" otb="28"/> <version value="920" string="9.20" dat="4E807C08" spr="4E807C23" otb="29"/> <version value="940" string="9.40" dat="4EE71DE5" spr="4EE71E06" otb="30"/> <version value="944" string="9.44 v0" dat="4F0EEFBB" spr="4F0EEFEF" otb="31"/> <version value="944" string="9.44 v1" dat="4F105168" spr="4F1051D7" otb="32"/> <version value="944" string="9.44 v2" dat="4F16C0D7" spr="4F1051D7" otb="33"/> <version value="944" string="9.44 v3" dat="4F3131CF" spr="4F3131F6" otb="34"/> <version value="946" string="9.46" dat="4F75B7AB" spr="4F5DCEF7" otb="35"/> <version value="950" string="9.50" dat="4F75B7AB" spr="4F75B7CD" otb="36"/> <version value="952" string="9.52" dat="4F857F6C" spr="4F857F8E" otb="37"/> <version value="953" string="9.53" dat="4FA11252" spr="4FA11282" otb="38"/> <version value="954" string="9.54" dat="4FD5956B" spr="4FD595B7" otb="39"/> <version value="960" string="9.60" dat="4FFA74CC" spr="4FFA74F9" otb="40"/> <version value="961" string="9.61" dat="50226F9D" spr="50226FBD" otb="41"/> <version value="963" string="9.63" dat="503CB933" spr="503CB954" otb="42"/> <version value="970" string="9.70" dat="5072A490" spr="5072A567" otb="43"/> <version value="980" string="9.80" dat="50C70674" spr="50C70753" otb="44"/> <version value="981" string="9.81" dat="50D1C5B6" spr="50D1C685" otb="45"/> <version value="982" string="9.82" dat="512CAD09" spr="512CAD68" otb="46"/> <version value="983" string="9.83" dat="51407B67" spr="51407BC7" otb="47"/> <version value="985" string="9.85" dat="51641A1B" spr="51641A84" otb="48"/> <version value="986" string="9.86" dat="5170E904" spr="5170E96F" otb="49"/> <version value="1010" string="10.10" dat="51E3F8C3" spr="51E3F8E9" otb="50"/> <version value="1020" string="10.20" dat="5236F129" spr="5236F14F" otb="51"/> <version value="1021" string="10.21" dat="526A5068" spr="526A5090" otb="52"/> <version value="1030" string="10.30" dat="52A59036" spr="52A5905F" otb="53"/> <version value="1031" string="10.31" dat="52AED581" spr="52AED5A7" otb="54"/> <version value="1032" string="10.32" dat="52D8D0A9" spr="52D8D0CE" otb="0"/> <version value="1034" string="10.34" dat="52E74AB5" spr="52E74ADA" otb="0"/> <version value="1035" string="10.35" dat="52FDFC2C" spr="52FDFC54" otb="55"/> <version value="1036" string="10.36" dat="53159C7E" spr="53159CA9" otb="0"/> <version value="1037" string="10.37" dat="531EA82E" spr="531EA856" otb="0"/> <version value="1038" string="10.38" dat="5333C199" spr="5333C1C3" otb="0"/> <version value="1039" string="10.39" dat="535A50AD" spr="535A50D5" otb="0"/> <version value="1040" string="10.40" dat="5379984D" spr="53799876" otb="0"/> <version value="1041" string="10.41" dat="5383504E" spr="53835077" otb="0"/> <version value="1096" string="10.96" dat="00004243" spr="577FA18E" otb="0"/> </versions> Scan wono_4.0_att.rar
  11. 1 ponto
    JZDJ

    Remere's compatível 11+ (05/12/2017)

    Olá galerinha do TK. Hoje eu trago o editor de mapas REMERE'S compatível com as novas versões de mapas. No pacote está incluso o cliente TIBIA necessário para rodá-lo. Basta descompactar, clicar no RME.exe e selecionar o client quando solicitado, (vai pedir o client 11.40 selecione a pasta 10.00), o REMERE'S vai carregar normalmente. Download: Remere's 11+.rar SCAN Imagens: Caso apareça este erro basta fechar a janela Espero ter ajudado. Dúvidas comentem. REP+ é bom e não dói. Créditos: RME pelo programa, eu por trazer o conteúdo atualizado. Mapa utilizado nas fotos: Realmap do Malucooo. Abração. Jaurez/JZDJ
  12. 1 ponto
    Kimoszin

    Criando Spells para seu servidor!

    Ola gaaaaaaalera, é com muito prazer que venho trazer esse primeiro tutorial meu como Aprendiz do TibiaKing, Spells: Bom, spells sao as magias do nosso servidor, elas servem tanto para healar, atacar, dar suporte e etc ... Criar magias é algo muito simples, vc mesmo poderam criar quantas magias quiserem para o seu servidor seguindo esse tutorial, Muito bem, vamos começar ... Spells de Curar (Healing) Fazendo a sua Spell Nao precisamos mecher aqui Aqui sera, oque vai acontecer Aqui é o effect que saira quando o player usar a spell A spell nao vai agressivar, assim podendo ser usada em areas PZ Aqui sera um Extra, a spell ira curar paralyze Formula do magic level, quanto maior mais vai healar Nao precisamos mecher aqui tambem Legenda: × Mais efeito pode ser encontrados no final do Tutorial × Oque ira acontecer, poder ser encontrado no final do Tutorial × Condições, pode ser encontradas mais no final do Tutorial Obrigado a Todos, Estou terminando de fazer o SpellMaker para facilitar a vida de vc, Abraços Spells de Atacar (Attack) Fazendo a sua Spell Nao mechremos aqui Aqui sera o tipo de dano que a spell causara Aqui é o effect que saira quando o player usar a spell setAttackFormula(combat, COMBAT_FORMULA_LEVELMAGIC, 5, 5, 5, 12) Formula do magic level, quanto maior mais vai healar Area que a spell vai atingir, Nao mecheremos aqui tambem Legenda: × Areas, podem ser encontradas no final do Tutorial × Efeitos, podem ser encontrados no final do Tutorial × Danos, podem ser encontrados no final do Tutorial Spells de Suporte (Support) Fazendo a sua Spell Nao mechemos aqui Efeito da magia Magia nao agressiva, pode ser usada em areas PZ Condição de escudo de mana O tempo que demora para essa spell acabar, 1 segundo = 1000 Nao mechemos aqui Legenda: × Efeito, pode ser encontrados mais no final do Tutorial × Condições, pode ser encontradas mais no final do Tutorial Oque a Spell vai fazer Efeitos Areas Condições
  13. 1 ponto
    Sttorm

    [OPEN][8.54] Base Nto Space.

    Parabéns, seu tópico de conteúdo foi aprovado! Muito obrigado pela sua contribuição, nós do Tibia King agradecemos. Seu conteúdo com certeza ajudará à muitos outros, você recebeu +1 REP.
  14. 1 ponto
    faelzn69

    Skill em Stages para TFS 1.3

    @Beloria, em primeiro lugar, apesar de ser programador eu não programo LUA ou seja posso estar errado em absolutamente tudo o que eu lhe falar. Vamos por partes, ok? Reconhecendo o erro: player.lua:1047: attempt to compare number with nil Significa que na linha 1047(arquivo player.lua), ele tentou comparar um número com um valor nulo(nil), segue a linha: if skillLevel >= level[1] and skillLevel <= level[2] then Qual número ele comparou? skillLevel Com o que ele comparou esse número? level[1] e level[2] Provavelmente level[1] ou level[2] estão nulos. ---------- Analisando o código: local function getSkillRate(player, skillId) local targetVocation = config[player:getVocation():getBase():getId()] if targetVocation then local targetSkillStage = targetVocation[skillId] if targetSkillStage then local skillLevel = player:getSkillLevel(skillId) for level, rate in pairs(targetSkillStage) do if skillLevel >= level[1] and skillLevel <= level[2] then return rate end end end end return skillId == SKILL_MAGLEVEL and configManager.getNumber(configKeys.RATE_MAGIC) or configManager.getNumber(configKeys.RATE_SKILL) end skillLevel = propiedades do player { player:getSkillLevel(skillId) } level = chave do par { pairs(targetSkillStage) } rate = valor da chave Na linha: for level, rate in pairs(targetSkillRate) do { O algoritmo está passando (em pares) por uma tabela pré definda(local config) na linha 986: local config = { -- base vocationId [1] = { -- skillId [SKILL_FIST] = { -- [{skillLevel}] = skillRate [{10, 19}] = 10, [{20, 29}] = 5 }, [SKILL_CLUB] = { [{10, 19}] = 10, [{20, 29}] = 5 }, [SKILL_SWORD] = { [{10, 19}] = 10, [{20, 29}] = 5 }, [SKILL_AXE] = { [{10, 19}] = 10, [{20, 29}] = 5 }, [SKILL_DISTANCE] = { [{10, 19}] = 10, [{20, 29}] = 5 }, [SKILL_SHIELD] = { [{10, 19}] = 10, [{20, 29}] = 5 }, [SKILL_FISHING] = { [{10, 19}] = 10, [{20, 29}] = 5 }, [SKILL_MAGLEVEL] = { [{10, 19}] = 10, [{20, 29}] = 5 } } } ao tentar acessar um valor da chave level na posição 1 e 2, ou seja level[1] e level[2], supostamente ele deveria retornar 10 e 19 respectivamente. Nosso erro está exatamente aqui. e finalmente baseando se nesses dois valores a função retorna a rate pré definida(linha 986). } Minha opinião: acredito que o erro seja a maneira como o código está programado para retornar os valores da tabela config(linha 986). Até onde eu sei for loops usando pairs em lua é mais ou menos assim: Minha possível solução(não testei) { Acredito que cada skill definida na tabela deveria ter sido escrita da seguinte maneira: [SKILL_MAGLEVEL] = { [1] = { "fromLevel" = 10, "toLevel" = 19, "rate" = 10 }, [2] = { "fromLevel" = 20, "toLevel" = 29, "rate" = 5 } } E a código da função getSkillRate: local function getSkillRate(player, skillId) local targetVocation = config[player:getVocation():getBase():getId()] if targetVocation then local targetSkillStage = targetVocation[skillId] if targetSkillStage then local skillLevel = player:getSkillLevel(skillId) for index,level in pairs(targetSkillStage) do if skillLevel >= level["fromLevel"] and skillLevel <= level["toLevel"] then return level["rate"] end end end end return skillId == SKILL_MAGLEVEL and configManager.getNumber(configKeys.RATE_MAGIC) or configManager.getNumber(configKeys.RATE_SKILL) end Note a diferença entre os códigos. Eu particularmente gosto de definir todas as coisas usando strings( "fromLevel" = 10 ).... acho mais fácil de programar, mais óbvio, mais simples de entender(no caso de divulgação do código). Talvez dessa forma funcione corretamente, eu não posso lhe garantir nada pois não testei meu código. Do pouco que sei de LUA e uma pesquisa breve de uma hora, esta é a minha opinião sobre o seu problema. Espero ter ajudado de alguma forma. Recomendo estudar um pouco mais de LUA. } Boa sorte amigo.
  15. 1 ponto
    Ok senhor mestre, deus supremo todo poderoso da sabedoria, por que ao invés de ensinar, fica reclamando dos que querem aprender?
  16. 1 ponto
    Bom pessoal eu resolvi compartilhar o meu sistema de torneio para poketibia que fiz para meu projeto, ele tem a função de ocorrer 4 vezes ao dia....Falando apenas com o 1 NPC Nick da cidade aonde você por.... Como funciona ? Mata todos e o ultimo que sobrar na arena de batalha é o ganhador! 1° Pasta LIB copie um arquivo e deverá renomear para torneio ficando torneio.lua apaga tudo que tem dentro e add torneio = { awardTournament = 2148, ---moeda usada para entra no torneio-- awardAmount = 1000, -- quantidade de moeda que o player vai ganhar ao vencer o torneio-- playerTemple = {x = 893, y = 499, z = 15}, --pra onde vai o player quando morrer ?-- tournamentFight = {x = 894, y = 538, z = 15}, --centro da arena torneio combate-- area = {fromx = 866, fromy = 508, fromz = 15, tox = 922, toy = 572, toz= 15},--canto acima direito da arena combate-canto esquerdo abaixo da arena combate-- waitPlace = {x = 969, y = 544, z = 15}, --centro da sala de espera-- waitArea = {fromx = 957, fromy = 536, fromz = 15, tox = 983, toy = 552, toz= 15}, --canto esquerdo acima da sala de espera--canto abaixo esquerdo da sala de espera-- startHour1 = "07:50:00", --horario do aviso?-- endHour1 = "08:00:00",--horario que começa?-- startHour2 = "11:50:00",--horario do aviso?-- endHour2 = "12:00:00",--horario do aviso?-- startHour3 = "17:50:00",--horario do aviso?-- endHour3 = "18:00:00",--horario do aviso?-- startHour4 = "22:50:00",--horario do aviso?-- endHour4 = "23:00:00",--horario do aviso?-- price = 500,--valor para entrar no torneio ? 500 dollar no caso-- revivePoke = 12344,--aqui é revive se tiver e se não tiver não precisa mexer-- } function getPlayersInArea(area) local players = {} for x = area.fromx,area.tox do for y = area.fromy,area.toy do for z = area.fromz,area.toz do local m = getTopCreature({x=x, y=y, z=z}).uid if m ~= 1 and isPlayer(m) then table.insert(players, m) end end end end return players end apaga os coments do scripts acima com --blablabla-- 2° GLOBALEVENTS vá na pasta globalevents/scripts copia um arquivo que voc?ê deverá renomear para torneio ficando torneio.lua e add function onTime() if #getPlayersInArea(torneio.area) > 1 then doBroadcastMessage("O Torneio dessa vez não teve vencedor, tente na proxima vez") return true end for _, pid in ipairs(getPlayersInArea(torneio.waitArea)) do puxar = math.random(-2, 2) doTeleportThing(pid, {x = torneio.tournamentFight.x + puxar, y = torneio.tournamentFight.y + puxar, z = torneio.tournamentFight.z}) end doBroadcastMessage("O torneio Iniciou!") return true end ou dependendo do tfs pode ser function onTimer() if #getPlayersInArea(torneio.area) > 1 then doBroadcastMessage("O Torneio dessa vez não teve vencedor, tente na proxima vez") return true end for _, pid in ipairs(getPlayersInArea(torneio.waitArea)) do puxar = math.random(-2, 2) doTeleportThing(pid, {x = torneio.tournamentFight.x + puxar, y = torneio.tournamentFight.y + puxar, z = torneio.tournamentFight.z}) end doBroadcastMessage("O torneio Iniciou!") return true end agora em globalevents.xml add as tag <globalevent name="TournamentStart1" time="08:00" event="script" value="torneio.lua"/> <globalevent name="TournamentStart2" time="12:00" event="script" value="torneio.lua"/> <globalevent name="TournamentStart3" time="18:00" event="script" value="torneio.lua"/> <globalevent name="TournamentStart4" time="23:00" event="script" value="torneio.lua"/> ou <globalevent name="TournamentStart1" timer="08:00" event="script" value="torneio.lua"/> <globalevent name="TournamentStart2" timer="12:00" event="script" value="torneio.lua"/> <globalevent name="TournamentStart3" timer="18:00" event="script" value="torneio.lua"/> <globalevent name="TournamentStart4" timer="23:00" event="script" value="torneio.lua"/> ainda em globalevents vá em globalevents/scripts copie outro arquivo e renomeia para, msgtorneio ficando msgtorneio.lua e add local i = { ["07:50"] = {nome = "O Torneio vai começar em 10 minutos, fale com o NPC Nike no CP de sua cidade, vai custar 500 Dollar's para participar!"}, ["07:55"] = {nome = "Faltam 5 minutos para fechar as inscrições do torneio!"}, ["07:59"] = {nome = "As inscrições do Torneio fecharam!"}, ["11:50"] = {nome = "O Torneio vai começar em 10 minutos, fale com o NPC Nike no CP de sua cidade, vai custar 500 Dollar's para participar!"}, ["11:55"] = {nome = "Faltam 5 minutos para fechar as inscrições do torneio!"}, ["11:59"] = {nome = "As inscrições do Torneio fecharam!"}, ["17:50"] = {nome = "O Torneio vai começar em 10 minutos, fale com o NPC Nike no CP de sua cidade, vai custar 500 Dollar's para participar!"}, ["17:55"] = {nome = "Faltam 5 minutos para fechar as inscrições do torneio!"}, ["17:59"] = {nome = "As inscrições do Torneio fecharam!"}, ["22:50"] = {nome = "O Torneio vai começar em 10 minutos, fale com o NPC Nike no CP de sua cidade, vai custar 500 Dollar's para participar!"}, ["22:55"] = {nome = "Faltam 5 minutos para fechar as inscrições do torneio!"}, ["22:59"] = {nome = "As inscrições do Torneio fecharam!"}, } function onThink(interval, lastExecution) hours = tostring(os.date("%X")):sub(1, 5) tb = i[hours] if tb then doBroadcastMessage(hours .. " - " .. tb.nome .. "") end return true end agora as tag globalevents.xml add <globalevent name="msg torneio" interval="60000" event="script" value="msgtorneio.lua"/> pronto agora vamos mexer com actions... 3° ACTIONS para o player receber a recompensa... vá em actions/scripts copie um arquivo lá e renomeia para torneio ficando torneio.lua e add function onUse(cid, item) local torneios = 1 if #getCreatureSummons(cid) >= 1 then doPlayerSendCancel(cid, "Volte seu pokémonDBR!") else if #getPlayersInArea(torneio.area) > 1 then doPlayerSendTextMessage(cid, 20 ,"Só o ultimo que ficar na arena, poderá abrir está porta! ") return true end doTeleportThing(cid, torneio.playerTemple) doBroadcastMessage("[Torneio] Parabéns ao treinador "..getCreatureName(cid).." foi o ganhador do torneio de hoje, verifique o rank em nosso site www.seusite.com!") doPlayerAddItem(cid,2148,300) addTopt(cid, torneios) doPlayerSendTextMessage(cid,MESSAGE_EVENT_ORANGE,"[Torneio] Você já venceu "..(getTopt(cid,torneio)).."x, Parabéns.") doPlayerAddItem(cid, torneio.awardTournament, torneio.awardAmount) return true end end agora a tag de actions.xml add <action uniqueid="18279" event="script" value="torneio.lua"/> *18279 é unique ID que vc terá que por numa porta alavanca o que for pra depois o ultimo player clicar... 4° NPC vá na pasta npc/scripts copia um arquivo e você deverá renomear para torneio ficando torneio.lua e add 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 local talkUser = NPCHANDLER_CONVBEHAVIOR == CONVERSATION_DEFAULT and 0 or cid if msgcontains(msg, 'torneio') or msgcontains(msg, 'enter') then if getPlayerItemCount(cid, torneio.revivePoke) >= 1 then selfSay('Voce nao Pode entrar no torneio com {revives}, por favor guarde eles e volte a falar comigo novamente.', cid) return true end selfSay('Voce quer Participar no torneio por '..torneio.price..' de Dollars?', cid) talkState[talkUser] = 2 elseif talkState[talkUser] == 2 then if msgcontains(msg, 'yes') or msgcontains(msg, 'sim') then if os.date("%X") < torneio.startHour1 or os.date("%X") > torneio.endHour1 then if os.date("%X") < torneio.startHour2 or os.date("%X") > torneio.endHour2 then if os.date("%X") < torneio.startHour3 or os.date("%X") > torneio.endHour3 then if os.date("%X") < torneio.startHour4 or os.date("%X") > torneio.endHour4 then selfSay('As inscrições para o torneiro ainda não abriram, volte ás 07:50 AM, 11:50 AM, 17:50 AM ou ás 22:50 PM todo os dias', cid) return true end end end end if doPlayerRemoveMoney(cid, torneio.price) then doTeleportThing(cid, torneio.waitPlace) doPlayerSendTextMessage(cid, 21, "Bem vindo, esta e a sala de espera, voce espera aqui enquanto o torneio nao começa.") else selfSay('Voce não tem ('..torneio.price..') Dollars.', cid) end else selfSay('Certeza que voce não quer Participar? Ok, ate a Proxima', cid) talkState[talkUser] = 0 end end end npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback) npcHandler:addModule(FocusModule:new()) bom agora volte um pasta e copia um arquivo.xml e renomeia para torneio ficando torneio.xml e add <?xml version="1.0" encoding="UTF-8"?> <npc name="Nick" script="torneio.lua" walkinterval="999000" floorchange="0"> <health now="150" max="150"/> <look type="1245" head="20" body="100" legs="50" feet="99" corpse="2212"/>] <parameters> <parameter key="message_greet" value="Ola |PLAYERNAME|. Sou o NIKE, Encarregado pelo Torneio diario caso queira entrar diga: {torneio}."/> </parameters> </npc> 5° importa para seu mysql o código ALTER TABLE `players` ADD `torneio` int(11) NOT NULL default '0'; agora a vá na pasta lib copia um arquivo.lua e renomeia para torneio e add ficando torneio.lua function getTopt(cid) local check4 = db.getResult("SELECT `torneio` FROM `players` WHERE `id` = " .. getPlayerGUID(cid) .. " LIMIT 1") return check4:getDataInt("torneio") <= 0 and 0 or check4:getDataInt("torneio") end function addTopt(cid,amount) db.executeQuery("UPDATE `players` SET `torneio` = "..getTopt(cid).."+"..amount.." WHERE `id` = "..getPlayerGUID(cid)) end function removeTopt(cid,amount) db.executeQuery("UPDATE `players` SET `torneio` = "..getTopt(cid).."-"..amount.." WHERE `id` = "..getPlayerGUID(cid)) end function setTopt(cid,value) db.executeQuery("UPDATE `players` SET `torneio` = "..value.." WHERE `id` = "..getPlayerGUID(cid)) end 6° pronto torneio 4 vezes ao dia + npc + rank para site como usar o rank no site ? vai em htdocs/template/seulayout/index.tpl e add em algum lugar lá <div class="top-box"> {include_php file='torneio.php'} </div> agora vá em htdocs criar um novo text com nome torneio.php e add <?PHP //** Connection to the database **// $ots = POT::getInstance(); $ots->connect(POT::DB_MYSQL, connection()); $SQL = POT::getInstance()->getDBHandle(); //** Top Players + online status By Kavvson **// $money_list = $SQL->query('SELECT name,torneio FROM players ORDER BY torneio DESC LIMIT 5')->fetchAll(); $i = 1; foreach($money_list as $money_chr){ echo '<center>'; echo $i.'. <a href="/pt/index.php/character/view/'.urlencode($money_chr['name']).'">'; $player = $ots->createObject('Player'); $player->find($money_chr['name']); echo '<font color="'; echo ($player->isOnline()) ? 'green' : 'green'; echo '">'; echo ''.$money_chr['name'].'</b></a></font>'; echo' Torneio Ganhos: '.$money_chr['torneio'].'</B>'; $i++; } for( $i; $i <= 1; $i++ ){ echo $i.'. <br><i>Empty</i><br /><br />'; } echo '</center>'; isso ai pessoal é completo eu fiz pro meu PokémonDBR que tinha fechado então resolvi compartilhar.... qualquer copia favor bote devido créditos e não quero ver ninguém vendendo meu scripts.... Créditos a mim... qualquer dúvida falando que não sou o dono aqui minha página da PokémonDBR e agora somos otPokémon World Online http://facebook.com/otpwonline
  17. 1 ponto
    Script sem o bug de tirar o target e sem damage: local config = { storageID = 49609, mark_time = 10 * 60, effectWhenTeleport = 339, -- Efeito ao teleportar effectWhenUsed = 152, } local errorMsg = { pz = "Seu alvo nao pode estar fora do PZ.", playerOnly = "Voce so pode usar este jutsu em players.", alreadyMarked = "Voce ja marcou um jogador.", } local combat = createCombatObject() setCombatParam(combat, COMBAT_PARAM_TYPE, COMBAT_ENERGYDAMAGE) setCombatParam(combat, COMBAT_PARAM_EFFECT, 152) setCombatParam(combat, COMBAT_PARAM_DISTANCEEFFECT, CONST_ANI_ENERGY) function onCastSpell(cid, var) if isPlayer(getCreatureTarget(cid)) then if getPlayerStorageValue (cid, config.storageID) <= 0 then setPlayerStorageValue(cid, config.storageID, 1) doPlayerSendTextMessage(cid,22, "Voce marcou o player ".. getCreatureName(getCreatureTarget(cid))) target = getCreatureTarget(cid) doSendMagicEffect(getPlayerPosition(target), 152) local struct = { left = config.mark_time * 3, player = cid, target = target, var = var } addEvent(teleportIsTrue, 333, struct) else doSendMagicEffect(getPlayerPosition(cid), 2) doPlayerSendCancel(cid, errorMsg.alreadyMarked) return false end else doSendMagicEffect(getPlayerPosition(cid), 2) doPlayerSendCancel(cid, errorMsg.playerOnly) return false end return doCombat(cid, combat, var) end function teleportIsTrue (struct) if struct.left ~= 0 then if getPlayerStorageValue (struct.player, config.storageID) == 2 then doTeleportThing(struct.player, getThingPosition(struct.target), true) setPlayerStorageValue(struct.player, config.storageID, 0) doSendMagicEffect(getPlayerPosition(struct.player), config.effectWhenTeleport) doPlayerSendTextMessage(struct.player,22, "Voce perdeu sua marcacao.") return TRUE end struct.left = struct.left - 1 addEvent (teleportIsTrue, 333, struct) elseif struct.left == 0 then doPlayerSendTextMessage(struct.player,22, "Voce perdeu sua marcacao.") setPlayerStorageValue(struct.player, config.storageID, 0) else return FALSE end end
  18. 1 ponto
    Olá criançada do tibiaking. Durante muito tempo, várias pessoas vieram me perguntar como colocar o attackspeed por fist fighting e a resposta sempre foi a mesma: "Tendo as sources é só dar uma procurada no tibiaking que lá tem(Jabá)" Mas parando para pensar um pouco e sendo criativo, elaborei 1 jeito(incrivelmente fácil) de imitar esse sistema apenas em LUA. Nota1: Como a estrutura lua apresenta certas limitações infelizmente o sistema também, será necessário um item na mão para se treinar o fist (se você bater em algum target sem items, a velocidade do ataque ira parecer a original mesmo tendo 5k de fist fighting. Nota2: Caso você tenha acesso as sources do seu ot e saiba como compilar etc, é melhor que você use o sistema nas sources vide: Attackspeed por Fist Nota3: Se você não tiver acesso as sources(elas são sempre um problema não é mesmo)e a velocidade de ataque aumente muito, a mudança no attackspeed só será visível se o player estiver usando bot. Então vamos logo ao que interessa a todos: Primeiro: criei um arquivo lua em data\creaturescripts\scripts como o nome de attackspeed.lua e coloque o seguinte dentro: function onAttack(cid, target) --------Fist fighting decreasing/increasing attackspeed in lua by MMF-------- local skill = getPlayerSkill(cid, 0) local velocidade = math.floor(20000/(1.35*skill)) -- altere aqui para aumentar/diminuir a quantidade de ataques por segundo! local item = getPlayerWeapon(cid) if item.itemid == 0 then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Você precisa ter uma arma em sua mão para atacar!") return false end doItemSetAttribute(item.uid,'attackspeed', velocidade) return true end Lembre-se que para aumentar a quantidade de ataques por segundo a variável velocidade tem de ficar MENOR e o contrário para diminuir a velocidade. Adicione a seguinte tag no XML: <event type="attack" name="attackspeed" script="attackspeed.lua"/> Agora vá em data\creaturescripts\scripts, encontre o login.lua e adicione: registerCreatureEvent(cid, "attackspeed") Agora vá em data\items, encontre o items.xml e escolha o item que será usado para treinar o fist no meu caso escolhi uma blue rose. no item que você escolher adicione os seguintes atributos: <attribute key="attack" value="1" /> <attribute key="weaponType" value="fist" /> no meu caso a blue rose ficou assim, mas você pode fazer com qualquer item que possa ser colocado na mão do personagem. </item> <item id="2745" article="a" name="blue rose"> <attribute key="weight" value="80" /> <attribute key="attack" value="1" /> <attribute key="weaponType" value="fist" /> </item> E é isso(se eu não me esqueci de nada). Se você for utilizar esse sistema em seu servidor lembre-se de avisar aos players que precisa de 1 item para treinar o fist! Dúvidas/edições é só postar nos comentários ou me chamar nos comentários que farei o possível para ajudar! meu skype: john.winchester8
  19. 1 ponto
    Adventure

    Como colocar som no mapa no OTClient

    Olá pessoal. Venho trazer para vocês um novo mod já que nenhum outro esta funcionando. Oque você fez ? '' Bom simplesmente peguei uma base. A base só tinha umas 5 linhas '-' foi dureza fazer o resto kkkk. Ai compilei no OT Cliente para funcionar só no meu cliente para ninguém roubar ! '' Mas um amiguinho aqui do Tibia King e também uma galera estava com o mesmo problema que eu , então tive de refazer e tirar a proteção do script para disponibilizar para vocês. Para vocês não precisar copiar os script eu montei tudo bonitinho e deixei em uma pasta. Basta apenas: Entra na pasta do seu otclient e na pasta Mod você colocar a pasta que irei disponibilizar. Simples Como configurar: Vá no rcsound.lua Abra ele ! Na parte: {fromPos = {x=1089, y=1110, z=8}, toPos = {x=1135, y=1142, z=8} Como voces podem ver deve ser colocado em fromPos a primeira ponta do lado esquerdo e em toPos a outra ponta da parte de baixo. É importante configurar corretamente. Na parte: {fromPos = {x = 985, y = 1069, z = 8}, toPos = {x = 1378, y = 1290, z = 8}, sound = "Fairy Tail - Main.ogg"}, Deve ser colocada a musica em formato ( ogg ) para converter é bem simples Vá neste site http://online-audio-converter.com/pt/ Que por sinal é muito bom ! Você converte sua musica para ogg. Não mecha na qualidade se tentar melhorar a qualidade do som na hora da conversão o som pode sair muito estranho kkk vá por mim. Coloque as musicas em formato OGG dentro da pasta music ! NÃO É A PASTA QUE FICA NO DATA , É A PASTA QUE ESTA DENTRO DO MOD COM O NOME DE MUSIC PELO AMOR DO PAEE Deixei uma musica na pasta para que vocês possam testar o sistema. Caso der algum erro no Console poste e tentaremos arrumar. Normalmente estou sempre ON pelo celular Download: *Upei em dois lugares diferentes vocês podem escolher onde querem baixar Scan para aquela galerinha paranoica kkk: EM BREVE VEM AI O : -ADVENTURE WORLD- PARA AQUELES QUE GOSTAM DO BOM E VELHO RPG EM UM MUNDO CERCADO DE AVENTURAS E UMA HISTORIA ENVOLVENTE !
  20. 1 ponto
    mattos123

    [BUG] Depot Player Passa por dentro

    Vá no seu items.xml localize o ID do tile que está usando , e edite a seu gosto. <item id="ID_FLOOR" article="a" name="depot floor"> <attribute key="walkStack" value="0" /> -- [Solução] </item>
  21. 1 ponto
    Vodkart

    RESPONDIDO NPC Cledwyn - Silver token trader

    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 local talkUser,msg,str = NPCHANDLER_CONVbehavior == CONVERSATION_DEFAULT and 0 or cid,msg:lower(),"" local moeda = 10581 -- ID DA SILVER TOKEN local t = { ["boots of haste"] = {amount = 10, item = {2195,1}}, ["demon helmet"] = {amount = 11, item = {2493,1}}, ["frozen starlight"] = {amount = 30, item = {2361,1}}, ["spellbook of dark mysteries"] = {amount = 20, item = {8918,1}}, ["royal crossbow"] = {amount = 20, item = {8851,1}}, ["stuffed dragon"] = {amount = 30, item = {5791,1}}, ["star tear"] = {amount = 100, item = {7735,1}}, ["jester staff"] = {amount = 100, item = {7958,1}}, ["vancini axe"] = {amount = 100, item = {8925,1}}, ["firewalker boots"] = {amount = 50, item = {9932,1}}, ["flame blade"] = {amount = 100, item = {8931,2}} } if (msgcontains(msg, 'trade') or msgcontains(msg, 'TRADE'))then str = str .. "Pode trocar suas SILVER TOKENS por: " for name, ret in pairs(t) do str = str.." {"..name.."} = "..ret.amount.." Moedas /" end npcHandler:say(str, cid) elseif t[msg] then local item, amount = t[msg].item[1], t[msg].item[2] if doPlayerRemoveItem(cid,moeda, t[msg].amount) then if isItemStackable(item) or amount == 1 then doPlayerAddItem(cid, item, amount) else for i = 1, amount do doPlayerAddItem(cid, item, 1) end end npcHandler:say("Aqui está "..amount.." ".. getItemNameById(item) .."!", cid) else npcHandler:say("Você precisa de "..t[msg].amount.." ".. getItemNameById(moeda), cid) end end return true end npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback) npcHandler:addModule(FocusModule:new())
  22. 1 ponto
    Ok, eu fiz outro para apenas 1 surprise bag. Vá em data/actions/scripts e crie um arquivo chamado surprisebag.lua e coloque isso dentro: local items = { --[numeração] = {id = ID DO ITEM, count = QUANTIDADE DO ITEM} [1]={id=2687, count=10}, [2]={id=6394, count=3}, [3]={id=6280, count=1}, [4]={id=6574, count=1}, [5]={id=6578, count=1}, [6]={id=6575, count=1}, [7]={id=6577, count=1}, [8]={id=6569, count=1}, [9]={id=6576, count=1}, [10]={id=6572, count=1} } function onUse(cid, item, fromPosition, itemEx, toPosition) a = math.random(1, #items) doPlayerAddItem(cid, items[a].id, items[a].count) doSendMagicEffect(fromPosition, CONST_ME_GIFT_WRAPS) doRemoveItem(item.uid, 1) return true end Agora va na pasta data/actions e adicione essa tag ao arquivo actions.xml: <action itemid="ID DA SUA SURPRISE BAG" script="surprisebag.lua"/> Não esqueça de colocar o devido id no local apropriado nessa tag.
  23. 1 ponto
    em creaturescripts/scripts : function onKill(cid, target, lastHit) config = { NickBoss = "Rat", StoragePorta = 666 } if isMonster(target) then if getCreatureName(target) == config.NickBoss then setPlayerStorageValue(cid, config.StoragePorta, 1) doPlayerSendTextMessage(cid, 18, "Parabens voce matou o Boss Super Fodao como recompensa podera passar na Porta") return true end end return true end creaturescripts.xml : <event type="combat" name="Porta" event="script" value="NOMEDOARQUIVO.lua"/> login.lua : registerCreatureEvent(cid, "Porta") em Actions/scripts : function onUse(cid, item, fromPosition, itemEx, toPosition) if item.actionid == 666 then if getPlayerStorageValue(cid, 666) ~= 1 then return doPlayerSendTextMessage(cid, 27, "Voce precisa matar o Boss Super Fodao!") end return true end em actions.xml : <action actionid = "666" event="script" value="NOMEDOARQUIVO.lua"/> no map usando seu Editor map selecione a porta escolhida e em propriedade da porta ActionID coloque 666 salve e seja feliz com seu BOSS super fodão
  24. 1 ponto
    GBDias

    inquisition quest

    Vamos la, você terá que pesquisar a respeito da inquisition, primeiro saiba como ela funciona para depois tentar implementa-la, essa é uma regra básica para que qualquer coisa dê certo. De início, você tem q saber uma coisa, sempre que um boss é derrotado, um portal temporário é criado para os jogadores passarem por ele e seguirem em frente com a quest, você terá que pesquisar e saber pra onde cada portal vai levar, então deverá configurar o scrip da maneira correta, uma vez que já saiba como a quest funciona, vamos fazer os portais aparecerem: Primeiro vá em creaturescripts.xml e adicione a seguinte tag: <event type="kill" name="Inquisition" event ="script" value="inquisition.lua"/> Retire a linha que usa no momento ou troque o nome do evento para "Inquisition" caso você saiba o que está fazendo. Em creaturescripts/scripts/inquisition.lua: Você deve configurar o script da seguinte maneira: ["Ushuriel"] = {teleportPos = {x = 10249, y = 10350, z = 12, stackpos = 1}, toPos = {x = 10173, y = 10560, z = 13}}, -- O primeiro campo indica o nome do boss que deve ser morto para que o portal seja criado, onde está "teleportPos" é a localização onde o teleporte irá aparecer, onde está "toPos" é a localização para onde o teleport irá levar os jogadores. Não tem mistério, é bem simples. Basta saber as posições. -- Agora vá em creaturescripts/scripts/login.lua, adicione a seguinte tag: registerCreatureEvent(cid, "Inquisition") Agora você terá que ir em cada boss da Inquisition e inserir esta tag em baixo de "Flags": <script> <event name="Inquisition"/> </script> Certifique-se de que nenhum outro script que você já utiliza não irá causar conflito com este, eu utilizo no meu servidor e funciona 100%, uso TFS 0.3.6, faça o teste e veja se funciona, posso ter esquecido algo, então se der erro poste aqui, espero que dê certo
  25. 1 ponto
    joadson

    [duvida] como aumenta velocidade

    Irei fazer o script, Jájá edito postando. Edit Fiz um simples, porém por talkaction. vá em data/talkaction/script e crie um arquivo chamado speed.lua e coloque isso dentro function onSay(cid, words, param) if getPlayerAccess(cid) >= 3 then -- 3 é o acesso que pode ou não usar o comando doChangeSpeed(cid, 300000) -- Mude aqui a velocidade doPlayerSendTextMessage(cid,21, "Você aumentou sua velocidade com sucesso!!") -- Mensagem que irá aparecer ao usar o comando. else doPlayerSendCancel(cid, "apenas Staff pode usar esse comando") end return true end e depois abra o talkaction.xml e coloque isso <talkaction words="!speed" event="script" value="speed.lua"/>
Líderes está configurado para São Paulo/GMT-02:00

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 partindo do zero.

Redes Sociais

Anuncie no Tibia King

Precisa de mais visibilidade em seus projetos? Quer publicidade 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! A publicação do seu anuncio é instantânea!

×