Jump to content
Close
lazarus321

Scripting Posição Diagonal da Criatura

Recommended Posts

Esse script abaixo "solta" uma spell em diagonal, mas não estão funcionado adequadamente. Alguém consegue verificar pq? TFS1.2

 

function Creature.IsInCornerToCreature(self, creature)
    local i = 0
    local spos = self:getPosition()
    local cpos = creature:getPosition()
    local relativepos = {
        Position(-1, -1, 0),
        Position(1, -1, 0),
        Position(-1, 1, 0),
        Position(1, 1, 0)
    }
 
    for _, rpos in pairs(relativepos) do
        
        local pos = spos+rpos
        
        if pos == cpos then
           return 4 - i
        end
         i = i + 1
    end
 
    return 4 - i
    
end 

    -- [DIRECTION_NORTH] = {x = 0, y = -1},
    -- [DIRECTION_EAST] = {x = 1, y = 0},
    -- [DIRECTION_SOUTH] = {x = 0, y = 1},
    -- [DIRECTION_WEST] = {x = -1, y = 0},
    -- [DIRECTION_SOUTHWEST] = {x = -1, y = 1},
    -- [DIRECTION_SOUTHEAST] = {x = 1, y = 1},
    -- [DIRECTION_NORTHWEST] = {x = -1, y = -1},
    -- [DIRECTION_NORTHEAST] = {x = 1, y = -1}

function Creature.IsInCornerToCreature(self, creature)
    local i = 0
    local spos = self:getPosition()
    local cpos = creature:getPosition()
    local relativepos = {
        Position(-1, -1, 0),
        Position(1, -1, 0),
        Position(-1, 1, 0),
        Position(1, 1, 0)
    }
    
    for _, rpos in pairs(relativepos) do
        
        local pos2 = spos+rpos
        
        if pos2 == cpos then
           return 4 - i
        end
         i = i + 1
    end
 
    return 4 - i
    
end 

local combat1 = Combat()
combat1:setParameter(COMBAT_PARAM_TYPE, COMBAT_PHYSICALDAMAGE)
combat1:setParameter(COMBAT_PARAM_EFFECT, CONST_ME_DRAWBLOOD)
combat1:setParameter(COMBAT_PARAM_BLOCKARMOR, true)
combat1:setParameter(COMBAT_PARAM_BLOCKSHIELD, true)
combat1:setFormula(COMBAT_FORMULA_SKILL, 1, 0, 1, 0)

local combat2 = Combat()
combat2:setParameter(COMBAT_PARAM_TYPE, COMBAT_PHYSICALDAMAGE)
combat2:setParameter(COMBAT_PARAM_EFFECT, CONST_ME_DRAWBLOOD)
combat2:setParameter(COMBAT_PARAM_BLOCKARMOR, true)
combat2:setParameter(COMBAT_PARAM_BLOCKSHIELD, true)
combat2:setFormula(COMBAT_FORMULA_SKILL, 1, 0, 1, 0)

local combat3 = Combat()
combat3:setParameter(COMBAT_PARAM_TYPE, COMBAT_PHYSICALDAMAGE)
combat3:setParameter(COMBAT_PARAM_EFFECT, CONST_ME_DRAWBLOOD)
combat3:setParameter(COMBAT_PARAM_BLOCKARMOR, true)
combat3:setParameter(COMBAT_PARAM_BLOCKSHIELD, true)
combat3:setFormula(COMBAT_FORMULA_SKILL, 1, 0, 1, 0)

local area = createCombatArea( { 
{1, 0, 1,},
{0, 1, 0,}, 
{0, 1, 0,},  
{0, 3, 0,},
{0, 0, 0,} } )

local area1 = createCombatArea( {
{0,0,1,0},
{0,0,1,1},
{0,1,0,0},
{3,0,0,0} })

local area2 = createCombatArea( {
{0,1,0,0},
{1,1,0,0},
{0,0,1,0},
{0,0,0,3} })

combat1:setArea(area)
combat2:setArea(area1)
combat3:setArea(area2)

function onUseWeapon(player, variant)
    
    local target = player:getTarget()
    local result = Creature.IsInCornerToCreature(player,target)
    if result == 0 then
        combat1:execute(player, variant)
    elseif pos == 1 or 4 then
        combat3:execute(player,variant)
    elseif pos2 == 2 or 3 then
        combat2:execute(player,variant)
    end
    return true
end


Edited by lazarus321 (see edit history)

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.


Open Tibia Server

Quer aprender a criar seu próprio servidor de Tibia? Então está no lugar certo, aqui você encontrará milhares de tutorias, scripts, códigos, mapas e utilitários para que você possa fazer o seu próprio servidor de Tibia partindo do zero.

Redes Sociais

Anuncie no Tibia King

Precisa de mais visibilidade em seus projetos? Quer publicidade para o seu servidor? Anuncie no Tibia King e faça sua divulgação, possuímos centenas de acessos simultâneos e milhares diários, com certeza será a sua solução! A publicação do seu anuncio é instantânea!

×
×
  • Create New...