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

Project1

 找回密码
 注册会员
搜索
楼主: 八云紫
打印 上一主题 下一主题

[推荐问答] 查询向 RPG VX 介绍(2013-11-07)

   关闭 [复制链接]

Lv1.梦旅人

百合乡の蕾咪

梦石
0
星屑
55
在线时间
151 小时
注册时间
2011-1-12
帖子
198
241
发表于 2013-11-1 15:44:22 | 只看该作者
事件 - 金币



      ★ A:
      操作: 默认的事件只提供对金币的增加和减少的操作. 当然, 如果你想实现比如金币翻倍亦或是减半等操作的话, 则需要使用到脚本了.
      
      ★ B:
      操作数: 可以对金币增加或者减少一个具体的数值, 比如说 +1 , -10 金币什么的. 当然, 如果你想动态的增加的话, 就可以使用下面的变量来实现啦.

      ★ C:
      脚本: 这是进阶部分. 一下的介绍只是按照默认的脚本来的, 外带脚本请直接无视.
      说道金币的话, 如何用脚本来获取当前的金币数量就是第一笔需要解决的问题. 是的, 很简单, 就是
  1.       $game_party.gold
复制代码
就这么简单. 不过你想直接修改它的话, 抱歉啦. 脚本会直接提示你说无法直接修改. 那么我们来解读下默认脚本中处理这段事件的脚本:
   
RUBY 代码复制
  1. #--------------------------------------------------------------------------
  2.   # ● 增减金钱
  3.   #--------------------------------------------------------------------------
  4.   def command_125
  5.     value = operate_value(@params[0], @params[1], @params[2])
  6.     $game_party.gain_gold(value)
  7.     return true
  8.   end


看起来也是很简单的. 这里需要解释的是,
       @params[0] : 这个变量对应的是上面说的区域A, 也就是增加还是减少. 如果你选择的是增加的话, 那么 @params[0] 这个数就是 0. 反之则为 1.
       @params[1] : 这个变量对应区域B. 它的含义在于, 如果你使用常量来增减金币的话, 这个变量的值就是 0. 果然是变量, 那么就是 1.
       @params[2] : 对应 区域B 中你输入的数值. 常量就是后面的数值. 变量就是变量ID.

      然后用过方法 operate_value() 计算出最后到底要增加多少的金币. 这里要注意的是, 无论如何都总是增加金币. 对于减少的处理, 是加上这个数值的负数.
     $game_party.gain_gold() 这个方法是最终对金币数进行控制的方法. 参数就是你需要增加的金币数. 如果是 1 就是当前金币+1 .
   
     当然, 我之前也说了, 如果需要让金币加倍或是减半, 用默认的事件是不太容易实现的. 这里就当做一个例子吧 .
金币翻倍:
RUBY 代码复制
  1. $game_party.gain_gold($game_party.gold * 1)

     如果想要翻倍的话, 就可以这么写. 自己加上自己就是等于乘以 2 了. 这里的 1, 可以理解成乘以 2 的意思. 如果你想要变得 3倍, 那么就改成 2 即可.

金币减半:
RUBY 代码复制
  1. $game_party.gain_gold(-$game_party.gold / 2)

    和加倍没什么太大的区别, 只是要留意前面的 负号. 如果你想要减少到只有原来的 1/4 的话, 那么要注意的是, 这是需要减少 3/4 的. 具体的写法就不举例了.

评分

参与人数 1星屑 +100 梦石 +1 收起 理由
怪蜀黍 + 100 + 1 稿费喵!

查看全部评分

回复 支持 反对

使用道具 举报

Lv3.寻梦者 (版主)

八宝粥的基叔

梦石
0
星屑
4684
在线时间
5240 小时
注册时间
2009-4-29
帖子
14318

贵宾

242
发表于 2013-11-4 12:45:50 | 只看该作者
本帖最后由 protosssonny 于 2013-11-4 18:59 编辑

事件指令 - 游戏进程 - 变量操作


      ★ A:
      单个: 这个和开关完全相同,请参看关于开关的介绍。
      批量: 这个也和开关完全相同,请参看关于开关的介绍。

      ★ B:
      操作
        ☆ 代入 :把操作数代入指定的变量
        ☆ 加法 :把操作数加上指定的变量后,所得的值再代入指定的变量
        ☆ 减法 :把操作数减去指定的变量后,所得的值再代入指定的变量
        ☆ 乘法 :把操作数乘以指定的变量后,所得的值再代入指定的变量
        ☆ 除法 :把操作数除以指定的变量后,所得的值再代入指定的变量
        ☆ 取余 :操作数对指定的变量取余后,所得的值再代入指定的变量。取余是这样一种运算,数a除以数b所得到的余数就是取余运算。
        
      ★ C:
      操作数
        ☆ 常量 :操作数为常数
        ☆ 变量 :操作数为另一个变量
        ☆ 随机 :操作数为a-b范围内的随机整数,可以取到a和b
        ☆ 物品 :操作数为某物品的持有数量
        ☆ 角色 :操作数为角色的某一属性值
        ☆ 敌人 :操作数为现在战斗队伍中其中指定一位敌人的某一属性值
        ☆ 位置 :操作数为角色或者当前地图中指定事件的坐标值或朝向。其中朝向上下左右分别于小键盘的箭头按键的数字相对应。比如,朝向为上,那么就是8
        ☆ 其他 :都很好理解。其中计时器为当前计时器是剩余时间换算成秒之后的数。

评分

参与人数 1星屑 +150 梦石 +1 收起 理由
铃仙·优昙华院·因幡 + 150 + 1 塞糖 + 32个赞

查看全部评分

《逝去的回忆3:四叶草之梦》真情发布,欢迎点击图片下载试玩喵。

《逝去的回忆3》的讨论群:
一群:192885514
二群:200460747
回复 支持 反对

使用道具 举报

Lv2.观梦者

狂気の月兔

梦石
0
星屑
276
在线时间
1245 小时
注册时间
2009-4-7
帖子
879

贵宾

243
发表于 2013-11-7 19:23:27 | 只看该作者
本帖最后由 铃仙·优昙华院·因幡 于 2013-11-7 22:58 编辑

事件 - 物品



      ★ A:
      物品: 选择你想要对哪一个物品进行增减操作. 物品具体的名字, 效果等属性, 请参考 数据库-物品 .
      
      ★ B:
      操作: 可以操作物品的数量增加或者减少. 如果你想动态的增加的话, 就可以使用下面的变量来实现啦.

      ★ C:
      操作数: 增加或者减少该物品数量的数值可以在这里直接输入. 如果你想动态的增加的话, 就可以使用下面的变量来实现啦.

      ★ D:
      脚本: 这是进阶部分. 以下的介绍只是按照默认的脚本来的, 外带脚本请直接无视.
      和获取金币数量的脚本类似, 获取物品数量也可以通过脚本来获取:
  1. $game_party.item_number($data_items[ID])
复制代码
只是略显的麻烦. 这里的 ID 就是你想要查询的 ID 号.

      那么我们怎么获得全部的道具以及数量呢? 有一个简单的办法: 在 Game_Party 里一开头添加:
  1. attr_reader   :items
复制代码
然后使用 :
  1. $game_party.items
复制代码
就是全部道具了.
     回到上一个问题, 怎么获取对应的数量呢? 现在就更加简单了:
  1. $game_party.items[id]
复制代码
来到事件实现:
RUBY 代码复制
  1. #--------------------------------------------------------------------------
  2.   # ● 增减物品
  3.   #--------------------------------------------------------------------------
  4.   def command_126
  5.     value = operate_value(@params[1], @params[2], @params[3])
  6.     $game_party.gain_item($data_items[@params[0]], value)
  7.     $game_map.need_refresh = true
  8.     return true
  9.   end


     对的, 和之前 增加金币的脚本一样. 这里就不重复说明了.

     只是要注意的是, $game_party.gain_item() 这个方法的参数, 第一个是 物品, 不是物品 ID. 第二个是增减的数量.

评分

参与人数 1星屑 +100 梦石 +1 收起 理由
怪蜀黍 + 100 + 1 进阶部分很有用呀!

查看全部评分

回复 支持 反对

使用道具 举报

Lv3.寻梦者 (版主)

八宝粥的基叔

梦石
0
星屑
4684
在线时间
5240 小时
注册时间
2009-4-29
帖子
14318

贵宾

244
发表于 2013-11-10 13:03:04 | 只看该作者
事件指令 - 游戏进程 - 独立开关操作


这个命令就是控制本事件的独立开关。独立开关一共用4个,分别表示为A、B、C、D。每个事件都有这4个独立开关!

独立开关与开关的区别:开关是相对于整个游戏工程而言的,而独立开关是针对于某张地图的某一个事件而言的。一个独立开关负责管一个事件!我举一个例子,你就可以明白了。
默认宝箱事件的设定是这样的,当你打开它以后,我们获得宝箱里的物品之后,就立刻打开该事件一个独立开关比如独立开关A,如果这个事件的独立开关A为打开状态,那么宝箱不再第二次给你物品。如果你不设置这个独立开关,那么每次在宝箱面前点确定,宝箱都会给你这个物品,显然这是不合理的。
也许你会问,我用开关不是也可以办到吗?的确开关也可以办到,但是假如我设定开关1为打开状态么宝箱不再第二次给你物品,那么整个游戏中其它的宝箱都不能使用开关1作为条件了,否则其他宝箱一都会被判断为【已经被打开过】。

总结:独立开关是每个事件都有的独立的开关,某个事件对自己的独立开关进行操作不会影响其它事件的独立开关状态。有多少个事件,就有多少个独立开关A、B、C、D与之对应,独立开关与独立开关之间没有丝毫联系!而开关不同,只要在任何一个事件任何地方被操作过,都会影响到整个游戏中这个开关所涉及的地方。开关的数量与事件的数量毫无关系。

进阶部分
   独立开关的实质
独立开关虽然是与事件一一对应,但是它并不是事件的属性,也就是说,事件没有类似$game_map.events[1].instance_variable_get(:@self_switche)这样的属性!那么怎么获取一个事件的独立开关呢?比方我想获取地图2的事件5中的独立开关B的情况,应该这样写脚本:
  1. p $game_self_switches[[2,5,"B"]]
复制代码
独立开关的实质其实是一个哈希表(Hash)。
比如地图2的事件5中的独立开关B是打开状态,那么这个哈希表中一定存在这样的一个元素
  1. [2,5,"B"] => true
复制代码
独立开关不是通过事件属性的办法来记录数据,而是使用外部的一个哈希表来记录的,因此在写入和读取存档时也必须有
  1. Marshal.dump($game_self_switches,  file)
复制代码
  1. $game_self_switches  = Marshal.load(file)
复制代码
的语句。
   独立开关的脚本用法
假如我们想在地图1操作地图2中5号事件的独立开关B,而使用纯事件是无法办到的,因为事件法只能控制本事件的独立开关状态,这时我们就要使用
  1. $game_self_switches[[2,5,"B"]] = true #打开独立开关B,注意不是ON
复制代码
  1. $game_self_switches[[2,5,"B"]] = false #关闭独立开关B,注意不是OFF
复制代码
但是,如果想在本地图中的一个事件中操作另一个事件的独立开关,必须这样写,第二句脚本千万不要漏掉
  1. $game_self_switches[[2,5,"B"]] = true #打开独立开关B
  2. $game_map.need_refresh = true #强制地图画面刷新
复制代码
如果不写第二句,虽然独立开关已经被操作,但是地图图像没有任何变化,具体表现为:宝箱虽然已经被打开,但是从画面上看,宝箱依旧是关闭着的。

评分

参与人数 1星屑 +150 梦石 +1 收起 理由
铃仙·优昙华院·因幡 + 150 + 1 认可答案

查看全部评分

《逝去的回忆3:四叶草之梦》真情发布,欢迎点击图片下载试玩喵。

《逝去的回忆3》的讨论群:
一群:192885514
二群:200460747
回复 支持 反对

使用道具 举报

Lv3.寻梦者 (版主)

八宝粥的基叔

梦石
0
星屑
4684
在线时间
5240 小时
注册时间
2009-4-29
帖子
14318

贵宾

245
发表于 2013-11-10 14:29:29 | 只看该作者
铃仙·优昙华院·因幡 发表于 2013-11-7 19:23
★ A:
      物品: 选择你想要对哪一个物品进行增减操作. 物品具体的名字, 效果等属性, 请参考  ...

啊,我记得
如果在同一地图的话,使用脚本改独立开关是需要刷新的啦,不在同一地图可以不要喵~
如果使用事件命令的话可以不用是因为事件命令里面有刷新了语句,所以可以不写这句。
我以前做是这样的,印象很深刻。一会我再测试一下确认……现在有点点事。
《逝去的回忆3:四叶草之梦》真情发布,欢迎点击图片下载试玩喵。

《逝去的回忆3》的讨论群:
一群:192885514
二群:200460747
回复 支持 反对

使用道具 举报

Lv3.寻梦者 (版主)

八宝粥的基叔

梦石
0
星屑
4684
在线时间
5240 小时
注册时间
2009-4-29
帖子
14318

贵宾

246
发表于 2013-11-10 15:15:03 | 只看该作者
铃仙·优昙华院·因幡 发表于 2013-11-10 14:33
我的一道脚本题目说的就是这样的

我也提供一个例子给紫大人看看喵~
Project3.rar (238.07 KB, 下载次数: 94)
《逝去的回忆3:四叶草之梦》真情发布,欢迎点击图片下载试玩喵。

《逝去的回忆3》的讨论群:
一群:192885514
二群:200460747
回复 支持 反对

使用道具 举报

Lv2.观梦者

狂気の月兔

梦石
0
星屑
276
在线时间
1245 小时
注册时间
2009-4-7
帖子
879

贵宾

247
发表于 2013-11-19 23:31:43 | 只看该作者
占楼刷掉广告
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
275
在线时间
3 小时
注册时间
2013-12-3
帖子
1
248
发表于 2013-12-3 20:58:51 | 只看该作者
我一新手,素材管理actor1失踪了  谁给发个?

评分

参与人数 1星屑 -10 收起 理由
铃仙·优昙华院·因幡 -10 文不对题

查看全部评分

回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
535
在线时间
5 小时
注册时间
2013-12-4
帖子
1
249
发表于 2013-12-8 04:16:09 | 只看该作者
那个····我是新手,请问地图的层在哪里找?RMXP不是有四个层吗?没有层我不会画家啊!

点评

这里是vx区,xp党请去xp区查看。  发表于 2013-12-11 19:19
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
310
在线时间
3 小时
注册时间
2013-12-6
帖子
2
250
发表于 2013-12-8 16:52:59 | 只看该作者
八云紫 发表于 2009-1-14 22:17
本篇教程面向新手,旨在教学,其实就是说明一下数据库里每个按键的功能罢了。高手请无视~~~{/hx}

        ...

嗯?在哪下载?广场下面的那个“软件下载”没用

评分

参与人数 1星屑 +20 收起 理由
铃仙·优昙华院·因幡 + 20 这个请去版务区反映下.

查看全部评分

回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-11-21 18:06

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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