Postado Agosto 7, 2022 2 anos TFS 0.4 860 Salve Tk, estava procurando algum sistema parecido mas nao encontrei aqui no tk e vim pedir ajuda de vcis! Bom o script funcionaria da seguinte forma! Gostaria de que alguns itens especiais tivessem a chance de aplicar uma Condition Ex: Item xxxx (Luva), 2% Chance de aplicar Burn On hit e o burn daria 5000 a 10k de dmg random Item xxxx (Cajado), 2% Chance de aplicar Poison On hit e o Poinson daria 5000 a 10k de dmg random Item xxxx (Espada), 2% Chance de aplicar Paralisy On hit Condition Ficaria ativa por 15 a 20 Segundos! E soltar uma Magic Effect no player(Inimigo) toda vez que o 2% Conseguir aplicar a condition! Porem no DamageCondition para o dano teria alguma forma de deixa ele Random ? Ex: addDamageCondition(condition, , , -math.random(,10000)) E a possibilida de verificar se o target já esta com a Condition Aplicada para nao aplicar infinitamente ? Resolvido Por momento! Para quem quiser utilizar! Script: Condition ENERGY.Lua Mostrar conteúdo oculto 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) ------ Aqui Voce troca qual tipo de Condition vai aplicar o item! setConditionParam(condition, CONDITION_PARAM_DELAYED, 1) addDamageCondition(condition, 50, 2000, -75) ------ Aqui Voce troca a Formula do Dano da Condition 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 Weapons.Xml ----- Aqui voce coloca os ids dos items que vao aplicar condition Energy Mostrar conteúdo oculto <melee id="XXXX;XXXX;XXXX;XXXXX" event="script" value="condition ENERGY.lua"/> Editado Setembro 15, 2022 2 anos por Maniaco (veja o histórico de edições)
Postado Agosto 15, 2022 2 anos Em 07/08/2022 em 22:06, Maniaco disse: Gostaria de que alguns itens especiais tivessem a chance de aplicar uma Condition Ex: se vc tiver wand elemental por script no weapon, vc pode colocar um math.random(1,100) e se for < 3 seta um condition local condition = createConditionObject(CONDITION_CURSED) setConditionParam(condition, CONDITION_PARAM_DELAYED, 1) setCombatCondition(combat, condition) tipo esse condition CURSED que deixa o char levando dano de mort. caso seja default o ataque, ou seja pela source. vc pode fazer um CreatureScripts com "onStatsChange" checando a arma do attacker, e com um math.random(1,100) de adicionar a condition
Postado Setembro 15, 2022 2 anos Autor @FeeTads Eu acabei atualizando o Topico com uma solução e uma duvida nova poderia me orientar!
Postado Setembro 15, 2022 2 anos Em 15/09/2022 em 14:54, Maniaco disse: Eu acabei atualizando o Topico com uma solução e uma duvida nova poderia me orientar! a duvida seria checar se o target ja está com o condition? creio que o mais facil seria ativar uma storage no target com pelo menos 1 minuto de CD pra n receber novamente.} tipo: addCondition > 1 min de CD no inimigo pq se não por mais que não coloque enquanto estiver com o condition, quando o condition acabar, ele ja pode sofrer de novo. então creio que o mais certo seria tipo: 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 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) ------ Aqui Voce troca qual tipo de Condition vai aplicar o item! setConditionParam(condition, CONDITION_PARAM_DELAYED, 10000) -- param_delayed, 10000 creio que o 10000 sã0 10 segundos, mexi aqui, mas não tenho ctz se é tempo adicionado ao target ou CD pra usar de novo, testar PF addDamageCondition(condition, 50, 2000, -75) ------ Aqui Voce troca a Formula do Dano da Condition 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 doAddCondition(variantToNumber(var), condition) doSendMagicEffect(position1, 346) setCreatureStorage(target, storage_CD, os.time() + timer) end end return doCombat(cid, combat, var) end
Postado Setembro 16, 2022 2 anos Autor Em 15/09/2022 em 16:28, FeeTads disse: a duvida seria checar se o target ja está com o condition? creio que o mais facil seria ativar uma storage no target com pelo menos 1 minuto de CD pra n receber novamente.} tipo: addCondition > 1 min de CD no inimigo pq se não por mais que não coloque enquanto estiver com o condition, quando o condition acabar, ele ja pode sofrer de novo. então creio que o mais certo seria tipo: 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 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) ------ Aqui Voce troca qual tipo de Condition vai aplicar o item! setConditionParam(condition, CONDITION_PARAM_DELAYED, 10000) -- param_delayed, 10000 creio que o 10000 sã0 10 segundos, mexi aqui, mas não tenho ctz se é tempo adicionado ao target ou CD pra usar de novo, testar PF addDamageCondition(condition, 50, 2000, -75) ------ Aqui Voce troca a Formula do Dano da Condition 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 doAddCondition(variantToNumber(var), condition) doSendMagicEffect(position1, 346) setCreatureStorage(target, storage_CD, os.time() + timer) end end return doCombat(cid, combat, var) end Pefeito dmais unico problema que faltou foi o Damage Min- Max- Dano sofrido pela Condition! addDamageCondition(condition, 50, 2000, -math.random(5000,10000)) Poderia me dar os detalhes! ou dessa forma esta correto ?
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.