| 
 
| 赞 | 14 |  
| VIP | 0 |  
| 好人卡 | 3 |  
| 积分 | 72 |  
| 经验 | 8295 |  
| 最后登录 | 2024-6-8 |  
| 在线时间 | 1685 小时 |  
 Lv4.逐梦者 
	梦石0 星屑7230 在线时间1685 小时注册时间2017-4-28帖子85 
 | 
| 嗯,我确实说过。 然后6L也给了脚本,因为只有一张浏览图,所以我没看出什么效果。
 因为那时候没亲自去测试,所以当时判断得很果断。。
 
 然后呢,如果我。某些情况下不想使用这样的功能的话,也不知道该怎么办。
 
 毕竟脚本盲,因为我本来就不擅长写代码。。。 抱歉。
 
 那個腳本大部分都是4樓/11樓為你寫的
 
 基於我的理解,viewport好像一塊畫板,默認地圖跟事件都預設畫在同一塊畫板上面
 
 RM的地圖色調改變其實是畫板的色調改變,所以它們會一起變。
 
 一開始你的要求是 "單純的更改地圖的色調, 主角以及事件均不受影響"。 所以11樓為你增加了一塊畫板,事件都畫在這一塊不會變色的畫板上面。
 
 基本上滿足了你一開始的要求。
 
 
 後來發現你其實還是想改變事件的色調?
 
 於是我在11樓的腳本上加上一個條件分岐,名字帶<c>的才畫在新畫板上面。
 
 然後你現在想要一個取消腳本效果的開關?
 
 寫一個開關不是問題,感覺要理解你真正想要的效果是什麼才是大問題..沒玩過什麼UT..
 
 
 复制代码module CANOITE_VIEWPORT
  
  CAONITE_SWITCHES_ID = 1 #系統開關編號
  
end
class Game_Event
  attr_reader   :name
  
  def name
      return @event.name  
  end
end
class Spriteset_Map
  def create_viewports
    @viewport1 = Viewport.new
    @viewportX = Viewport.new
    @viewport2 = Viewport.new
    @viewport3 = Viewport.new
    @viewportX.z = 25
    @viewport2.z = 50
    @viewport3.z = 100
  end
def create_characters
    @viewportX = @viewport1 if $game_switches[CANOITE_VIEWPORT::CAONITE_SWITCHES_ID] != true 
    @character_sprites = []
    $game_map.events.values.each do |event|
       if event.name =~ /<c>/i
       @character_sprites.push(Sprite_Character.new(@viewportX, event))
       else
       @character_sprites.push(Sprite_Character.new(@viewport1, event))
       end
    end
    $game_map.vehicles.each do |vehicle|
      @character_sprites.push(Sprite_Character.new(@viewportX, vehicle))
    end
    $game_player.followers.reverse_each do |follower|
      @character_sprites.push(Sprite_Character.new(@viewportX, follower))
    end
    @character_sprites.push(Sprite_Character.new(@viewportX, $game_player))
    @map_id = $game_map.map_id
  end
  
  def update_viewports
    @viewport1.tone.set($game_map.screen.tone)
    @viewport1.ox = $game_map.screen.shake
    @viewportX.ox = $game_map.screen.shake
    @viewport2.color.set($game_map.screen.flash_color)
    @viewport3.color.set(0, 0, 0, 255 - $game_map.screen.brightness)
    @viewport1.update
    @viewportX.update
    @viewport2.update
    @viewport3.update
  end
  
  def dispose_viewports
    @viewport1.dispose
    @viewport2.dispose
    @viewport3.dispose
    @viewportX.dispose
  end
  end
 預設開關 1 開啟/結束 腳本效果
 
 不過已經畫在畫板上的事件還得重畫一次才行
 
 開啟腳本效果的場合,於事件中陷入腳本
 
 复制代码$game_switches[CANOITE_VIEWPORT::CAONITE_SWITCHES_ID] = true
SceneManager.call(Scene_Map)
 結束腳本效果的場合,於事件中陷入腳本
 
 复制代码$game_switches[CANOITE_VIEWPORT::CAONITE_SWITCHES_ID] = false
SceneManager.call(Scene_Map)
 開關的時候畫面會頓一下, 這個在下解決不了
 
 如果這個腳本不能滿足你,只能說在下沒本事解決你的問題
 | 
 评分
查看全部评分
 |