设为首页收藏本站|繁體中文

Project1

 找回密码
 注册会员
搜索
查看: 1384|回复: 0
打印 上一主题 下一主题

[已经过期] 帮我改个脚本

 关闭 [复制链接]

Lv1.梦旅人

梦石
0
星屑
145
在线时间
698 小时
注册时间
2009-11-15
帖子
538
跳转到指定楼层
1
发表于 2009-12-11 18:15:34 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

加入我们,或者,欢迎回来。

您需要 登录 才可以下载或查看,没有帐号?注册会员

x
本帖最后由 2719358 于 2009-12-11 18:16 编辑

大家帮我把这个小地图改的大一些,大约就像空轨那么大,另外要可以用一个开关来控制小地图是否出现
  1. #==============================================================================
  2. class Midmap
  3. #==============================================================================
  4.   
  5.   #显示坐标
  6.   MX = 470     #显示在地图X坐标
  7.   MY = 10     #显示在地图Y坐标
  8.   
  9.   #显示窗口的大小
  10.   GX = 32     #窗口中最多显示GX格
  11.   GY = 24     #窗口中最多显示GY格
  12.   
  13.   #缩略点的大小
  14.   DX = 5      #每格大小
  15.   
  16.   #原点
  17.   OO = 1      #0左上(小地图对齐在视区的左上) 1右上
  18.   
  19.   #缩略图的颜色(分别是<红,黄,蓝,透明度>),不需要某种把透明度调0即可
  20.   COLOR_A = Color.new(0,0,0,128)        #底色
  21.   COLOR_B = Color.new(0,128,255,192)    #可通行色
  22.   COLOR_C = Color.new(255,192,255,192)  #描边色
  23.   
  24.   #事件点的颜色,更多请在95行照着插入
  25.   #默认隐藏事件:1.含有"EV"的事件名和没有行走图 2.含有"EV"的事件名和没有执行内容
  26.   EVENT_P = Color.new(255,128,128)                #主角颜色
  27.   EVENT_Z = Color.new(255,255,0)                  #不含"EV"的其他颜色
  28.   EVENT_A = ["Enemy",Color.new(255,0,0)]          #事件名"Enemy", 颜色
  29.   EVENT_B = ["Trans",Color.new(128,255,128,128)]  #事件名"Trans", 颜色
  30.   EVENT_C = ["自定C",Color.new(0,0,0)]            #自定义事件名 , 颜色
  31.   
  32. #==============================================================================

  33.   def initialize
  34.     @pic = []
  35.     star
  36.   end
  37.   def star
  38.     width = $game_map.width
  39.     height = $game_map.height
  40.     @viewport = Viewport.new(MX,MY,GX*DX+1,GY*DX+1)
  41.     for i in 0..2
  42.       @pic[i] = Sprite.new(@viewport)
  43.       @pic[i].bitmap = Bitmap.new(width*DX+1,height*DX+1)
  44.       @pic[i].x = (GX - width)*DX if OO == 1
  45.       @pic[i].z = 50
  46.     end
  47.     @pic[0].bitmap.fill_rect(0,0,width*DX+1,height*DX+1, COLOR_A)
  48.     @pic[0].z -= 1
  49.     @pic[2].z += 1
  50.     @map = $game_map
  51.     for x in 0...width
  52.       for y in 0...height
  53.         next unless @map.pass?(x,y,0)
  54.         @pic[1].bitmap.fill_rect(x*DX+1,y*DX+1,DX-1,DX-1, COLOR_B)
  55.         if @map.pass?(x,y,2) and @map.pass?(x,y+1,8)
  56.           @pic[1].bitmap.fill_rect(x*DX+1,y*DX+DX,DX-1,1, COLOR_B)
  57.         else
  58.           @pic[1].bitmap.fill_rect(x*DX,y*DX+DX,DX+1,1, COLOR_C)
  59.         end
  60.         if @map.pass?(x,y,6) and @map.pass?(x+1,y,4)
  61.           @pic[1].bitmap.fill_rect(x*DX+DX,y*DX+1,1,DX-1, COLOR_B)
  62.         else
  63.           @pic[1].bitmap.fill_rect(x*DX+DX,y*DX,1,DX+1, COLOR_C)
  64.         end
  65.         unless @map.pass?(x,y-1,0)
  66.           @pic[1].bitmap.fill_rect(x*DX,y*DX,DX+1,1, COLOR_C)
  67.         end
  68.         unless @map.pass?(x-1,y,0)
  69.           @pic[1].bitmap.fill_rect(x*DX,y*DX,1,DX+1, COLOR_C)
  70.         end
  71.         next unless @map.pass?(x,y,6)
  72.         next unless @map.pass?(x,y,2)
  73.         next unless @map.pass?(x+1,y,4)
  74.         next unless @map.pass?(x+1,y,2)
  75.         next unless @map.pass?(x,y+1,8)
  76.         next unless @map.pass?(x,y+1,6)
  77.         next unless @map.pass?(x+1,y+1,8)
  78.         next unless @map.pass?(x+1,y+1,4)
  79.         @pic[1].bitmap.fill_rect(x*DX+DX,y*DX+DX,1,1, COLOR_B)
  80.       end
  81.     end
  82.     update
  83.   end
  84.   def update
  85.     @pic[2].bitmap.clear
  86.     for i in @map.events.keys
  87.       next if @map.events[i].list.size <= 1 and
  88.               /\E\V/ === @map.events[i].event.name
  89.       next if @map.events[i].character_name == "" and
  90.               /\E\V/ === @map.events[i].event.name
  91.       color = EVENT_Z
  92.       color = EVENT_A[1] if @map.events[i].event.name == EVENT_A[0]
  93.       color = EVENT_B[1] if @map.events[i].event.name == EVENT_B[0]
  94.       color = EVENT_C[1] if @map.events[i].event.name == EVENT_C[0]
  95.       x = @map.events[i].x
  96.       y = @map.events[i].y
  97.       @pic[2].bitmap.fill_rect(x*DX+1,y*DX+1,DX-1,DX-1, color)
  98.     end
  99.     x = $game_player.x
  100.     y = $game_player.y
  101.     @pic[2].bitmap.fill_rect(x*DX+1,y*DX+1,DX-1,DX-1, EVENT_P)
  102.     if @map.width > GX
  103.       x = GX/2 if x < GX/2
  104.       x = @map.width - GX/2 if @map.width - x < GX/2
  105.       @pic[1].x = (GX/2 - x)*DX
  106.       @pic[2].x = (GX/2 - x)*DX
  107.     end
  108.     if @map.height > GY
  109.       y = GY/2 if y < GY/2
  110.       y = @map.height - GY/2 if @map.height - y < GY/2
  111.       @pic[1].y = (GY/2 - y)*DX
  112.       @pic[2].y = (GY/2 - y)*DX
  113.     end
  114.   end
  115. end

  116. #==============================================================================
  117. # ● 默认脚本的更改
  118. #==============================================================================
  119. class Game_Map
  120.   def pass?(x, y, d)
  121.     for i in [2, 1, 0]
  122.       tile_id = data[x, y, i]
  123.       return false if tile_id == nil
  124.       return false if @passages[tile_id] & ((1 << (d / 2 - 1)) & 0x0f) != 0
  125.       return false if @passages[tile_id] & 0x0f == 0x0f
  126.       return true  if @priorities[tile_id] == 0
  127.     end
  128.   end
  129. end

  130. class Game_Event < Game_Character
  131.   attr_reader   :event
  132. end

  133. #添加显示与刷新
  134. class Scene_Map
  135.   def main
  136.     @spriteset = Spriteset_Map.new
  137.     @message_window = Window_Message.new
  138.     @midmap = Midmap.new                                                #★
  139.     Graphics.transition
  140.     loop do
  141.       Graphics.update
  142.       Input.update
  143.       update
  144.       if $scene != self
  145.         break
  146.       end
  147.     end
  148.     Graphics.freeze
  149.     @spriteset.dispose
  150.     @message_window.dispose
  151.     if $scene.is_a?(Scene_Title)
  152.       Graphics.transition
  153.       Graphics.freeze
  154.     end
  155.   end
  156.   #--------------------------------------------------------------------------
  157.   # ● 刷新画面
  158.   #--------------------------------------------------------------------------
  159.   def update
  160.     loop do
  161.       $game_map.update
  162.       $game_system.map_interpreter.update
  163.       $game_player.update
  164.       $game_system.update
  165.       $game_screen.update
  166.       unless $game_temp.player_transferring
  167.         break
  168.       end
  169.       transfer_player
  170.       if $game_temp.transition_processing
  171.         break
  172.       end
  173.     end
  174.     @spriteset.update
  175.     @message_window.update
  176.     @midmap.update                                                      #★
  177.     if $game_temp.gameover
  178.       $scene = Scene_Gameover.new
  179.       return
  180.     end
  181.     if $game_temp.to_title
  182.       $scene = Scene_Title.new
  183.       return
  184.     end
  185.     if $game_temp.transition_processing
  186.       $game_temp.transition_processing = false
  187.       if $game_temp.transition_name == ""
  188.         Graphics.transition(20)
  189.       else
  190.         Graphics.transition(40, "Graphics/Transitions/" +
  191.           $game_temp.transition_name)
  192.       end
  193.     end
  194.     if $game_temp.message_window_showing
  195.       return
  196.     end
  197.     if $game_player.encounter_count == 0 and $game_map.encounter_list != []
  198.       unless $game_system.map_interpreter.running? or
  199.              $game_system.encounter_disabled
  200.         n = rand($game_map.encounter_list.size)
  201.         troop_id = $game_map.encounter_list[n]
  202.         if $data_troops[troop_id] != nil
  203.           $game_temp.battle_calling = true
  204.           $game_temp.battle_troop_id = troop_id
  205.           $game_temp.battle_can_escape = true
  206.           $game_temp.battle_can_lose = false
  207.           $game_temp.battle_proc = nil
  208.         end
  209.       end
  210.     end
  211.     if Input.trigger?(Input::B)
  212.       unless $game_system.map_interpreter.running? or
  213.              $game_system.menu_disabled
  214.         $game_temp.menu_calling = true
  215.         $game_temp.menu_beep = true
  216.       end
  217.     end
  218.     if $DEBUG and Input.press?(Input::F9)
  219.       $game_temp.debug_calling = true
  220.     end
  221.     unless $game_player.moving?
  222.       if $game_temp.battle_calling
  223.         call_battle
  224.       elsif $game_temp.shop_calling
  225.         call_shop
  226.       elsif $game_temp.name_calling
  227.         call_name
  228.       elsif $game_temp.menu_calling
  229.         call_menu
  230.       elsif $game_temp.save_calling
  231.         call_save
  232.       elsif $game_temp.debug_calling
  233.         call_debug
  234.       end
  235.     end
  236.   end
  237.   #--------------------------------------------------------------------------
  238.   # ● 主角的场所移动
  239.   #--------------------------------------------------------------------------
  240.   def transfer_player
  241.     $game_temp.player_transferring = false
  242.     if $game_map.map_id != $game_temp.player_new_map_id
  243.       $game_map.setup($game_temp.player_new_map_id)
  244.     end
  245.     $game_player.moveto($game_temp.player_new_x, $game_temp.player_new_y)
  246.     case $game_temp.player_new_direction
  247.     when 2
  248.       $game_player.turn_down
  249.     when 4
  250.       $game_player.turn_left
  251.     when 6
  252.       $game_player.turn_right
  253.     when 8
  254.       $game_player.turn_up
  255.     end
  256.     $game_player.straighten
  257.     $game_map.update
  258.     @spriteset.dispose
  259.     @spriteset = Spriteset_Map.new
  260.     @midmap.star                                                        #★
  261.     if $game_temp.transition_processing
  262.       $game_temp.transition_processing = false
  263.       Graphics.transition(20)
  264.     end
  265.     $game_map.autoplay
  266.     Graphics.frame_reset
  267.     Input.update
  268.   end
  269. end

复制代码
您需要登录后才可以回帖 登录 | 注册会员

本版积分规则

拿上你的纸笔,建造一个属于你的梦想世界,加入吧。
 注册会员
找回密码

站长信箱:[email protected]|手机版|小黑屋|无图版|Project1游戏制作

GMT+8, 2024-5-2 02:45

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表