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 - eliwolfe92

Pages: [1]
1
Your projects / Re: Some Maps I've been working on...
« on: December 04, 2018, 02:21:35 am »
I definitely agree that it needs variety in each area, majora's mask is a great example. I kept it uniform just to see if it would even work (I ended up being off by a pixel or two in measurement)

I honestly can't remember what my immediate influence for this city was but I kind of felt like making a city from a classic final fantasy (maybe something from I-VI) Not really a story in my head for this place (definitely something I have to fix)

@brlmnd I do see what you're saying, I didn't mean to assume that it was dislike. Thanks for your reaction/view, I appreciate it

2
Your projects / Re: Some Maps I've been working on...
« on: December 03, 2018, 04:53:23 pm »
I'm sorry to hear you don't like it, it's definitely meant to be linear (or easier to navigate in this case since it's a rather large map) Thank you for sharing your opinion though, I appreciate the feedback positive or negative.

3
Your projects / Re: Some Maps I've been working on...
« on: December 01, 2018, 09:37:11 pm »
Another Map I've been working on, this time however I'm curious if performance would be rough on a map of this size? Could some 'tricks' perhaps be done to help performance? Any thoughts? I appreciate any feedback, thanks.

Also please forgive the atrocious ms paint hackjob. Is there a way to somehow export maps as a .png or something along those lines?

Here's the imgur link: https://imgur.com/2EP9U5i

lastly is there a spoiler tag, this map is really large  ::)


4
General discussion / Re: Need Help With Enemy Scripting
« on: November 03, 2018, 11:40:32 pm »
Thanks alex! testing this out now.

5
General discussion / Re: Need Help With Enemy Scripting
« on: November 03, 2018, 08:22:54 pm »
I really appreciate all the help everyone, I'm trying my best to get lua, well programming in general and all of your help is motivating to say the least. I found this: https://github.com/wrightmat/zbom/blob/master/data/enemies/pike_auto.lua
which works perfectly for what I wanted in that hallway. I'm trying to break the script down now and see what it's doing so I can modify it as necessary.
Another hallway in the same dungeon...

I'm trying to use this:
Code: [Select]
local enemy = ...
local state = "stopped"  -- "stopped", "moving", "going_back" or "paused".
local initial_xy = {}
local activation_distance = 24

-- Pike that moves when the hero is close.

function enemy:on_created()
  self:set_life(1); self:set_damage(4)
  self:create_sprite("enemies/pike_detect")
  self:set_size(16, 16); self:set_origin(8, 13)
  self:set_can_hurt_hero_running(true)
  self:set_invincible()
  initial_xy.x, initial_xy.y = self:get_position()
end

function enemy:on_update()
  local hero = self:get_map():get_entity("hero")
  if state == "stopped" and self:get_distance(hero) <= 192 then
    -- Check whether the hero is close.
    local x, y = self:get_position()
    local hero_x, hero_y = hero:get_position()
    local dx, dy = hero_x - x, hero_y - y

    if math.abs(dy) < activation_distance then
      if dx > 0 then self:go(0)
      else self:go(2) end
    end
    if state == "stopped" and math.abs(dx) < activation_distance then
      if dy > 0 then self:go(3)
      else self:go(1) end
    end
  end
end

function enemy:go(direction4)
  local dxy = {
    { x =  8, y =  0},
    { x =  0, y = -8},
    { x = -8, y =  0},
    { x =  0, y =  8}
  }

  -- Check that we can make the move.
  local index = direction4 + 1
  if not self:test_obstacles(dxy[index].x * 2, dxy[index].y * 2) then
    state = "moving"
    local x, y = self:get_position()
    local angle = direction4 * math.pi / 2
    local m = sol.movement.create("straight")
    m:set_speed(192)
    m:set_angle(angle)
    m:set_max_distance(104)
    m:set_smooth(false)
    m:start(self)
  end
end

function enemy:on_obstacle_reached()
  self:go_back()
end

function enemy:on_movement_finished()
  self:go_back()
end

function enemy:on_collision_enemy(other_enemy, other_sprite, my_sprite)
  if other_enemy:get_breed() == self:get_breed() and state == "moving" then
    self:go_back()
  end
end

function enemy:go_back()
  if state == "moving" then
    state = "going_back"
    local m = sol.movement.create("target")
    m:set_speed(64)
    m:set_target(initial_xy.x, initial_xy.y)
    m:set_smooth(false)
    m:start(self)
    sol.audio.play_sound("sword_tapping")
  elseif state == "going_back" then
    state = "paused"
    sol.timer.start(self, 500, function() self:unpause() end)
  end
end

function enemy:unpause()
  state = "stopped"
end
but the script only seems to use distance in all directions. does anyone know how to go about modding the script so that the pikes only activate on a specific X/Y coordinate? For instance in the picture above I'm trying to make it so the pikes only activate when you're on the same Y coordinate as they are on the map, and nothing else is in the way (tiles, entities, ect.) That may be too much just to modify this script as far as I know. Any thoughts?

6
General discussion / Re: Need Help With Enemy Scripting
« on: October 29, 2018, 12:16:38 am »
I went ahead and added traversable but it didn't seem to change anything as far as I can tell. I also changed the movement type to straight. Right now it moves to the left but I'm trying to figure out how to have it change direction when it reaches the wall (in this case).
Code: [Select]
-- Lua script of enemy trap.
-- This script is executed every time an enemy with this model is created.

-- Feel free to modify the code below.
-- You can add more events and remove the ones you don't need.

-- See the Solarus Lua API documentation for the full specification
-- of types, events and methods:
-- http://www.solarus-games.org/doc/latest

local enemy = ...
local game = enemy:get_game()
local map = enemy:get_map()
local hero = map:get_hero()
local sprite
local movement

-- Event called when the enemy is initialized.
function enemy:on_created()

  -- Initialize the properties of your enemy here,
  -- like the sprite, the life and the damage.
  sprite = enemy:create_sprite("enemies/" .. enemy:get_breed())
  enemy:set_invincible(1)
  enemy:set_damage(1)
  enemy:set_traversable(true)
end

-- Event called when the enemy should start or restart its movements.
-- This is called for example after the enemy is created or after
-- it was hurt or immobilized.
function enemy:on_restarted()

  movement = sol.movement.create("straight")
  movement:set_smooth(true)
  movement:set_angle(3.14)
  movement:set_speed(192)
  movement:start(enemy)
end

7
General discussion / Need Help With Enemy Scripting
« on: October 28, 2018, 07:08:22 pm »
I'm trying to create a hallway, not unlike like this one from ALttP...


Here's mine...


I unfortunately can't get my spike traps to act accordingly. Here's the script I made below...
Code: [Select]
-- Lua script of enemy trap.
-- This script is executed every time an enemy with this model is created.

-- Feel free to modify the code below.
-- You can add more events and remove the ones you don't need.

-- See the Solarus Lua API documentation for the full specification
-- of types, events and methods:
-- http://www.solarus-games.org/doc/latest

local enemy = ...
local game = enemy:get_game()
local map = enemy:get_map()
local hero = map:get_hero()
local sprite
local movement

-- Event called when the enemy is initialized.
function enemy:on_created()

  -- Initialize the properties of your enemy here,
  -- like the sprite, the life and the damage.
  sprite = enemy:create_sprite("enemies/" .. enemy:get_breed())
  enemy:set_invincible(1)
  enemy:set_damage(1)
end

-- Event called when the enemy should start or restart its movements.
-- This is called for example after the enemy is created or after
-- it was hurt or immobilized.
function enemy:on_restarted()

  movement = sol.movement.create("path")
  movement:set_path{4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}
  movement:set_speed(96)
  movement:start(enemy)
  path_movement:set_loop(true)
end

Two things I'm trying to get the code to do (unsuccessfully) are...
  • Travel back and forth at a set speed on the same left/right path over and over
  • Not be stopped by the hero, enemies, attacks, anything really. (to add to this I would like it to make that 'tink tink' noise when you slash it, shoot it, try to blow it up whatever)
I'm REALLY new to coding in general so I'd appreciate the input.

8
Your projects / Re: Some Maps I've been working on...
« on: October 28, 2018, 05:48:11 am »
Thanks for the feedback! The village is kinda awkward but it works/looks alright I guess (just kinda threw it together) the maps that you said are too open are the first ones I made so that makes sense. I've been trying to get better about planning before building in general. I've been learning a lot through trial and error but really just on the mapping front. I've done VERY little coding so far (no enemies or puzzles for the most part) If you'd happen to be willing to throw any advice about coding whatsoever I'd appreciate it greatly. Either way thanks for the welcome 8)

9
Your projects / Some Maps I've been working on...
« on: October 28, 2018, 12:27:28 am »
I've only just recently as of a few weeks ago discovered Solarus but I've been having a lot of fun making maps with the Quest Editor as you can see in the imgur gallery below...

https://imgur.com/a/Wpr65tR

(I wasn't sure how to make my images available in the post, sorry noob here.)

I know they're not great but I thought I'd share anyway. I'll be posting more when I get time. peace

oh and Hi everyone, I'm new here.

Pages: [1]