Ir para conteúdo

Featured Replies

Postado

Ah sim, não tinha visto isso. Erro corrigido.

Já as outras modificações em ambas as versões do código, só terei meios de fazer quando tiver acesso a um notebook ou computador (que não é o caso).

E poderia postar o código do NPC Banco? Ajudaria muito, visto que eu poderia sazer qual a função utilizada para depósitos.

não respondo pms solicitando suporte em programação/scripting

  • Respostas 41
  • Visualizações 2.8k
  • Created
  • Última resposta

Top Posters In This Topic

Most Popular Posts

  • Em data/lib/050-function.lua, coloque as seguintes funções: function compareTables(c, d)     for i = 1, #c do         if not isInArray(d, c[i]) then             return false         end     end    

  • Globalevent: local config = {     cash = xxx,                                    --Valor inicial da loteria.     limit = {1, 200},                              --Número mínimo e máximo da loteria.  

  • Ops, como testei a loteria com apenas um vencedor, não presenciei este erro. Enfim, corrigido. Sobre as outras alterações, as farei e editarei os códigos. EDIT: Pronto, códigos alterados. Não se esq

Postado
Em 14/05/2015 13:58:02, zipter98 disse:

Ah sim, não tinha visto isso. Erro corrigido.

Já as outras modificações em ambas as versões do código, só terei meios de fazer quando tiver acesso a um notebook ou computador (que não é o caso).

E poderia postar o código do NPC Banco? Ajudaria muito, visto que eu poderia sazer qual a função utilizada para depósitos.

Sim, esse npc foi até você que me ajudou a deixar os numeros separados com 1 PONTO a cada 3 numeros: LINK

 

@zipter98 consegue resolver? To preste a abrir o server e queria contar com esse sistema, gostei mt... 

SCRIPT:

 

 

Citar

 

<?xml version="1.0" encoding="UTF-8"?>

<npc name="Banco" script="data/npc/scripts/bank.lua" walkinterval="2000" floorchange="0" access="5" 
 
level="1" maglevel="1">
    <health now="150" max="150"/>
    <look type="132" head="115" body="0" legs="114" feet="0" addons="3" corpse="2212"/>
    
    <parameters>
        <parameter key="message_greet" value="Ola |PLAYERNAME|! aqui, voce {deposit}, {withdraw} ou 
 
{transfer} seu dinheiro de sua conta bancaria. Eu posso mudar suas moedas tambem."/>
        <parameter key="message_alreadyfocused" value="You are drunked ? I talk with you."/>
        <parameter key="message_farewell" value="Adeus! Seu dinheiro esta seguro! Cuidado com o 
 
juros..MUAHAAHAH, brincadeira."/>
    </parameters>
</npc>
Citar

 

local keywordHandler = KeywordHandler:new()

local npcHandler = NpcHandler:new(keywordHandler)
NpcSystem.parseParameters(npcHandler)
local talkState = {}
local moneyTo = {}
local playerTo = {}
 
function onCreatureAppear(cid)            npcHandler:onCreatureAppear(cid)        end
function onCreatureDisappear(cid)        npcHandler:onCreatureDisappear(cid)        end
function onCreatureSay(cid, type, msg)        npcHandler:onCreatureSay(cid, type, msg)    end
function onThink()                npcHandler:onThink()                end
function pointNumber(number)
    if not tonumber(number) then
        return false
    end
    local str = ""
    number = tostring(number):reverse()
    local count = 0
    for i = 1, number:len() do
        count = count + 1
        if count <= 3 then
            if str == "" then
                str = number:sub(i, i)
            else
                str = str..number:sub(i, i)
            end
        else
            count = 1
            str = str.."."..number:sub(i, i)
        end
    end
    return str:reverse()
end   
local function isValidMoney(money)
    if isNumber(money) == TRUE and money > 0 and money < 999999999 then
        return TRUE
    end
    return FALSE
end
 
function creatureSayCallback(cid, type, msg)
 
    if(not npcHandler:isFocused(cid)) then
        return false
    end
 
    if msgcontains(msg, 'help') or msgcontains(msg, 'offer') then
        selfSay("You can check the {balance} of your bank account, {deposit} money or {withdraw} it. You can also {transfer} money to other characters, provided that they have a vocation.", cid)
        talkState[cid] = 0
-----------------------------------------------------------------
---------------------------- Balance ----------------------------
-----------------------------------------------------------------
     elseif msgcontains(msg, 'balance') or msgcontains(msg, 'Balance') then
        selfSay('Your account balance is '..pointNumber(getPlayerBalance(cid))..' gold.', cid)
        talkState[cid] = 0
-----------------------------------------------------------------
---------------------------- Help -------------------------------
-----------------------------------------------------------------
    elseif msgcontains(msg, 'basic functions') then
        selfSay('You can check the {balance{ of your bank account, Pdeposit{ money or Pwithdraw{ it. You can also {transfer} money to othercharacters, provided that they have a vocation.', cid)
        talkState[cid] = 0
    elseif msgcontains(msg, 'advanced functions') then
        selfSay('Renting a house has never been this easy. Simply make a bid for an auction. We will check immediately if you haveenough money.', cid)
        talkState[cid] = 0
-----------------------------------------------------------------
---------------------------- Deposit ----------------------------
-----------------------------------------------------------------
    elseif msgcontains(msg, 'deposit all') then
        moneyTo[cid] = getPlayerMoney(cid)
        if moneyTo[cid] < 1 then
            selfSay('You don\'t have any money to deposit in you inventory..', cid)
            talkState[cid] = 0
        else
            selfSay('Would you really like to deposit '..pointNumber(moneyTo[cid])..' gold?', cid)
            talkState[cid] = 2
        end
    elseif msgcontains(msg, 'deposit') then
        selfSay("Please tell me how much gold it is you would like to deposit.", cid)
        talkState[cid] = 1
    elseif talkState[cid] == 1 then
        moneyTo[cid] = tonumber(msg)
        if isValidMoney(moneyTo[cid]) == TRUE then
            selfSay('Would you really like to deposit '..pointNumber(moneyTo[cid])..' gold?', cid)
            talkState[cid] = 2
        else
            selfSay('Is isnt valid amount of gold to deposit.', cid)
            talkState[cid] = 0
        end
    elseif talkState[cid] == 2 then
        if msgcontains(msg, 'yes') then
            if doPlayerDepositMoney(cid, moneyTo[cid], 1) ~= TRUE then
                selfSay('You do not have enough gold.', cid)
            else
selfSay('Alright, we have added the amount of '..pointNumber(moneyTo[cid])..' gold to your balance. You can withdraw your money anytime you want to. Your account balance is ' .. pointNumber(getPlayerBalance(cid)) .. '.', cid)
            end
        elseif msgcontains(msg, 'no') then
            selfSay('As you wish. Is there something else I can do for you?', cid)
        end
        talkState[cid] = 0
-----------------------------------------------------------------
---------------------------- Withdraw ---------------------------
-----------------------------------------------------------------
    elseif msgcontains(msg, 'withdraw') then
        selfSay("Please tell me how much gold you would like to withdraw.", cid)
        talkState[cid] = 6
    elseif talkState[cid] == 6 then
        moneyTo[cid] = tonumber(msg)
        if isValidMoney(moneyTo[cid]) == TRUE then
            selfSay('Are you sure you wish to withdraw '..pointNumber(moneyTo[cid])..' gold from your bank account?', cid)
            talkState[cid] = 7
        else
            selfSay('Is isnt valid amount of gold to withdraw.', cid)
            talkState[cid] = 0
        end
    elseif talkState[cid] == 7 then
        if msgcontains(msg, 'yes') then
            if doPlayerWithdrawMoney(cid, moneyTo[cid]) ~= TRUE then
                selfSay('There is not enough gold on your account. Your account balance is '..getPlayerBalance(cid)..'. Please tell me the amount of gold coins you would like to withdraw.', cid)
            else
                selfSay('Here you are, ' .. pointNumber(moneyTo[cid]) .. ' gold. Please let me know if there is something else I can do for you.', cid)
                talkState[cid] = 0
            end
        elseif msgcontains(msg, 'no') then
            selfSay('As you wish. Is there something else I can do for you?', cid)
            talkState[cid] = 0
        end
-----------------------------------------------------------------
---------------------------- Transfer ---------------------------
-----------------------------------------------------------------
    elseif msgcontains(msg, 'transfer') then
        selfSay("Please tell me the amount of gold you would like to transfer.", cid)
        talkState[cid] = 11
    elseif talkState[cid] == 11 then
        moneyTo[cid] = tonumber(msg)
        if isValidMoney(moneyTo[cid]) == TRUE then
            selfSay('Who would you like transfer '..moneyTo[cid]..' gold to?', cid)
            talkState[cid] = 12
        else
            selfSay('Is isnt valid amount of gold to transfer.', cid)
            talkState[cid] = 0
        end
    elseif talkState[cid] == 12 then
        playerTo[cid] = msg
 
        if getCreatureName(cid) == playerTo[cid] then
            selfSay('Ehm, You want transfer money to yourself? Its impossible!', cid)
            talkState[cid] = 0
            return TRUE
        end
 
        if playerExists(playerTo[cid]) then
            selfSay('So you would like to transfer ' .. pointNumber(moneyTo[cid]) .. ' gold to "' .. playerTo[cid] .. '" ?', cid)
            talkState[cid] = 13
        else
            selfSay('Player with name "' .. playerTo[cid] .. '" doesnt exist.', cid)
            talkState[cid] = 0
        end
    elseif talkState[cid] == 13 then
        if msgcontains(msg, 'yes') then
            if getPlayerBalance(cid) < moneyTo[cid] then
                selfSay('You dont have enought money on your bank account.', cid)
                return TRUE
            end
 
            if doPlayerTransferMoneyTo(cid, playerTo[cid], moneyTo[cid]) ~= TRUE then
                selfSay('This player does not exist on this world or have no vocation.', cid)
            else
           selfSay('You have transferred ' .. pointNumber(moneyTo[cid]) .. ' gold to "' .. playerTo[cid] ..' ".', cid)
                playerTo[cid] = nil
            end
        elseif msgcontains(msg, 'no') then
            selfSay('As you wish. Is there something else I can do for you?', cid)
        end
        talkState[cid] = 0
    end
    return TRUE
end
 
npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback)
npcHandler:addModule(FocusModule:new())  

Editado por brendoonh
Ver se ele consegue corrigir... (veja o histórico de edições)

Postado
  • Autor

Ah sim, não tinha visto isso. Erro corrigido.

Já as outras modificações em ambas as versões do código, só terei meios de fazer quando tiver acesso a um notebook ou computador (que não é o caso).

E poderia postar o código do NPC Banco? Ajudaria muito, visto que eu poderia sazer qual a função utilizada para depósitos.

em relação ao que eu pedi poderia fazer algo?

Teria como da uma facilitada?

Tipo queria que o player escolhesse 10 números de 1 a 100

e se ele acerta 5 desses 10 ele seria o ganhador.

Teria como? obrigado!

Ajudei? da um Rep+, não custa nada. ;D:P

 

Servidor de PokeTibia ja online.

Pagina: https://www.facebook.com/PokemonxStore?ref=bookmarks

Grupo: https://www.facebook.com/groups/257989224406246/

Site: http://pokexstore.wix.com/pokexstore

Postado

@zipter98, a script ta perfeita, só falta o dinheiro ir pro Banco, pois após alguém vencer, o dinheiro some, não vai pra bp nem pro banco. Ele simplesmente desaparece :@

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

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.

Estatísticas dos Fóruns

  • Tópicos 96.9k
  • Posts 519.7k

Informação Importante

Confirmação de Termo