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

Project1

 找回密码
 注册会员
搜索
查看: 10177|回复: 19

[RMVX发布] 废渣型脚本产物Ⅸ-地图传送道具(简版)

[复制链接]

Lv2.观梦者

花开堪折直须折

梦石
0
星屑
616
在线时间
943 小时
注册时间
2010-7-17
帖子
4963

贵宾

发表于 2011-5-27 13:07:27 | 显示全部楼层 |阅读模式

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

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

x
苦研脚本2天...还是比不上各位大神,如果发现BUG麻烦在下面举报。
  1. #============================================================================
  2. # ○ 简易传送物品脚本
  3. #         ——By.冰舞蝶恋
  4. #----------------------------------------------------------------------------
  5. module Flyitem
  6. #--设定部分------------------------------------------------------------------
  7. # 用来传送到各地图的物品id,上限可自行添加
  8.   FLYITEM = [21, 22, 23]
  9. #----------------------------------------------------------------------------
  10. # 物品对应的可传送地图,如范例中:[[1,2]……]就代表21号物品可传送到1号和2号
  11. # 地图;再如,22号物品可传送到2号地图;23号物品可传送到1,3,4号地图,可自己
  12. # 设定,以此类推。
  13.   MAPID = [[1, 2],
  14.            [2],
  15.            [1, 3, 4]]
  16. #----------------------------------------------------------------------------
  17. # 被传送地图的X,Y坐标,从1号地图开始,如范例中[1,1]就是如果传送到1号地图,
  18. # 则被传送的坐标是1,1(地图坐标从0记起);[2,4],代表着如果被传送到2号地图
  19. # ,则是从x=2,y=4的地方出现,以此类推。
  20.   MAPXY = [[0, 0],
  21.            [4, 6],
  22.            [5, 5],
  23.            [1, 4]]
  24. #--设定结束,祝您使用愉快----------------------------------------------------
  25. end
  26. # 特别感谢:八云紫 前辈!
  27. #============================================================================
  28. $flyitem = []
  29. $flyid = []
  30. class Scene_Item < Scene_Base
  31.   #--------------------------------------------------------------------------
  32.   # ● 非同伴目标使用物品
  33.   #--------------------------------------------------------------------------
  34.   def use_item_nontarget
  35.     Sound.play_use_item
  36.     $game_party.consume_item(@item)
  37.     @item_window.draw_item(@item_window.index)
  38.     @target_window.refresh
  39.     # 这里是八云紫前辈的判断方法..-------------------------------------------
  40.     if Flyitem::FLYITEM.include?(@item.id)
  41.       fly = Flyitem::FLYITEM.index(@item.id)
  42.       for i in 0..Flyitem::MAPID[fly].size-1
  43.         a = load_data("Data/MapInfos.rvdata")
  44.         $flyitem[i] = a[Flyitem::MAPID[fly][i]].name
  45.         $flyid[i] = Flyitem::MAPID[fly][i]
  46.         if $flyitem.size == Flyitem::MAPID[fly].size
  47.           @fly_cmd = Window_Command.new(240, $flyitem)
  48.           @fly_cmd.x = (544 - @fly_cmd.width) / 2
  49.           @fly_cmd.y = (416 - @fly_cmd.height) / 2
  50.           @fly_cmd.active = @fly_cmd.visible = true
  51.         end
  52.       end
  53.     end
  54.     # 另一种算法(骄傲的:咱自己的思路~~
  55. #~     for fly in 0..Flyitem::FLYITEM.size-1
  56. #~       if @item.id == Flyitem::FLYITEM[fly]
  57. #~         for i in 0..Flyitem::MAPID[fly].size-1
  58. #~           a = load_data("Data/MapInfos.rvdata")
  59. #~           $flyitem[i] = a[Flyitem::MAPID[fly][i]].name
  60. #~           $flyid[i] = Flyitem::MAPID[fly][i]
  61. #~           if $flyitem.size == Flyitem::MAPID[fly].size
  62. #~             @fly_cmd = Window_Command.new(240, $flyitem)
  63. #~             @fly_cmd.x = (544 - @fly_cmd.width) / 2
  64. #~             @fly_cmd.y = (416 - @fly_cmd.height) / 2
  65. #~             @fly_cmd.active = @fly_cmd.visible = true
  66. #~           end
  67. #~         end
  68. #~       end
  69. #~     end
  70.     #------------------------------------------------------------------------
  71.     if $game_party.all_dead?
  72.       $scene = Scene_Gameover.new
  73.     elsif @item.common_event_id > 0
  74.       $game_temp.common_event_id = @item.common_event_id
  75.       $scene = Scene_Map.new
  76.     end
  77.   end
  78.   #--------------------------------------------------------------------------
  79.   # ● 更新画面
  80.   #--------------------------------------------------------------------------
  81.   def update
  82.     super
  83.     update_menu_background
  84.     if @fly_cmd != nil
  85.       if @fly_cmd.active
  86.         @fly_cmd.update
  87.         return cmd
  88.       end
  89.     end
  90.     @help_window.update
  91.     @item_window.update
  92.     @target_window.update
  93.     if @item_window.active
  94.       update_item_selection
  95.     elsif @target_window.active
  96.       update_target_selection
  97.     end
  98.   end
  99.   #--------------------------------------------------------------------------
  100.   # ● 按键处理
  101.   #--------------------------------------------------------------------------
  102.   def cmd
  103.     if Input.trigger?(Input::C)
  104.       id = $flyid[@fly_cmd.index]
  105.       $scene = Scene_Map.new
  106.       @fly_cmd = nil
  107.       xy = Flyitem::MAPXY
  108.       xy2 = xy[id-1]
  109.       $game_map.setup(id)
  110.       $game_player.moveto(xy2[0], xy2[1])
  111.     elsif Input.trigger?(Input::B)
  112.       $scene = Scene_Item.new
  113.       @fly_cmd = nil
  114.       $game_party.gain_item($data_items[@item.id],1)
  115.     end
  116.   end
  117. end
复制代码
如果脚本设定不易理解,那么就下载范例吧。
上图:
QQ截图未命名.png
QQ截图未命名2.png

附件:
地图传送道具.rar (259.91 KB, 下载次数: 3779)

评分

参与人数 4星屑 +466 收起 理由
天翔风舞 + 14 很很实用的东西
夕阳武士 + 406 再出点数组之外的东西可以发进步奖(PIA.
wangswz + 40 广告/SPAM 。。。。举报!
纳尔德 + 6 我很赞同

查看全部评分

大家好,我叫节操,有一天,我被吃了。
http://forever-dream.5d6d.com
永恒の梦制作组论坛

129993099
永恒の梦制作组QQ群

Lv2.观梦者

虚構歪曲

梦石
0
星屑
309
在线时间
1194 小时
注册时间
2010-12-18
帖子
3928

贵宾

发表于 2011-5-27 20:03:59 | 显示全部楼层
全局变量可否考虑换下?
回复 支持 反对

使用道具 举报

Lv2.观梦者

花开堪折直须折

梦石
0
星屑
616
在线时间
943 小时
注册时间
2010-7-17
帖子
4963

贵宾

 楼主| 发表于 2011-5-27 20:35:02 | 显示全部楼层
忧雪の伤 发表于 2011-5-27 20:03
全局变量可否考虑换下?

呃,局部也可以啊,懒得改了呢

点评

就可整合度这点来说少用全局为妙。个人更喜欢module或者放在$game_temp中。  发表于 2011-5-27 20:42
大家好,我叫节操,有一天,我被吃了。
http://forever-dream.5d6d.com
永恒の梦制作组论坛

129993099
永恒の梦制作组QQ群
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
416 小时
注册时间
2006-10-21
帖子
1245
发表于 2011-5-27 21:03:30 | 显示全部楼层
本帖最后由 wangswz 于 2011-5-27 21:05 编辑

地图前显示类似 草原 城镇 的图标
ID和地图ID XY 写一起编辑起来更直观 扩充起来也不会乱
有和队伍人员地图跟随脚本兼容的意向吗
加个开关控制 或者设置个地图ID数组 禁止某些地图传送
物品的消耗问题

以上
回复 支持 反对

使用道具 举报

Lv2.观梦者

花开堪折直须折

梦石
0
星屑
616
在线时间
943 小时
注册时间
2010-7-17
帖子
4963

贵宾

 楼主| 发表于 2011-5-27 21:49:46 | 显示全部楼层
wangswz 发表于 2011-5-27 21:03
地图前显示类似 草原 城镇 的图标
ID和地图ID XY 写一起编辑起来更直观 扩充起来也不会乱
有和队伍人员地 ...

怎么了?消耗?是说返回之后才重新获取,还是会正常消耗的说啊!
话说好久不见前辈啦

点评

都行吧 我只是举一些扩张方案。 最近工作加班阿 零点打车男。。  发表于 2011-5-28 17:03
大家好,我叫节操,有一天,我被吃了。
http://forever-dream.5d6d.com
永恒の梦制作组论坛

129993099
永恒の梦制作组QQ群
回复 支持 反对

使用道具 举报

Lv1.梦旅人

战国美少年森兰丸

梦石
0
星屑
204
在线时间
852 小时
注册时间
2008-7-20
帖子
3705
发表于 2011-5-28 12:25:43 | 显示全部楼层
这么喜欢数组?

点评

嗯哈哈~~!  发表于 2011-5-28 13:53
数组是个好东西,好东西,好东西。  发表于 2011-5-28 12:57
回复 支持 反对

使用道具 举报

Lv2.观梦者

虚構歪曲

梦石
0
星屑
309
在线时间
1194 小时
注册时间
2010-12-18
帖子
3928

贵宾

发表于 2011-5-28 12:59:22 | 显示全部楼层
可以考虑把设定放到物品的备注上?
在脚本设置未免有些繁琐,且不适合新手。
回复 支持 反对

使用道具 举报

Lv2.观梦者

花开堪折直须折

梦石
0
星屑
616
在线时间
943 小时
注册时间
2010-7-17
帖子
4963

贵宾

 楼主| 发表于 2011-5-28 13:53:47 | 显示全部楼层
忧雪の伤 发表于 2011-5-28 12:59
可以考虑把设定放到物品的备注上?
在脚本设置未免有些繁琐,且不适合新手。 ...

感谢提议,顺便问下,备注是.note吗?

点评

'RPG::BaseItem#note‘无误。  发表于 2011-5-28 14:07
恩……vx不是很清楚……我查下F1。  发表于 2011-5-28 14:04
大家好,我叫节操,有一天,我被吃了。
http://forever-dream.5d6d.com
永恒の梦制作组论坛

129993099
永恒の梦制作组QQ群
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
55
在线时间
104 小时
注册时间
2010-12-12
帖子
102
发表于 2011-7-5 21:07:15 | 显示全部楼层
汗堡~我都是用事件的

点评

我的不多一个炉石开启然后把里面买了的地图传送次数  发表于 2011-7-6 12:53
我以前也考虑过用事件做这类东西……无奈事件多了很卡,剧情事件还嫌多呢……  发表于 2011-7-5 21:40
回复 支持 反对

使用道具 举报

Lv1.梦旅人

雨狸

梦石
0
星屑
48
在线时间
625 小时
注册时间
2011-3-19
帖子
1296
发表于 2011-7-6 17:34:41 | 显示全部楼层
以上,脚本盲+事件党路过。

这个用纯事件也行的吧?
明夕,何夕
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-4-19 09:29

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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