查看: 2410|回复: 4

[已经解决] F1帮助文档脚本中的制作传送物品是怎么实现的?

[复制链接]
梦石
0
星屑
50
在线时间
101 小时
注册时间
2017-1-9
回帖
5
发表于 2017-4-18 22:32:52 | 显示全部楼层 |阅读模式

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

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

×
本帖最后由 AZERAL 于 2017-4-19 17:04 编辑

虽然小弟我勉强能看懂F1帮助文档所有的脚本啦,但唯独制作传送物品这个脚本一直看不懂(如果大家有其他脚本入门实践篇的问题的话,我也能尽力解决啦 )
虽然本人对脚本不是太懂,可我已经尽力按照手册上的方法做了,但是还是没有成功实现传送物品的效果—在包含城镇等地点的菜单中选择任意地点之后选择物品进行传送一次
所以在这里希望各位大佬们能够帮帮忙,小弟在这里先谢谢啦
这是我写的传送物品的代码,也不知道对不对:
[pre lang="ruby"]class Window_Teleport < Window_Command
  def initialize
    super(0, 0)
    hide
    deactivate
  end
end
  def window_width
    return 240
  end
  def window_height
    Graphics.height
  end
  TELEPORT_PLACES =
    [
      [2, "草地2", 2, 7, 7],
      [3, "草地3", 3, 7, 7],
      [4, "草地4", 4, 7, 7],
    ]
    def make_command_list
    TELEPORT_PLACES.each do |place|
      if $game_switches[place[0]]
        add_command(place[1], :teleport, true, place)
      end
    end
end
class Scene_ItemBase
   alias xxx001_start start
  def start
    xxx001_start
    @teleport_window = Window_Teleport.new
    @teleport_window.set_handler(:teleport, method(:on_teleport))
    @teleport_window.set_handler(:cancel, method(:on_teleport_cancel))
  end
  alias xxx001_determine_item determine_item
  def determine_item
    if item.note.include?("<TELEPORT>")
      show_sub_window(@teleport_window)
     end
    else
      xxx001_determine_item
    end
end
   def on_teleport
    place = @teleport_window.current_ext
    $game_player.reserve_transfer(place[2], place[3], place[4])
    SceneManager.goto(Scene_Map)
  end
  def on_teleport_cancel
    hide_sub_window(@teleport_window)
  end[/pre]
下面是工程失败的截图以及我做的传送物品和技能的范例:

失败的结果

失败的结果

1.zip

1.43 MB, 下载次数: 103

试验范例

本人只是一个新手小白而已啦

梦石
1
星屑
23241
在线时间
9564 小时
注册时间
2012-6-19
回帖
7018

开拓者短篇九导演组冠军

发表于 2017-4-18 23:01:55 | 显示全部楼层
允许传送的开关打开了吗?
回复

使用道具 举报

梦石
0
星屑
50
在线时间
101 小时
注册时间
2017-1-9
回帖
5
 楼主| 发表于 2017-4-19 14:33:24 | 显示全部楼层
喵呜喵5 发表于 2017-4-18 23:01
允许传送的开关打开了吗?

按照制作传送点的清单[开关 ID,传送点的名称,地图 ID,X 坐标, Y 坐标]来理解的话,开关 ID就是传送开关吗?
如果是的话,我在进入每一地点时都设了打开指定开关的事件,但是在菜单中选择传送物品依然不能显示传送点
本人只是一个新手小白而已啦
回复

使用道具 举报

梦石
0
星屑
6375
在线时间
1473 小时
注册时间
2015-7-25
回帖
609

极短25参与开拓者

发表于 2017-4-19 16:01:46 | 显示全部楼层
从上往下数第二个end去掉,然后在
if $game_switches[place[0]]
        add_command(place[1], :teleport, true, place)
end
的下面再加一个end

评分

参与人数 1星屑 +250 收起 理由
RaidenInfinity + 250 认可答案

查看全部评分

笨肉包的游戏讨论群932812135 (实时更新) 喜欢的话欢迎加入~
目前的坑
??? #像素风OC游戏 准备中 短篇-约5小时
花城梦之心 #像素风OC游戏 系统开发+素材绘制中
【不可思议的迷宫】幽灵契约外传:歌莉娅 v0.4 游戏文件已更新
同时更新中~ (沉迷摸鱼中~更新速度较慢请见谅w)
这是属于笨肉包一个人的旅行~(这只肉包又在摸鱼!
旅途的最终目标~ ???(保密~
回复

使用道具 举报

梦石
0
星屑
50
在线时间
101 小时
注册时间
2017-1-9
回帖
5
 楼主| 发表于 2017-4-19 16:23:55 | 显示全部楼层
魔法丶小肉包 发表于 2017-4-19 16:01
从上往下数第二个end去掉,然后在
if $game_switches]
        add_command(place[1], :teleport, true, pl ...

十分感謝,終於搞定了啦
本人只是一个新手小白而已啦
回复

使用道具 举报

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

本版积分规则

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

在本版发帖返回顶部