HE
poketibia

[Encerrado] [PEDIDO] Ao matar tal monstro recebe item na bag!

Por HenrikDiamond, 30 de mar. de 2014 em Tópicos Sem Resposta

ajuda
porfavor
resolvido
tibia
script
otserv
25
7.6k
HenrikDiamondH
31 de março de 2014 às 16:05
local pokes = {"Shiny Rattata", "Shiny Alakazam"}
function onKill(cid, target, damage, flags)
if isInArray(pokes, getCreatureName(target)) then 
    doPlayerAddItem(cid, 11454, 1)
    doPlayerSendTextMessage(cid, 27, Você acabou de ganhar uma Shiny Stone)
end
end
Troca o teu script por este ai.

 

Cara, ta acontecendo a mesma coisa. O pokemon nao termina de morrer, e ao matar qualquer pokemon vai ganhando shiny stone, e elas nunca acabam!!

zipter98Z
31 de março de 2014 às 19:51

Em data/creaturescripts/scripts, procure por um arquivo chamado exp2.0.lua. Caso este não exista, procure pelo exp.lua.

Abra o arquivo, e substitua:

   if valor >= getCreatureHealth(cid) then
        if isInArray(cannotKill, combat) and isPlayer(cid) then
            valor = getCreatureHealth(cid) - 1
        else
            valor = getCreatureHealth(cid)
        end
    end
    valor = math.floor(valor)  
Por:
   if valor >= getCreatureHealth(cid) then
        if isInArray(cannotKill, combat) and isPlayer(cid) then
            valor = getCreatureHealth(cid) - 1
        else
            local str = "shiny"
            local itemid = x   --ID da Shiny Stone.
            if getCreatureName(cid):lower():find(str) and isSummon(attacker) and not isSummon(cid) then
                local owner = getCreatureMaster(attacker)
                if owner then
                    doPlayerAddItem(owner, itemid, 1)
                    doPlayerSendTextMessage(owner, MESSAGE_STATUS_CONSOLE_ORANGE, "You received a Shiny Stone!")
                end
            end
            valor = getCreatureHealth(cid)
        end
    end
    valor = math.floor(valor)    

Editado Março 31 por zipter98

HenrikDiamondH
02 de abril de 2014 às 13:09

Perfeito zipter, Funcionou certinho. Mas uma duvida. Tem como colocar Exceções? Pq queria somente os pokemon shinys fortes para isso

Se puder ajudar vlws

Editado Abril 2 por HenrikDiamond

zipter98Z
02 de abril de 2014 às 19:41

Você prefere que as exceções sejam definidas por nome ou por level?

TechrlzT
03 de abril de 2014 às 11:50

Faça uma array com os nome dos shinys que deseja.

HenrikDiamondH
03 de abril de 2014 às 13:32

por nome mesmo.

zipter98Z
03 de abril de 2014 às 17:32

 

if valor >= getCreatureHealth(cid) then
        if isInArray(cannotKill, combat) and isPlayer(cid) then
            valor = getCreatureHealth(cid) - 1
        else
            local names = {"Shiny Charizard", "Shiny Blastoise", "Shiny Venusaur"}   --Coloque aqui o nome dos shinies que deseja que "dropem" a Shiny Stone.
            local itemid = x   --ID da Shiny Stone.
            if isInArray(names, getCreatureName(cid)) and isSummon(attacker) and not isSummon(cid) then
                local owner = getCreatureMaster(attacker)
                if owner then
                    doPlayerAddItem(owner, itemid, 1)
                    doPlayerSendTextMessage(owner, MESSAGE_STATUS_CONSOLE_ORANGE, "You received a Shiny Stone!")
                end
            end
            valor = getCreatureHealth(cid)
        end
    end
    valor = math.floor(valor)    
HenrikDiamondH
03 de abril de 2014 às 17:43

Valeu mesmo!! Certinho cara. Mais uma vez me ajudou vlw cara.

Amanha te dou +reps

zipter98Z
03 de abril de 2014 às 19:24

Tópico movido para a seção de dúvidas e pedidos resolvidos.

4 anos depois...
StigalS
21 de abril de 2018 às 03:26
A questão neste tópico de suporte foi encerrada por falta de respostas. Este tópico está fechado e foi movido para Suporte - Tópicos Sem Resposta.

+ Caso a dúvida não tenha sido resolvida você poderá criar outro tópico solicitando ajuda.
* Lembre-se que é permitido dar UP no tópico a cada 24 horas para assim o destacar e manter movimentado.