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

Project1

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

[已经解决] 如何设置像吞食天地那样的阵型

[复制链接]

Lv2.观梦者

梦石
0
星屑
558
在线时间
256 小时
注册时间
2010-8-25
帖子
371
跳转到指定楼层
1
发表于 2012-11-13 23:02:22 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
如标题。

但是我用的战斗系统是通过修改Game_Actor类里面修改的。


所以求高手发范例

点评

食天地那样的阵型是怎样的,没玩过呀?不过回答LZ的问题可以带来好运,P叔在XP区得到的2张好人卡都是因为回答LZ的问题得到的。  发表于 2012-11-14 14:17

Lv2.观梦者

梦石
0
星屑
558
在线时间
256 小时
注册时间
2010-8-25
帖子
371
15
 楼主| 发表于 2012-11-23 17:38:21 | 只看该作者
protosssonny 发表于 2012-11-20 20:53
那你上工程吧,你的脚本不是默认的。

留个QQ吧,我发工程给你,然后改好了我再认可答案
回复

使用道具 举报

Lv3.寻梦者 (版主)

八宝粥的基叔

梦石
0
星屑
4719
在线时间
5242 小时
注册时间
2009-4-29
帖子
14318

贵宾

14
发表于 2012-11-20 20:53:51 | 只看该作者
那你上工程吧,你的脚本不是默认的。
《逝去的回忆3:四叶草之梦》真情发布,欢迎点击图片下载试玩喵。

《逝去的回忆3》的讨论群:
一群:192885514
二群:200460747
回复

使用道具 举报

Lv2.观梦者

梦石
0
星屑
558
在线时间
256 小时
注册时间
2010-8-25
帖子
371
13
 楼主| 发表于 2012-11-20 20:34:31 | 只看该作者
protosssonny 发表于 2012-11-15 22:52
把这个放到最后应该就可以了���

不是啊,而是我就算测试的时候,队伍只有3人,还是可以变阵{:2_270:}
回复

使用道具 举报

Lv2.观梦者

梦石
0
星屑
558
在线时间
256 小时
注册时间
2010-8-25
帖子
371
12
 楼主| 发表于 2012-11-19 20:43:50 | 只看该作者
本帖最后由 zxc3824 于 2012-11-19 20:48 编辑
protosssonny 发表于 2012-11-15 22:52
把这个放到最后应该就可以了


exist[]是用来装技能的ID的吗?

我添加了那个脚本以后,发现战斗中就算不足五人还是可以摆阵的

点评

我的脚本写错了,调试的时候忘记改回来了。122和130行2个都应该是< 5,不是< 4和< 2。你改一下。exsit[]是用来装存活队员的标记。  发表于 2012-11-19 20:59
我的脚本写错了,调试的时候忘记改回来了。122和130行2个都应该是< 5,不是< 4和< 2。你改一下。exsit[]是用来装存活队员的标记。  发表于 2012-11-19 20:57
回复

使用道具 举报

Lv2.观梦者

梦石
0
星屑
558
在线时间
256 小时
注册时间
2010-8-25
帖子
371
11
 楼主| 发表于 2012-11-18 02:33:36 | 只看该作者
protosssonny 发表于 2012-11-15 22:52
把这个放到最后应该就可以了

P叔,我这个阵型脚本就是独立的啊。def_a_all_exist这两个定义插在哪里?又该如何使用?

点评

插入到全部脚本的最后不是可以了吗?  发表于 2012-11-18 12:06
回复

使用道具 举报

Lv2.观梦者

梦石
0
星屑
558
在线时间
256 小时
注册时间
2010-8-25
帖子
371
10
 楼主| 发表于 2012-11-15 23:21:34 | 只看该作者
protosssonny 发表于 2012-11-15 22:52
把这个放到最后应该就可以了

P叔大大果然厉害,还有一个小问题,就是如果当前队伍不能摆阵,特别是战斗中,如果提示?我发现文本框在战斗中总是显示在上方的

点评

这个提示必须要在你“阵型选择”的脚本处来改,你这里没有给出,所以写不了。其实你也可以在不符合阵型条件时把阵型选项变灰,禁止使用。  发表于 2012-11-16 14:17
回复

使用道具 举报

Lv3.寻梦者 (版主)

八宝粥的基叔

梦石
0
星屑
4719
在线时间
5242 小时
注册时间
2009-4-29
帖子
14318

贵宾

9
发表于 2012-11-15 22:52:05 | 只看该作者
本帖最后由 protosssonny 于 2012-11-19 20:53 编辑
zxc3824 发表于 2012-11-15 21:52
P叔好厉害,但是怎么调用呢?


把这个放到最后应该就可以了

  1. #==============================================================================
  2. # ■ Scene_Battle (分割定义 1)
  3. #------------------------------------------------------------------------------
  4. #  处理战斗画面的类。
  5. #==============================================================================

  6. class Scene_Battle
  7.   #--------------------------------------------------------------------------
  8.   # ● 刷新画面
  9.   #--------------------------------------------------------------------------
  10.   def update
  11.     unless a_all_exist
  12.       $game_variables[5] = 0
  13.     end  
  14.     unless e_all_exist  
  15.       $game_variables[6] = 0
  16.     end  
  17.     # 执行战斗事件中的情况下
  18.     if $game_system.battle_interpreter.running?
  19.       # 刷新解释器
  20.       $game_system.battle_interpreter.update
  21.       # 强制行动的战斗者不存在的情况下
  22.       if $game_temp.forcing_battler == nil
  23.         # 执行战斗事件结束的情况下
  24.         unless $game_system.battle_interpreter.running?
  25.           # 继续战斗的情况下、再执行战斗事件的设置
  26.           unless judge
  27.             setup_battle_event
  28.           end
  29.         end
  30.         # 如果不是结束战斗回合的情况下
  31.         if @phase != 5
  32.           # 刷新状态窗口
  33.           @status_window.refresh
  34.         end
  35.       end
  36.     end
  37.     # 系统 (计时器)、刷新画面
  38.     $game_system.update
  39.     $game_screen.update
  40.     # 计时器为 0 的情况下
  41.     if $game_system.timer_working and $game_system.timer == 0
  42.       # 中断战斗
  43.       $game_temp.battle_abort = true
  44.     end
  45.     # 刷新窗口
  46.     @help_window.update
  47.     @party_command_window.update
  48.     @actor_command_window.update
  49.     @status_window.update
  50.     @message_window.update
  51.     # 刷新活动块
  52.     @spriteset.update
  53.     # 处理过渡中的情况下
  54.     if $game_temp.transition_processing
  55.       # 清除处理过渡中标志
  56.       $game_temp.transition_processing = false
  57.       # 执行过渡
  58.       if $game_temp.transition_name == ""
  59.         Graphics.transition(20)
  60.       else
  61.         Graphics.transition(40, "Graphics/Transitions/" +
  62.           $game_temp.transition_name)
  63.       end
  64.     end
  65.     # 显示信息窗口中的情况下
  66.     if $game_temp.message_window_showing
  67.       return
  68.     end
  69.     # 显示效果中的情况下
  70.     if @spriteset.effect?
  71.       return
  72.     end
  73.     # 游戏结束的情况下
  74.     if $game_temp.gameover
  75.       # 切换到游戏结束画面
  76.       $scene = Scene_Gameover.new
  77.       return
  78.     end
  79.     # 返回标题画面的情况下
  80.     if $game_temp.to_title
  81.       # 切换到标题画面
  82.       $scene = Scene_Title.new
  83.       return
  84.     end
  85.     # 中断战斗的情况下
  86.     if $game_temp.battle_abort
  87.       # 还原为战斗前的 BGM
  88.       $game_system.bgm_play($game_temp.map_bgm)
  89.       # 战斗结束
  90.       battle_end(1)
  91.       return
  92.     end
  93.     # 等待中的情况下
  94.     if @wait_count > 0
  95.       # 减少等待计数
  96.       @wait_count -= 1
  97.       return
  98.     end
  99.     # 强制行动的角色存在、
  100.     # 并且战斗事件正在执行的情况下
  101.     if $game_temp.forcing_battler == nil and
  102.        $game_system.battle_interpreter.running?
  103.       return
  104.     end
  105.     # 回合分支
  106.     case @phase
  107.     when 1  # 自由战斗回合
  108.       update_phase1
  109.     when 2  # 同伴命令回合
  110.       update_phase2
  111.     when 3  # 角色命令回合
  112.       update_phase3
  113.     when 4  # 主回合
  114.       update_phase4
  115.     when 5  # 战斗结束回合
  116.       update_phase5
  117.     end
  118.   end
  119.   
  120.   def a_all_exist
  121.     return false if $game_party.actors.size < 5
  122.     exist = []
  123.     $game_party.actors.each{|actors| actors.exist? ? exist << true : exist << false}
  124.     return false if exist.include?(false)
  125.     return true
  126.   end
  127.   
  128.   def e_all_exist
  129.     return false if $game_troop.enemies.size < 5
  130.     exist = []
  131.     $game_troop.enemies.each{|enemies| enemies.exist? ? exist << true : exist << false}
  132.     return false if exist.include?(false)
  133.     return true
  134.   end
  135. end
复制代码
���
《逝去的回忆3:四叶草之梦》真情发布,欢迎点击图片下载试玩喵。

《逝去的回忆3》的讨论群:
一群:192885514
二群:200460747
回复

使用道具 举报

Lv2.观梦者

梦石
0
星屑
558
在线时间
256 小时
注册时间
2010-8-25
帖子
371
8
 楼主| 发表于 2012-11-15 21:52:06 | 只看该作者
protosssonny 发表于 2012-11-15 14:56
从你给的脚本分析:当己方时,阵型是由变量$game_variables[5]决定的,当敌方时,阵型是由变量$game_variab ...

P叔好厉害,但是怎么调用呢?
回复

使用道具 举报

Lv3.寻梦者 (版主)

八宝粥的基叔

梦石
0
星屑
4719
在线时间
5242 小时
注册时间
2009-4-29
帖子
14318

贵宾

7
发表于 2012-11-15 14:56:54 | 只看该作者
从你给的脚本分析:当己方时,阵型是由变量$game_variables[5]决定的,当敌方时,阵型是由变量$game_variables[6]决定的,且变量为0的时候为散开阵。
那么问题就归结于——当友方活人少于5时,令$game_variables[5]=0;当敌方活人少于5时,令$game_variables[6]=0。
判断友方活人少于5的代码
  1.   def all_exist
  2.     return false if $game_party.actors.size < 5
  3.     exist = []
  4.     $game_party.actors.each{|actors| exist? ? exist << true : exist << false}
  5.     return false if exist.include?(false)
  6.     return true
  7.   end
复制代码
判断敌方活人少于5的代码
  1.   def all_exist
  2.     return false if $game_troop.enemies.size < 5
  3.     exist = []
  4.     $game_troop.enemies.each{|enemies| exist? ? exist << true : exist << false}
  5.     return false if exist.include?(false)
  6.     return true
  7.   end
复制代码

点评

嗯,还是p叔强悍些。  发表于 2012-11-15 16:23

评分

参与人数 2星屑 +60 梦石 +1 收起 理由
hcm + 1 认可答案
八宝粥先生 + 60 我很赞同

查看全部评分

《逝去的回忆3:四叶草之梦》真情发布,欢迎点击图片下载试玩喵。

《逝去的回忆3》的讨论群:
一群:192885514
二群:200460747
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2025-1-10 20:26

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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