Jump to content
×
×
  • Create New...

Recommended Posts

  • Replies 54
  • Created
  • Last Reply

Top Posters In This Topic

Top Posters In This Topic

Popular Posts

Introdução   Este script consiste em aumentar uma porcentagem dos ataques de acordo com o critical level. Exemplo: Suponhamos que o player tenha Critical Skill 100 e a porcentagem de ataque esteja

creature:getPosition():sendMagicEffect(CONST_ME_HOLYAREA)Lista de efeitos:https://github.com/otland/forgottenserver/blob/master/src/const.h#L25-L111

Daria para fazer, é só colocar: creature:say(primaryDamage, TALKTYPE_MONSTER_SAY)   E alterar para o efeito desejado.

Posted Images

  • 1 month later...
Em 29/06/2016 at 00:29, XxVinePeccixX disse:

tem como por o dodge e o critical por item diferente??

<action itemid="18415" script="other/critical.lua"/>

 

Voce bota o id do item que ira ficar com a action

Em 03/07/2016 at 18:49, gusinhi disse:

existe uma forma de fazer por onEquip , tipo eu uso um ring e aumenta a chance do critical dai qnd eu tiro o ring volta ao normal

No outro system,o de Dodge,um membro respondeu uma pergunta parecida,olha la e ve se te ajuda.

Edited by xdark
Link to post
Share on other sites
  • 1 month later...
  • 11 months later...

Olá amigo, estou com um problemão nesse sistema, tanto no critical quanto no dodge, faço tudo corretamente como diz no tutorial bem explicado por sinal seu, sendo que quando eu abro o server, tudo direitinho, eu ataco os bixos e tal só que quando eles vão me atacar, é como se eu fosse um adm, não recebo dano algum, e potions de cura, qualquer potion que cure health não funciona, apenas potions de mana. gostaria de saber o motivo, obrigado :p

Link to post
Share on other sites
  • 5 months later...

Amigo o script funciona, Porém, os players não levam dano nenhum de monsters, somente levam dano na mana. Esse sistema de Dodge e Critical skill usam o healthchange do creaturescripts. Se eu deixar somente o dodge system ativo ele funciona os players levam dano dos monsters, porém se eu colocar os 2 não da certo os monstros não tiram dano mais da life de ninguém.

Creio que tenha algo a ver com isso:

<event type="healthchange" name="CriticalSystem" script="criticalSystem.lua"/>

Como faço para arrumar isso??

Edited by XxVinePeccixX
Link to post
Share on other sites
  • 6 months later...
  • 3 months later...
Em 05/06/2015 em 17:49, Bruno disse:

Introdução

 

Este script consiste em aumentar uma porcentagem dos ataques de acordo com o critical level.

Exemplo: Suponhamos que o player tenha Critical Skill 100 e a porcentagem de ataque esteja configurado para aumentar 50%, o player terá 30% de chance de au 50% dos ataques.

 

Instalação

 

O conteúdo da lib serve para o Critical e Dodge System, se você já fez este procedimento no outro script simplesmente ignore e vá para o próximo passo.

 

Em data/lib/core/core.lua adicione o seguinte conteúdo em qualquer parte:

 


dofile('data/lib/core/dclib.lua')

Ainda em data/lib/core/core crie um arquivo chamado dclib.lua com o seguinte conteúdo:

 

  Mostrar conteúdo oculto

 



-- Configuração
DODGE = {
	STORAGE =   48900, -- player storage do sistema
	LEVEL_MAX = 100, -- máximo de dodge level que o player pode alcançar
	PERCENT = 0.5 -- porcentagem que irá defender o ataque [padrão 50% = 0.5]
}

CRITICAL = {
	STORAGE =   48901, -- player storage do sistema
	LEVEL_MAX = 100, -- máximo de critical level que o player pode alcançar
	PERCENT = 0.5 -- porcentagem que irá aumentar o ataque [padrão 50% = 0.5]
}

function Player.getDodgeLevel(self)
	return self:getStorageValue(DODGE.STORAGE)
end

function Player.setDodgeLevel(self, value)
	return self:setStorageValue(DODGE.STORAGE, value)
end

function Player.getCriticalLevel(self)
	return self:getStorageValue(CRITICAL.STORAGE)
end

function Player.setCriticalLevel(self, value)
	return self:setStorageValue(CRITICAL.STORAGE, value)
end

 

 

Agora em data/actions/actions.xml adicione a seguinte tag:

 


<action itemid="18415" script="other/critical.lua"/>

Depois em data/actions/scripts/other crie um arquivo chamado critical.lua com o seguinte conteúdo:

 

  Mostrar conteúdo oculto

 



function onUse(player, item, fromPosition, target, toPosition, isHotkey)
	if player:getCriticalLevel() < CRITICAL.LEVEL_MAX then
		item:remove(1)
		player:getPosition():sendMagicEffect(CONST_ME_GIFT_WRAPS)
		player:setCriticalLevel(player:getCriticalLevel() + 1)
		player:sendTextMessage(MESSAGE_EVENT_ADVANCE, "Você aumentou sua skill de critical para [" .. player:getCriticalLevel() .. "/" .. CRITICAL.LEVEL_MAX .. "].")
	elseif player:getCriticalLevel() >= CRITICAL.LEVEL_MAX then
		player:sendTextMessage(MESSAGE_STATUS_WARNING, "Você alcancou o máximo de seu CRITICAL Skill.\nParabéns!!!!")
		return false
    end
	return true
end

 

 

Pronto, já configuramos o item para atribuir o Critical Skill, vamos configurar a parte dos ataques.

 

Vá em data/creaturescripts/creaturescripts.xml e adicione a seguinte tag:

 


<event type="healthchange" name="CriticalSystem" script="criticalSystem.lua"/>

Agora em data/creaturescripts/scripts crie um arquivo chamado criticalSystem.lua com o seguinte conteúdo:

 

  Mostrar conteúdo oculto

 



function onHealthChange(creature, attacker, primaryDamage, primaryType, secondaryDamage, secondaryType, origin)
	if not isPlayer(attacker) then return false end
	if (attacker:getCriticalLevel() * 3) >= math.random (0, 1000) then
        if isInArray({ORIGIN_MELEE, ORIGIN_RANGED, ORIGIN_SPELL}, origin) and primaryType ~= COMBAT_HEALING then
            primaryDamage = primaryDamage + math.ceil(primaryDamage * CRITICAL.PERCENT)
            attacker:say("CRITICAL!", TALKTYPE_MONSTER_SAY)
			creature:getPosition():sendMagicEffect(CONST_ME_EXPLOSIONHIT)
        end
    end
    return primaryDamage, primaryType, secondaryDamage, secondaryType
end

 

 

Ainda em data/creaturescripts/scripts abra o arquivo login.lua e

Antes de:

 


return true

Adicione:

 


player:registerEvent("CriticalSystem")

-- Critical System
if player:getCriticalLevel() == -1 then
	player:setCriticalLevel(0) 
end

O sistema está finalizado, agora vamos criar as talkactions para que os players acompanhem seu skill.

 

Em data/talkactions/talkactions.xml adicione a tag:

 


<talkaction words="!critical" script="critical.lua"/>

E para finalizar, em data/talkactions/scripts crie um arquivo chamado critical.lua com o seguinte conteúdo:

 

  Mostrar conteúdo oculto

 



function onSay(player, words, param)
	local skill = player:getCriticalLevel()
	local message = "CRITICAL SYSTEM\nO sistema consiste em ter % de chance de dar um dano critico.\n\nPor Exemplo:\nCada pedra utilizada atribui 0,3% a mais de chance.\nCom 10 pedras, voce tera 3% de chance de hitar um dano critico dos ataques desferidos ao seu oponente.\nCom 100 pedras (maximo), voce tera 30% de chance de hitar um dano critico dos ataques desferidos ao seu oponente.\nCada pedra que voce usar, sua skill de dodge aumenta em 1 ponto.\n\nPara obter a pedra, voce pode comprar no NPC Hyperion, localizado no templo.\nOu atraves de nosso WebShop.\n------------------\nCritical Skill: [" .. skill .. "/100]"
	doPlayerPopupFYI(player, message)
end

 

 

Bom é isso ai!

 

Créditos:

eu instalei o dodge e critical, só q me embananei no login.lua e ficou dando esse erro

 

[Warning - Event::checkScript] Can not load script: scripts/login.lua
data/creaturescripts/scripts/login.lua:40: 'then' expected near char(239)

 

  Citar

player:registerEvent("CriticalSystem")


-- Critical System
if player:getCriticalLevel() == -1 then
    player:setCriticalLevel(0) 

player:registerEvent("DodgeSystem")

-- Dodge System
if player:getDodgeLevel() == -1 then
    player:setDodgeLevel(0) 
end
    return true
end

Link to post
Share on other sites
  • 4 weeks later...

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
  • Recently Browsing   0 members

    No registered users viewing this page.


    Administrador |  Diretor |  Coordenador |  Moderador |  Suporter |  Estagiário |  Herói
  • Similar Content

    • By jenison06
      Alguem consegue adaptar sistema de contagem, o meu nao esta contando apenas no abra e msmo assim so conta 1 ball.
       
      Action ( Catch.lua)
       
      Lib (catch system.lua)
      Checatch (Talkaction)
      function onSay(cid, words, param, channel) if param == "" then return true end getBrokesIn(cid, param) return true end  
    • By helviio
      Versão do Servidor: TFS - 0.4 Tipo de Script: actions Código: Olá companheiros do xTibia Venho por meio deste post pedir com que me ajudem a criar um script de boss room para um servidor OTX .2  ... Sei que é antigo e quase ninguém usa mais ... porém eu baixei um e estou editando e fiz diversas modificações e seria jogar tempo fora e tanta dedicação ... voltei a mexer com Ot's depois de 10 anos e não sabia essas diferenças ... 

      A minha duvida é a seguinte ... eu gostaria de um script de boss room  que o jogador ou os jogadores pudessem fazer esse boss 1x a cada 24hrs ao puxar a alavanca ... ! com uma mensagem escrita o seguinte caso o jogador ja tivesse feito o boss ... "Você ja participou hoje volte amanhã"  basicamente é isso ... obrigado =D 
    • By Hug0
      Versão do Servidor: TFS - 1.2 Tipo de Script: npc Código: Aew galera blz? 
      Eu utilizo o servidor The OTX Server Global - Version: (3.10) e queria fazer um npc que tivesse as seguintes características.
       
      Ele em tese vai ser um npc ferreiro só que no script dele eu quero que ele receba uma arma X (ex: shiny  blade) e refine a mesma, mais tendo a chance de falhar esse processo exemplo
       
      Ele vai pegar a arma mais itens de refinamento e deixar ela +1 no caso ele teria 90% de chance se acertar. E ele poderia refinar os itens ate +7 sendo que na ultima so teria 10% de chance. Caso desse erro a arma voltaria para o +0 no caso a arma original..

      Sei que tem scrips de upgrade porem nessa versão que utilizo nenhum funcionou, e testei mais de 10 scripts diferentes. Não apresentam erros no distro mais tbm não fazem a função para qual foram feitos. 
       
    • By tvsxde
      Versão do Servidor: TFS - 0.4 Tipo de Script: moveevent Código: NAO SEI COMO FAZ MAS QUERIA SABER DE UM SCRIPT E AONDE COLOCA PARA QUE O ITEM TIPO : HELMET FIQUE NO SLOT HEAD SEM PODER POR NA MAO OU NO SLOT FLECHA PRECISO FIXISALO ALGUEM SABE O MEU SERVER É O YUROTS GOD BON 1.2 TIBIA 8.10!!!
    • By Nightstar
      Tenho um scripting (mais precisamente um mod) de elo que recebe de acordo com seu frag. Queria saber se uma alma bondosa poderia me ajudar a adicionar bônus de acordo com o titulo que a pessoa tem.
      Exemplo: Titulo Calamidade +5 de ML
                     Titulo Lord Demônio +10 de ML
                     e etc

      Segue o mod: