查看: 1949|回复: 1

[已经解决] 求教,这个变量该怎么使用才对

[复制链接]
梦石
0
星屑
12161
在线时间
4435 小时
注册时间
2014-4-11
回帖
5616

开拓者

发表于 2016-2-21 22:42:55 | 显示全部楼层 |阅读模式

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

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

×
我想在这个DEF里面加个变量控制冷却。
@wait_count = 虽然可以用,不过这个是把事件暂停了,而不是冷却。
可是直接在里面加变量又会因为是DEF而加不起来,每次读取的时候都会重新开始。
于是我就想到在里面加个循环。
可是用了循环后整个画面就停住了
[pre lang="ruby"]     #蘑菇怪攻击模式
    def mogu_enemy_move
      a=0
      loop do
      a -= 1
                  #当队伍存活只有一人
                if $game_party.actors.select{|actor| !actor.dead?}.size == 1
      #接近后放毒
    if  a == 0
      shoot_chance(59,100)
      a = 50
      end
   #   jiejin_du(8,8)
      else
#C在队友事件里
        for c in $game_duiyoum
      move_toward_event(c.id)
       end
     end
     end
        end
[/pre]

评分

参与人数 1星屑 +35 收起 理由
RyanBern + 35 手动认可奖励

查看全部评分

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

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

发表于 2016-2-21 23:15:36 | 显示全部楼层
这代码的缩进………………逼死强迫症…………
改成这样试试看:
  1. # 蘑菇怪攻击模式
  2.     def mogu_enemy_move(cold_count = 50) # 括弧里的50是初始值,避免出错用,可以改成0
  3.       # 初始的值
  4.       @cold_count = cold_count if @cold_count.nil?
  5.       # 当队伍存活只有一人
  6.       if $game_party.actors.select{|actor| !actor.dead?}.size == 1
  7.         #接近后放毒
  8.         if @cold_count <= 0
  9.           shoot_chance(59, 100)
  10.           @cold_count = 50
  11.         else
  12.           @cold_count -= 1
  13.         end
  14. #        jiejin_du(8,8)
  15.       # C在队友事件里
  16.       else
  17.         for c in $game_duiyoum
  18.           move_toward_event(c.id)
  19.         end
  20.       end
  21.     end
复制代码

点评

很好用,试了下加上@cold_count1,@cold_count2这样就有新的冷却变量,太感谢了怪物不再单调了  发表于 2016-2-21 23:45
可以了,是50太少了,改成500就看出来了  发表于 2016-2-21 23:41
不可能啊。。。执行一次shoot_chance之后马上就变成50了呀……  发表于 2016-2-21 23:39
没用,(cold_count = 50)一开始确实等了50,但是在执行一次shoot_chance(59, 100)之后就永远cold_count =0  发表于 2016-2-21 23:33

评分

参与人数 1梦石 +1 收起 理由
RyanBern + 1 认可答案

查看全部评分

回复

使用道具 举报

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

本版积分规则

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

在本版发帖返回顶部