EL
pedido

Adicionar limite no sistema de Apricorn

Por Elias Palermo, 18 de mai. de 2015 em Scripts

resolvido
6
2.9k
18 de maio de 2015 às 15:39

Boa tarde.

 

Eu estou com este sistema de apricorn aqui que da 10 pontos para cada status do Pokémon, porém pode usar quantas vezes quiser, com isso teria pokémons com status monstruosos no game...

 

Eu queria por um limite de uso, sendo de 30 apricorns, assim o player poderia distribuir 300 pontos de status em oque ele achar melhor para si.

 

Aqui está o sistema.

 

 

function onUse(cid, item, frompos, item2, topos)
local summon = getCreatureSummons(cid)[1]
tabela_status = {
[27054] = {name="offense", value = 10},
[27053] = {name="defense", value = 10},
[27052] = {name="speed", value = 10},
[27050] = {name="vitality", value = 10},
[27051] = {name="specialattack", value = 10},
}

if #getCreatureSummons(cid) < 1 then
doPlayerSendTextMessage((cid), 27, "[Apricorn] Solte-o Seu Pokemon Para Dar o Apricorn!.")
return false
end
local pb = getPlayerSlotItem(cid, 8)
local pokename = getItemAttribute(pb.uid, "poke")
doRemoveItem(item.uid, 1)
local status = tabela_status[item.itemid]
local pbstat= getItemAttribute(pb.uid, status.name)
local st = pbstat + tabela_status[item.itemid].value
doItemSetAttribute(pb.uid, status.name , st)
doSendFlareEffect(getThingPos(summon))
doSendAnimatedText(getThingPos(summon), "Apricorn!", 215)
doPlayerSendTextMessage((cid), 27, "[Apricorn] Seu Pokemon "..pokename.." Ganhou "..status.value.." "..status.name.." points!")
doSendFlareEffect(getThingPos(cid))
return true
end

 

notle2012N
18 de maio de 2015 às 16:17

testa assim

--config by uotl£
local chave = 8978501 -- não mexe
local limite = 3 -- coloca quantas vezes pode usar
local msg  = "você já usou" -- edita msg que player vai receber
--config by uotl£

function onUse(cid, item, frompos, item2, topos)
    local summon = getCreatureSummons(cid)[1]
    tabela_status = {
        [27054] = {name="offense", value = 10},
        [27053] = {name="defense", value = 10},
        [27052] = {name="speed", value = 10},
        [27050] = {name="vitality", value = 10},
        [27051] = {name="specialattack", value = 10},
    }
    if  getPlayerStorageValue(cid,chave) <= limite-2  then
        if #getCreatureSummons(cid) < 1 then
            doPlayerSendTextMessage((cid), 27, "[Apricorn] Solte-o Seu Pokemon Para Dar o Apricorn!.")
            return false
        end
        local pb = getPlayerSlotItem(cid, 8)
        local pokename = getItemAttribute(pb.uid, "poke")
        doRemoveItem(item.uid, 1)
        local status = tabela_status[item.itemid]
        local pbstat= getItemAttribute(pb.uid, status.name)
        local st = pbstat + tabela_status[item.itemid].value
        doItemSetAttribute(pb.uid, status.name , st)
        doSendFlareEffect(getThingPos(summon))
        doSendAnimatedText(getThingPos(summon), "Apricorn!", 215)
        doPlayerSendTextMessage((cid), 27, "[Apricorn] Seu Pokemon "..pokename.." Ganhou "..status.value.." "..status.name.." points!")
        doSendFlareEffect(getThingPos(cid))
        setPlayerStorageValue(cid,chave,getPlayerStorageValue(cid,chave)+1)
    else
        doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE,msg)
        return true
    end
    return true
end

Editado Maio 18 por notle2012

21 de maio de 2015 às 12:06

Está contando em todos os pokémons que eu tenho huh.png

 

Exemplo:

Se eu tenho um Bulbasaur e um Pidgey e eu usar no Bulbasaur, vai contar no Pidgey também


Up

zipter98Z
21 de maio de 2015 às 14:49
Melhor resposta

 

local config = {
    attr = "apricorn",
    limit = 30,             --Limite de apricorns por pokémon.
    returnMessage = "You already used %d apricorns in this pokemon.",
}
function onUse(cid, item, frompos, item2, topos)
    local summon = getCreatureSummons(cid)[1]
    local tabela_status = {
        [27054] = {name="offense", value = 10},
        [27053] = {name="defense", value = 10},
        [27052] = {name="speed", value = 10},
        [27050] = {name="vitality", value = 10},
        [27051] = {name="specialattack", value = 10},
    }
    if #getCreatureSummons(cid) < 1 then
        doPlayerSendTextMessage((cid), 27, "[Apricorn] Solte-o Seu Pokemon Para Dar o Apricorn!.")
        return false
    else
        local pb = getPlayerSlotItem(cid, 8)
        local attr = getItemAttribute(pb.uid, config.attr) or 0
        if attr < config.limit then
            local pokename = getItemAttribute(pb.uid, "poke")
            doRemoveItem(item.uid, 1)
            local status = tabela_status[item.itemid]
            local pbstat= getItemAttribute(pb.uid, status.name)
            local st = pbstat + tabela_status[item.itemid].value
            doItemSetAttribute(pb.uid, status.name , st)
            doSendFlareEffect(getThingPos(summon))
            doSendAnimatedText(getThingPos(summon), "Apricorn!", 215)
            doPlayerSendTextMessage((cid), 27, "[Apricorn] Seu Pokemon "..pokename.." Ganhou "..status.value.." "..status.name.." points!")
            doSendFlareEffect(getThingPos(cid))
            doItemSetAttribute(pb.uid, config.attr, attr + 1)
        else
            doPlayerSendCancel(cid, config.returnMessage:format(config.limit))
        end
    end
    return true
end
21 de maio de 2015 às 18:29

Perfeito Zipter !!!

Muito obrigado, Rep+

FurabioF
21 de maio de 2015 às 18:34

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