addDamageCondition(CONDITION_FIRE, rounds, time, value)
info
Group: Herói
Joined: 25/02/07
Posts: 859
Reputation: +331
Gender: Masculino

info
Group: Visconde
Joined: 26/08/10
Posts: 431
Reputation: +60
Gender: Masculino
Tibia Character: Gabriel Rookgaardian

addDamageCondition(CONDITION_FIRE, rounds, time, value)
Eu não manjo de fazer script, tem como formular um pra mim que seja por target, se possível?
up
O debuff seria aplicado como?
Seria uma habilidade de uma arma, uma spell...?
Eu faria com storages, pois condition até ficaria com o ícone, mas iria dar dano pela condição, e não um dano extra
Vou pensar em algo... ![]()
info
Group: Visconde
Joined: 26/08/10
Posts: 431
Reputation: +60
Gender: Masculino
Tibia Character: Gabriel Rookgaardian

O debuff seria aplicado como?
Seria uma habilidade de uma arma, uma spell...?
Eu faria com storages, pois condition até ficaria com o ícone, mas iria dar dano pela condição, e não um dano extra
Vou pensar em algo...
Seria uma spell por target.
Ex: O cara conjuraria a spell no targert (utivo flam, exemplo), dai o target ficaria mais fraco (X porcento) contra determinado elemento, nesse caso, o fogo, por X segundos.
Deu pra pegar a ideia? kkkk
info
Group: Herói
Joined: 25/02/07
Posts: 859
Reputation: +331
Gender: Masculino

Ah, o felzan tem razão. Eu entendi errado. Estou pelo celular, as vezes leio correndo. Amanhã chego em casa e bolo uma solucao, se ng tiver feito ainda.
info
Group: Visconde
Joined: 26/08/10
Posts: 431
Reputation: +60
Gender: Masculino
Tibia Character: Gabriel Rookgaardian

Conseguiram? =S
Bom, fiz assim ![]()

Add no final do creaturescripts\scripts\login.lua
-- Events
player:registerEvent("PlayerDeath")
player:registerEvent("DropLoot")
player:registerEvent("Debuff")
<event type="healthchange" name="Debuff" script="debuff.lua"/>
Exemplo de spells.xml
<instant group="attack" spellid="61" name="Debuff" words="debuff" lvl="1" mana="0" prem="0" range="4" needtarget="1" blockwalls="1" needweapon="0" exhaustion="6000" groupcooldown="2000" needlearn="0" script="debuff.lua"> </instant>
spells\scripts\debuff.lua
local combat = Combat()
combat:setParameter(COMBAT_PARAM_TYPE, COMBAT_FIREDAMAGE)
combat:setParameter(COMBAT_PARAM_EFFECT, CONST_ME_SKULLVERTICAL)
local conditionDebuff = Condition(CONDITION_PARALYZE)
conditionDebuff:setParameter(CONDITION_PARAM_TICKS, 10000)
conditionDebuff:setFormula(0, 0, 0, 0)
combat:setCondition(conditionDebuff)
local function removeDebuff(parameters)
parameters.target:setStorageValue(parameters.key, parameters.value)
end
function onCastSpell(creature, var)
local cid = creature:getId()
parameters = {target = Creature(var:getNumber()), key = 99881, value = 0}
parameters.target:setStorageValue(parameters.key, 1)
addEvent(removeDebuff, 10000, parameters)
return combat:execute(creature, var)
end
creaturescripts\scripts\debuff.lua
function onHealthChange(creature, attacker, primaryDamage, primaryType, secondaryDamage, secondaryType, origin) local hasdebuff = creature:getStorageValue(99881) --storage dada na debuff spell local percent = 2 -- dobro (50% seria 1.5) local tipoDano = COMBAT_FIREDAMAGE if hasdebuff > 0 then return primaryDamage*percent, tipoDano, secondaryDamage, secondaryType else return primaryDamage, primaryType, secondaryDamage, secondaryType end end
Edited Janeiro 18 by felzan
info
Group: Herói
Joined: 25/02/07
Posts: 859
Reputation: +331
Gender: Masculino

Bela magia, comente se funcionou.
info
Group: Visconde
Joined: 26/08/10
Posts: 431
Reputation: +60
Gender: Masculino
Tibia Character: Gabriel Rookgaardian

Deu um erro no script do SPELL
lua:1: attempt to call global 'Combat' a nil value.
Uso TFS 0.4, só caso disso ser o problema.
Deu um erro no script do SPELL
lua:1: attempt to call global 'Combat' a nil value.
Uso TFS 0.4, só caso disso ser o problema.
Deve ser a versão entao, pq fiz pra 1.x
Faz mt tempo que não faço nada pra versões antigas.
Vai ter de traduzir de 1.x pra 0.4
info
Group: Visconde
Joined: 26/08/10
Posts: 431
Reputation: +60
Gender: Masculino
Tibia Character: Gabriel Rookgaardian

Vixe, então ferrou. kkkkkkkk
Por isso percebi as tags estranhas no creaturescript, dai deixei igual ao que tinha aqui. dai só deu esse erro que falei, até agora.
info
Group: Herói
Joined: 14/02/14
Posts: 341
Reputation: +285
Gender: Masculino
Tibia Character: Night Wolf

Se vc não tiver nada na source que defina a resistencia positiva ou negativa à determinado elemento, vc pode tentar alterar um item aleatório e botar resistencia negativa nele por certo tempo. O único problema q imagino é se o player remover o item, deslogar ou morrer... mas aí vc pode fazer creaturescripts pra evitar isso.
Com movements vc evita de remover o item q tá com debuff, com condition_infight vc evita q deslogue e com onDeath vc evita q ele drope o item com a resist.
info
Group: Herói
Joined: 25/02/07
Posts: 859
Reputation: +331
Gender: Masculino

Se vc não tiver nada na source que defina a resistencia positiva ou negativa à determinado elemento, vc pode tentar alterar um item aleatório e botar resistencia negativa nele por certo tempo. O único problema q imagino é se o player remover o item, deslogar ou morrer... mas aí vc pode fazer creaturescripts pra evitar isso.
Com movements vc evita de remover o item q tá com debuff, com condition_infight vc evita q deslogue e com onDeath vc evita q ele drope o item com a resist.
Mas acredito que o onStatsChange seja mais pratico e igualmente funcional, não?
info
Group: Herói
Joined: 14/02/14
Posts: 341
Reputation: +285
Gender: Masculino
Tibia Character: Night Wolf

statschange tem um problema de callstack overflow que toda vez que vc trabalha com danos que vão ser recalculados vc precisa contornar com uma das soluções abaixo:
1- Usar a spell durar só 1 dano
2- Controlar o combat por storage (funciona mas é falho e custoso)
Vocês conseguiram fazer pro primeiro caso, mas a real é q a idéia inicial era a spell durar um tempo o debuff, e não só até o proximo dano.



info
Group: Visconde
Joined: 26/08/10
Posts: 431
Reputation: +60
Gender: Masculino
Tibia Character: Gabriel Rookgaardian
Tem como fazer uma spell de dbuff?
Exemplo: Fazer o inimigo tomar mais dano de fire por X segundos.
up