Advertisement
Guest User

paste#098765456789

a guest
Oct 25th, 2014
129
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 23.15 KB | None | 0 0
  1. =begin
  2.  
  3. #==============================================================================
  4. # Game_Event
  5. #==============================================================================
  6.  
  7. class Game_Event < Game_Character
  8. #--------------------------------------------------------------------------
  9. # name
  10. #--------------------------------------------------------------------------
  11. def name
  12. return @event.name
  13. end
  14. end
  15.  
  16. #==============================================================================
  17. # Map_Base
  18. #------------------------------------------------------------------------------
  19. # @Base class for mini maps
  20. #==============================================================================
  21.  
  22. class Map_Base
  23. MP_VERSION = 5
  24. #--------------------------------------------------------------------------
  25. # Initialize
  26. #--------------------------------------------------------------------------
  27. def initialize(corner, use_windowskin)
  28. @tileset_name = $game_map.tileset_name
  29. @bg = Window_Base.new(0, 0, 144, 112)
  30. @bg.z = 9000
  31. if no_display?
  32. @bg.windowskin = nil
  33. else
  34. unless use_windowskin
  35. @bg.dispose
  36. @bg = Window_Base.new(0, 0, 160, 128)
  37. @bg.contents = Bitmap.new(128, 96)
  38. @bg.windowskin = nil
  39. @bg.z = 9015
  40. end
  41. end
  42. @map = Sprite.new
  43. @map.bitmap = Bitmap.new(map_width, map_height)
  44. @map.z = 9005
  45. @event = Sprite.new
  46. @event.bitmap = Bitmap.new(map_width, map_height)
  47. @event.z = 9010
  48. self.back_opacity = 175
  49. self.opacity = 175
  50. case corner
  51. when 1
  52. self.x = 16
  53. self.y = 16
  54. when 2
  55. self.x = 640 - width - 16
  56. self.y = 16
  57. when 3
  58. self.x = 16
  59. self.y = 480 - height - 16
  60. when 4
  61. self.x = 640 - width# - 16
  62. self.y = 480 - height# - 16
  63. else
  64. self.x = 16
  65. self.y = 16
  66. end
  67. end
  68. #--------------------------------------------------------------------------
  69. # œ display_map?
  70. #--------------------------------------------------------------------------
  71. def no_map_display?
  72. for event in $game_map.events.values
  73. if event.name.include?("[no map]")
  74. return true
  75. end
  76. end
  77. return false
  78. end
  79. #--------------------------------------------------------------------------
  80. # œ display_map?
  81. #--------------------------------------------------------------------------
  82. def no_event_display?
  83. for event in $game_map.events.values
  84. if event.name.include?("[no event]")
  85. return true
  86. end
  87. end
  88. return false
  89. end
  90. #--------------------------------------------------------------------------
  91. # œ display_map?
  92. #--------------------------------------------------------------------------
  93. def no_display?
  94. for event in $game_map.events.values
  95. if event.name.include?("[no map]") and event.name.include?("[no event]")
  96. return true
  97. end
  98. end
  99. return false
  100. end
  101. #--------------------------------------------------------------------------
  102. # œ dispose
  103. #--------------------------------------------------------------------------
  104. def dispose
  105. @bg.dispose
  106. @map.bitmap.dispose
  107. @map.dispose
  108. @event.bitmap.dispose
  109. @event.dispose
  110. end
  111. #--------------------------------------------------------------------------
  112. # œ map
  113. #--------------------------------------------------------------------------
  114. def map
  115. return @map
  116. end
  117. #--------------------------------------------------------------------------
  118. # œ event
  119. #--------------------------------------------------------------------------
  120. def event
  121. return @event
  122. end
  123. #--------------------------------------------------------------------------
  124. # œ width
  125. #--------------------------------------------------------------------------
  126. def width
  127. return 161
  128. end
  129. #--------------------------------------------------------------------------
  130. # œ opacity=
  131. #--------------------------------------------------------------------------
  132. def height
  133. return 97
  134. end
  135. #--------------------------------------------------------------------------
  136. # œ opacity=
  137. #--------------------------------------------------------------------------
  138. def visible=(bool)
  139. @bg.visible = bool
  140. @event.visible = bool
  141. @map.visible = bool
  142. end
  143. #--------------------------------------------------------------------------
  144. # œ opacity
  145. #--------------------------------------------------------------------------
  146. def visible
  147. return @bg.visible
  148. end
  149. #--------------------------------------------------------------------------
  150. # œ opacity=
  151. #--------------------------------------------------------------------------
  152. def opacity=(opacity)
  153. @event.opacity = opacity
  154. @map.opacity = opacity
  155. end
  156. #--------------------------------------------------------------------------
  157. # œ opacity
  158. #--------------------------------------------------------------------------
  159. def opacity
  160. return @event.opacity
  161. end
  162. #--------------------------------------------------------------------------
  163. # œ back_opacity=
  164. #--------------------------------------------------------------------------
  165. def back_opacity=(opacity)
  166. @bg.opacity = opacity
  167. @bg.contents_opacity = opacity if @bg.contents != nil
  168. end
  169. #--------------------------------------------------------------------------
  170. # œ back_opacity
  171. #--------------------------------------------------------------------------
  172. def back_opacity
  173. return @bg.opacity
  174. end
  175. #--------------------------------------------------------------------------
  176. # œ x=
  177. #--------------------------------------------------------------------------
  178. def x=(x)
  179. @bg.x = x - (@bg.width - 128) / 2
  180. @event.x = x + 8
  181. @map.x = x + 8
  182. end
  183. #--------------------------------------------------------------------------
  184. # œ x
  185. #--------------------------------------------------------------------------
  186. def x
  187. return @bg.x
  188. end
  189. #--------------------------------------------------------------------------
  190. # œ y=
  191. #--------------------------------------------------------------------------
  192. def y=(y)
  193. @bg.y = y - (@bg.height - 96) / 2
  194. @event.y = y + 8
  195. @map.y = y + 8
  196. end
  197. #--------------------------------------------------------------------------
  198. # œ y
  199. #--------------------------------------------------------------------------
  200. def y
  201. return @bg.y
  202. end
  203. #--------------------------------------------------------------------------
  204. # œ map_width
  205. #--------------------------------------------------------------------------
  206. def map_width
  207. return $game_map.width * 112/20
  208. end
  209. #--------------------------------------------------------------------------
  210. # œ map_height
  211. #--------------------------------------------------------------------------
  212. def map_height
  213. return $game_map.height * 80/15
  214. end
  215. #--------------------------------------------------------------------------
  216. # œ display_x
  217. #--------------------------------------------------------------------------
  218. def display_x
  219. return $game_map.display_x / 128 * 112/20
  220. end
  221. #--------------------------------------------------------------------------
  222. # œ map_height
  223. #--------------------------------------------------------------------------
  224. def display_y
  225. return $game_map.display_y / 128 * 80/15
  226. end
  227. end
  228. #==============================================================================
  229. # ¡ Map_Mini
  230. #------------------------------------------------------------------------------
  231. # @Base class for mini maps
  232. #
  233. # made by squall // squall@loeher.zzn.com
  234. #==============================================================================
  235.  
  236. class Map_Mini < Map_Base
  237. #--------------------------------------------------------------------------
  238. # œ initialize
  239. #--------------------------------------------------------------------------
  240. def initialize(corner, use_windowskin)
  241. super(corner, use_windowskin)
  242. unless no_map_display?
  243. draw_map
  244. end
  245. end
  246. #--------------------------------------------------------------------------
  247. # œ update
  248. #--------------------------------------------------------------------------
  249. def update
  250. map.src_rect.set(display_x, display_y, width - 16, height - 16)
  251. if @tileset_name != $game_map.tileset_name
  252. @tileset_name = $game_map.tileset_name
  253. unless no_map_display?
  254. map.bitmap.clear
  255. draw_map
  256. end
  257. end
  258. end
  259. #--------------------------------------------------------------------------
  260. # œ draw_map
  261. #--------------------------------------------------------------------------
  262. def draw_map
  263. bitmap = Bitmap.new($game_map.width * 32, $game_map.height * 32)
  264. for i in 0...($game_map.width * $game_map.height)
  265. x = i % $game_map.width
  266. y = i / $game_map.width
  267. for level in 0...3
  268. tile_id = $game_map.data[x, y, level]
  269. if tile_id >= 384
  270. tileset_bitmap = RPG::Cache.tile($game_map.tileset_name, tile_id, 0)
  271. src_rect = Rect.new(0, 0, 32, 32)
  272. bitmap.blt(x * 32, y * 32, tileset_bitmap, src_rect)
  273. end
  274. if tile_id >= 48 and tile_id < 384
  275. id = tile_id / 48 - 1
  276. tileset_bitmap = RPG::Cache.autotile($game_map.autotile_names[id])
  277. src_rect = Rect.new(32, 64, 32, 32)
  278. bitmap.blt(x * 32, y * 32, tileset_bitmap, src_rect)
  279. end
  280. end
  281. end
  282. d_rect = Rect.new(0, 0, map_width, map_height)
  283. s_rect = Rect.new(0, 0, bitmap.width, bitmap.height)
  284. map.bitmap.stretch_blt(d_rect, bitmap, s_rect)
  285. bitmap.clear
  286. bitmap.dispose
  287. end
  288. end
  289. #==============================================================================
  290. # ¡ Map_Event
  291. #------------------------------------------------------------------------------
  292. # @draw the events and hero position
  293. #==============================================================================
  294.  
  295. class Map_Event < Map_Mini
  296. #--------------------------------------------------------------------------
  297. # œ initialize
  298. #--------------------------------------------------------------------------
  299. def initialize(corner = 4, windowskin = true)
  300. super(corner, windowskin)
  301. @dots = []
  302. end
  303. #--------------------------------------------------------------------------
  304. # œ refresh_dots
  305. #--------------------------------------------------------------------------
  306. def refresh_event_dots
  307. for event in $game_map.events.values
  308. bitmap = nil
  309. x = event.x * map_width / $game_map.width
  310. y = event.y * map_height / $game_map.height
  311. next if event.list == nil
  312. for i in 0...event.list.size
  313. if event.list[i].parameters[0].is_a?(String)
  314. if event.list[i].parameters[0] == "event"
  315. bitmap = RPG::Cache.picture(event.list[i].parameters[0])
  316. break
  317. elsif event.list[i].parameters[0] == "enemy"
  318. bitmap = RPG::Cache.picture(event.list[i].parameters[0])
  319. break
  320. elsif event.list[i].parameters[0].include?("teleport")
  321. bitmap = RPG::Cache.picture("teleport")
  322. break
  323. elsif event.list[i].parameters[0] == "chest"
  324. bitmap = RPG::Cache.picture(event.list[i].parameters[0])
  325. break
  326. elsif event.list[i].parameters[0] == "npc"
  327. bitmap = RPG::Cache.picture(event.list[i].parameters[0])
  328. break
  329. elsif event.list[i].parameters[0] == "savepoint"
  330. bitmap = RPG::Cache.picture(event.list[i].parameters[0])
  331. break
  332. else
  333. bitmap = nil
  334. end
  335. end
  336. end
  337. @dots.push([x, y, bitmap])
  338. end
  339. end
  340. #--------------------------------------------------------------------------
  341. # œ refresh_dots
  342. #--------------------------------------------------------------------------
  343. def refresh_player_dot
  344. x = $game_player.x * map_width / $game_map.width
  345. y = $game_player.y * map_height / $game_map.height
  346. bitmap = RPG::Cache.picture("Gold")
  347. @dots.push([x, y, bitmap])
  348. end
  349. #--------------------------------------------------------------------------
  350. # œ update
  351. #--------------------------------------------------------------------------
  352. def update
  353. super
  354. @dots.clear
  355. event.bitmap.clear
  356. refresh_event_dots unless no_event_display?
  357. refresh_player_dot unless no_display?
  358. for dot in @dots
  359. unless dot[2] == nil
  360. event.bitmap.blt(dot[0], dot[1], dot[2], Rect.new(0, 0, 4, 4))
  361. end
  362. end
  363. event.src_rect.set(display_x, display_y, width - 16, height - 16)
  364. end
  365. end
  366. #==============================================================================
  367. # ¡ Map_Full
  368. #==============================================================================
  369.  
  370. class Map_Full
  371. #--------------------------------------------------------------------------
  372. # œ Initialize
  373. #--------------------------------------------------------------------------
  374. def initialize
  375. @dots = []
  376. @teleport_sprites = []
  377. if $game_map.width > $game_map.height
  378. @map_width = 640
  379. @map_height = $game_map.height * @map_width / $game_map.width
  380. if @map_height > 480
  381. @map_height = 480
  382. end
  383. else
  384. @map_height = 480
  385. @map_width = $game_map.width * @map_height / $game_map.height
  386. if @map_width > 640
  387. @map_width = 640
  388. end
  389. end
  390. @map = Sprite.new
  391. @event = Sprite.new
  392. @map.bitmap = Bitmap.new(width, height)
  393. @event.bitmap = Bitmap.new(width, height)
  394. @map.x = @event.x = 320 - width / 2
  395. @map.y = @event.y = 240 - height / 2
  396. draw_map unless no_map_display?
  397. draw_event_dots unless no_event_display?
  398. draw_player_dot unless no_display?
  399. if no_display?
  400. @message = Window_Base.new(0, 208, 640, 64)
  401. message = "the map is not available"
  402. @message.contents = Bitmap.new(608, 32)
  403. @message.contents.font.name = "Arial"
  404. @message.contents.font.size = 32
  405. @message.contents.font.color.set(255, 255, 255, 100)
  406. @message.contents.draw_text(-1, -1, 608, 32, message, 1)
  407. @message.contents.draw_text(-1, 1, 608, 32, message, 1)
  408. @message.contents.draw_text(1, -1, 608, 32, message, 1)
  409. @message.contents.draw_text(1, 1, 608, 32, message, 1)
  410. @message.contents.font.color.set(255, 255, 255, 50)
  411. @message.contents.draw_text(-2, -2, 608, 32, message, 1)
  412. @message.contents.draw_text(-2, 2, 608, 32, message, 1)
  413. @message.contents.draw_text(2, -2, 608, 32, message, 1)
  414. @message.contents.draw_text(2, 2, 608, 32, message, 1)
  415. @message.contents.font.color.set(255, 255, 255)
  416. @message.contents.draw_text(0, 0, 608, 32, message, 1)
  417. @message.windowskin = nil
  418. end
  419. end
  420. #--------------------------------------------------------------------------
  421. # œ display_map?
  422. #--------------------------------------------------------------------------
  423. def no_map_display?
  424. for event in $game_map.events.values
  425. if event.name.include?("[full]")
  426. return false
  427. end
  428. if event.name.include?("[no map]")
  429. return true
  430. end
  431. end
  432. return false
  433. end
  434. #--------------------------------------------------------------------------
  435. # œ display_map?
  436. #--------------------------------------------------------------------------
  437. def no_event_display?
  438. for event in $game_map.events.values
  439. if event.name.include?("[full]")
  440. return false
  441. end
  442. if event.name.include?("[no event]")
  443. return true
  444. end
  445. end
  446. return false
  447. end
  448. #--------------------------------------------------------------------------
  449. # œ display_map?
  450. #--------------------------------------------------------------------------
  451. def no_display?
  452. for event in $game_map.events.values
  453. if event.name.include?("[full]")
  454. return false
  455. end
  456. if event.name.include?("[no map]") and event.name.include?("[no event]")
  457. return true
  458. end
  459. end
  460. return false
  461. end
  462. #--------------------------------------------------------------------------
  463. # œ dispose
  464. #--------------------------------------------------------------------------
  465. def dispose
  466. for sprite in @teleport_sprites
  467. sprite.dispose
  468. end
  469. @message.dispose if no_display?
  470. @map.bitmap.dispose
  471. @map.dispose
  472. @event.bitmap.dispose
  473. @event.dispose
  474. end
  475. #--------------------------------------------------------------------------
  476. # œ width
  477. #--------------------------------------------------------------------------
  478. def width
  479. return @map_width
  480. end
  481. #--------------------------------------------------------------------------
  482. # œ opacity=
  483. #--------------------------------------------------------------------------
  484. def height
  485. return @map_height
  486. end
  487. #--------------------------------------------------------------------------
  488. # œ draw_map
  489. #--------------------------------------------------------------------------
  490. def draw_map
  491. bitmap = Bitmap.new($game_map.width * 32, $game_map.height * 32)
  492. for i in 0...($game_map.width * $game_map.height)
  493. x = i % $game_map.width
  494. y = i / $game_map.width
  495. for level in 0...3
  496. tile_id = $game_map.data[x, y, level]
  497. if tile_id >= 384
  498. tileset_bitmap = RPG::Cache.tile($game_map.tileset_name, tile_id, 0)
  499. src_rect = Rect.new(0, 0, 32, 32)
  500. bitmap.blt(x * 32, y * 32, tileset_bitmap, src_rect)
  501. end
  502. if tile_id >= 48 and tile_id < 384
  503. id = tile_id / 48 - 1
  504. tileset_bitmap = RPG::Cache.autotile($game_map.autotile_names[id])
  505. src_rect = Rect.new(32, 64, 32, 32)
  506. bitmap.blt(x * 32, y * 32, tileset_bitmap, src_rect)
  507. end
  508. end
  509. end
  510. d_rect = Rect.new(0, 0, width, height)
  511. s_rect = Rect.new(0, 0, bitmap.width, bitmap.height)
  512. @map.bitmap.stretch_blt(d_rect, bitmap, s_rect)
  513. bitmap.clear
  514. bitmap.dispose
  515. end
  516. #--------------------------------------------------------------------------
  517. # œ refresh_dots
  518. #--------------------------------------------------------------------------
  519. def draw_event_dots
  520. for event in $game_map.events.values
  521. bitmap = nil
  522. x = event.x * width / $game_map.width
  523. y = event.y * height / $game_map.height
  524. next if event.list == nil
  525. for i in 0...event.list.size
  526. if event.list[i].parameters[0].is_a?(String)
  527. if event.list[i].parameters[0] == "event"
  528. bitmap = RPG::Cache.picture(event.list[i].parameters[0])
  529. break
  530. elsif event.list[i].parameters[0] == "enemy"
  531. bitmap = RPG::Cache.picture(event.list[i].parameters[0])
  532. break
  533. elsif event.list[i].parameters[0].include?("teleport")
  534. bitmap = RPG::Cache.picture("teleport")
  535. name = event.list[i].parameters[0].dup
  536. name.slice!("teleport, ")
  537. @teleport_sprites.push(new_name_sprite(name, x, y))
  538. break
  539. elsif event.list[i].parameters[0] == "chest"
  540. bitmap = RPG::Cache.picture(event.list[i].parameters[0])
  541. break
  542. elsif event.list[i].parameters[0] == "npc"
  543. bitmap = RPG::Cache.picture(event.list[i].parameters[0])
  544. break
  545. elsif event.list[i].parameters[0] == "savepoint"
  546. bitmap = RPG::Cache.picture(event.list[i].parameters[0])
  547. break
  548. else
  549. bitmap = nil
  550. end
  551. end
  552. end
  553. @dots.push([x, y, bitmap])
  554. end
  555. for dot in @dots
  556. unless dot[2] == nil
  557. @event.bitmap.blt(dot[0], dot[1], dot[2], Rect.new(0, 0, 4, 4))
  558. end
  559. end
  560. end
  561. #--------------------------------------------------------------------------
  562. # œ new_name_sprite
  563. #--------------------------------------------------------------------------
  564. def new_name_sprite(name, x, y)
  565. sprite = Sprite.new
  566. sprite.y = y + 240 - height / 2
  567. x + 128 > 640 ? sprite.x = 512 : sprite.x = x + 320 - width / 2
  568. bitmap = Bitmap.new(128, 32)
  569. bitmap.font.name, bitmap.font.size = "Arial", 20
  570. bitmap.font.color.set(255, 255, 255)
  571. bitmap.draw_text(0, 0, 128, 32, name)
  572. sprite.bitmap = bitmap
  573. return sprite
  574. end
  575. #--------------------------------------------------------------------------
  576. # œ refresh_dots
  577. #--------------------------------------------------------------------------
  578. def draw_player_dot
  579. x = $game_player.x * width / $game_map.width
  580. y = $game_player.y * height / $game_map.height
  581. bitmap = RPG::Cache.picture("Gold")
  582. @event.bitmap.blt(x, y, bitmap, Rect.new(0, 0, 4, 4))
  583. end
  584. end
  585.  
  586. #==============================================================================
  587. # ¡ Scene_MiniMap
  588. #------------------------------------------------------------------------------
  589. # @draw the map full screen
  590. #==============================================================================
  591.  
  592. class Scene_MiniMap
  593. #--------------------------------------------------------------------------
  594. # œ main
  595. #--------------------------------------------------------------------------
  596. def main
  597. @map = Map_Full.new
  598. Graphics.transition
  599. loop do
  600. Graphics.update
  601. Input.update
  602. update
  603. if $scene != self
  604. break
  605. end
  606. end
  607. Graphics.freeze
  608. @map.dispose
  609. end
  610. #--------------------------------------------------------------------------
  611. # œ Update the contents of all five windows on the main menu
  612. #--------------------------------------------------------------------------
  613. def update
  614. if Input.trigger?(Input::B) | Input.trigger?(Input::CTRL)
  615. $game_system.se_play($data_system.cancel_se)
  616. $scene = Scene_Map.new
  617. return
  618. end
  619. end
  620. end
  621.  
  622. #==============================================================================
  623. # ¡ Scene_Map
  624. #==============================================================================
  625.  
  626. class Scene_Map
  627. alias main_minimap main
  628. alias update_minimap update
  629. alias transfer_minimap transfer_player
  630. #--------------------------------------------------------------------------
  631. # œ initialize
  632. #--------------------------------------------------------------------------
  633. def initialize
  634. @corner = 4 # 1 or 2 or 3 or 4
  635. @use_windowskin = true # true or false
  636. end
  637. #--------------------------------------------------------------------------
  638. # œ main
  639. #--------------------------------------------------------------------------
  640. def main
  641. @event_map = Map_Event.new(@corner, @use_windowskin)
  642. main_minimap
  643. @event_map.dispose
  644. end
  645. #--------------------------------------------------------------------------
  646. # œ update
  647. #--------------------------------------------------------------------------
  648. def update
  649. @event_map.update
  650. if $game_switches[PIE::Enable_HUD] == false or $game_switches[PIE::Enable_MAPHUD] == false
  651. @event_map.visible = false
  652. else
  653. @event_map.visible = true
  654. end
  655.  
  656. if Input.trigger?(Input::CTRL)
  657. $game_system.se_play($data_system.decision_se)
  658. $scene = Scene_MiniMap.new
  659. return
  660. end
  661. update_minimap
  662. end
  663. #--------------------------------------------------------------------------
  664. # œ transfer_player
  665. #--------------------------------------------------------------------------
  666. def transfer_player
  667. transfer_minimap
  668. @event_map.dispose
  669. @event_map = Map_Event.new(@corner, @use_windowskin)
  670. end
  671. end
  672.  
  673. =end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement