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:
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:
Clique aqui para Screen
Ps: Ignorem a janela de Gold abaixo do inventário, aquela foi uma adição para uso pessoal meu, entretanto não me importo em disponibilizar se pedirem.
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):
Abaixo dela coloque:
Procure por:
Abaixo adicione:
Procure por:
Abaixo adicione:
Na [ND] Window_Amount, abaixo de add_drop na linha 56 adicione antes do end:
No mesmo script antes do ultimo and adicione::
Va no script [ND] Window_Item, no def update_drop, antes do penultimo end adicione
Procure por:
Abaixo adicione:
Vá no script [ND] Send_Data, antes do ultimo end adicione:
Procure por:
Abaixo adicione:
No mesmo script [ND] Handle_Data, antes do ultimo end adicione:
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:
Abaixo adicione:
Abra o arquivo handledata.lua e procure por:
Abaixo adicione:
No final deste mesmo arquivo adicione:
Abra o arquivo senddata.lua, vá até o final dele, e adicione:
Vá no arquivo main.lua, procure por:
Abaixo adicione:
Pronto, agora seu script está configurado, para chama-lo basta usar o comando por evento via script:
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.
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)