Project1
标题:
能够在游戏进程中可以导入脚本吗?
[打印本页]
作者:
文雅夕露
时间:
2018-3-13 23:58
标题:
能够在游戏进程中可以导入脚本吗?
事由源自:
https://rpg.blue/thread-406053-1-1.html
既然能在游戏进程中将脚本导出,那相对而言,导入应该可以做到吗?
就是在游戏进程中的某个阶段导入位于工程目录中的txt脚本文档到main脚本之上。
从而实现开启某些复杂的改动。
就比如:默认战斗的效果跳转到全动画的战斗效果。
用开关的判断实在很繁琐,所以想用外部的这种手段,不知道可否实现?
作者:
芯☆淡茹水
时间:
2018-3-14 07:21
def test
p 1
end
script = "def test; p 2 ; end"
test #=> 1
复制代码
def test
p 1
end
script = "def test; p 2 ; end"
eval(script)
test #=> 2
复制代码
这样?
作者:
guoxiaomi
时间:
2018-3-14 12:30
$:<< Dir.getwd # 根目录作为脚本载入的目录
复制代码
load 'script.rb' # 载入根目录下的 script.rb
复制代码
但是不建议这么做,你可以让全动画脚本继承在 Scene_Battle 下,或者引入 module 来做……
作者:
fux2
时间:
2018-3-14 12:41
txt的话必须得用UTF8保存,不过还是尽量不要出现中文。
除了楼上的方法以外,可以用最简单的读文本内容+eval的方法去执行
def eval_file(fn)
eval(File.open(fn).read)
end
复制代码
插入以上方法,使用
eval_file("test.txt")
复制代码
就能执行游戏目录的test.txt里的ruby代码
作者:
文雅夕露
时间:
2018-3-14 20:14
fux2 发表于 2018-3-14 12:41
txt的话必须得用UTF8保存,不过还是尽量不要出现中文。
除了楼上的方法以外,可以用最简单的读文本内容+eva ...
谢谢管理员前辈的回答。
可是有几点疑问...
一是使用def eval_file(fn)这段脚本后,
再运行eval_file("test.txt")会出现语法问题。
这是txt文档的问题还是其他问题呢?
二是,如果置入txt文档的脚本代码,它的优先级是?
会覆盖或者重定义其他的脚本内容吗?
还是单纯的执行?
作者:
白魔导师宝儿
时间:
2018-3-16 18:03
在游戏里改变战斗模式吗?开关是麻烦但很好用。
欢迎光临 Project1 (https://rpg.blue/)
Powered by Discuz! X3.1