Ir para conteúdo
Banner com Efeitos

Featured Replies

Postado
  • Autor
1 hora atrás, Tottin disse:

Se você quer trabalhar somente com o player que pegou o loot você pode utilizar a função da seguinte forma:
function onDeath(cid, corpse, lastHitKiller, mostDamageKiller)
local killer = lastHitKiller[1] --- a atribuição em uma variável do player que pegou o frag é totalmente opcional.

Dai caso queira realizar alguma ação em cima desse player pode fazer da seguinte forma:
if isPlayer(killer) then --- Não lembro ao certo se tem monstros entram na lista (lastHitKiller) então só por precaução eu recomendaria fazer uma checagem se quem fragou é 1 player.
doPlayerAddItem(killer, 13981, 1)
end

O problema é exatamente esse. O auto loot nao avalia todos os jogadores que participaram no combate para x criatura.
Ele determina que o loot é de quem deu o ultimo hit e acabou.

Se EU der 99% do dano em um dl e alguem der hit kill e dropar dsm: EU fico como dono do corpo, mas o a dsm é retirada automaticamente pelo sistema e concedida ao jogador do "ks".

Por isso preciso de uma função que determine se sou ou nao o dono do corpo ou se sou ou nao quem deu mais dano para dai proceder com todo o resto.

  • Respostas 14
  • Visualizações 1.2k
  • Created
  • Última resposta

Top Posters In This Topic

Most Popular Posts

  • Se você quer trabalhar somente com o player que pegou o loot você pode utilizar a função da seguinte forma: function onDeath(cid, corpse, lastHitKiller, mostDamageKiller) local killer = lastHitKil

  • A resposta é não, pelo menos não uma função Lua.   Tenta buscar pelo atributo "corpseowner" com a função getItemAttribute, pode ser que funcione.   Eu não me recordo da existên

  • A solução foi MUITO mais simples do que eu pensei, agradeço a ajuda de todos vocês, vocês são fod@!! Segue enredo: A função onDeath tem duas matrizes: lastHitKiller e mostDamageKiller. Quando

Postado

Meu querido, eu acabei de te mandar exatamente isso, ele vai enviar o loot pra quem fragou o monstro. Se o jogo te reconheceu como "dono do loot" então o loot vai ser enviado pra você, Vou ser gente boa e vou montar a função pra tu. Isso possivelmente vai resolver o seu problema, se não funcionar, então seu servidor reconhece o "dono do loot" de outra forma. Seria interessante descobrir qual.

function onDeath(cid, corpse, lastHitKiller, mostDamageKiller)

local killer = lastHitKiller[1]
pos = getCreaturePosition(cid)
addEvent(loot,1,killer,pos)
return true
end

Postado
  • Autor
4 minutos atrás, Tottin disse:

Meu querido, eu acabei de te mandar exatamente isso, ele vai enviar o loot pra quem fragou o monstro. Se o jogo te reconheceu como "dono do loot" então o loot vai ser enviado pra você, Vou ser gente boa e vou montar a função pra tu. Isso possivelmente vai resolver o seu problema, se não funcionar, então seu servidor reconhece o "dono do loot" de outra forma. Seria interessante descobrir qual.

function onDeath(cid, corpse, lastHitKiller, mostDamageKiller)

local killer = lastHitKiller[1]
pos = getCreaturePosition(cid)
addEvent(loot,1,killer,pos)
return true
end

O corpseOwner para criaturas é sempre quem deu mais dano em tal, nao quem deu o hit final.
Acho que esta confundindo com o frag player system.
 

Postado
7 horas atrás, Guizek69 disse:

existe alguma função no TFS 0.4 que verifica o dono do corpo morto para eu implantar uma regra nessa função?

A resposta é não, pelo menos não uma função Lua.

 

4 horas atrás, Guizek69 disse:

Encontrei uma função lua para TFS 1.2 feita pelo @luanluciano93:
 

Citar


local corpse = Tile(target:getPosition()):getTopDownItem()
    if not corpse or not corpse:isContainer() then
        return false
    end

    if corpse:getType():isCorpse() and corpse:getAttribute(ITEM_ATTRIBUTE_CORPSEOWNER) == player:getId() then
		return true
    end

Vou tentar converter para TFS 0.4.
Se alguem puder ajudar, eu agradeço.

Tenta buscar pelo atributo "corpseowner" com a função getItemAttribute, pode ser que funcione.

 

2 horas atrás, Tottin disse:

function onDeath(cid, corpse, lastHitKiller, mostDamageKiller)

Eu não me recordo da existência dos parâmetros lastHitKiller e mostDamageKiller, pelo menos não no TFS 0.4. Mas se o callback realmente retornar estes valores, a solução pro problema ta ai, só utilizar o mostDamageKiller que vai retornar quem deu mais dano.

 

Edit: me lembrei que um conhecido estava passando por este mesmo problema a algum tempo atrás, eu cheguei a postar a solução que ele encontrou em outro tópico, pode dar uma olhada.

 

 

Editado por WooX (veja o histórico de edições)

 

 

 

Nós somos aquilo que fazemos repetidamente. Excelência, não é um modo de agir, mas um hábito.

                                                                                                                                                                                                                                        Aristóteles 

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.

Visitante
Responder

Quem Está Navegando 0

  • Nenhum usuário registrado visualizando esta página.

Conteúdo Similar

Estatísticas dos Fóruns

  • Tópicos 96.9k
  • Posts 519.7k

Informação Importante

Confirmação de Termo