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

Project1

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

[已经解决] 怎样防止无限控制?

[复制链接]

Lv5.捕梦者 (版主)

鼬痴汉

梦石
29
星屑
3401
在线时间
1300 小时
注册时间
2010-4-24
帖子
971

短篇十吟唱者组别亚军开拓者

跳转到指定楼层
1
发表于 2012-2-12 12:38:42 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
我的游戏是3V3,有战术成分。如果一队三个角色都会控制技能,然后轮流控制对方治疗岂不是太赖皮了?
我的想法是,当控制技能的效果(无法行动、普通攻击同伴、普通攻击敌人)自然解除时,下一个回合对所有控制技能免疫。
要怎么实现?

Lv1.梦旅人

梦石
0
星屑
135
在线时间
350 小时
注册时间
2011-3-4
帖子
239
2
发表于 2012-2-12 15:34:46 | 只看该作者
用公共事件吧。
回复

使用道具 举报

Lv1.梦旅人

虱子

梦石
0
星屑
121
在线时间
1782 小时
注册时间
2010-6-19
帖子
3597
3
发表于 2012-2-12 16:27:56 | 只看该作者
在「状态自然解除」的脚本最后,给那个角色加上一个一回合解除的状态,然后在限制的判断中,插入强制判断,如果有那个状态,即无限制

http://rpg.blue/thread-175056-1-2.html
PVZ型塔防物一个
http://rpg.blue/thread-155199-1-2.html
RMXP技术讨论区手动认可帖,得到答案请认可
回复

使用道具 举报

Lv5.捕梦者 (版主)

鼬痴汉

梦石
29
星屑
3401
在线时间
1300 小时
注册时间
2010-4-24
帖子
971

短篇十吟唱者组别亚军开拓者

4
 楼主| 发表于 2012-2-12 22:25:44 | 只看该作者
Wind2010 发表于 2012-2-12 16:27
在「状态自然解除」的脚本最后,给那个角色加上一个一回合解除的状态,然后在限制的判断中,插入强制判断, ...

这个……我脚本废,免疫控制的状态倒是会弄,但是你说的那个要怎么弄呢?
回复

使用道具 举报

Lv1.梦旅人

虱子

梦石
0
星屑
121
在线时间
1782 小时
注册时间
2010-6-19
帖子
3597
5
发表于 2012-2-13 16:38:09 | 只看该作者
FHNBHJ 发表于 2012-2-12 22:25
这个……我脚本废,免疫控制的状态倒是会弄,但是你说的那个要怎么弄呢? ...

在Game_Battler中搜索remove_stats,有自然解除状态的判定的
在那个判定的最后,给self用add_stats加上一个状态就可以了

http://rpg.blue/thread-175056-1-2.html
PVZ型塔防物一个
http://rpg.blue/thread-155199-1-2.html
RMXP技术讨论区手动认可帖,得到答案请认可
回复

使用道具 举报

Lv5.捕梦者 (版主)

鼬痴汉

梦石
29
星屑
3401
在线时间
1300 小时
注册时间
2010-4-24
帖子
971

短篇十吟唱者组别亚军开拓者

6
 楼主| 发表于 2012-2-13 20:20:39 | 只看该作者
Wind2010 发表于 2012-2-13 16:38
在Game_Battler中搜索remove_stats,有自然解除状态的判定的
在那个判定的最后,给self用add_stats加上一 ...

我在Game_Battler 2的状态自然解除这里写了这些:
  1. #--------------------------------------------------------------------------
  2.   # ● 状态自然解除 (回合改变时调用)
  3.   #--------------------------------------------------------------------------
  4.   def remove_states_auto
  5.     for i in @states_turn.keys.clone
  6.       if @states_turn[i] > 0
  7.         @states_turn[i] -= 1
  8.       elsif rand(100) < $data_states[i].auto_release_prob
  9.         remove_state(i)
  10.         if $data_states[i].id = 27
  11.           add_state(81)
  12.         end
  13.         if $data_states[i].id = 28
  14.           add_state(80)
  15.         end
  16.         if $data_states[i].id = 29
  17.           add_state(80)
  18.         end
  19.         if $data_states[i].id = 40
  20.           add_state(81)
  21.         end
  22.       end
  23.     end
  24.   end
复制代码
然后战斗测试,我给敌人加上了控制状态,等状态自然解除后,敌人的确被加上了控制免疫的状态。
但是不知道为啥控制免疫的状态一直不解除?

(测试时使用的是混乱状态,27号,普通攻击同伴,2回合后100%解除,
与之对应的是81号状态,控制免疫,状态变化一栏里是 -混乱  -狂乱  -睡眠  -麻痹,2回合后100%解除,且不能抵抗。)
回复

使用道具 举报

Lv1.梦旅人

虱子

梦石
0
星屑
121
在线时间
1782 小时
注册时间
2010-6-19
帖子
3597
7
发表于 2012-2-17 16:45:29 | 只看该作者
本帖最后由 Wind2010 于 2012-2-17 16:47 编辑
FHNBHJ 发表于 2012-2-13 20:20
我在Game_Battler 2的状态自然解除这里写了这些:然后战斗测试,我给敌人加上了控制状态,等状态自然解除 ...


多测试几回合,而且在状态变化那里弄的话只是在附加的一瞬间将那些状态全部去除而已


在Game_Battler里有以下定义:
  1.   #--------------------------------------------------------------------------
  2.   # ● 获取限制
  3.   #--------------------------------------------------------------------------
  4.   def restriction
  5.     restriction_max = 0
  6.     # 从当前附加的状态中获取最大的 restriction
  7.     for i in @states
  8.       if $data_states[i].restriction >= restriction_max
  9.         restriction_max = $data_states[i].restriction
  10.       end
  11.     end
  12.     return restriction_max
  13.   end
复制代码
在这里的restriction_max = 0后判断是否有某状态,有则强制返回0(0为无限制)
提示:
  1.   #--------------------------------------------------------------------------
  2.   # ● 检查状态
  3.   #     state_id : 状态 ID
  4.   #--------------------------------------------------------------------------
  5.   def state?(state_id)
  6.     # 如果符合被附加的状态的条件就返回 ture
  7.     return @states.include?(state_id)
  8.   end
复制代码

http://rpg.blue/thread-175056-1-2.html
PVZ型塔防物一个
http://rpg.blue/thread-155199-1-2.html
RMXP技术讨论区手动认可帖,得到答案请认可
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-12-1 10:58

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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