Super Bomberman Blast... 2! (EXE) v1.50.4

Status
Not open for further replies.
Flame_the_hedgehog said:
Kaysakado said:
And if it's not already, make the flame spawn more flames, instead of the bomb spawning all of them. Then, the Water Block thing would work.

I'm not going to use a water block to stop the flames, they'll pass through the walls anyway, and what you suggested Kaysakado is not possible with my current knowledge of programming.
Why would they pass through the walls? If you check the MF_FIRE flag, it'll dissapear under water.
 
It's the way the coding is set up, Shuffle has to fix it up a bit.

EDIT: Great news! Shuffle finally managed to fix his bomb explosion code so it doesn't go through walls, and ontop of that, it fixed what was causing most of the freezing, Joy!
But another problem has occured, it seems that the pickup code that I wrote occasionaly freezes gameplay at times, Seems like I'll have to rewrite it...
 
Don't do anything with the code yet, I still have to fix what is causing the freezing.

Edit: If you guys are wondering why I haven't released a new version of this yet, it's because Shuffle and I have been busy trying to fix the gameplay of it, and it still freezes at times which me and Shuffle haven't been able to figure out. Also, trying to get bombs to turn solid after you walk a certain distance away from them wont be easy (Lol, emulating bomberman). I have a general idea on how I could go about doing it.
 
For turning bombs solid, make it wait a few seconds, then use A_SetFlags. That could fake it, but it would be after a few seconds, not when the player walks away.
 
Now that I've gotten around to it, I managed to write a code of how I could be able to turn bombs solid, if the player is too far away, although I am unsure if this is the best way of going about doing that.
Code:
	if (player)
	{
		thinker_t *think;
		mobj_t *mo;

		for (think = thinkercap.next; think != &thinkercap; think = think->next)
		{
			if (think->function.acp1 != (actionf_p1)P_MobjThinker) // Eliminate anything except Mobjs
				continue;
			
			mo = (mobj_t *)think;

			// If the mobj doesn't have any health, or if it's disappearing, ignore it.
			if ((mo->health <= 0) || (mo->state == &states[S_DISS]))
				continue;


			// Make sure this applies to only bombs
			if (mo->type != MT_BOMB)
				continue;

			// Out of range? Skip it.
			if (P_AproxDistance(P_AproxDistance(player->mo->x-mo->x, player->mo->y-mo->y),
				player->mo->z-mo->z) > mo->radius)
				continue;

			//Hm, good, you're far enough away from the bomb, so no we can change it's flags
			mo->flags |= MF_SOLID;
			mo->flags &= ~MF_NOCLIP;
		}
	}

Hell, I use this type of code whenever I'm checking for a specific distance of a mobj, in this case, a bomb. Although I'm pretty sure there's another way of doing this. P_CheckSight or maybe just using P_AproxDistance perhaps?
 
Suggestion in P_MobjThinker, This code makes it so only the player who dropped the bomb can walk in it.

Code:
	if (mobj->target && mobj->type == MT_BOMB && mobj->health > 0 && mobj->state != &states[S_DISS])
	{
		thinker_t *think;
		mobj_t *mo;

		for (think = thinkercap.next; think != &thinkercap; think = think->next)
		{
			if (think->function.acp1 != (actionf_p1)P_MobjThinker) // Eliminate anything except Mobjs
				continue;

			mo = (mobj_t *)think;

			// If the mobj doesn't have any health, or if it's disappearing, ignore it.
			if ((mo->health <= 0) || (mo->state == &states[S_DISS]))
				continue;

			// Is it your Player?
			if (mo != mobj->target)
				continue;

			// In range? Desolid the bomb.
			if (P_AproxDistance(P_AproxDistance(mo->x-mobj->x, mo->y-mobj->y),
				mo->z-mobj->z) <= (mo->radius + mobj->radius + 10*FRACUNIT))
			{
				mobj->flags &= ~MF_SOLID;
				mobj->flags |= MF_NOCLIP;
				CONS_Printf("P_MobjThinker: desolid bomb\n");
				break;
			}

			// Hm, good, you're far enough away from the bomb, so no we can change it's flags
			mobj->flags |= MF_SOLID;
			mobj->flags &= ~MF_NOCLIP;
			CONS_Printf("P_MobjThinker: solid bomb\n");
			break;
		}
	}
 
Heh, Thanks once again Turtle-Man, I tested out the code and it seemed to work really nicely.

Although, I needed to edit the code slightly because I am trying to emulate the stylings of bomberman, as best as SRB2 can handle.

EDIT: The next version of Super Bomberman Blast is here!

Mirror 1 (Right click and Save as...)
Mirror 2

Includes the following:
-Better working movement for moving up and down for 2D mode.
-Color changing bombs (Because then it's easier to locate other people's bombs)
-A better working pickup code that doesn't cause freezing almost all the time!
-Fixed Flames from going through walls.
-Bomberman Physics of "dropping the bomb" (lol)
-A 'Firepower' console command. It should only be used for testing purposes. Only works while you're in Devmode and not in multiplayer.

Also, before you guys ask, a screenshot is located on the first page of the topic.

EDIT 2: Comments are really appreciated. :(
 
I can't stand the way the multiplayer camera looks in OpenGL. Perhaps you could use different cameras for Software and OpenGL modes?
 
The camera looks pretty bad in both renderers.. In OpenGL, all the sprites are billboarded. In Software, all of the sectors are distorted like mad. Maybe the game should be played on a wall? That would fix the bugs for both renderers and be more true to the classic 2D games. :P
 
Honestly, I feel that making the mod play on a wall would be way too much work, I'd have to make the Z movement act like the Y movement, and vise versa. Also, I don't know how I would be able to make the Y axis have gravity like Z movement does.

I could try enlarging the sprites, probably make the floor heights of the sectors smaller, or I could just fiddle around with the current camera that 2D mode has and hopefully get somewhere with that.

bombermanonlinescreenshxx0.png

I forget why I posted the screenshot, but it had to do with the shading on the blocks and how the foot of my character is covered by the block.
 
Good

Umm, mirror 1 dosen't work, I'mm using Mirror 2 to download it...

Pretty good! But -

>< Camera seems too low...i can harrdy see myself!
>< Control is quite hard...
^^ Excellent powerups!
>< I had a flame that went thru walls...
 
Re: Good

J-town said:
Umm, mirror 1 dosen't work, I'mm using Mirror 2 to download it...

Pretty good! But -

>< Camera seems too low...i can harrdy see myself!
>< Control is quite hard...
^^ Excellent powerups!
>< I had a flame that went thru walls...

Mirror 1 does work, you have to RIGHT CLICK and click SAVE AS...

Moving on to the problems... I could try moving the camera farther up on the Z axis, although I don't think that will help really. For the movement, I don't see how it can be hard, you can get stuck on walls, yes, but it shouldn't be that hard. Also, for the flame, how did you have a flame go through walls? I thought Shuffle fixed that, Can you provide a screenshot of a flame going through a wall?
 
Re: Good

Flame_the_hedgehog said:
Mirror 1 does work, you have to RIGHT CLICK and click SAVE AS...

Firefox is still pissed at Mirror 1, and Mega Upload sucks balls. Meh, downloaded it anyways.
 
Re: Good

Blue Warrior said:
Flame_the_hedgehog said:
Mirror 1 does work, you have to RIGHT CLICK and click SAVE AS...
Firefox is still pissed at Mirror 1, and Mega Upload sucks balls. Meh, downloaded it anyways.
Actually, the reason being is that php0h was stupid and it supposevly deleted my account that I had on it. I am on a new web host (See: Profile) that supplies me with 25 GB of free hosting space. I will get a new Mirror 1 link up as fast as possible.
 
Status
Not open for further replies.

Who is viewing this thread (Total: 1, Members: 0, Guests: 1)

Back
Top