You are not logged in.
I like Endless Mine Zone and I wanted to play it on full-fledged level. I propose my mod for Open Sonic 0.1.4.
Act 1 is usualy Sonic's level with varios routes, secret places and traps.
Act 2 is quest.
Act 3 is battle with many enemies.
Download mod: https://yadi.sk/d/hhXbNXnX3Qvey9 .
For install this mod, you should copy files from this folder in folder with Open Sonic game on your computer. Files from EMZ_MOD\images should be placed in folder Open Sonic\images, files from EMZ_MOD\levels should be placed in Open Sonic\levels etc.
Open "opensonic.exe", select "Extras", then select "Endless Mine Zone".
If you finded bugs, glitches or if you have wishes and advice, then you can posted comment on this page.
I wish you a pleasant game!
I ran into problems:
1. I could not created a boss. I do not know how to do it.
2. I could not realised working loops: character rests against the wall and "Loop -->" "Loop OFF" blocks doesn't worked. How to properly place them?
Offline
Hi G.E.R., welcome to the forum!
The level design here is decent; I noticed that it's a maze-type level, which I picture Endless Mine as.
As for proper placement of loop "identifiers", take note of how other loops in the default levels do it. There's also problems with slopes in the level as well.
I highly recommend using version 0.2.0 instead of 0.1.4 for your project. It is much more customizable, and allows you to work with more things like variables.
Here's a page on the wiki telling how to make a simple boss object in 0.2.0: http://opensnc.sourceforge.net/wiki/ind … ustom_Boss
Cheers!
-SGWaS
Offline
SGWaS, thank you for your feedback!
Yes, this level is linear level with maze-type zone, you can see it on level map (Act 2):
I wanted to created act 1 as linear level and act 2 as quest with maze sectors. And I think that I can realize other levels from "Competetion mode Sonic 3" with bosses in version 0.2.0. Thank you for help!
Offline
I working over the rest levels from Sonic-3-Competetion. So, I created Azure Lake and Chrome Gadget Zones, they has various textures in my mod. Azure Lake has are day and night levels. Chrome Gadget Act 2 has railway themes. Also, there are underwater and underground places in levels from my mod. When I completed all 5 Zones, I will be porting levels on Open Surge and publish on this forum.
Offline
Since you are doing your stuff in 0.1.4, you can make the bosses simply as:
state "hit1"
{
//move the boss doing its stuff
//if receives a hit by Sonic, change to state hit2
}
state "hit2"
{
//This function is exactly the same as hit1, but leads to hit3 when hitted
}
state "hit3"
{
//Same as hit1 and hit2, but leads to hit4... and so on.
}
In the last hit, you simply destroy your object. However, for future projects, consider switching to 0.2.0. If you want to have Sonic & Co there, simply copy the Sonic sprites, as well as the files that define the images in 0.1.4 to the correspondent folder in 0.2.0. Tails and Knuckles will lose their skills, but you can find scripts here in the forum. Moreover, in 0.2.0 you can customize the characters with different stats such as jump height, speed, etc.
For boss stuff, in 0.2.0 you can use variables, so making a boss becomes easier:
hits = 8 //Or whatever the syntax is for declaring variables, I don't remember now.
state "do_stuff"
{
//here comes the stuff done by boss
//If boss gets a hit, make hits = hits - 1
//If hits = 0, then kill the boss
}
Sorry for the pseudoscripts, but last time I did stuff in Open Surge was a pair of years ago I remember nothing about the syntax.
Piece of cake...!
Offline
Tails and Knuckles will lose their skills, but you can find scripts here in the forum.
Thank you for Tails andKnuckles scripts.
But I have a problem. I need that Knuckles can walking on the wall. Through what command to implement it?
My script:
on_right_wall_collision "Wall"
<...>
state "Wall" // Collision with a wall
{
set_player_animation "SD_KNUCKLES" 22
set_player_yspeed 0
set_player_xspeed 0
on_button_pressed "up" "Wall_up"
on_button_pressed "down" "Wall_down"
}
state "Wall_up" // Knuckles go up
{
set_player_animation "SD_KNUCKLES" 17
set_player_yspeed -20
on_button_pressed "up" "Wall_up"
on_button_pressed "down" "Wall_down"
change_state "Wall_stop"
}
state "Wall_down" // Knuckles go down
{
set_player_animation "SD_KNUCKLES" 17
set_player_yspeed 20
on_button_pressed "up" "Wall_up"
on_button_pressed "down" "Wall_down"
// ? ? ? on_wall_down "falling" ? ? ? // Knuckles reached the bottob of the wall and falling
change_state "Wall"
}state "Wall_top" // Knuckles reached the top of the wall
{
set_player_animation "SD_KNUCKLES" 16
set_player_yspeed -20
set_player_xspeed 10
change_state "main"
}
But it is dont working. Can you help me?
So, I need that Tails can flying and carried Sonic and I don't know how to do it. But this is not so important, if I can't made it, I can add moving platforms on my level.
Offline
// ? ? ? on_wall_down "falling" ? ? ? // Knuckles reached the bottob of the wall and falling
What if you implemented a collision detector instead of relying on on_right_wall_collision? You have more control over collisions that way. Then whenever Knuckles gets off the wall, you restore its regular movement.
Make sure you're also using disable_player_movement when wall climbing, otherwise Knuckles will be affected by gravity and regular user input, and it won't work this way.
So, I need that Tails can flying and carried Sonic and I don't know how to do it. But this is not so important, if I can't made it, I can add moving platforms on my level.
Use set_player_position & set_absolute_position and it will work
Offline
Thank you for link on API, this article gave a lot of useful information on programming
Offline
I can not do anything.
1. I used brick_exists(offset_x, offset_y) on Knukles_climbing script, but it value = 1 always, in any situation.
If "obstacle_exists(50,0) = 1" "Wall"
Also, when he lands on the floor, he should slide 1 second, but there are working jump in my script and I don't know how deactivate jump on this state. On_floor_collision don't working.
state "planning"
{
<...>
on_player_walk "slide"
<...>
}state "slide"
{
set_player_animation "SD_KNUCKLES" 19
on_timeout 1.2 "main"
}
2. Knuckles have other ability. When he is suitable for the Breakable-brick, this bricks destroying automatically. Is it possible to implement it through a script?
3. For carryng Sonic/Knuckles, I wrote a script, but I don't understand how to do the interaction between the characters. how to get coordinates from another script?
object ".coordinates"
{
requires 0.2.0
always_activestate "main"
{
hide
observe_player "Sonic"
let "$_sonic_xpos = player_xpos()"
let "$_sonic_ypos = player_ypos()"
}state "carry"
{
hide
observe_player "Sonic"
set_player_position "$_tails_xpos" "$_tails_ypos + 50"
set_player_animation "SD_SONIC" "25"
}
}state "fly"
{
gravity
let "$_tails_xpos = player_xpos()"
let "$_tails_ypos = player_ypos()"
If "$_sonic_ypos = $_tails_ypos + 200" "sonic_carring"
<...>
}state "sonic_carring"
{
set_player_animation "SD_TAILS" 16
let "$_tails_xpos = player_xpos()"
let "$_tails_ypos = player_ypos()"on_player_run "main"
on_player_walk "main"set_player_yspeed -100
play_sample "samples/Tails_Fly_1.wav"change_child_state ".coordinates" "carry"
on_timeout 10 "fall"
}
Offline
Let's approach one thing at a time.
The thing to do to get the position of the players is to associate an object to them, and make the sharing of the position its sole purpose. The position is not exported in states; you have an object that does that and only that.
One solution would be: make an object, write observe_player "Character Name", use attach_to_player 0 0, and then export the position of the object. Make an object for each of the characters, changing only the character name.
Then in your other scripts, you use the exported variable.
1. I used brick_exists(offset_x, offset_y) on Knukles_climbing script, but it value = 1 always, in any situation.
If "obstacle_exists(50,0) = 1" "Wall"
Rather than obstacle_exists(50,0) = 1, try obstacle_exists(50,0) == 1. '==' is the comparison operator.
Offline
try obstacle_exists(50,0) == 1
I did't know it. I worked only with Basic, Pascal and JavaScript, and I working with C# scripts for the first time. I thinked than C# syntax is similar to Delphi's syntax, but I was wrong.
Offline
Alexandre, can I determine the behavior of brick (fall or breakable) and destroy this brick if it is breackable?
Offline
Yesterday I found the interesting Endless Mine fan concept by ghostbladebenjix on DevianArt. It's a painted level map on paper :
I always imagined this as a full stage in the game, it's simply beautiful
How do you think, will it be a good idea to realised the playable level, with based on this picture?
Last edited by G.E.R. (2018-06-29 07:51:15)
Offline
Maybe you could ask the artist for permission first?
-- svgmovement
Offline
I am reuploading this game for the purpose of historical preservation.
Title: Endless Mine Zone by G.E.R.
Made with: Open Sonic 0.1.4
Year: 2017
Extract the files on top of Open Sonic 0.1.4. Make sure that the folders match. Read the Readme file that is shipped with the game.
Offline