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

Project1

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

[已经解决] 战斗自动附加某状态

[复制链接]

Lv1.梦旅人

梦石
0
星屑
50
在线时间
112 小时
注册时间
2012-3-16
帖子
65
跳转到指定楼层
1
发表于 2013-8-17 12:32:38 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

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

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

x
本帖最后由 沉默是惊 于 2013-8-18 21:36 编辑

如何用脚本让特定角色战斗开始的时候自动附加某状态(每场战斗都这样)。最好是在弄个开关,当X号开关打开的时候这样子。
例子:
3号角色 附加5号状态
5号角色 附加18号状态
21号角色 附加30号状态

Lv3.寻梦者

梦石
0
星屑
2744
在线时间
2630 小时
注册时间
2013-1-16
帖子
5657

贵宾

2
发表于 2013-8-17 13:14:25 | 只看该作者
在Scene_Battle1中 在 def update 中的最前面加入
  1. $game_party.actors[X].add_state(Y)   
  2. @status_window.refresh
复制代码
代码的意思是 给X+1号角色 附加Y号状态

如果战斗后要消除状态,就在数据库中的状态选项中选中 战斗结束时解除

评分

参与人数 1星屑 +70 收起 理由
弗雷德 + 70 我很赞同

查看全部评分

(Created by @喵kano)


施工现场:hotege.github.io
回复 支持 反对

使用道具 举报

Lv3.寻梦者

梦石
0
星屑
995
在线时间
180 小时
注册时间
2013-2-16
帖子
176
3
发表于 2013-8-17 14:49:42 手机端发表。 | 只看该作者
本帖最后由 clear仔 于 2013-8-17 14:56 编辑
myownroc 发表于 2013-8-17 13:14
在Scene_Battle1中 在 def update 中的最前面加入代码的意思是 给X+1号角色 附加Y号状态

如果战斗后要消除 ...


这样子每回合都会附加状态,自动接触状态就无法自动接触了。
这样:在scene_battle的main方法里,在最后一行写
if $game_switches[x]
for e in $game_troop.enemies
next unless e
case e.id
when a
e.add_state(q)
when b
e.add_state(w)
……
end
end
end
#x,a,b,q,w均为自设id
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
112 小时
注册时间
2012-3-16
帖子
65
4
 楼主| 发表于 2013-8-17 15:09:41 | 只看该作者
clear仔 发表于 2013-8-17 14:49
这样子每回合都会附加状态,自动接触状态就无法自动接触了。
这样:在scene_battle的main方法里,在最后一 ...

貌似没反映
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
112 小时
注册时间
2012-3-16
帖子
65
5
 楼主| 发表于 2013-8-17 15:21:37 | 只看该作者
myownroc 发表于 2013-8-17 13:14
在Scene_Battle1中 在 def update 中的最前面加入代码的意思是 给X+1号角色 附加Y号状态

如果战斗后要消除 ...

这个用起来可以,不过,当队伍里就1个任务的时候就会出现脚本错误。
回复 支持 反对

使用道具 举报

Lv3.寻梦者

梦石
0
星屑
2744
在线时间
2630 小时
注册时间
2013-1-16
帖子
5657

贵宾

6
发表于 2013-8-17 15:47:13 | 只看该作者
沉默是惊 发表于 2013-8-17 15:21
这个用起来可以,不过,当队伍里就1个任务的时候就会出现脚本错误。

在刚才的脚本外加一个判断
  1. if $game_party.actors.size - 1 >= X

  2. end
复制代码
X是队伍人数
(Created by @喵kano)


施工现场:hotege.github.io
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
112 小时
注册时间
2012-3-16
帖子
65
7
 楼主| 发表于 2013-8-17 15:57:38 | 只看该作者
myownroc 发表于 2013-8-17 15:47
在刚才的脚本外加一个判断X是队伍人数

还是不行
  1.     if $game_party.actors.size - 1 >= 4
  2.        $game_party.actors[0].add_state(6)   
  3.        @status_window.refresh
  4.     end
复制代码
这样直接状态显示不出来了
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
112 小时
注册时间
2012-3-16
帖子
65
8
 楼主| 发表于 2013-8-17 15:59:14 | 只看该作者
myownroc 发表于 2013-8-17 15:47
在刚才的脚本外加一个判断X是队伍人数

看错了。。。可以了。非常感谢
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
112 小时
注册时间
2012-3-16
帖子
65
9
 楼主| 发表于 2013-8-17 16:29:15 | 只看该作者
myownroc 发表于 2013-8-17 13:14
在Scene_Battle1中 在 def update 中的最前面加入代码的意思是 给X+1号角色 附加Y号状态

如果战斗后要消除 ...

弱弱的问下,状态附加了之后,战斗的时候不能解除吗。
还有这句
@status_window.refresh
状态刷新不用关系不大吧?因为如果同样的脚本用多了的话,貌似很卡
  1.     if $game_party.actors.size - 1 >= 0     
  2.        $game_party.actors[0].add_state(5)   
  3.        @status_window.refresh
  4.     end
  5.     if $game_party.actors.size - 1 >= 1     
  6.        $game_party.actors[1].add_state(6)   
  7.        @status_window.refresh
  8.     end
  9.     if $game_party.actors.size - 1 >= 1     
  10.        $game_party.actors[2].add_state(7)   
  11.        @status_window.refresh
  12.     end
  13.     if $game_party.actors.size - 1 >= 1
  14.        $game_party.actors[3].add_state(8)     
  15.        @status_window.refresh
  16.     end
复制代码
这样直接卡死,去掉刷新就不卡了
回复 支持 反对

使用道具 举报

Lv3.寻梦者

梦石
0
星屑
2744
在线时间
2630 小时
注册时间
2013-1-16
帖子
5657

贵宾

10
发表于 2013-8-17 16:57:56 | 只看该作者
本帖最后由 myownroc 于 2013-8-17 17:00 编辑

刷新放到所有的 if 之后,一次就好了...这个自己想一下就明白了吧...
如果你觉得关系不大也可以去掉

如果要在一定条件下去掉状态,就改变开关,在事件中用脚本 $game_switches[xxx] = true / false  ,那么上面的判断就要多一个开关的判断
开关$game_switches[xxx]  和 事件中的开关是一样的...
(Created by @喵kano)


施工现场:hotege.github.io
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-9-29 18:28

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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