Advertisement
DaxSoft

sensorVorum

Sep 10th, 2019
203
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Ruby 5.69 KB | None | 0 0
  1. =begin
  2.  
  3. Como usar: Escreva no nome do evento
  4.  
  5.  O padrão: <Sensor X>
  6.  
  7.  Para somente quando o player estiver na visão de frente do evento
  8.  <sfront X>
  9.  
  10.  Para somente quando o player estiver nas costas do evento
  11.  <sback X>
  12.  
  13.  Para somente quando o player estiver no lado esquerdo do evento
  14.  <sleft X>
  15.  
  16.  Para somente quando o player estiver no lado direito do evento
  17.  <sright X>
  18.  
  19. =end
  20.  
  21. class Game_Event < Game_Character
  22.  #-----------------------------------------------------------------------
  23.   SENSOR_SELF_SWITCH = 'D'
  24.  #-----------------------------------------------------------------------
  25.   alias drago64c_update update
  26.   def update
  27.     sensor_updating unless @unsensor
  28.     drago64c_update  
  29.   end
  30.  
  31.   def sensor_updating
  32.     # padrão
  33.     if @event.name =~ /<Sensor\s?(\d+)>/i
  34.      
  35.       @event.name =~ /<Sensor\s?(\d+)>/i
  36.       s = [$1.to_i,[$game_map.map_id,@id,SENSOR_SELF_SWITCH],[]]
  37.       s[2] = [(($game_player.x-self.x).abs + ($game_player.y-self.y).abs <=
  38.           s[0]), $game_self_switches[s[1]]] if s[0] > 0
  39.       return unless s[0] > 0 && s[2][0] != s[2][1]
  40.       $game_self_switches[s[1]], $game_map.need_refresh = s[2][0], true
  41.      
  42.     elsif @event.name =~ /<sfront\s?(\d+)>/i
  43.      
  44.       return  sensorFront
  45.      
  46.     elsif @event.name =~ /<sback\s?(\d+)>/i
  47.        
  48.       return sensorBack
  49.  
  50.     elsif @event.name =~ /<sleft\s?(\d+)>/i
  51.        
  52.       return sensorLeft
  53.  
  54.     elsif @event.name =~ /<sright\s?(\d+)>/i
  55.        
  56.       return sensorRight
  57.  
  58.     end
  59.  
  60.     return false
  61.   end
  62.  
  63.   def sensorFront
  64.     @event.name =~ /<sfront\s?(\d+)>/i
  65.     ##lswit = $2.to_s !== 'D' && ? $2.to_s : SENSOR_SELF_SWITCH
  66.     #if (!($2.to_s).size < 1 && !($2.nil?) && $2.to_s !== 'D')
  67.     #  lswit = $2
  68.     #else
  69.     #  lswit = SENSOR_SELF_SWITCH
  70.     #end
  71.    
  72.     lswit = SENSOR_SELF_SWITCH
  73.     switch = [$game_map.map_id,@id,lswit]
  74.     tile = $1.to_i
  75.    
  76.     $game_self_switches[switch] = false
  77.    
  78.     case self.direction
  79.     when 2 then vfronts(tile, switch)
  80.     when 4 then vlefts(tile, switch)
  81.     when 6 then vrights(tile, switch)
  82.     when 8 then vbacks(tile, switch)
  83.     end
  84.   end
  85.  
  86.   def sensorBack
  87.     @event.name =~ /<sback\s?(\d+)>/i
  88.     ##lswit = $2.to_s !== 'D' && ? $2.to_s : SENSOR_SELF_SWITCH
  89.     #if (!($2.to_s).size < 1 && !($2.nil?) && $2.to_s !== 'D')
  90.     #  lswit = $2
  91.     #else
  92.     #  lswit = SENSOR_SELF_SWITCH
  93.     #end
  94.    
  95.     lswit = SENSOR_SELF_SWITCH
  96.     switch = [$game_map.map_id,@id,lswit]
  97.     tile = $1.to_i
  98.    
  99.     $game_self_switches[switch] = false
  100.    
  101.     case self.direction
  102.     when 8 then vfronts(tile, switch)
  103.     when 6 then vlefts(tile, switch)
  104.     when 4 then vrights(tile, switch)
  105.     when 2 then vbacks(tile, switch)
  106.     end
  107.   end
  108.  
  109.   def sensorLeft
  110.     @event.name =~ /<sleft\s?(\d+)>/i
  111.    
  112.     lswit = SENSOR_SELF_SWITCH
  113.     switch = [$game_map.map_id,@id,lswit]
  114.     tile = $1.to_i
  115.    
  116.     $game_self_switches[switch] = false
  117.    
  118.     case self.direction
  119.     when 4 then vfronts(tile, switch)
  120.     when 8 then vlefts(tile, switch)
  121.     when 2 then vrights(tile, switch)
  122.     when 6 then vbacks(tile, switch)
  123.     end
  124.   end
  125.  
  126.   def sensorRight
  127.     @event.name =~ /<sright\s?(\d+)>/i
  128.    
  129.     lswit = SENSOR_SELF_SWITCH
  130.     switch = [$game_map.map_id,@id,lswit]
  131.     tile = $1.to_i
  132.    
  133.     $game_self_switches[switch] = false
  134.    
  135.     case self.direction
  136.     when 4 then vfronts(tile, switch)
  137.     when 2 then vlefts(tile, switch)
  138.     when 8 then vrights(tile, switch)
  139.     when 6 then vbacks(tile, switch)
  140.     end
  141.   end
  142.  
  143.  
  144.   def vfronts(range, switch)
  145.     return false unless $game_player.x === self.x
  146.    
  147.     (self.y..(self.y + range)).each { |y|
  148.       if ($game_player.y == y )
  149.         $game_self_switches[switch] = true
  150.         return true if $game_player.y == y
  151.       else
  152.         #$game_self_switches[switch] = false
  153.       end
  154.      
  155.     }
  156.    
  157.   end
  158.  
  159.   def vbacks(range, switch)
  160.     return false unless $game_player.x === self.x
  161.    
  162.     (self.y.downto(self.y - range)).each { |y|
  163.       if $game_player.y == y
  164.         $game_self_switches[switch] = true
  165.         return true if $game_player.y == y
  166.       else
  167.         #$game_self_switches[switch] = false
  168.       end
  169.     }
  170.   end
  171.  
  172.   def vlefts(range, switch)
  173.     return false unless $game_player.y === self.y
  174.    
  175.     (self.x.downto(self.x - range)).each { |x|
  176.       if $game_player.x == x
  177.         $game_self_switches[switch] = true
  178.         return true
  179.       else
  180.         #$game_self_switches[switch] = false
  181.       end
  182.     }
  183.   end
  184.  
  185.   def vrights (range, switch)
  186.     return false unless $game_player.y === self.y
  187.    
  188.     (self.x..(self.x + range)).each { |x|
  189.       if $game_player.x == x
  190.         $game_self_switches[switch] = true
  191.         return true
  192.       else
  193.         #$game_self_switches[switch] = false
  194.       end
  195.     }
  196.    
  197.   end
  198.  
  199. end
  200.  
  201.  
  202.  
  203. =begin
  204. class Game_Event < Game_Character
  205.  #-----------------------------------------------------------------------
  206.   SENSOR_SELF_SWITCH = 'D'
  207.  #-----------------------------------------------------------------------
  208.   alias drago64c_update update
  209.   def update
  210.     sensor_updating unless @unsensor
  211.     drago64c_update  
  212.   end
  213.  
  214.   def sensor_updating
  215.     @event.name =~ /<Sensor(\d+)>/i
  216.     s = [$1.to_i,[$game_map.map_id,@id,SENSOR_SELF_SWITCH],[]]
  217.     s[2] = [(($game_player.x-self.x).abs + ($game_player.y-self.y).abs <=
  218.           s[0]), $game_self_switches[s[1]]] if s[0] > 0
  219.     return unless s[0] > 0 && s[2][0] != s[2][1]
  220.     sensorDirection
  221.     $game_self_switches[s[1]], $game_map.need_refresh = s[2][0], true
  222.   end
  223.  
  224.  
  225.   def sensorDirection
  226.     if (self.direction === 2)
  227.      
  228.   end
  229.  
  230. end
  231. =end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement