UltimaForum

Wsparcie [VX] - Zmiana skryptu

Yoroiookami - Sob 07 Maj, 2011 16:55
Temat postu: Zmiana skryptu
Spoiler:

Kod:
#==============================================================================
#   Veiw Range Script
#------------------------------------------------------------------------------
#    By: Near Fantastica
#    Date: 25/11/04
#==============================================================================

class View_Range
#--------------------------------------------------------------------------
# ● Range system works by sereching the area of a circle for the Player's xy
#    The Veiw is set in each event and is the radius of the circle
#    The Eaquation used is (Px-EX)^2 + (Py-Ey)^2 = radius^2
#    If the Radius is less than or equal to the View the Player is inside the circle
#--------------------------------------------------------------------------
  attr_accessor :event_num
  attr_accessor :view_range
  #--------------------------------------------------------------------------
  # ● Initialization
  #--------------------------------------------------------------------------
  def initialize(event_num,veiw_range,els)
    @event_num = event_num
    @event_locial_switch = els
    @view_range = veiw_range
    @playerx = $game_player.x
    @playery = $game_player.y
    @eventx = $game_map.events[@event_num].x
    @eventy = $game_map.events[@event_num].y
    @event_direction = $game_map.events[@event_num].direction
  end
  #--------------------------------------------------------------------------
  # ● check = View_Range.new(EventID, Veiw Range, Local Switch)
  #    check.enemies_view
  #--------------------------------------------------------------------------
  def event_view
    @playerx-=@eventx
    @playerx*=@playerx
    @playery-=@eventy
    @playery*=@playery
    @playerx+=@playery
    @view_range*=@view_range
    if @playerx <= @view_range
      key=[$game_map.map_id, @event_num, @event_locial_switch]
      $game_self_switches[key] = true
    end
  end
  #--------------------------------------------------------------------------
  # &#9679; check = View_Range.new(EventID, Veiw Range, Local Switch)
  #    check.enemies_view
  #--------------------------------------------------------------------------
  def enemies_view   
    if @event_direction == 2
      if @playery >= @eventy
        @playerx-=@eventx
        @playerx*=@playerx
        @playery-=@eventy
        @playery*=@playery
        @playerx+=@playery
        @view_range*=@view_range
        if @playerx <= @view_range
          key=[$game_map.map_id, @event_num, @event_locial_switch]
          $game_self_switches[key] = true
          $game_system.timer = 420
          $game_system.timer_working = false
          $game_map.need_refresh = true
        end
      end
    end
    if @event_direction == 4
      if @playerx <= @eventx
        @playerx-=@eventx
        @playerx*=@playerx
        @playery-=@eventy
        @playery*=@playery
        @playerx+=@playery
        @view_range*=@view_range
        if @playerx <= @view_range
          key=[$game_map.map_id, @event_num, @event_locial_switch]
          $game_self_switches[key] = true
          $game_system.timer = 420
          $game_system.timer_working = false
          $game_map.need_refresh = true
        end
      end
    end
    if @event_direction == 6
      if @playerx >= @eventx
        @playerx-=@eventx
        @playerx*=@playerx
        @playery-=@eventy
        @playery*=@playery
        @playerx+=@playery
        @view_range*=@view_range
        if @playerx <= @view_range
          key=[$game_map.map_id, @event_num, @event_locial_switch]
          $game_self_switches[key] = true
          $game_system.timer = 420
          $game_system.timer_working = false
          $game_map.need_refresh = true
        end
      end
    end
    if @event_direction == 8
      if @playery <= @eventy
        @playerx-=@eventx
        @playerx*=@playerx
        @playery-=@eventy
        @playery*=@playery
        @playerx+=@playery
        @view_range*=@view_range
        if @playerx <= @view_range
          key=[$game_map.map_id, @event_num, @event_locial_switch]
          $game_self_switches[key] = true
          $game_system.timer = 420
          $game_system.timer_working = false
          $game_map.need_refresh = true
        end
      end
    end
  end
end



To View Range który działa pod XP, okazało się że działa też pod VX.
Chciałbym, żeby 'widzenie' działało, niezależnie od tego w którą stronę obrócone jest zdarzenie. Tak jak by zdarzenia miały oczy dookoła głowy. :S

Ayene - Nie 08 Maj, 2011 13:23

Spróbuj 'View Range' zamienić na:
Spoiler:

Kod:
#==============================================================================
#   Veiw Range Script
#------------------------------------------------------------------------------
#    By: Near Fantastica
#    Date: 25/11/04
#==============================================================================

class View_Range
#--------------------------------------------------------------------------
# &#9679; Range system works by sereching the area of a circle for the Player's xy
#    The Veiw is set in each event and is the radius of the circle
#    The Eaquation used is (Px-EX)^2 + (Py-Ey)^2 = radius^2
#    If the Radius is less than or equal to the View the Player is inside the circle
#--------------------------------------------------------------------------
  attr_accessor :event_num
  attr_accessor :view_range
  #--------------------------------------------------------------------------
  # &#9679; Initialization
  #--------------------------------------------------------------------------
  def initialize(event_num,veiw_range,els)
    @event_num = event_num
    @event_locial_switch = els
    @view_range = veiw_range
    @playerx = $game_player.x
    @playery = $game_player.y
    @eventx = $game_map.events[@event_num].x
    @eventy = $game_map.events[@event_num].y
    @event_direction = $game_map.events[@event_num].direction
  end
  #--------------------------------------------------------------------------
  # &#9679; check = View_Range.new(EventID, Veiw Range, Local Switch)
  #    check.enemies_view
  #--------------------------------------------------------------------------
  def event_view
    @playerx-=@eventx
    @playerx*=@playerx
    @playery-=@eventy
    @playery*=@playery
    @playerx+=@playery
    @view_range*=@view_range
    if @playerx <= @view_range
      key=[$game_map.map_id, @event_num, @event_locial_switch]
      $game_self_switches[key] = true
    end
  end
  #--------------------------------------------------------------------------
  # &#9679; check = View_Range.new(EventID, Veiw Range, Local Switch)
  #    check.enemies_view
  #--------------------------------------------------------------------------
  def enemies_view   
    @playerx-=@eventx
    @playerx*=@playerx
    @playery-=@eventy
    @playery*=@playery
    @playerx+=@playery
    @view_range*=@view_range
    if @playerx <= @view_range
      key=[$game_map.map_id, @event_num, @event_locial_switch]
      $game_self_switches[key] = true
      $game_system.timer = 420
      $game_system.timer_working = false
      $game_map.need_refresh = true
    end
  end
end


Yoroiookami - Nie 08 Maj, 2011 13:37

Dziękujem :mrgreen: działa pięknie. :przytul:

Powered by phpBB modified by Przemo © 2003 phpBB Group