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

Project1

 找回密码
 注册会员
搜索
查看: 57|回复: 4

[有事请教] 请问如何获取输入的战斗指令是什么?

[复制链接]

Lv3.寻梦者

梦石
0
星屑
3367
在线时间
643 小时
注册时间
2017-7-14
帖子
161

开拓者

发表于 2019-1-9 19:24:01 | 显示全部楼层 |阅读模式

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

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

x
就是战斗输入指令时,回合开始前,如何获取给角色下达的什么指令呢?比如用的是几号技能或者物品。在哪里能P出来?

Lv4.逐梦者

梦石
10
星屑
5210
在线时间
844 小时
注册时间
2010-11-14
帖子
2343
发表于 2019-1-9 23:10:28 | 显示全部楼层
RUBY 代码复制打印
  1. class Scene_Battle
  2.   alias cld99_use_item use_item
  3.   def use_item
  4.     p "@subject=#{@subject}"
  5.     p "use_item=#{@subject.current_action.item}"
  6.     cld99_use_item
  7.   end
  8. end


QQ截图20190109230921.png

基本模式是这样。
不过这样子输出的是16进制object_id,建议换成你需要的参数,比如名字:

RUBY 代码复制打印
  1. class Scene_Battle
  2.   alias cld99_use_item use_item
  3.   def use_item
  4.     p "@subject=#{@subject.name}" #改为输出对象的名字
  5.     p "use_item=#{@subject.current_action.item.name}"
  6.     cld99_use_item
  7.   end
  8. end


QQ截图20190109231035.png

陨石坑——Alice Union
回复 支持 反对

使用道具 举报

Lv3.寻梦者

梦石
0
星屑
3367
在线时间
643 小时
注册时间
2017-7-14
帖子
161

开拓者

 楼主| 发表于 2019-1-10 10:35:31 | 显示全部楼层
KB.Driver 发表于 2019-1-9 23:10
class Scene_Battle
  alias cld99_use_item use_item
  def use_item

感谢大佬的 帮忙,可能我没表达清楚,我想的效果是:在输入指令的时候能够得到角色输入的是什么指令,你给的脚本是战斗过程中吧,比如1号角色输入的是普通攻击(技能ID1),那么执行下一个角色输入的时候可以得到上一个角色输入的是什么指令。
回复 支持 反对

使用道具 举报

Lv4.逐梦者

梦石
10
星屑
5210
在线时间
844 小时
注册时间
2010-11-14
帖子
2343
发表于 2019-1-10 14:52:26 | 显示全部楼层
本帖最后由 KB.Driver 于 2019-1-10 14:55 编辑
wan5337088 发表于 2019-1-10 10:35
感谢大佬的 帮忙,可能我没表达清楚,我想的效果是:在输入指令的时候能够得到角色输入的是什么指令,你 ...


经过测试,角色刚选择完的时候就显示要这样:
RUBY 代码复制打印
  1. class Scene_Battle
  2.   alias cld99_on_enemy_ok on_enemy_ok
  3.   def on_enemy_ok
  4.     p_input ##
  5.     cld99_on_enemy_ok   
  6.   end
  7.  
  8.   alias cld99_on_actor_ok on_actor_ok
  9.   def on_actor_ok
  10.     p_input ##
  11.     cld99_on_actor_ok   
  12.   end
  13.  
  14.   def command_guard
  15.     BattleManager.actor.input.set_guard
  16.     p_input ####
  17.     next_command
  18.   end
  19.  
  20.   def on_skill_ok
  21.     @skill = @skill_window.item
  22.     BattleManager.actor.input.set_skill(@skill.id)
  23.     BattleManager.actor.last_skill.object = @skill
  24.     if !@skill.need_selection?
  25.       p_input(@skill.id) ####
  26.       @skill_window.hide
  27.       next_command
  28.     elsif @skill.for_opponent?
  29.       select_enemy_selection
  30.     else
  31.       select_actor_selection
  32.     end
  33.   end
  34.  
  35.   def on_item_ok
  36.     @item = @item_window.item
  37.     BattleManager.actor.input.set_item(@item.id)
  38.     if !@item.need_selection?
  39.       p_input(@item.id) ####
  40.       @item_window.hide
  41.       next_command
  42.     elsif @item.for_opponent?
  43.       select_enemy_selection
  44.     else
  45.       select_actor_selection
  46.     end
  47.     $game_party.last_item.object = @item
  48.   end
  49.  
  50.   def p_input(id = nil)
  51.     actor = BattleManager.actor
  52.     input = actor.input
  53.     id ||= input.data_id
  54.     puts "#{actor.name}使用了#{id}号#{input.type}'#{input.item.name}'"
  55.   end
  56. end
  57.  
  58. class Game_Action
  59.   attr_reader :type, :data_id
  60.  
  61.   alias :cld99_set_skill :set_skill
  62.   def set_skill(id)
  63.     @type = "技能"
  64.     @data_id = id
  65.     cld99_set_skill(id)
  66.   end
  67.  
  68.   alias :cld99_set_item :set_item
  69.   def set_item(id)
  70.     @type = "物品"
  71.     @data_id = id
  72.     cld99_set_item(id)
  73.   end
  74. end

居然搞了一个小时……我好菜啊(
1.gif

陨石坑——Alice Union
回复 支持 反对

使用道具 举报

Lv3.寻梦者

梦石
0
星屑
3367
在线时间
643 小时
注册时间
2017-7-14
帖子
161

开拓者

 楼主| 发表于 2019-1-10 14:59:39 | 显示全部楼层
KB.Driver 发表于 2019-1-10 14:52
经过测试,角色刚选择完的时候就显示要这样:

class Scene_Battle

跪谢大佬,,,帮了大忙了
回复 支持 反对

使用道具 举报

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

本版积分规则

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

站长信箱:fux2@moe9th.com|手机版|小黑屋|无图版|Project1游戏制作

GMT+8, 2019-1-21 00:41

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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