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

Project1

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

[已经解决] 如何将“攻击”指令改成上一次选择的技能呢?

[复制链接]

Lv3.寻梦者

闇吼者の災悪眷族
不気味存在締造者

梦石
0
星屑
1366
在线时间
2881 小时
注册时间
2014-7-29
帖子
6491
跳转到指定楼层
1
发表于 2014-11-4 14:29:22 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

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

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

x
本帖最后由 三途亚梦 于 2014-11-4 15:15 编辑

基本问题就是如题所述。

将游戏中自带的“攻击”指令改成记录玩家上一次选择的技能。
因为设计中游戏风格较为写实,技能都是诸如: 击打、挥砍、投掷 这些,玩家在游戏中应该是反复使用同一个技能而不是“普通攻击”。
要说意义的话,就是为了让玩家玩的更舒适一点。

啊,对了!
在玩家还没有使用技能前,默认的还是普通攻击。

PS:因为考虑到强制战斗指令,不能以这个人物上一次使用的技能为准。

Lv4.逐梦者

「Pemercyia」


Urhurrenna

梦石
0
星屑
9397
在线时间
2748 小时
注册时间
2008-9-5
帖子
3543

开拓者短篇八RM组冠军短篇九导演组亚军白银编剧

2
发表于 2014-11-4 16:54:42 | 只看该作者
【或许只是思路,但基本就这样了吧?】
因为以前做了一个气势满把普攻换成技能的东西,
所以改起来也蛮简单~总之基本就是这样了吧~
至于命令窗口的“攻击”字样是否要改成技能名字,
这应该是很简单的了吧~

点评

噗。。是窝自己工程用来记录技能图标用的。。忘记去掉了咩?#掉就好。。  发表于 2014-11-4 22:42
好评~ 话说.reset_icon(@skill)是个啥?  发表于 2014-11-4 21:02

评分

参与人数 2星屑 +66 梦石 +1 收起 理由
VIPArcher + 1 认可答案
三途亚梦 + 66 认可答案

查看全部评分

回复 支持 反对

使用道具 举报

Lv3.寻梦者 (版主)

…あたしは天使なんかじゃないわ

梦石
0
星屑
2208
在线时间
4033 小时
注册时间
2010-10-4
帖子
10779

开拓者贵宾

3
发表于 2014-11-4 17:20:35 | 只看该作者
参考菜单窗口(Window_MenuCommand)是如何记住指令位置的

评分

参与人数 1星屑 +132 收起 理由
VIPArcher + 132 我很赞同

查看全部评分

回复 支持 反对

使用道具 举报

Lv5.捕梦者

梦石
0
星屑
22943
在线时间
8638 小时
注册时间
2011-12-31
帖子
3367
4
发表于 2014-11-4 18:15:02 | 只看该作者
參考
  1. #==============================================================================
  2. # ★ RGSS3_自動戦闘 Ver1.01
  3. #==============================================================================
  4. =begin

  5. 作者:tomoaky
  6. webサイト:ひきも記 (http://hikimoki.sakura.ne.jp/)

  7. パーティコマンドに『オート』と『リピート』、2種類のコマンドを追加します。
  8. オートは全アクターがそのターンだけ自動戦闘の状態となります、
  9. リピートは全アクターが前のターンにとった行動を自動選択します。

  10. おまけ機能の完全自動戦闘スイッチ(初期設定では7番)がオンになっている間は
  11. エンカウントからマップシーンへ戻るまでがすべて自動化されます。

  12. === 注意点 ===
  13.   ・前のターンと同じ行動がコスト不足などで実行できない場合は攻撃になります
  14.   ・1ターン目にリピートを選択した場合は全アクターの行動が攻撃になります
  15.   ・前ターン開始時に選択されている行動がリピート対象となります、
  16.     コスト不足でリピート内容が変化した場合、次ターン以降も変化したままです

  17. 使用するゲームスイッチ(初期設定)
  18.   0007, 0008

  19. 2012.01.17  Ver1.01
  20.   ・逃げるコマンド失敗後にリピートコマンドが正しく動作しない不具合を修正
  21.   
  22. 2011.12.15  Ver1.0
  23.   公開

  24. =end

  25. #==============================================================================
  26. # □ 設定項目
  27. #==============================================================================
  28. module TMATBTL
  29.   SW_FULLAUTO = 7     # 完全自動戦闘フラグとして扱うゲームスイッチ番号
  30.   SW_FULLFAST = 8     # 完全自動戦闘の早送りフラグとして扱うゲームスイッチ番号
  31. end

  32. #==============================================================================
  33. # ■ Vocab
  34. #==============================================================================
  35. module Vocab
  36.   AutoBattle    = "オート"         # 自動戦闘コマンド名
  37.   RepeatBattle  = "リピート"       # 繰り返し戦闘コマンド名
  38. end

  39. #==============================================================================
  40. # ■ Game_Temp
  41. #==============================================================================
  42. class Game_Temp
  43.   #--------------------------------------------------------------------------
  44.   # ● 公開インスタンス変数
  45.   #--------------------------------------------------------------------------
  46.   attr_accessor :repeat_commands          # 前ターンの行動内容
  47.   #--------------------------------------------------------------------------
  48.   # ● オブジェクト初期化
  49.   #--------------------------------------------------------------------------
  50.   alias tmatbtl_game_temp_initialize initialize
  51.   def initialize
  52.     tmatbtl_game_temp_initialize
  53.     @repeat_commands = []
  54.   end
  55. end

  56. #==============================================================================
  57. # ■ Window_Message
  58. #==============================================================================
  59. class Window_Message
  60.   #--------------------------------------------------------------------------
  61.   # ● 入力待ち処理
  62.   #--------------------------------------------------------------------------
  63.   alias tmatbtl_window_message_input_pause input_pause
  64.   def input_pause
  65.     if $game_party.in_battle && $game_switches[TMATBTL::SW_FULLAUTO]
  66.       wait($game_switches[TMATBTL::SW_FULLFAST] ? 30 : 60)
  67.     else
  68.       tmatbtl_window_message_input_pause
  69.     end
  70.   end
  71. end

  72. #==============================================================================
  73. # ■ Window_PartyCommand
  74. #==============================================================================
  75. class Window_PartyCommand
  76.   #--------------------------------------------------------------------------
  77.   # ● コマンドリストの作成
  78.   #--------------------------------------------------------------------------
  79.   alias tmatbtl_window_partycommand_make_command_list make_command_list
  80.   def make_command_list
  81.     tmatbtl_window_partycommand_make_command_list
  82.     add_command(Vocab::AutoBattle,   :auto)
  83.     add_command(Vocab::RepeatBattle, :repeat)
  84.   end
  85. end

  86. #==============================================================================
  87. # ■ Scene_Battle
  88. #==============================================================================
  89. class Scene_Battle
  90.   #--------------------------------------------------------------------------
  91.   # ● 早送り判定
  92.   #--------------------------------------------------------------------------
  93.   alias tmatbtl_scene_battle_show_fast? show_fast?
  94.   def show_fast?
  95.     tmatbtl_scene_battle_show_fast? || ($game_switches[TMATBTL::SW_FULLAUTO] &&
  96.       $game_switches[TMATBTL::SW_FULLFAST])
  97.   end
  98.   #--------------------------------------------------------------------------
  99.   # ● パーティコマンドウィンドウの作成
  100.   #--------------------------------------------------------------------------
  101.   alias tmatbtl_scene_battle_create_party_command_window create_party_command_window
  102.   def create_party_command_window
  103.     tmatbtl_scene_battle_create_party_command_window
  104.     @party_command_window.set_handler(:auto,   method(:command_auto))
  105.     @party_command_window.set_handler(:repeat, method(:command_repeat))
  106.   end
  107.   #--------------------------------------------------------------------------
  108.   # ● パーティコマンド選択の開始
  109.   #--------------------------------------------------------------------------
  110.   alias tmatbtl_scene_battle_start_party_command_selection start_party_command_selection
  111.   def start_party_command_selection
  112.     tmatbtl_scene_battle_start_party_command_selection
  113.     if $game_switches[TMATBTL::SW_FULLAUTO]
  114.       command_auto unless scene_changing?
  115.     end
  116.   end
  117.   #--------------------------------------------------------------------------
  118.   # ● 戦闘開始
  119.   #--------------------------------------------------------------------------
  120.   alias tmatbtl_scene_battle_battle_start battle_start
  121.   def battle_start
  122.     tmatbtl_scene_battle_battle_start
  123.     $game_temp.repeat_commands = []
  124.   end
  125.   #--------------------------------------------------------------------------
  126.   # ● ターン開始
  127.   #--------------------------------------------------------------------------
  128.   alias tmatbtl_scene_battle_turn_start turn_start
  129.   def turn_start
  130.     $game_party.members.each_with_index do |actor, i|
  131.       next unless actor.inputable?
  132.       $game_temp.repeat_commands[i] = []
  133.       actor.actions.each do |action|
  134.         $game_temp.repeat_commands[i].push(action.clone)
  135.       end
  136.     end
  137.     tmatbtl_scene_battle_turn_start
  138.   end
  139.   #--------------------------------------------------------------------------
  140.   # ○ コマンド[オート]
  141.   #--------------------------------------------------------------------------
  142.   def command_auto
  143.     $game_party.members.each do |actor|
  144.       actor.make_auto_battle_actions if actor.inputable?
  145.     end
  146.     @party_command_window.deactivate
  147.     turn_start
  148.   end
  149.   #--------------------------------------------------------------------------
  150.   # ○ コマンド[リピート]
  151.   #--------------------------------------------------------------------------
  152.   def command_repeat
  153.     $game_party.members.each_with_index do |actor, i|
  154.       next unless actor.inputable?
  155.       actor.actions.clear
  156.       if !$game_temp.repeat_commands[i] || $game_temp.repeat_commands[i].empty?
  157.         $game_temp.repeat_commands[i] =
  158.           [Game_Action.new(actor).set_attack.evaluate]
  159.       end
  160.       $game_temp.repeat_commands[i].each do |action|
  161.         actor.actions.push(action.clone)
  162.         actor.actions[actor.actions.size - 1].set_attack unless action.valid?
  163.       end
  164.     end
  165.     @party_command_window.deactivate
  166.     turn_start
  167.   end
  168. end


复制代码
回复 支持 反对

使用道具 举报

Lv3.寻梦者

闇吼者の災悪眷族
不気味存在締造者

梦石
0
星屑
1366
在线时间
2881 小时
注册时间
2014-7-29
帖子
6491
5
 楼主| 发表于 2014-11-6 22:17:33 | 只看该作者
已经完美解决~麻烦结贴~
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-11-15 05:41

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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