Ir para conteúdo

[TFS 1.x] Critical System


Bruno

Posts Recomendados

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

Editado por xdark
Link para o comentário
Compartilhar em outros 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 para o comentário
Compartilhar em outros 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??

Editado por XxVinePeccixX
Link para o comentário
Compartilhar em outros sites

  • 6 months later...

Como você para conseguiu fazer funcionar. No meu uso TFS 1.2 e está dando esse erro " [Error - TalkAction::configureEvent] Missing words for talk action or spell"

Editado por themarvado
Link para o comentário
Compartilhar em outros sites

  • 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 para o comentário
Compartilhar em outros sites

  • 4 weeks later...
×
×
  • Criar Novo...