Project1

标题: 如何在分岐的"脚本"写句判断队伍中是否有人中某状态? [打印本页]

作者: alonescud    时间: 2008-6-8 08:17
标题: 如何在分岐的"脚本"写句判断队伍中是否有人中某状态?
RT

因队伍人数比较多,不想一个个判断,有办法吗? [LINE]1,#dddddd[/LINE]版务信息:本贴由楼主自主结贴~
作者: 雪流星    时间: 2008-6-8 08:35
搜索[状态法]
作者: alonescud    时间: 2008-6-8 08:43
以下引用snstar2006于2008-6-8 0:35:53的发言:

搜索[状态法]


我找到的是:在数据库>物品里面设置一个状态,并且在数据库>状态里面让这个状态设置为不可抵抗(也就是命中率100%)。然后,在物品的公共事件中一个角色一个角色的找,看哪个角色中了这个状态。一旦发现有角色中了状态,先解除状态,然后执行公共事件

。。。我就是想用状态法,,是这样的。我设置一个物品,会先给使用者加个状态,然后用条件分岐找出谁中了状态,但上面说道,是一个个找,所以我才想知道,能否不要一个个找?能不能用一个语句就能判断队伍中的所有人呢?

作者: 雪流星    时间: 2008-6-8 08:52
我記得有錄像的說
怎麼不見了 = ="

裡面的範例下載來看看
應該是用腳本循環判斷的
作者: alonescud    时间: 2008-6-8 08:53
以下引用snstar2006于2008-6-8 0:52:06的发言:

我記得有錄像的說
怎麼不見了 = ="

裡面的範例下載來看看
應該是用腳本循環判斷的



嗯,之前找了,没找到的说,只看到有一个是一个个判断的..,,,,{/pz}

作者: 雪流星    时间: 2008-6-8 09:31
这样设定事件:

变数操作:1号变量 = 0
循环
条件分歧:$game_party.members[$game_variables[1]].states?(状态编号)
..........
分歧结束
以上循环

作者: alonescud    时间: 2008-6-8 09:44
以下引用snstar2006于2008-6-8 1:31:30的发言:

这样设定事件:

变数操作:1号变量 = 0
循环
条件分歧:$game_party.members[$game_variables[1]].states?(状态编号)
..........
分歧结束
以上循环


估计只能一个个加了,因为有个疑问,如下:

例:即使脚本语句检查出2号角色中了5号状态,那我写入后续动作,也没法相对的指定给2号角色5号状态啊,只能固定的选角色。。。。
作者: 雪流星    时间: 2008-6-8 10:06
你想對角色進行什麼操作
我把腳本寫給你
作者: alonescud    时间: 2008-6-8 10:14
以下引用snstar2006于2008-6-8 2:06:10的发言:

你想對角色進行什麼操作
我把腳本寫給你


例:1.状态数据库中有1,2,3种状态,就是给状态法用的
    2.脚色数据库中有1,2,3个角色
    3.技能数据库中有1,2,3个技能。
     
    玩家得到一个物品,使用后给2号角色加上3号状态(状态法用)

    4.公共事件:条件分岐"判断到了队伍中2号角色中了3号状态" ,那么给2号角色习得3号技    能,然后解除3号状态

     PS。有设定了多个物品,比如给2号角色加上3号状态的物品只是例子,还有给3号角色加上2号状态的。 其实就是看玩家要把物品对谁使用而定。但状态是定的,1状态对应1物品。
作者: 雪流星    时间: 2008-6-8 10:27
for a in $game_party.members
  if a.state?(2) # 如果角色中了2號狀態
    a.learn_skill(2) # 學會2號技能
    a.remove_state(2) # 移除2號障狀態
  end
end

其他依樣畫葫蘆 [LINE]1,#dddddd[/LINE]系统信息:本贴由楼主认可为正确答案,66RPG感谢您的热情解答~
作者: alonescud    时间: 2008-6-8 10:46
以下引用snstar2006于2008-6-8 2:27:46的发言:

for a in $game_party.members
if a.state?(2) # 如果角色中了2號狀態
   a.learn_skill(2) # 學會2號技能
   a.remove_states(2) # 移除2號障狀態
end
end

其他依樣畫葫蘆


for a in $game_party.members
if a.state?(7) # 如果角色中了2號狀態
   a.learn_skill(7) # 學會2號技能
   a.remove_states(7) # 移除2號障狀態
end
end

for a in $game_party.members
if a.state?(8) # 如果角色中了2號狀態
   a.learn_skill(8) # 學會2號技能
   a.remove_states(8) # 移除2號障狀態
end
end

我如上设了7,8两个技能状态,出错了,如图




作者: 雪流星    时间: 2008-6-8 10:55
我打錯了
是 a.remove_state 才對
多了一個s

其實這個可以省去
在事件最後面加上全對員移除X狀態就可以了

還有就是
所有的if可以寫在同一個循環理面(如果夠長的話)

而且如果全部的狀態和技能ID都是對應的話
還可以寫得更短
作者: alonescud    时间: 2008-6-8 11:08
以下引用snstar2006于2008-6-8 2:55:57的发言:

我打錯了
是 a.remove_state 才對
多了一個s

其實這個可以省去
在事件最後面加上全對員移除X狀態就可以了

還有就是
所有的if可以寫在同一個循環理面(如果夠長的話)

而且如果全部的狀態和技能ID都是對應的話
還可以寫得更短


[本贴由作者于 2008-6-8 2:59:15 最后编辑]


搞定,十分感谢!
作者: sizz123    时间: 2008-6-8 15:30
以下引用alonescud于2008-6-8 0:17:26的发言:

RT

因队伍人数比较多,不想一个个判断,有办法吗?

版务信息:本贴由楼主自主结贴~


有个比较原始的方法
如果队员1为00的时候,发生事情,否则,标签连接队友2..标签连接队友3





欢迎光临 Project1 (https://rpg.blue/) Powered by Discuz! X3.1