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

Project1

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

[已经解决] 脚本应该如何正确调用其他类的方法?

[复制链接]

Lv1.梦旅人

梦石
0
星屑
45
在线时间
3 小时
注册时间
2022-8-4
帖子
3
跳转到指定楼层
1
发表于 2022-8-5 19:41:48 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式

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

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

x
我现在初学脚本,想做一个当身上有特定状态的时候会禁止奔跑的脚本,目前已经写出来了,但是不知道为什么无法运行
如图

上面的是程序里在Game_BattlerBase类中用于判断是否有特定状态的原代码,我没有改,第二个是原有代码里一个引用了state?方法的代码。然后我改写了Game_CharacterBase里的real_move_speed方法,引入了状态识别的方法

结果在运行的时候弹出错误说没有在Game_BattlerBase类里找到state?方法
明明之前自己都调用了state?方法用来判断有没有无法战斗状态,现在又说没有这个方法,我想知道我写的程序问题出在哪里,应该怎么改
求大佬指教

Lv5.捕梦者

梦石
0
星屑
26393
在线时间
5370 小时
注册时间
2016-3-8
帖子
1658
2
发表于 2022-8-5 20:15:48 | 只看该作者
  1. class Game_Player < Game_Character
  2.   alias :state_cannot_dash? :dash?
  3.   def dash?
  4.     return false if $game_party.members.any? {|actor| actor.state?(26)}
  5.     return state_cannot_dash?
  6.   end
  7. end
复制代码
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
45
在线时间
3 小时
注册时间
2022-8-4
帖子
3
3
 楼主| 发表于 2022-8-5 20:36:56 | 只看该作者
本帖最后由 鹿羽1091 于 2022-8-5 20:50 编辑


谢谢,确实是我想要的效果
虽然我大概猜出原因了,但我还是想请教一下我的代码为什么会出现这样的结果
回复 支持 反对

使用道具 举报

Lv5.捕梦者

梦石
0
星屑
26393
在线时间
5370 小时
注册时间
2016-3-8
帖子
1658
4
发表于 2022-8-5 20:54:42 | 只看该作者
本帖最后由 alexncf125 于 2022-8-5 21:15 编辑

Game_BattlerBase是一个父类...

return false if $game_party.members.any? {|actor| actor.state?(26)}中,
actor是Game_Actor的实例, 而Game_Actor是Game_BattlerBase的子类(Game_Battler)的子类...
所以 实例actor 可以调用其父类的父类的state?方法

而且很明显, 用Game_BattlerBase.state?没有指明是在判定谁的状态
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
45
在线时间
3 小时
注册时间
2022-8-4
帖子
3
5
 楼主| 发表于 2022-8-5 21:57:35 | 只看该作者
alexncf125 发表于 2022-8-5 20:54
Game_BattlerBase是一个父类...

return false if $game_party.members.any? {|actor| actor.state?(26)}中 ...

基本明白了,谢谢大佬指点
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-12-4 17:32

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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