Isto é uma pré-visualização de um tema em Hitskin.com
Instalar o tema • Voltar para a ficha do tema
LM² - Account Bank 1.0
5 participantes
Aldeia RPG :: RPG Maker :: Rpg Maker XP :: Netplays :: Scripts para netplays
Página 1 de 1
LM² - Account Bank 1.0
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)
LeonM²- Lenda
- Mensagens : 1802
Créditos : 153
Re: LM² - Account Bank 1.0
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.
Continue assim, tenho certeza que ter uma diversidade maior de sistemas estimulará o crescimento da comunidade.
_________________
Manticora- Membro Ativo
- Mensagens : 265
Créditos : 62
Ficha do personagem
Nível: 1
Experiência:
(0/0)
Vida:
(30/30)
Re: LM² - Account Bank 1.0
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
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
_________________
Adanrox- Diva
- Mensagens : 522
Créditos : 74
Ficha do personagem
Nível: 1
Experiência:
(0/0)
Vida:
(30/30)
Re: LM² - Account Bank 1.0
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.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
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²- Lenda
- Mensagens : 1802
Créditos : 153
Re: LM² - Account Bank 1.0
Instalei o sistema de bank no NetMaker 1.0.3 quando tento colocar um item no banco da este erro !
_________________
Manticora- Membro Ativo
- Mensagens : 265
Créditos : 62
Ficha do personagem
Nível: 1
Experiência:
(0/0)
Vida:
(30/30)
Re: LM² - Account Bank 1.0
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²- Lenda
- Mensagens : 1802
Créditos : 153
Aldeia RPG :: RPG Maker :: Rpg Maker XP :: Netplays :: Scripts para netplays
Página 1 de 1
Permissões neste sub-fórum
Não podes responder a tópicos