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

Project1

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

[已经过期] 小地图 生成事件消失

[复制链接]

Lv1.梦旅人

梦石
0
星屑
50
在线时间
70 小时
注册时间
2014-10-11
帖子
50
跳转到指定楼层
1
发表于 2015-2-26 00:53:32 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

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

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

x
我用了一个小地图脚本 可是当我用多事件脚本生成一个新的事件时 小地图会自动关闭 当切换到主菜单再切换回来时 小地图又重新出现 请问该如何解决

小地图脚本:

RUBY 代码复制
  1. #==============================================================================
  2. class Midmap
  3. #==============================================================================
  4.  
  5.   #显示坐标
  6.   MX = 10     #显示在地图X坐标
  7.   MY = 10     #显示在地图Y坐标
  8.  
  9.   #显示窗口的大小
  10.   GX = 32     #窗口中最多显示GX格
  11.   GY = 24     #窗口中最多显示GY格
  12.  
  13.   #缩略点的大小
  14.   DX = 5      #每格大小
  15.  
  16.   #原点
  17.   OO = 0      #0左上(小地图对齐在视区的左上) 1右上
  18.  
  19.   #缩略图的颜色(分别是<红,黄,蓝,透明度>),不需要某种把透明度调0即可
  20.   COLOR_A = Color.new(0,222,222,192)        #底色
  21.   COLOR_B = Color.new(128,128,128,192)    #可通行色
  22.   COLOR_C = Color.new(255,255,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 = ["DIREN",Color.new(255,0,0)]          #事件名"Enemy", 颜色
  29.   EVENT_B = ["partner",Color.new(0,255,0)]  #事件名"Trans", 颜色
  30.   EVENT_C = ["CsNotShadow",Color.new(255,255,255)]            #自定义事件名 , 颜色
  31.  
  32. #==============================================================================
  33.  
  34.   def initialize
  35.     @pic = []
  36.     star
  37.   end
  38.   def star
  39.     width = $game_map.width
  40.     height = $game_map.height
  41.     @viewport = Viewport.new(MX,MY,GX*DX+1,GY*DX+1)
  42.     for i in 0..2
  43.       @pic[i] = Sprite.new(@viewport)
  44.       @pic[i].bitmap = Bitmap.new(width*DX+1,height*DX+1)
  45.       @pic[i].x = (GX - width)*DX if OO == 1
  46.       @pic[i].z = 50#0000
  47.     end
  48.     @pic[0].bitmap.fill_rect(0,0,width*DX+1,height*DX+1, COLOR_A)
  49.     @pic[0].z -= 1
  50.     @pic[2].z += 1
  51.     @map = $game_map
  52.     for x in 0...width
  53.       for y in 0...height
  54.         next unless @map.pass?(x,y,0)
  55.         @pic[1].bitmap.fill_rect(x*DX+1,y*DX+1,DX-1,DX-1, COLOR_B)
  56.         if @map.pass?(x,y,2) and @map.pass?(x,y+1,8)
  57.           @pic[1].bitmap.fill_rect(x*DX+1,y*DX+DX,DX-1,1, COLOR_B)
  58.         else
  59.           @pic[1].bitmap.fill_rect(x*DX,y*DX+DX,DX+1,1, COLOR_C)
  60.         end
  61.         if @map.pass?(x,y,6) and @map.pass?(x+1,y,4)
  62.           @pic[1].bitmap.fill_rect(x*DX+DX,y*DX+1,1,DX-1, COLOR_B)
  63.         else
  64.           @pic[1].bitmap.fill_rect(x*DX+DX,y*DX,1,DX+1, COLOR_C)
  65.         end
  66.         unless @map.pass?(x,y-1,0)
  67.           @pic[1].bitmap.fill_rect(x*DX,y*DX,DX+1,1, COLOR_C)
  68.         end
  69.         unless @map.pass?(x-1,y,0)
  70.           @pic[1].bitmap.fill_rect(x*DX,y*DX,1,DX+1, COLOR_C)
  71.         end
  72.         next unless @map.pass?(x,y,6)
  73.         next unless @map.pass?(x,y,2)
  74.         next unless @map.pass?(x+1,y,4)
  75.         next unless @map.pass?(x+1,y,2)
  76.         next unless @map.pass?(x,y+1,8)
  77.         next unless @map.pass?(x,y+1,6)
  78.         next unless @map.pass?(x+1,y+1,8)
  79.         next unless @map.pass?(x+1,y+1,4)
  80.         @pic[1].bitmap.fill_rect(x*DX+DX,y*DX+DX,1,1, COLOR_B)
  81.       end
  82.     end
  83.     update
  84.   end
  85.   def update
  86.  
  87.     @pic[2].bitmap.clear
  88.     for i in @map.events.keys
  89.    #  if i >=200
  90.      #    if  @map.events[i].jiazai == 0
  91.       #   $game_variables[80] += 1
  92.       #   end
  93.     #   end
  94.   #     $game_variables[81] = @map.events.keys
  95.  
  96.  
  97.       next if/\E\V/ === @map.events[i].event.name #@map.events[i].list.size <= 1 and
  98.               #/\E\V/ === @map.events[i].event.name
  99.       next if @map.events[i].character_name == "" and
  100.               /\E\V/ === @map.events[i].event.name
  101.       color = EVENT_Z
  102.       color = EVENT_A[1] if @map.events[i].event.name.include?(EVENT_A[0])
  103.       color = EVENT_B[1] if @map.events[i].event.name == EVENT_B[0]
  104.       color = EVENT_C[1] if @map.events[i].event.name == EVENT_C[0]
  105.       x = @map.events[i].x
  106.       y = @map.events[i].y
  107.       @pic[2].bitmap.fill_rect(x*DX+1,y*DX+1,DX-1,DX-1, color)
  108.     end
  109.     x = $game_player.x
  110.     y = $game_player.y
  111.     @pic[2].bitmap.fill_rect(x*DX+1,y*DX+1,DX-1,DX-1, EVENT_P)
  112.     if @map.width > GX
  113.       x = GX/2 if x < GX/2
  114.       x = @map.width - GX/2 if @map.width - x < GX/2
  115.       @pic[1].x = (GX/2 - x)*DX
  116.       @pic[2].x = (GX/2 - x)*DX
  117.     end
  118.     if @map.height > GY
  119.       y = GY/2 if y < GY/2
  120.       y = @map.height - GY/2 if @map.height - y < GY/2
  121.       @pic[1].y = (GY/2 - y)*DX
  122.       @pic[2].y = (GY/2 - y)*DX
  123.     end
  124.   end
  125. end
  126.  
  127. #==============================================================================
  128. # ● 默认脚本的更改
  129. #==============================================================================
  130. class Game_Map
  131.   def pass?(x, y, d)
  132.     for i in [2, 1, 0]
  133.       tile_id = data[x, y, i]
  134.       return false if tile_id == nil
  135.       return false if @passages[tile_id] & ((1 << (d / 2 - 1)) & 0x0f) != 0
  136.       return false if @passages[tile_id] & 0x0f == 0x0f
  137.       return true  if @priorities[tile_id] == 0
  138.     end
  139.   end
  140. end
  141.  
  142. class Game_Event < Game_Character
  143.   attr_reader   :event
  144. end
  145.  
  146. #添加显示与刷新
  147. class Scene_Map
  148.   def main
  149.    # $game_screen.weather(rand(9), 5, 0)
  150.     @spriteset = Spriteset_Map.new
  151.     @message_window = Window_Message.new
  152.     @midmap = Midmap.new           #★★★
  153.     Graphics.transition
  154.   #  @message_window.z = 555
  155.   $get_all_task
  156.     loop do
  157.       Graphics.update
  158.       Input.update
  159.       update
  160.       if $scene != self
  161.         break
  162.       end
  163.     end
  164.     Graphics.freeze
  165.     @spriteset.dispose
  166.     @message_window.dispose
  167.     if $scene.is_a?(Scene_Title)
  168.       Graphics.transition
  169.       Graphics.freeze
  170.     end
  171.   end
  172.   #--------------------------------------------------------------------------
  173.   # ● 刷新画面
  174.   #--------------------------------------------------------------------------
  175.   def update
  176.     loop do
  177.       $game_map.update
  178.       $game_system.map_interpreter.update
  179.       $game_player.update
  180.       $game_system.update
  181.       $game_screen.update
  182.       unless $game_temp.player_transferring
  183.         break
  184.       end
  185.       transfer_player
  186.       if $game_temp.transition_processing
  187.         break
  188.       end
  189.     end
  190.     @spriteset.update
  191.     @message_window.update
  192.     @midmap.update                                                      #★★★
  193.     if $game_temp.gameover
  194.       $scene = Scene_Gameover.new
  195.       return
  196.     end
  197.     if $game_temp.to_title
  198.       $scene = Scene_Title.new
  199.       return
  200.     end
  201.     if $game_temp.transition_processing
  202.       $game_temp.transition_processing = false
  203.       if $game_temp.transition_name == ""
  204. #        Graphics.transition(20)
  205.       else
  206.         Graphics.transition(40, "Graphics/Transitions/" +
  207.           $game_temp.transition_name)
  208.       end
  209.     end
  210.     if $game_temp.message_window_showing
  211.       return
  212.     end
  213.     if $game_player.encounter_count == 0 and $game_map.encounter_list != []
  214.       unless $game_system.map_interpreter.running? or
  215.              $game_system.encounter_disabled
  216.         n = rand($game_map.encounter_list.size)
  217.         troop_id = $game_map.encounter_list[n]
  218.         if $data_troops[troop_id] != nil
  219.           $game_temp.battle_calling = true
  220.           $game_temp.battle_troop_id = troop_id
  221.           $game_temp.battle_can_escape = true
  222.           $game_temp.battle_can_lose = false
  223.           $game_temp.battle_proc = nil
  224.         end
  225.       end
  226.     end
  227.        if Input.trigger?(Input::B)
  228.      # unless $game_system.map_interpreter.running? or
  229.     #         $game_system.menu_disabled
  230.     unless  $game_system.map_interpreter.running? or
  231.            @move_route_forcing or $game_temp.message_window_showing
  232.         $game_temp.menu_calling = true
  233.         $game_temp.menu_beep = true
  234.       end
  235.     end
  236.     if $DEBUG and Input.press?(Input::F9)
  237.       $game_temp.debug_calling = true
  238.     end
  239.     unless $game_player.moving?
  240.       if $game_temp.battle_calling
  241.         call_battle
  242.       elsif $game_temp.shop_calling
  243.         call_shop
  244.       elsif $game_temp.name_calling
  245.         call_name
  246.       elsif $game_temp.menu_calling
  247.         call_menu
  248.       elsif $game_temp.save_calling
  249.         call_save
  250.       elsif $game_temp.debug_calling
  251.         call_debug
  252.       end
  253.     end
  254.   end
  255.   #--------------------------------------------------------------------------
  256.   # ● 主角的场所移动
  257.   #--------------------------------------------------------------------------
  258.   def transfer_player
  259.     $game_temp.player_transferring = false
  260.     if $game_map.map_id != $game_temp.player_new_map_id
  261.       $game_map.setup($game_temp.player_new_map_id)
  262.     end
  263.     $game_player.moveto($game_temp.player_new_x, $game_temp.player_new_y)
  264.     case $game_temp.player_new_direction
  265.     when 2
  266.       $game_player.turn_down
  267.     when 4
  268.       $game_player.turn_left
  269.     when 6
  270.       $game_player.turn_right
  271.     when 8
  272.       $game_player.turn_up
  273.     end
  274.     $game_player.straighten
  275.     $game_map.update
  276.     @spriteset.dispose
  277.     @spriteset = Spriteset_Map.new
  278.         $game_variables[50] = 0
  279.         $game_variables[43] = 0
  280.      #   $game_screen.start_tone_change(Tone.new(-50,-50,0,255),20)
  281.     @midmap.star                                                        #★★★
  282.     if $game_temp.transition_processing
  283.       $game_temp.transition_processing = false
  284.   #    Graphics.transition(20)
  285.         Graphics.transition#(20, "Graphics/Transitions/" +"010-Random02.png")
  286.     end
  287.     $game_map.autoplay
  288.     Graphics.frame_reset
  289.     Input.update
  290.   end
  291. end

Lv1.梦旅人

梦石
0
星屑
50
在线时间
186 小时
注册时间
2014-6-14
帖子
213
2
发表于 2015-2-26 09:48:18 | 只看该作者
你还是别用这两个脚本整合吧
这两个脚本水火不相容呀!
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
70 小时
注册时间
2014-10-11
帖子
50
3
 楼主| 发表于 2015-2-26 20:01:16 手机端发表。 | 只看该作者
qq19750508 发表于 2015-2-26 09:48
你还是别用这两个脚本整合吧
这两个脚本水火不相容呀!

应该不会 因为切换到菜单再切换到地图 小地图又有用了    我想加个刷新小地图就能解决了 不知道怎么刷新
回复 支持 反对

使用道具 举报

Lv2.观梦者

故九江太守

梦石
0
星屑
612
在线时间
2167 小时
注册时间
2012-12-5
帖子
4464
4
发表于 2015-2-27 23:03:48 | 只看该作者
还是发工程吧
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
70 小时
注册时间
2014-10-11
帖子
50
5
 楼主| 发表于 2015-2-27 23:24:57 | 只看该作者
你最珍贵 发表于 2015-2-27 23:03
还是发工程吧

你QQ 多少 我把工程发给你 6R论坛文件在哪上传?
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-11-25 11:12

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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