Project1

标题: 如何对脚本进行分行 [打印本页]

作者: timiesea    时间: 2015-1-1 00:05
标题: 如何对脚本进行分行
当一行脚本非常长时,我不得不将其分成几行来写,但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]
我想这么写应该没错吧,但在运行时提示如下:
(, 下载次数: 50)

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

我要向各位高手们请教一下:
这样子写哪里不行呢?或者说该怎么换行呢?
作者: VIPArcher    时间: 2015-1-1 00:38
本帖最后由 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]
作者: 晴兰    时间: 2015-1-1 03:30
提示: 作者被禁止或删除 内容自动屏蔽
作者: timiesea    时间: 2015-1-1 12:22
VIPArcher 发表于 2015-1-1 00:38
在不会发生歧义的地方换行就可以了其实这么长的内容比较推荐的做法是写个方法把任务的设置全部都丢到脚本里 ...

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

我的想法是设定一个规则,然后存放在一个文件里。去文件读取,这样子只要任务稍有改动,就可以直接修改文件,而不是去找脚本了。
作者: taroxd    时间: 2015-1-1 13:19
timiesea 发表于 2015-1-1 12:22
嗯。这是个好办法。不过我觉得直接在脚本里设置的话是不是不规范呢?

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

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

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

要知道,找脚本并不比找文件麻烦。只要你把设置区域集中起来的话。
作者: timiesea    时间: 2015-1-1 13:46
taroxd 发表于 2015-1-1 13:19
不会啊,很多脚本都会在顶端提供一个【设置区域】,存放各种各样的常量之类。

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

少说都有数十个任务吧,这个设置区域可真够大。让我想起《RMXP》中的Game_Battle类,分了好多页。
作者: chd114    时间: 2015-1-1 13: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)
复制代码
这样试试看?另外你每行加一个;做什么、、、
作者: timiesea    时间: 2015-1-1 14:03
chd114 发表于 2015-1-1 13:51
这样试试看?另外你每行加一个;做什么、、、

加 ; 变成习惯了。我目前使用的语言都是 ; 表示一句结束的。
作者: chd114    时间: 2015-1-1 14:09
chd114 发表于 2014-12-31 20:51
这样试试看?另外你每行加一个;做什么、、、
这样试试看?另外你每行加一个;做什么、、、7楼
点评


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


@VIPArcher @taroxd 问题解决了···




欢迎光临 Project1 (https://rpg.blue/) Powered by Discuz! X5.0