info
Grupo: Lorde
Registrado: 22/07/12
Posts: 2.2k
Reputação: +453
Char no Tibia: Kissy

info
Grupo: Conde
Registrado: 04/08/12
Posts: 762
Reputação: +80

@Skyligh
Não funcionou, e eu gostaria de uma mais complexa, como citei la em cima, uma spell que tenha fase ou seja os efeitos não acontecem todos na mesma hora e cada vez que o efeito ficar "em cima" do player ele anda uma casa pra traz.
Gostaria também que tira-se life e aparecesse o efeito.
info
Grupo: Barão
Registrado: 26/12/11
Posts: 201
Reputação: +18
Char no Tibia: Flaah

Tenta esse:
local combat = createCombatObject() setCombatParam(combat, COMBAT_PARAM_TYPE, COMBAT_PHYSICALDAMAGE) setCombatFormula(combat, COMBAT_FORMULA_LEVELMAGIC, -1.3, -2500, -1.7, -0) function onCastSpell(cid, var) local max_sqm = 3 -- maximo de sqm que vai empurrar o player local pos = getPosByDir(getCreaturePosition(cid), getCreatureLookDirection(cid), 1) pos.stackpos = 253 if (isPlayer(getThingFromPos(pos).uid)) then doTeleportThing(getThingFromPos(pos).uid, getClosestFreeTile(getThingFromPos(pos).uid, (getPosByDir(getCreaturePosition(cid), getCreatureLookDirection(cid), max_sqm)))) doSendMagicEffect(pos,10) end return FALSE end
AJUDEI?! +REP
info
Grupo: Conde
Registrado: 04/08/12
Posts: 762
Reputação: +80

Manda a tag talvez tenha botado errado.
Lembrando que quero o seguinte:
eu gostaria de uma mais complexa, como citei la em cima, uma spell que tenha fase ou seja os efeitos não acontecem todos na mesma hora e cada vez que o efeito ficar "em cima" do player ele anda uma casa pra traz.
Gostaria também que tira-se life e aparecesse o efeito.
info
Grupo: Barão
Registrado: 26/12/11
Posts: 201
Reputação: +18
Char no Tibia: Flaah

Tipo eu fiz esse:
local combat = createCombatObject()setCombatParam(combat, COMBAT_PARAM_TYPE, COMBAT_DEATHDAMAGE)
setCombatParam(combat, COMBAT_PARAM_EFFECT, 71)
setAttackFormula(combat, COMBAT_FORMULA_LEVELMAGIC, 5, 5, 4, 7)
function onCastSpell(cid, var)
local max_sqm = 3 -- maximo de sqm que vai empurrar o player
local pos = getPosByDir(getCreaturePosition(cid), getCreatureLookDirection(cid), 1)
pos.stackpos = 253
if (isPlayer(getThingFromPos(pos).uid)) then
doTeleportThing(getThingFromPos(pos).uid, getClosestFreeTile(getThingFromPos(pos).uid, (getPosByDir(getCreaturePosition(cid), getCreatureLookDirection(cid), max_sqm))))
end
return doCombat(cid, combat, var)
end
Tang:
<instant name="invocate" words="invocate" lvl="1" mana="20" prem="0" range="5" needtarget="1" exhaustion="1" blockwalls="1" needlearn="0" script="magia.lua">
O de empurra a cada vez que o inimigo resebe o dano ainda n fiz, vou tenta fazer aqui.
info
Grupo: Conde
Registrado: 04/08/12
Posts: 762
Reputação: +80

Não está empurrando e quero de fase.
Obrigado pela atenção.
info
Grupo: Barão
Registrado: 26/12/11
Posts: 201
Reputação: +18
Char no Tibia: Flaah

OK' vou montar aqui.
---------- @EDIT ----------
Po cara so consegui esse mesmo, tipo ele empura mais só se estiver perto...
Desculpe não pode te ajudar. ![]()
Boa Tarde.
Editado Agosto 17 por Flaah
info
Grupo: Conde
Registrado: 04/08/12
Posts: 762
Reputação: +80

Eu espero, vou estar AFK.
Mais tarde testo.
Teste esse:
local slowCondition = createConditionObject(CONDITION_PARALYZE, 5000, 1, 1906) setConditionFormula(slowCondition, -0.62, 0, -0.62, 0) local searchDistance = 4 -- distância até onde o efeito procura um inimigo local pushDistance = 3 -- quantos sqms o inimigo será puxado local distanceEffect = 10 -- o efeito que será lançado local damageType = COMBAT_DEATHDAMAGE -- o tipo de combate do dano local damageEffect = 71 -- o efeito que aparecerá no inimigo quando ele perde vida local damageDelay = 950 -- o tempo em ms a cada vez que puxará o inimigo local function doDamageAndPushTarget(cid, target, dir, pushes) if not isCreature(target) or not isCreature(cid) then return false end if pushes <= 0 then doRemoveCondition(target, CONDITION_PARALYZE, 1906) return true elseif pushes == pushDistance then doAddCondition(target, slowCondition) end local level, magiclevel, lookdir = getPlayerLevel(cid), getPlayerMagLevel(cid), getCreatureLookDir(target) local min = level * 2 + magiclevel * 5 local max = min * math.random(110, 130)/100 doTargetCombatHealth(cid, target, damageType, -min, -max, damageEffect) local newPos = getPosByDir(getThingPos(target), dir) if doTileQueryAdd(target, newPos) == 1 then doTeleportThing(target, newPos, true) doCreatureSetLookDir(target, lookdir) end addEvent(doDamageAndPushTarget, damageDelay, cid, target, dir, pushes - 1) end function onCastSpell(cid, var) local target = 0 local dir = getCreatureLookDir(cid) local pos = getThingPos(cid) for s = 1, searchDistance do pos = getPosByDir(pos, dir) pos.stackpos = 253 if isCreature(getThingFromPos(pos).uid) then target = getThingFromPos(pos).uid break end end doSendDistanceShoot(getThingPos(cid), pos, distanceEffect) if target ~= 0 then addEvent(doDamageAndPushTarget, 1000, cid, target, dir, pushDistance) end return true end
Editado Agosto 17 por brun123
info
Grupo: Conde
Registrado: 04/08/12
Posts: 762
Reputação: +80

Vlws, REP+
Pedido atendido por: brun123



info
Grupo: Conde
Registrado: 04/08/12
Posts: 762
Reputação: +80
Gostaria de uma spell com efeitos de fase, onde apos utiliza-la conforme o efeito agarre no player e o damage ele vá andando para atras, ate o final da magia.
Ex:
CASTER
-----1---- Magia usada na frente do caster
-----1 PLAYER ----Player se movendo para traz, de acordo com a magia que vem caminhado para sua direção.
-----1 PLAYER ----Player se movendo para traz, de acordo com a magia que vem caminhado para sua direção.
-----1 PLAYER ----Player se movendo para traz, de acordo com a magia que vem caminhado para sua direção.
-----1 PLAYER ----Player se movendo para traz, de acordo com a magia que vem caminhado para sua direção.
-----1 PLAYER ----Player se movendo para traz, de acordo com a magia que vem caminhado para sua direção.
Obs: A magia deve pegar no player, por exemplo:
-Se a magia (o efeito) passar a direita do player ele não se move.
-Se a magia (o efeito) passar em cima do player ele se move.