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

Project1

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

[已经解决] 回程卷的問題...請幫忙回答 謝謝!

[复制链接]

Lv2.观梦者

梦石
0
星屑
567
在线时间
465 小时
注册时间
2009-10-11
帖子
407
跳转到指定楼层
1
发表于 2010-8-8 15:01:10 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

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

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

x
小妹想做出「回程卷」,也找過板上文章,以下是個解決此問題的RGSS...

http://rpg.blue/forum.php?mod=vi ... 2%2D22+12%3A20%3A15

可惜小妹笨點...不知道這段RGSS是插入哪裡(MAIN之前嗎)?又該命名為什麼?

另外使用方法流程也用失敗...
我這樣做不知道對不對:
設置一樣物品"回程卷",裡頭公用事件設個009好了
公用事件009裡頭使用指令碼:呼叫腳本:$scene = Scene_Teleport.new

請問是這樣使用嗎...:L

Lv1.梦旅人

万物创造者

梦石
0
星屑
54
在线时间
352 小时
注册时间
2008-2-15
帖子
2432
2
发表于 2010-8-8 15:04:07 | 只看该作者
一般使用脚本都是插在main前,命名无所谓只是方便看
使用确实是这样的,不知道你碰到什么问题了= =
From mortal hope immortal power springs.
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
416 小时
注册时间
2006-10-21
帖子
1245
3
发表于 2010-8-8 15:10:08 | 只看该作者
  1. #==============================================================================
  2. # ★ Teleport                                               特别感谢 Yoji Ojima
  3. #------------------------------------------------------------------------------
  4. #  制作传送道具或是技能的脚本。
  5. #==============================================================================

  6. # 瞬间传送的识别文字。
  7. # 将这段文字写在作为传送道具或技能的「备注」之中。
  8. # [效果范围] 设为 [无]、[使用场合] 设为 [菜单中] 。
  9. EXSKL_TELEPORT_SIGNATURE = "*TELEPORT"

  10. # 允许瞬间传送的开关 ID。
  11. # 当此号的开关为 ON 时,则可以使用传送物品/技能
  12. # 可以在事件内开启或关闭此功能。
  13. EXSKL_TELEPORT_PERMISSION_SID = 1

  14. # 瞬间移动列表。
  15. # 开关 ID、场所名称、地图 ID、X 座标、Y 座标、传送后角色面向 (对应四方键)
  16. # 依照上面的顺序填入
  17. # 当对应的开关为 ON 时,就能够选择该场所来瞬间移动。
  18. EXSKL_TELEPORT_PLACES =
  19. [  
  20.   [1, "雾江之村伊波", 29, 242, 191, 8],
  21.   [1, "雪2崖" , 29, 246,242, 8],
  22.   [1, "草1原" , 2,16, 9, 2],
  23. ]
  24. # 开关, 场所名称, 地图ID, X 座标, Y 座标, 面向

  25. # 传送时的 SE。
  26. # 依次指定 SE 的名称、音量、音调。(不指定时留 [])
  27. EXSKL_TELEPORT_SE = ["Teleport", 80, 100]

  28. #------------------------------------------------------------------------------

  29. class Game_Actor
  30.   alias _exstlp_skill_can_use? skill_can_use?
  31.   #--------------------------------------------------------------------------
  32.   # ● 可用技能判断 (追加定义)
  33.   #     skill : 技能
  34.   #--------------------------------------------------------------------------
  35.   def skill_can_use?(skill)
  36.     return false unless skill.is_a?(RPG::Skill)
  37.     if skill.note.include?(EXSKL_TELEPORT_SIGNATURE)
  38.       return false unless $game_party.teleport_can_use?
  39.       return false if $game_player.in_vehicle?
  40.     end
  41.     return _exstlp_skill_can_use?(skill)
  42.   end
  43. end

  44. class Game_Party
  45.   alias _exstlp_item_can_use? item_can_use?
  46.   #--------------------------------------------------------------------------
  47.   # ● 可用物品判断 (追加定义)
  48.   #     item : 物品
  49.   #--------------------------------------------------------------------------
  50.   def item_can_use?(item)
  51.     return false unless item.is_a?(RPG::Item)
  52.     return false if item_number(item) == 0
  53.     if item.note.include?(EXSKL_TELEPORT_SIGNATURE)
  54.       return false unless teleport_can_use?
  55.       return false if $game_player.in_vehicle?
  56.     end
  57.     return _exstlp_item_can_use?(item)
  58.   end
  59.   #--------------------------------------------------------------------------
  60.   # ☆ 可用「瞬间移动」判定
  61.   #--------------------------------------------------------------------------
  62.   def teleport_can_use?
  63.     return false if EXSKL_TELEPORT_PLACES.empty?
  64.     return false unless $game_switches[EXSKL_TELEPORT_PERMISSION_SID]
  65.     for place in EXSKL_TELEPORT_PLACES
  66.       return true if $game_switches[place[0]]
  67.     end
  68.     return false
  69.   end
  70. end

  71. #==============================================================================
  72. # ★ Window_Teleport
  73. #------------------------------------------------------------------------------
  74. #  显示可以移动的场所列表。
  75. #==============================================================================

  76. class Window_Teleport < Window_Selectable
  77.   #--------------------------------------------------------------------------
  78.   # ☆ 初始化对象
  79.   #--------------------------------------------------------------------------
  80.   def initialize
  81.     super(0, 0, 272, 416)
  82.     refresh
  83.   end
  84.   #--------------------------------------------------------------------------
  85.   # ☆ 获取项目
  86.   #--------------------------------------------------------------------------
  87.   def item
  88.     return @data[self.index]
  89.   end
  90.   #--------------------------------------------------------------------------
  91.   # ☆ 刷新
  92.   #--------------------------------------------------------------------------
  93.   def refresh
  94.     self.contents.clear
  95.     @data = []
  96.     for place in EXSKL_TELEPORT_PLACES
  97.       if $game_switches[place[0]]
  98.         @data.push(place)
  99.       end
  100.     end
  101.     @item_max = [@data.size, 1].max
  102.     create_contents
  103.     for i in 0...@item_max
  104.       draw_item(i)
  105.     end
  106.   end
  107.   #--------------------------------------------------------------------------
  108.   # ☆ 描绘项目
  109.   #     index : 项目索引
  110.   #--------------------------------------------------------------------------
  111.   def draw_item(index)
  112.     rect = item_rect(index)
  113.     rect.x += 4
  114.     rect.width -= 8
  115.     self.contents.clear_rect(rect)
  116.     place = @data[index]
  117.     if place != nil
  118.       self.contents.draw_text(rect, place[1])
  119.     end
  120.   end
  121. end

  122. class Scene_Item
  123.   alias _exstlp_start start
  124.   alias _exstlp_terminate terminate
  125.   alias _exstlp_update update
  126.   alias _exstlp_determine_item determine_item
  127.   #--------------------------------------------------------------------------
  128.   # ○ 开始处理 (追加定义)
  129.   #--------------------------------------------------------------------------
  130.   def start
  131.     _exstlp_start
  132.     @teleport_window = Window_Teleport.new
  133.     hide_teleport_window
  134.   end
  135.   #--------------------------------------------------------------------------
  136.   # ○ 结束处理 (追加定义)
  137.   #--------------------------------------------------------------------------
  138.   def terminate
  139.     _exstlp_terminate
  140.     @teleport_window.dispose
  141.   end
  142.   #--------------------------------------------------------------------------
  143.   # ○ 更新画面 (追加定义)
  144.   #--------------------------------------------------------------------------
  145.   def update
  146.     teleport_active = @teleport_window.active
  147.     _exstlp_update
  148.     @teleport_window.update
  149.     if teleport_active
  150.       update_teleport_selection
  151.     end
  152.   end
  153.   #--------------------------------------------------------------------------
  154.   # ○ 确认物品 (追加定义)
  155.   #--------------------------------------------------------------------------
  156.   def determine_item
  157.     if @item.note.include?(EXSKL_TELEPORT_SIGNATURE)
  158.       show_teleport_window(@item_window.index % 2 == 0)
  159.     else
  160.       _exstlp_determine_item
  161.     end
  162.   end
  163.   #--------------------------------------------------------------------------
  164.   # ☆ 显示瞬间传送窗口
  165.   #     right : 靠右对齐标签(为false时则靠左)
  166.   #--------------------------------------------------------------------------
  167.   def show_teleport_window(right)
  168.     @item_window.active = false
  169.     width_remain = 544 - @teleport_window.width
  170.     @teleport_window.x = right ? width_remain : 0
  171.     @teleport_window.visible = true
  172.     @teleport_window.active = true
  173.     @teleport_window.index = 0
  174.     if right
  175.       @viewport.rect.set(0, 0, width_remain, 416)
  176.       @viewport.ox = 0
  177.     else
  178.       @viewport.rect.set(@teleport_window.width, 0, width_remain, 416)
  179.       @viewport.ox = @teleport_window.width
  180.     end
  181.   end
  182.   #--------------------------------------------------------------------------
  183.   # ☆ 隐藏瞬间传送窗口
  184.   #--------------------------------------------------------------------------
  185.   def hide_teleport_window
  186.     @item_window.active = true
  187.     @teleport_window.visible = false
  188.     @teleport_window.active = false
  189.     @viewport.rect.set(0, 0, 544, 416)
  190.     @viewport.ox = 0
  191.   end
  192.   #--------------------------------------------------------------------------
  193.   # ☆ 更新瞬间传送选取
  194.   #--------------------------------------------------------------------------
  195.   def update_teleport_selection
  196.     if Input.trigger?(Input::B)
  197.       Sound.play_cancel
  198.       hide_teleport_window
  199.     elsif Input.trigger?(Input::C)
  200.       determine_teleport
  201.     end
  202.   end
  203.   #--------------------------------------------------------------------------
  204.   # ☆ 确认瞬间传送
  205.   #--------------------------------------------------------------------------
  206.   def determine_teleport
  207.     place = @teleport_window.item
  208.     if place == nil
  209.       Sound.play_buzzer
  210.     else
  211.       se = EXSKL_TELEPORT_SE
  212.       RPG::SE.new(se[0], se[1], se[2]).play unless se.empty?
  213.       $game_party.last_item_id = @item.id
  214.       $game_party.consume_item(@item)
  215.       $game_player.reserve_transfer(place[2], place[3], place[4], place[5])
  216.       $scene = Scene_Map.new
  217.     end
  218.   end
  219. end

  220. class Scene_Skill
  221.   alias _exstlp_start start
  222.   alias _exstlp_terminate terminate
  223.   alias _exstlp_update update
  224.   alias _exstlp_determine_skill determine_skill
  225.   #--------------------------------------------------------------------------
  226.   # ○ 开始处理 (追加定义)
  227.   #--------------------------------------------------------------------------
  228.   def start
  229.     _exstlp_start
  230.     @teleport_window = Window_Teleport.new
  231.     hide_teleport_window
  232.   end
  233.   #--------------------------------------------------------------------------
  234.   # ○ 结束处理 (追加定义)
  235.   #--------------------------------------------------------------------------
  236.   def terminate
  237.     _exstlp_terminate
  238.     @teleport_window.dispose
  239.   end
  240.   #--------------------------------------------------------------------------
  241.   # ○ 更新画面 (追加定义)
  242.   #--------------------------------------------------------------------------
  243.   def update
  244.     teleport_active = @teleport_window.active
  245.     _exstlp_update
  246.     @teleport_window.update
  247.     if teleport_active
  248.       update_teleport_selection
  249.     end
  250.   end
  251.   #--------------------------------------------------------------------------
  252.   # ○ 确认技能 (追加定义)
  253.   #--------------------------------------------------------------------------
  254.   def determine_skill
  255.     if @skill.note.include?(EXSKL_TELEPORT_SIGNATURE)
  256.       show_teleport_window(@skill_window.index % 2 == 0)
  257.     else
  258.       _exstlp_determine_skill
  259.     end
  260.   end
  261.   #--------------------------------------------------------------------------
  262.   # ☆ 显示瞬间传送窗口
  263.   #     right : 靠右对齐标签(为false时则靠左)
  264.   #--------------------------------------------------------------------------
  265.   def show_teleport_window(right)
  266.     @skill_window.active = false
  267.     width_remain = 544 - @teleport_window.width
  268.     @teleport_window.x = right ? width_remain : 0
  269.     @teleport_window.visible = true
  270.     @teleport_window.active = true
  271.     @teleport_window.index = 0
  272.     if right
  273.       @viewport.rect.set(0, 0, width_remain, 416)
  274.       @viewport.ox = 0
  275.     else
  276.       @viewport.rect.set(@teleport_window.width, 0, width_remain, 416)
  277.       @viewport.ox = @teleport_window.width
  278.     end
  279.   end
  280.   #--------------------------------------------------------------------------
  281.   # ☆ 隐藏瞬间传送窗口
  282.   #--------------------------------------------------------------------------
  283.   def hide_teleport_window
  284.     @skill_window.active = true
  285.     @teleport_window.visible = false
  286.     @teleport_window.active = false
  287.     @viewport.rect.set(0, 0, 544, 416)
  288.     @viewport.ox = 0
  289.   end
  290.   #--------------------------------------------------------------------------
  291.   # ☆ 更新瞬间传送选取
  292.   #--------------------------------------------------------------------------
  293.   def update_teleport_selection
  294.     if Input.trigger?(Input::B)
  295.       Sound.play_cancel
  296.       hide_teleport_window
  297.     elsif Input.trigger?(Input::C)
  298.       determine_teleport
  299.     end
  300.   end
  301.   #--------------------------------------------------------------------------
  302.   # ☆ 确认瞬间传送
  303.   #--------------------------------------------------------------------------
  304.   def determine_teleport
  305.     place = @teleport_window.item
  306.     if place == nil
  307.       Sound.play_buzzer
  308.     else
  309.       se = EXSKL_TELEPORT_SE
  310.       RPG::SE.new(se[0], se[1], se[2]).play unless se.empty?
  311.       @actor.last_skill_id = @skill.id
  312.       @actor.mp -= @actor.calc_mp_cost(@skill)
  313.       $game_player.reserve_transfer(place[2], place[3], place[4], place[5])
  314.       $scene = Scene_Map.new
  315.     end
  316.   end
  317. end
复制代码
回复 支持 反对

使用道具 举报

Lv1.梦旅人

水土火风重逢处

梦石
0
星屑
234
在线时间
691 小时
注册时间
2010-7-17
帖子
3042
4
发表于 2010-8-8 15:15:09 | 只看该作者
一般来说,回城卷用事件也可以做出来的
独坐望城,望断天涯
回复 支持 反对

使用道具 举报

Lv2.观梦者

梦石
0
星屑
567
在线时间
465 小时
注册时间
2009-10-11
帖子
407
5
 楼主| 发表于 2010-8-8 15:35:29 | 只看该作者
他會顯示

NoMethodError occurred while running script.

endefined method '呼叫腳本:'for#<Game_InterpreterL0x2b31848>

我看不懂...
因为现实太残酷、所以我们都在打造虚幻的天堂。如果现实不再残酷,也是因为有这快乐的天堂。
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
24 小时
注册时间
2010-8-8
帖子
58
6
发表于 2010-8-8 16:34:23 | 只看该作者
本帖最后由 wzb2268179 于 2010-8-8 16:36 编辑

我用事件制作了回程卷,让你参考参考吧:
物品设置:
名称:【回程卷】               图标:【(自定义……)】
说明:【(自定义………………………………………………)】
效果范围:【无】      可能使用时:【菜单中(不能用平时)】
价格:【(自定义……)】消耗:【消耗】速度补正值:【0】
动画:【(自定义……)】公共事件:【(下面有介绍)】
===============(往下设置不变)================

公共事件设置:
首先创建一个公共事件,然后依次插入以下事件:
1.显示动画:角色,【闪光】    (可设可不设,只是设了美观一点)
2.场所移动:【025.圣恩城】(104,102)      (仅仅是一个例子- -)
3.增减物品:【回程卷】 - 1            

谢谢我吧!

点评

不谢不谢  发表于 2010-8-8 18:12
回复 支持 反对

使用道具 举报

Lv2.观梦者

梦石
0
星屑
567
在线时间
465 小时
注册时间
2009-10-11
帖子
407
7
 楼主| 发表于 2010-8-8 17:04:21 | 只看该作者
謝謝各位解答者...原來是我自己沒注意好...用RGSS或事件也都行了,
感恩!
因为现实太残酷、所以我们都在打造虚幻的天堂。如果现实不再残酷,也是因为有这快乐的天堂。
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-11-16 21:30

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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