Isto é uma pré-visualização de um tema em Hitskin.com
Instalar o tema • Voltar para a ficha do tema
[Pedido]: Script de Economia
4 participantes
Aldeia RPG :: RPG Maker :: Rpg Maker XP :: Dúvidas e pedidos
Página 1 de 1
[Pedido]: Script de Economia
Olá, eu (& alguém) estou/estamos fazendo um jogo e pretendemos adicionar um script de economia, para ajudar-nos na fixação/inflação de preços.
Já temos a fórmula do sistema de economia, mas precisamos de um script que cria um log para cada jogador mostrando o que ele comprou no total, sem data e etc.
Ou seja...
[Proposta]:
~Fazer um script que gere um LOG em arquivo para cada player, nesse LOG exibirá as compras feitas por ID e quantia, exemplo: (ID=9) id = id, 9 = quantia de compras no total feitas.
[Recompensa]:
~Negociaremos a recompensa, obs: eu pago.
Já temos a fórmula do sistema de economia, mas precisamos de um script que cria um log para cada jogador mostrando o que ele comprou no total, sem data e etc.
Ou seja...
[Proposta]:
~Fazer um script que gere um LOG em arquivo para cada player, nesse LOG exibirá as compras feitas por ID e quantia, exemplo: (ID=9) id = id, 9 = quantia de compras no total feitas.
[Recompensa]:
~Negociaremos a recompensa, obs: eu pago.
_________________
Batatinha quando nasce, espalha rama chão, menina quando olha, bota a mão no seu coração.
Re: [Pedido]: Script de Economia
Boas, como prometido, está aqui:
- Na pasta "Servidor" crie uma nova pasta com o nome "Compras".
- No script "Window_ShopBuy" procure o método "def sell(item)", dentro desse método procure a linha:
$game_party.lose_item(Config::GOLD_ID.to_i,amount * item.price)
Abaixo dessa linha adicione isso:
- Agora abra com o bloco de notas o arquivo "functions.lua" que está na pasta "Scripts" do servidor e adicione esse código antes dos dois "end" final do arquivo:
- Data e hora do LOG. (no server)
- Character name = nome do personagem que comprou.
- Item ID = ID do item no Database.
- Quantity = Quantidade comprada.
O arquivo será salvo dentro da pasta "Compras" com o nome de usuário do jogador e no formato de texto.
- Na pasta "Servidor" crie uma nova pasta com o nome "Compras".
- No script "Window_ShopBuy" procure o método "def sell(item)", dentro desse método procure a linha:
$game_party.lose_item(Config::GOLD_ID.to_i,amount * item.price)
Abaixo dessa linha adicione isso:
- Código:
Network::Main.socket.send("<buy>#{item.id};#{amount};#{$game_party.actors[0].name}\n")
- Agora abra com o bloco de notas o arquivo "functions.lua" que está na pasta "Scripts" do servidor e adicione esse código antes dos dois "end" final do arquivo:
- Código:
elseif cmd == "<buy>" then
do
data = string.gsub(data,"<buy>","")
local first = string.find(data,";")
local last = string.find(data,";",first+1)
local id = string.sub(data,1,first-1)
local qt = string.sub(data,first+1,last-1)
local char = string.sub(data,last+1)
local test = io.open("Compras/"..user.name..".txt","r")
if test then
test:close()
file = io.open("Compras/"..user.name..".txt","a+")
file:write("["..os.date("%d/%m/%y - %H:%M:%S").."]: Character name: "..char..", Item ID: "..id..", Quantity: "..qt.."\n")
file:close()
else
file = io.open("Compras/"..user.name..".txt","w")
file:write("["..os.date("%d/%m/%y - %H:%M:%S").."]: Character name: "..char..", Item ID: "..id..", Quantity: "..qt.."\n")
file:close()
end
end
--
- Data e hora do LOG. (no server)
- Character name = nome do personagem que comprou.
- Item ID = ID do item no Database.
- Quantity = Quantidade comprada.
O arquivo será salvo dentro da pasta "Compras" com o nome de usuário do jogador e no formato de texto.
blackcrow- Semi-Experiente
- Mensagens : 111
Créditos : 41
Re: [Pedido]: Script de Economia
Obrigado! O meu amigo disse que no dele funcionou, então tá' sussa! Valeu mesmo.
_________________
Batatinha quando nasce, espalha rama chão, menina quando olha, bota a mão no seu coração.
Re: [Pedido]: Script de Economia
Eu tmb fiz um script que salva o log do trade, se quiser, é só pedir.
blackcrow- Semi-Experiente
- Mensagens : 111
Créditos : 41
Re: [Pedido]: Script de Economia
Eu quero cara, valeu!
_________________
Batatinha quando nasce, espalha rama chão, menina quando olha, bota a mão no seu coração.
Re: [Pedido]: Script de Economia
RMXP:
- No script Their_Trade procure o método def accept(id=0) e troque ele por esse:
Server:
- Abra o arquivo functions.lua e antes dos dois end no final do arquivo adicione isso:
- Data e hora do log (server).
- Character1 e Character2 = Nomes do dois chars que fizeram a troca.
- Items ID-QT = Items oferecidos pelo jogador no trade, ID = id do item no database, QT = quantidade do item. Salvas nesse formato: [ID-QT,ID-QT,...] se um dos jogadores ofereceu mais de 1 item.
O arquivo será salvo dentro da pasta Compras com o nome tradelog no formato de texto, todos os logs de trades do jogo serão salvos nesse arquivo.
- No script Their_Trade procure o método def accept(id=0) e troque ele por esse:
- Código:
def accept(id=0)
return if $game_trade.leader_id == 0
if id == 0
#-------------------------------
# * Gerar log do trade
#-------------------------------
data = ""
data2 = ""
$game_trade.items[@id].each do |k,v|
data += ",#{k}-#{v}"
end
$game_trade.weapons[@id].each do |k,v|
data += ",#{k}-#{v}"
end
$game_trade.armors[@id].each do |k,v|
data += ",#{k}-#{v}"
end
$game_trade.items_2[@id].each do |k,v|
data2 += ",#{k}-#{v}"
end
$game_trade.weapons_2[@id].each do |k,v|
data2 += ",#{k}-#{v}"
end
$game_trade.armors_2[@id].each do |k,v|
data2 += ",#{k}-#{v}"
end
Network::Main.socket.send("<40t>#{data};#{data2}@#{$game_party.actors[0].name};#{$scene.checkplayername(@id)}\n")
end
$game_trade.items_2[@id].each do |k,v|
$game_party.gain_item(k,v)
end
$game_trade.weapons_2[@id].each do |k,v|
$game_party.gain_weapon(k,v)
end
$game_trade.armors_2[@id].each do |k,v|
$game_party.gain_armor(k,v)
end
$game_trade.items_2.clear
$game_trade.weapons_2.clear
$game_trade.armors_2.clear
self.index = 0
Network::Main.send_trade(@id,"$game_trade.remove_all") if id == 0
$scene.invitation_window.on_close
$scene.currency_window.on_close
$scene.equip_window.on_close
dispose
$scene.trade_window.dispose
$scene.your_trade.dispose
$scene.their_trade = nil
$scene.trade_window = nil
$scene.your_trade = nil
$game_trade.leader_id = 0
$game_trade.request_type = 0
end
Server:
- Abra o arquivo functions.lua e antes dos dois end no final do arquivo adicione isso:
- Código:
-- Trade log
elseif cmd == "<40t>" then
do
data = string.gsub(data,"<40t>","")
local s1 = string.find(data,";")
local sep = string.find(data,"@",s1+1)
local s2 = string.find(data,";",sep+1)
local item1 = string.sub(data,2,s1-1)
local item2 = string.sub(data,s1+2,sep-1)
local char1 = string.sub(data,sep+1,s2-1)
local char2 = string.sub(data,s2+1)
local f = io.open("Trade/tradelog.txt","r")
if f then
f:close()
f = io.open("Trade/tradelog.txt","a+")
f:write("["..os.date("%d/%m/%y - %H:%M:%S").."] Character1: "..char1..", Items ID-QT: ["..item1.."] | Character2: "..char2..", Items ID-QT: ["..item2.."]\n")
f:close()
else
f = io.open("Trade/tradelog.txt","w")
f:write("["..os.date("%d/%m/%y - %H:%M:%S").."] Character1: "..char1..", Items ID-QT: ["..item1.."] | Character2: "..char2..", Items ID-QT: ["..item2.."]\n")
f:close()
end
end
--
- Data e hora do log (server).
- Character1 e Character2 = Nomes do dois chars que fizeram a troca.
- Items ID-QT = Items oferecidos pelo jogador no trade, ID = id do item no database, QT = quantidade do item. Salvas nesse formato: [ID-QT,ID-QT,...] se um dos jogadores ofereceu mais de 1 item.
O arquivo será salvo dentro da pasta Compras com o nome tradelog no formato de texto, todos os logs de trades do jogo serão salvos nesse arquivo.
Última edição por blackcrow em Seg Nov 17, 2014 9:44 pm, editado 1 vez(es)
blackcrow- Semi-Experiente
- Mensagens : 111
Créditos : 41
Re: [Pedido]: Script de Economia
blackcrow escreveu:RMXP:
- No script Their_Trade procure o método def accept(id=0) e troque ele por esse:
- Código:
def accept(id=0)
return if $game_trade.leader_id == 0
if id == 0
#-------------------------------
# * Gerar log do trade
#-------------------------------
data = ""
data2 = ""
$game_trade.items[@id].each do |k,v|
data += "#{k}-#{v},"
end
$game_trade.weapons[@id].each do |k,v|
data += "#{k}-#{v},"
end
$game_trade.armors[@id].each do |k,v|
data += "#{k}-#{v},"
end
$game_trade.items_2[@id].each do |k,v|
data2 += "#{k}-#{v},"
end
$game_trade.weapons_2[@id].each do |k,v|
data2 += "#{k}-#{v},"
end
$game_trade.armors_2[@id].each do |k,v|
data2 += "#{k}-#{v},"
end
Network::Main.socket.send("<40t>[#{data}];[#{data2}]@#{$game_party.actors[0].name};#{$scene.checkplayername(@id)}\n")
end
$game_trade.items_2[@id].each do |k,v|
$game_party.gain_item(k,v)
end
$game_trade.weapons_2[@id].each do |k,v|
$game_party.gain_weapon(k,v)
end
$game_trade.armors_2[@id].each do |k,v|
$game_party.gain_armor(k,v)
end
$game_trade.items_2.clear
$game_trade.weapons_2.clear
$game_trade.armors_2.clear
self.index = 0
Network::Main.send_trade(@id,"$game_trade.remove_all") if id == 0
$scene.invitation_window.on_close
$scene.currency_window.on_close
$scene.equip_window.on_close
dispose
$scene.trade_window.dispose
$scene.your_trade.dispose
$scene.their_trade = nil
$scene.trade_window = nil
$scene.your_trade = nil
$game_trade.leader_id = 0
$game_trade.request_type = 0
end
Server:
- Abra o arquivo functions.lua e antes dos dois end no final do arquivo adicione isso:Informações salvas:
- Código:
-- Trade log
elseif cmd == "<40t>" then
do
data = string.gsub(data,"<40t>","")
local s1 = string.find(data,";")
local sep = string.find(data,"@",s1+1)
local s2 = string.find(data,";",sep+1)
local item1 = string.sub(data,1,s1-1)
local item2 = string.sub(data,s1+1,sep-1)
local char1 = string.sub(data,sep+1,s2-1)
local char2 = string.sub(data,s2+1)
local f = io.open("Compras/tradelog.txt","r")
if f then
f:close()
f = io.open("Compras/tradelog.txt","a+")
f:write("["..os.date("%d/%m/%y - %H:%M:%S").."] Character1: "..char1..", Items ID-QT: "..item1.." | Character2: "..char2..", Items ID-QT: "..item2.."\n")
f:close()
else
f = io.open("Compras/tradelog.txt","w")
f:write("["..os.date("%d/%m/%y - %H:%M:%S").."] Character1: "..char1..", Items ID-QT: "..item1.." | Character2: "..char2..", Items ID-QT: "..item2.."\n")
f:close()
end
end
--
- Data e hora do log (server).
- Character1 e Character2 = Nomes do dois chars que fizeram a troca.
- Items ID-QT = Items oferecidos pelo jogador no trade, ID = id do item no database, QT = quantidade do item. Salvas nesse formato: [ID-QT,ID-QT,...] se um dos jogadores ofereceu mais de 1 item.
O arquivo será salvo dentro da pasta Compras com o nome tradelog no formato de texto, todos os logs de trades do jogo serão salvos nesse arquivo.
É maninho parabéns pelos scripts serão de grande ajuda
_________________
Paga um café? Patreon
Komuro Takashi- Colaborador
- Mensagens : 1047
Créditos : 130
Re: [Pedido]: Script de Economia
Obrigado blackcrow! Eu agradeço!
_________________
Batatinha quando nasce, espalha rama chão, menina quando olha, bota a mão no seu coração.
Re: [Pedido]: Script de Economia
eu não digo ele des que chegou já ajudou muita gente se continuar assim ele pode ser considerado membro de honra acho que lhe fica muito bem
estou a falar do blackcrow
estou a falar do blackcrow
_________________
Trpino- Membro Ativo
- Mensagens : 300
Créditos : 12
Ficha do personagem
Nível: 1
Experiência:
(0/0)
Vida:
(30/30)
Tópicos semelhantes
» [Pedido script]Script velocidade de ataque baseado na agilidade
» Pedido de script
» [pedido]Script
» [Pedido] Script
» Pedido de Script
» Pedido de script
» [pedido]Script
» [Pedido] Script
» Pedido de Script
Aldeia RPG :: RPG Maker :: Rpg Maker XP :: Dúvidas e pedidos
Página 1 de 1
Permissões neste sub-fórum
Não podes responder a tópicos