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

Project1

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

[已经解决] 写了传送代码但是按下后无效

[复制链接]

Lv1.梦旅人

梦石
0
星屑
85
在线时间
8 小时
注册时间
2022-1-3
帖子
3
跳转到指定楼层
1
发表于 2023-2-22 08:52:04 | 显示全部楼层 回帖奖励 |倒序浏览 |阅读模式

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

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

x
游戏的内容是镜子里镜子外两个世界,使用道具后可以从表世界传送到里世界相同位置这样。
已经试过“使用第21个道具后自动执行传送”,“使用公共事件调用脚本”,和“判定拥有特殊道具后按下键盘上指定键自动执行传送”三个方法,均无效。
以下是第三种方法的代码。如果有人可以帮忙修改,有偿。搞定后会公开此脚本。
RUBY 代码复制
  1. module Input
  2.   Q = :X
  3. end
  4.  
  5. class Scene_Map
  6.   alias q_press_update update
  7.   def update
  8.     # Call the original update method
  9.     q_press_update
  10.     # Check if the Q key is pressed and if the player has the specific item
  11.     if Input.trigger?(Input::Q) && $game_party.item_number($data_items[21].id) > 0
  12.       # Get the current map ID, player coordinates and direction
  13.       map_id = $game_map.map_id
  14.       x = $game_player.x
  15.       y = $game_player.y
  16.       direction = $game_player.direction
  17.       # Calculate the target map ID based on the current map ID
  18.       if map_id < 40
  19.         target_map_id = map_id + 17
  20.       else
  21.         target_map_id = map_id - 17
  22.       end
  23.       # Play the teleport SE
  24.       $game_system.se_play($data_system.teleport_se)
  25.       # Reserve the transfer to the target map
  26.       $game_player.reserve_transfer(target_map_id, x, y, direction)
  27.       # Clear the scene variable to return to the map scene
  28.       $scene = nil
  29.     end
  30.   end
  31. end

Lv1.梦旅人

梦石
0
星屑
85
在线时间
8 小时
注册时间
2022-1-3
帖子
3
2
 楼主| 发表于 2023-2-22 09:01:17 | 显示全部楼层
稍微简单说明一下(发太急忘了)
代码大致分成这样:
先判断有没有特殊道具(我这里是道具栏的第21个道具)
然后获取当前地图的id,主角的朝向,x坐标和y坐标。
因为我的游戏里表世界和里世界是挨着的,比如1-10是表世界,10-20就是里世界,所以这个地方执行一下判断,判断当前地图id是不是<11(代码里是<40)
如果小于11,则按下q后+10跳转到里世界相同位置,不是就-10跳转到表世界相同位置。
最后还有一个传送音效,瞎写的。
我是新人,如果对各位大佬的话没有理解的话还麻烦多包容,不好意思啊……
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
85
在线时间
8 小时
注册时间
2022-1-3
帖子
3
3
 楼主| 发表于 2023-2-22 12:28:38 | 显示全部楼层
灯笼菜刀王 发表于 2023-2-22 10:12
暂且不管 $game_player.reserve_transfer(target_map_id, x, y, direction) 这个函数有没有定义以及有没有 ...

还是我功力不足了,呜呜呜谢谢大佬指点,感觉豁然开朗了。
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-5-15 13:12

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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