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

Project1

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

[已经解决] 关于VX默认战斗方式的修改

 关闭 [复制链接]

Lv2.观梦者

梦石
0
星屑
462
在线时间
1411 小时
注册时间
2010-9-23
帖子
557
跳转到指定楼层
1
发表于 2011-8-3 08:04:19 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
横版格斗系统太高深了,学不来,想把VX的默认战斗系统改成类似仙剑4那样以速度一类的属性来决定战斗顺序,请问该怎么修改呢?

Lv4.逐梦者

醉啸 长风万里

梦石
0
星屑
6197
在线时间
6595 小时
注册时间
2007-12-16
帖子
4501

贵宾

2
发表于 2011-8-3 08:09:14 | 只看该作者

点评

是不是混入NERV是为了某个人?她?1号还是2号?-----看不懂?我也写不懂。  发表于 2011-8-3 08:16

还在龟速填坑中
回复

使用道具 举报

Lv2.观梦者

梦石
0
星屑
462
在线时间
1411 小时
注册时间
2010-9-23
帖子
557
3
 楼主| 发表于 2011-8-3 09:21:17 | 只看该作者
仲秋启明 发表于 2011-8-3 08:09
http://rpg.blue/forum.php?mod=viewthread&tid=119948&highlight=%E6%88%98%E6%96%97
http://bbs.66r ...

http://s3.amazonaws.com/scrnshot ... s/211437/error01jpg
请问清纯脚本的这个图标问题该怎么解决呢~?
回复

使用道具 举报

Lv4.逐梦者

醉啸 长风万里

梦石
0
星屑
6197
在线时间
6595 小时
注册时间
2007-12-16
帖子
4501

贵宾

4
发表于 2011-8-3 10:12:11 | 只看该作者
黑崎一护 发表于 2011-8-3 09:21
http://s3.amazonaws.com/scrnshots.com/screenshots/211437/error01jpg
请问清纯脚本的这个图标问题该怎 ...

武器,武器啦

还在龟速填坑中
回复

使用道具 举报

Lv5.捕梦者 (管理员)

老黄鸡

梦石
0
星屑
42875
在线时间
7625 小时
注册时间
2009-7-6
帖子
13506

开拓者贵宾

5
发表于 2011-8-3 11:09:37 | 只看该作者
CP制战斗有很多饭粒.
RGDirect - DirectX驱动的RGSS,点我了解.
RM全系列成套系统定制请联系QQ1213237796
不接受对其他插件维护的委托
回复

使用道具 举报

Lv2.观梦者

梦石
0
星屑
462
在线时间
1411 小时
注册时间
2010-9-23
帖子
557
6
 楼主| 发表于 2011-8-3 11:21:27 | 只看该作者
本帖最后由 黑崎一护 于 2011-8-3 11:26 编辑
仲秋启明 发表于 2011-8-3 10:12
武器,武器啦


请问是在数据库的武器备注栏里设定的么~?
  1.   #--------------------------------------------------------------------------
  2.   # ● CP条更新
  3.   #--------------------------------------------------------------------------
  4.   def refresh_cp
  5.     @blank_window.x = 0   
  6. #    @basepic.x = 144 - @info_viewport.ox   
  7.     for iii in $game_party.members + $game_troop.members
  8.       if iii.is_a?(Game_Actor)
  9.         icon_index = $data_weapons[iii.weapon_id].icon_index
  10.         @cppic[iii].src_rect.set(icon_index % 16 * 24, icon_index / 16 * 24, 24, 24)
  11.       else
  12.         @cppic[iii].src_rect.set(312, 0, 24, 24)
  13.       end
  14.       if iii.hp > 0
  15.         @cppic[iii].visible = $CP可见
  16.       else
  17.         @cppic[iii].visible = false
  18.       end
  19.       @cppic[iii].x =  (iii.cp * 514 / 5000).to_i
  20.       @cppic[iii].y = 0
  21.     end
  22.   end
复制代码
要修改哪里呢~?

对不起刚才论坛貌似抽了一下,我可能连贴了,如果是的话请斑竹删帖~
回复

使用道具 举报

Lv4.逐梦者

醉啸 长风万里

梦石
0
星屑
6197
在线时间
6595 小时
注册时间
2007-12-16
帖子
4501

贵宾

7
发表于 2011-8-3 11:40:30 | 只看该作者
黑崎一护 发表于 2011-8-3 11:21
请问是在数据库的武器备注栏里设定的么~?要修改哪里呢~?

对不起刚才论坛貌似抽了一下,我可能连贴了, ...

角色没有装备武器

点评

额,空手不行么?少林寺十八铜人阵啊~  发表于 2011-8-3 11:41

还在龟速填坑中
回复

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
65
在线时间
83 小时
注册时间
2007-5-8
帖子
1
8
发表于 2011-8-3 12:03:55 | 只看该作者
貌似清纯版有连续伤害的bug,中毒了不掉血。。。。
望哪位高手修正一下
回复

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
22 小时
注册时间
2011-5-21
帖子
17
9
发表于 2011-8-3 18:59:16 | 只看该作者
  1. #VX CP制战斗系统 V 1.00 BY SLICK

  2. #==============================================================================
  3. # ■ Game_Battler
  4. #------------------------------------------------------------------------------
  5. #  处理战斗者的类。这个类作为 Game_Actor 类与 Game_Enemy 类的
  6. # 超级类来使用。
  7. #==============================================================================

  8. class Game_Battler
  9.   attr_accessor :cp
  10.   attr_accessor :turn_count
  11.   attr_accessor :my_turn    #轮到这个家伙行动了吗?
  12.   alias neoinitialize initialize
  13.   def initialize
  14.     @cp = 0
  15.     @turn_count = 0
  16.     @my_turn = false
  17.     neoinitialize
  18.   end
  19.   #--------------------------------------------------------------------------
  20.   # ● 可以输入命令判定
  21.   #--------------------------------------------------------------------------
  22.   def inputable?
  23.     if @my_turn
  24.       return (not @hidden and restriction <= 1)
  25.     else
  26.       return false
  27.     end
  28.   end
  29. end

  30. #==============================================================================
  31. # ■ Game_Troop
  32. #------------------------------------------------------------------------------
  33. #  处理敌人队伍和战斗相关资料的类,也可执行如战斗事件管理之类的功能。
  34. # 本类的实例请参考 $game_troop。
  35. #==============================================================================

  36. class Game_Troop < Game_Unit
  37.   #--------------------------------------------------------------------------
  38.   # ● 增加回合数
  39.   #--------------------------------------------------------------------------
  40.   def increase_turn(enemy)
  41.     for page in troop.pages
  42.       if page.span == 1
  43.         @event_flags= false
  44.       end
  45.     end
  46.     enemy.turn_count += 1
  47.     aaa = []
  48.     for iii in $game_troop.members
  49.       aaa.push(iii.turn_count)
  50.     end
  51.     @turn_count = aaa.min
  52.   end
  53.   #--------------------------------------------------------------------------
  54.   # ● 生成战斗行动
  55.   #--------------------------------------------------------------------------
  56.   def make_actions(enemy)
  57.     enemy.make_action
  58.   end
  59. end

  60. #==============================================================================
  61. # ■ Scene_Battle
  62. #------------------------------------------------------------------------------
  63. #  处理战斗画面的类。
  64. #==============================================================================

  65. class Scene_Battle < Scene_Base
  66.   #--------------------------------------------------------------------------
  67.   # ● 生成资讯显示端口
  68.   #--------------------------------------------------------------------------
  69.   alias neocreate_info_viewport create_info_viewport
  70.   def create_info_viewport
  71.     @info_viewport = Viewport.new(0, 256, 544, 160)
  72.     @info_viewport.z = 100
  73.     @status_window = Window_BattleStatus.new
  74.     @party_command_window = Window_PartyCommand.new
  75.     @actor_command_window = Window_ActorCommand.new
  76.     @status_window.viewport = @info_viewport
  77.     @party_command_window.viewport = @info_viewport
  78.     @actor_command_window.viewport = @info_viewport
  79.     @party_command_window.y = 32
  80.     @actor_command_window.y = 8
  81.     @status_window.x = 128
  82.     @status_window.y = 32
  83.     @actor_command_window.x = 544
  84.     @info_viewport.visible = false
  85.   end
  86.   #--------------------------------------------------------------------------
  87.   # ● 开始处理
  88.   #--------------------------------------------------------------------------
  89.   def start
  90.     super
  91.     $game_temp.in_battle = true
  92.     @spriteset = Spriteset_Battle.new
  93.     @message_window = Window_BattleMessage.new
  94.     @action_battlers = []
  95.     # 清空CP,所有人从零开始
  96.     for iii in $game_party.members + $game_troop.members
  97.       iii.cp = 0
  98.     end
  99.     for iii in $game_party.members + $game_troop.members
  100.       iii.turn_count = 0
  101.     end
  102.     # 谁的CP到顶了,谁才能动
  103.     @enable_go = nil
  104.     create_info_viewport
  105.   end
  106.   #--------------------------------------------------------------------------
  107.   # ● 更新画面
  108.   #--------------------------------------------------------------------------
  109.   def update
  110.     super
  111.     update_basic(true)
  112.     update_info_viewport                  # 更新资讯显示端口
  113.     if $game_message.visible
  114.       @info_viewport.visible = false
  115.       @message_window.visible = true
  116.     end
  117.     unless $game_message.visible          # 除非讯息显示中
  118.       return if judge_win_loss            # 判断胜负结果
  119.       update_scene_change
  120.       if @target_enemy_window != nil
  121.         update_target_enemy_selection     # 选择目标敌人
  122.       elsif @target_actor_window != nil
  123.         update_target_actor_selection     # 选择目标角色
  124.       elsif @skill_window != nil
  125.         update_skill_selection            # 选择技能
  126.       elsif @item_window != nil
  127.         update_item_selection             # 选择物品
  128.       elsif @party_command_window.active
  129.         update_party_command_selection    # 选择队伍命令
  130.       elsif @actor_command_window.active
  131.         update_actor_command_selection    # 选择角色命令
  132.       else
  133. # 等待:每个人的CP向前添加 =====================================================
  134.         fullflag = false
  135.         for iii in $game_troop.members + $game_party.members
  136.           iii.cp += iii.agi * 10
  137.           if iii.cp >= 5000
  138.             iii.cp -= 5000
  139.             @enable_go = iii
  140.             iii.my_turn = true
  141.             fullflag = true
  142.             break
  143.           end         
  144.         end
  145. # ==============================================================================
  146.         unless fullflag
  147.           return
  148.         end
  149.         process_battle_event              # 战斗事件处理
  150.         process_action                    # 战斗行动        
  151.         process_battle_event              # 战斗事件处理
  152.         if @enable_go.is_a?(Game_Actor)
  153.           @status_window.refresh
  154.           start_party_command_selection
  155.         else
  156.           $game_troop.make_actions(@enable_go)
  157.           start_main
  158.         end
  159.         @enable_go = nil
  160.       end
  161.     end
  162.   end
  163.   #--------------------------------------------------------------------------
  164.   # ● 开始队伍命令选择
  165.   #--------------------------------------------------------------------------
  166.   def start_party_command_selection
  167.     if $game_temp.in_battle
  168.       @status_window.refresh
  169.       @status_window.index = @actor_index = -1
  170.       @active_battler = nil      
  171.       @message_window.visible = false
  172.       @party_command_window.active = false
  173.       @party_command_window.visible = false
  174.       @party_command_window.index = 0
  175.       @actor_command_window.active = true
  176.       $game_party.clear_actions
  177.       next_actor
  178.       @info_viewport.visible = true
  179.       if $game_troop.surprise or not $game_party.inputable?
  180.         start_main
  181.       end
  182.     end
  183.   end
  184.   #--------------------------------------------------------------------------
  185.   # ● 更新角色命令选择
  186.   #--------------------------------------------------------------------------
  187.   def update_actor_command_selection
  188.     if Input.trigger?(Input::B)
  189.       Sound.play_cancel
  190.       prior_actor
  191.     elsif Input.trigger?(Input::C)
  192.       case @actor_command_window.index
  193.       when 0  # 攻击
  194.         Sound.play_decision
  195.         @active_battler.action.set_attack
  196.         start_target_enemy_selection
  197.       when 1  # 技能
  198.         Sound.play_decision
  199.         start_skill_selection
  200.       when 2  # 防御
  201.         Sound.play_decision
  202.         @active_battler.action.set_guard
  203.         next_actor
  204.       when 3  # 物品
  205.         Sound.play_decision
  206.         start_item_selection
  207.       when 4  # 逃跑
  208.         if $game_troop.can_escape == false
  209.           Sound.play_buzzer
  210.           return
  211.         end
  212.         Sound.play_decision
  213.         process_escape
  214.       end
  215.     end
  216.   end
  217.   #--------------------------------------------------------------------------
  218.   # ● 开始敌人目标选择
  219.   #--------------------------------------------------------------------------
  220.   alias neostart_target_enemy_selection start_target_enemy_selection
  221.   def start_target_enemy_selection
  222.     neostart_target_enemy_selection
  223.     @target_enemy_window.y = @info_viewport.rect.y + 32
  224.   end
  225.   #--------------------------------------------------------------------------
  226.   # ● 开始同伴目标选择
  227.   #--------------------------------------------------------------------------
  228.   alias neostart_target_actor_selection start_target_actor_selection
  229.   def start_target_actor_selection
  230.     neostart_target_actor_selection
  231.     @target_actor_window.y = @info_viewport.rect.y + 32
  232.   end
  233.   #--------------------------------------------------------------------------
  234.   # ● 开始执行战斗处理
  235.   #--------------------------------------------------------------------------
  236.   def start_main
  237.     for member in $game_troop.members
  238.       $game_troop.increase_turn(member)
  239.     end
  240.     @info_viewport.visible = false
  241.     @info_viewport.ox = 0
  242.     @message_window.visible = true
  243.     @party_command_window.active = false
  244.     @actor_command_window.active = false
  245.     @status_window.index = @actor_index = -1
  246.     @active_battler = nil
  247.     @message_window.clear
  248.     for member in $game_troop.members
  249.       $game_troop.make_actions(member)
  250.     end
  251.     make_action_orders
  252.     wait(20)
  253.   end
  254.   #--------------------------------------------------------------------------
  255.   # ● 生成行动顺序
  256.   #--------------------------------------------------------------------------
  257.   def make_action_orders
  258.     @action_battlers = []
  259.     for iii in $game_troop.members + $game_party.members
  260.       if iii.my_turn
  261.         @action_battlers.push(iii)
  262.         iii.my_turn = false
  263.       end
  264.     end
  265.   end
  266.   #--------------------------------------------------------------------------
  267.   # ● 回合结束
  268.   #--------------------------------------------------------------------------
  269.   def turn_end
  270.     $game_troop.turn_ending = true
  271.     $game_party.slip_damage_effect
  272.     $game_troop.slip_damage_effect
  273.     $game_party.do_auto_recovery
  274.     $game_troop.preemptive = false
  275.     $game_troop.surprise = false
  276.     process_battle_event
  277.     $game_troop.turn_ending = false
  278.   end  
  279. end

  280. #==============================================================================
  281. # ■ Window_ActorCommand
  282. #------------------------------------------------------------------------------
  283. #  选择角色命令(如「攻击」或「技能」)的窗口。
  284. #==============================================================================

  285. class Window_ActorCommand < Window_Command
  286.   #--------------------------------------------------------------------------
  287.   # ● 初始化对像
  288.   #--------------------------------------------------------------------------
  289.   def initialize
  290.     super(128, [], 1, 5)
  291.     self.active = false
  292.   end
  293.   #--------------------------------------------------------------------------
  294.   # ● 设置
  295.   #     actor : 角色
  296.   #--------------------------------------------------------------------------
  297.   def setup(actor)
  298.     s1 = Vocab::attack
  299.     s2 = Vocab::skill
  300.     s3 = Vocab::guard
  301.     s4 = Vocab::item
  302.     s5 = Vocab::escape
  303.     if actor.class.skill_name_valid     # 是否指定职业技能文字
  304.       s2 = actor.class.skill_name       # 替换「技能」命令文字
  305.     end
  306.     @commands = [s1, s2, s3, s4, s5]
  307.     @item_max = 5
  308.     refresh
  309.     self.index = 0
  310.   end
  311. end
复制代码
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2025-1-10 17:28

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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