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

Project1

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

[已经过期] 求一句判断攻击者是否为玩家控制的角色的脚本

[复制链接]

Lv1.梦旅人

梦石
0
星屑
245
在线时间
2 小时
注册时间
2014-5-16
帖子
2
跳转到指定楼层
1
发表于 2014-5-16 18:45:26 | 只看该作者 回帖奖励 |正序浏览 |阅读模式

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

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

x
本人今天新学脚本的渣渣,修改普通攻击效果的时候,改了个根据当前体力减免伤害的脚本。然后发现敌人太强打不过……
由于初次接触语言,可以说一窍不通,完全不知道怎么写,特在此求一句脚本。
  1.         # 防御修正
  2.         if self.guarding?  
  3.           self.damage*=1-self.sp*0.9/self.maxsp
  4.           self.sp-=self.sp*3/10
  5.           self.damage=Integer(self.damage)
  6.           #self.damage/=2
  7.           else
  8.   #--------------------------------------------------------------------------
  9.   # ● 加在这里好了……
  10.   #--------------------------------------------------------------------------
  11.           self.damage*=1-self.sp*0.45/self.maxsp
  12.           self.sp-=self.sp*3/40
  13.           self.damage=Integer(self.damage)
  14.           end
复制代码

Lv5.捕梦者 (管理员)

老黄鸡

梦石
0
星屑
41086
在线时间
7567 小时
注册时间
2009-7-6
帖子
13498

开拓者贵宾

6
发表于 2014-5-17 15:01:29 | 只看该作者
tlzwode 发表于 2014-5-17 09:47
竟然引来了版主……
好吧,多谢版主。顺便问几个问题。我对类的理解非常的混乱。
*.is_a?()

.class是获取实例的类,比较起来相对精确
而is_a?(Class)则是判断是否具有Class的属性,所以如果调用is_a?的对象属于Class的子类,返回也是为真。
给两条比较简单的示范。
  1. self.class == Game_Battler
  2. self.is_a?(Game_Battler)
复制代码
这两句放在Game_Actor里面返回值是不同的。

评分

参与人数 1星屑 +90 收起 理由
myownroc + 90 我很赞同

查看全部评分

RGDirect - DirectX驱动的RGSS,点我了解.
RM全系列成套系统定制请联系QQ1213237796
不接受对其他插件维护的委托
回复 支持 反对

使用道具 举报

Lv3.寻梦者

○赛

梦石
0
星屑
1249
在线时间
1276 小时
注册时间
2013-1-22
帖子
2246

贵宾

5
发表于 2014-5-17 11:54:13 | 只看该作者
tlzwode 发表于 2014-5-17 09:47
竟然引来了版主……
好吧,多谢版主。顺便问几个问题。我对类的理解非常的混乱。
*.is_a?()

类这个概念对于初学者来说确实不太好懂。。

ruby是面向对象编程语言,一切皆为对象。。。

比如$game_map是Game_Map类的对象。
而is_a?的作用就是判断是不是某个类的对象,
if self.is_a?(Game_Actor)就是判断self是不是Game_Actor的对象,也就是判定self是不是角色。

3楼把用法说的比较详细了
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
245
在线时间
2 小时
注册时间
2014-5-16
帖子
2
4
 楼主| 发表于 2014-5-17 09:47:41 | 只看该作者
天地有正气 发表于 2014-5-16 20:30
攻击者是否是角色?
if self.is_a?(Game_Actor)
....

竟然引来了版主……
好吧,多谢版主。顺便问几个问题。我对类的理解非常的混乱。
*.is_a?()
这种结构就是对类的判断吗?
在一个“.”左右的两个东西是不分级别的还是左边的等级大于右边?
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
865 小时
注册时间
2010-6-27
帖子
131
3
发表于 2014-5-17 08:39:25 | 只看该作者
普通攻击是角色
if attacker.is_a?(Game_Actor)
....
end
技能攻击是角色
if user.is_a?(Game_Actor)
....
end
被攻击者是角色
if self.is_a?(Game_Actor)
....
end
回复 支持 反对

使用道具 举报

Lv3.寻梦者

○赛

梦石
0
星屑
1249
在线时间
1276 小时
注册时间
2013-1-22
帖子
2246

贵宾

2
发表于 2014-5-16 20:30:04 | 只看该作者

感谢:myownroc 纠正错误

本帖最后由 天地有正气 于 2014-5-17 14:58 编辑

攻击者是否是角色?
if self.is_a?(Game_Actor)
....
end
或者。。。
if self.class == Game_Actor

点评

...忘了 - -老是打错 - -  发表于 2014-5-17 14:58
if self.class == Game_Actor  发表于 2014-5-17 14:57

评分

参与人数 1星屑 +90 收起 理由
myownroc + 90 我很赞同

查看全部评分

回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-9-22 05:34

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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