Postado Setembro 16, 2022 2 anos Em 16/09/2022 em 15:22, Maniaco disse: Poderia me dar os detalhes! ou dessa forma esta correto ? pra falar bem a vdd, eu não sei como funciona esse addDamageCondition, nunca usei ela, eu faria uma function pra dando dano no target, +/- assim: local percent = 30 --- Chance de Aplicar Condition local storage_CD = 2353255 --storage, se não souber não mexer local timer = 60 --timer em segundos pra aplicar o condition novamente local tempo_de_condition = 20 local combat = createCombatObject() setCombatParam(combat, COMBAT_PARAM_BLOCKARMOR, 1) setCombatParam(combat, COMBAT_PARAM_BLOCKSHIELD, 1) setCombatParam(combat, COMBAT_PARAM_TYPE, COMBAT_PHYSICALDAMAGE) setCombatFormula(combat, COMBAT_FORMULA_SKILL, 1, 0, 1, 0) local function apply_condition(target) if isCreature(target) then --caso o target morra, acaba o condition dano = math.ceil(math.random(5000,10000)) --dano entre 5-10k doTargetCombatHealth(target, NULL, COMBAT_ENERGYDAMAGE, -dano, -dano, 255) --source function de combat if tempo_de_condition > 0 then --tempo de condition no cabeçalho addEvent(apply_condition, 1000, target) --addEvent de 1s que chama novamente a função tempo_de_condition = tempo_de_condition - 1 -- diminui 1 na contagem end end return true end function onUseWeapon(cid, var) local target = getCreatureTarget(cid) if getPlayerStorageValue(target, storage_CD) - os.time() > 0 then return true -- não precisa nada dentro desse IF pq se não iria flodar a tela do player end local position1 = getThingPosition(target) if isCreature(variantToNumber(var)) then -- isCreature = TODAS as criaturas > isPlayer > somente em player > isMonster somente em mmonster if percent >= math.random(1,100) then doSendMagicEffect(position1, 346) setPlayerStorageValue(target, storage_CD, os.time() + timer) apply_condition(target) end end return doCombat(cid, combat, var) end
Postado Setembro 17, 2022 2 anos Autor Em 16/09/2022 em 17:21, FeeTads disse: pra falar bem a vdd, eu não sei como funciona esse addDamageCondition, nunca usei ela, eu faria uma function pra dando dano no target, +/- assim: local percent = 30 --- Chance de Aplicar Condition local storage_CD = 2353255 --storage, se não souber não mexer local timer = 60 --timer em segundos pra aplicar o condition novamente local tempo_de_condition = 20 local combat = createCombatObject() setCombatParam(combat, COMBAT_PARAM_BLOCKARMOR, 1) setCombatParam(combat, COMBAT_PARAM_BLOCKSHIELD, 1) setCombatParam(combat, COMBAT_PARAM_TYPE, COMBAT_PHYSICALDAMAGE) setCombatFormula(combat, COMBAT_FORMULA_SKILL, 1, 0, 1, 0) local function apply_condition(target) if isCreature(target) then --caso o target morra, acaba o condition dano = math.ceil(math.random(5000,10000)) --dano entre 5-10k doTargetCombatHealth(target, NULL, COMBAT_ENERGYDAMAGE, -dano, -dano, 255) --source function de combat if tempo_de_condition > 0 then --tempo de condition no cabeçalho addEvent(apply_condition, 1000, target) --addEvent de 1s que chama novamente a função tempo_de_condition = tempo_de_condition - 1 -- diminui 1 na contagem end end return true end function onUseWeapon(cid, var) local target = getCreatureTarget(cid) if getPlayerStorageValue(target, storage_CD) - os.time() > 0 then return true -- não precisa nada dentro desse IF pq se não iria flodar a tela do player end local position1 = getThingPosition(target) if isCreature(variantToNumber(var)) then -- isCreature = TODAS as criaturas > isPlayer > somente em player > isMonster somente em mmonster if percent >= math.random(1,100) then doSendMagicEffect(position1, 346) setPlayerStorageValue(target, storage_CD, os.time() + timer) apply_condition(target) end end return doCombat(cid, combat, var) end Distro Erro: [22:6:38.650] [Error - Weapon Interface] [22:6:38.651] In a timer event called from: [22:6:38.652] data/weapons/scripts/condition.lua:onUseWeapon [22:6:38.652] Description: [22:6:38.653] (luaDoTargetCombatHealth) Creature not found Tentei assim e ta funcionando porem o dano que ele acerta a primeira vez na condition quando liga o servidor continua ate reiniciar novamenete ele fica em um valor fixo exemplo 1345, e repete as 10x o mesmo dano! Precisaria tbm colocar para checar o player se esta com a condition! local percent = 30 --- Chance de Aplicar Condition local combat = createCombatObject() setCombatParam(combat, COMBAT_PARAM_BLOCKARMOR, 1) setCombatParam(combat, COMBAT_PARAM_BLOCKSHIELD, 1) setCombatParam(combat, COMBAT_PARAM_TYPE, COMBAT_PHYSICALDAMAGE) setCombatFormula(combat, COMBAT_FORMULA_SKILL, 1, 0, 1, 0) local condition = createConditionObject(CONDITION_ENERGY) setConditionParam(condition, CONDITION_PARAM_DELAYED, 1) local dano = { {-(math.random(1300,2000))}, } for i = 1, #dano do local t = dano[i] addDamageCondition(condition, 10, 1000, t[1]) end function onUseWeapon(cid, var) local position1 = getThingPosition(getCreatureTarget(cid)) if isCreature(variantToNumber(var)) then if percent >= math.random(1,100) then doAddCondition(variantToNumber(var), condition) doSendMagicEffect(position1, 346) end end return doCombat(cid, combat, var) end Editado Setembro 17, 2022 2 anos por Maniaco (veja o histórico de edições)
Postado Setembro 17, 2022 2 anos Em 17/09/2022 em 01:07, Maniaco disse: Distro Erro: [22:6:38.650] [Error - Weapon Interface] [22:6:38.651] In a timer event called from: [22:6:38.652] data/weapons/scripts/condition.lua:onUseWeapon [22:6:38.652] Description: [22:6:38.653] (luaDoTargetCombatHealth) Creature not found Tentei assim e ta funcionando porem o dano que ele acerta a primeira vez na condition quando liga o servidor continua ate reiniciar novamenete ele fica em um valor fixo exemplo 1345, e repete as 10x o mesmo dano! Precisaria tbm colocar para checar o player se esta com a condition! local percent = 30 --- Chance de Aplicar Condition local combat = createCombatObject() setCombatParam(combat, COMBAT_PARAM_BLOCKARMOR, 1) setCombatParam(combat, COMBAT_PARAM_BLOCKSHIELD, 1) setCombatParam(combat, COMBAT_PARAM_TYPE, COMBAT_PHYSICALDAMAGE) setCombatFormula(combat, COMBAT_FORMULA_SKILL, 1, 0, 1, 0) local condition = createConditionObject(CONDITION_ENERGY) setConditionParam(condition, CONDITION_PARAM_DELAYED, 1) local dano = { {-(math.random(1300,2000))}, } for i = 1, #dano do local t = dano[i] addDamageCondition(condition, 10, 1000, t[1]) end function onUseWeapon(cid, var) local position1 = getThingPosition(getCreatureTarget(cid)) if isCreature(variantToNumber(var)) then if percent >= math.random(1,100) then doAddCondition(variantToNumber(var), condition) doSendMagicEffect(position1, 346) end end return doCombat(cid, combat, var) end O valor tá fixo pq o math.random tá fora do onUseWeapon coloca o math.random dentro do onUse e passa o dano por função
Postado Setembro 17, 2022 2 anos Autor Em 17/09/2022 em 13:18, FeeTads disse: O valor tá fixo pq o math.random tá fora do onUseWeapon coloca o math.random dentro do onUse e passa o dano por função Seria Algo assim ? Chegou em um ponto que eu fiquei perdido nao entendi muito bem! Porem coloquei dentro do OnUseWeapon e continua com o Dano Fixo! local percent = 30 --- Chance de Aplicar Condition local combat = createCombatObject() setCombatParam(combat, COMBAT_PARAM_BLOCKARMOR, 1) setCombatParam(combat, COMBAT_PARAM_BLOCKSHIELD, 1) setCombatParam(combat, COMBAT_PARAM_TYPE, COMBAT_PHYSICALDAMAGE) setCombatFormula(combat, COMBAT_FORMULA_SKILL, 1, 0, 1, 0) local condition = createConditionObject(CONDITION_ENERGY) setConditionParam(condition, CONDITION_PARAM_DELAYED, 1) function onUseWeapon(cid, var) local position1 = getThingPosition(getCreatureTarget(cid)) local dano = { {-(math.random(1300,2000))}, } if isCreature(variantToNumber(var)) then if percent >= math.random(1,100) then doAddCondition(variantToNumber(var), condition) doSendMagicEffect(position1, 346) for i = 1, #dano do local t = dano[i] addDamageCondition(condition, 10, 1000, t[1]) end end end return doCombat(cid, combat, var) end e o seu Script: Continuo com o Erro [22:6:38.650] [Error - Weapon Interface] [22:6:38.651] In a timer event called from: [22:6:38.652] data/weapons/scripts/condition.lua:onUseWeapon [22:6:38.652] Description: [22:6:38.653] (luaDoTargetCombatHealth) Creature not found Poderia dar um help pois seu ta mais completinho!
Postado Setembro 17, 2022 2 anos Tenta usar o script assim. Eu fiz o exemplo de uma condition de fire. Eu não mexo muito com tfs 0.X por ser meio limitado, mas acho que vai dar certo assim. Se tiver algum erro só falar local percent = 30 --- Chance de Aplicar Condition local combat = createCombatObject() setCombatParam(combat, COMBAT_PARAM_TARGETCASTERORTOPMOST, true) setCombatParam(combat, COMBAT_PARAM_TYPE, COMBAT_FIREDAMAGE) setCombatParam(combat, COMBAT_PARAM_EFFECT, CONST_ME_HITBYFIRE) setCombatParam(combat, COMBAT_PARAM_DISTANCEEFFECT, CONST_ANI_FIRE) local condition = createConditionObject(CONDITION_FIRE) setConditionParam(condition, CONDITION_PARAM_DELAYED, 1) addDamageCondition(condition, 1, 3000, -math.random(5000,10000)) addDamageCondition(condition, 1, 3000, -math.random(5000,10000)) addDamageCondition(condition, 1, 3000, -math.random(5000,10000)) addDamageCondition(condition, 1, 3000, -math.random(5000,10000)) addDamageCondition(condition, 1, 3000, -math.random(5000,10000)) addDamageCondition(condition, 1, 3000, -math.random(5000,10000)) setCombatCondition(combat, condition) function onCastSpell(cid, var) if not isCreature(variantToNumber(var)) or hasCondition(var) == true or (math.random(1,100) > percent) then return false end return doCombat(cid, combat, var) end Editado Setembro 17, 2022 2 anos por Toruk var (veja o histórico de edições)
Participe da conversa
Você pode postar agora e se cadastrar mais tarde. Se você tem uma conta, faça o login para postar com sua conta.