DSB Version 0.78

This forum is for the Lua scriptable clone of DM/CSB called Dungeon Strikes Back by Sophia. Use DSB to build your own highly customised games.

Moderator: Sophia

Forum rules
Please read the Forum rules and policies before posting.
Post Reply
User avatar
Sophia
Concise and Honest
Posts: 4240
Joined: Thu Sep 12, 2002 9:50 pm
Location: Nowhere in particular
Contact:

DSB Version 0.78

Post by Sophia »

What's new:

- Added on_see_party event when a monster spots the party
- Added on_frighten event when a monster is scared away
- Added support for custom damage types to be shown via damage popup
- Added other_side graphics for flooritems and flooruprights
- Added volume control (via vol exvar) to ambient sound objects
- Added dsb_bitmap_clear_alpha to clear a bitmap to a given alpha value
- Fixed the eot_te queue bug
- Fixed handling of clickzones with multidraw wallitems
- Fixed some rendering functions to work on bitmaps with alpha transparency
- Fixed the damage of daggers and axes to be more accurate to DM
- Fixed various flaws in the attack power formula in order to be more like DM
- Fixed a minor bug in spell power attenuation
- Fixed errors when opening and closing a door with custom sounds

Download it here
User avatar
Gambit37
Should eat more pies
Posts: 13715
Joined: Wed May 31, 2000 1:57 pm
Location: Location, Location
Contact:

Re: DSB Version 0.78

Post by Gambit37 »

Awesome, thank you so much for for all these updates. I already tried the window spell and it works great! Looking forward to sorting out all the other bits and bobs... :D
User avatar
Gambit37
Should eat more pies
Posts: 13715
Joined: Wed May 31, 2000 1:57 pm
Location: Location, Location
Contact:

Re: DSB Version 0.78

Post by Gambit37 »

I discovered a side effect of the multidraw fix is that I can no longer send messages from one of the multidraw items to another. But don't worry, I don't need a fix for that: I found another way of doing what I wanted, and I know what I'm doing is pretty unusual (no other DSB dungeon designer would be likely to need this feature).
User avatar
Sophia
Concise and Honest
Posts: 4240
Joined: Thu Sep 12, 2002 9:50 pm
Location: Nowhere in particular
Contact:

Re: DSB Version 0.78

Post by Sophia »

I don't know what you mean by that. The only thing I changed was how multidraw wallitems handle clickzones.
User avatar
Gambit37
Should eat more pies
Posts: 13715
Joined: Wed May 31, 2000 1:57 pm
Location: Location, Location
Contact:

Re: DSB Version 0.78

Post by Gambit37 »

It's no big deal: one of the multidraw items could previously send a M_DESTROY message to the other multidraw item on the same tile. It worked in all previous versions, but it doesn't in 0.78. Same for dsb_delete() -- nothing happens. But don't worry about it, I found a different solution.
User avatar
Sophia
Concise and Honest
Posts: 4240
Joined: Thu Sep 12, 2002 9:50 pm
Location: Nowhere in particular
Contact:

Re: DSB Version 0.78

Post by Sophia »

I just tested, and multidraw wallitems can still send destroy messages to other multidraw wallitems on the same tile, and the targeted item is indeed destroyed. So I'm not sure what was going wrong but it's not that.

So, yeah, I don't know either. Let me know if you run into a reproducible issue, though.
User avatar
Gambit37
Should eat more pies
Posts: 13715
Joined: Wed May 31, 2000 1:57 pm
Location: Location, Location
Contact:

Re: DSB Version 0.78

Post by Gambit37 »

It was my modified mirror_clicks function, with this modified part within it. I've commented out the two functions that no longer work, and instead I swap to a null wallitem with blank graphics. (Obviously I wouldn't use both a destroy msg and a delete on the same item, that's just from testing).

Code: Select all

dsb_offer_champion(inside, offer_mode, function ()
	GVARS.partySize = GVARS.partySize + 1
	offered = true
	exvar[id].champion = nil
	got_triggered(id, nil)
	local_sound(id, snd.mirror_wake)
	dsb_qswap(id, "mirror_used")
	local tilecontents = dsb_fetch(l, x, y, d)
	for x=1,#(tilecontents) do
		local arch = dsb_find_arch(tilecontents[x])
		if (arch == obj.mirror_sparks) then
			-- dsb_msg(0, tilecontents[x], M_DESTROY, 0)
			-- dsb_delete(tilecontents[x])
			dsb_qswap(tilecontents[x], "null")
		end
	end
end)
User avatar
Sophia
Concise and Honest
Posts: 4240
Joined: Thu Sep 12, 2002 9:50 pm
Location: Nowhere in particular
Contact:

Re: DSB Version 0.78

Post by Sophia »

Ok, thanks, I could reproduce it this time and it was actually a symptom of a pretty serious problem with the message queues. I've replaced the DSB 0.78 download, so please download it again to get the fix. Your old code should work fine now.
User avatar
Joramun
Mon Master
Posts: 925
Joined: Thu May 25, 2006 7:05 pm
Location: The Universe

Re: DSB Version 0.78

Post by Joramun »

Just saw the set current position option. Made my day.
What Is Your Quest ?
User avatar
Gambit37
Should eat more pies
Posts: 13715
Joined: Wed May 31, 2000 1:57 pm
Location: Location, Location
Contact:

Re: DSB Version 0.78

Post by Gambit37 »

Yeah, I noticed this but haven't noticed what it's useful for? How is it different to Set Party Start position?
User avatar
Sophia
Concise and Honest
Posts: 4240
Joined: Thu Sep 12, 2002 9:50 pm
Location: Nowhere in particular
Contact:

Re: DSB Version 0.78

Post by Sophia »

If you've invoked DSB via ESB, you can move the "current position" around in ESB and your position in DSB will jump around accordingly.
Stingm
Apprentice
Posts: 58
Joined: Wed Jan 26, 2011 7:36 pm

Re: DSB Version 0.78

Post by Stingm »

Thanks for all the hard work Sophia.
User avatar
Gambit37
Should eat more pies
Posts: 13715
Joined: Wed May 31, 2000 1:57 pm
Location: Location, Location
Contact:

Re: DSB Version 0.78

Post by Gambit37 »

Sophia wrote: Thu Nov 12, 2020 10:15 pm Ok, thanks, I could reproduce it this time and it was actually a symptom of a pretty serious problem with the message queues. I've replaced the DSB 0.78 download, so please download it again to get the fix. Your old code should work fine now.
Awesome, thank you, yes that works fine now.
Sophia wrote: Fri Nov 13, 2020 9:37 pm If you've invoked DSB via ESB, you can move the "current position" around in ESB and your position in DSB will jump around accordingly.
Aha! I've not really used this new mode much, this feature will really help with that. Fantastic :-)
User avatar
Seriously Unserious
Master Superior
Posts: 1418
Joined: Sun May 11, 2008 11:53 am
Location: Wandering around aimlessly in Lynchgate Woods
Contact:

Re: DSB Version 0.78

Post by Seriously Unserious »

I've been gone for years, glad to see so many of the old guard still here, and to see you still hard at work on DSB. Hopefully it works well on Win 10, I'd like to get back into the DM games as much as time allows, and with Christmas coming up soon, I'll probably have a little extra time for games for a while at least.
User avatar
Sophia
Concise and Honest
Posts: 4240
Joined: Thu Sep 12, 2002 9:50 pm
Location: Nowhere in particular
Contact:

Re: DSB Version 0.78

Post by Sophia »

My development PC runs Windows 10 so it should work fine!
User avatar
Seriously Unserious
Master Superior
Posts: 1418
Joined: Sun May 11, 2008 11:53 am
Location: Wandering around aimlessly in Lynchgate Woods
Contact:

Re: DSB Version 0.78

Post by Seriously Unserious »

That's good news.

Man, it's been so long, I've missed everyone here.
Post Reply