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

Project1

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

[已经解决] 【已經解決】如何單純的控制地圖的色調,不控制事件以...

[复制链接]

Lv3.寻梦者

梦石
0
星屑
3166
在线时间
2531 小时
注册时间
2012-3-1
帖子
759
跳转到指定楼层
1
发表于 2017-5-25 20:10:13 | 只看该作者 |只看大图 回帖奖励 |正序浏览 |阅读模式

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

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

x
本帖最后由 卡奥尼特 于 2017-5-27 15:28 编辑


嗯,最近無聊玩了很多RPG。
而且遇敵方式也有很多種。

有一次玩UT。所以也想把這樣的方式搬到VA內使用。如果沒猜錯的話,著名的口袋妖怪也沿用了這樣的方式。

也就是,單純的更改地圖的色調。 主角以及事件均不受影響。
所以我的要求如下:
1、除了指定的事件,能單純的更改地圖色調,指定的事件不受色調更改的限制
2、除了主角以外,能單純的更改地圖的色調,主角均不受色調更改的限制
3、除了指定的事件以及主角以外,能單純的更改地圖的色調,指定的事件以及主角均不受色調更改的限制


結貼補充內容
也許我的表達方面很單純,或許我理想中的和妳們理解中的可能會有些差異。
主要的是,我到底想實現什麼,真正想要的效果到底是什麼?
寫一個開關不是問題,感覺要理解你真正想要的效果是什麼才是大問題..沒玩過什麼UT..

嗯,這裡引用一下13樓的話。
以後我提問題的時候還是先把問題整理好了再來發問,免得像今天一樣尷尬。。
所以,給大家添麻煩了。抱歉。。

其次,我並不是擅長寫代碼。 0.0 嗯,好像重點不在這裡。

其餘我想說的話,在14樓

Lv3.寻梦者

梦石
0
星屑
3166
在线时间
2531 小时
注册时间
2012-3-1
帖子
759
14
 楼主| 发表于 2017-5-27 15:01:24 | 只看该作者
本帖最后由 卡奥尼特 于 2017-5-27 15:27 编辑
gforce 发表于 2017-5-27 14:19
那個腳本大部分都是4樓/11樓為你寫的

基於我的理解,viewport好像一塊畫板,默認地圖跟事件都預設畫在同 ...

在自己的測試工程測試了下這腳本,測試可用。

畢竟,我一開始的需求的初衷就是這些

也就是,單純的更改地圖的色調。 主角以及事件均不受影響。
所以我的要求如下:
1、除了指定的事件,能單純的更改地圖色調,指定的事件不受色調更改的限制
2、除了主角以外,能單純的更改地圖的色調,主角均不受色調更改的限制
3、除了指定的事件以及主角以外,能單純的更改地圖的色調,指定的事件以及主角均不受色調更改的限制

也許我的表達能力不夠好,所以我理想中的和你們理解中的可能會有些差異。


然後4樓給出了思路,只是,我並不會Ruby,並且不擅長寫代碼,所以暫時先等下一人回覆

然後6樓也增加了可以指定不受影響的NPC。這些呢,基本已經滿足我的需求了。


雖然指定了是指定了,但我覺得少了點什麼, 就是開關。 某些情況下暫時不想用這功能。

至於其他方面,我會自己想辦法。 (比如主角自己。)

寫一個開關不是問題,感覺要理解你真正想要的效果是什麼才是大問題..沒玩過什麼UT..

嗚,畢竟我的表達方面不是很擅長,所以我理想中的和妳們理解當中的可能會有些差異。。
UT就是傳說之下了 0.0
回复 支持 反对

使用道具 举报

Lv4.逐梦者

梦石
0
星屑
7290
在线时间
1690 小时
注册时间
2017-4-28
帖子
85

开拓者

13
发表于 2017-5-27 14:19:56 | 只看该作者
嗯,我确实说过。 然后6L也给了脚本,因为只有一张浏览图,所以我没看出什么效果。

因为那时候没亲自去测试,所以当时判断得很果断。。

然后呢,如果我。某些情况下不想使用这样的功能的话,也不知道该怎么办。

毕竟脚本盲,因为我本来就不擅长写代码。。。 抱歉。



那個腳本大部分都是4樓/11樓為你寫的

基於我的理解,viewport好像一塊畫板,默認地圖跟事件都預設畫在同一塊畫板上面

RM的地圖色調改變其實是畫板的色調改變,所以它們會一起變。

一開始你的要求是 "單純的更改地圖的色調, 主角以及事件均不受影響"。 所以11樓為你增加了一塊畫板,事件都畫在這一塊不會變色的畫板上面。

基本上滿足了你一開始的要求。


後來發現你其實還是想改變事件的色調?

於是我在11樓的腳本上加上一個條件分岐,名字帶<c>的才畫在新畫板上面。

然後你現在想要一個取消腳本效果的開關?

寫一個開關不是問題,感覺要理解你真正想要的效果是什麼才是大問題..沒玩過什麼UT..

  1. module CANOITE_VIEWPORT
  2.   
  3.   CAONITE_SWITCHES_ID = 1 #系統開關編號
  4.   
  5. end

  6. class Game_Event
  7.   attr_reader   :name
  8.   
  9.   def name
  10.       return @event.name  
  11.   end
  12. end


  13. class Spriteset_Map
  14.   def create_viewports
  15.     @viewport1 = Viewport.new
  16.     @viewportX = Viewport.new
  17.     @viewport2 = Viewport.new
  18.     @viewport3 = Viewport.new
  19.     @viewportX.z = 25
  20.     @viewport2.z = 50
  21.     @viewport3.z = 100
  22.   end



  23. def create_characters
  24.     @viewportX = @viewport1 if $game_switches[CANOITE_VIEWPORT::CAONITE_SWITCHES_ID] != true
  25.     @character_sprites = []
  26.     $game_map.events.values.each do |event|
  27.        if event.name =~ /<c>/i
  28.        @character_sprites.push(Sprite_Character.new(@viewportX, event))
  29.        else
  30.        @character_sprites.push(Sprite_Character.new(@viewport1, event))
  31.        end
  32.     end
  33.     $game_map.vehicles.each do |vehicle|
  34.       @character_sprites.push(Sprite_Character.new(@viewportX, vehicle))
  35.     end
  36.     $game_player.followers.reverse_each do |follower|
  37.       @character_sprites.push(Sprite_Character.new(@viewportX, follower))
  38.     end
  39.     @character_sprites.push(Sprite_Character.new(@viewportX, $game_player))
  40.     @map_id = $game_map.map_id
  41.   end
  42.   
  43.   def update_viewports
  44.     @viewport1.tone.set($game_map.screen.tone)
  45.     @viewport1.ox = $game_map.screen.shake
  46.     @viewportX.ox = $game_map.screen.shake
  47.     @viewport2.color.set($game_map.screen.flash_color)
  48.     @viewport3.color.set(0, 0, 0, 255 - $game_map.screen.brightness)
  49.     @viewport1.update
  50.     @viewportX.update
  51.     @viewport2.update
  52.     @viewport3.update
  53.   end
  54.   
  55.   def dispose_viewports
  56.     @viewport1.dispose
  57.     @viewport2.dispose
  58.     @viewport3.dispose
  59.     @viewportX.dispose
  60.   end
  61.   end
复制代码


預設開關 1 開啟/結束 腳本效果

不過已經畫在畫板上的事件還得重畫一次才行

開啟腳本效果的場合,於事件中陷入腳本
  1. $game_switches[CANOITE_VIEWPORT::CAONITE_SWITCHES_ID] = true
  2. SceneManager.call(Scene_Map)
复制代码


結束腳本效果的場合,於事件中陷入腳本
  1. $game_switches[CANOITE_VIEWPORT::CAONITE_SWITCHES_ID] = false
  2. SceneManager.call(Scene_Map)
复制代码


開關的時候畫面會頓一下, 這個在下解決不了

如果這個腳本不能滿足你,只能說在下沒本事解決你的問題

点评

嗯,已經可以了。。  发表于 2017-5-27 14:53

评分

参与人数 2星屑 +45 梦石 +1 收起 理由
RaidenInfinity + 1 认可答案
卡奥尼特 + 45 測試可用。

查看全部评分

回复 支持 反对

使用道具 举报

Lv3.寻梦者

梦石
0
星屑
3166
在线时间
2531 小时
注册时间
2012-3-1
帖子
759
12
 楼主| 发表于 2017-5-27 01:21:17 | 只看该作者
本帖最后由 卡奥尼特 于 2017-5-27 01:26 编辑
fux2 发表于 2017-5-26 23:37
你不是要求不改变事件的色调吗?


嗯,我确实说过。 然后6L也给了脚本,因为只有一张浏览图,所以我没看出什么效果。

因为那时候没亲自去测试,所以当时判断得很果断。。

然后呢,如果我。某些情况下不想使用这样的功能的话,也不知道该怎么办。

毕竟脚本盲,因为我本来就不擅长写代码。。。 抱歉。
回复 支持 反对

使用道具 举报

Lv5.捕梦者 (管理员)

老黄鸡

梦石
0
星屑
41076
在线时间
7566 小时
注册时间
2009-7-6
帖子
13498

开拓者贵宾

11
发表于 2017-5-26 23:37:20 | 只看该作者
卡奥尼特 发表于 2017-5-25 22:43
嗯,這個好像只提供了思路吧。     自己測試了下雖然地圖色調被改變,事件的色調並沒有被改變 ...

你不是要求不改变事件的色调吗?
RGDirect - DirectX驱动的RGSS,点我了解.
RM全系列成套系统定制请联系QQ1213237796
不接受对其他插件维护的委托
回复 支持 反对

使用道具 举报

Lv3.寻梦者

梦石
0
星屑
3166
在线时间
2531 小时
注册时间
2012-3-1
帖子
759
10
 楼主| 发表于 2017-5-26 16:55:12 | 只看该作者
精灵使者 发表于 2017-5-26 16:03
给你个思路
如果事件名字里包含“不变色”的特殊字符,就可以不影响他的色调转换。
很多脚本都可以这样做呢 ...

或许我的表达能力有些缺陷。
脚本确实测试成功了,毕竟。7L的截图,我没看出什么效果来。具体还是要自己去测试的。

然后,虽然能实现这样的效果了,如果不想使用以及想用回原来的更改画面色调的功能,也不知道怎么做

恕我脚本小白。。。。。。 也从来没写过脚本= =、

点评

事件如果没有那个标记,就是遵守原来的“更改画面色调”的功能  发表于 2017-5-28 10:04
那就直接使用默认和事件不添加标记就行了  发表于 2017-5-28 10:03
回复 支持 反对

使用道具 举报

Lv3.寻梦者 (暗夜天使)

精灵族の天使

梦石
0
星屑
1697
在线时间
3038 小时
注册时间
2007-3-16
帖子
33731

开拓者贵宾

9
发表于 2017-5-26 16:03:05 | 只看该作者
给你个思路
如果事件名字里包含“不变色”的特殊字符,就可以不影响他的色调转换。
很多脚本都可以这样做呢

点评

不添加标记的事件就和之前的普通事件一样  发表于 2017-5-28 10:03
嗯,恕我不懂脚本。。。  发表于 2017-5-26 16:45
嗯,之前测试了,确实有效(他的毕竟当时他的截图我没看出效果来)。 如果我在某些情况下不使用它的话要怎么做 0.0  发表于 2017-5-26 16:42
追加,似乎某个楼层【6楼】已经实现目标了  发表于 2017-5-26 16:04
回复 支持 反对

使用道具 举报

Lv5.捕梦者

梦石
0
星屑
33064
在线时间
5103 小时
注册时间
2012-11-19
帖子
4878

开拓者

8
发表于 2017-5-26 08:07:31 | 只看该作者
6L的效果不就是只改变地图色调么!
当然,有选择性的指定某事件或玩家不受色调影响,这个就比较麻烦。
不可能一个事件或角色用一个显示端口。或者事件和角色的色调,就用色调颜色来填充其本身的精灵,不受影响的事件或角色就不填充。

点评

以色調顏色填充本身精靈…… VA有麼? 0.0   发表于 2017-5-26 12:28
因為6L只給出了一張瀏覽圖,所以我沒看出效果來。。  发表于 2017-5-26 12:13
xp vx va mv  va mz 各类型脚本/插件定制
回复 支持 反对

使用道具 举报

Lv3.寻梦者

梦石
0
星屑
3166
在线时间
2531 小时
注册时间
2012-3-1
帖子
759
7
 楼主| 发表于 2017-5-26 00:50:22 | 只看该作者
本帖最后由 卡奥尼特 于 2017-5-26 12:01 编辑
gforce 发表于 2017-5-26 00:28
你的意思是指定的事件及主角不變色, 其他事件會變?
你的要求不太能看明白....



好吧,收回前言。測試了下是成功了呢。 那,如果要包括玩家一起受影響要怎麼辦呢?
(也就是直接執行變換畫面色調,所有畫面均受影響。我的意思是,如果不使用此功能的話。 )
回复 支持 反对

使用道具 举报

Lv4.逐梦者

梦石
0
星屑
7290
在线时间
1690 小时
注册时间
2017-4-28
帖子
85

开拓者

6
发表于 2017-5-26 00:28:41 | 只看该作者
你的意思是指定的事件及主角不變色, 其他事件會變?
你的要求不太能看明白....
  1. class Game_Event
  2.   attr_reader   :name
  3.   
  4.   def name
  5.       return @event.name  
  6.   end
  7. end


  8. class Spriteset_Map
  9.   def create_viewports
  10.     @viewport1 = Viewport.new
  11.     @viewportX = Viewport.new
  12.     @viewport2 = Viewport.new
  13.     @viewport3 = Viewport.new
  14.     @viewportX.z = 25
  15.     @viewport2.z = 50
  16.     @viewport3.z = 100
  17.   end



  18. def create_characters
  19.     @character_sprites = []
  20.     $game_map.events.values.each do |event|
  21.       if event.name =~ /<c>/i
  22.       @character_sprites.push(Sprite_Character.new(@viewportX, event))
  23.       else
  24.       @character_sprites.push(Sprite_Character.new(@viewport1, event))
  25.       end
  26.       end
  27.     $game_map.vehicles.each do |vehicle|
  28.       @character_sprites.push(Sprite_Character.new(@viewportX, vehicle))
  29.     end
  30.     $game_player.followers.reverse_each do |follower|
  31.       @character_sprites.push(Sprite_Character.new(@viewportX, follower))
  32.     end
  33.     @character_sprites.push(Sprite_Character.new(@viewportX, $game_player))
  34.     @map_id = $game_map.map_id
  35.   end
  36.   
  37.   def update_viewports
  38.     @viewport1.tone.set($game_map.screen.tone)
  39.     @viewport1.ox = $game_map.screen.shake
  40.     @viewportX.ox = $game_map.screen.shake
  41.     @viewport2.color.set($game_map.screen.flash_color)
  42.     @viewport3.color.set(0, 0, 0, 255 - $game_map.screen.brightness)
  43.     @viewport1.update
  44.     @viewportX.update
  45.     @viewport2.update
  46.     @viewport3.update
  47.   end
  48.   
  49.   def dispose_viewports
  50.     @viewport1.dispose
  51.     @viewport2.dispose
  52.     @viewport3.dispose
  53.     @viewportX.dispose
  54.   end
  55.   end
复制代码


樓上的code多加兩句就可以了吧
指定事件的方法: 在事件的名稱加上
  1. <c>
复制代码


測試圖:

bandicam 2017-05-26 00-16-24-516.jpg (86.85 KB, 下载次数: 32)

bandicam 2017-05-26 00-16-24-516.jpg

点评

因為看了你的測試圖,畢竟不是GIF,我沒看出效果來。  发表于 2017-5-26 11:58

评分

参与人数 1星屑 +48 收起 理由
king + 48 精品文章

查看全部评分

回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-9-20 13:30

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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