Money Changer

Ask for help about creating mods and scripts for Grimrock 2 or share your tips, scripts, tools and assets with other modders here. Warning: forum contains spoilers!
Post Reply
User avatar
Xardas
Posts: 83
Joined: Fri Jul 28, 2017 12:30 am

Money Changer

Post by Xardas »

Hey guys,
I´m having Problems creating a script Code, which allows to Change coins which are being put in an alcove.
I am using the dm coins (copper, silver, gold).
I want the alcove to Change any amount of coins to any coins, so it should be able to Change to copper,silver and gold coins.
Changing Course should be (x copper = 1 silver, x silver = 1 Gold).

Solved: Code for it is below
Last edited by Xardas on Mon Oct 09, 2017 7:33 pm, edited 2 times in total.
In order to get to the other side of the pit you have to get hit by the fireball and die....
Yep.....moving on!
User avatar
AdrTru
Posts: 223
Joined: Sat Jan 19, 2013 10:10 pm
Location: Trutnov, Czech Republic

Re: Money Changer

Post by AdrTru »

Try to Virtual Money ( https://www.nexusmods.com/legendofgrimrock2/mods/39/? )
In this code is universal conversion script.
My LOG2 projects: virtual money, Forge recipes, liquid potions and
MultiAlcoveManager, Toolbox, Graphic text,
User avatar
Xardas
Posts: 83
Joined: Fri Jul 28, 2017 12:30 am

Re: Money Changer

Post by Xardas »

Hey ArdTru,
I took a look at the Code and i don´t really understand it. :cry:
Seems like i have to figure out something else. Nevertheless thank you
In order to get to the other side of the pit you have to get hit by the fireball and die....
Yep.....moving on!
User avatar
Xardas
Posts: 83
Joined: Fri Jul 28, 2017 12:30 am

Re: Money Changer

Post by Xardas »

Ok i managed to get the moneychanger working now. It works just fine as far as i tested it.
The only Thing is, that there shouldn´t be more than 1 stack of the same coin in it or the results are nonsense. :lol:
I might put some instructions next to it....
I´m just gonna dump the Code for it here and i hope someone else can use it too, so this thread wasn´t for nothing.
When your interested in the Code, then read through it.
I added some explanations to it, since a Counter and a Surface is involved, but it isn´t hard to understand anyway.

Code: Select all

money = 0

function moneyinfo()
----------------------------------------------------------
--Name your counter kindcounter and set it to 0 (Default value)
local counter = kindcounter.counter:getValue()
----------------------------------------------------------
if counter == 1 then
hudPrint("Changing in gold coins")
elseif counter == 2 then
hudPrint("Changing in silver coins")
elseif counter == 3 then
hudPrint("Changing in copper coins")
elseif counter >3 then
kindcounter.counter:setValue(0)
end
end

function surfaceContains(surface, item)
money = 0
 for v,i in surface.surface:contents() do
   if i.go.name == item then 
   i.go:destroy()
   money = i:getStackSize()
   end
 end
end

function moneychange()
if kindcounter.counter:getValue() > 0 then
----------------------------------------------------------
--counts coins
----------------------------------------------------------
 surfaceContains(moneychanger, "dm_coin_copper")
  local coinscopper = money

 surfaceContains(moneychanger, "dm_coin_silver")
   local coinssilver = money

  surfaceContains(moneychanger, "dm_coin_gold")
   local coinsgold = money
----------------------------------------------------------
----------------------------------------------------------
local copper = 0
local silver = 0
local gold = 0
----------------------------------------------------------
--This is your changing Course (x copper = 1 silver, x silver = 1 gold)
local x = 5
----------------------------------------------------------
--changing in goldcoins 
----------------------------------------------------------
if kindcounter.counter:getValue() == 1 then 
copper=coinscopper%x
silver=math.floor(coinscopper/x)+coinssilver
gold=math.floor(silver/x)+coinsgold
silver=silver%x
----------------------------------------------------------
--changing in silvercoins
----------------------------------------------------------
elseif kindcounter.counter:getValue() == 2 then 
copper=coinscopper%x
silver=math.floor(coinscopper/x)+coinssilver+coinsgold*x
----------------------------------------------------------
--changing in coppercoins
----------------------------------------------------------
elseif kindcounter.counter:getValue() == 3 then 
silver=coinssilver+coinsgold*x
copper=silver*x+coinscopper
silver=0
end
----------------------------------------------------------
--spawn coins on the surface of your choice except the moneychanger itself!
---------------------------------------------------------- 
for m=1,gold do
changetable.surface:addItem(spawn("dm_coin_gold").item)
end 
for m=1,silver do
changetable.surface:addItem(spawn("dm_coin_silver").item)
end
for m=1,copper do
changetable.surface:addItem(spawn("dm_coin_copper").item)
end
----------------------------------------------------------
else
hudPrint("No changing mode was selected")
end
end
In order to get to the other side of the pit you have to get hit by the fireball and die....
Yep.....moving on!
Post Reply

Return to “Mod Creation”