利用set_trace_func方法来判断一个方法是否被alias过

2014 年 8 月 26 日

其实就是囧叔跟我说的利用irb的help相同的技巧,在set_trace_func下调用,在合适的binding中取得信息并且直接用throw…catch来跳出(实际并不执行方法体),

详细方法见代码注释:

顺便,在Ruby1.8的Method没有定义source_location的情况下取得方法定义的位置的方法,以及取得参数名的方法。

 

 

晴兰的反向Ruby教程-2 RMVA小程序

2012 年 11 月 22 日

上一节我们学习了Ruby的消息,如何定义消息(方法,我们在这里不需要区分消息与方法,可以认为是一样的),现在当你去看F1手册时,看到的都是模块、类和方法名。下面试试来做更多的事情。
RMVA的手册在写本文时大约没有完整的中文版,但就像XP、VX、VA各版本的手册的”RGSS参考>标准库>预置函数”一节开宗明义都会说到的,像system这种函数,事实上是Kernel模块的一个方法,以消息编程来看,不指定对象,我们发消息的对象是Kernel。也可以指定对象,用”对象.方法”来调用。因此事实上是这个样子的: read more

晴兰的反向Ruby教程-1 为了读F1教程和其他人脚本的入门

这个教程是面向RM初学者的,要理解的东西不会很多,教程中的例子,希望能够手动一步步实现。我们是以RPG Maker VX ACE这个版本的RGSS来讲解的。

如果有不明白的地方,多运行和改改就行了。每个例子都是可以运行的。

本来,要写RGSS脚本,要先理解脚本语言也就是Ruby。反向呢,是区别于正向而言的。 在这里Ruby必须理解你,也就是一个脚本编写者的意图。不仅仅是这样,RPGMaker这个工具也要充分理解你作为一个游戏制作者的意图。不像很多其他语言,如果想以自己想要的方式去写程序,可能会变得很麻烦。但Ruby从一开始发明就不是这样的,更多的是人在编程,而不是程序语言必须限制人的思维。(不过这并不是说Ruby是一个不严谨的语言,人性化与编程原则并不冲突。)

在Windows系统下,双击记事本图标,也就能打开记事本,这是一个程序,也可以说是系统的一个功能。

在Windows命令提示符下,也可以通过直接输入notepad回车来打开记事本。

 

这一节的重点是,怎么定义一个功能(也就是怎么看别人定义了哪些功能),怎么使用定义的功能。
read more