LM² - Account Bank 1.0 Hitskin_logo Hitskin.com

Isto é uma pré-visualização de um tema em Hitskin.com
Instalar o temaVoltar para a ficha do tema

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

LM² - Account Bank 1.0

5 participantes

Ir para baixo

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)
LeonM²
LeonM²
Lenda
Lenda

Mensagens : 1802
Créditos : 153

Ir para o topo Ir para baixo

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.
Valentine
Valentine
Administrador
Administrador

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

https://www.aldeiarpg.com/

Ir para o topo Ir para baixo

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
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)

https://www.aldeiarpg.com/

Ir para o topo Ir para baixo

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
Manticora
Manticora
Membro Ativo
Membro Ativo

Mensagens : 261
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)

Ir para o topo Ir para baixo

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
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)

Ir para o topo Ir para baixo

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.
LeonM²
LeonM²
Lenda
Lenda

Mensagens : 1802
Créditos : 153

Ir para o topo Ir para baixo

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
Manticora
Manticora
Membro Ativo
Membro Ativo

Mensagens : 261
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)

Ir para o topo Ir para baixo

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.
LeonM²
LeonM²
Lenda
Lenda

Mensagens : 1802
Créditos : 153

Ir para o topo Ir para baixo

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

Mensagem por Conteúdo patrocinado


Conteúdo patrocinado


Ir para o topo Ir para baixo

Ir para o topo

- Tópicos semelhantes

 
Permissões neste sub-fórum
Não podes responder a tópicos