查看: 4753|回复: 11

[已经解决] 我想把获取基本物理防御分为自己人跟敌人

[复制链接]
梦石
0
星屑
130
在线时间
20 小时
注册时间
2017-11-8
回帖
5
发表于 2019-9-1 18:23:14 | 显示全部楼层 |阅读模式

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

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

×
如题 就是计算自己人防御按照原来公式,计算敌人防御的时候改成防御受到速度的影响。。请问怎么弄 本人新手 麻烦脚本带点注释
梦石
0
星屑
130
在线时间
20 小时
注册时间
2017-11-8
回帖
5
 楼主| 发表于 2019-9-1 18:25:28 | 显示全部楼层
顺便问下有没有新建工程脚本文件带注释非常多的。。对着帮助文档还是看不懂
回复

使用道具 举报

梦石
0
星屑
42235
在线时间
6017 小时
注册时间
2006-11-10
回帖
6966
发表于 2019-9-1 19:58:10 | 显示全部楼层
本帖最后由 灯笼菜刀王 于 2019-9-1 23:26 编辑

搜索  def base_pdef 可以在 game actor 和 game enemy 两个地方找到
这个就是基础防御设置

角色的是装备堆一起获得基础防御,  敌人是直接获取数据库设置的防御值,  你想改, 就在它后面 + 10086 就可以让基础防御增加10086点了

汉化版的XP注释应该是非常详细了, 详细到默认的时候110+K, 把注释全删了才50+K的程度, 虽然有些翻译是有点问题(比如柜台翻译成反击...,笑 不过看英文单词也能猜到是啥也没多大影响就是了)

点评

紫苑工作室亲情汉化XD  发表于 2019-9-2 06:24
回复

使用道具 举报

梦石
0
星屑
130
在线时间
20 小时
注册时间
2017-11-8
回帖
5
 楼主| 发表于 2019-9-2 13:24:16 | 显示全部楼层
灯笼菜刀王 发表于 2019-9-1 19:58
搜索  def base_pdef 可以在 game actor 和 game enemy 两个地方找到
这个就是基础防御设置

我在问几个个问题啊我一直分不清
def pdef_str(str_val)
def pdef_str?(str_val)
for i in @states
这个分别是代表什么 def pder_str我能看懂加括号跟?就看不懂了
for i in 1..100能看懂 for i in @states是啥意思
回复

使用道具 举报

梦石
0
星屑
42235
在线时间
6017 小时
注册时间
2006-11-10
回帖
6966
发表于 2019-9-2 14:26:08 | 显示全部楼层
本帖最后由 灯笼菜刀王 于 2019-9-2 14:27 编辑
老司机带我飞啊 发表于 2019-9-2 13:24
我在问几个个问题啊我一直分不清
def pdef_str(str_val)
def pdef_str?(str_val)


加括号是表示带参数的方法, 括号内的就是代表参数的变量, 会在本方法里使用

末尾加问号是标准的函数命名格式, 它和普通函数没什么不同, 不过在XP脚本里, 末尾带问号的函数一般表示判断用

@states 是一个数组, 它是默认脚本里用来保存战斗者本身状态id的一个实变量, 你可以试试, 给1号角色附加不同状态后, 运行这个脚本 p $game_actors[1].states  看看它里面有什么

for i in Array 就是表示, 分别把数组里每一个单元赋值给变量i, 然后用它来运算,  具体解释可以看F1的循环说明
回复

使用道具 举报

梦石
0
星屑
130
在线时间
20 小时
注册时间
2017-11-8
回帖
5
 楼主| 发表于 2019-9-2 16:45:36 | 显示全部楼层
本帖最后由 老司机带我飞啊 于 2019-9-2 16:47 编辑
灯笼菜刀王 发表于 2019-9-2 14:26
加括号是表示带参数的方法, 括号内的就是代表参数的变量, 会在本方法里使用

末尾加问号是标准的函数命名 ...


还是不懂啊,能不能来个例子啊,比如下面这个我就想知道element_id 在这个脚本里面是啥,代表什么,使用的时候又是多少,就是想知道一下过程,
def element_rate(element_id)
    # 获取对应属性有效度的数值
    table = [0,200,150,100,50,0,-100]
    result = table[$data_enemies[@enemy_id].element_ranks[element_id]]
    # 状态能防御本属性的情况下效果减半
    for i in @states
      if $data_states.guard_element_set.include?(element_id)
        result /= 2
      end
    end
    # 过程结束
    return result
  end

还有就是def element_rate(element_id)这种在使用的时候是怎么算的比如 element_rate(element_id) > 4
如果在加一个又是怎么算的比如 def element_rate(element_id,state_id)
表达能力不是很强不知道你们看懂了没。。
回复

使用道具 举报

梦石
0
星屑
39236
在线时间
11155 小时
注册时间
2009-3-15
回帖
4768
发表于 2019-9-2 16:57:07 | 显示全部楼层
本帖最后由 soulsaga 于 2019-9-2 17:09 编辑
老司机带我飞啊 发表于 2019-9-2 16:45
还是不懂啊,能不能来个例子啊,比如下面这个我就想知道element_id 在这个脚本里面是啥,代表什么,使用的 ...


element_id

是什么..你P一下就知道 是属性ID
P一下$data_enemies[@enemy_id].element_ranks[element_id]
P一下计算后的 result 得到的返回值就是计算后的结果
你就算加10个參数都不会有任何变化..因为调用脚本没用到..

结果是一样的..返回值没变就都一样
回复

使用道具 举报

梦石
0
星屑
130
在线时间
20 小时
注册时间
2017-11-8
回帖
5
 楼主| 发表于 2019-9-2 18:38:27 | 显示全部楼层
soulsaga 发表于 2019-9-2 16:57
element_id

是什么..你P一下就知道 是属性ID

在重新表达一下。。
我是想知道就是类似这种def element_rate(element_id)这个括号里面的(element_id)在后面的定义起到什么作用,比如下面这个脚本那些是跟(element_id)有关联  有关联的时候起到什么作用。
就像这样 @states 是一个数组, 它是默认脚本里用来保存战斗者本身状态id的一个实变量, 解释@states 作用
我现在需要理解 在def 什么什么(什么什么) 就是这个()里面内容的意思以及跟后续定义有什么关联或者影响

  def element_rate(element_id)       ---假设 element_id = 10这里的(element_id)就代表10是这个意思吗
    # 获取对应属性有效度的数值
    table = [0,200,150,100,50,0,-100]
    result = table[$data_enemies[@enemy_id].element_ranks[element_id]]   ---这里(element_id)影响[element_id]吗,又是什么呢
    # 状态能防御本属性的情况下效果减半
    for i in @states
      if $data_states.guard_element_set.include?(element_id)  ---这里这里(element_id)影响(element_id)吗,又是什么呢
        result /= 2        
      end
    end
    # 过程结束
    return result
  end

至于计算比如这个element_rate(element_id)意思就是(element_id)这个括号里面的内容直接无视,element_rate是4那么他就是4 ,(element_id)不会影响是不。
回复

使用道具 举报

梦石
1
星屑
24088
在线时间
3339 小时
注册时间
2011-7-8
回帖
3862

开拓者

发表于 2019-9-2 18:41:22 | 显示全部楼层
没办法了,菜鸟教程吧:https://www.runoob.com/ruby/ruby-method.html
熟悉rgss和ruby,xp区版主~
正在填坑:《膜拜组传奇》讲述膜拜组和学霸们的故事。
已上steam:与TXBD合作的Reformers《变革者》
* 战斗调用公共事件 *
* RGSOS 网络脚本 *
回复

使用道具 举报

梦石
0
星屑
39236
在线时间
11155 小时
注册时间
2009-3-15
回帖
4768
发表于 2019-9-2 19:44:43 | 显示全部楼层
本帖最后由 soulsaga 于 2019-9-2 19:57 编辑
老司机带我飞啊 发表于 2019-9-2 18:38
在重新表达一下。。
我是想知道就是类似这种def element_rate(element_id)这个括号里面的(element_id)在 ...


这里element_id是被传的參数..
假设element_id是10
这脚本里面的element_id没被修改过的话统统是10
DEF后面再加參数本身没有影响..但可以在该方法的脚本应用新加的參数 DEF的參数名可以随意定义..传过来的參数只跟位置有关

顺帶一提DEF加了參数调用方法时如果没有同数量的參数会报错..
加新參数时这样写
參数名=你定义的默认值
那么參数就有一个默认值..即使调用方法时后面没有填新參数也不会报错..

评分

参与人数 1星屑 +50 赞 +1 收起 理由
RyanBern + 50 + 1 认可答案

查看全部评分

回复

使用道具 举报

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

本版积分规则

Powered by Discuz! X5.0 © 2001-2026 Discuz! Team.

在本版发帖返回顶部