TH
action

[Encerrado] (Valendo 4 Reps) Boost Stone

Por TheCaos, 11 de dez. de 2013 em Tópicos Sem Resposta

resolvido
10
1.1k
TheCaosT
11 de dezembro de 2013 às 07:46

Olá! Eu gostaria muito de um system de que no qual, você chamasse seu pokemon para fora da pokebola, e quando desse use na Boost Stone, este pokemon ficasse com boost. Sem precisar ter que selecionar o pokemon. Eu utilizo o Pokemon Skyfall como base, e ele só tem o system da "Boost Machine" por enquanto.

 

Obrigado, lembrando que vale 4 reps.

OmegaO
11 de dezembro de 2013 às 15:02

Essa seção não deve ser usada para pedidos ou dúvidas, temos uma seção específica para isso.

Como você fez isso recentemente e existe um aviso logo de cara nessa seção:

5595.png

Não acho que me resta alternativa a não ser alertá-lo para que perceba o seu erro e não volte a comete-lo.

 

Leia as regras e preste mais atenção antes de postar.

Movido para pedidos e dúvidas - scripting.

zipter98Z
11 de dezembro de 2013 às 15:27

Opa, como sua dúvida é relacionada à pokémon, vou movê-la para a área mais adequada: Pedidos e dúvidas - Servidores derivados.

Quando quiser fazer pedidos relacionados à servidores derivados (Naruto, Pokémon, etc), opte por postar aqui.

 

Anyway, fiz rapidinho aqui, qualquer erro, só postar. A tag, você sabe fazer?

data/actions/scripts

function onUse(cid, item, frompos, item2, topos)
 
local cfg = {
    qnt = 1,       --Quantos boosts o pokémon irá receber.
    max = 50,      --Boost máximo do seu servidor.
}
 
local myball = getPlayerSlotItem(cid, 8).uid
local summon = getCreatureSummons(cid)
local boost = getItemAttribute(myball, "boost") or 0
 
    if myball <= 0 then
        return doPlayerSendCancel(cid, "Coloque um pokémon no Main Slot!")
    elseif #getCreatureSummons(cid) <= 0 then
        return doPlayerSendCancel(cid, "Você precisa estar usando seu pokémon para conseguir boostá-lo!")
    elseif boost >= cfg.max then
        return doPlayerSendCancel(cid, "Seu pokémon já se encontra no nível máximo de boost!")
    end
    
    doItemSetAttribute(myball, "boost", (boost + cfg.qnt))
    doSendAnimatedText(getThingPos(summon), "+1", 215)
    doPlayerSendTextMessage(cid, 27, "Seu pokémon avançou do nível [+"..tonumber(boost).."] de boost para o nível [+"..tonumber(boost + 1).."].")
    doRemoveItem(item.uid, 1)
    return true
end

Editado Dezembro 11 por zipter98

MaxxSilvaM
11 de dezembro de 2013 às 21:48

Zipter esse script de boost stone tira 1 boost certo? pq minha boost stone e apenas 1 e eu uso no poke e nao gasta

zipter98Z
11 de dezembro de 2013 às 22:11

EDIT: Arrumei uma coisa, aqui está o script corrigido:

 

function onUse(cid, item, frompos, item2, topos)
 
local cfg = {
    qnt = 1,       --Quantos boosts o pokémon irá receber.
    max = 50,      --Boost máximo do seu servidor.
}
 
local myball = getPlayerSlotItem(cid, 8).uid
local summon = getCreatureSummons(cid)[1]
local boost = getItemAttribute(myball, "boost") or 0
 
    if myball <= 0 then
        return doPlayerSendCancel(cid, "Coloque um pokémon no Main Slot!")
    elseif #getCreatureSummons(cid) <= 0 then
        return doPlayerSendCancel(cid, "Você precisa estar usando seu pokémon para conseguir boostá-lo!")
    elseif boost >= cfg.max then
        return doPlayerSendCancel(cid, "Seu pokémon já se encontra no nível máximo de boost!")
    end
    
    doItemSetAttribute(myball, "boost", (boost + cfg.qnt))
    doSendAnimatedText(getThingPos(summon), "+1 BOOST", 215)
    doPlayerSendTextMessage(cid, 27, "Seu pokémon avançou do nível [+"..tonumber(boost).."] de boost para o nível [+"..tonumber(boost + 1).."].")
    doRemoveItem(item.uid, 1)
    return true
end

Editado Dezembro 11 por zipter98

TheCaosT
12 de dezembro de 2013 às 08:22

Olá, muito obrigado! Mas tipo, não poderia haver uma chance de quem com tantos boosts talvez falhasse? (já te dei dois reps, pra receber outros 2 pf faz isso ok?)

zipter98Z
12 de dezembro de 2013 às 20:43

#EDIT: Aqui está, qualquer erro, só postar.

 

function onUse(cid, item, frompos, item2, topos)
 
local cfg = {
    qnt = 1,       --Quantos boosts o pokémon irá receber.
    max = 50,      --Boost máximo do seu servidor.
    chance = 20,   --Chance de falhar, em %
    boost_fail = 5,  --A partir de quantos boosts poderá falhar.
}
 
local myball = getPlayerSlotItem(cid, 8).uid
local summon = getCreatureSummons(cid)[1]
local boost = getItemAttribute(myball, "boost") or 0
 
    if myball <= 0 then
        return doPlayerSendCancel(cid, "Coloque um pokémon no Main Slot!")
    elseif #getCreatureSummons(cid) <= 0 then
        return doPlayerSendCancel(cid, "Você precisa estar usando seu pokémon para conseguir boostá-lo!")
    elseif boost >= cfg.max then
        return doPlayerSendCancel(cid, "Seu pokémon já se encontra no nível máximo de boost!")
    end
    
    if boost >= cfg.boost_fail then
        if math.random(1, 100) <= cfg.chance then
            doItemSetAttribute(myball, "boost", (boost + cfg.qnt))
            doSendAnimatedText(getThingPos(summon), "+1 BOOST", 215)
            doPlayerSendTextMessage(cid, 27, "Seu pokémon avançou do nível [+"..tonumber(boost).."] de boost para o nível [+"..tonumber(boost + 1).."].")
            doRemoveItem(item.uid, 1)
        else
            doSendAnimatedText(getThingPos(summon), "Fail!", 215)
            doPlayerSendTextMessage(cid, 27, "Sua boost stone falhou!")
            doRemoveItem(item.uid, 1)
        end
    else
        doItemSetAttribute(myball, "boost", (boost + cfg.qnt))
        doSendAnimatedText(getThingPos(summon), "+1 BOOST", 215)
        doPlayerSendTextMessage(cid, 27, "Seu pokémon avançou do nível [+"..tonumber(boost).."] de boost para o nível [+"..tonumber(boost + 1).."].")
        doRemoveItem(item.uid, 1)
    end
    return true
end

Editado Dezembro 12 por zipter98

3 semanas depois...
GabrieltxuG
27 de dezembro de 2013 às 23:51

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

2 meses depois...
GeraldoidaG
08 de fevereiro de 2014 às 13:29

Simplesmente genial Zipter :D

4 anos depois...
StigalS
21 de abril de 2018 às 03:23
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.