Jump to content
New account registrations are disabed. This website is now an archive. Read more here.

Question

Good night everyone,

 

I've been working hard on my project and almost everything is going according to plan. There are a few things I would like some help with. These are probably fairly easy to solve:

  • I'm using an Enemy Detection System script with which I can make events notice and chase me when I come to close. I want to change, or disable (not quite sure yet), the sound it makes when it detects me. I've gone through the script a couple of times and can't seem to find it. Does anyone know where to do this? This is the script:
    
    #--------------------------------------------------------------------------
    #			 Enemy Detection System
    #			 by Gubid - 8/12/07
    #			 v 1.2.2 Updated 10/2/07
    #--------------------------------------------------------------------------
    #Description:
    #This system allows events that are named something including "ENEMY" then
    #that event will be told to approach Game_Player, until Game_Player has gotten
    #a specified distance away. At that time event will return to its original
    #position if desired. If you happen to get close enough to the returning event
    #it will begin to follow you again.
    #
    #Thanks to Near Fantasia for supplying the slightly modified path finding script.
    #--------------------------------------------------------------------------
    #if there are any questions as to the use of this script or
    #modifications/additions/etc, please post it to the thread on CreationAyslum.net
    #--------------------------------------------------------------------------
    
    #--------------------------------------------------------------------------
    #Update_Detect - How to Stop Detection if desired
    #--------------------------------------------------------------------------
    #1. Within a event, add a SCRIPT (3rd page)
    #2. type "update_detect(EVENT_ID, TRUE/FALSE)" -Note: it defaults to false
    
    #--------------------------------------------------------------------------
    #RETURN TO POSITION
    #--------------------------------------------------------------------------
    #Use this to determine if you would like the event to return to its original
    #position or not.
    #--------------------------------------------------------------------------
    RETURN_TO_POSITION = true
    
    #--------------------------------------------------------------------------
    #CHASE_SPEED and ENABLE_SPEED_CHANGE
    #--------------------------------------------------------------------------
    #Use this to set the speed in which enemies will approach after spotting you
    #and whether or not their speed will change.
    #--------------------------------------------------------------------------
    CHASE_SPEED = 4
    ENABLE_SPEED_CHANGE = false
    CHASE_FREQUENCY = 6
    ENABLE_FREQUENCY_CHANGE = true
    
    #--------------------------------------------------------------------------
    #VIEW_RANGE
    #--------------------------------------------------------------------------
    #Use this to set the distance in which you must be in order to start the detection
    #process, or escape to stop.
    #--------------------------------------------------------------------------
    VIEW_RANGE = 4
    
    #--------------------------------------------------------------------------
    #ESCAPE_RANGE
    #--------------------------------------------------------------------------
    #Use this to set the distance in which you must escape to stop the detection process
    #--------------------------------------------------------------------------
    ESCAPE_RANGE = 8
    
    #--------------------------------------------------------------------------
    #Other Notes
    #--------------------------------------------------------------------------
    #If the event has a custom move route, they will resume that route when finished
    #chasing you, but if you dont set RETURN_TO_POSITION, then they will resume
    #their custom route at the location they stopped chasing you.
    
    class Game_Map
    #--------------------------------------------------------------------------
    # * Frame Update
    #--------------------------------------------------------------------------
     alias en_detect_gm_update update
     def update
    en_detect_gm_update
    
    # Update map event
    for event in @events.values
      if !event.name.include?("enemy")
    	next
      else
    	if event.character_name != ""
    	  if event.stop_detect?
    		next
    	  end
    	  if check_distance(event.id) == true
    		if event.exclamation == false
    		  event.old_type = event.move_type
    		  event.move_type = 2
    		  if ENABLE_SPEED_CHANGE
    			event.old_speed = event.move_speed
    			event.move_speed = CHASE_SPEED
    		  end
    			if ENABLE_FREQUENCY_CHANGE
    			  event.old_frequency = event.move_frequency
    			  event.move_frequency = CHASE_FREQUENCY
    			end
    
    		  event.exclamation = true
    		  event.animation_id = 98 #98 happens to be the exclamation animation
    		  event.f_route.clear
    		end
    	  else
    		if event.exclamation == true
    		  event.exclamation = false
    		  if RETURN_TO_POSITION == true
    			if event.x != @map.events[event.id].x or event.y != @map.events[event.id].y
    			  route = get_route(event, @map.events[event.id].x, @map.events[event.id].y)
    			  event.run_route(route)
    			end
    		  else
    			event.restore_route
    		  end
    		end
    	  end
    	end
      end
    end
     end
    
     def check_distance(id = nil)
    unless id == nil
      event = $game_map.events[id]
      range = ($game_player.x - event.x).abs + ($game_player.y - event.y).abs
    
      if range <= VIEW_RANGE and range > 0
    	return true
      elsif range <= ESCAPE_RANGE and range > 0 and event.exclamation
    	return true
      end
    end
     end
    
     def get_route(event, x=0, y=0)
    target_x = x
    target_y = y
    max = (target_x - event.x).abs + (target_y - event.y).abs + 5
    position = [[event.x, event.y]]
    route = [[]]
    more_step = [0]
    for i in more_step
      x = position[i][0]
      y = position[i][1]
      if !position.include?([x, y + 1]) and event.passable?(x, y, 2)
    	position.push([x, y + 1])
    	route.push(route[i] + [2])
    	if route[i].size + 1 < max
    	  more_step.push(route.index(route[i] + [2]))
    	end
      end
    
      if !position.include?([x - 1, y]) and event.passable?(x, y, 4)
    	position.push([x - 1, y])
    	route.push(route[i] + [4])
    	if route[i].size + 1 < max
    	  more_step.push(route.index(route[i] + [4]))
    	end
      end
    
      if !position.include?([x + 1, y]) and event.passable?(x, y, 6)
    	position.push([x + 1, y])
    	route.push(route[i] + [6])
    	if route[i].size + 1 < max
    	  more_step.push(route.index(route[i] + [6]))
    	end
      end
    
      if !position.include?([x, y - 1]) and event.passable?(x, y, 8)
    	position.push([x, y - 1])
    	route.push(route[i] + [8])
    	if route[i].size + 1 < max
    	  more_step.push(route.index(route[i] + [8]))
    	end
      end
    end
    if position.index([target_x, target_y]) == false
      return [2]
    else
      return route[position.index([target_x, target_y])]
    end
     end
    end
    
    
    class Game_Event
     attr_accessor :move_type
     attr_accessor :move_speed
     attr_accessor :move_frequency
     attr_accessor :old_speed
     attr_accessor :old_frequency
     attr_accessor :exclamation
     attr_accessor :old_type
     attr_accessor :stop_trigger
     attr_reader   :f_route
    
     def initialize(map_id, event)
    super()
    @map_id = map_id
    @event = event
    @id = @event.id
    @erased = false
    @starting = false
    @through = true
    @name = @event.name
    @exclamation = false
    @f_route = []
    @step = 0
    @old_type = @move_type
    @old_move_route =  @move_route
    @old_speed = @move_speed
    @old_frequency = @move_frequency
    @stop_trigger = false
    moveto(@event.x, @event.y)
    refresh  
     end
    
     def stop_detect?
    return @stop_trigger
     end
    
     def restore_route
    @move_type = @old_type
    @move_route_index = @original_move_route_index
    @move_speed = @old_speed
    @move_frequency = @old_frequency
    refresh
    return
     end
    
     def name
    return @name
     end
    
     alias en_det_update update
     def update
    if @f_route.size > 0
      run_path unless self.moving?
      if @f_route.size == 0
    	restore_route
      end
    end  
    en_det_update
     end
    
     def run_route(route)
    @f_route = route
    @step = 0
     end
    
     def run_path
    if @f_route.size > 0
      if @f_route[@step] == nil
    	@f_route = []
      end
      action = @f_route[@step]
      @step += 1
      case action
      when 2
    	self.move_down
      when 4
    	self.move_left
      when 6
    	self.move_right
      when 8
    	self.move_up
      end
    end
     end
    end
    
    class Interpreter
     def update_detect(id, set = false)
    $game_map.events[id].stop_trigger = set
     end
    
     def spotted?
    is_true = 0
    for event in $game_map.events.values
      if event.exclamation
    	is_true += 1
      end
    end
    if is_true > 0
      return true
    else
      return false
    end
     end
    
     def change_switch(id = 0, value = false, type = 0, switch = "A")
    if id > 0
      if type == 0 #for use of main switches
    	#id is switch_id and value should set to true or false
    	$game_switches[id] = value
      elsif type == 1 #For use of self switches
    	#id is event.id and switch is the desired selfswitch. It must be text!
    	#value is true or false
    	key = [$game_map.map_id, id, switch]
    	# Updates self switch
    	$game_self_switches[key] = value
      end
      # Refresh map
      $game_map.need_refresh = true
      return true
    end
     end
    end
    
    


  • Another issue I ran into (has been bothering me everytime I used the program over the years) is the lack of information when you level up. Does anyone know a decent script I can use (compatible with ParaDog's ATB v.2.61 if possible) to make the game tell me stats increases and newly learned skills when leveling up?
  • How can I make the game remember event locations after leaving the map? Couldn't find any solutions on the web.

Thanks in advance! Any help with any question is welcome.

 

Good night all,

Erik

 

Edit:

Added a third issue I forgot about.

Edited by Stammetje91

Share this post


Link to post
Share on other sites

2 answers to this question

Recommended Posts

  • 0

1. The sound is probably from coming from the animation, I did a quick search for "se_play", and it wasn't found, so that is likely what it is.

 

2. Don't know.

 

3. You can actually do it with a a few lines. Create a variable to save $game_map.events when you go to leave a map, before they change to the new map, and then reset them when you return. All you really need is an array or probably more suitable a hash to use to store the events per map, and a small alias to the setup method of Game_Map. I can probably write one in 2 minutes if you need any help.

Share this post


Link to post
Share on other sites
  • 0

To add to fZer0's response:

Yes, it is not the script causing the sound effect, it's the animation that is played through the script:

event.animation_id = 98 #98 happens to be the exclamation animation

 

98 is the ID no. in the database of the animation that is played. You can:

A) Change this number to another animation number

B) Edit animation no. 98 in the database to play no sound, a different sound or even change the entire animation all together.

Share this post


Link to post
Share on other sites

Please sign in to comment

You will be able to leave a comment after signing in



Sign In Now

  • Recently Browsing   0 members

    No registered users viewing this page.

×
×
  • Create New...