Show Posts

This section allows you to view all posts made by this member. Note that you can only see posts made in areas you currently have access to.

Messages - ffomega

Pages: [1] 2 3 ... 14
Game art & music / Re: Mouhitotsu no Takarajima
« on: May 15, 2017, 11:06:21 am »
yeah everything is fine, 000webhost decided to update their site.  Their instructions were very vague and you can't even message them directly without paying membership fees.  Chris was kind enough to give me space on the solarus-games server so don't worry :) a backup of my site was made weeks prior to the update.  As a result of 000webhost however, I was given no choice but to delete the entire site from their server.  I apologize for the inconvenience, and will redirect you to the new link.

Game art & music / Mouhitotsu no Takarajima
« on: April 21, 2017, 10:11:19 pm »
Hey guys! I just found out something really interesting that might benefit Solarus in terms of sprites.

This game,

Mouhitotsu no Takarajima, was originally directed by Eiji Aonuma, and shares a very similar art-style to A Link to the Past.

Here are some screens:

It would appear this game's sprites and tiles may look at home in Solarus.  What do you guys think?

my apologies....I have updated all the tiles you highlighted as well as all remaining water tiles within the tileset group to match the tiles found in your original outdoor tileset.  They are all now deep_water ground type.

The data file for the tileset and the package have been updated.  Chris I sent you a copy of the data file through skype ^^

But I am a little confused.  If the diagonal tiles that you highlighted should be wall/water ground type, then when the hero runs into them will he not be able to walk out of the water when colliding with those tiles?

Development / Re: Problem w global go value
« on: April 02, 2017, 07:15:37 pm »
That solved the problem!! Thank you very much :)

Development / Re: Problem w global go value
« on: April 02, 2017, 06:48:45 pm »
I may have figured out the problem.

I want to create ten different versions of this enemy (and all others for my enemy package)  As of right now, the scripts for both enemies (octorok and the stone) have not been rewritten.

To keep all enemies sorted neatly, however, I want to place them all in their own separate folders--in this case, a folder named "Octoroks".  It is when I place the enemy script for both the octorok and the stone in its own directory when I begin seeing this problem.  If I move the enemy script outside of the Octoroks folder (leaving it in the root directory of "enemies"), it works as intended, so the problem lies in the location of the octorok script.  Any ideas on how I can resolve this problem?

Development / Re: Problem w global go value
« on: April 02, 2017, 02:33:59 pm »
Here's the code for the octorok stone:

Code: Lua
  1. -- Stone shot by Octorok.
  3. local enemy = ...
  5. function enemy:on_created()
  7.   enemy:set_life(1)
  8.   enemy:set_damage(2)
  9.   enemy:create_sprite("enemies/" .. enemy:get_breed())
  10.   enemy:set_size(8, 8)
  11.   enemy:set_origin(4, 4)
  12.   enemy:set_invincible()
  13.   enemy:set_obstacle_behavior("flying")
  14. end
  16. function enemy:on_obstacle_reached()
  18.   enemy:remove()
  19. end
  21. function enemy:go(direction4)
  23.   local angle = direction4 * math.pi / 2
  24.   local movement = sol.movement.create("straight")
  25.   movement:set_speed(192)
  26.   movement:set_angle(angle)
  27.   movement:set_smooth(false)
  28.   movement:start(enemy)
  30.   enemy:get_sprite():set_direction(direction4)
  31. end

Development / Re: Problem w global go value
« on: April 02, 2017, 01:50:36 am »
I tried swapping lines 45 and 46 and no changed happened.  Here is the exact error message.  It only appears when the hero gets close enough to the octorok to trigger it to shoot at him.

Error: In timer callback: [string "enemies/Octoroks/octorok.lua"]:55: attempt to call method 'go' (a nil value)

Development / Re: Problem w global go value
« on: April 01, 2017, 11:58:57 pm »
I'm receiving a similar error message from the octorok script, only instead it is giving an error for method 'go' instead of global 'go'.  Also in my case, the octorok moves as it should until the hero gets close to it, then it stops moving.  It continues to animate the walking animation, but it is unable to move.  It also does not shoot a projectile, but the stone sound can be heard.  The hero can even kill it like a normal enemy.

Here's the code:

Code: Lua
  1. -- Octorok: shoots stones.
  3. local enemy = ...
  5. local children = {}
  7. local can_shoot = true
  9. function enemy:on_created()
  11.   enemy:set_life(3)
  12.   enemy:set_damage(2)
  13.   enemy:create_sprite("enemies/" .. enemy:get_breed())
  14. end
  16. local function go_hero()
  18.   local sprite = enemy:get_sprite()
  19.   sprite:set_animation("walking")
  20.   local movement = sol.movement.create("target")
  21.   movement:set_speed(64)
  22.   movement:start(enemy)
  23. end
  25. local function shoot()
  27.   local map = enemy:get_map()
  28.   local hero = map:get_hero()
  29.   if not enemy:is_in_same_region(hero) then
  30.     return true  -- Repeat the timer.
  31.   end
  33.   local sprite = enemy:get_sprite()
  34.   local x, y, layer = enemy:get_position()
  35.   local direction = sprite:get_direction()
  37.   -- Where to create the projectile.
  38.   local dxy = {
  39.     {  8,  -4 },
  40.     {  0, -13 },
  41.     { -8,  -4 },
  42.     {  0,   0 },
  43.   }
  45.   sprite:set_animation("shooting")
  46.   enemy:stop_movement()
  47.   sol.timer.start(enemy, 300, function()
  49.     local stone = enemy:create_enemy({
  50.       breed = "octorok_stone",
  51.       x = dxy[direction + 1][1],
  52.       y = dxy[direction + 1][2],
  53.     })
  54.     children[#children + 1] = stone
  55.     stone:go(direction)
  57.     sol.timer.start(enemy, 500, go_hero)
  58.   end)
  59. end
  61. function enemy:on_restarted()
  63.   local map = enemy:get_map()
  64.   local hero = map:get_hero()
  66.   go_hero()
  68.   can_shoot = true
  70.   sol.timer.start(enemy, 100, function()
  72.     local hero_x, hero_y = hero:get_position()
  73.     local x, y = enemy:get_center_position()
  75.     if can_shoot then
  76.       local aligned = (math.abs(hero_x - x) < 16 or math.abs(hero_y - y) < 16)
  77.       if aligned and enemy:get_distance(hero) < 200 then
  78.         shoot()
  79.         can_shoot = false
  80.         sol.timer.start(enemy, 1500, function()
  81.           can_shoot = true
  82.         end)
  83.       end
  84.     end
  85.     return true  -- Repeat the timer.
  86.   end)
  87. end
  89. function enemy:on_movement_changed(movement)
  91.   local direction4 = movement:get_direction4()
  92.   local sprite = self:get_sprite()
  93.   sprite:set_direction(direction4)
  94. end
  96. local previous_on_removed = enemy.on_removed
  97. function enemy:on_removed()
  99.   if previous_on_removed then
  100.     previous_on_removed(enemy)
  101.   end
  103.   for _, child in ipairs(children) do
  104.     child:remove()
  105.   end
  106. end

In a previous message, it was mentioned that 'go' has to be defined.  Is this the case here as well? If so, I do not know how to do this

I thought I'd share with you a new type of soldier for Solarus--the Hyrule Castle Tower soldiers.

These soldiers were basically the same as the sword-carrying soldiers scattered all over Hyrule in A Link to the Past, except these were only seen inside Hyrule Castle tower, and unlike their brothers, these guys held their sword up high and had different helmets as well.

I created these sprites because they barely exist outside of single poses from search engines.  The only place I was able to find more than one pose of these guys was on a single sprite sheet on the Spriters' Resource, so I decided to create an entire sheet for Solarus, in ten variants.  The simple soldiers have also been given the new helmets (Again, if you want to use these alongside existing soldiers, create copies of the sprites and scripts, then just assign the new copies to this sheet):

Script-wise, they function exactly like the regular soldiers who carry swords.  You can copy the scripts and assign them to the new sprites, or you may choose to overwrite the ones you already have for a more menacing looking soldier.  The choice is yours!

UPDATE! I added Spear soldiers now.  Again, these sprites use the same scripts as the soldiers do, and can be made from copies of the soldiers scripts, or as replacements to the soldiers:

Hmmm alright that's not a problem :) I'll fix it

I was looking through the first half of Link to the Past and noticed that there are at least 5-6 different types of soldiers:

Sword Knight
Sword Knight type 2 (holding sword up high with no shield)
Spear Knight
Archer or Spear-Throwing Knight
Bomb Knight
Ball & Chain Trooper

These are not including NPC soldiers the hero finds before going into Hyrule Castle for the first time, or the ones seen outside the castle at the end credits.  Currently I have ten variants of the simple soldiers and the Sword Knights.  I am working on Sword Knight type 2.  These knights can be found inside Hyrule Castle Tower, and are the ones which more closely resemble Chris' soldiers in Mystery of Solarus.

These are going to take some time to put together, as there are almost no full sprite sheets of the other soldier types online (at least by using a search), except maybe a still frame of a pose.  Anyway, the package has been updated :)

Development / Mystery of Solarus: Signs and Eggs
« on: March 23, 2017, 02:30:26 am »
I'm looking through the maps in Mystery of Solarus, and noticed that signs are created as NPC entities.  So in order to replicate the sign, being able to show the hero a dialogue, as well as be lifted, thrown, and then destroyed, I was unable to find the code that shows how to do that.

The millasaur eggs in the first dungeon would be kind of perfect for the large black and white rocks littered around hyrule.  I noticed that they were marked as enemy entities, which is fine to be honest.  I do not need the segments that allow them to hatch however.

In the case of the eggs, is it wise to leave it as an enemy or (considering I don't need the enemy to spawn from it), can it be copied and pasted in as a custom entity?

In the case of the signs, where within your game would I be able to find the code that allows me to lift, throw, and destroy NPCs to make the signs work like a destructable that can be spoken to?

the modifications are made

By the way Chris.  I noticed that whenever I overwrite files in the webspace you provided for me, visually it appends rather than replaces.  When I browse folder in the directory, there are multiple folders and files with the same name, and the number grows every time I try to replace a file or folder (I have made 4 edits to the tilesets in question, and have replaced the package more than once...and there is an extra duplicate of every file for the number of times it has been replaced.

Is that something I need concern myself with?

Okay I'll fix those.  Should I do this for all the stairs or just the ones turned to the side?

Alright I'll fix the weak walls.  I also went in and fixed the outside tileset.  I realized that when I made it, I did not place a grass tile down next to the water tiles.  Originally, I had it set in my mind that users could pick whatever tile color they wanted so there would be no need for a grass tile, as it would be redundant.

However, looking back on it, and with your comment, I decided to add it back for simplicity, as finding the tile in the palette proved difficult even for me.

The two tiles for both light world and dark world are actually here:

I have replaced the origfinal grass tile by placing it next to the water tiles.

Pages: [1] 2 3 ... 14