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

Project1

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

[已经解决] 某開關開啟時,其他開關就關閉

[复制链接]

Lv1.梦旅人

梦石
0
星屑
80
在线时间
1730 小时
注册时间
2009-7-12
帖子
443
跳转到指定楼层
1
 楼主| 发表于 2013-2-16 01:58:09 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式

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

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

x
我想用公共事件寫一個效果
當1號開關開啟時,該公共事件並行處理
事件內容為
有A、B、C、D,共四個開關
其中一個開關被開啟時,另外三個就會被關閉

請問該事件內容要如何寫?

用腳本也可以,只要能用1號開關控制該腳本是否激活就行

那啥…我以為用戶名只是通行碼…
所以我暱稱不是serena718哈,是月見斐夜

Lv3.寻梦者

梦石
0
星屑
3841
在线时间
1966 小时
注册时间
2013-1-3
帖子
9536
2
发表于 2013-2-16 06:58:21 | 只看该作者
條件分歧:當獨立開關A為ON時,獨立開關B、C、D為OFF
以此類推.…

点评

啊...不是獨立開關呃,你把ABCD代換為1234好了,我原本的思路跟你想的差不多,不過效果還是出不來  发表于 2013-2-16 15:05
《宿愿·寻剑篇》正式版已经发布!快去看看!点击进入论坛发布贴
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
39 小时
注册时间
2013-2-9
帖子
81
3
发表于 2013-2-16 11:20:00 | 只看该作者
繁体···不看了···

点评

我去,連開個翻譯機都懶?  发表于 2013-2-16 15:05
回复 支持 反对

使用道具 举报

Lv4.逐梦者

「Pemercyia」


Urhurrenna

梦石
0
星屑
9335
在线时间
2745 小时
注册时间
2008-9-5
帖子
3540

开拓者短篇八RM组冠军短篇九导演组亚军白银编剧

4
发表于 2013-2-16 11:37:43 | 只看该作者
话说
其中一個開關被開啟時,另外三個就會被關閉

这个设定本来就矛盾了啊~
是哀家没理解好?
因为当四个开关其中一个被打开了,
那么其他的开关就不可能被打开,进而关闭其他开关了~~

于是斐夜酱的意思是不是:
即使四个开关中有一个被打开~
然后如果下次操作打开其他的某个开关~
那么之前打开的开关就要关掉?
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
80
在线时间
1730 小时
注册时间
2009-7-12
帖子
443
5
 楼主| 发表于 2013-2-16 15:09:00 | 只看该作者
cinderelmini 发表于 2013-2-16 11:37
话说

这个设定本来就矛盾了啊~

是的,就是這個意思
我之前是試寫了這個腳本
RUBY 代码复制
  1. class Interpreter
  2.   def day_night_switch_control
  3.     mor = 2
  4.     noo = 3
  5.     eve = 4
  6.     nig = 5
  7.     if $game_switches[mor] == true and ($game_switches[noo] and $game_switches[eve] and $game_switches[nig]) != true
  8.       if ($game_switches[noo] or $game_switches[eve] or $game_switches[nig]) == true
  9.         $game_switches[mor] = false
  10.       end
  11.     end
  12.     if $game_switches[noo] == true and ($game_switches[mor] and $game_switches[eve] and $game_switches[nig]) != true
  13.       if ($game_switches[mor] or $game_switches[eve] or $game_switches[nig]) == true
  14.         $game_switches[noo] = false
  15.       end
  16.     end
  17.     if $game_switches[eve] == true and ($game_switches[mor] and $game_switches[noo] and $game_switches[nig]) != true
  18.       if ($game_switches[mor] or $game_switches[noo] or $game_switches[nig]) == true
  19.         $game_switches[eve] = false
  20.       end
  21.     end
  22.     if $game_switches[nig] == true and ($game_switches[mor] and $game_switches[noo] and $game_switches[eve]) != true
  23.       if ($game_switches[mor] or $game_switches[noo] or $game_switches[eve]) == true
  24.         $game_switches[nig] = false
  25.       end
  26.     end
  27.   end
  28. end


然後在公共事件裡直接調用day_night_switch_control

結果效果還是沒出來,該關的不關,不該關的被關了呃

评分

参与人数 1星屑 +100 收起 理由
hys111111 + 100 nor、eve好晕……

查看全部评分


那啥…我以為用戶名只是通行碼…
所以我暱稱不是serena718哈,是月見斐夜
回复 支持 反对

使用道具 举报

Lv5.捕梦者

梦石
0
星屑
31959
在线时间
5081 小时
注册时间
2012-11-19
帖子
4877

开拓者

6
发表于 2013-2-16 15:15:56 | 只看该作者
  很简单啊



呃,第一个条件的开关4错了,该是 OFF

点评

這個我試過了,下面的判定會直接覆蓋上面的,詳細看下我LS貼的腳本  发表于 2013-2-16 15:32

评分

参与人数 1星屑 +66 收起 理由
hys111111 + 66 感谢回答,后面的开关会打开。.

查看全部评分

xp vx va mv  va mz 各类型脚本/插件定制
回复 支持 反对

使用道具 举报

Lv4.逐梦者

「Pemercyia」


Urhurrenna

梦石
0
星屑
9335
在线时间
2745 小时
注册时间
2008-9-5
帖子
3540

开拓者短篇八RM组冠军短篇九导演组亚军白银编剧

7
发表于 2013-2-16 15:24:29 | 只看该作者
事实上,乃换个写法吧,先把开关全关了,然后指定打开一个咧:
RUBY 代码复制
  1. class Interpreter
  2.   def day_night_switch_control(id)
  3.     mor = 2
  4.     noo = 3
  5.     eve = 4
  6.     nig = 5
  7.     $game_switches[mor] = false
  8.     $game_switches[noo] = false
  9.     $game_switches[eve] = false
  10.     $game_switches[nig] = false
  11.     $game_switches[id] = true
  12.   end
  13. end

点评

比如2=on,要把3給on時,系統會自動再把3給off...  发表于 2013-2-16 15:48
這的確是把過程簡化了,但是我還是找不到中間判定的思路,只要另一個開關被打開時,腳本只會判定最優先執行的那個  发表于 2013-2-16 15:47
调用这个脚本的时候,在后面加个小括弧,里面写上要打开的开关id。  发表于 2013-2-16 15:25
回复 支持 反对

使用道具 举报

Lv5.捕梦者

梦石
0
星屑
31959
在线时间
5081 小时
注册时间
2012-11-19
帖子
4877

开拓者

8
发表于 2013-2-16 15:44:07 | 只看该作者
  1. class Interpreter
  2.   def day_night_switch_control(id)
  3.     if $game_switches[2] = true
  4.       $game_switches[3] = false   
  5.       $game_switches[4] = false   
  6.       $game_switches[5] = false
  7.     elsif $game_switches[3] = true
  8.       $game_switches[2] = false   
  9.       $game_switches[4] = false   
  10.       $game_switches[5] = false
  11.     elsif $game_switches[4] = true
  12.       $game_switches[2] = false   
  13.       $game_switches[3] = false   
  14.       $game_switches[5] = false
  15.     elsif $game_switches[5] = true
  16.       $game_switches[2] = false   
  17.       $game_switches[3] = false   
  18.       $game_switches[4] = false
  19.     end
  20.     return
  21.   end
  22. end
复制代码

点评

就算用elsif還是不行的,他還是只會判定最上面的那個,比如2=on,若把3=on,他又會把3給關了  发表于 2013-2-16 15:50
这样的话~如果之前ID数值小的开关打开了,然后再打开ID大的开关的话~依然会把ID大的那个开关关掉而不是关掉ID小的开关。  发表于 2013-2-16 15:49
xp vx va mv  va mz 各类型脚本/插件定制
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
80
在线时间
1730 小时
注册时间
2009-7-12
帖子
443
9
 楼主| 发表于 2013-2-16 15:52:04 | 只看该作者
我在想是不是要用另外4個變數去紀錄開關目前是開啟還是關閉...
就跟寫升級事件一樣,一個紀錄目前等級,一個紀錄先前的等級
可是這樣我又不知道怎麼寫了我去

那啥…我以為用戶名只是通行碼…
所以我暱稱不是serena718哈,是月見斐夜
回复 支持 反对

使用道具 举报

Lv4.逐梦者

「Pemercyia」


Urhurrenna

梦石
0
星屑
9335
在线时间
2745 小时
注册时间
2008-9-5
帖子
3540

开拓者短篇八RM组冠军短篇九导演组亚军白银编剧

10
发表于 2013-2-16 15:52:06 | 只看该作者
哪有~~哀家写的那一段根本没有判定处理~这个要判定处理的话很麻烦~
哀家就是很暴力地先把所有开关给关了~
之后再打开指定的那个开关罢了~

点评

的確。這樣我只要用變數指定,在調用腳本,直接打開指定開關就好了,試一下這方法  发表于 2013-2-16 15:57
这样就跳过了判定~思路不是更清晰了吗?  发表于 2013-2-16 15:52
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-4-28 19:27

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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