Ir para conteúdo

Tottin

Membro
  • Registro em

  • Última visita

Solutions

  1. Tottin's post in (Resolvido)Setar storage para todos em uma determinada área was marked as the answer   
    Resolvendo seu problema onde ao matar o monstro só quem fragava recebia o storage:
     
    local tps = {
                            ["hyaena"] = {pos = {x=349, y=1103, z=15}, toPos = {x = 518, y = 840, z = 7}, time = 10, storage = 46000},
    }
    local storage = 46000
    local function removeTp(tp)
    local t = getTileItemById(tp.pos, 5023).uid
    return t > 0 and doRemoveItem(t) and doSendMagicEffect(tp.pos, CONST_ME_POFF)
    end

    function onDeath(cid, corpse, deathList, frompos, topos)
            local tp = tps[getCreatureName(cid)]
            if tp then
                    doCreateTeleport(5023, tp.toPos, tp.pos)
                    doCreatureSay(cid, "O teleport irá sumir em "..tp.time.." segundos.", TALKTYPE_ORANGE_1)
                    addEvent(removeTp, tp.time*1000, tp)
            for _, check in pairs(deathList) do
                    if isPlayer(check) then
                            setPlayerStorageValue(check, tp.storage, 5)
                    end
            end  
            end
    return true
    end 

    registra no creaturescripts:
    <event type="death" name="Storage" event="script" value="seuarquivo.lua"/>

    registra no arquivo.xml do boss:
    <script>
    <event name="Storage"/>
    </script>
  2. Tottin's post in (Resolvido)Spell de dano baseado no shield was marked as the answer   
    Isso tudo vai variar da forma com que você quer fazer seu script, sua dúvida principal era sobre como trabalhar em cima da defesa do shield. E isso como mencionei acima pode ser feito da seguinte forma, utilizando a função:
    getItemAttribute(uid,'defense')
     
    Pra checar se o item é 1 shield, você pode utilizar uma função que o mock disponibilizou já faz um bom tempo:
    local function isShield(uid) -- Function by Mock the bear.
    uid = uid or 0
    if getItemWeaponType(uid) == 5 then
        return true
    end
    return false
    end
     
    Com isso você vai ter todas informações necessárias pra fazer seu script trabalhar em cima da defesa do shield que estiver equipado, e claro vai poder checar se o item que você está "pegando" a defesa, é de fato um shield ou não.
     

Informação Importante

Confirmação de Termo