查看: 3168|回复: 5

[已经解决] 如何读取外置脚本?

[复制链接]

梦石
1
星屑
23241
在线时间
9564 小时
注册时间
2012-6-19
回帖
7018

开拓者短篇九导演组冠军

发表于 2013-9-13 13:00:45 | 显示全部楼层 |阅读模式

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

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

×
本帖最后由 喵呜喵5 于 2013-9-13 20:18 编辑

rt,如何把一个脚本存为一个单独的文件然后运行游戏时读取这个文件?

点评

差不多写一个module的脚本, 然后在Data里读取  发表于 2013-9-13 17:11
梦石
0
星屑
1394
在线时间
989 小时
注册时间
2011-5-11
回帖
418
发表于 2013-9-13 18:04:34 | 显示全部楼层
在别人的工程中看到了这个

  1. $import_ctxt = binding
  2. def import(file)
  3.   Kernel::open(file, "r"){|f|
  4.     eval(f.read, $import_ctxt, file, 1)
  5.   }
  6. end

  7. import "scripts/scriptmanager.rb"
复制代码
不过不太明白什么意思,但可读取脚本

点评

不用了,脚本已经写出来了,eval是Ruby自己的方法,不是RGSS3的  发表于 2013-9-13 20:30

评分

参与人数 1星屑 +45 收起 理由
喵呜喵5 + 45 我很赞同

查看全部评分

http://rpg.blue/static/image/smiley/yct/A059.gif中国字认识都不到一半,哪的心情学英语呀!
回复

使用道具 举报

梦石
0
星屑
50
在线时间
54 小时
注册时间
2013-1-3
回帖
111
发表于 2013-9-13 19:07:06 | 显示全部楼层
把脚本做成文件后,不需复制进编辑器,想用就复制文件到Data包里面,使用输入读取
这个和你直接复制进编辑器有差别吗?为什么喵呜要这么做?

点评

传统的密室逃脱  发表于 2013-9-13 21:52
只是想着九千行一万行之类的脚本看着太长,以及有很多脚本不需要再修改了,怕误删除或者误操作,脚本编辑器中不方便管理  发表于 2013-9-13 19:18
1
回复

使用道具 举报

梦石
1
星屑
23241
在线时间
9564 小时
注册时间
2012-6-19
回帖
7018

开拓者短篇九导演组冠军

 楼主| 发表于 2013-9-13 20:12:30 | 显示全部楼层
345912390 发表于 2013-9-13 18:04
在别人的工程中看到了这个不过不太明白什么意思,但可读取脚本 ...

谢谢,看到你的回复感觉有思路了
顺便解释一下你给的脚本:
Kernel读取.rb文件,然后用eval执行,不过eval里面跟着那么多参数是怎么回事……

点评

只求没有死路,任何情况下都有一丝希望  发表于 2013-9-13 22:01
话说新作品是什么方向的?  发表于 2013-9-13 21:04
以上脚本来自于<ScriptManager_Alpha_rev3>工程,我也就是不明白eval的那行.工程以前论坛上有.要的话我传给你一个  发表于 2013-9-13 20:19
回复

使用道具 举报

唯一的信徒

梦石
0
星屑
1697
在线时间
1359 小时
注册时间
2013-1-29
回帖
1537
发表于 2013-9-14 00:47:32 | 显示全部楼层
尼玛为毛这么麻烦直接 load xxx.rb
『我只是一个正在潜心修炼的渣乐师罢了』
Dear Time\(^o^)/~


假如上面的图片挂了的话麻烦各位去发个帖 @ 一下 orzFly 让他修复 deartime
回复

使用道具 举报

梦石
0
星屑
50
在线时间
141 小时
注册时间
2013-8-6
回帖
114
发表于 2013-9-14 01:35:37 | 显示全部楼层
eval(string, binding, filename, linenumber)

这里evaluate的string为f.read,即"scripts/scriptmanager.rb"的内容,binding用于确定evaluate的特定环境,不过在这里好像没有实际作用

点评

原来是这样。。没考虑到blocker这块。。受教了  发表于 2013-9-15 01:42
实际上那个$import_ctxt可以不用另外定义,直接写成TOPLEVEL_BINDING这个常量就行  发表于 2013-9-14 14:42
有的。。和那段引用脚本原作者讨论过,如果要eval的脚本最外面有f这个变量,而又没用binding区分的话,那么f会变成那个地方的块参数f  发表于 2013-9-14 14:42
回复

使用道具 举报

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

本版积分规则

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

在本版发帖返回顶部