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

Project1

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

[随意闲聊] 突然发现,RGSS3默认脚本也会卖萌?

[复制链接]

Lv3.寻梦者 (版主)

…あたしは天使なんかじゃないわ

梦石
0
星屑
2208
在线时间
4033 小时
注册时间
2010-10-4
帖子
10779

开拓者贵宾

跳转到指定楼层
1
发表于 2014-5-23 19:55:54 | 只看该作者 |只看大图 回帖奖励 |正序浏览 |阅读模式

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

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

x
本帖最后由 taroxd 于 2014-5-23 20:54 编辑




两段脚本均位于 Game_Actor 内……
经检验,英文版也是一样……看来不是汉化卖萌
希望没有火星

题外话,把exp这么设定成这么一个hash,除了转职之外似乎也没什么好处的说……

Lv2.观梦者

无节操

梦石
0
星屑
607
在线时间
795 小时
注册时间
2009-2-6
帖子
3939

开拓者贵宾

26
发表于 2014-5-26 14:28:37 | 只看该作者
taroxd 发表于 2014-5-26 07:42
比如说 apply_critical 这个方法,只有一次被调用,然后我记得调用它的方法也只有一次被调用。(我现在没 ...

=-=是啊,估计也是考虑到肯定有喜欢改暴击方式的人,所以把暴击的实现单独拉出来了。
我就看到人问暴击怎么改,想要根据技能加倍数或者其他方式。
我自己的是根据幸运敏捷有加成。便利呢~
Brandnew day, Brandnew Life
                              实在  中
暂为素材区版主,版其  琢磨
应援一下~
RPG制作大师授权素材推广计划
回复 支持 反对

使用道具 举报

Lv3.寻梦者 (版主)

…あたしは天使なんかじゃないわ

梦石
0
星屑
2208
在线时间
4033 小时
注册时间
2010-10-4
帖子
10779

开拓者贵宾

25
 楼主| 发表于 2014-5-26 07:42:02 | 只看该作者
本帖最后由 taroxd 于 2014-5-26 07:43 编辑
DeathKing 发表于 2014-5-26 06:17
大概是哪个地方?

如果不是递归调用,方法调用的深度大概再3~5层应该就够了。这种情况下,逻辑已经被分 ...


比如说 apply_critical 这个方法,只有一次被调用,然后我记得调用它的方法也只有一次被调用。(我现在没有环境,有可能会记错~)
就是方法拆的很散吧。

我觉得这个风格很适合我们自定义脚本呢~ 也很适合子类覆盖。说实话我挺喜欢这个风格的
回复 支持 反对

使用道具 举报

Lv3.寻梦者

梦石
0
星屑
1175
在线时间
1564 小时
注册时间
2008-7-30
帖子
4418

贵宾

24
发表于 2014-5-26 06:17:00 | 只看该作者
moy 发表于 2014-5-26 00:31
果断好评了
DK君怎么看待默认脚本里调用的一层套一层的方法?如果是你的话,你会希望这种分割的 ...

大概是哪个地方?

如果不是递归调用,方法调用的深度大概再3~5层应该就够了。这种情况下,逻辑已经被分得足够细了,没必要再细化。

See FScript Here:https://github.com/DeathKing/fscript
潜心编写URG3中。
所有对URG3的疑问和勘误或者建议,请移步至发布页面。
欢迎萌妹纸催更
回复 支持 反对

使用道具 举报

Lv2.观梦者

无节操

梦石
0
星屑
607
在线时间
795 小时
注册时间
2009-2-6
帖子
3939

开拓者贵宾

23
发表于 2014-5-26 00:31:27 | 只看该作者
DeathKing 发表于 2014-5-26 00:10
  是的,为什么不使用while来处理,直至处理完毕呢?于是,不要怕,大刀阔斧地改吧!于是我们立马注释掉 ...

果断好评了
DK君怎么看待默认脚本里调用的一层套一层的方法?如果是你的话,你会希望这种分割的工作细分到多少层或是多细截止?
Brandnew day, Brandnew Life
                              实在  中
暂为素材区版主,版其  琢磨
应援一下~
RPG制作大师授权素材推广计划
回复 支持 反对

使用道具 举报

Lv3.寻梦者

梦石
0
星屑
1175
在线时间
1564 小时
注册时间
2008-7-30
帖子
4418

贵宾

22
发表于 2014-5-26 00:10:19 | 只看该作者
本帖最后由 DeathKing 于 2014-5-26 07:28 编辑
taroxd 发表于 2014-5-25 15:58
应该是和exp一样,因为很重要所以要写两遍……

  是的,为什么不使用while来处理,直至处理完毕呢?于是,不要怕,大刀阔斧地改吧!于是我们立马注释掉了#232和#233,添加上我们的代码:



  正当我们心满意足地欣赏我们的杰作时,你突然想到下面的自指会让我们陷入无穷尽的循环中。



  你轻蔑地说:“啧!哪里有这么蛋疼的人,写得出这么蛋疼的指令?”而当你冷静下来,你会觉得,即时是嵌套两层,也是非常少见了,嵌套多层更是比“使用奇怪的自指”罕有。

  一方面,我们希望让系统的复杂度保持足够的低,换句话说,我们不太希望”变量存放的地址是另一个变量的地址,而另一个变量里面存放的是另一个变量的地址“这种type ***之类的数据存在。这类功能有更简洁、明了的表达方式,不用让我们的思维兜圈子。这样来说,默认脚本提供了一次嵌套,已经能囊括99%的情况了。

  至于Hash和Array的效率问题。Array的IO操作都能在O(1)时间内完成,这是由于Array可以通过索引快速计算出元素的地址。而Hash依赖于哈希函数hash()(或者称为key())的定义,如果有碰撞,hash还得处理碰撞,如拉链法就得额外增加一个链表遍历的开销,开放寻执法得额外增加一个开放寻址的开销。

  Hash与Array的相比,优势是很明显的:Array只能以整数(索引)为Key,而Hash可以以任何对象为Key(原理上是将对象映射为整数)。另外,假设为了寻找字符串“target",使用数组无序存储,则需要花O(n)的时间去遍历Array,而是用Hash,可以将时间复杂度降至O(1)。

  RM最大的开销来自于图像的描绘,在Ruby层面上的计算开销是很少的。就RM数据的规模来说,Hash和Array对效率的影响并没有那么严重。根据实际情况和方便程度决定使用Hash还是Array即可。

点评

顺便催那个啥坑你懂得  发表于 2014-5-26 07:40

评分

参与人数 1星屑 +30 收起 理由
taroxd + 30 新区存活+我很赞同!

查看全部评分


See FScript Here:https://github.com/DeathKing/fscript
潜心编写URG3中。
所有对URG3的疑问和勘误或者建议,请移步至发布页面。
欢迎萌妹纸催更
回复 支持 反对

使用道具 举报

Lv3.寻梦者 (版主)

…あたしは天使なんかじゃないわ

梦石
0
星屑
2208
在线时间
4033 小时
注册时间
2010-10-4
帖子
10779

开拓者贵宾

21
 楼主| 发表于 2014-5-25 19:09:08 | 只看该作者
本帖最后由 taroxd 于 2014-5-25 19:11 编辑
moy 发表于 2014-5-25 19:02
japanese?只是提供个方法?然后告诉你“哼,你们这些破解汉化的,看到没,这是日本软件!”
不嵌套到底是 ...


真·有病
  1. \V[\V[1]\V[2]]
复制代码
然后咱破解汉化的应该这么玩
RUBY 代码复制
  1. def chinese?
  2.   return true
  3. end
  4. alias japanese? chinese?
回复 支持 反对

使用道具 举报

Lv2.观梦者

无节操

梦石
0
星屑
607
在线时间
795 小时
注册时间
2009-2-6
帖子
3939

开拓者贵宾

20
发表于 2014-5-25 19:02:53 | 只看该作者
taroxd 发表于 2014-5-25 18:52
3. 为什么不直接递归到底? nil while result.gsub!(/\eV\[(\d+)\]/i) { $game_variables[$1.to_i] } [/p ...

japanese?只是提供个方法?然后告诉你“哼,你们这些破解汉化的,看到没,这是日本软件!”
不嵌套到底是因为……
  1. \V[\V[\V[\V[\V[1]]]]]
复制代码
谁TM这么用谁就是有病。滚去用脚本← ←
Brandnew day, Brandnew Life
                              实在  中
暂为素材区版主,版其  琢磨
应援一下~
RPG制作大师授权素材推广计划
回复 支持 反对

使用道具 举报

Lv5.捕梦者 (管理员)

老黄鸡

梦石
0
星屑
42339
在线时间
7598 小时
注册时间
2009-7-6
帖子
13506

开拓者贵宾

19
发表于 2014-5-25 18:54:17 | 只看该作者
喵呜喵5 发表于 2014-5-25 15:56
借楼问一下,result.gsub!(/\eV\[(\d+)\]/i) { $game_variables[$1.to_i] }写两遍是做什么用的,我一直没有 ...

变量引用变量2333

点评

见18L,为什么不递归到底?  发表于 2014-5-25 18:55
RGDirect - DirectX驱动的RGSS,点我了解.
RM全系列成套系统定制请联系QQ1213237796
不接受对其他插件维护的委托
回复 支持 反对

使用道具 举报

Lv3.寻梦者 (版主)

…あたしは天使なんかじゃないわ

梦石
0
星屑
2208
在线时间
4033 小时
注册时间
2010-10-4
帖子
10779

开拓者贵宾

18
 楼主| 发表于 2014-5-25 18:52:38 | 只看该作者
IamI 发表于 2014-5-25 18:48
exp是为了可读性吧,毕竟Actor太长。
当然更有可能是两个人写的拼在一起以后合成了。
变量写两遍是为了处理 ...


3. 为什么不直接递归到底?
RUBY 代码复制
  1. nil while result.gsub!(/\eV\[(\d+)\]/i) { $game_variables[$1.to_i] }


4. 首先,模块可以定义initialize,然后,我指的不是这个
举例:
RUBY 代码复制
  1. module Cache
  2.   [url=home.php?mod=space&uid=341345]@Cache[/url] = {}
  3.   module_function
  4.   # def...
  5. end


还有我说的是 Game_System#japanese?  这个方法没有什么实际作用  
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-11-14 23:29

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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