Líderes
-
-
-
MaXwEllDeN
HéroiPontos1185Total de itens -
Conteúdo Popular
Exibindo conteúdo com a maior reputação em 03/04/19 em todas áreas
-
sistema de addons remove por talkactions
sistema de addons remove por talkactions
Agaka e um outro reagiu a DarkRed por uma resposta no tópico
2 pontosOla pessoa hoje venho trazer para comunidade tibia king o sistema de remove addon do pokemon não esta 100% na hora que você remove addon da esse erro "OnUse" Bom vamos la. Lembrando que não fui eu o criador foi o " TheRatazana do otserver brasil" eu tentei e não deu certo então ele me ajudo espero que ajude vocês. se estiver no lugar errado peço desde já desculpa pois nunca criei um topico aqui para scripts. vai em Servidor / data / actions addon Pra que funcione legal, você precisa adicionar isso aqui na linha 30 do seu sistema doSetItemAttribute(pb, "addonItem", item.itemid) ele tem que fica assim no Actions. Vai em Servidor\data\talkactions\scripts cria um arquivo lua e mude o nome para addon agora vai em talkaction.xlm e coloca essa tag la <talkaction words="/addonsRemove" access="1" event="script" value="addons.lua"/>2 pontos -
SD Modificada
2 pontosHoje estou trazendo um script bem simples, mas que é muito divertido.. Uma modificação no script da SD, mas que você pode utilizar em alguma outra rune/spell. O que eu fiz foi modificar para a SD ter uma chance de dar "double hit", nesse caso 20%. Para fazer isso é bem simples, altere o código da sua SD para: Lembro que foi um dos primeiros que consegui fazer sozinho e que na época me trouxe muita alegria, hoje quando abri para fazer o tópico, consegui perceber o quanto evoluí. E é claro que essa já é a versão refatorada. Testado em TFS 0.42 pontos
-
(Resolvido)Ajuda Rank Reset DB
2 pontoslocal displayoutput = {"Level","Magic Level","Fist Fighting","Club Fighting","Sword Fighting","Axe Fighting","Distance Fighting","Shielding", "Resets"} local itemtype = {9969,9933,5896,8929,8932,7388,8849,8906,2580, xxxx} function onSay(cid, words, param) number = 1 param = string.lower(param) skilllist = "" command = TRUE if param == "level" then display = 1 elseif param == "magic" then display = 2 elseif param == "club" then id = 1 display = 4 elseif param == "sword" then id = 2 display = 5 elseif param == "axe" then id = 3 display = 6 elseif param == "distance" then id = 4 display = 7 elseif param == "shield" then id = 5 display = 8 elseif param == "resets" then display = 9 else error = 'Highscore Commands:\n\n!rank level\n!rank magic\n!rank fist\n!rank club\n!rank sword\n!rank axe\n!rank distance\n!rank shield\n' doShowTextDialog(cid, 5958, error) command = FALSE end if command ~= FALSE then if display == 1 then local player = db.getResult("SELECT `name`, `level` FROM `players` WHERE group_id < '2' ORDER BY `level` DESC LIMIT 50;") if(player:getID() ~= -1) then while (true) do local name = player:getDataString("name") local level = player:getDataInt("level") skilllist = skilllist.. "\n#"..string.format("%5s",number.." "..name.." - "..level) number = number + 1 if not(player:next()) then break end end player:free() end elseif display == 2 then local player = db.getResult("SELECT `name`, `maglevel` FROM `players` WHERE group_id < '2' ORDER BY `maglevel` DESC LIMIT 50;") if(player:getID() ~= -1) then while (true) do local name = player:getDataString("name") local maglevel = player:getDataInt("maglevel") skilllist = skilllist.. "\n#"..string.format("%5s",number.." "..name.." - "..maglevel) if not(player:next()) then break end number = number + 1 end end player:free() elseif display == 9 then local player = db.getResult("SELECT 'name', 'resets' FROM 'players' WHERE group_id < '2' ORDER BY 'resets' DESC LIMIT 50;") if(player:getID() ~= -1) then while (true) do local name = player:getDataString("name") local resets = player:getDataInt("resets") skilllist = skilllist.. "\n#"..string.format("%5s",number.." "..name.." - "..resets) if not(player:next()) then break end number = number + 1 end end player:free() else local skills = db.getResult("SELECT `player_id`, `value`, `skillid` FROM `player_skills` WHERE `skillid` = "..id.." ORDER BY `value` DESC;") while (true) do local GUID = skills:getDataInt("player_id") local value = skills:getDataInt("value") local skillid = skills:getDataInt("skillid") local player = db.getResult("SELECT `name` FROM `players` WHERE `id` = "..GUID.." and group_id < '2' ") if(player:getID() ~= -1) then local name = player:getDataString("name") skilllist = skilllist.. "\n#"..string.format("%5s",number.." "..name.." - "..value) number = number + 1 player:free() end if number > 50 then break end if not(skills:next()) then break end end skills:free() end dialog = ""..displayoutput[display].." Highscores: \n "..skilllist.."" doShowTextDialog(cid, itemtype[display], dialog) end end só configura o item que você quer que apareça no lugar de xxxx2 pontos
-
[8.6] Labia System
1 pontoUPDATE 05/02/2019: - Colocado exhauted na venda de items para não bugar a venda de itens com elf bot! Descrição do Arquivo *Sobre o Sistema* Labia System é um sistema que proporciona ao jogador a capacidade de aprimorar sua habilidade de venda, aumentando assim sua Labia Skill e obtendo maiores lucros em futuras vendas de itens. O Skill de Labia, pode ser upado enquanto Free ou Premmy Account em qualquer level que você queira! Basta vender itens no NPC Soya Master. Lembrando que sendo free, sua lábia pode ser upada apenas até skill 90. Já sendo premmium até a lábia 120. Se o player for premmy account, de repente ficar free... sua lábia cai para 90, e todos os itens serão vendidos com preços avaliados dentro dessa lábia! Quanto mais caro for, o item vendido, maior será a porcentagem de lábia upada. *Exclusividade* O Sistema também conta com uma configuração exclusiva, tendo a possibilidade de jogadores Premmy account possam upar mais rapído a sua Skill de Labia! Sem falar no comando inovador: !labia info -- Ensinando ao jogador como usar o sistema !labia level -- Mostrando ao jogador quanto de skill Try falta para o próximo level!! *Benefícios da Lábia* Quanto maior for sua Labia Skill, maior será o valor pago pelas NPC Soya Master em troca do seu item ! Lembrando que, este é um benefício apenas, para premiuns!, Desta maneira, jogadores premiuns com labia skill alta, conseguem maiores lucros ao vender seus itens! O valor do item varia de acordo com a Labia upada! Quanto mais skill, mais lucro na venda! A maior Labia alcançada é você que decide nas suas configurações! por exemplo no RPG Brasil a é Skill 120. *exemplo da fórmula para cálculos do valor do item de acordo com uma Lábia desejada* P = PI + PI * 0,025 * (L / 2) Onde: P ~ Preço que o item será vendido na lábia L. PI ~ Preço Inicial do item, preço do item para um lábia 0. L ~ Labia em que o item será vendido! Vale lembrar que se L for um nº ímpar, deve-se reduzir uma unidade deste número, ou seja, 13 vira 12, 27 vira 26, 91 vira 90, nesse esquema, apenas se L for ímpar! Exemplo: Preço de uma Golden Legs na lábia 95: P = PI + PI * 0,025 * (L / 2) Como L é ímpar (95), reduzimos uma unidade, 95 vira 94: P = 48000 + 48000 * 0,025 * (94 / 2) P = 48000 + 48000 * 0,025 * 47 P = 48000 + 56400 P = 104400 GP's ou 104,4 k Sistema Labia.rar1 ponto
-
(Resolvido)Ajuda Rank Reset DB
1 ponto"SELECT `name`, `resets` FROM `players` WHERE group_id < '2' ORDER BY `resets` DESC LIMIT 50;" Tenta trocar a query por isso1 ponto
-
[8.60] Hydra Mountain
1 pontoTrouxe pra vocês uma hunt insana de hydras, feita por kacperciu. Ela foi feita para um projeto de styller, no qual eu também participava na época. Mas por algum motivo o mapper desistiu e publicou a hunt, Façam bom uso! IMAGENS DOWNLOADS Link original Download alternativo: hydra.otbm Scan1 ponto
-
Como Criar Um Website [POKETIBIA] 2018
Como Criar Um Website [POKETIBIA] 2018
joao marcos domician reagiu a francisco robson por uma resposta no tópico
1 pontoOlá , hoje venho de boa vontade mostrar como criar o seu website e deixar online , a base que sera utilizada sera mythology !!!! -------------Optei por fazer um gravação-------------- Espero que esteja bem explicado ,Agradeço desde já Video Créditos -> No-ip ,Xampp Control , Base -> Pokémon Mythology1 ponto -
Medusa Sanctuary | Cave Hunt | 8.60
Cave hunt - Medusa Sanctuary. Download: Here Scan: Here Imagens:1 ponto
-
Dragons Dungeon | Cave Hunt | 8.60
Dragons Dungeon | Cave Hunt | 8.60
Rogex Joyz reagiu a DdJs por uma resposta no tópico
1 pontoCave hunt - Dragons Dungeon. Download: Here Scan: Here Imagens: OBS: O mapa pode conter pequenos erros que são imperceptíveis no map editor mas visíveis in-game.1 ponto -
como abaixar xp do poketibia
como abaixar xp do poketibia
eliaspalermo reagiu a henriquesafadao por uma resposta no tópico
1 pontoVa em Lib,configuration, é procure playerExperienceRate = é diminua o valor que estive ae . o playerExperienceRate = deminui tantu o xp do play quantu a do Pokemon Level1 ponto -
Como usar addEvent
Como usar addEvent
Gogetasaya reagiu a Killua por uma resposta no tópico
1 pontoUsando addEvent O uso do addEvent tem inúmeras utilidades e pode ser complicado para algumas pessoas, inclusive era para mim quando eu estava começando a aprender LUA. Para que serve o addEvent? Para "chamar" uma função após um periodo de tempo, ou seja, executar uma função após um tempo estipulado. O addEvent tem como parâmetros: callback, delay e ... addEvent(callback, delay, ...) Onde callback é a função que será chamada, delay é o tempo (em milissegundos) até que se chame essa função e ... são os parâmetros que a função chamada utiliza. Exemplo: addEvent(doBroadcastMessage, 1000, "Bom dia", 23) Aqui, após 1 segundo (1000 ms), a função doBroadcastMessage(message, type) será executada com os parâmetros message = "Bom dia" e type = 23. O addEvent pode ser usado de duas maneiras: Chamando uma função existente ou criando uma nova função. Para chamar uma função existente, basta usar como acima, para usá-lo para criar uma nova função, usa-se assim, por exemplo: addEvent(function() if isCreature(cid) then doPlayerAddItem(cid, 2160, 10) doPlayerSendTextMessage(cid, 25, "Voce ganhou 10k.") end end, 1000) Assim é basicamente a mesma coisa, mas pude colocar várias funções dentro de um único addEvent e mantive o delay 1000 (1 segundo). Obs: Precisei usar 2 ends, um para fechar function() e outro para fechar o if. Atenção! Além disso, existe uma outra diferença entre as duas formas de uso, vou tentar explicar da melhor maneira possível: Quando usamos o addEvent com uma função já existente (1o exemplo), as informações usadas serão as geradas no momento em que o evento foi chamado, por exemplo: function onUse(cid, item, fromPosition, itemEx, toPosition) if getPlayerLevel(cid) > 10 then doPlayerSendTextMessage(cid, 25, "Uma pedra sera criada na sua posiçao dentro de 2 segundos.") addEvent(doCreateItem, 2000, 1308, 1, getThingPos(cid)) end return true end Se usarmos assim, a pedra será criada na posição onde o jogador se encontrava no momento em que "deu use" e não onde ele estará 2 segundos depois. Se você quiser que a pedra seja criada na nova posição do jogador (pos de 2 segundos depois), você deve fazer uma nova checagem, criando uma função: function onUse(cid, item, fromPosition, itemEx, toPosition) if getPlayerLevel(cid) > 10 then doPlayerSendTextMessage(cid, 25, "Uma pedra sera criada na sua posiçao dentro de 2 segundos.") addEvent(function() if isCreature(cid) then doCreateItem(1308, 1, getThingPos(cid)) end end, 2000) end return true end Atenção novamente: A checagem if isCreature(cid) que utilizei, é muito importante para um addEvent que envolva criaturas. Se você executasse o addEvent sem a checagem e o player logasse ou morresse antes desses 2 segundos se passarem, daria um erro na distro e interromperia o resto do script. Recursão Uma outra ótima funcionalidade dos addEvents é a recursão, ou seja, criar um evento que fica se repetindo. É simplesmente um addEvent chamando a sí mesmo. Para usar, crie uma função, exemplo: function respawnMonster(name, pos) if doCreateMonster(name, pos) then doBroadcastMessage(name.." nasceu!") end addEvent(respawnMonster, 10000, name, pos) end Quando chamada, esta função ficará criando um monstro e uma determinada área a cada 10 segundos, sem nunca parar. Para chamar a função, seria assim: respawnMonster("Demon", {x = 123, y = 123, z = 5}) Considerações Reloads param os addEvents. Se um script talkaction executou um addEvent programado para acontecer depois de 5 minutos e se dentro deste intervalo de tempo, você usar /reload talkactions, o addEvent será interrompido. Erros no código podem fazer o evento ser interrompido, preste sempre atenção. Se ainda ficou com alguma dúvida, poste aqui.1 ponto -
[Aula 5] Variáveis e Comentários
[Aula 5] Variáveis e Comentários
sanjedo reagiu a MaXwEllDeN por uma resposta no tópico
1 ponto<< Aula 4 - Operadores e Bibliotecas Variaveis Aula 5 Olá, bem-vindos a nossa 5ª aula de scripting. Nesta aula iremos tratar de uma coisa indispensável em todos os scripts: Variáveis. As variáveis podem ser entendidas como uma "caixa"que armazena um valor na memória RAM, ou um substituto de um valor, uma igualdade de um valor, como se ela fosse o valor em si. Toda variável deve ter um nome definido por você, mas existem regras para definí-los: quando for escolher o nome da variável, não use números no começo e nunca use caracteres especiais, como acentos, sifrões ou asteríscos. Use apenas a-z, A-Z e pode-se usar números também, desde que não estejam no começo da variável. Existem também palavras que são reservadas e não podem ser declaradas como variáveis: (if while true nil for repeat until do break return function false in end else elseif or and). Na maioria das vezes, você deve declarar (Dar um valor) a variável, senão ela retornará nil (Vimos isto na Aula 2). Vamos ao um exemplo de como declarar uma variável. numero = 27 Repare, eu criei uma variável chamada numero, e ao mesmo tempo ela vale 27, então quando eu for usa-lá em algum lugar eu posso escrever 27 ou então escrever numero. Vamos ao um exemplo em si: numero = 27 print(numero) print(27) Veja, eu declarei a nossa variável como 27, em seguida a função print irá mostrar o valor dela no caso 27, e em baixo mostra a você o número 27. Ambos irão mostrar a mesma coisa, pois você declarou que numero é 27. As variáveis podem ser modificadas no decorrer do script como o exemplo: numero = 10 numero = numero * 3 print(numero) print(10) Nesse caso é diferente, vamos por linhas para ser mais fácil. Em sua primeira linha declaramos que a variável vale 10. Logo na segunda linha redeclaramos a variável como sendonumero igual a numero (seu valor atual) vezes 3. No caso ela vai passar a valer 30, pois 10 * 3 = 30. Na terceira linha o script ira mostrar a você o valor da variável, que nesse caso é 30. Na quarta linha ele irá mostrar 10, sim 10 não é 30, mas nós não declaramos ela como 10? Sim, mas acontece que na segunda linha modificamos seu valor. Apenas para ressaltar vamos falar mais uma vez brevemente o que vimos na aula 2. Os tipos de variáveis. Nossas variáveis podem ser de vários tipos. Como vimos acima se chama number (Número), mas temos tambem: (Curiosidade: Funções são armazenadas em variáveis!) Bem, em OTServ, quando se declara uma variável, como por exemplo o nome numero em um script x ela acaba sendo chamada de variável global, isso quer dizer que apos executar uma vez o script x, quando se executar o script y e chamar a variável sem ser declarada ela será usada com o valor que foi declarado no script x. Normalmente isso atrapalha muito e ainda consome memória do seu PC, pois a variável fica guardada ocupando memória a toa. Existe um modo de evitar isso, esse modo é declarar a variável como local, que no caso quando o script terminar de executar a variável, ela vai ser deletada e não ficará consumindo memória do seu PC. E isso se faz assim: local texto = "Ola pessoas." --- ou assim local algo Veja que quando declarada local na 3ª linha eu não coloquei = valor, isso se dá porque você declarou ela como local, mas não declarou valor. So se pode fazer isso quando ela é declarada local, depois você pode colocar o valor que quiser, ela apenas está como local mais ainda é nil. Não se preocupem ainda com variáveis locais e globais. Veremos mais afundo na próxima aula. criar um comentário basta iniciá-lo com --. A cada linha do comentário você deve adicionar mais dois - (menos) assim: -- Ola gente, eu estou comentando!!!!!! -- que coisa o0 -- uhahuahuahuauhauhahu -- oi? ------- eu posso fazer com mais de um porem o minimo é 2 Quando se inicia um comentário ele fica até o final da linha. Pode se fazer comentários com varias linhas sem ter que ficar adicionando -- toda hora, se faz usando [[, assim: --[[ ahuahuahuhua eu sei comentar em comentarios ]] --- aqui vai seu script Usa-se muito isso para inserir créditos ou explicar algo, mesmo. Exercício. Crie um pequeno script que tenha 3 variáveis, que e o valor de cada uma deve ser modificado de alguma forma e insira comentários em cada linha e no final um comentários com + de uma linha usando [[ ]]. Resposta: Essa aula foi escrita por um urso gordo Mock, todos os créditos são dele. Aula 6 - Escopo >> Comentarios Essa parte é simples, ajuda quando se esta fazendo um script, ou quando quer explicar alguma coisa no script para uma pessoa que vai ver. São os comentários. Eles servem apenas para você "falar" ou comentar alguma coisa no script. Elas não influenciam em nada do script (Em sua execução). Para1 ponto -
Combat fórmulas
Combat fórmulas
Agaka reagiu a MaXwEllDeN por uma resposta no tópico
1 pontoCriado por: Kaotar Testado e Baseado em: TFS 0.4_DEV Informações adicionais: Todo mundo já se deparou, quando foi modificar a sua spell, com a formula e não entendeu o que cada numero significava, irei explicar tudo o que necessitas nesse tópico. Hail, bom como já leram nas informações adicionais acima, estou aqui para explicar o que cada numero, na formulas de combat, significam. Formula: setCombatFormula(combat, type, mina, minb, maxa, maxb[, minl, maxl[, minm, maxm[, minc[, maxc]]]]) Como podem ver são varios os argumentos que passamos para essa função: para facilitar a explicação vou chama-los de forma diferente. Notem as cores, você pode escolher até que cor quer usar, você pode usar só os argumentos azuis, os azuis e os vermelhos ou todos. PS: Impossível usar apenas o vermelho ou apenas o marrom é obrigatório seguir a ordem. Vamos as explicações: Bom como não é obrigatório colocar os numero em vermelho, quando não é especificados esses números nas spells a formula pega eles do config.lua na parte. formulaLevel = 5.0 formulaMagic = 1.0 Sendo que: Mas e o i ,j? Explicando em outras palavas: i, j serão valores padrões para Minimo e Maximo, se eles forem menores que i, j então i, j que serão considerados.Exemplo: Se Minimo = 50, Maximo = 100, i = 60 e j = 80 então a formula vai ter o Minimo de 60 por causa que i substitui o Minimo, pois é maior Maximo vai ser 100, pois j é menor que o Maximo, então não substitui. Bom acho que isso vai facilitar a vida de muita gente, pois avia varias duvidas na seção de suporte sobre o assunto, então decidi fazer esse tópico. Alguma observações: Este tópico aplica-se apenas quando o tipo de formula é COMBAT_FORMULA_LEVELMAGIC; Está formula ainda tem sofre o adicional da vocação e dos equipamentos; Está formula foi retirada do TFS 0.4_DEV, e pode ter alterações em outras verções. Espero ter ajudado. TODO: Explicar outros tipos de formulas e mostrar outras formas de fazer isso. Lembrando: Não fui eu quem criou esse tutorial, foi o Kaotar, de outro fórum, eu só trouxe ele para o TibiaKing.1 ponto