Ir para conteúdo
  • 0

(resolvido) points premium in game


Pergunta

7 respostass a esta questão

Posts Recomendados

  • 0

Supondo que, de fato, todas as funções tenham sido copiadas exatamente iguais (o código de box que você postou está incompleto, então me baseei no do PDA):

local pokemon = {    ["nome_do_pokémon"] = {price = xxx, boost = xxx},    --etc}function doCorrectString(str)                       --Slicer    local name = str:explode(" ")    local final = {}        for _, s in ipairs(name) do        table.insert(final, s:sub(1, 1):upper()..s:sub(2, #s):lower())    end    return table.concat(final, (name[2] and " " or ""))endfunction onSay(cid, words, param)    local p = param:lower()        if p == "list" then        local str = "******** You can buy: ********"                for p_name, info in pairs(pokemon) do            str = str.."\n-"..p_name.." [+"..info.boost.."] for "..info.price.." premium point(s)."        end                doPlayerPopupFYI(cid, str)    elseif pokemon[doCorrectString(p)] then        local poke = pokemon[doCorrectString(p)]                if getAccountPoints(cid) < poke.price then            doPlayerSendCancel(cid, "Sorry, you do not have enough points. ["..poke.price.." premium points]")            return true        end                doPlayerSendTextMessage(cid, 27, "You successfully bought a "..doCorrectString(p).." [+"..poke.boost.."] for "..poke.price.." premium point(s).")        doAccountRemovePoints(cid, poke.price)        addPokeToPlayer(cid, doCorrectString(p), poke.boost, nil, "normal")    else        doPlayerSendCancel(cid, "Invalid parameter. Type 'list' to see a list of pokemon you can buy, or type the name of the wished pokemon.")    end    return trueend

Algumas observações:

Optei por deixar o código mais configurável. Você pode escolher os pokémon que podem ser comprados, junto com boost e preço específico. Essas informações são mostradas num parâmetro que incluí (/comando list).

Logo, as opções de fala são:

/comando nome_do_pokémon     --Para comprar um pokémon./comando list                --Para mostrar uma lista com os pokémon compráveis.

 

Também, devo informar que os premium points não são compartilhados por outros personagens da conta. Para que isso aconteça, recomendaria instalar a função setAccountStorageValue, encontrada por aí na internet (acho que aqui no XTibia tem).

Editado por zipter98
Link para o comentário
https://xtibia.com/forum/topic/242906-resolvido-points-premium-in-game/#findComment-1708366
Compartilhar em outros sites

  • 0

Hm, e se adaptasse esse sistema para o uso de storages? Não vejo diferença prática, para falar a verdade (e database não é minha praia).

 

Qualquer coisa, basta substituir a lib por:

PREMIUM_POINT_KEY = 47371function getAccountPoints(cid)    if not isPlayer(cid) then return true end        local points = getPlayerStorageValue(cid, PREMIUM_POINT_KEY)        return points < 0 and 0 or pointsendfunction doAccountAddPoints(cid, count)    if not isPlayer(cid) then return true end        return setPlayerStorageValue(cid, PREMIUM_POINT_KEY, getAccountPoints(cid) + count)endfunction doAccountRemovePoints(cid, count)    if not isPlayer(cid) or getAccountPoints(cid) == 0 then return true end        return setPlayerStorageValue(cid, PREMIUM_POINT_KEY, getAccountPoints(cid) - count)end

Os outros códigos permanecem os mesmos.

Editado por zipter98
Link para o comentário
https://xtibia.com/forum/topic/242906-resolvido-points-premium-in-game/#findComment-1708327
Compartilhar em outros sites

  • 0
  Em 04/12/2016 em 02:23, zipter98 disse:

Hm, e se adaptasse esse sistema para o uso de storages? Não vejo diferença prática, para falar a verdade (e database não é minha praia).

 

Qualquer coisa, basta substituir a lib por:

PREMIUM_POINT_KEY = 47371function getAccountPoints(cid)    if not isPlayer(cid) then return true end        local points = getPlayerStorageValue(cid, PREMIUM_POINT_KEY)        return points < 0 and 0 or pointsendfunction doAccountAddPoints(cid, count)    if not isPlayer(cid) then return true end        return setPlayerStorageValue(cid, PREMIUM_POINT_KEY, getAccountPoints(cid) + count)endfunction doAccountRemovePoints(cid, count)    if not isPlayer(cid) or getAccountPoints(cid) == 0 then return true end        return setPlayerStorageValue(cid, PREMIUM_POINT_KEY, getAccountPoints(cid) - count)end

Os outros códigos permanecem os mesmos.

Expand  

muito bom,é o que eu queria isso mesmo,obrigado e aproveitando o topico teria como criar um script que o player digita !buycharizard,e remove x points e o player ganha 1x charizard direto na pokeball? e caso tiver 6 pokes na bag o pokemon comprado ir para depot,e também se puder botar para o pokemon vir bostado no maximo,no meu servidor o bost maximo é +100,ai quando player comprasse o charizard ele ja viria +100,obrigado.

 

estou usando esse script para comprar x points por y item,porém queria x points por y pokémon

 

  Mostrar conteúdo oculto

 

Editado por kaleudd
Link para o comentário
https://xtibia.com/forum/topic/242906-resolvido-points-premium-in-game/#findComment-1708335
Compartilhar em outros sites

  • 0

Poderia me informar se existe alguma função que adiciona o pokémon para o jogador, como no PDA? Porque, caso não haja, gostaria de pedir que você postasse o código de uma daquelas box que dão um pokémon aleatório. Como nunca mexi nesse PDA open source, não conheço seus atributos e funções, por isso preciso de um outro script para me basear.

Link para o comentário
https://xtibia.com/forum/topic/242906-resolvido-points-premium-in-game/#findComment-1708336
Compartilhar em outros sites

  • 0
  Em 04/12/2016 em 15:14, zipter98 disse:

Poderia me informar se existe alguma função que adiciona o pokémon para o jogador, como no PDA? Porque, caso não haja, gostaria de pedir que você postasse o código de uma daquelas box que dão um pokémon aleatório. Como nunca mexi nesse PDA open source, não conheço seus atributos e funções, por isso preciso de um outro script para me basear.

Expand  

as funções são as mesmas do pda,fiz questão de add um a um,e são todos ''copias'' das funções originais.

segue a boxs

 

  Mostrar conteúdo oculto

 

Editado por kaleudd
Link para o comentário
https://xtibia.com/forum/topic/242906-resolvido-points-premium-in-game/#findComment-1708362
Compartilhar em outros sites

Visitante
Este tópico está impedido de receber novos posts.
×
×
  • Criar Novo...