Apricity Posted August 14, 2011 Report Share Posted August 14, 2011 It's not in currently and I don't think I could do one from scratch. Feel free to build on my gmk or the previous one. Link to comment Share on other sites More sharing options...
toaster1 Posted August 14, 2011 Report Share Posted August 14, 2011 Okay, now I see that Overbound has already made a level tally, and it has fucking blown my level tally out of the goddamn water. For archive's sake, though, here's mine so you can laugh at it. Create Event:set variable weeb to 0 execute code: sound_stop(global.Music); sound_play(sndLevelEnd); objGlobalController.scoring = 1 timebonus = 413 ringbonus = (global.Rings*100) hapen = 0 happen = 0 happpen = 0 happppen = 0 move = -320 scoretimemin = (floor(global.GameTime/60000)) scoretimesec = (floor(global.GameTime/1000)) if timebonus = 413 {{if scoretimemin < 1 & happpen = 0 {if scoretimesec < 30 //Game clock reads 0:29 or less = 50000 {timebonus = 50000} else if scoretimesec < 45 //Game clock reads 0:30 to 0:44 = 10000 {timebonus = 10000} else //Game clock reads 0:45 to 0:59 = 5000 {timebonus = 5000}} else if scoretimemin < 2 {if scoretimesec < 30 //Game clock reads 1:00 to 1:29 = 4000 {timebonus = 4000} else //Game clock reads 1:30 to 1:59 = 3000 {timebonus = 3000}} else if scoretimemin < 3 //Game clock reads 2:00 to 2:59 = 2000 {timebonus = 2000} else if scoretimemin < 4 //Game clock reads 3:00 to 3:59 = 1000 {timebonus = 1000} else if scoretimemin < 5 //Game clock reads 4:00 to 4:59 = 500 {timebonus = 500} else timebonus = 0}} alarm[3] = 120 Alarm Event for alarm 0: execute code: happppen = 1; sound_loop(sndCalculate) Alarm Event for alarm 1: execute code: instance_create(view_xview[0], view_yview[0], objTransitionFadeOut) alarm[2] = 10 Alarm Event for alarm 2: set variable weeb to 1 Alarm Event for alarm 3: execute code: happpen = 1 Step Event: execute code: if move = 0 {if happppen = 1 {if global.Rings > 0 {global.Rings -=1; global.Score +=100; ringbonus -= 100;} if timebonus > 0 {if timebonus = 413 exit else {global.Score +=100; timebonus -= 100}}}} if ringbonus = 0 and timebonus = 0 and hapen = 0 {alarm[1] = 120; hapen = 1; sound_stop(sndCalculate); sound_play(sndKaching);} if weeb = 1 {if instance_exists(objTransitionFadeOut) exit else room_goto_next()} if !sound_isplaying(sndLevelEnd) and happen = 0 and happpen = 1 {happen = 1; alarm[0] = 3} if move < 0 {move += 10;} Just look at it. It's horrible. Link to comment Share on other sites More sharing options...
Apricity Posted August 14, 2011 Report Share Posted August 14, 2011 Doesn't seem so laughable to me. Albeit I haven't compared your code to OverBounds but tbh it looked good in the demo I played of Sonic Genesis. Link to comment Share on other sites More sharing options...
toaster1 Posted August 14, 2011 Report Share Posted August 14, 2011 It works, but it's difficult to understand, haphazardly coded and I rely too much upon nonsensical variables. To be honest with you the only part worth using is the part that actually applies the scores in the Create function. Everything else is terrible... Link to comment Share on other sites More sharing options...
Apricity Posted August 14, 2011 Report Share Posted August 14, 2011 I'm making a chain and hook gimmick (the ones out of wing fortress zone), someone asked for them so I gues sif we're gonna make this an open-source engine with lotsa gimmicks I should start there? :L Link to comment Share on other sites More sharing options...
toaster1 Posted August 14, 2011 Report Share Posted August 14, 2011 No, Overbound already created a good one. What I'm saying is that if you port over what he's done in the STT engine (which is seperate from SDash+ atm) you'll be better off than trying to port mine. He earlier says that his work is sloppy; this is entirely a lie. He does in one object what I do in two, ableit in slightly longer fashion. If you can forge some sort of weird hybrid between them, it could work better, but if you were choosing his is better. Link to comment Share on other sites More sharing options...
OverbounD Posted August 14, 2011 Author Report Share Posted August 14, 2011 If it 404's give it a minute its uploading. http://dl.dropbox.com/u/5170721/Sonic_D%2B_plus.gmk I fixed the shimmy. 1 Link to comment Share on other sites More sharing options...
Apricity Posted August 14, 2011 Report Share Posted August 14, 2011 Thanks, what was causing the problem? What did you think of what I did? I understand it's mediocre I was just wondering if I was going in the right direction with it? Link to comment Share on other sites More sharing options...
OverbounD Posted August 14, 2011 Author Report Share Posted August 14, 2011 The offset on your new Sonic sprite seems to be off in many areas. I'm not really sure how to get the correct offset but I'll look into it. The breakable wall should work with a little tweaking. AeroGP or Damizean could no doubt tell you a more efficient way to do it but what you have is close to working. I know why your broken pieces aren't showing up. piece1 = instance_create(x+16,y-32,objBreakWallPiece) This script is run in objPlayer so when you use x and y you are referencing the player's x and y coordinates. You need to reference the wall. piece1 = instance_create(_ObjectHandle.x+16,_ObjectHandle.y-32,objBreakWallPiece) The shimmy didn't work because you used a different sprite for your shimmy. So various y offsets needed to be changed. Not to mention it was one of the first things I coded in Dash so it was kind of sloppy anyway. So I fixed the offset problems in the sprite and cleaned up the code a bit. I also messed with the mask and the offset in the collision function. To make it a little smoother. scrPlayerCollisionBottomObject(sprPlayerMask5, -10, _ObjectHandle) The collision scripts in Dash are an important thing to know how to use. No one should really be using GM's built in collision event at all within in Dash. Each collision script in dash as a brief explanation within it. // ==== FUNCTION ==================================================================== // scrPlayerCollisionBottomObject(Mask, Offset, Object) // ================================================================================== Mask should always be set to one of the sprPlayerMasks within the player sprites. The mask is then used to check the collision against whatever object you are colliding with. Offset is used to move the mask's y position up or down. Then Object is whatever else you are colliding with. These are important to know because if a collision isn't working like you want it to, chances are tweaking these setting will help. Link to comment Share on other sites More sharing options...
Apricity Posted August 14, 2011 Report Share Posted August 14, 2011 Those are both ridiculously silly mistakes on my part. What parts are the sprites offsetting incorrectly? If it's on hills, they work fine in 360 (from what I've seen) it's just my 8-point system is not perfect yet and leaves a little ot be desired. Link to comment Share on other sites More sharing options...
OverbounD Posted August 14, 2011 Author Report Share Posted August 14, 2011 Yeah you are right its probably the 8 point rotation thing that is making your sprites look off. The thing is when you use 8 point its easier to see that the offset isn't exactly the same as on the Genesis. So it ends up looking a bit odd. Link to comment Share on other sites More sharing options...
Apricity Posted August 14, 2011 Report Share Posted August 14, 2011 Yeah it is the 8-point rotation, they look fine in 360. I'll work on touching it up a bit but I don't think there's much I can do. So are we going ahead with the whole "Sonic Worlds" but for GM idea? Link to comment Share on other sites More sharing options...
toaster1 Posted August 15, 2011 Report Share Posted August 15, 2011 Sounds like it. I'll try to help but you know I'm incredibly sloppy at this. Link to comment Share on other sites More sharing options...
Hybrid35 Posted August 15, 2011 Report Share Posted August 15, 2011 On one fourm im on. There was a Sonic worlds for GM, but it was in advanced sytle and all... Link to comment Share on other sites More sharing options...
Apricity Posted August 15, 2011 Report Share Posted August 15, 2011 Anything in particular you'd like to add? If you do add something please use the .gmk OverBound posted he fixed my stupid mistakes (I seriously have no idea why I didn't realise either of them). Also Hybrid, care to link me? Link to comment Share on other sites More sharing options...
Dark Raven X Posted August 15, 2011 Report Share Posted August 15, 2011 I would really like it if someone adds an end of level tally system to the SDASH+ engine. Really like it. Like, I will provide sexy favours. Link to comment Share on other sites More sharing options...
Apricity Posted August 15, 2011 Report Share Posted August 15, 2011 At the moment this doens't even add up scores for killing badniks. I'm not entirely sure which I prefer whether it be Toasters or OverBounds. Link to comment Share on other sites More sharing options...
Dark Raven X Posted August 15, 2011 Report Share Posted August 15, 2011 Jethawk has shown me the simple way of going to the next level; using Game Maker's own "on contact, go to next room" buttons in an object, but I'd like to learn to do it properly, coding it all. Time Twisted's works great, but it doesn't translate well, all kinds of variables and globals that I don't recognize and can't bring to vanilla SDASH. :/ Link to comment Share on other sites More sharing options...
Apricity Posted August 15, 2011 Report Share Posted August 15, 2011 Well you'd just make a collision event or script and add the code "room_goto_next();" or "room_goto(nameofroom);". Hmm, Toaster would you like to implement yours into it or would you prefer I ported OverBounds over? Link to comment Share on other sites More sharing options...
Hybrid35 Posted August 15, 2011 Report Share Posted August 15, 2011 ER sure gimme a sec to find it... http://s10.zetaboards.com/FGX_Insider/topic/666756/1/ Here you go Link in the first post. Link to comment Share on other sites More sharing options...
Apricity Posted August 15, 2011 Report Share Posted August 15, 2011 Have a working sign post. Pretty much OverBounds code but with some changes here and there. It no longer needs a global variable that isn't in the original engine to function. How ever to tell the act it will but I haven't got round to that. 1 Link to comment Share on other sites More sharing options...
Dark Raven X Posted August 15, 2011 Report Share Posted August 15, 2011 <3 you Chronic. Link to comment Share on other sites More sharing options...
Mr.S Posted August 15, 2011 Report Share Posted August 15, 2011 Have a working sign post. Pretty much OverBounds code but with some changes here and there. It no longer needs a global variable that isn't in the original engine to function.How ever to tell the act it will but I haven't got round to that. Could create a "Global.Act" variable that is defined each time when a room is loaded. That's how I have done it or you could do it the long way round (if room =1 then act = 1 don't recommend it). Link to comment Share on other sites More sharing options...
OverbounD Posted August 15, 2011 Author Report Share Posted August 15, 2011 That's how I did it too Mr. S. Link to comment Share on other sites More sharing options...
Apricity Posted August 15, 2011 Report Share Posted August 15, 2011 That's how I'm planning on doing it, just had an arguement with someone on the phone for a few hours so haven't implemented it at all. Have done now. It's a little messy but it works. Link to comment Share on other sites More sharing options...
Recommended Posts