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

Project1

 找回密码
 注册会员
搜索

定义角色新属性遇到的问题

查看数: 1615 | 评论数: 4 | 收藏 0
关灯 | 提示:支持键盘翻页<-左 右->
    组图打开中,请稍候......
发布时间: 2016-7-22 07:20

正文摘要:

本帖最后由 jiushiainilip19 于 2016-7-22 07:40 编辑 这是我自己添加的角色新属性  可是这个只能在战斗中调用 无法在其他界面调用 比如在一些加点的界面用@actor.crt就会报错 这个该用什么样的方法 ...

回复

jiushiainilip19 发表于 2016-7-24 09:19:22
本帖最后由 jiushiainilip19 于 2016-7-24 10:26 编辑

已经解决了!谢谢给与提出的意见!
RyanBern 发表于 2016-7-23 12:41:34
你的属性定义有问题。
RUBY 代码复制
  1. #● 定义暴击率
  2. def crt
  3.   n = str/2000+dex/2000+$game_variables[@actor_id+4850]
  4.   #天赋效果增加暴击率
  5.     case self.id
  6.      when 20 #玄霄
  7.        if self.battle_skill.include?(20) ; n += 15 ;end #[A天赋]冰火之力
  8.      when 13 #赵云
  9.        if self.battle_skill.include?(13) ; n += 10 ;end #[A天赋]勇冠三军
  10.      when 16 #步惊云
  11.        if self.battle_skill.include?(16) ; n += 30 ;end #[A天赋]火麒麟臂
  12.      end
  13.  
  14.     case @weapon_id
  15.      when 1..999
  16.       weapon = $data_weapons[@weapon_id]
  17.       n += weapon != nil ? weapon.str_plus/10 : 0
  18.     end
  19.     #一些装备下的状态增加暴击率
  20.     for i in @states
  21.     case i
  22.     when 124..125 ; n += 20  #万寿套 和 五彩套
  23.     when 133 ; n += 5   #不败套1
  24.     when 134 ; n += 10  #不败套2
  25.     when 135 ; n += 15  #不败套3
  26.     when 136 ; n += 20  #不败套4
  27.     when 137 ; n += 25  #不败套5 161 165
  28.     when 161 ; n += 5   #凌霄套1
  29.     when 162 ; n += 10  #凌霄套2
  30.     when 163 ; n += 15  #凌霄套3
  31.     when 164 ; n += 20  #凌霄套4
  32.     when 165 ; n += 25  #凌霄套5
  33.     when 698 ; n += 15  #幻彩金光石
  34.     when 697 ; n += 10 #碧玉海星石
  35.     when 284 ; n += $game_variables[3674] #内功葵花宝典
  36.     when 269 ; n += $game_variables[3672] #内功招臻无招
  37.     end;end
  38.       return [[n, 1].max, 300].min
  39.     end

你仔细看这一段,你这一段是角色 crt 的定义,请问你的 crt 定义和变量 @crt 有什么关系?变量 @crt 根本就没在 crt 的定义里面出现。
RUBY 代码复制
  1. @actor.crt += 1

这句话的意思是让 @actor 对象的 @crt 变量 +1,但是获取 crt 方法根本就不会参考 @crt。因为你重新定义了Game_Actor#crt方法,因此你不能再认为@actor.crt就是返回 @crt 的值了啊。

不知道你的 @crt 变量是干啥用的。请看完我的解释之后自行修改。

评分

参与人数 1星屑 +20 收起 理由
jiushiainilip19 + 20 认可答案

查看全部评分

陈大帅帅帅哥 发表于 2016-7-23 10:25:38
@jiushiainilip19
把attr_reader :crt                        # 暴击几率[/pre]换成attr_accessor :crt                     ...[/quote]

在什么界面,另外看一看那个界面的代表角色的变量是否为@actor

(ps:这不算连贴吧……)

点评

在努力做修改了!谢谢你的意见!  发表于 2016-7-24 09:19
陈大帅帅帅哥 发表于 2016-7-22 09:45:56
本帖最后由 陈大帅帅帅哥 于 2016-7-22 09:48 编辑

RUBY 代码复制
  1. attr_reader :crt                        # 暴击几率
换成
RUBY 代码复制
  1. attr_accessor :crt                        # 暴击几率

点评

换成之后没报错,但是在界面也无法调用啊@actor.crt+=1没什么反应  发表于 2016-7-23 07:46

评分

参与人数 1星屑 +10 收起 理由
jiushiainilip19 + 10 塞糖

查看全部评分

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

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

GMT+8, 2024-11-23 09:20

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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