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

Project1

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

[已经解决] 状态剩余回合数值如何调用?

[复制链接]

Lv1.梦旅人

梦石
0
星屑
216
在线时间
77 小时
注册时间
2008-4-24
帖子
164
跳转到指定楼层
1
发表于 2013-8-10 19:36:48 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

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

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

x
本帖最后由 小空弟 于 2013-8-10 19:41 编辑

无论XP、VX、VA,状态剩余回合数都是困扰我很久的问题

看在Game_Battler里面可以调用出一个状态剩余回合数值,貌似是@state_turns[state_id],不知对不对。
但是我想在class State里面调用这个值,就不知道怎么调出来,每次都报错。
即便使用了class State < Game_Battler 也不对。本人脚本还是凌乱。
请教应该怎么在另外一个类里面调用另外一个类的变量啊?不要用$了,那个乱得更厉害。

此外,在Sideview里面看到这么一段
RUBY 代码复制
  1. class Game_Battler
  2.   #--------------------------------------------------------------------------
  3.   # ● 判断状态还要持续几回合
  4.   #     state_id : 状态ID
  5.   #--------------------------------------------------------------------------
  6.   def state_hold(state_id)
  7.     if $data_states[state_id].hold_turn <= 0
  8.       return nil
  9.     end
  10.     nnn = @state_turns[state_id]
  11.     return nnn >= 0 ? nnn : 0
  12.   end
  13. end


但state_hold这样用:damage = enemy.state_hold(22) * 100 或 damage = member.state_hold(22) * 100 也报错。到底这个Game_battler里面的state_hold(state_id)应该怎么用?
玩游戏总是不如做游戏的感觉好。所以喜欢做RPG
缅怀邓爷爷。

Lv1.梦旅人

梦石
0
星屑
47
在线时间
976 小时
注册时间
2011-4-30
帖子
860
来自 8楼
发表于 2013-8-10 21:44:56 | 只看该作者
小空弟 发表于 2013-8-10 21:07
多谢,但是依然出问题。
不是想知道意义吗?
直接上范例吧。修改处在脚本“系统设定”之1273行

Project3.zip (587.77 KB, 下载次数: 59)

搜索“sta17”

点评

没想到用了另一种思路。多谢!认可了。  发表于 2013-8-10 21:51

评分

参与人数 1星屑 +100 梦石 +1 收起 理由
Luciffer + 100 + 1 认可答案

查看全部评分

湿滑落式骑!
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
47
在线时间
976 小时
注册时间
2011-4-30
帖子
860
2
发表于 2013-8-10 19:40:29 | 只看该作者
本帖最后由 羞射了 于 2013-8-10 19:43 编辑

导入战斗者battler
battler.states_turn[$data_states[状态编号].id]

PS:这个是Xp的,VX估计差不多吧,查了下VX是state_turns
湿滑落式骑!
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
216
在线时间
77 小时
注册时间
2008-4-24
帖子
164
3
 楼主| 发表于 2013-8-10 19:46:12 | 只看该作者
本帖最后由 小空弟 于 2013-8-10 19:49 编辑
羞射了 发表于 2013-8-10 19:40
导入战斗者battler
battler.states_turn[$data_states[状态编号].id]


damage = battler.state_turns[$data_states[162]] *100
报错
undefied local variables or method  "battler" for#
玩游戏总是不如做游戏的感觉好。所以喜欢做RPG
缅怀邓爷爷。
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
47
在线时间
976 小时
注册时间
2011-4-30
帖子
860
4
发表于 2013-8-10 20:16:19 | 只看该作者
本帖最后由 羞射了 于 2013-8-10 20:17 编辑
小空弟 发表于 2013-8-10 19:46
damage = battler.state_turns[$data_states[162]] *100
报错
undefied local variables or method  "ba ...


battler是指$game_party.actors[序号] 或 $game_troop.enemies[序号]

对class Battler 来说就是self
湿滑落式骑!
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
216
在线时间
77 小时
注册时间
2008-4-24
帖子
164
5
 楼主| 发表于 2013-8-10 20:45:28 | 只看该作者
羞射了 发表于 2013-8-10 20:16
battler是指$game_party.actors[序号] 或 $game_troop.enemies[序号]

对class Battler 来说就是self ...


不在class Game_Battler里使用
在另外一个类里面,貌似没法调用。例如
RUBY 代码复制
  1. class State
  2.   def slip_damage
  3.     damage = self.state_turns[$data_states[162]]*100
  4. end
  5. end
  6. class Game_Battler
  7.    #.......
  8. end

仍然报错。那么不同的两个类,我该怎么调用呢?
玩游戏总是不如做游戏的感觉好。所以喜欢做RPG
缅怀邓爷爷。
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
47
在线时间
976 小时
注册时间
2011-4-30
帖子
860
6
发表于 2013-8-10 20:53:46 | 只看该作者
本帖最后由 羞射了 于 2013-8-10 21:01 编辑

class State
  def initialize(battler)
    @battler = battler
  end
  def slip_damage
    damage = @battler.state_turns[$data_states[162]]*100
   return damage
end
end

这样在@statez = State.new(导入battler) 之后,可以用 x = @statez. slip_damage 读取你想要的那个数值,虽然我不知道这有什么意义……

个人觉得并不需要新建一个类。
湿滑落式骑!
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
216
在线时间
77 小时
注册时间
2008-4-24
帖子
164
7
 楼主| 发表于 2013-8-10 21:07:48 | 只看该作者
本帖最后由 小空弟 于 2013-8-10 21:15 编辑
羞射了 发表于 2013-8-10 20:53
class State
  def initialize(battler)
    @battler = battler


多谢,但是依然出问题。
不是想知道意义吗?
直接上范例吧。修改处在脚本“系统设定”之1273行

其实还有一点是
Game_Battler里面已经有了
def initialize
@state_turns = {}   
end
我只想直接调用Game_Battler里面的东西,但是在别的类里面想用还真是不会。

Project3.rar

571.1 KB, 下载次数: 28

玩游戏总是不如做游戏的感觉好。所以喜欢做RPG
缅怀邓爷爷。
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-12-23 01:07

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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