Aldeia RPG

Gostaria de reagir a esta mensagem? Crie uma conta em poucos cliques ou inicie sessão para continuar.

Suporte ao desenvolvimento de jogos


5 participantes

    LM² - Account Bank 1.0

    LeonM²
    LeonM²
    Lenda
    Lenda


    Mensagens : 1802
    Créditos : 153

    LM² - Account Bank 1.0 Empty LM² - Account Bank 1.0

    Mensagem por LeonM² Qua Ago 30, 2017 9:19 pm

    LM² - Account Bank 1.0:
    Este é um sistema de banco por conta, ou seja, uma unica conta possui acesso ao banco independente do personagem que esta sendo utilizado, fiz deste modo em uma primeira instancia pela facilidade, e por menor consumo do servidor.
    Screen:
    Screen:
    Tutorial Básico:
    Tutorial Cliente:
    Primeiramente insiram um novo script com o código rmxp do link abaixo.
    Agora vem a parte complexa.
    Procure pela linha (ctrl+shift+f):

    Código:
    $windows[:choice] = Window_Choice.new

    Abaixo dela coloque:

    Código:
    $windows[:bank] = Bank.new

    Procure por:

    Código:
    $windows[:shop].on_close if $game_player.moving? and $windows[:shop].visible

    Abaixo adicione:

    Código:
    $windows[:bank].on_close if $game_player.moving? and $windows[:bank].visible

    Procure por:

    Código:
    $windows[:choice].on_close

    Abaixo adicione:

    Código:
     $windows[:bank].on_close

    Na [ND] Window_Amount, abaixo de  add_drop na linha 56 adicione antes do end:

    Código:
        when 6
          add_bank
        when 7  
          remove_bank

    No mesmo script antes do ultimo and adicione::

    Código:
      # LMM - Bank
      def add_bank(item = @item, value = @value_box.text.to_i)
        return if $game_party.item_number(item) < value
        update_bank_item(item, value)
      end
      def remove_bank(item = @item, value = @value_box.text.to_i)
        return if $windows[:bank].check_number(item.id,value)
        update_bank_item(item, -value)
      end
      def update_bank_item(item, value)
        case item
        when RPG::Item
          $network.send_bank_item(Constants::KIND_ITEM, item.id, value)
          $game_party.gain_item(item.id, -value)
        when RPG::Weapon
          $network.send_bank_item(Constants::KIND_WEAPON, item.id, value)
          $game_party.gain_weapon(item.id, -value)
        when RPG::Armor
          $network.send_bank_item(Constants::KIND_ARMOR, item.id, value)
          $game_party.gain_armor(item.id, -value)
        end
      end  

    Va no script [ND] Window_Item, no def update_drop, antes do penultimo end adicione

    Código:
        when 6
          $windows[:amount].open($mouse.object, 7)

    Procure por:

    Código:
      PACKET_ADMIN_COMMAND        = '<39>'

    Abaixo adicione:

    Código:
      PACKET_REQUEST_BANK         = '<50>'
      PACKET_SEND_BANK_ITEM       = '<51>'

    Vá no script [ND] Send_Data, antes do ultimo end adicione:

    Código:
      # LM² - Bank
      def request_bank
        @socket.send("#{PACKET_REQUEST_BANK}\n")
      end
      
      def send_bank_item(kind, id, amount)
        @socket.send("#{PACKET_SEND_BANK_ITEM}#{kind};#{id};#{amount}\n")
      end

    Procure por:

    Código:
    when PACKET_ADMIN_COMMAND; handle_admin_command(data)

    Abaixo adicione:

    Código:
     when PACKET_REQUEST_BANK; handle_request_bank(data)

    No mesmo script [ND] Handle_Data, antes do ultimo end adicione:

    Código:
      #--------------------------------------------------------------------------
      # * Processamento da dados do banco
      #     data : dados
      #--------------------------------------------------------------------------
      def handle_request_bank(data)
        data = data.split(';')
        for i in 0...data.size
          data[i] = data[i].split('|')
          data[i][0] = data[i][0].to_i
          data[i][1] =  data[i][1].to_i
          data[i][2] =  data[i][2].to_i
        end  
        $windows[:bank].bankdata = data if $windows[:bank].visible
        $windows[:bank].refresh if $windows[:bank].visible    
      end

    Agora iremos para o Servidor, está é a parte mais complexa do tutorial.
    Tutorial Servidor ():


    Primeiramente copie o código lua do link abaixo, salve num arquivo chamado bank.lua dentro da pasta Scripts do seu servidor, isto pode ser feito através de um editor de texto como wordpad.
    Abra o arquivo constants.lua e procure por:

    Código:
    PACKETADMINCOMMAND       = '<39>'

    Abaixo adicione:

    Código:
    PACKETREQUESTBANK        = '<50>'
    PACKETSENDBANKITEM       = '<51>'

    Abra o arquivo handledata.lua e procure por:

    Código:
    elseif header == PACKETVARIABLE then self:handlevariable(index, player, data)

    Abaixo adicione:

    Código:
        elseif header == PACKETREQUESTBANK then self:handlerequestbank(index, player)
        elseif header == PACKETSENDBANKITEM then self:handlesenbankitem(index, player, data)

    No final deste mesmo arquivo adicione:

    Código:
    -- LM² - Bank
    function TcpServer:handlerequestbank(index, player)
        if player.charnum == 0 then return end
        local bank  = Bank(player.user)
        if bank.bankdata ~= "" then
           -- bank:returnbank()
        end    
        banksave = bank.bankdata
        self:sendbank(index, banksave)
    end
    function TcpServer:handlesenbankitem(index, player, data)
        if player.charnum == 0 then return end
        local bank  = Bank(player.user)
        local recv = data:split(';')
        bank:modifyitem(recv[1], recv[2], recv[3])
        banksave = bank.bankdata
        self:sendbank(index, banksave)
    end

    Abra o arquivo senddata.lua, vá até o final dele, e adicione:

    Código:
    -- LM² - Bank
    function TcpServer:sendbank(index, data)
     self:sendtoplayer(index, PACKETREQUESTBANK, data)
    end

    Vá no arquivo main.lua, procure por:

    Código:
    require './Scripts/handledata'

    Abaixo adicione:

    Código:
    require './Scripts/bank'

    Pronto, agora seu script está configurado, para chama-lo basta usar o comando por evento via script:

    Código:
    $windows[:bank].trigger


    Links:
    Código RMXP
    Código Lua
    Creditos:
    A mim por criar, ao Soreto pela ajuda com o estudo do Servidor e Lua, ao Valentine por auxilio.

    Qualquer erro deverá ser reportado. Qualquer duvida leiam minha assinatura.


    Última edição por LeonMM em Qua Ago 30, 2017 11:28 pm, editado 2 vez(es)
    Valentine
    Valentine
    Administrador
    Administrador


    Medalhas : LM² - Account Bank 1.0 ZgLkiRU
    Mensagens : 5345
    Créditos : 1164

    LM² - Account Bank 1.0 Empty Re: LM² - Account Bank 1.0

    Mensagem por Valentine Qua Ago 30, 2017 9:34 pm

    Muito bom.

    + 1 crédito.
    Paulo Soreto
    Paulo Soreto
    Lenda
    Lenda


    Mensagens : 1980
    Créditos : 367

    Ficha do personagem
    Nível: 1
    Experiência:
    LM² - Account Bank 1.0 Left_bar_bleue0/0LM² - Account Bank 1.0 Empty_bar_bleue  (0/0)
    Vida:
    LM² - Account Bank 1.0 Left_bar_bleue30/30LM² - Account Bank 1.0 Empty_bar_bleue  (30/30)

    LM² - Account Bank 1.0 Empty Re: LM² - Account Bank 1.0

    Mensagem por Paulo Soreto Qui Ago 31, 2017 6:19 am

    Muito bom cara, sua disposição pra programar tá me deixando pra baixo uaehuaheuahe
    Continue assim, tenho certeza que ter uma diversidade maior de sistemas estimulará o crescimento da comunidade.


    _________________
    LM² - Account Bank 1.0 FwYnoXI
    Manticora
    Manticora
    Membro Ativo
    Membro Ativo


    Mensagens : 265
    Créditos : 62

    Ficha do personagem
    Nível: 1
    Experiência:
    LM² - Account Bank 1.0 Left_bar_bleue0/0LM² - Account Bank 1.0 Empty_bar_bleue  (0/0)
    Vida:
    LM² - Account Bank 1.0 Left_bar_bleue30/30LM² - Account Bank 1.0 Empty_bar_bleue  (30/30)

    LM² - Account Bank 1.0 Empty Re: LM² - Account Bank 1.0

    Mensagem por Manticora Qui Ago 31, 2017 7:22 am

    Muito epico este sistema de banco !

    + Créditos


    _________________
    LM² - Account Bank 1.0 Sem_tz10
    Adanrox
    Adanrox
    Diva
    Diva


    Mensagens : 522
    Créditos : 74

    Ficha do personagem
    Nível: 1
    Experiência:
    LM² - Account Bank 1.0 Left_bar_bleue0/0LM² - Account Bank 1.0 Empty_bar_bleue  (0/0)
    Vida:
    LM² - Account Bank 1.0 Left_bar_bleue30/30LM² - Account Bank 1.0 Empty_bar_bleue  (30/30)

    LM² - Account Bank 1.0 Empty Re: LM² - Account Bank 1.0

    Mensagem por Adanrox Sex Set 01, 2017 1:33 pm

    Muito bom, isso é uma excelente ideia, nao poderia faltar, rsrsrs
    O que realmente esta faltando na minha opniao é limite de spaço/slot do banco e do inventario... na teoria esse banco esta sendo infinito espaco de ocupaçao de itens.
    + 1 Credito


    _________________
    LM² - Account Bank 1.0 EiLDYSs
    LeonM²
    LeonM²
    Lenda
    Lenda


    Mensagens : 1802
    Créditos : 153

    LM² - Account Bank 1.0 Empty Re: LM² - Account Bank 1.0

    Mensagem por LeonM² Sex Set 01, 2017 1:41 pm

    Adanrox escreveu:Muito bom, isso é uma excelente ideia, nao poderia faltar, rsrsrs
    O que realmente esta faltando na minha opniao é limite de spaço/slot do banco e do inventario... na teoria esse banco esta sendo infinito espaco de ocupaçao de itens.
    + 1 Credito
    Não seria muito complicado fazer isso, talvez eu trabalhe nisso esse final de semana, irei descansar por um dia ou dois, ai depois disso que eu verei sobre limite de espaço, não só para o banco, como para o inventário também.
    Entretanto eu realmente acho melhor esperar para fazer isso, já que o Val vai alterar a forma como os itens são tratados numa versão futura, logo seria melhor eu esperar isso antes de alterar algo.
    Obrigado a todos pelo apoio.
    Manticora
    Manticora
    Membro Ativo
    Membro Ativo


    Mensagens : 265
    Créditos : 62

    Ficha do personagem
    Nível: 1
    Experiência:
    LM² - Account Bank 1.0 Left_bar_bleue0/0LM² - Account Bank 1.0 Empty_bar_bleue  (0/0)
    Vida:
    LM² - Account Bank 1.0 Left_bar_bleue30/30LM² - Account Bank 1.0 Empty_bar_bleue  (30/30)

    LM² - Account Bank 1.0 Empty Re: LM² - Account Bank 1.0

    Mensagem por Manticora Seg Dez 11, 2017 1:24 pm

    Instalei o sistema de bank no NetMaker 1.0.3 quando tento colocar um item no banco da este erro !

    LM² - Account Bank 1.0 Erro_b11


    _________________
    LM² - Account Bank 1.0 Sem_tz10
    LeonM²
    LeonM²
    Lenda
    Lenda


    Mensagens : 1802
    Créditos : 153

    LM² - Account Bank 1.0 Empty Re: LM² - Account Bank 1.0

    Mensagem por LeonM² Seg Dez 11, 2017 9:29 pm

    Ainda não baixei o 1.0.3 devido a falta de internet, entretanto, este erro indica a falta de um método que se encontra no tutorial, logo você pulou alguns passos, reveja o tutorial e procure ver se não faltou a inserção de nenhum código.

    Conteúdo patrocinado


    LM² - Account Bank 1.0 Empty Re: LM² - Account Bank 1.0

    Mensagem por Conteúdo patrocinado


      Data/hora atual: Sáb Nov 23, 2024 7:24 am