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

Project1

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

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

[复制链接]

Lv5.捕梦者 (暗夜天使)

只有笨蛋才会看到

梦石
1
星屑
21504
在线时间
9390 小时
注册时间
2012-6-19
帖子
7115

开拓者短篇九导演组冠军

跳转到指定楼层
1
发表于 2013-9-13 13:00:45 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

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

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

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

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

点评

差不多写一个module的脚本, 然后在Data里读取  发表于 2013-9-13 17:11

Lv2.观梦者

梦石
0
星屑
495
在线时间
917 小时
注册时间
2011-5-11
帖子
438
2
发表于 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中国字认识都不到一半,哪的心情学英语呀!
回复 支持 反对

使用道具 举报

Lv1.梦旅人

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

点评

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

使用道具 举报

Lv5.捕梦者 (暗夜天使)

只有笨蛋才会看到

梦石
1
星屑
21504
在线时间
9390 小时
注册时间
2012-6-19
帖子
7115

开拓者短篇九导演组冠军

4
 楼主| 发表于 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
回复 支持 反对

使用道具 举报

Lv3.寻梦者

唯一的信徒

梦石
0
星屑
1665
在线时间
1357 小时
注册时间
2013-1-29
帖子
1637
5
发表于 2013-9-14 00:47:32 | 只看该作者
尼玛为毛这么麻烦直接 load xxx.rb
『我只是一个正在潜心修炼的渣乐师罢了』
Dear Time\(^o^)/~


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

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
141 小时
注册时间
2013-8-6
帖子
114
6
发表于 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
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-10-9 07:27

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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