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

Project1

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

《跟我从头学Ruby》中的脚本范例测试运行不了。

 关闭 [复制链接]

Lv1.梦旅人

梦石
0
星屑
60
在线时间
1 小时
注册时间
2008-4-4
帖子
42
跳转到指定楼层
1
发表于 2008-4-18 01:44:39 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

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

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

x
各位老师,我在看本站的《跟我从头学Ruby》,在第四章第四节中有如下示范:

    (第四章)第四节  实战事件脚本:十步杀一人

   这里我们通过一个详尽的例子,来实现这样一个系统:
   角色正在危机四伏的地牢中行走,如果不慎踏中了有埋伏的格子(地形标记为4),恰好此时的步数能被10整除,那么发生战斗,这样的战斗无法逃跑,也不允许失败。
   先来看看用纯粹的事件指令实现这个系统:一个并行事件
   变量操作:[0001]=角色的地形标记
   变量操作:[0002]=步数
   变量操作:[0002]%=10
   条件分歧:变量[0001]==4
     条件分歧:变量[0002]==0
       战斗处理
     分歧结束
   分歧结束
   好像并不算很复杂。但是实际处理中就会发现,如果发生了一场战斗以后,好不容易战胜,刚退出来发现马上又开始了一场战斗。如此往复,无尽循环。“十步杀一人”变成了“身陷重围”,角色纵使带了100个大补药,也无济于事了……
   事实上,如果不用脚本的话,这个系统是不能实现的,因为在默认的条件分歧等操作中,没有提供“判断角色是不是在移动”这样的功能。导致角色一旦进入一个满足了战斗条件的格子,就会一直在里面战斗……无法出来。
   那么应该怎么办呢?
   条件分歧:$game_player.moving?
     变量操作:[0001]=角色的地形标记
     变量操作:[0002]=步数
     变量操作:[0002]%=10
     条件分歧:变量[0001]==4
       条件分歧:变量[0002]==0
         战斗处理
       分歧结束
     分歧结束
   分歧结束
   这样,只有在角色移动时,才会判断是不是要进行战斗处理。$game_player.moving?是判断主角是否在移动中的脚本,返回一个true或false的值,当该值为true时,执行分歧里面的操作。
   现在来看看能不能优化一下这个系统,可以发现,每次战斗处理,要计算3次变量的值,比较2次。
   我们来试图直接获得游戏对象的值,替代烦人的变量操作
   条件分歧:$game_player.moving?
     条件分歧:$game_player.terrain_tag == 4 and $game_party.steps % 10 == 0
       战斗处理
     分歧结束
   分歧结束
   好了,完成了,大家可以自己测试一下。
   关于如何在脚本中调用那些游戏对象的值,在本教程全系列完成后的附录里会专门列一张表,大家也可以查看站上的教程“在事件中使用的常用脚本”,里面给出了部分游戏对象的脚本引用方法。



       这个范例我怎么根本没法在RMXP中演示,难到是我输入方法问题?我做了几种输入脚本的方法测试,都无法演示,到底是我的输入问题还是这个教学脚本问题?特来请教各位老师!
                              谢谢!
版务信息:本贴由楼主自主结贴~

Lv1.梦旅人

梦石
0
星屑
60
在线时间
1 小时
注册时间
2008-4-4
帖子
42
2
 楼主| 发表于 2008-4-18 03:53:00 | 只看该作者
怎么没有人回答我的问题?
             请各位高手指教!
回复 支持 反对

使用道具 举报

Lv1.梦旅人

龙皇

梦石
0
星屑
50
在线时间
83 小时
注册时间
2007-8-8
帖子
2956
3
发表于 2008-4-18 04:16:54 | 只看该作者
$game_player.terrain_tag == 4 and $game_party.steps % 10 == 0
脚本句子太長....
換行要用 / 換行

                签名图来自:無限のファンタジア
                 我的RMXP专题空间--龙使传说
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
60
在线时间
1 小时
注册时间
2008-4-4
帖子
42
4
 楼主| 发表于 2008-4-18 05:29:45 | 只看该作者
朋友,按《跟我从头学Ruby》说的是将脚本输入到条件分歧的脚本框里,那个脚本框就只有一行啊,怎么换?
回复 支持 反对

使用道具 举报

Lv1.梦旅人

茄孓

梦石
0
星屑
72
在线时间
140 小时
注册时间
2007-5-29
帖子
956
5
发表于 2008-4-18 05:36:18 | 只看该作者
你按他的步骤做了吗?
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
60
在线时间
1 小时
注册时间
2008-4-4
帖子
42
6
 楼主| 发表于 2008-4-18 05:49:34 | 只看该作者
我是按下列方法输入脚本的(也就是按《跟我从头学Ruby》排列的方法输入的):
  

◆条件分歧:脚本:$game_player.moving?
   ◆条件分歧:脚本:$game_player.terrain_tag == 4 and $game_party.steps % 10 == 0
     ◆战斗处理:幽灵*2
     ◆  
      除此场合外
     ◆
      分歧结束
   ◆
    除此场合外
   ◆
    分歧结束




      请脚本高手看哪里有错? 为什么不能按《跟我从头学Ruby》讲述的进入演示?
回复 支持 反对

使用道具 举报

Lv1.梦旅人

茄孓

梦石
0
星屑
72
在线时间
140 小时
注册时间
2007-5-29
帖子
956
7
发表于 2008-4-18 05:59:34 | 只看该作者
你是说效果不能达到还是说不能运行?
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
60
在线时间
1 小时
注册时间
2008-4-4
帖子
42
8
 楼主| 发表于 2008-4-18 06:07:19 | 只看该作者
是效果不能表达,跟本就遇不到敌人.(按教材说是10步杀一人.)
回复 支持 反对

使用道具 举报

Lv1.梦旅人

茄孓

梦石
0
星屑
72
在线时间
140 小时
注册时间
2007-5-29
帖子
956
9
发表于 2008-4-18 06:07:55 | 只看该作者
  汗, 你地地形标志改4了吗?我把我的范例给你
回复 支持 反对

使用道具 举报

Lv1.梦旅人

茄孓

梦石
0
星屑
72
在线时间
140 小时
注册时间
2007-5-29
帖子
956
10
发表于 2008-4-18 06:09:32 | 只看该作者
补充下
你需要按F9-图块-(仔细找找[地形标志])-然后按下去,在元件中把想要预定的
地图里的地形标志改为4(默认都是0,如果你吧)
◆条件分歧:脚本:$game_player.terrain_tag == 0 and $game_party.steps % 10 == 0
你看看,是不是很快遇敌了

系统信息:本贴由楼主认可为正确答案,66RPG感谢您的热情解答~
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2025-7-23 07:20

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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