CS: Online

Oct 10, 2009 at 4:42 AM
Junior Member
"Wahoo! Upgrade!"
Join Date: May 29, 2009
Location:
Posts: 45
Mr. Fist said:
Well... Could you at least have the spritesheets so people can modify/make their own skins if they need to be fixed/people want to create them?
I was thinking about making them external.
That would require a bit of coding however.
 
Oct 10, 2009 at 5:00 AM
The Bucket Fairy
"..."
Join Date: Jul 8, 2009
Location: Genesis City, Nowhere
Posts: 374
Not really what I meant, I meant that you could post the spritesheets so that they could be modified and you can make your own to submit 'n' stuffs.
 
Oct 10, 2009 at 5:38 AM
Been here way too long...
"Life begins and ends with Nu."
Join Date: Jan 4, 2008
Location: Lingerie, but also, like, fancy curtains
Posts: 3054
I am enforcing a strict no source release policy on this game, as I don't want hackers. (Yes even when it isn't online yet.)
Dude...
you are aware that there is a game maker decompiler, right?
I keep it handy cuz my gm6s always get corrupted.
>_>

to cut to the chase, a no source policy is jerky unless you also obfuscate/encrypt your game.

and now to critique your coding practices. :rolleyes:
eh, nothing much to say, really, except the way you're doing collisions and movement now is irksome (to me). I would've put it all in the step event, and used a nice little code like this one:
Code:
xx = x + hw             // middle of the sprite
yy = y + hh             // middle of the sprite
// hh, hw, th and tw are set in the create event, basically the height and width of the sprite for tw and th, and half that for the others.

gotox = (keyboard_check(ord("D"))-keyboard_check(ord("A")))

repeat(movspeed) {
if gotox > 0 {
if position_meeting(x+(gotox*tw),y,obj_block) {
break;
} else {
x += gotox
}
} else {
if position_meeting(x+gotox,y,obj_block) {
break;
} else {
x += gotox
}
}
}
it gives pixel perfect collisions for a rectangle. you should be able to get it to work nicely w/ quote.
also, three objects for you quote? why!?
well, whatever, you're the one working on this, not me (until now, that is. =P)
if you want to do external resources, I use a code something like this (in a create event)
Code:
//sets variables
load = 0
ltext = "Music"
done = false
loadmass = 11
loadwidth = 192
hw = room_width/2
hh = room_height/2
c_col = c_purple
c_bak = c_purple

//loads external files

/* === MUSIC === */
global.mid_theme = sound_add("Resources\Music\bringitin.mid",1,false)
sound_volume(global.mid_theme,0.92)
load += 1
screen_redraw()

global.mid_exploration = sound_add("Resources\Music\exploration.mid",1,false)
sound_volume(global.mid_exploration,0.92)
load += 1
screen_redraw()

global.mid_frosty = sound_add("Resources\Music\frozencave.mid",1,false)
sound_volume(global.mid_frosty,0.92)
load += 1
screen_redraw()

global.mid_racy = sound_add("Resources\Music\thereturn.mid",1,false)
sound_volume(global.mid_racy,0.92)
load += 1
screen_redraw()

global.mp3_anon = sound_add("Resources\Music\mozzakanon.mp3",3,false)
sound_volume(global.mp3_anon,0.92)
load += 1
screen_redraw()

global.mp3_crazy = sound_add("Resources\Music\mozzakhookerslolol.mp3",3,false)
sound_volume(global.mp3_crazy,0.92)
load += 1
screen_redraw()

global.mp3_parallel = sound_add("Resources\Music\mozzakparallel.mp3",3,false)
sound_volume(global.mp3_parallel,0.92)
load += 1
screen_redraw()


/* === BACKGROUNDS === */
ltext = "Backgrounds"
global.bak_menu = background_add("Resources\Graphics\Big\bak_menu.png",false,false,false)
load += 1
screen_redraw()

global.bak_select = background_add("Resources\Graphics\Big\bak_select.png",false,false,false)
load += 1
screen_redraw()

/* === BIG SPRITES === */
ltext = "Humondo Images"
global.spr_border = sprite_add("Resources\Graphics\Big\spr_border.png",1,0,1,0,0,0,0)
load += 1
screen_redraw()

global.spr_pausebox = sprite_add("Resources\Graphics\Big\spr_pausebox.png",1,0,1,0,0,156,128)
load += 1
screen_redraw()

/* === LITTLE SPRITES === */
ltext = "Ikkle Images"

/* === EXCESS === */
ltext = "Glitches"
repeat(loadwidth-loadmass) {
load += 1
screen_redraw()
//sleep(25)
}

/* === FINISH LOADING === */
done = true

you'd also need a draw event w/ something like:
Code:
//renders the loading screen 
//won't work if loadmass is higher than loadwidth. if that's the case, use alternate route (commented out)

if done=false {
draw_set_alpha(1) //prep
c_col = draw_merge_color(c_black,loadwidth-load,c_aqua,load)
//c_col = draw_merge_color(c_blue,loadmass-load,c_aqua,load)
c_bak = draw_merge_color(c_red,loadwidth-load,c_black,load)
//c_bak = draw_merge_color(c_red,loadmass-load,c_maroon,load)

draw_sprite_stretched_ext(spr_bar,-1,hw-(loadwidth/2)+1,hh-2,loadwidth+2,6,c_bak,true) //bak
draw_sprite_stretched_ext(spr_bar,-1,hw-(loadwidth/2)+1,hh-2,load,6,c_col,true) //bar
//draw_sprite_stretched_ext(spr_bar,-1,hw-(loadwidth/2)+1,hh-2,(loadwidth*load)/loadmass,6,c_col,true)
draw_sprite_ext(spr_end,-1,hw-(loadwidth/2)-1,hh-2,1,1,0,c_col,1)
draw_sprite_ext(spr_end,-1,hw+(loadwidth/2)+3,hh-2,-1,1,0,c_bak,1)

draw_set_color(c_white) //border
draw_sprite_ext(spr_casing,-1,hw-(loadwidth/2)-1,hh-3,1,1,0,c_white,1)
draw_sprite_ext(spr_casing,-1,hw+(loadwidth/2)+3,hh-3,-1,1,0,c_white,1)
draw_line(3+hw-(loadwidth/2),hh-3,hw+(loadwidth/2),hh-3)
draw_line(3+hw-(loadwidth/2),hh+3,hw+(loadwidth/2),hh+3)

draw_set_font(fnt_Load) //other
draw_set_halign(fa_center) 
draw_text(hw,hh-24,"Initializing "+ltext+"")
draw_line(hw-(loadwidth/2)+load,hh-7,hw-(loadwidth/2)+load,hh+7)
} else {
}
draw_merge_color is this(really unoptimized):
Code:
//draw_merge_color(color1,weight,color2,weight)
//made by me

//gets the rgb values for the first color
hcolor1 = color_get_red(argument0)
scolor1 = color_get_blue(argument0)
vcolor1 = color_get_green(argument0)

//and for the second color
hcolor2 = color_get_red(argument2)
scolor2 = color_get_blue(argument2)
vcolor2 = color_get_green(argument2)

//weights them
weight1 = argument1
weight2 = argument3
tweight = weight1 + weight2

whcolor1  =  weight1 * hcolor1
wscolor1  =  weight1 * scolor1
wvcolor1  =  weight1 * vcolor1

whcolor2  =  weight2 * hcolor2
wscolor2  =  weight2 * scolor2
wvcolor2  =  weight2 * vcolor2

//and adds them
hcolor3 = (whcolor1 + whcolor2) / tweight
scolor3 = (wscolor1 + wscolor2) / tweight
vcolor3 = (wvcolor1 + wvcolor2) / tweight

//and forms the color
color3 = make_color_rgb(hcolor3,vcolor3,scolor3)

return color3
yeah, don't just copy and paste that into your game, since it uses a lot of local sprites and directories etcetera, but it should help you get de general gist of how to do it (if ya didn't already know).

as a tip, I'd say start all sprite names w/ spr_blabla and all object names as obj_blabla. it helps a lot.

lastly, are you using parents? they are extraordinarily usyfull.

tl;dr: read the stupid post.
that was a sorta obnoxious post, seeing as you wanted it to be hack proof, but I was just trying to be nice... (really!)
(sorry for the smilers at the start)
 
Oct 10, 2009 at 6:21 AM
Junior Member
"Wahoo! Upgrade!"
Join Date: May 29, 2009
Location:
Posts: 45
Lace said:
Dude...
you are aware that there is a game maker decompiler, right?
I keep it handy cuz my gm6s always get corrupted.
>_>

to cut to the chase, a no source policy is jerky unless you also obfuscate/encrypt your game.

and now to critique your coding practices. :rolleyes:
eh, nothing much to say, really, except the way you're doing collisions and movement now is irksome (to me). I would've put it all in the step event, and used a nice little code like this one:
Code:
xx = x + hw             // middle of the sprite
yy = y + hh             // middle of the sprite
// hh, hw, th and tw are set in the create event, basically the height and width of the sprite for tw and th, and half that for the others.

gotox = (keyboard_check(ord("D"))-keyboard_check(ord("A")))

repeat(movspeed) {
if gotox > 0 {
if position_meeting(x+(gotox*tw),y,obj_block) {
break;
} else {
x += gotox
}
} else {
if position_meeting(x+gotox,y,obj_block) {
break;
} else {
x += gotox
}
}
}
it gives pixel perfect collisions for a rectangle. you should be able to get it to work nicely w/ quote.
also, three objects for you quote? why!?
well, whatever, you're the one working on this, not me (until now, that is. =P)
if you want to do external resources, I use a code something like this (in a create event)
Code:
//sets variables
load = 0
ltext = "Music"
done = false
loadmass = 11
loadwidth = 192
hw = room_width/2
hh = room_height/2
c_col = c_purple
c_bak = c_purple

//loads external files

/* === MUSIC === */
global.mid_theme = sound_add("Resources\Music\bringitin.mid",1,false)
sound_volume(global.mid_theme,0.92)
load += 1
screen_redraw()

global.mid_exploration = sound_add("Resources\Music\exploration.mid",1,false)
sound_volume(global.mid_exploration,0.92)
load += 1
screen_redraw()

global.mid_frosty = sound_add("Resources\Music\frozencave.mid",1,false)
sound_volume(global.mid_frosty,0.92)
load += 1
screen_redraw()

global.mid_racy = sound_add("Resources\Music\thereturn.mid",1,false)
sound_volume(global.mid_racy,0.92)
load += 1
screen_redraw()

global.mp3_anon = sound_add("Resources\Music\mozzakanon.mp3",3,false)
sound_volume(global.mp3_anon,0.92)
load += 1
screen_redraw()

global.mp3_crazy = sound_add("Resources\Music\mozzakhookerslolol.mp3",3,false)
sound_volume(global.mp3_crazy,0.92)
load += 1
screen_redraw()

global.mp3_parallel = sound_add("Resources\Music\mozzakparallel.mp3",3,false)
sound_volume(global.mp3_parallel,0.92)
load += 1
screen_redraw()


/* === BACKGROUNDS === */
ltext = "Backgrounds"
global.bak_menu = background_add("Resources\Graphics\Big\bak_menu.png",false,false,false)
load += 1
screen_redraw()

global.bak_select = background_add("Resources\Graphics\Big\bak_select.png",false,false,false)
load += 1
screen_redraw()

/* === BIG SPRITES === */
ltext = "Humondo Images"
global.spr_border = sprite_add("Resources\Graphics\Big\spr_border.png",1,0,1,0,0,0,0)
load += 1
screen_redraw()

global.spr_pausebox = sprite_add("Resources\Graphics\Big\spr_pausebox.png",1,0,1,0,0,156,128)
load += 1
screen_redraw()

/* === LITTLE SPRITES === */
ltext = "Ikkle Images"

/* === EXCESS === */
ltext = "Glitches"
repeat(loadwidth-loadmass) {
load += 1
screen_redraw()
//sleep(25)
}

/* === FINISH LOADING === */
done = true

you'd also need a draw event w/ something like:
Code:
//renders the loading screen 
//won't work if loadmass is higher than loadwidth. if that's the case, use alternate route (commented out)

if done=false {
draw_set_alpha(1) //prep
c_col = draw_merge_color(c_black,loadwidth-load,c_aqua,load)
//c_col = draw_merge_color(c_blue,loadmass-load,c_aqua,load)
c_bak = draw_merge_color(c_red,loadwidth-load,c_black,load)
//c_bak = draw_merge_color(c_red,loadmass-load,c_maroon,load)

draw_sprite_stretched_ext(spr_bar,-1,hw-(loadwidth/2)+1,hh-2,loadwidth+2,6,c_bak,true) //bak
draw_sprite_stretched_ext(spr_bar,-1,hw-(loadwidth/2)+1,hh-2,load,6,c_col,true) //bar
//draw_sprite_stretched_ext(spr_bar,-1,hw-(loadwidth/2)+1,hh-2,(loadwidth*load)/loadmass,6,c_col,true)
draw_sprite_ext(spr_end,-1,hw-(loadwidth/2)-1,hh-2,1,1,0,c_col,1)
draw_sprite_ext(spr_end,-1,hw+(loadwidth/2)+3,hh-2,-1,1,0,c_bak,1)

draw_set_color(c_white) //border
draw_sprite_ext(spr_casing,-1,hw-(loadwidth/2)-1,hh-3,1,1,0,c_white,1)
draw_sprite_ext(spr_casing,-1,hw+(loadwidth/2)+3,hh-3,-1,1,0,c_white,1)
draw_line(3+hw-(loadwidth/2),hh-3,hw+(loadwidth/2),hh-3)
draw_line(3+hw-(loadwidth/2),hh+3,hw+(loadwidth/2),hh+3)

draw_set_font(fnt_Load) //other
draw_set_halign(fa_center) 
draw_text(hw,hh-24,"Initializing "+ltext+"")
draw_line(hw-(loadwidth/2)+load,hh-7,hw-(loadwidth/2)+load,hh+7)
} else {
}
draw_merge_color is this(really unoptimized):
Code:
//draw_merge_color(color1,weight,color2,weight)
//made by me

//gets the rgb values for the first color
hcolor1 = color_get_red(argument0)
scolor1 = color_get_blue(argument0)
vcolor1 = color_get_green(argument0)

//and for the second color
hcolor2 = color_get_red(argument2)
scolor2 = color_get_blue(argument2)
vcolor2 = color_get_green(argument2)

//weights them
weight1 = argument1
weight2 = argument3
tweight = weight1 + weight2

whcolor1  =  weight1 * hcolor1
wscolor1  =  weight1 * scolor1
wvcolor1  =  weight1 * vcolor1

whcolor2  =  weight2 * hcolor2
wscolor2  =  weight2 * scolor2
wvcolor2  =  weight2 * vcolor2

//and adds them
hcolor3 = (whcolor1 + whcolor2) / tweight
scolor3 = (wscolor1 + wscolor2) / tweight
vcolor3 = (wvcolor1 + wvcolor2) / tweight

//and forms the color
color3 = make_color_rgb(hcolor3,vcolor3,scolor3)

return color3
yeah, don't just copy and paste that into your game, since it uses a lot of local sprites and directories etcetera, but it should help you get de general gist of how to do it (if ya didn't already know).

as a tip, I'd say start all sprite names w/ spr_blabla and all object names as obj_blabla. it helps a lot.

lastly, are you using parents? they are extraordinarily usyfull.

tl;dr: read the stupid post.
that was a sorta obnoxious post, seeing as you wanted it to be hack proof, but I was just trying to be nice... (really!)
(sorry for the smilers at the start)
You... you... decompiled my game?!
:rolleyes:
Anyways. The collision code that I'm using comes from the Gang Garrison 2 game. (It's really quite useful, but theirs doesn't do the humping thing)

As for the 3 objects... um, I forgot about the 'draw' event.

As for how I name things, that was also a little practice I got from GG2. (For those that DIDN'T decompile my game I lable them: name(S for sprite, O for object, ect.)
 
Oct 10, 2009 at 6:24 AM
The Bucket Fairy
"..."
Join Date: Jul 8, 2009
Location: Genesis City, Nowhere
Posts: 374
I had no idea there was a decompiler...
If I did I probably would've used it to fix the Scout.
 
Oct 10, 2009 at 6:24 AM
Junior Member
"Wahoo! Upgrade!"
Join Date: May 29, 2009
Location:
Posts: 45
Mr. Fist said:
I had no idea there was a decompiler...
If I did I probably would've used it to fix the Scout.
Stay away from my game with that evil tool!
 
Oct 10, 2009 at 6:27 AM
Junior Member
"Wow! The more I drink of this magical beverage, the more games I can play! Wheee!"
Join Date: Sep 28, 2009
Location:
Posts: 26
I have one, just for my games which always seem to corrupt - although I'm basically done from using Game Maker anyways...

Don't worry, I don't plan to use it anyways :p

Wait...is there a beta link to this? Even if it's not online? Where?!?! :o
 
Oct 10, 2009 at 6:28 AM
Level 73 Procrastinator
"Life begins and ends with Nu."
Join Date: Apr 6, 2009
Location: Forgotten Tower
Posts: 2052
"Nothing can be made fool-proof, because fools are so ingenius."

Blu Dragon said:
Stay away from my game with that evil tool!
Heheh, nothing's ever safe :p
I speak from experience, everything gets hacked sooner or later.
Just look at Cave Story :o;
 
Oct 10, 2009 at 6:31 AM
Junior Member
"Wow! The more I drink of this magical beverage, the more games I can play! Wheee!"
Join Date: Sep 28, 2009
Location:
Posts: 26
VoidMage_Lowell said:

I speak from experience, everything gets hacked sooner or later.
Just look at Cave Story :p;

Lol, there is a picture for this moment:

p87495-0-pwnedfacekickmedium.jpg
 
Oct 10, 2009 at 6:32 AM
The Bucket Fairy
"..."
Join Date: Jul 8, 2009
Location: Genesis City, Nowhere
Posts: 374
Blu Dragon said:
Stay away from my game with that evil tool!

A tool cannot be evil, only the one using it for evil purposes.
Lace used it when his gm6 file got corrupted so he could continue working on the game, and he used it to try to help you with the code.
I would've only used it to fix the Scout sprite. Is that evil?
 
Oct 10, 2009 at 6:33 AM
Junior Member
"Wahoo! Upgrade!"
Join Date: May 29, 2009
Location:
Posts: 45
goldenclaw13 said:
I have one, just for my games which always seem to corrupt - although I'm basically done from using Game Maker anyways...

Don't worry, I don't plan to use it anyways :p

Wait...is there a beta link to this? Even if it's not online? Where?!?! :o

Check back a few pages.
But the file got screwed up so, I have to remake a little bit of it.
However that link should work.
 
Oct 10, 2009 at 6:37 AM
Been here way too long...
"Life begins and ends with Nu."
Join Date: Jan 4, 2008
Location: Lingerie, but also, like, fancy curtains
Posts: 3054
sad, sad.
did ja find my obnoxo post helpful at all?
or just funny? :p

(okay, ima sleepin now. can any of youse figure out how many times I would have to post in a day to raise my posts per day by .01 tho?)
kthxbai.
 
Oct 10, 2009 at 6:42 AM
Junior Member
"Wahoo! Upgrade!"
Join Date: May 29, 2009
Location:
Posts: 45
Lace said:
sad, sad.
did ja find my obnoxo post helpful at all?
or just funny? :p

(okay, ima sleepin now. can any of youse figure out how many times I would have to post in a day to raise my posts per day by .01 tho?)
kthxbai.
I find it funny now, but when I've slept for a little bit and am more coherent, I'll probably find it helpful.
 
Oct 10, 2009 at 6:45 AM
The Bucket Fairy
"..."
Join Date: Jul 8, 2009
Location: Genesis City, Nowhere
Posts: 374
p87500-0-fixedscour.jpg

There. I got the sprite from the screenshot so you don't have to worry about your precious game.
What I did was:
  • Shortened Hair (Scout does not have long hair)
  • Added Bag
  • Made pants black
  • Shortened the headset slightly (it was a pixel too long)
  • And blew it up %500 so you could see it
 
Oct 10, 2009 at 6:47 AM
Junior Member
"Wahoo! Upgrade!"
Join Date: May 29, 2009
Location:
Posts: 45
Mr. Fist said:
p87500-0-fixedscour.jpg

There. I got the sprite from the screenshot so you don't have to worry about your precious game.
What I did was:
  • Shortened Hair (Scout does not have long hair)
  • Added Bag
  • Made pants black
  • Shortened the headset slightly (it was a pixel too long)
  • And blew it up %500 so you could see it
Hum. I congradulate you sir.
By the way, those pants weren't his, they were just the closest color.
 
Oct 10, 2009 at 10:54 PM
Junior Member
"Wahoo! Upgrade!"
Join Date: May 29, 2009
Location:
Posts: 45
Also just so you guys know, I added a new little tidbit of info to the wiki:
=Warning=

Contact with model CB and Q has been lost

Mimiga Status: Very Dangerous

Objective stauts: Failed

New Objective: Destroy the Demon Crown
New Objective: Retrieve Model Q and CB for recycling
New Objective: Destroy Mimigas

Initiate Project: FA-109
 
Oct 12, 2009 at 9:06 AM
Junior Member
"It's dangerous to go alone!"
Join Date: Jun 23, 2009
Location:
Posts: 39
Heh. I hardly post here.
DON'T PLAY SMW HACKS.

Anyway... keep it going. Remember to back up your stuff, or this will go down the drain.
 
Oct 12, 2009 at 4:33 PM
The Bucket Fairy
"..."
Join Date: Jul 8, 2009
Location: Genesis City, Nowhere
Posts: 374
Thanks for the obvious info. Now why exactly should we not play SMW hacks? And how is that relevant?
 
Oct 12, 2009 at 5:44 PM
Lvl 1
Forum Moderator
"Life begins and ends with Nu."
Join Date: May 28, 2008
Location: PMMM MMO
Posts: 3713
Age: 31
Mr. Fist said:
Thanks for the obvious info. Now why exactly should we not play SMW hacks? And how is that relevant?

His post is a bit of cause and effect, really. An effect is what happens as a result of the cause. In this case, the cause is him playing SMW hacks, whereas the effect is him not posting much on the forums. In essence he's saying his free time is being consumed by the playing of SMW hacks.
 
Oct 12, 2009 at 5:56 PM
Zzzzzzzzzzzzzttttt!!!!!
"Keep on rollin'!"
Join Date: May 19, 2009
Location: On Earth
Posts: 441
Age: 33
GirakaCHEEZER said:
His post is a bit of cause and effect, really. An effect is what happens as a result of the cause. In this case, the cause is him playing SMW hacks, whereas the effect is him not posting much on the forums. In essence he's saying his free time is being consumed by the playing of SMW hacks.

Ah, I thought it was because of Lowell's thread. That was my first guess anyway.
 
Top