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

Project1

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

[已经解决] 怎么在脚本里分别控制每个角色的自动战斗开关

 关闭 [复制链接]

Lv1.梦旅人

梦石
0
星屑
50
在线时间
13 小时
注册时间
2009-4-8
帖子
114
跳转到指定楼层
1
发表于 2009-10-13 05:47:33 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式

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

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

x
本帖最后由 yaruna 于 2009-10-13 05:51 编辑

好吧..我实验了5个小时...试了N种办法.
我失败了...
果然我只是会修改皮毛的脚本...
每个角色状态栏里的自动战斗文字切换已经弄好了.. 左右切换自动战斗的开关..


但是..我无论如何都改不了那个该死的auto_battle
比如我判断用$game_actors[@actor].auto_battle = true
就是改不了他..
其他的比如改$game_actors[@actor].class_id = XXX
又是一切正常..
改动都可以.

另外一种方法改是改了.但只能改动一个角色手动,其他全是自动战斗...
我已经无力化了..求高手指点一二...
改怎么样判断才能单独把角色的自动战斗给控制开关....

Lv2.观梦者

永遠神剣

梦石
0
星屑
339
在线时间
412 小时
注册时间
2009-8-16
帖子
1797

贵宾

2
发表于 2009-10-14 00:51:25 | 只看该作者
泪流满面...居然没有人啊。.或者说是根本就无法改变那个开关..
新的UI 旧的开始
回复 支持 反对

使用道具 举报

Lv1.梦旅人

彩色的银子

梦石
0
星屑
50
在线时间
190 小时
注册时间
2006-6-13
帖子
1361

贵宾

3
发表于 2009-10-14 01:32:38 | 只看该作者
  1. class Game_Actor
  2.   attr_writer :auto_battle
  3.   alias :old_setup :setup
  4.   #--------------------------------------------------------------------------
  5.   # ● 设置
  6.   #--------------------------------------------------------------------------
  7.   def setup(*avgc)
  8.     old_setup(*avgc)
  9.     @auto_battle = $data_actors[@actor_id].auto_battle
  10.   end
  11.   #--------------------------------------------------------------------------
  12.   # ● 获取选项 "自动战斗"
  13.   #--------------------------------------------------------------------------
  14.   def auto_battle
  15.     return @auto_battle
  16.   end
  17. end
复制代码
放到main 前

然后就可以通过
$game_actors[actor_id].auto_battle = true/false;
来设置是否自动战斗。。。。
-.-
回复 支持 反对

使用道具 举报

Lv2.观梦者

永遠神剣

梦石
0
星屑
339
在线时间
412 小时
注册时间
2009-8-16
帖子
1797

贵宾

4
发表于 2009-10-14 03:09:35 | 只看该作者
谢谢神思前辈帮忙 - -终于弄好了...我还以为这个问题解决不了了..

不知能否告诉我这样改的原应呢..
module RPG的class Actor里面不是attr_accessor :auto_battle的吗
为什么要改成attr_writer :auto_battle ?? attr_writer从未见脚本里使用过..
定义指定属性的写入方法。那个指定属性是指什么东西= =指的是打钩那几个设置吗...

下面的2个方法就勉强懂了..
是不是把原先的直接读取角色数据库设置的方法 改为 获取自动战斗是@auto_battle的真伪..
唯一不明白的是 (*avgc) 是啥意思 汗... 原先的Game_Actor里的方法不是setup(actor_id)的吗...

问题太多了..但是答案已经是对的了...
如果前辈没时间或者回答太烦琐 也没关系.
感谢前辈
新的UI 旧的开始
回复 支持 反对

使用道具 举报

Lv1.梦旅人

彩色的银子

梦石
0
星屑
50
在线时间
190 小时
注册时间
2006-6-13
帖子
1361

贵宾

5
发表于 2009-10-14 09:56:49 | 只看该作者
默认的呢·是直接获取数据库里的那个选项。。。
想要随时更改的话呢就要将Game_Actor 的 auto_battle 给重定义一下··
把指向数据库的东西改成令一个变量。
attr_writer :auto_battle
等同定义了这么一个方法
def auto_battle=(bool)
  @auto_battle = bool
end

*avgc
-____-防止你将setup重定义过,导致参数个数不对的问题。。。。-___-小小的预防一下而已..
-.-
回复 支持 反对

使用道具 举报

Lv2.观梦者

永遠神剣

梦石
0
星屑
339
在线时间
412 小时
注册时间
2009-8-16
帖子
1797

贵宾

6
发表于 2009-10-14 14:46:49 | 只看该作者
本帖最后由 Eienshinken 于 2009-10-15 00:18 编辑

明白了.....
原来是这样...我还不行对面向对象的概念不是太清楚.
这样一说 就明白多了

yaruna是我 请BZ帮忙认可神思前辈.
新的UI 旧的开始
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2025-1-12 04:55

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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