Bragony 0 Postado Fevereiro 25, 2013 Share Postado Fevereiro 25, 2013 Olá, boa tarde. Gostaria de saber se é possível adaptar a fórmula antiga das SD's, como era feita, nos dias de hoje... Segue o modelo do otserver 7.6: -- doTargetMagic-- attackType: Type of attack -- cid: creature id. -- Targetpos: Target position. -- animationEffect: Projectile animation. -- damageEffect: Effect to show when spell hits a player. -- animationColor: Color of the text that is shown above the player when hit. -- offensive: Indicates if the spell is a healing/attack spell. -- drawblood: Determines if the spell causes blood splash. -- minDmg: Minimal damage. -- maxDmg: Maximum damage. -- returns true if the spell was casted. attackType = ATTACK_PHYSICAL animationEffect = NM_ANI_SUDDENDEATH hitEffect = NM_ME_MORT_AREA damageEffect = NM_ME_DRAW_BLOOD animationColor = RED offensive = true drawblood = true SuddenDeathObject = (attackType, animationEffect, hitEffect, damageEffect, animationColor, offensive, drawblood, 0, 0) function onCast(cid, creaturePos, level, maglv, var) centerpos = {x=creaturePos.x, y=creaturePos.y, z=creaturePos.z} SuddenDeathObject.minDmg = (level * 2 + maglv *3) * 1.2 - 30 SuddenDeathObject.maxDmg = (level * 2 + maglv *3) * 1.6 return doTargetMagic(cid, centerpos, SuddenDeathObject:ordered()) end E o modelo atual: local combat = createCombatObject()setCombatParam(combat, COMBAT_PARAM_TYPE, COMBAT_PHYSICALDAMAGE) setCombatParam(combat, COMBAT_PARAM_EFFECT, CONST_ME_MORTAREA) setCombatParam(combat, COMBAT_PARAM_DISTANCEEFFECT, CONST_ANI_DEATH) setCombatFormula(combat, COMBAT_FORMULA_LEVELMAGIC, -1.005, -25, -1.75, 0) function onCastSpell(cid, var) return doCombat(cid, combat, var) end Link para o comentário https://xtibia.com/forum/topic/208527-ajuda-script-de-sd/ Compartilhar em outros sites More sharing options...
0 Roksas 846 Postado Fevereiro 25, 2013 Share Postado Fevereiro 25, 2013 Como assim adaptá-lo? O modelo atual já é adaptado, novas functions e tals, EXPLIQUE MELHOR ) Link para o comentário https://xtibia.com/forum/topic/208527-ajuda-script-de-sd/#findComment-1476258 Compartilhar em outros sites More sharing options...
0 Bragony 0 Postado Fevereiro 25, 2013 Autor Share Postado Fevereiro 25, 2013 Ok... Gostaria de usar o método de fórmula antigo. Com um mínimo dependendo do level e do mlevel, e um máximo também. Imagino que o novo jeito já faça isso, só que de uma maneira muito camuflada... Queria algo assim como na formula antiga: Dano mínimo: 10*lvl+5*ml-30 Dano maximo: 10*lvl+7*ml-20 Deu pra entender? Desde ja obrigado. Link para o comentário https://xtibia.com/forum/topic/208527-ajuda-script-de-sd/#findComment-1476263 Compartilhar em outros sites More sharing options...
0 dalvorsn 268 Postado Fevereiro 25, 2013 Share Postado Fevereiro 25, 2013 UHqeuew3[/pastebin] Link para o comentário https://xtibia.com/forum/topic/208527-ajuda-script-de-sd/#findComment-1476265 Compartilhar em outros sites More sharing options...
0 Bragony 0 Postado Fevereiro 25, 2013 Autor Share Postado Fevereiro 25, 2013 (editado) Dalvorsn, testei a fórmula, mas deu erro na interface: Data/spells/scripts/atack/sudden death.lua:10: attempt to perform arithmetic on global 'level' - a nil value Stack trackback: Data/spells/scripts/atack/sudden death.lua:10: in function <data/spells/cripts/atack/sudden death.lua:5> E agora? Obrigado pela ajuda. Editado Fevereiro 25, 2013 por Bragony Link para o comentário https://xtibia.com/forum/topic/208527-ajuda-script-de-sd/#findComment-1476270 Compartilhar em outros sites More sharing options...
0 Roksas 846 Postado Fevereiro 25, 2013 Share Postado Fevereiro 25, 2013 Troca por: local attackType = COMBAT_PHYSICALDAMAGE local hitEffect = CONST_ME_MORTAREA local distanceEffect = CONST_ANI_DEATH function onCastSpell(cid, var) local target = getCreatureTarget(cid) if target then local lvl, maglv = getPlayerLevel(cid), getPlayerMagLevel(cid) local frompos, topos = getThingPos(cid), getThingPos(target) local minDmg = (lvl * 2 + maglv *3) * 1.2 - 30 local maxDmg = (lvl * 2 + maglv *3) * 1.6 doTargetCombatHealth(cid, target, attackType, minDmg, maxDmg, hitEffect) doSendDistanceShoot(frompos, topos, distanceEffect) return true end return false end Link para o comentário https://xtibia.com/forum/topic/208527-ajuda-script-de-sd/#findComment-1476277 Compartilhar em outros sites More sharing options...
0 dalvorsn 268 Postado Fevereiro 25, 2013 Share Postado Fevereiro 25, 2013 Dalvorsn, testei a fórmula, mas deu erro na interface: Data/spells/scripts/atack/sudden death.lua:10: attempt to perform arithmetic on global 'level' - a nil value Stack trackback: Data/spells/scripts/atack/sudden death.lua:10: in function <data/spells/cripts/atack/sudden death.lua:5> E agora? Obrigado pela ajuda. Foi uma variavel que declarei com um nome e usei com outro, falta de atenção. 2buZXaKQ[/pastebin] Link para o comentário https://xtibia.com/forum/topic/208527-ajuda-script-de-sd/#findComment-1476295 Compartilhar em outros sites More sharing options...
0 Bragony 0 Postado Fevereiro 25, 2013 Autor Share Postado Fevereiro 25, 2013 Testei os dois, e ambos deram o mesmo problema! Ah, e pela ajuda, depois vou dar rep pros dois, muito obrigado! O problema foi esse: [25/02/2013 13:36:57] [Error - Spell Interface] [25/02/2013 13:36:57] data/spells/scripts/attack/sudden death.lua:onCastSpell [25/02/2013 13:36:57] Description: [25/02/2013 13:36:57] (luaDoTargetCombatHealth) Creature not found Link para o comentário https://xtibia.com/forum/topic/208527-ajuda-script-de-sd/#findComment-1476300 Compartilhar em outros sites More sharing options...
0 Roksas 846 Postado Fevereiro 25, 2013 Share Postado Fevereiro 25, 2013 Tenta: local attackType = COMBAT_PHYSICALDAMAGE local hitEffect = CONST_ME_MORTAREA local distanceEffect = CONST_ANI_DEATH function onCastSpell(cid, var) local target = getCreatureTarget(cid) if target then local lvl, maglv = getPlayerLevel(cid), getPlayerMagLevel(cid) local frompos, topos = getThingPos(cid), getThingPos(target) local minDmg = (lvl * 2 + maglv *3) * 1.2 - 30 local maxDmg = (lvl * 2 + maglv *3) * 1.6 doTargetCombatHealth(cid, target, type, min, max, effect, false) doSendDistanceShoot(frompos, topos, distanceEffect) return true end return false end Link para o comentário https://xtibia.com/forum/topic/208527-ajuda-script-de-sd/#findComment-1476322 Compartilhar em outros sites More sharing options...
0 Bragony 0 Postado Fevereiro 25, 2013 Autor Share Postado Fevereiro 25, 2013 Agora deu isso: [25/02/2013 14:26:02] [Error - Spell Interface] [25/02/2013 14:26:02] data/spells/scripts/attack/sudden death.lua:onCastSpell [25/02/2013 14:26:02] Description: [25/02/2013 14:26:02] (luaDoTargetCombatHealth) Creature not found Quando uso manualmente, sem hotkey, a sd não funciona. Quando uso com hotkey a SD vai, mas não da nenhum damage. Continua tentando por favor! Link para o comentário https://xtibia.com/forum/topic/208527-ajuda-script-de-sd/#findComment-1476358 Compartilhar em outros sites More sharing options...
0 dalvorsn 268 Postado Fevereiro 25, 2013 Share Postado Fevereiro 25, 2013 (editado) Esqueci que retornava um thing, enfim ajustado. vxyzKZEd[/pastebin] foi editado, tava com um errinho Editado Fevereiro 25, 2013 por dalvorsn Link para o comentário https://xtibia.com/forum/topic/208527-ajuda-script-de-sd/#findComment-1476365 Compartilhar em outros sites More sharing options...
0 Roksas 846 Postado Fevereiro 25, 2013 Share Postado Fevereiro 25, 2013 local attackType = COMBAT_PHYSICALDAMAGE local hitEffect = CONST_ME_MORTAREA local distanceEffect = CONST_ANI_DEATH function onCastSpell(cid, var) local target = getCreatureTarget(cid) if target then local lvl, maglv = getPlayerLevel(cid), getPlayerMagLevel(cid) local frompos, topos = getThingPos(cid), getThingPos(target) local minDmg = (lvl * 2 + maglv *3) * 1.2 - 30 local maxDmg = (lvl * 2 + maglv *3) * 1.6 doTargetCombatHealth(cid, target, type, min, max, effect, true) doSendDistanceShoot(frompos, topos, distanceEffect) return true end return false end Link para o comentário https://xtibia.com/forum/topic/208527-ajuda-script-de-sd/#findComment-1476369 Compartilhar em outros sites More sharing options...
0 Bragony 0 Postado Fevereiro 25, 2013 Autor Share Postado Fevereiro 25, 2013 Esqueci que retornava um thing, enfim ajustado. vxyzKZEd[/pastebin] foi editado, tava com um errinho Olá novamente Dalvorsn, obrigado por tentar ajudar! Deu isso agora: [25/02/2013 14:49:53] [Error - Spell Interface] [25/02/2013 14:49:53] data/spells/scripts/attack/sudden death.lua:onCastSpell [25/02/2013 14:49:53] Description: [25/02/2013 14:49:53] data/spells/scripts/attack/sudden death.lua:9: attempt to index local 'target' (a number value) [25/02/2013 14:49:53] stack traceback: [25/02/2013 14:49:53] data/spells/scripts/attack/sudden death.lua:9: in function <data/spells/scripts/attack/sudden death.lua:5> local attackType = COMBAT_PHYSICALDAMAGE local hitEffect = CONST_ME_MORTAREA local distanceEffect = CONST_ANI_DEATH function onCastSpell(cid, var) local target = getCreatureTarget(cid) if target then local lvl, maglv = getPlayerLevel(cid), getPlayerMagLevel(cid) local frompos, topos = getThingPos(cid), getThingPos(target) local minDmg = (lvl * 2 + maglv *3) * 1.2 - 30 local maxDmg = (lvl * 2 + maglv *3) * 1.6 doTargetCombatHealth(cid, target, type, min, max, effect, true) doSendDistanceShoot(frompos, topos, distanceEffect) return true end return false end Continou igual a da última vez, quando usado manualmente, com o "use with", a runa nem sai; quando a hotkey é usada a runa sai, mas não faz nenhum dano. Por favor não desista!! Link para o comentário https://xtibia.com/forum/topic/208527-ajuda-script-de-sd/#findComment-1476380 Compartilhar em outros sites More sharing options...
0 dalvorsn 268 Postado Fevereiro 25, 2013 Share Postado Fevereiro 25, 2013 Agora vai ne possível. 76F9hmND[/pastebin] Link para o comentário https://xtibia.com/forum/topic/208527-ajuda-script-de-sd/#findComment-1476405 Compartilhar em outros sites More sharing options...
0 Bragony 0 Postado Fevereiro 25, 2013 Autor Share Postado Fevereiro 25, 2013 Agora vai ne possível. 76F9hmND[/pastebin] Boaa funcionou! Mas com dois poréns. Primeiro ela ta healando, não tirando dano, imagino que seja só tirar o sinal ali, sei lá. Segundo ela não funciona sem ser com a hotkey... Pode dar mais essa maozinha? Link para o comentário https://xtibia.com/forum/topic/208527-ajuda-script-de-sd/#findComment-1476424 Compartilhar em outros sites More sharing options...
0 dalvorsn 268 Postado Fevereiro 25, 2013 Share Postado Fevereiro 25, 2013 Agora vai ne possível. 76F9hmND[/pastebin] Boaa funcionou! Mas com dois poréns. Primeiro ela ta healando, não tirando dano, imagino que seja só tirar o sinal ali, sei lá. Segundo ela não funciona sem ser com a hotkey... Pode dar mais essa maozinha? Quanto ao fato de estar healando é fácil, é só substituir isso: doTargetCombatHealth(cid, target, attackType, minDmg, maxDmg, hitEffect) Por isso: doTargetCombatHealth(cid, target, attackType, -minDmg, -maxDmg, hitEffect) Basicamente mudar o sinal, agora quanto o outro problema eu não sei cara, eu teria que pesquisar primeiro porque é estranho só a hotkey ativar a spell sendo que se não me engano ambas enviam pacotes de 'use' Link para o comentário https://xtibia.com/forum/topic/208527-ajuda-script-de-sd/#findComment-1476507 Compartilhar em outros sites More sharing options...
Pergunta
Bragony 0
Olá, boa tarde.
Gostaria de saber se é possível adaptar a fórmula antiga das SD's, como era feita, nos dias de hoje...
Segue o modelo do otserver 7.6:
E o modelo atual:
Link para o comentário
https://xtibia.com/forum/topic/208527-ajuda-script-de-sd/Compartilhar em outros sites
20 respostass a esta questão
Posts Recomendados