Ir para conteúdo
  • Pesquisar por Tags

    Digite tags separadas por vírgulas
  • Pesquisar por Autor

Tipo de Conteúdo

Fóruns

  • Portal Tibiaking
    • Portal
    • Server Oficial TibiaKing
    • Sobre o Fórum
    • Projetos Open Source
    • Regras
  • OTServer Tibia & Derivados
    • Suporte & Pedidos
    • OTServer Downloads
    • OTServer Scripts
    • Ferramentas OpenTibia
    • Linguagens de Programação
    • Mapas
    • Websites
    • Show Off
    • Gráficos e Design
    • Divulgações
  • Tibia e Bots
    • Tibia
    • Bots & Macro
  • Diversos
    • Playground (Off-topic)

Calendários

  • Calendário Oficial
  • Calendário de OTServs
  • Calendários Diversos

Categorias

  • Oficial TibiaKing
    • Premium Forgottenserver
  • Conteúdo da Comunidade
    • Sprites

Categorias

  • Articles

Blogs

Não há resultados

Product Groups

  • Advertisement

Encontrar resultados em...

Encontrar resultados que contenham...

Data de Criação

  • Início

    FIM

Data de Atualização

  • Início

    FIM


Filtrar pelo número de...

Encontrado 40 registros

  1. Olá rapaziada! Esse é um script bem simples, que consiste em você se healar sempre que bater em um outro player, você pode configurar o script para as vocações que você quiser e quantos % do dano que ele deu ele vai conseguir se curar. \data\creaturescripts\scripts\lifesteal.lua local config = { weapons = { -- [ID] = LIFE STEAL %, [8602] = 10, }, -- Vocations number -- 1, 5 = Druid, Elder Druid -- 2, 6 = Sorcerer, Master Sorcerer -- 3, 7 = Paladin, Royal Paladin -- 4, 8 = Knight, Elite Knight -- others vocations = {4, 8}, } function onLogin(cid) registerCreatureEvent(cid, "LifeSteal") return true end function onStatsChange(cid, attacker, type, combat, value) if not isPlayer(attacker) then return true end if not isInArray(config.vocations, getPlayerVocation(attacker)) then return true end for slot = 0, 9 do for id, perc in pairs(config.weapons) do if (getPlayerSlotItem(attacker, slot).id == id) then return doCreatureAddHealth(attacker, math.ceil(value / perc)) end end end return true end \data\creaturescripts\creaturescripts.xml <event type="login" name="LifeStealLogin" event="script" value="lifesteal.lua"/> <event type="statschange" name="LifeSteal" event="script" value="lifesteal.lua"/>
  2. Serei breve, já que o próprio título já diz sobre o sistema. É um creaturescript bem simples, porém pode ser útil. onattacksummon.lua (data/creaturescripts/scripts): local stime = 10 -- tempo de pk (minutos) local condition_infight = createConditionObject(CONDITION_INFIGHT) setConditionParam(condition_infight, CONDITION_PARAM_TICKS, stime * 60 * 1000) function onAttack(cid, target) if getCreatureSkullType(cid) < 3 and isPlayer(getCreatureMaster(target)) then doCreatureSetSkullType(cid, SKULL_WHITE) doAddCondition(cid, condition_infight) doPlayerSetPzLocked(cid, true) end return true end No mesmo diretório, adicione o registro ao arquivo login.lua (data/creaturescripts/scripts): registerCreatureEvent(cid, "onAttackSummon") Adicione a tag - creaturescripts.xml (data/creaturescripts): <event type="attack" name="onAttackSummon" event="script" value="onattacksummon.lua"/> Créditos: Suicide (aprendiz de xWhiteWolf).
  3. Para quem não sabe como funciona o script : Ao dar use em um item writable no caso 1949(configurável),você pode escrever o local que deseja ser teleportado e clicar em OK para ser teleportado para o local,ao ser teleportado o player deve esperar 30 segundos(configurável) para usar novamente o Teleport Scroll. (Testado em 0.3.6 [8.54] e ultima REV da TFS [9.1]) Exemplo : Para você ser teleportado para o trainers,basta escrever Trainers e clicar em OK. Clicando em OK você será teleportado para os trainers e terá que esperar 30 segundos para usar o Teleport Scroll novamente. • Adicionando o script • "data/creaturescripts/scripts/tsviiting.lua" : local t = { ["Temple"] = {pos = {x = 1000, y = 1000, z = 7}, storage = 79402, time = 30}, ["Teleports"] = {pos = {x = 2000, y = 2000, z = 7}, storage = 79402, time = 30}, ["Trainers"] = {pos = {x = 3000, y = 3000, z = 7}, storage = 79403, time = 30} } function onTextEdit(cid, item, newText) if item.itemid == 1949 then if isPlayerPzLocked(cid) then doCreatureSay(cid, "Voce esta com battle!", TALKTYPE_MONSTER) return false end if isInArray({'locations', 'places', 'place'}, newText) then local i = '' for text, x in pairs(t) do i = i .. "\n[" .. text .. "]" end doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, "Locais de teleportes: " .. i) else local p = t[newText] if not p then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, "Local invalido") return false end local st = p.storage if getCreatureStorage(cid, st) > os.time() then doCreatureSay(cid, "Voce precisa esperar " .. getCreatureStorage(cid, st) - os.time() .. ' segundo(s)' .. (getCreatureStorage(cid, st) - os.time() == 1 and "" or "s") .. " para teleportar novamente.", TALKTYPE_MONSTER) return true end local ti = p.time local pos = p.pos doTeleportThing(cid, pos, true) doSendMagicEffect(pos, CONST_ME_TELEPORT) doCreatureSetStorage(cid, st, os.time() + ti) doCreatureSay(cid, "Voce foi teleportado!", TALKTYPE_MONSTER) end end return true end "data/creaturescripts/creaturescripts.xml" : <event type="textedit" name="TSViitinG" event="script" value="tsviiting.lua"/> "data/creaturescripts/scripts/login.lua" : registerCreatureEvent(cid, "TSViitinG") Creditos : J.Dre / Sonik / Fallen / Shinmaru / ViitinG • Configurando •
  4. Olá galerinha do TK, trago hoje um script muito legal, o mesmo tem ligação com a database do servidor. Script: Este script irá mostrando no LOOK do char os FRAGS que ele tem. Exemplo: You see Absolute (Level 603). She is an elite knight. [Frags: 8] Entenderam? ao dar look no player irá aparecer os frags do mesmo. Bom vamos ao que interessa: Em data/creaturescripts/scripts crie um arquivo com o nome de fraglook.lua e dentro adicione: function getPlayerFrags(cid) local time = os.time() local times = {today = (time - 86400), week = (time - (7 * 86400))} local contents, result = {day = {}, week = {}, month = {}}, db.getResult("SELECT `pd`.`date`, `pd`.`level`, `p`.`name` FROM `player_killers` pk LEFT JOIN `killers` k ON `pk`.`kill_id` = `k`.`id` LEFT JOIN `player_deaths` pd ON `k`.`death_id` = `pd`.`id` LEFT JOIN `players` p ON `pd`.`player_id` = `p`.`id` WHERE `pk`.`player_id` = " .. getPlayerGUID(cid) .. " AND `k`.`unjustified` = 1 AND `pd`.`date` >= " .. (time - (30 * 86400)) .. " ORDER BY `pd`.`date` DESC") if(result:getID() ~= -1) then repeat local content = {date = result:getDataInt("date")} if(content.date > times.today) then table.insert(contents.day, content) elseif(content.date > times.week) then table.insert(contents.week, content) else table.insert(contents.month, content) end until not result:next() result:free() end local size = { day = table.maxn(contents.day), week = table.maxn(contents.week), month = table.maxn(contents.month) } return size.day + size.week + size.month end function onLogin(cid) registerCreatureEvent(cid, "fraglook") return true end function onLook(cid, thing, position, lookDistance) if isPlayer(thing.uid) and thing.uid ~= cid then doPlayerSetSpecialDescription(thing.uid,' [Frags: '..getPlayerFrags(thing.uid)..']') return true elseif thing.uid == cid then doPlayerSetSpecialDescription(cid,' [Frags: '..getPlayerFrags(cid)..']') local string = 'You see yourself.' if getPlayerFlagValue(cid, PLAYERFLAG_SHOWGROUPINSTEADOFVOCATION) then string = string..' You are '.. getPlayerGroupName(cid) ..'.' elseif getPlayerVocation(cid) ~= 0 then string = string..' You are '.. getPlayerVocationName(cid) ..'.' else string = string..' You have no vocation.' end string = string..getPlayerSpecialDescription(cid)..'' if getPlayerNameByGUID(getPlayerPartner(cid), false, false) ~= nil then string = string..' You are '.. (getPlayerSex(cid) == 0 and 'wife' or 'husband') ..' of '.. getPlayerNameByGUID(getPlayerPartner(cid)) ..'.' end if getPlayerGuildId(cid) > 0 then string = string..' You are ' .. (getPlayerGuildRank(cid) == '' and 'a member' or getPlayerGuildRank(cid)) ..' of the '.. getPlayerGuildName(cid) string = getPlayerGuildNick(cid) ~= '' and string..' ('.. getPlayerGuildNick(cid) ..').' or string..'.' end if getPlayerFlagValue(cid, PLAYERCUSTOMFLAG_CANSEECREATUREDETAILS) then string = string..'\nHealth: ['.. getCreatureHealth(cid) ..' / '.. getCreatureMaxHealth(cid) ..'], Mana: ['.. getCreatureMana(cid) ..' / '.. getCreatureMaxMana(cid) ..'].' string = string..'\nIP: '.. doConvertIntegerToIp(getPlayerIp(cid)) ..'.' end if getPlayerFlagValue(cid, PLAYERCUSTOMFLAG_CANSEEPOSITION) then string = string..'\nPosition: [X:'.. position.x..'] [Y:'.. position.y..'] [Z:'.. position.z..'].' end doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, string) return false end return true end Em data/creaturescripts/creaturescripts.xml adicione a seguinte linha: <!-- Frags Look By Absolute --> <event type="look" name="fraglook" event="script" value="fraglook.lua"/> PS: Evitando perguntas, este script NÃO é necessário adicionar no login.lua É isso ai galera, vamos colocar e testar, vale a pena! Qualquer dúvida não deixe de perguntar! Créditos: Absolute Theax Nós vemos no próximo sisteminha =p Absolute.
  5. [CreatureScript] Level Speed ao Atingir Determinado Level Basicamente, esse script se resume a aplicar determinada velocidade ao player quando ele atingir determinado level. Vamos dar início a instalação do script em seu servidor. Primeiramente, vá até a pasta data/creaturescripts/scripts, crie um arquivo nomeado como levelspeed.lua e adicione o seguinte script a ele: local info = { [10] = {speed = 238}, [50] = {speed = 318}, [100] = {speed = 418}, [150] = {speed = 518}, [200] = {speed = 618}, [250] = {speed = 718}, [300] = {speed = 818}, [350] = {speed = 918}, [400] = {speed = 1018}, [450] = {speed = 1118}, [500] = {speed = 1218}, [550] = {speed = 1318}, [600] = {speed = 1418}, [650] = {speed = 1518}, [700] = {speed = 1618}, [750] = {speed = 1718}, [800] = {speed = 1818}, [999] = {speed = 2218} } function onAdvance(cid, skill, oldLevel, newLevel) for level, x in pairs(info) do if skill == 8 and newLevel >= level then doChangeSpeed(cid, -getCreatureSpeed(cid)) doChangeSpeed(cid, info.speed) end end return 1 end Na mesma pasta (data/creaturescripts/scripts) abra o arquivo login.lua e adicione a seguinte linha ao script: registerCreatureEvent(cid, "LevelSpeed") local info = { [10] = {speed = 238}, [50] = {speed = 318}, [100] = {speed = 418}, [150] = {speed = 518}, [200] = {speed = 618}, [250] = {speed = 718}, [300] = {speed = 818}, [350] = {speed = 918}, [400] = {speed = 1018}, [450] = {speed = 1118}, [500] = {speed = 1218}, [550] = {speed = 1318}, [600] = {speed = 1418}, [650] = {speed = 1518}, [700] = {speed = 1618}, [750] = {speed = 1718}, [800] = {speed = 1818}, [999] = {speed = 2218} } Acima, onde está, por exemplo: [150] = {speed = 518}, quando o player atingir o level 150, sua velocidade será 518 (velocidade de um level 150 no Tibia Global, sem itens ou spell ativada). Agora, na mesma pasta (data/creaturescripts), abra o arquivo creaturescripts.xml como bloco de notas e adicione a seguinte tag: <event type="advance" name="LevelSpeed" event="script" value="levelspeed.lua"/> Mudei a função do script quando reformulei o tópico. Acesse essa página para fazer diversos cálculos (como o de Experiência, de Skill, de Velocidade, de Informações do Level e/ou Level mínimo para Exp Party) com mais facilidade, clicando aqui (não tiver nenhuma intenção em divulgar o site onde essa calculadora está hospeada, apenas informar aos membros que há um recurso neste link). Se for postar em outro lugar, ao menos coloque os créditos (meus). Façam bom proveito.
  6. Então galera, eu fiz um topico antes pra eu aprender, como ninguem respondeu Então eu ajuntei alguns Tutoriais e consegui fazer E vou disponibilizar para vocês Então GO! Vão ter que editar 3 coisas! [~] Editando Creature Scripts ■ 1 - Vá na pasta "datas"; ■ 2 - Vá na pasta "creaturescripts"; ■ 3 - Vá na pasta "scripts"; Pronto aki nesta pasta, Vocês vão fazer um arquivo chamado "tel.lua" (sem aspas) Abra-o e cole este código e edite conforme você quizer, Vou explicar as partes que você tem que editar. [~] Legenda ! Vermelho = É o nome do monstro que quando morrer abrir o teleporte. Configurar: Você coloca o nome do monstro CORRETAMENTE, e não pode tirar as ASPAS. Azul = Quando o monstro morrer, o Teleporte vai abrir neste lugar. Configurar: Você não pode pegar as coordenadas no MAPA, você tem que ir e editar apenas os NUMEROS! Rosa = É quando você entrar no teleporte, ele vai cair neste lugar. Configurar: Mesma coisa com o de cima, APENAS OS NUMEROS! Laranja = É a mensagem que aparece quando o monstro morre. Configurar: Recomendo não configurar! [~] Editando CreatureScripts.xml ■ 1 - Vá na pasta "datas"; ■ 2 - Vá na pasta "creaturescripts"; ■ 3 - Abra o arquivo "creaturescripts.xml"; Bom aki é ma mesma coisa vou dar o código explicando tudo certinho, mas é facil de entender esse! [~] Legenda Vermelho = É o nome do arquivo que você criou sem o .lua Configurar : Você apenas pega o nome do arquivo que você fez, e coloca sem o .lua no final Laranja = É o nome do arquivo com o .lua Configurar : Você apenas pega o nome do arquivo que você fez, e coloca com o .lua no final [~] Editando o XML do monstro ■ 1 - Vá na pasta "datas"; ■ 2 - Vá na pasta "monster"; ■ 3 - Vá na pasta "pokes"; ■ 4 - Nesta pasta você pesquiza o nome do seu poke, que você colocou la no 1 codigo, No meu caso é o "Palkia MVP" ■ 5 - Vai aparecer um documento com o nome do poke.xml, no meu caso é"Palkia MVP.xml"; Caso não apareca, você esta digitando errado! Vá até o final do arquivo, e vai ter um </monster> Você tem que colocar o código encima dele, assim ó, Vamos fingir que é assim o palkia mvp.xml blablabla blablabla bla bla bla bla bla bla </monster> Você vai ter que fazer isso: blablabla blablabla bla bla bla bla bla bla COLA O CÓDIGO AKI! </monster> Deu pra entender? entao go! [~] Legenda Cyano = É o nome do arquivo sem o .lua, igualmente que você fez lá no creaturescripts.xml Configurar : Você faz igualmente creaturescripts.xml, você pega o nome do arquivo que criou pra colocar o 1 codigo, e coloca sem o .lua! O Nome que criei foi TEL.LUA entao voce coloca apenas o TEL, Facil né? e adivinha Ja acabou mano, ja ta pronto!, Reinicia o servidor ou apenas liga (caso não esteja ligado) E seja feliz! [~] Créditos Não sei o nome do cara que fez o script = Por criar script Eu = por postar :v [~] Finalização Poste aki se você conseguiu ou não, para mim poder lhe ajudar Factur ~~ [~] Tópicos Seguintes: Pokémon Zot editado por : Factur [Action] Como criar uma quest
  7. [CreatureScript] Vip Effects Esse script faz com que quando os players que possuem determinada storage (VIP) logarem, automaticamente, sairá um efeito e um texto com cores aleatórias debaixo do player. Então, vamos dar início a instalação. Vá até a pasta data/creaturescripts/scripts, crie um arquivo nomeado como vipeffects.lua e adicione o seguinte script a ele: local time = 5 local random = math.random(1, 255) local info = { [1] = {effect = 29, storage = 9911, message = "VIP"}, [2] = {effect = 30, storage = 9922, message = "DONATE"} } function effect(cid) if (isPlayer(cid)) then for i = 1, #info do if getPlayerStorageValue(cid, info[i].storage) >= 1 then doSendMagicEffect(getCreaturePosition(cid), info[i].effect) end end addEvent(effect, time * 1000, cid) end end function onLogin(cid) for i = 1, #info do if getPlayerStorageValue(cid, info[i].storage) >= 1 then doSendMagicEffect(getCreaturePosition(cid), info[i].effect) doCreatureSay(cid, info[i].message, random) end end return 1 end Na mesma pasta (data/creaturescripts/scripts) abra o arquivo login.lua e adicione a seguinte linha ao script: registerCreatureEvent(cid, "vipeffects") Agora, vá até o diretório anterior (data/creaturescripts), abra o arquivo creaturescripts.xml como bloco de notas e adicione a seguinte tag: <event type="login" name="vipeffects" event="script" value="vipeffects.lua"/>"/> local time = 5 local random = math.random(1, 255) local info = { [1] = {effect = 29, storage = 9911, message = "VIP"}, [2] = {effect = 30, storage = 9922, message = "DONATE"} } Detalhes em destaque (para configurar/alterar o script): 5 - o tempo (em segundos) que leva para o efeito ficar surgindo debaixo do player; 1, 255 - os números dos efeitos dos textos que irão sair debaixo do player (aleatoriamente de 1 à 255); 29 - número do efeito correspondente à storage1 (à VIP); 30 - número do efeito correspondente à storage2 (à VIP "DONATE"/DONATOR/DONOR, etc..); 9911 - número da storage da VIP; 9922 - número da storage da VIP "DONATE"; "VIP" - mensagem de texto que irá surgir debaixo do personagem (da VIP com a storage [1]); "DONATE" - mensagem de texto que irá surgir debaixo do personagem (da VIP "DONATE" com a storage [2]). PS: colori [1] e [2] para representar que [1] é a linha de configuração da VIP e [2], a linha de configuração da VIP "DONATE". Caso você só tenha uma VIP no seu servidor, então use o seguinte script (no mesmo arquivo vipeffects.lua): local time = 5 local random = math.random(1, 255) local info = { {effect = 29, storage = 9911, message = "VIP"} } function effect(cid) if (isPlayer(cid)) then if getPlayerStorageValue(cid, info.storage) >= 1 then doSendMagicEffect(getCreaturePosition(cid), info.effect) end addEvent(effect, time * 1000, cid) end end function onLogin(cid) if getPlayerStorageValue(cid, info.storage) >= 1 then doSendMagicEffect(getCreaturePosition(cid), info.effect) doCreatureSay(cid, info.message, random) end return 1 end Créditos pela ajuda com partes do script: xWhiteWolf Se for postar em outro lugar, por favor ao menos coloque os créditos (meus e do xWhiteWolf).
  8. Fala Galerinha nessa madrugada eu modifiquei meu script e resolvi posta-lo para ajudar os OT-Admin iniciantes e ter algo diferente no server. O Sistem Funciona assim, sabe quando vem um noob e fala " ADM Ponhe Double XP!!", com esse sistema vc resolve esse problema, ele se resumi quanto mais Players Online + XP é Adc para quem estiver online, simples, simples, sem mais delongas. Em /data/creaturescripts/ Adicione a seguinte tag: <event type="login" name="MultipleExp" event="script" value="MultipleExpLogin.lua"/> Em /data/creaturescripts/scripts/ Crie um arquivo.lua chamado MultipleExpLogin.lua e adicione : local config = getBooleanFromString(getConfigInfo('experienceStages')) function onLogin(cid) registerCreatureEvent(cid, "MultipleExp") if(config) then exp = getExperienceStage(getPlayerLevel(cid), getVocationInfo(getPlayerVocation(cid)).experienceMultiplier) end local players = getPlayersOnline() if(#players >= 1 and #players <= 49) then for _, pid in ipairs(players) do if isPremium(pid) then doPlayerSetRate(pid, SKILL__LEVEL, 1.5) else doPlayerSetRate(pid, SKILL__LEVEL, 1.0) end end if isPremium(cid) then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "--[MultipleExp System]--\nPlayers Online : "..#players.."\nSeu Exp Foi Atualizado Para : ("..exp.."x + 0.5x)") else doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "--[MultipleExp System]--\nPlayers Online : "..#players.."\nSeu Exp Foi Atualizado Para : ("..exp.."x)") end elseif(#players >= 50 and #players <= 99) then for _, pid in ipairs(players) do if isPremium(pid) then doPlayerSetRate(pid, SKILL__LEVEL, 1.6) else doPlayerSetRate(pid, SKILL__LEVEL, 1.1) end end if isPremium(cid) then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "--[MultipleExp System]--\nPlayers Online : "..#players.."\nSeu Exp Foi Atualizado Para : ("..exp.."x + 0.5x + 0.1x)") else doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "--[MultipleExp System]--\nPlayers Online : "..#players.."\nSeu Exp Foi Atualizado Para : ("..exp.."x + 0.1x)") end elseif(#players >= 100 and #players <= 149) then for _, pid in ipairs(players) do if isPremium(pid) then doPlayerSetRate(pid, SKILL__LEVEL, 1.7) else doPlayerSetRate(pid, SKILL__LEVEL, 1.2) end end if isPremium(cid) then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "--[MultipleExp System]--\nPlayers Online : "..#players.."\nSeu Exp Foi Atualizado Para : ("..exp.."x + 0.5x + 0.2x)") else doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "--[MultipleExp System]--\nPlayers Online : "..#players.."\nSeu Exp Foi Atualizado Para : ("..exp.."x + 0.2x)") end elseif(#players >= 150 and #players <= 199) then for _, pid in ipairs(players) do if isPremium(pid) then doPlayerSetRate(pid, SKILL__LEVEL, 1.8) else doPlayerSetRate(pid, SKILL__LEVEL, 1.3) end end if isPremium(cid) then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "--[MultipleExp System]--\nPlayers Online : "..#players.."\nSeu Exp Foi Atualizado Para : ("..exp.."x + 0.5x + 0.3x)") else doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "--[MultipleExp System]--\nPlayers Online : "..#players.."\nSeu Exp Foi Atualizado Para : ("..exp.."x + 0.3x)") end elseif(#players >= 200 and #players <= 249) then for _, pid in ipairs(players) do if isPremium(pid) then doPlayerSetRate(pid, SKILL__LEVEL, 1.9) else doPlayerSetRate(pid, SKILL__LEVEL, 1.4) end end if isPremium(cid) then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "--[MultipleExp System]--\nPlayers Online : "..#players.."\nSeu Exp Foi Atualizado Para : ("..exp.."x + 0.5x + 0.4x)") else doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "--[MultipleExp System]--\nPlayers Online : "..#players.."\nSeu Exp Foi Atualizado Para : ("..exp.."x + 0.4x)") end elseif(#players >= 250) then for _, pid in ipairs(players) do if isPremium(pid) then doPlayerSetRate(pid, SKILL__LEVEL, 2.0) else doPlayerSetRate(pid, SKILL__LEVEL, 1.5) end end if isPremium(cid) then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "--[MultipleExp System]--\nPlayers Online : "..#players.."\nSeu Exp Foi Atualizado Para : ("..exp.."x + 0.5x + 0.5x)") else doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "--[MultipleExp System]--\nPlayers Online : "..#players.."\nSeu Exp Foi Atualizado Para : ("..exp.."x + 0.5x)") end end return true end Creditos? Emerson Henrique E quero ver algum filho de uma pessoa vim falar que eu copie esse script -.-"
  9. Olá Galera, vim trazer para vocês o Frag Look - Kills And Dead... ele irá mostrar quantos você matou, e quantos você morreu. Vou Trazer em duas versões... a que mostra só o Kill e Dead, e outra que mostra quantos dias premium também existe na sua conta... Vamos lá.. Frag Look - Kills And Dead (Normal) : Vá em creaturescripts/creaturescripts.xml : e adicione essa linha: Após isso, crie um arquivo chamado KillsandDeath.lua e adiciona isso Depois vá em login.lua e adicione isso : Pronto Adicionado o Script de Kills And Death... 2º: para mostrar os premiums day(Lembre-se que só funciona em servidor que usa o premium como vip.) também coloque esse script : é isso galera. eu não se quem de quem são os creditos, peguei de um servidor antigo que eu tinha aqui. Então valeu. Gostou ? REP+
  10. Double EX com dia e horário automático ?
  11. Falaaaaa Galera do Tk Beleza? Venho Trazer a Vocês Uma Descoberta Minha, Muitos Passam a Raiva de temtar concertar o tal erro do gate of expertise, que o Player Vae e Volta na Porta, sem Consseguir entrar, Então vou Ensinar a Vocês Como Concertar esse Erro Pequeno e Que Ajuda-rar a Muitos. 1° Vamos em data/movements/walkback 2° abra o walkback.lua 3° adicione isto no finalzinho depois de ' end ' function onStepIn(cid, item, position, lastPosition, fromPosition, toPosition, actor) if(not isPlayer(cid)) then return true end if(isContainer(item.uid)) then if(not isInArray(SPECIAL_QUESTS, item.actionid) and item.uid > 65535) then return true end elseif(getTileInfo(position).creatures <= 1) then return true end if(fromPosition.x == 0) then -- player just logged in fromPosition = getTownTemplePosition(getPlayerTown(cid)) doSendMagicEffect(fromPosition, CONST_ME_TELEPORT) end doTeleportThing(cid, fromPosition, true) return true end e Depois Salve e Feche,Testem e me Digam se Gostaram!! Créditos: Valakinhas : Pelo Scripter Eu: Pelo o Post
  12. Pessoal, vi alguns scripts aqui e na OTLand de Skills Stages e detectei uma falha grave que derruba o servidor. É difícil de um jogador nukar sem saber do bug mas pode ocorrer. Por este motivo criei esse post e estou postando os scripts otimizados para prevenir uso excessivo de CPU e RAM. creaturescripts.xml <!-- Skill Rates --> <event type="login" name="RatesMagicLogin" event="script" value="Custom/SkillStages/RatesMagicLogin.lua"/> <event type="advance" name="RatesMagicAdvance" event="script" value="Custom/SkillStages/RatesMagicAdvance.lua"/> RatesMagic.lua function onLogin(cid) -- Magic Level Rates if (isInArray({1, 2, 5, 6}, getPlayerVocation(cid)) == TRUE) then if (getPlayerMagLevel(cid, true) >= 100) then return doPlayerSetRate(cid, SKILL__MAGLEVEL, 4.0) elseif (getPlayerMagLevel(cid, true) >= 90) then return doPlayerSetRate(cid, SKILL__MAGLEVEL, 5.0) elseif (getPlayerMagLevel(cid, true) >= 80) then return doPlayerSetRate(cid, SKILL__MAGLEVEL, 6.0) elseif (getPlayerMagLevel(cid, true) >= 50) then return doPlayerSetRate(cid, SKILL__MAGLEVEL, 7.0) elseif (getPlayerMagLevel(cid, true) >= 30) then return doPlayerSetRate(cid, SKILL__MAGLEVEL, 8.0) elseif (getPlayerMagLevel(cid, true) < 30) then return doPlayerSetRate(cid, SKILL__MAGLEVEL, 12.0) end return true elseif (isInArray({7, 8}, getPlayerVocation(cid)) == TRUE) then return doPlayerSetRate(cid, SKILL__MAGLEVEL, 7.0) end return true end RatesMagicAdvance.lua function onAdvance(cid, skill, oldLevel, newLevel) if skill == SKILL__MAGLEVEL then if (isInArray({1, 2, 5, 6}, getPlayerVocation(cid)) == TRUE) then if (newLevel >= 100) then return doPlayerSetRate(cid, SKILL__MAGLEVEL, 4.0) elseif (newLevel >= 90) then return doPlayerSetRate(cid, SKILL__MAGLEVEL, 5.0) elseif (newLevel >= 80) then return doPlayerSetRate(cid, SKILL__MAGLEVEL, 6.0) elseif (newLevel >= 50) then return doPlayerSetRate(cid, SKILL__MAGLEVEL, 7.0) elseif (newLevel >= 30) then return doPlayerSetRate(cid, SKILL__MAGLEVEL, 8.0) end return true end return true end return true end Logo mais eu edito aqui e insiro os de Skills.
  13. Bem, venho trazer para vocês hoje um sistema de train funcionando 100% em TFS 1.0. Direto ao assunto postei um video para verem o funcionamento http://youtu.be/Lrw1lhTxp8E Instalação Primeiramente pessoal, deverão abrir a pasta data/movements/scripts/ . Copie qualquer arquivo renomeando-o como 'train.lua' sem as aspas. Abra esse arquivo e cole o seguinte codigo. Feito isso pessoal, vão em data/movements/movements.xml e cole isso logo apos o primeiro <movements> do arquivo Gostaria de convida-los para visitar o topico onde estou desenvolvendo meu projeto. O Pronoba Acesse o PRONOBA Obrigado Creditos pelo script LEOLEO
  14. Olá Galera do TibiaKing Vim trazer um script de invasão em tal hora e em tal lugar faz tempo que colocaram ai resolvi postar e muito simples 1° Crie um arquivo .lua em data/globalevents/script e crie o arquivo chamado de invasion.lua e adicione isso: 2° Vá em data/globalevents e abra o globalevents.XML e adicione isso Antes de </globalevents> Azul: Nome do evento Laranja: Posição onde o monstro vai nascer Vermelho: Quantidade e Nome do monstro Créditos: Ootsutsuki & Kamex10 Obs: Acho que o Kamex10 não frequenta mais o Tibiaking
  15. Vá em seu sever - data - global events - scripts e adcione textochao.lua dps de ter adicionado volte a pasta global events e adcione a isto na globalevents.xml
  16. Opa galera blz? creio que 70%, sofre com a ml subindo de mais , eu estava com o Mesmo problema so que consegui a solução, eu Utilizei pro NTO Shinobi, do RobinHOOD e Funfou perfeitamente, vamos ao que inteça Vá em /data/creaturescripts/script, crie um arquivo chamado MaxMl.lua é la adicione: function onLogin(cid) if getPlayerMagLevel(cid) >= 150 then doPlayerSetRate(cid, 7, 0) end return true end function onAdvance(cid, skill, oldlevel, newlevel) if getPlayerMagLevel(cid) >= 150 then doPlayerSetRate(cid, 7, 0) end return true end Agora vá em data/creaturecripts/creaturescripts.xml é la adicione a seguinte tag: <event type="login" name="MaxMl" event="script" value="MaxMl.lua"/> <event type="advance" name="MaxMll" event="script" value="MaxMl.lua"/> Agora vá em data/creaturescripts/scripts/login.lua é abaixo de registerCreatureEvent(cid, "Mail") Adicione; registerCreatureEvent(cid, "MaxMl") registerCreatureEvent(cid, "MaxMll") Creditos: Emersonssss - 70% - por fazer a script. xWhiteWolf - 29% - por editar e arrumar a script. ScreMMo(Eu) 1% - por postar Caso queira Almentar o limit tipo, por 180 esso editar essa linha em, /data/creaturescripts/script MaxMl.lua function onLogin(cid) doPlayerSetRate(cid, 7, 0) end return true end function onAdvance(cid, skill, oldlevel, newlevel) if getPlayerMagLevel(cid) >= 150 then doPlayerSetRate(cid, 7, 0) end return true end Nessas Duas Partes if getPlayerMagLevel(cid) >= 150 then Aonde esta 150, coloque o quanto quizer, exemplo 180, ai vc altera nos 2, que estão 150. GOSTOU? REP+
  17. [OELF] Perfect Owner System v0.1 Salve galera do TibiaKing, hoje eu vim aqui pra postar o sistema do owner system. Como funciona: O jogador compra o seu Item no site, e só ele poderá equipar aquele item, caso não seja dele o Item, o sistema avisa de quem é o item. Meta pra versão 0.2 OBS: Não fiz ainda, porque estou sem tempo. Quando o item não for do jogador, ele irá enviar o item para o DP do dono. Instalação. Quem tem o sistema de entrega do online shop, vai ter um arquivo no globalevent, chamado "shop.lua" Altere o seu por este. [sHOP.LUA] -> Link PasteBin Direto Agora, vá em Movements / Scripts, crie um arquivo chamado "POwnerSys.lua", e dentro adicione [POwnerSys.LUA] -> Link PasteBin Direto Depois vá em movements.xml, e adicione a seguinte tag. <movevent type="Equip" itemid="2195" slot="feet" event="script" value="POwnerSys.lua"/> Adicionando mais items restritos no script: Nesta parte -> itemid="2195" Adicione o próximo item, separado por ";" -> itemid="2195;2199;2155" Caso mude de Slot, é necessário outra TAG, alterando esta parte -> slot="feet" Pelo novo slot, como este -> slot="body" Espero que gostem.
  18. [CreatureScript] Armors Attack v0.1 Testado no servidor Sourcers: 0.3.6pl1 Versão 8.54 Salve galera do TibiaKing, hoje eu venho apresentar pra vocês o sistema "Armors Attack", na versão 0.1. Como funciona: Bom, se o player estiver usando um set completo (capacete, peitoral, calça e bota), como por exemplo o magma set, toda vez que ele toma um HIT, a armadura dele pode atacar todo mundo que estiver dentro de uma área (configurável), bom no script eu coloquei uma área de 2 x 2. Você pode criar várias combinações de armaduras, como por exemplo (DH, MPA, G-LEGS E BOH). Eu dentro do script, configurei o "Glacier SET e o Magma SET". Instalando No diretório "Data/CreatureScript/Scripts" crie um arquivo chamado "ArmorsAttack.lua" e dentro adicione o código abaixo TAG: <event type="statschange" name="ArmorsAttack" event="script" value="ArmorsAttack.lua"/> Agora no "Login.lua" antes do ultimo "return true", adicione registerCreatureEvent(cid, "ArmorsAttack") Configuração: local sets = { [1] = {items = {7900, 7899, 7894, 7891}, distaceEffect = CONST_ANI_FIRE, effect = CONST_ME_FIREATTACK, combat = COMBAT_FIREDAMAGE, chance = 20, min_max = {100, 300}}, -- Magma set [2] = {items = {7902, 7897, 7896, 7892}, distaceEffect = CONST_ANI_ICE, effect = CONST_ME_ICEATTACK, combat = COMBAT_ICEDAMAGE, chance = 20, min_max = {100, 300}}, -- Glacier set } Legenda: [2] -> ID do SET, que seria sucessivo ao anterior. (Exemplo: caso o anterior for 2, o próximo ID será 3) items -> São os ITEMS IDs do SET. distanceEffect -> efeito de distancia, que irá partir do Player as criaturas dentro da área. effect -> efeito que irá sair das criaturas, quando o distance effect chegar nelas combat -> tipo de hit chance -> chance da armadura soltar a magia min_max -> hit minimo, e hit máximo da magia da armadura. local configs = { radius = {2, 2}, -- 2 X 2 validSlots = {1, 4, 7, 8}, -- Head, Body, Legs, Feet msg = "Armors Attack!", } Legenda: radius -> área que a armadura irá conseguir atacar validSlots -> slots, que a armadura deve ser equipada. msg -> toda vez que a armadura atacar, enviará uma mensagem. Foto de demonstração do sistema.
  19. Para quem não sabe como funciona o script, quando o player logar no character ele vai receber uma mensagem no chat Default citando quais são as bless que ele está usando e as que não estão sendo utilizadas. • Adicionando o script • Em "data/creaturescripts/scripts/CheckBless.lua" adicione está tag : function onLogin(cid) if(getPlayerBlessing(cid, 1)) then first = "sim" else first = "nao" end if(getPlayerBlessing(cid, 2)) then second = "sim" else second = "nao" end if(getPlayerBlessing(cid, 3)) then third = "sim" else third = "nao" end if(getPlayerBlessing(cid, 4)) then fourth = "sim" else fourth = "nao" end if(getPlayerBlessing(cid, 5)) then fifth = "sim" else fifth = "nao" end doPlayerSendTextMessage(cid,20,'Suas blessings: 1='.. first ..' 2='.. second ..' 3='.. third ..' 4='.. fourth ..' 5='.. fifth ..'') return true end Em "data/creaturescripts/creaturescripts.xml" adicione está tag : <event type="login" name="BlessCheck" event="script" value="CheckBless.lua"/> Em "data/creaturescripts/scripts/login.lua" adicione está linha no fim do script : registerCreatureEvent(cid, "BlessCheck") Creditos : Shadow Dan - ViitinG
  20. Olá galera do TK, a uns dias atrás um cliente me pediu um sistema simples pro TFS 1.0 onde o player ganharia uma montaria ao conquistar level 250, então desenvolvi o script e trago aqui pra você ensinando a instalar/configurar. É um script simples, fiz rapidamente, porém útil. Vamos aos passos: Em data/creaturescripts/scripts crie um arquivo com o nome de gainmountabsolute.lua com o seguinte conteúdo: function onAdvance(cid, skill, oldlevel, newlevel) if getPlayerLevel(cid) >= 250 and getPlayerStorageValue(cid, 13139) ~= 1 then doPlayerAddMount(cid, 19) setPlayerStorageValue(cid, 13139, 1) doPlayerSendTextMessage(cid, 19, "You have received a Mount by Absolute.") end return TRUE end Em data/creaturescripts/creaturescripts.xml adicione a seguinte linha: <event type="advance" name="AbsoluteGainMount" script="gainmountabsolute.lua"/> Feito, não é necessário registrar no login.lua pois é uma função onAdvance. Configurando: (Únicas linhas que você deve mexer): if getPlayerLevel(cid) >= 250 ----( EM 250 é o level que o player ganhará a montaria) doPlayerAddMount(cid, 19) ---- (AQUI ESTAMOS SETANDO A CRIATURA em cid e o NÚMERO 19 é a montariaID que o player vai receber, ou seja veja no seu mounts.xml o id da montaria, e adicione o número da montaria que o player irá ganhar ao conquistar o level). Não mexa no resto! Espero ter ajudado. Demais dúvidas poste aqui no tópico. Até a próxima! Absolute.
  21. Bom dia, estou com um problema no meu warsystem, ele ta funcionando normal aparentemente, mas no log fica aparecendo isso : [Error - GlobalEvents::think] Failed to execute event: warSystem a tag ta assim: <globalevent name="warSystem" interval="3000000" script="others/warEnd.lua"/> e o script é esse: alguem me ajude por favor function onThink(interval) db.query("UPDATE `guild_wars` SET `status` = 4, `ended` = " .. os.time() .. " WHERE `status` = 1 AND (`started` + 3600 * 2) < " .. os.time()) end
  22. Anti Guild Attack. Olá linduxos do TK, o próprio nome já diz tudo, é um script que proíbe que membros da guild ataque membros da sua própria guild (Ótimos em WARS). Sem blábláblá vamos ao que interessa. Em data/creaturescripts/creaturescripts.xml adicione a seguinte linha: <event type="attack" name="attackguild" script="attackguild.lua"/> Em data/creaturescripts/scripts crie um arquivo com o nome attackguild.lua com o seguinte conteúdo: function onAttack(cid, target) if isPlayer(target) and getPlayerGuildId(cid) == getPlayerGuildId(target) then local storageId = 101 if getPlayerStorageValue(cid, storageId) == 1 then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "You choose not to attack and not to be attacked by guild members.") doCreatureSetSkullType(cid, 0) return false elseif getPlayerStorageValue(target, storageId) == 1 then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Your target choose to not to attack and not to be attacked by guild members.") doCreatureSetSkullType(cid, 0) return false end end return true end Pronto, agora players da mesma guild não podem se atacar Espero ter ajudado, demais dúvida poste aqui no tópico. Até a próxima! Absolute.
  23. • O que Faz ?• Toda Vez que Um Menbro da staff entrar aparece uma mensagem na tela Avisando e bem simples e fácil Bom Vamos lá 1• va em data\creaturescripts\scripts Crie Um arquivo chamado Admlg.lua e adicione isso dentro function onLogin(cid) if getPlayerGroupId(cid) >= 3 then doBroadcastMessage("Staff [".. getCreatureName(cid).."] Entrou no Servidor") end return true end Explicando: Vermelho = não mude nada verde = mensagem que irá aparecer 2• Va em data\creaturescripts\ Abra o arquivo creaturescripts.xml e adicione essa tag; não mude nada Pronto Agora e so Aproveitar o Script
  24. [GlobalEvents] New PlayerSave v0.1 Testado no servidor Sourcers: 0.3.6pl1 Versão 8.60 Salve galera do TibiaKing, eu tava pensando aqui uma maneira de evitar o freeze do "ServerSave", então eu resolvi fazer um script alternativo que salvaria jogador por jogador, em um intervalo não muito baixo "No script, eu pus 5 segundos". Bom, eu não sei se o script está 100%, porém qualquer erro de mal funcionamento, não deixe de comentar. TAG <globalevent name="NewSave" interval="3600" event="script" value="newSave.lua"/> Código local configs = { players_db = {}, save_delay = 5, -- Segundos } function savePlayer() if #configs.players_db > 0 then doPlayerSave(configs.players_db[1]) table.remove(configs.players_db, 1) return addEvent(savePlayer, configs.save_delay * 1000) end return true end function onThink(interval) for _, cid in ipairs(getPlayersOnline()) do table.insert(configs.players_db, cid) end savePlayer() return true end
  25. Para pessoal que usa o znote website: Adicione esta em GlobalEvents / globalevents.xml <globalevent name="Znote Shop" interval="30000" script="znoteShop.lua"/> E vamos pra GlobalEvents / scripts e criar nova lua e nomeá-la 'znoteShop' function onThink(interval, lastExecution) local players = Game.getPlayers() if #players == 0 then -- 0 players online, no need to execute the script return true end local player for i = 1, #players do player = players[i] local orderQuery = db.storeQuery('SELECT `id`, `type`, `itemid`, `count` FROM `znote_shop_orders` WHERE `account_id` = '.. player:getAccountId() ..' LIMIT 1;') if orderQuery then --Lets check if the players online have orderd something from the shop local orderId = result.getDataInt(orderQuery, 'id') local orderType = result.getDataInt(orderQuery, 'type') local orderItemId = result.getDataInt(orderQuery, 'itemid') local orderCount = result.getDataInt(orderQuery, 'count') result.free(orderQuery) if orderType == 1 then if player:addItemEx(Game.createItem(orderItemId, orderCount or 1)) ~= RETURNVALUE_NOERROR or player:getFreeCapacity() < ItemType(orderItemId):getWeight(orderCount or 1) then --Lets check if player have slot or cape left. Else send to player inbox local parcel = player:getInbox():addItem(2596, 1, false, 1) if not parcel then --If not being able to create parcel we stop the script and retry again. print('[ERROR Znote Shop Globalevents] = Error on creating a parcel.') return true end local letter = parcel:addItem(2598, 1, false, 1) letter:setAttribute(ITEM_ATTRIBUTE_TEXT, 'You have received your shop item. Thanks for donating.') parcel:addItem(orderItemId, orderCount or 1, false, 1) end db.query('DELETE FROM `znote_shop_orders` WHERE `id` = '.. orderId ..';') player:sendTextMessage(MESSAGE_INFO_DESCR, 'Congratulations! You have received '.. orderCount ..'x '.. ItemType(orderItemId):getName() ..'!') end end end return true end Desfrutar

Informação Importante

Confirmação de Termo