addDamageCondition(CONDITION_FIRE, rounds, time, value)
info
Grupo: Herói
Registrado: 25/02/07
Posts: 859
Reputação: +331
Gênero: Masculino

info
Grupo: Visconde
Registrado: 26/08/10
Posts: 431
Reputação: +60
Gênero: Masculino
Char no Tibia: 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
Grupo: Visconde
Registrado: 26/08/10
Posts: 431
Reputação: +60
Gênero: Masculino
Char no Tibia: 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
Grupo: Herói
Registrado: 25/02/07
Posts: 859
Reputação: +331
Gênero: 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
Grupo: Visconde
Registrado: 26/08/10
Posts: 431
Reputação: +60
Gênero: Masculino
Char no Tibia: 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
Editado Janeiro 18 por felzan
info
Grupo: Herói
Registrado: 25/02/07
Posts: 859
Reputação: +331
Gênero: Masculino

Bela magia, comente se funcionou.
info
Grupo: Visconde
Registrado: 26/08/10
Posts: 431
Reputação: +60
Gênero: Masculino
Char no Tibia: 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
Grupo: Visconde
Registrado: 26/08/10
Posts: 431
Reputação: +60
Gênero: Masculino
Char no Tibia: 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
Grupo: Herói
Registrado: 14/02/14
Posts: 341
Reputação: +285
Gênero: Masculino
Char no Tibia: 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
Grupo: Herói
Registrado: 25/02/07
Posts: 859
Reputação: +331
Gênero: 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
Grupo: Herói
Registrado: 14/02/14
Posts: 341
Reputação: +285
Gênero: Masculino
Char no Tibia: 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
Grupo: Visconde
Registrado: 26/08/10
Posts: 431
Reputação: +60
Gênero: Masculino
Char no Tibia: Gabriel Rookgaardian
Tem como fazer uma spell de dbuff?
Exemplo: Fazer o inimigo tomar mais dano de fire por X segundos.
up