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

Project1

 找回密码
 注册会员
搜索
查看: 4457|回复: 31

[已经解决] 求大神 怎么让飞行器单独遇敌而且只能在大地图使用?

[复制链接]

Lv3.寻梦者

梦石
0
星屑
1883
在线时间
157 小时
注册时间
2016-1-29
帖子
267
发表于 2019-2-26 15:57:51 | 显示全部楼层 |阅读模式
200星屑
本帖最后由 lixinglixing022 于 2019-2-27 07:54 编辑

求好心的大神帮帮忙! 现在我的飞行器随便哪个地图都能用而且还不能遇敌,我想让飞行器单独遇天空中的怪物 还有飞行器只能在大地图使用!麻烦大神们了!

最佳答案

查看完整内容

数据库设置 权值小于20的是通常遇敌 权值不小于20的只有坐上飞艇才会碰到 工程内脚本 演示 工程

Lv5.捕梦者

梦石
10
星屑
39440
在线时间
1914 小时
注册时间
2010-11-14
帖子
3315

R考场第七期纪念奖

发表于 2019-2-26 15:57:52 | 显示全部楼层

RE: 求大神 怎么让飞行器单独遇敌而且只能在大地图使用?

本帖最后由 KB.Driver 于 2019-2-28 23:28 编辑

数据库设置
QQ截图20190228225704.png
权值小于20的是通常遇敌
权值不小于20的只有坐上飞艇才会碰到




工程内脚本
QQ截图20190228225645.png




演示
1.gif



工程
Project4.zip (1.44 MB, 下载次数: 5)

点评

KB 还有那个背景 用了你的工程 飞行器单独的背景也用不了 地图设置了什么就是什么背景!  发表于 2019-3-1 11:11
KB哥 在线等你回复吧  发表于 2019-3-1 11:08
在大地图我上了飞船!  发表于 2019-3-1 11:02
使用不了什么?  发表于 2019-3-1 11:00
KB哥 这个跟你上次发我那个 单独遇BOSS会冲突吗?  发表于 2019-3-1 10:51

评分

参与人数 1+1 收起 理由
lixinglixing022 + 1 我很赞同

查看全部评分

用头画头像,用脚写脚本
回复

使用道具 举报

Lv3.寻梦者

梦石
0
星屑
1883
在线时间
157 小时
注册时间
2016-1-29
帖子
267
 楼主| 发表于 2019-2-27 07:54:45 手机端发表。 | 显示全部楼层
有大神在吗? 帮帮我 谢谢了.
回复

使用道具 举报

Lv3.寻梦者

梦石
0
星屑
4863
在线时间
485 小时
注册时间
2018-6-18
帖子
613
发表于 2019-2-27 09:02:56 手机端发表。 | 显示全部楼层
好像YEA的汉化脚本合集里有这个。
回复

使用道具 举报

Lv3.寻梦者

梦石
0
星屑
1883
在线时间
157 小时
注册时间
2016-1-29
帖子
267
 楼主| 发表于 2019-2-27 20:51:07 手机端发表。 | 显示全部楼层
RMVXA 发表于 2019-2-27 09:02
好像YEA的汉化脚本合集里有这个。

大神 有解决的办法吗?
回复

使用道具 举报

Lv3.寻梦者

梦石
0
星屑
4793
在线时间
1347 小时
注册时间
2015-7-25
帖子
541

开拓者

发表于 2019-2-27 22:58:22 | 显示全部楼层
使用方法:

设置大地图:在地图的备注栏里写上<大地图>,在大地图中才能使用飞船

设置空中的敌人列表:在地图的备注栏里写上<空中 [[敌群ID,权重(遇敌几率)]]>
比如:<空中 [[2,10],[3,10]]>
那么在空中的时候就会随机遇到敌群ID为2或3的敌人
遇敌的平均步数跟地面上一样,不用另外设置

RUBY 代码复制
  1. class Game_Map
  2.   def note
  3.     @map.note
  4.   end
  5.   def airship_fly_ok?
  6.     note.include?("<大地图>") ? true : false
  7.   end
  8. end
  9. class Game_Vehicle
  10.   def update_airship_altitude
  11.     if @driving
  12.       @altitude += 1 if @altitude < max_altitude && takeoff_ok? && $game_map.airship_fly_ok?
  13.     elsif @altitude > 0
  14.       @altitude -= 1
  15.       @priority_type = 0 if @altitude == 0
  16.     end
  17.     @step_anime = (@altitude == max_altitude)
  18.     @priority_type = 2 if @altitude > 0
  19.   end
  20. end
  21. class Game_Player
  22.   def get_on_off_vehicle
  23.     if vehicle
  24.       get_off_vehicle
  25.     else
  26.       get_on_vehicle if $game_map.note.include?("<大地图>")
  27.     end
  28.   end
  29.   def update_encounter
  30.     return if $TEST && Input.press?(:CTRL)
  31.     return if $game_party.encounter_none?
  32.     return if @move_route_forcing
  33.     @encounter_count -= encounter_progress_value
  34.   end
  35.   def encounter
  36.     return false if $game_map.interpreter.running?
  37.     return false if $game_system.encounter_disabled
  38.     return false if @encounter_count > 0
  39.     make_encounter_count
  40.     troop_id = make_encounter_troop_id
  41.     return false unless $data_troops[troop_id]
  42.     BattleManager.setup(troop_id)
  43.     BattleManager.on_encounter
  44.     return true
  45.   end
  46.   def make_encounter_troop_id
  47.     encounter_list = []
  48.     weight_sum = 0
  49.     air_en = nil
  50.     if in_airship?
  51.       return unless $game_map.note =~ /<空中\s*(.+)>/
  52.       air_en = eval($1)
  53.       air_en.each do |airen|
  54.         weight_sum += airen[1]
  55.       end
  56.       if weight_sum > 0
  57.       value = rand(weight_sum)
  58.       air_en.each do |airen|
  59.         value -= airen[1]
  60.         return airen[0] if value < 0
  61.       end
  62.       end
  63.     else
  64.     $game_map.encounter_list.each do |encounter|
  65.       next unless encounter_ok?(encounter)
  66.       encounter_list.push(encounter)
  67.       weight_sum += encounter.weight
  68.     end
  69.     if weight_sum > 0
  70.       value = rand(weight_sum)
  71.       encounter_list.each do |encounter|
  72.         value -= encounter.weight
  73.         return encounter.troop_id if value < 0
  74.       end
  75.     end
  76.     end
  77.     return 0
  78.   end
  79. end
目前的坑 幽灵契约外传:歌莉娅
回归持续更新中~
笨肉包开始学像素画啦!努力训练中XD
啊~今天也是填坑的一天呢!

看!是肉包!
只能看!不能吃!
回复

使用道具 举报

Lv5.捕梦者

梦石
10
星屑
39440
在线时间
1914 小时
注册时间
2010-11-14
帖子
3315

R考场第七期纪念奖

发表于 2019-2-28 12:04:06 | 显示全部楼层
要让飞行器只能在大地图用可以用这个
RUBY 代码复制
  1. class Game_Player
  2.   #--------------------------------------------------------------------------
  3.   # ● [别名修改]登上载具
  4.   #--------------------------------------------------------------------------
  5.   alias get_on_vehicle_overworld get_on_vehicle
  6.   def get_on_vehicle
  7.     return if $game_map.airship.pos?(@x, @y) && !$game_map.overworld?
  8.     get_on_vehicle_overworld
  9.   end
  10. end

点评

就在插件脚本那里插入一个空白的,复制进去啊  发表于 2019-2-28 14:49
这个怎么用啊?  发表于 2019-2-28 14:19
用头画头像,用脚写脚本
回复

使用道具 举报

Lv3.寻梦者

梦石
0
星屑
1883
在线时间
157 小时
注册时间
2016-1-29
帖子
267
 楼主| 发表于 2019-2-28 14:18:00 | 显示全部楼层
魔法丶小肉包 发表于 2019-2-27 22:58
使用方法:

设置大地图:在地图的备注栏里写上,在大地图中才能使用飞船

大神 出现错误了!
QQ图片20190228141544.png

点评

我这边默认系统测试了没问题,检查一下encounter方法是不是在你的其他插件脚本里被重新定义过了  发表于 2019-2-28 15:15
回复

使用道具 举报

Lv3.寻梦者

梦石
0
星屑
3569
在线时间
1766 小时
注册时间
2010-12-21
帖子
2282
发表于 2019-2-28 20:18:24 | 显示全部楼层
如果用纯事件的话,在大地图上做一个并行事件,条件分歧判断人物是否在飞艇上,登上飞艇的时候记录步数,然后实时判断步数到达多少步之后触发战斗,至于想让飞艇不进入大地图以外的地方的话,在场所移动的事件里加个是否乘坐飞艇的条件分歧就行了。
绿坝娘素材库企划

素材库获取方法:暂时中止,需求者私聊。
回复

使用道具 举报

Lv3.寻梦者

梦石
0
星屑
1883
在线时间
157 小时
注册时间
2016-1-29
帖子
267
 楼主| 发表于 2019-3-1 11:02:11 | 显示全部楼层
KB.Driver 发表于 2019-2-28 23:11
数据库设置

权值小于20的是通常遇敌

KB 哥 跟这个是不是有冲突??
QQ图片20190301110051.png

点评

KB哥 我没有其他脚本了 只有个靠岸改过 我发你看看吧!  发表于 2019-3-1 11:25
我感觉你是不是拿了过去乱改,仔细看看我发的工程里是怎么写的啊。战斗背景这个是直接在脚本里改文件名,不用在别处写任何东西。  发表于 2019-3-1 11:22
我测试过了,两个脚本放在一起不会相互影响,会不会是你用了别的脚本  发表于 2019-3-1 11:20
我这里地图不填会发生错误,一旦填了地图那个飞行器背景就不生效了!  发表于 2019-3-1 11:20
KB哥 那个背景可以 地图那不写地图就可以!  发表于 2019-3-1 11:17
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-4-18 14:42

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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