查看: 5615|回复: 12

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

[复制链接]
梦石
0
星屑
687
在线时间
1808 小时
注册时间
2009-7-12
回帖
416
发表于 2013-2-16 01:58:09 | 显示全部楼层 |阅读模式

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

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

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

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

用腳本也可以,只要能用1號開關控制該腳本是否激活就行
梦石
0
星屑
3905
在线时间
1972 小时
注册时间
2013-1-3
回帖
9146
发表于 2013-2-16 06:58:21 | 显示全部楼层
條件分歧:當獨立開關A為ON時,獨立開關B、C、D為OFF
以此類推.…

点评

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

使用道具 举报

梦石
0
星屑
50
在线时间
39 小时
注册时间
2013-2-9
回帖
73
发表于 2013-2-16 11:20:00 | 显示全部楼层
繁体···不看了···

点评

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

使用道具 举报

梦石
0
星屑
9716
在线时间
2775 小时
注册时间
2008-9-5
回帖
3458

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

发表于 2013-2-16 11:37:43 | 显示全部楼层
话说
其中一個開關被開啟時,另外三個就會被關閉

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

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

使用道具 举报

梦石
0
星屑
687
在线时间
1808 小时
注册时间
2009-7-12
回帖
416
 楼主| 发表于 2013-2-16 15:09:00 | 显示全部楼层
cinderelmini 发表于 2013-2-16 11:37
话说

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

是的,就是這個意思
我之前是試寫了這個腳本
[pre lang="ruby" line="1"]class Interpreter
  def day_night_switch_control
    mor = 2
    noo = 3
    eve = 4
    nig = 5
    if $game_switches[mor] == true and ($game_switches[noo] and $game_switches[eve] and $game_switches[nig]) != true
      if ($game_switches[noo] or $game_switches[eve] or $game_switches[nig]) == true
        $game_switches[mor] = false
      end
    end
    if $game_switches[noo] == true and ($game_switches[mor] and $game_switches[eve] and $game_switches[nig]) != true
      if ($game_switches[mor] or $game_switches[eve] or $game_switches[nig]) == true
        $game_switches[noo] = false
      end
    end
    if $game_switches[eve] == true and ($game_switches[mor] and $game_switches[noo] and $game_switches[nig]) != true
      if ($game_switches[mor] or $game_switches[noo] or $game_switches[nig]) == true
        $game_switches[eve] = false
      end
    end
    if $game_switches[nig] == true and ($game_switches[mor] and $game_switches[noo] and $game_switches[eve]) != true
      if ($game_switches[mor] or $game_switches[noo] or $game_switches[eve]) == true
        $game_switches[nig] = false
      end
    end
  end
end
[/pre]

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

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

评分

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

查看全部评分

回复

使用道具 举报

梦石
0
星屑
34457
在线时间
5096 小时
注册时间
2012-11-19
回帖
4715

开拓者

发表于 2013-2-16 15:15:56 | 显示全部楼层
  很简单啊

未命名.jpg

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

点评

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

评分

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

查看全部评分

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

使用道具 举报

梦石
0
星屑
9716
在线时间
2775 小时
注册时间
2008-9-5
回帖
3458

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

发表于 2013-2-16 15:24:29 | 显示全部楼层
事实上,乃换个写法吧,先把开关全关了,然后指定打开一个咧:
[pre lang="ruby" line="1"]class Interpreter
  def day_night_switch_control(id)
    mor = 2
    noo = 3
    eve = 4
    nig = 5
    $game_switches[mor] = false
    $game_switches[noo] = false
    $game_switches[eve] = false
    $game_switches[nig] = false
    $game_switches[id] = true
  end
end[/pre]

点评

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

使用道具 举报

梦石
0
星屑
34457
在线时间
5096 小时
注册时间
2012-11-19
回帖
4715

开拓者

发表于 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 各类型脚本/插件定制
回复

使用道具 举报

梦石
0
星屑
687
在线时间
1808 小时
注册时间
2009-7-12
回帖
416
 楼主| 发表于 2013-2-16 15:52:04 | 显示全部楼层
我在想是不是要用另外4個變數去紀錄開關目前是開啟還是關閉...
就跟寫升級事件一樣,一個紀錄目前等級,一個紀錄先前的等級
可是這樣我又不知道怎麼寫了我去
回复

使用道具 举报

梦石
0
星屑
9716
在线时间
2775 小时
注册时间
2008-9-5
回帖
3458

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

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

点评

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

使用道具 举报

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

本版积分规则

Powered by Discuz! X5.0 © 2001-2026 Discuz! Team.

在本版发帖返回顶部