Advertisement
DaxSoft

sensorxpvrum

Sep 15th, 2019
279
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 5.72 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. sensorFront
  45.  
  46. return
  47. elsif @event.name =~ /<sback\s?(\d+)>/i
  48.  
  49. sensorBack
  50.  
  51. return
  52. elsif @event.name =~ /<sleft\s?(\d+)>/i
  53.  
  54. sensorLeft
  55.  
  56. return
  57. elsif @event.name =~ /<sright\s?(\d+)>/i
  58.  
  59. sensorRight
  60.  
  61. return
  62.  
  63. end
  64.  
  65.  
  66. end
  67.  
  68. def sensorFront
  69. @event.name =~ /<sfront\s?(\d+)>/i
  70.  
  71. lswit = SENSOR_SELF_SWITCH
  72. switch = [$game_map.map_id,@id,lswit]
  73. tile = $1.to_i
  74.  
  75. $game_self_switches[switch] = false
  76.  
  77. case self.direction
  78. when 2
  79. vfronts(tile, switch)
  80. return
  81. when 4
  82. vlefts(tile, switch)
  83. return
  84. when 6
  85. vrights(tile, switch)
  86. return
  87. when 8
  88. vbacks(tile, switch)
  89. return
  90. end
  91. end
  92.  
  93. def sensorBack
  94. @event.name =~ /<sback\s?(\d+)>/i
  95. ##lswit = $2.to_s !== 'D' && ? $2.to_s : SENSOR_SELF_SWITCH
  96. #if (!($2.to_s).size < 1 && !($2.nil?) && $2.to_s !== 'D')
  97. # lswit = $2
  98. #else
  99. # lswit = SENSOR_SELF_SWITCH
  100. #end
  101.  
  102. lswit = SENSOR_SELF_SWITCH
  103. switch = [$game_map.map_id,@id,lswit]
  104. tile = $1.to_i
  105.  
  106. $game_self_switches[switch] = false
  107.  
  108. case self.direction
  109. when 8 then vfronts(tile, switch)
  110. when 6 then vlefts(tile, switch)
  111. when 4 then vrights(tile, switch)
  112. when 2 then vbacks(tile, switch)
  113. end
  114. end
  115.  
  116. def sensorLeft
  117. @event.name =~ /<sleft\s?(\d+)>/i
  118.  
  119. lswit = SENSOR_SELF_SWITCH
  120. switch = [$game_map.map_id,@id,lswit]
  121. tile = $1.to_i
  122.  
  123. $game_self_switches[switch] = false
  124.  
  125. case self.direction
  126. when 4 then vfronts(tile, switch)
  127. when 8 then vlefts(tile, switch)
  128. when 2 then vrights(tile, switch)
  129. when 6 then vbacks(tile, switch)
  130. end
  131. end
  132.  
  133. def sensorRight
  134. @event.name =~ /<sright\s?(\d+)>/i
  135.  
  136. lswit = SENSOR_SELF_SWITCH
  137. switch = [$game_map.map_id,@id,lswit]
  138. tile = Math.abs($1.to_i)
  139.  
  140. $game_self_switches[switch] = false
  141.  
  142.  
  143. case self.direction
  144. when 4 then vfronts(tile, switch)
  145. when 2 then vlefts(tile, switch)
  146. when 8 then vrights(tile, switch)
  147. when 6 then vbacks(tile, switch)
  148. end
  149. end
  150.  
  151.  
  152. def vfronts(range, switch)
  153. return false unless $game_player.x == self.x
  154.  
  155. (self.y..(self.y + range)).each { |y|
  156. if ($game_player.y == y )
  157. $game_self_switches[switch] = true
  158. return true if $game_player.y == y
  159. else
  160. #$game_self_switches[switch] = false
  161. end
  162.  
  163. }
  164.  
  165. end
  166.  
  167. def vbacks(range, switch)
  168. return false unless $game_player.x == self.x
  169. #return false if !(self.y.is_a?(Integer)) || !(self.y.is_a?(Numeric))
  170.  
  171. self.y.downto(self.y - range).each { |y|
  172. if $game_player.y == y
  173. $game_self_switches[switch] = true
  174. return true if $game_player.y == y
  175. else
  176. #$game_self_switches[switch] = false
  177. end
  178. }
  179. end
  180.  
  181. def vlefts(range, switch)
  182. return false unless $game_player.y == self.y
  183. #return false if !(self.x.is_a?(Integer))
  184.  
  185. (self.x.downto(self.x - range)).each { |x|
  186. if $game_player.x == x
  187. $game_self_switches[switch] = true
  188. return true
  189. else
  190. #$game_self_switches[switch] = false
  191. end
  192. }
  193. end
  194.  
  195. def vrights (range, switch)
  196. return false unless $game_player.y == self.y
  197.  
  198. (self.x..(self.x + range)).each { |x|
  199. if $game_player.x == x
  200. $game_self_switches[switch] = true
  201. return true
  202. else
  203. #$game_self_switches[switch] = false
  204. end
  205. }
  206.  
  207. end
  208.  
  209. end
  210.  
  211.  
  212.  
  213. =begin
  214. class Game_Event < Game_Character
  215. #-----------------------------------------------------------------------
  216. SENSOR_SELF_SWITCH = 'D'
  217. #-----------------------------------------------------------------------
  218. alias drago64c_update update
  219. def update
  220. sensor_updating unless @unsensor
  221. drago64c_update
  222. end
  223.  
  224. def sensor_updating
  225. @event.name =~ /<Sensor(\d+)>/i
  226. s = [$1.to_i,[$game_map.map_id,@id,SENSOR_SELF_SWITCH],[]]
  227. s[2] = [(($game_player.x-self.x).abs + ($game_player.y-self.y).abs <=
  228. s[0]), $game_self_switches[s[1]]] if s[0] > 0
  229. return unless s[0] > 0 && s[2][0] != s[2][1]
  230. sensorDirection
  231. $game_self_switches[s[1]], $game_map.need_refresh = s[2][0], true
  232. end
  233.  
  234.  
  235. def sensorDirection
  236. if (self.direction === 2)
  237.  
  238. end
  239.  
  240. end
  241. =end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement