赞 | 1 |
VIP | 220 |
好人卡 | 25 |
积分 | 7 |
经验 | 51477 |
最后登录 | 2013-1-12 |
在线时间 | 943 小时 |
Lv2.观梦者 花开堪折直须折
- 梦石
- 0
- 星屑
- 676
- 在线时间
- 943 小时
- 注册时间
- 2010-7-17
- 帖子
- 4963
|
加入我们,或者,欢迎回来。
您需要 登录 才可以下载或查看,没有帐号?注册会员
x
苦研脚本2天...还是比不上各位大神,如果发现BUG麻烦在下面举报。- #============================================================================
- # ○ 简易传送物品脚本
- # ——By.冰舞蝶恋
- #----------------------------------------------------------------------------
- module Flyitem
- #--设定部分------------------------------------------------------------------
- # 用来传送到各地图的物品id,上限可自行添加
- FLYITEM = [21, 22, 23]
- #----------------------------------------------------------------------------
- # 物品对应的可传送地图,如范例中:[[1,2]……]就代表21号物品可传送到1号和2号
- # 地图;再如,22号物品可传送到2号地图;23号物品可传送到1,3,4号地图,可自己
- # 设定,以此类推。
- MAPID = [[1, 2],
- [2],
- [1, 3, 4]]
- #----------------------------------------------------------------------------
- # 被传送地图的X,Y坐标,从1号地图开始,如范例中[1,1]就是如果传送到1号地图,
- # 则被传送的坐标是1,1(地图坐标从0记起);[2,4],代表着如果被传送到2号地图
- # ,则是从x=2,y=4的地方出现,以此类推。
- MAPXY = [[0, 0],
- [4, 6],
- [5, 5],
- [1, 4]]
- #--设定结束,祝您使用愉快----------------------------------------------------
- end
- # 特别感谢:八云紫 前辈!
- #============================================================================
- $flyitem = []
- $flyid = []
- class Scene_Item < Scene_Base
- #--------------------------------------------------------------------------
- # ● 非同伴目标使用物品
- #--------------------------------------------------------------------------
- def use_item_nontarget
- Sound.play_use_item
- $game_party.consume_item(@item)
- @item_window.draw_item(@item_window.index)
- @target_window.refresh
- # 这里是八云紫前辈的判断方法..-------------------------------------------
- if Flyitem::FLYITEM.include?(@item.id)
- fly = Flyitem::FLYITEM.index(@item.id)
- for i in 0..Flyitem::MAPID[fly].size-1
- a = load_data("Data/MapInfos.rvdata")
- $flyitem[i] = a[Flyitem::MAPID[fly][i]].name
- $flyid[i] = Flyitem::MAPID[fly][i]
- if $flyitem.size == Flyitem::MAPID[fly].size
- @fly_cmd = Window_Command.new(240, $flyitem)
- @fly_cmd.x = (544 - @fly_cmd.width) / 2
- @fly_cmd.y = (416 - @fly_cmd.height) / 2
- @fly_cmd.active = @fly_cmd.visible = true
- end
- end
- end
- # 另一种算法(骄傲的:咱自己的思路~~
- #~ for fly in 0..Flyitem::FLYITEM.size-1
- #~ if @item.id == Flyitem::FLYITEM[fly]
- #~ for i in 0..Flyitem::MAPID[fly].size-1
- #~ a = load_data("Data/MapInfos.rvdata")
- #~ $flyitem[i] = a[Flyitem::MAPID[fly][i]].name
- #~ $flyid[i] = Flyitem::MAPID[fly][i]
- #~ if $flyitem.size == Flyitem::MAPID[fly].size
- #~ @fly_cmd = Window_Command.new(240, $flyitem)
- #~ @fly_cmd.x = (544 - @fly_cmd.width) / 2
- #~ @fly_cmd.y = (416 - @fly_cmd.height) / 2
- #~ @fly_cmd.active = @fly_cmd.visible = true
- #~ end
- #~ end
- #~ end
- #~ end
- #------------------------------------------------------------------------
- if $game_party.all_dead?
- $scene = Scene_Gameover.new
- elsif @item.common_event_id > 0
- $game_temp.common_event_id = @item.common_event_id
- $scene = Scene_Map.new
- end
- end
- #--------------------------------------------------------------------------
- # ● 更新画面
- #--------------------------------------------------------------------------
- def update
- super
- update_menu_background
- if @fly_cmd != nil
- if @fly_cmd.active
- @fly_cmd.update
- return cmd
- end
- end
- @help_window.update
- @item_window.update
- @target_window.update
- if @item_window.active
- update_item_selection
- elsif @target_window.active
- update_target_selection
- end
- end
- #--------------------------------------------------------------------------
- # ● 按键处理
- #--------------------------------------------------------------------------
- def cmd
- if Input.trigger?(Input::C)
- id = $flyid[@fly_cmd.index]
- $scene = Scene_Map.new
- @fly_cmd = nil
- xy = Flyitem::MAPXY
- xy2 = xy[id-1]
- $game_map.setup(id)
- $game_player.moveto(xy2[0], xy2[1])
- elsif Input.trigger?(Input::B)
- $scene = Scene_Item.new
- @fly_cmd = nil
- $game_party.gain_item($data_items[@item.id],1)
- end
- end
- end
复制代码 如果脚本设定不易理解,那么就下载范例吧。
上图:
附件:
地图传送道具.rar
(259.91 KB, 下载次数: 3779)
|
评分
-
查看全部评分
|