查看: 2522|回复: 8

[已经解决] 如何对脚本进行分行

[复制链接]
梦石
0
星屑
105
在线时间
297 小时
注册时间
2009-1-7
回帖
155
发表于 2015-1-1 00:05:06 | 显示全部楼层 |阅读模式

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

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

×
当一行脚本非常长时,我不得不将其分成几行来写,但ruby似乎就不能辨认下几行脚本的意义。

我去查了一下资料,发现使用\对脚本进行换行。目前,我只在一个地方使用过,并且出现了问题。

在事件页中,有一个可以输入脚本的东西,它就在:事件指令->3->高级->脚本

我有一段脚本如下:
[pre lang="ruby" line="1"]i = "1";
n = "寻找神秘王者";
d = "去寻找神秘王者吧!";
t1 = "1";
t2 = "1";
t3 = "1";
t4 = "1";
e = "100";
$game_party.set_cur_quest1(i,n,d,t1,t2,t3,t4,e);[/pre]

最后一行由于很长,因此我需要进行换行,所以我这么写
[pre lang="ruby" line="1"]$game_party.set_cur_quest1\
(i,n,d,t1,t2,t3,t4,e);[/pre]
我想这么写应该没错吧,但在运行时提示如下:
1118.jpg

意思很明显,下一行有错误,换一句话说就是ruby不认为下一行脚本承接上一行脚本。经过我的排除,已经可以确定这个set_cur_quest1方法没有问题了。

我要向各位高手们请教一下:
这样子写哪里不行呢?或者说该怎么换行呢?
游戏群组:https://rpg.blue/forum.php?mod=group&fid=565在这里你可以看到我在制作游戏过程中分享的内容。

无限の剣制

梦石
0
星屑
10445
在线时间
5019 小时
注册时间
2013-2-28
回帖
4942

开拓者贵宾

发表于 2015-1-1 00:38:29 | 显示全部楼层
本帖最后由 VIPArcher 于 2015-1-1 01:39 编辑

在不会发生歧义的地方换行就可以了
  1. #[s]换行狂魔,换个三角形233[/s],未测试
  2. $game_party
  3. .set_cur_quest1(
  4. i,
  5. n,d,
  6. t1,t2,t3\
  7. ,t4,
  8. e
  9. )
复制代码
其实这么长的内容比较推荐的做法是写个方法把任务的设置全部都丢到脚本里去。然后设置任务的时候调用这个写好的方法就可以了
[fold=比如可以这么做][pre lang="ruby" line="1"]module SET_QUEST
  
  QUEST_LAST = {
  #任务列表
  1 => [
  "寻找神秘王者",
  "去寻找神秘王者吧!",
  "1",   #T1
  "2",   #T2
  "3",   #T3
  "4",   #T4
  "100"   #e
  
  ], #这里有个逗号
  
  2 => [ #任务ID做键
  "任务名字", #任务名字
  "任务内容", #任务内容
  "T1",   #T1
  "T2",   #T2
  "T3",   #T3
  "T4",   #T4
  "100"   #e
  ],
  #继续添加任务
  3 => [
  
  #.......
  
  ]
  
  } # 这个花括号不能删
  
  def self.set_quest1(id)
    q = QUEST_LAST[id]
    $game_party.set_cur_quest1(id,q[0],q[1],q[2],q[3],q[4],q[5],q[6])
  end
  # 然后事件调用  SET_QUEST.set_quest1(id) 来设置任务什么的
end[/pre] 这个只是示范,并不一定你能用得上[/fold]

评分

参与人数 1梦石 +1 收起 理由
taroxd + 1 认可答案

查看全部评分

回复

使用道具 举报

头像被屏蔽
梦石
0
星屑
653
在线时间
3774 小时
注册时间
2011-2-26
回帖
1577

开拓者

发表于 2015-1-1 03:30:04 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
签名被屏蔽
回复

使用道具 举报

梦石
0
星屑
105
在线时间
297 小时
注册时间
2009-1-7
回帖
155
 楼主| 发表于 2015-1-1 12:22:15 | 显示全部楼层
VIPArcher 发表于 2015-1-1 00:38
在不会发生歧义的地方换行就可以了其实这么长的内容比较推荐的做法是写个方法把任务的设置全部都丢到脚本里 ...

嗯。这是个好办法。不过我觉得直接在脚本里设置的话是不是不规范呢?

我的想法是设定一个规则,然后存放在一个文件里。去文件读取,这样子只要任务稍有改动,就可以直接修改文件,而不是去找脚本了。

点评

好办法,不过你不觉得玩家也可以修改吗?又增加了一个加密负担。  发表于 2015-1-1 12:56
游戏群组:https://rpg.blue/forum.php?mod=group&fid=565在这里你可以看到我在制作游戏过程中分享的内容。
回复

使用道具 举报

…あたしは天

梦石
0
星屑
2308
在线时间
4033 小时
注册时间
2010-10-4
回帖
10548

开拓者贵宾

发表于 2015-1-1 13:19:04 | 显示全部楼层
timiesea 发表于 2015-1-1 12:22
嗯。这是个好办法。不过我觉得直接在脚本里设置的话是不是不规范呢?

我的想法是设定一个规则,然后存放 ...

不会啊,很多脚本都会在顶端提供一个【设置区域】,存放各种各样的常量之类。

比如说这个:https://rpg.blue/thread-365985-1-1.html(当然目前是空的,我也没有写该如何设置)

要知道,找脚本并不比找文件麻烦。只要你把设置区域集中起来的话。
回复

使用道具 举报

梦石
0
星屑
105
在线时间
297 小时
注册时间
2009-1-7
回帖
155
 楼主| 发表于 2015-1-1 13:46:07 | 显示全部楼层
taroxd 发表于 2015-1-1 13:19
不会啊,很多脚本都会在顶端提供一个【设置区域】,存放各种各样的常量之类。

比如说这个:http://rm.66 ...

少说都有数十个任务吧,这个设置区域可真够大。让我想起《RMXP》中的Game_Battle类,分了好多页。

点评

SideView 近 1500 行的设置呢。在脚本编辑器里搜索相对还是挺方便的,  发表于 2015-1-1 13:50
游戏群组:https://rpg.blue/forum.php?mod=group&fid=565在这里你可以看到我在制作游戏过程中分享的内容。
回复

使用道具 举报

梦石
0
星屑
9292
在线时间
2504 小时
注册时间
2011-5-20
回帖
14521

开拓者

发表于 2015-1-1 13:51:51 | 显示全部楼层
  1. i = "1"
  2. n = "寻找神秘王者"
  3. d = "去寻找神秘王者吧!"
  4. t1 = "1";t2 = "1"
  5. t3 = "1";t4 = "1"
  6. e = "100"
  7. $game_party.\
  8. set_cur_quest1(i,n,d,t1,t2,t3,t4,e)
复制代码
这样试试看?另外你每行加一个;做什么、、、

点评

可以了。谢谢你!  发表于 2015-1-1 14:08

评分

参与人数 1梦石 +1 收起 理由
taroxd + 1 认可答案

查看全部评分

[img]http://service.t.sina.com.cn/widget/qmd/5339802982/c02e16bd/7.png
回复

使用道具 举报

梦石
0
星屑
105
在线时间
297 小时
注册时间
2009-1-7
回帖
155
 楼主| 发表于 2015-1-1 14:03:38 | 显示全部楼层
chd114 发表于 2015-1-1 13:51
这样试试看?另外你每行加一个;做什么、、、

加 ; 变成习惯了。我目前使用的语言都是 ; 表示一句结束的。
游戏群组:https://rpg.blue/forum.php?mod=group&fid=565在这里你可以看到我在制作游戏过程中分享的内容。
回复

使用道具 举报

梦石
0
星屑
9292
在线时间
2504 小时
注册时间
2011-5-20
回帖
14521

开拓者

发表于 2015-1-1 14:09:55 | 显示全部楼层
chd114 发表于 2014-12-31 20:51
这样试试看?另外你每行加一个;做什么、、、
这样试试看?另外你每行加一个;做什么、、、7楼
点评


timiesea  可以了。谢谢你!  发表于 33 秒前


@VIPArcher @taroxd 问题解决了···
[img]http://service.t.sina.com.cn/widget/qmd/5339802982/c02e16bd/7.png
回复

使用道具 举报

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

本版积分规则

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

在本版发帖返回顶部