Project1

标题: 应求发布,VX地图名自动显示不会有 [打印本页]

作者: 550947096    时间: 2012-2-7 10:17
标题: 应求发布,VX地图名自动显示不会有
哪个高手,图文教一下。。。不然真的不会用啊。。。dsu_plus_rewardpost_czw
作者: linyifei    时间: 2012-2-7 11:29
  1. #==============================================================================
  2. # 地图名及区域名显示 by Beside
  3. #------------------------------------------------------------------------------
  4. # 功能: 动态显示玩家所在区域及地图名。
  5. #==============================================================================
  6. MWINDOW_X = 20                                # 窗口X坐标
  7. MWINDOW_Y = 20                                # 窗口Y坐标
  8. WEIGH = 200                                   # 窗口宽度      
  9. START_TIME = 30                               # 窗口出现时间
  10. COUN_TIME = 50                                # 窗口持续时间
  11. FADE_TIME = 30                                # 窗口淡去时间
  12. TEXT1_SIZE = 20                               # 地图名的字体大小
  13. TEXT2_SIZE = 18                               # 区域名的字体大小
  14. TEXT3_SIZE = 18                               # 附加名的字体大小
  15. TEXT1_COLOR = Color.new(255,255,255)          # 地图名的默认颜色
  16. TEXT2_COLOR = 0                               # 区域名的默认颜色代码(0-31)
  17. TEXT3_COLOR = 0                               # 附加名的默认颜色代码(0-31)
  18. SKIN = "window"                               # 窗口皮肤的文件名
  19. HEIGHT = TEXT1_SIZE + TEXT2_SIZE + TEXT3_SIZE + 32                             
  20. #==============================================================================
  21. # ■ Window_Map
  22. #------------------------------------------------------------------------------
  23. #   显示当前进度中的所在场景名称的窗口。
  24. #==============================================================================
  25. class Window_Map < Window_Base
  26.   #--------------------------------------------------------------------------
  27.   # ● 初始化对像
  28.   #--------------------------------------------------------------------------
  29.   def initialize
  30.     @id = 0
  31.     @a_id = 0
  32.     super(MWINDOW_X, MWINDOW_Y, WEIGH, HEIGHT)
  33.     self.opacity = 0
  34.     self.contents_opacity = 0
  35.     self.windowskin = Cache.system(SKIN)
  36.     refresh
  37.   end
  38.   #--------------------------------------------------------------------------
  39.   # ● 刷新
  40.   #--------------------------------------------------------------------------
  41.   def refresh
  42.     @map_id = $game_map.map_id
  43.     locationname = load_data("Data/MapInfos.rvdata")[@map_id].name
  44.     if $game_player.area_id.is_a?(Numeric)
  45.       if $game_player.area_id != @a_id or @map_id != @id
  46.         self.contents.clear
  47.         if @map_id != @id
  48.          @id = @map_id
  49.          @time_count = START_TIME + COUN_TIME + FADE_TIME  
  50.          self.contents.font.color = TEXT1_COLOR
  51.          self.contents.font.size = TEXT1_SIZE
  52.          self.contents.draw_text(0, 0, WEIGH-32, TEXT1_SIZE, locationname, 1)
  53.         end
  54.         @time_count = START_TIME + COUN_TIME + FADE_TIME
  55.         @a_id = $game_player.area_id
  56.         area_name = $data_areas[@a_id].name_p1
  57.         other_name = $data_areas[@a_id].name_p2
  58.         self.contents.font.size = TEXT2_SIZE
  59.         self.contents.font.color = text_color($data_areas[@a_id].color_1)
  60.         self.contents.draw_text(0, TEXT1_SIZE, WEIGH-32, TEXT2_SIZE, area_name, 1)
  61.         self.contents.font.size = TEXT3_SIZE
  62.         self.contents.font.color = text_color($data_areas[@a_id].color_2)
  63.         self.contents.draw_text(0, TEXT1_SIZE+TEXT2_SIZE, WEIGH-32, TEXT3_SIZE, other_name, 1)
  64.       end
  65.     elsif @map_id != @id
  66.       @id = @map_id
  67.       @time_count = START_TIME + COUN_TIME + FADE_TIME  
  68.       self.contents.clear
  69.       self.contents.font.color = TEXT1_COLOR
  70.       self.contents.font.size = TEXT1_SIZE
  71.       self.contents.draw_text(0, (HEIGHT-TEXT1_SIZE)/2-16, WEIGH-32, TEXT1_SIZE, locationname, 1)
  72.     elsif @a_id != 0
  73.       @a_id = 0
  74.       @time_count = START_TIME + COUN_TIME + FADE_TIME  
  75.       self.contents.clear
  76.       self.contents.font.color = TEXT1_COLOR
  77.       self.contents.font.size = TEXT1_SIZE
  78.       self.contents.draw_text(0, (HEIGHT-TEXT1_SIZE)/2-16, WEIGH-32, TEXT1_SIZE, locationname, 1)
  79.     end
  80.     if @time_count > COUN_TIME + FADE_TIME
  81.       self.opacity += 255 / START_TIME
  82.       self.contents_opacity += 255 / START_TIME
  83.       @time_count -= 1
  84.     elsif @time_count > FADE_TIME
  85.       self.opacity = 255
  86.       self.contents_opacity = 255
  87.       @time_count -= 1
  88.     elsif @time_count > 0
  89.       self.opacity -= 255 / FADE_TIME
  90.       self.contents_opacity -= 255 / FADE_TIME
  91.       @time_count -= 1
  92.     else
  93.       @time_count = 0
  94.       self.opacity = 0
  95.       self.contents_opacity = 0
  96.     end
  97.   end
  98. end

  99. #==============================================================================
  100. # ■ Scene_Map
  101. #------------------------------------------------------------------------------
  102. #  处理地图画面的类。
  103. #==============================================================================

  104. class Scene_Map < Scene_Base
  105.   alias _start start
  106.   #--------------------------------------------------------------------------
  107.   # ● 开始处理
  108.   #--------------------------------------------------------------------------
  109.   def start
  110.     @map_window = Window_Map.new
  111.     _start
  112.   end
  113.   
  114.   alias _terminate terminate
  115.   def terminate
  116.     @map_window.dispose
  117.     _terminate
  118.   end
  119.   
  120.   alias _update update
  121.   def update
  122.     @map_window.refresh
  123.     _update
  124.   end
  125. end

  126. module RPG
  127.   class Area
  128.     def name_p1
  129.       name = @name.split(/#/)[0]
  130.       return name != nil ? name : ""
  131.     end
  132.     def name_p2
  133.       name = @name.split(/#/)[1]
  134.       return name != nil ? name : ""
  135.     end
  136.     def color_1
  137.       color = @name.split(/#/)[2]
  138.       return color != nil ? color.to_i : TEXT2_COLOR
  139.     end
  140.     def color_2
  141.       color = @name.split(/#/)[3]
  142.       return color != nil ? color.to_i : TEXT3_COLOR
  143.     end
  144.   end
  145. end

  146. class Game_Character
  147.   def area_id
  148.     for area in $data_areas.values
  149.      if in_area?(area)
  150.      return area.id
  151.      end
  152.     end
  153.   end
  154. end
复制代码
貌似把此代码放在main前就可以了
作者: 550947096    时间: 2012-2-7 13:22
把此代码放在主前就可以了什么意思?
作者: linyifei    时间: 2012-2-7 15:38
550947096 发表于 2012-2-7 13:22
把此代码放在主前就可以了什么意思?

这是一段脚本,打开脚本编辑器,插入在main前
作者: 740245843    时间: 2012-2-24 17:00
谢谢了!!




欢迎光临 Project1 (https://rpg.blue/) Powered by Discuz! X3.1