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

Project1

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

[已经解决] 关于交通工具的开关问题

[复制链接]

Lv1.梦旅人

梦石
0
星屑
135
在线时间
133 小时
注册时间
2009-10-7
帖子
18
跳转到指定楼层
1
发表于 2017-3-15 00:10:24 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

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

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

x
1.如何在乘船时开关1打开,下船时开关1关闭?
2.限制船只随意停靠,用搜索找到了VA版本的,但是我一个脚本盲,依样画葫芦折腾了许久还是弄不成,所以只能寻求高人指点了!

Lv1.梦旅人

梦石
0
星屑
195
在线时间
50 小时
注册时间
2015-9-17
帖子
22
2
发表于 2017-3-15 09:59:54 | 只看该作者
本帖最后由 图灵 于 2017-3-15 10:14 编辑

船只任意停靠是什么概念
开关的话
找到Game_Vehicle中第105行下面改成这样
RUBY 代码复制
  1. def get_on
  2.     $game_switches[1] = true
  3.     @driving = true
  4.     @walk_anime = true
  5.     @step_anime = true
  6.     if @type == 2               # 飞船的场合
  7.       @priority_type = 2        # 改变优先度为「一般角色之上」
  8.     end
  9.     @bgm.play                   # 开始 BGM
  10.   end

第117行改成这样
RUBY 代码复制
  1. def get_off
  2.     $game_switches[1] = false
  3.     @driving = false
  4.     @walk_anime = false
  5.     @step_anime = false
  6.     @direction = 4
  7.   end

评分

参与人数 1星屑 +50 收起 理由
怪蜀黍 + 50 认可答案

查看全部评分

回复 支持 1 反对 0

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
135
在线时间
133 小时
注册时间
2009-10-7
帖子
18
3
 楼主| 发表于 2017-3-15 21:10:06 | 只看该作者
图灵 发表于 2017-3-15 09:59
船只任意停靠是什么概念
开关的话
找到Game_Vehicle中第105行下面改成这样

非常感谢,但是有个问题,如何刷新一下地图,开关是随着上下船开启和关闭了,但是NPC并没有在地图上出现,后来我发现按一下ESC调出菜单再关闭后,NPC才出现,这个问题怎么解决呢?任意停靠就是当坐上船出海的时候,只要有陆地就能直接上岸。能不能限制这样的情况,让船只能到指定位置触发事件时才能上岸。
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
195
在线时间
50 小时
注册时间
2015-9-17
帖子
22
4
发表于 2017-3-16 09:55:55 | 只看该作者
本帖最后由 图灵 于 2017-3-16 12:03 编辑
salamantala 发表于 2017-3-15 21:10
非常感谢,但是有个问题,如何刷新一下地图,开关是随着上下船开启和关闭了,但是NPC并没有在地图上出现 ...


在那两段里面加上
  1. $game_map.need_refresh = true
复制代码


下面脚本插入main以上
RUBY 代码复制
  1. #==============================================================================
  2. # ■ 码头系统
  3. #------------------------------------------------------------------------------
  4. #  By:图灵
  5. #   使用方法:将事件命名为码头即可。
  6. #   码头影响范围默认为2 在下方 WHARTDIS 更改
  7. #==============================================================================
  8. #==============================================================================
  9. # ■ Vector2
  10. #------------------------------------------------------------------------------
  11. #  处理二维向量的类。
  12. #==============================================================================
  13. class Vector2
  14.   #--------------------------------------------------------------------------
  15.   # ● 定义实例变量
  16.   #--------------------------------------------------------------------------
  17.   attr_accessor :x
  18.   attr_accessor :y
  19.   #--------------------------------------------------------------------------
  20.   # ● 初始化对像
  21.   #--------------------------------------------------------------------------
  22.   def initialize(x = 0, y = 0)
  23.     @x = x
  24.     @y = y
  25.   end
  26.   #--------------------------------------------------------------------------
  27.   # ● 计算距离
  28.   #--------------------------------------------------------------------------
  29.   def self.dis(x,y)
  30.     return Math.hypot(x,y)
  31.   end
  32. end
  33. #==============================================================================
  34. # ■ Game_Map
  35. #------------------------------------------------------------------------------
  36. #  处理地图的类。包含卷动以及可以通行的判断功能。本类的实例请参考 $game_map 。
  37. #==============================================================================
  38.  
  39. class Game_Map
  40.   #--------------------------------------------------------------------------
  41.   # ● 定义实例变量
  42.   #--------------------------------------------------------------------------
  43.   attr_reader   :wharts
  44.   alias old_setup setup
  45.   def setup(map_id)
  46.     old_setup(map_id)
  47.     set_whart
  48.   end
  49.   #--------------------------------------------------------------------------
  50.   # ● 设置码头
  51.   #--------------------------------------------------------------------------
  52.   def set_whart
  53.     @wharts = []
  54.     @map.events.each_value do |event|
  55.       if event.name == "码头"
  56.         port = Vector2.new(event.x,event.y)
  57.         @wharts.push(port)
  58.       end
  59.     end
  60.   end
  61. end
  62.  
  63. #==============================================================================
  64. # ■ Game_Player
  65. #------------------------------------------------------------------------------
  66. #  处理主角的类。事件启动的判定、以及地图的滚动等功能。
  67. # 本类的实例请参考 $game_player。
  68. #==============================================================================
  69.  
  70. class Game_Player < Game_Character
  71.   #--------------------------------------------------------------------------
  72.   # ● 常量
  73.   # WHARTDIS = 码头影响范围
  74.   #--------------------------------------------------------------------------
  75.   WHARTDIS = 2
  76.   #--------------------------------------------------------------------------
  77.   # ● 上下交通工具
  78.   #--------------------------------------------------------------------------
  79.   def get_on_off_vehicle
  80.     return false unless movable?
  81.     can = false
  82.     $game_map.wharts.each do |i|
  83.       can = true if Vector2.dis(i.x-x,i.y-y)<WHARTDIS
  84.     end
  85.     if can
  86.       if in_vehicle?
  87.         return get_off_vehicle
  88.       else
  89.         return get_on_vehicle
  90.       end
  91.     end
  92.   end
  93. end

评分

参与人数 1星屑 +50 收起 理由
怪蜀黍 + 50 认可答案

查看全部评分

回复 支持 1 反对 0

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
135
在线时间
133 小时
注册时间
2009-10-7
帖子
18
5
 楼主| 发表于 2017-3-16 12:51:07 | 只看该作者
图灵 发表于 2017-3-16 09:55
在那两段里面加上

激动得让我吼了起来“PERFECT!”
实在太感谢了,完美解决了我正面临的问题,瞎折腾一个月不如大师指点一句啊~
感谢感谢~

点评

不用谢 现在用VX和XP的人越来越少了 所以能帮一个是一个  发表于 2017-3-16 12:58
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-11-22 06:51

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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