主页
论坛
新帖
最新消息
新帖
最新动态
制作互助群
登录
注册
Toggle sidebar
Toggle sidebar
菜单
安装应用
安装
回复主题
【进站必读】宝可饭堂社区全局规定v1.10
关于坚决维护同人创作社群秩序与共识的公告
论坛
独立开发
进阶教程
【原创】无限之笛实现飞翔
禁用JavaScript。为了获得更好的体验,请在运行之前启用浏览器中的JavaScript。
您正在使用一款已经过时的浏览器!部分功能不能正常使用。
请尝试升级或使用
其他浏览器
。
信息
<blockquote data-quote="ES泽洛" data-source="post: 169" data-attributes="member: 2"><p><span style="color: rgb(255, 0, 0)"><span style="font-size: 18px">本教程为原创,使用或转载请注明出自宝可饭堂社区<u><a href="https://bbs.pokefans.xyz/threads/51/" target="_blank">https://bbs.pokefans.xyz/threads/51/</a></u></span></span></p><p><span style="color: rgb(97, 189, 109)"><span style="font-size: 18px">仅在18.1和19.1测试过,并且代码不同,请按需查看。20.1的代码请看楼下。</span></span></p><p><span style="font-size: 18px">在教程开始之前先看效果示例,虽然有徽章检测,但仍建议给道具的NPC放在给飞翔秘传机的NPC一起或者附近。</span></p><p>[ATTACH=full]182[/ATTACH][ATTACH=full]183[/ATTACH][ATTACH=full]184[/ATTACH][ATTACH=full]185[/ATTACH]</p><p><span style="font-size: 18px">接着来看教程,首先准备好无限之笛道具的数据写在PBS/items.txt中,XXXX为你的道具内部编号。</span></p><p>[CODE]XXXX,EONFLUTE,无限之笛,无限之笛,8,0,无论身在何处,都能召唤拉帝亚斯或 拉帝欧斯飞翔的笛子。,2,0,6,[/CODE]</p><p><span style="font-size: 18px"><strong>对于ESS18</strong>,将图标放在Graphics/Icons文件夹,并命名为itemXXXX.png,XXXX为你的道具内部编号。</span></p><p><strong><span style="font-size: 18px">对于ESS19</span></strong><span style="font-size: 18px">,将图标放在Graphics/Items文件夹,并命名为EONFLUTE.png。</span></p><p><span style="font-size: 18px">音效文件放在Audio/ME文件夹下</span></p><p><span style="font-size: 18px">(以上文件见附件)</span></p><p><span style="font-size: 18px"><span style="font-size: 18px">最后是实现代码</span></span></p><p>[SPOILER="对于ESS18"]</p><p><span style="font-size: 18px">在PItem_ItemEffects的末尾添加如下代码:</span></p><p>[CODE=ruby]</p><p>#在背包中使用</p><p>ItemHandlers::UseFromBag.add(:EONFLUTE,proc{|item|</p><p> next false if !pbCheckHiddenMoveBadge(BADGE_FOR_FLY,true)</p><p> pbMessage(_INTL("\\me[无限之笛]{1}吹响了无限之笛。\\wtnp[30]",$Trainer.name))</p><p> if !pbGetMetadata($game_map.map_id,MetadataOutdoor)</p><p> pbMessage(_INTL("似乎没有宝可梦听到笛声。"))</p><p> next 0</p><p> end</p><p> pbMessage(_INTL("宝可梦听到笛声了!"))</p><p> scene = PokemonRegionMap_Scene.new(-1,false)</p><p> screen = PokemonRegionMapScreen.new(scene)</p><p> ret = screen.pbStartFlyScreen</p><p> next 0 if !ret</p><p> $PokemonTemp.flydata=ret</p><p> pkmn = pbGenPkmn(:LATIOS,50) #拉帝欧斯</p><p># pkmn = pbGenPkmn(:LATIAS,50) #拉帝亚斯</p><p> if !pbHiddenMoveAnimation(pkmn)</p><p> pbMessage(_INTL("{1}召唤的宝可梦使用了飞翔!",$Trainer.name))</p><p> end</p><p> pbFadeOutIn {</p><p> $game_temp.player_new_map_id = $PokemonTemp.flydata[0]</p><p> $game_temp.player_new_x = $PokemonTemp.flydata[1]</p><p> $game_temp.player_new_y = $PokemonTemp.flydata[2]</p><p> $game_temp.player_new_direction = 2</p><p> $PokemonTemp.flydata = nil</p><p> $scene.transfer_player</p><p> $game_map.autoplay</p><p> $game_map.refresh</p><p> }</p><p> pbEraseEscapePoint</p><p> next 0</p><p>})</p><p>#在野外通过快捷键使用</p><p>ItemHandlers::UseInField.add(:EONFLUTE,proc{|item|</p><p> next false if !pbCheckHiddenMoveBadge(BADGE_FOR_FLY,true)</p><p> pbMessage(_INTL("\\me[无限之笛]{1}吹响了无限之笛。\\wtnp[30]",$Trainer.name))</p><p> if !pbGetMetadata($game_map.map_id,MetadataOutdoor)</p><p> pbMessage(_INTL("似乎没有宝可梦听到笛声。"))</p><p> next false</p><p> end</p><p> pbMessage(_INTL("宝可梦听到笛声了!"))</p><p> scene = PokemonRegionMap_Scene.new(-1,false)</p><p> screen = PokemonRegionMapScreen.new(scene)</p><p> ret = screen.pbStartFlyScreen</p><p> next false if !ret</p><p> $PokemonTemp.flydata=ret</p><p> pkmn = pbGenPkmn(:LATIOS,50) #拉帝欧斯</p><p># pkmn = pbGenPkmn(:LATIAS,50) #拉帝亚斯</p><p> if !pbHiddenMoveAnimation(pkmn)</p><p> pbMessage(_INTL("{1}召唤的宝可梦使用了飞翔!",$Trainer.name))</p><p> end</p><p> pbFadeOutIn {</p><p> $game_temp.player_new_map_id = $PokemonTemp.flydata[0]</p><p> $game_temp.player_new_x = $PokemonTemp.flydata[1]</p><p> $game_temp.player_new_y = $PokemonTemp.flydata[2]</p><p> $game_temp.player_new_direction = 2</p><p> $PokemonTemp.flydata = nil</p><p> $scene.transfer_player</p><p> $game_map.autoplay</p><p> $game_map.refresh</p><p> }</p><p> pbEraseEscapePoint</p><p> next true</p><p>})</p><p>[/CODE]</p><p>[/SPOILER]</p><p>[SPOILER="对于ESS19"]</p><p><span style="font-size: 18px">在Item_Effects的末尾添加如下代码:</span></p><p>[CODE=ruby]</p><p>#在背包中使用</p><p>ItemHandlers::UseFromBag.add(:EONFLUTE,proc{|item|</p><p> next false if !pbCheckHiddenMoveBadge(Settings::BADGE_FOR_FLY,true)</p><p> pbMessage(_INTL("\\me[无限之笛]{1}吹响了无限之笛。\\wtnp[30]",$Trainer.name))</p><p> if !GameData::MapMetadata.get($game_map.map_id).outdoor_map</p><p> pbMessage(_INTL("似乎没有宝可梦听到笛声。"))</p><p> next 0</p><p> end</p><p> pbMessage(_INTL("宝可梦听到笛声了!"))</p><p> scene = PokemonRegionMap_Scene.new(-1,false)</p><p> screen = PokemonRegionMapScreen.new(scene)</p><p> ret = screen.pbStartFlyScreen</p><p> next 0 if !ret</p><p> $PokemonTemp.flydata=ret</p><p> pkmn = pbGenPkmn(:LATIOS,50) #拉帝欧斯</p><p># pkmn = pbGenPkmn(:LATIAS,50) #拉帝亚斯</p><p> if !pbHiddenMoveAnimation(pkmn)</p><p> pbMessage(_INTL("{1}召唤的宝可梦使用了飞翔!",$Trainer.name))</p><p> end</p><p> pbFadeOutIn {</p><p> $game_temp.player_new_map_id = $PokemonTemp.flydata[0]</p><p> $game_temp.player_new_x = $PokemonTemp.flydata[1]</p><p> $game_temp.player_new_y = $PokemonTemp.flydata[2]</p><p> $game_temp.player_new_direction = 2</p><p> $PokemonTemp.flydata = nil</p><p> $scene.transfer_player</p><p> $game_map.autoplay</p><p> $game_map.refresh</p><p> }</p><p> pbEraseEscapePoint</p><p> next 0</p><p>})</p><p>#在野外通过快捷键使用</p><p>ItemHandlers::UseInField.add(:EONFLUTE,proc{|item|</p><p> next false if !pbCheckHiddenMoveBadge(Settings::BADGE_FOR_FLY,true)</p><p> pbMessage(_INTL("\\me[无限之笛]{1}吹响了无限之笛。\\wtnp[30]",$Trainer.name))</p><p> if !GameData::MapMetadata.get($game_map.map_id).outdoor_map</p><p> pbMessage(_INTL("似乎没有宝可梦听到笛声。"))</p><p> next false</p><p> end</p><p> pbMessage(_INTL("宝可梦听到笛声了!"))</p><p> scene = PokemonRegionMap_Scene.new(-1,false)</p><p> screen = PokemonRegionMapScreen.new(scene)</p><p> ret = screen.pbStartFlyScreen</p><p> next false if !ret</p><p> $PokemonTemp.flydata=ret</p><p> pkmn = pbGenPkmn(:LATIOS,50) #拉帝欧斯</p><p># pkmn = pbGenPkmn(:LATIAS,50) #拉帝亚斯</p><p> if !pbHiddenMoveAnimation(pkmn)</p><p> pbMessage(_INTL("{1}召唤的宝可梦使用了飞翔!",$Trainer.name))</p><p> end</p><p> pbFadeOutIn {</p><p> $game_temp.player_new_map_id = $PokemonTemp.flydata[0]</p><p> $game_temp.player_new_x = $PokemonTemp.flydata[1]</p><p> $game_temp.player_new_y = $PokemonTemp.flydata[2]</p><p> $game_temp.player_new_direction = 2</p><p> $PokemonTemp.flydata = nil</p><p> $scene.transfer_player</p><p> $game_map.autoplay</p><p> $game_map.refresh</p><p> }</p><p> pbEraseEscapePoint</p><p> next true</p><p>})</p><p>[/CODE]</p><p>[/SPOILER]</p><p><span style="font-size: 18px">教程结束。</span></p></blockquote><p></p>
[QUOTE="ES泽洛, post: 169, member: 2"] [COLOR=rgb(255, 0, 0)][SIZE=5]本教程为原创,使用或转载请注明出自宝可饭堂社区[U][URL]https://bbs.pokefans.xyz/threads/51/[/URL][/U][/SIZE][/COLOR] [COLOR=rgb(97, 189, 109)][SIZE=5]仅在18.1和19.1测试过,并且代码不同,请按需查看。20.1的代码请看楼下。[/SIZE][/COLOR] [SIZE=5]在教程开始之前先看效果示例,虽然有徽章检测,但仍建议给道具的NPC放在给飞翔秘传机的NPC一起或者附近。[/SIZE] [ATTACH type="full" width="50%" height="50%" alt="QQ图片20220829124159.png"]182[/ATTACH][ATTACH type="full" width="50%" height="50%" alt="QQ图片20220829124205.png"]183[/ATTACH][ATTACH type="full" width="50%" height="50%" alt="QQ图片20220829124209.png"]184[/ATTACH][ATTACH type="full" width="50%" height="50%" alt="QQ图片20220829124212.png"]185[/ATTACH] [SIZE=5]接着来看教程,首先准备好无限之笛道具的数据写在PBS/items.txt中,XXXX为你的道具内部编号。[/SIZE] [CODE]XXXX,EONFLUTE,无限之笛,无限之笛,8,0,无论身在何处,都能召唤拉帝亚斯或 拉帝欧斯飞翔的笛子。,2,0,6,[/CODE] [SIZE=5][B]对于ESS18[/B],将图标放在Graphics/Icons文件夹,并命名为itemXXXX.png,XXXX为你的道具内部编号。[/SIZE] [B][SIZE=5]对于ESS19[/SIZE][/B][SIZE=5],将图标放在Graphics/Items文件夹,并命名为EONFLUTE.png。 音效文件放在Audio/ME文件夹下 (以上文件见附件) [SIZE=5]最后是实现代码[/SIZE][/SIZE] [SPOILER="对于ESS18"] [SIZE=5]在PItem_ItemEffects的末尾添加如下代码:[/SIZE] [CODE=ruby] #在背包中使用 ItemHandlers::UseFromBag.add(:EONFLUTE,proc{|item| next false if !pbCheckHiddenMoveBadge(BADGE_FOR_FLY,true) pbMessage(_INTL("\\me[无限之笛]{1}吹响了无限之笛。\\wtnp[30]",$Trainer.name)) if !pbGetMetadata($game_map.map_id,MetadataOutdoor) pbMessage(_INTL("似乎没有宝可梦听到笛声。")) next 0 end pbMessage(_INTL("宝可梦听到笛声了!")) scene = PokemonRegionMap_Scene.new(-1,false) screen = PokemonRegionMapScreen.new(scene) ret = screen.pbStartFlyScreen next 0 if !ret $PokemonTemp.flydata=ret pkmn = pbGenPkmn(:LATIOS,50) #拉帝欧斯 # pkmn = pbGenPkmn(:LATIAS,50) #拉帝亚斯 if !pbHiddenMoveAnimation(pkmn) pbMessage(_INTL("{1}召唤的宝可梦使用了飞翔!",$Trainer.name)) end pbFadeOutIn { $game_temp.player_new_map_id = $PokemonTemp.flydata[0] $game_temp.player_new_x = $PokemonTemp.flydata[1] $game_temp.player_new_y = $PokemonTemp.flydata[2] $game_temp.player_new_direction = 2 $PokemonTemp.flydata = nil $scene.transfer_player $game_map.autoplay $game_map.refresh } pbEraseEscapePoint next 0 }) #在野外通过快捷键使用 ItemHandlers::UseInField.add(:EONFLUTE,proc{|item| next false if !pbCheckHiddenMoveBadge(BADGE_FOR_FLY,true) pbMessage(_INTL("\\me[无限之笛]{1}吹响了无限之笛。\\wtnp[30]",$Trainer.name)) if !pbGetMetadata($game_map.map_id,MetadataOutdoor) pbMessage(_INTL("似乎没有宝可梦听到笛声。")) next false end pbMessage(_INTL("宝可梦听到笛声了!")) scene = PokemonRegionMap_Scene.new(-1,false) screen = PokemonRegionMapScreen.new(scene) ret = screen.pbStartFlyScreen next false if !ret $PokemonTemp.flydata=ret pkmn = pbGenPkmn(:LATIOS,50) #拉帝欧斯 # pkmn = pbGenPkmn(:LATIAS,50) #拉帝亚斯 if !pbHiddenMoveAnimation(pkmn) pbMessage(_INTL("{1}召唤的宝可梦使用了飞翔!",$Trainer.name)) end pbFadeOutIn { $game_temp.player_new_map_id = $PokemonTemp.flydata[0] $game_temp.player_new_x = $PokemonTemp.flydata[1] $game_temp.player_new_y = $PokemonTemp.flydata[2] $game_temp.player_new_direction = 2 $PokemonTemp.flydata = nil $scene.transfer_player $game_map.autoplay $game_map.refresh } pbEraseEscapePoint next true }) [/CODE] [/SPOILER] [SPOILER="对于ESS19"] [SIZE=5]在Item_Effects的末尾添加如下代码:[/SIZE] [CODE=ruby] #在背包中使用 ItemHandlers::UseFromBag.add(:EONFLUTE,proc{|item| next false if !pbCheckHiddenMoveBadge(Settings::BADGE_FOR_FLY,true) pbMessage(_INTL("\\me[无限之笛]{1}吹响了无限之笛。\\wtnp[30]",$Trainer.name)) if !GameData::MapMetadata.get($game_map.map_id).outdoor_map pbMessage(_INTL("似乎没有宝可梦听到笛声。")) next 0 end pbMessage(_INTL("宝可梦听到笛声了!")) scene = PokemonRegionMap_Scene.new(-1,false) screen = PokemonRegionMapScreen.new(scene) ret = screen.pbStartFlyScreen next 0 if !ret $PokemonTemp.flydata=ret pkmn = pbGenPkmn(:LATIOS,50) #拉帝欧斯 # pkmn = pbGenPkmn(:LATIAS,50) #拉帝亚斯 if !pbHiddenMoveAnimation(pkmn) pbMessage(_INTL("{1}召唤的宝可梦使用了飞翔!",$Trainer.name)) end pbFadeOutIn { $game_temp.player_new_map_id = $PokemonTemp.flydata[0] $game_temp.player_new_x = $PokemonTemp.flydata[1] $game_temp.player_new_y = $PokemonTemp.flydata[2] $game_temp.player_new_direction = 2 $PokemonTemp.flydata = nil $scene.transfer_player $game_map.autoplay $game_map.refresh } pbEraseEscapePoint next 0 }) #在野外通过快捷键使用 ItemHandlers::UseInField.add(:EONFLUTE,proc{|item| next false if !pbCheckHiddenMoveBadge(Settings::BADGE_FOR_FLY,true) pbMessage(_INTL("\\me[无限之笛]{1}吹响了无限之笛。\\wtnp[30]",$Trainer.name)) if !GameData::MapMetadata.get($game_map.map_id).outdoor_map pbMessage(_INTL("似乎没有宝可梦听到笛声。")) next false end pbMessage(_INTL("宝可梦听到笛声了!")) scene = PokemonRegionMap_Scene.new(-1,false) screen = PokemonRegionMapScreen.new(scene) ret = screen.pbStartFlyScreen next false if !ret $PokemonTemp.flydata=ret pkmn = pbGenPkmn(:LATIOS,50) #拉帝欧斯 # pkmn = pbGenPkmn(:LATIAS,50) #拉帝亚斯 if !pbHiddenMoveAnimation(pkmn) pbMessage(_INTL("{1}召唤的宝可梦使用了飞翔!",$Trainer.name)) end pbFadeOutIn { $game_temp.player_new_map_id = $PokemonTemp.flydata[0] $game_temp.player_new_x = $PokemonTemp.flydata[1] $game_temp.player_new_y = $PokemonTemp.flydata[2] $game_temp.player_new_direction = 2 $PokemonTemp.flydata = nil $scene.transfer_player $game_map.autoplay $game_map.refresh } pbEraseEscapePoint next true }) [/CODE] [/SPOILER] [SIZE=5]教程结束。[/SIZE] [/QUOTE]
验证
宝可梦系列正统游戏的制作公司是?
回复帖子
最新帖子
全
我想切换视角讲述故事
最新更新:全民制作人
星期三,21:43
开发问题
Z
将GBA打包成APK
最新更新:zheyeyeye
星期三,21:27
GBA教程
Z
【进站必读】宝可饭堂社区全局规定v1.10
最新更新:z1652646304
星期三,20:25
公告规定
雨
pokeemerald怎么改箱子数
最新更新:雨落天晴
星期二,10:16
开发问题
[讨论]什么契机导致你想做游戏的
最新更新:A原翼
星期一,00:12
其他相关讨论
论坛统计
主题
559
消息
2,422
成员
3,879
最新成员
stonezz
联系我们
QQ
2201858342
邮箱
pokefans@qq.com
论坛
独立开发
进阶教程
【原创】无限之笛实现飞翔
顶部